v11

latestOpenAPI 3.1.0raw.githubusercontent.com2026-08-0112893437.0 KB
Guest Wallets

Create an accountless prepaid wallet checkout

Create a one-use Stripe-hosted checkout after the user explicitly confirms a $10-$250 USD amount. This request creates no charge by itself. The user opens checkout_url on Stripe. This endpoint returns the paid-read API key without requiring an Xquik account, email, dashboard, or Xquik web page. An idempotent replay returns the same key.

post/guest-wallets

Headers

Idempotency-Keystring required

Generate a cryptographically random UUID v4. Reuse it only to retry the same wallet and amount request. Initial wallet creation can recover the API key from this value, so store it as a secret and never log it.

Request body

amount_minorinteger required

USD cents accepted for this checkout.

currency'usd' required

Example request

{
  "amount_minor": 1000
}

Response

Stripe-hosted checkout, guest API key, and API status URL.

account_requiredfalse required
api_keystring password required

Paid-read bearer credential returned only by initial creation. Store it as a secret. Never place it in a URL or log.

checkout_urlstring uri required

Raw Stripe-hosted checkout URL for user interaction.

creditsstring required

Credits granted after verified payment.

credential_notice'Store api_key and the Idempotency-Key securely before sharing checkout_url. No email recovery is available.' required
expires_atstring date-time required

Time when the pending checkout expires.

instructions'Give checkout_url to the user. They must complete payment on Stripe. Never submit payment for them. After payment, poll status_url every poll_after_seconds until latest_purchase.status is no longer pending.' required
poll_after_seconds2 required

Wait at least this long before polling status_url.

purchase_idstring required
requires_user_interactiontrue required
status'creating' | 'pending' | 'paid' | 'expired' | 'failed' | 'refunded' | 'disputed' required
status_url'https://xquik.com/api/v1/guest-wallets/status' uri required
wallet_idstring required

Example response

{
  "amount": {
    "amount_minor": 1000
  },
  "api_key": "xq_example_returned_once",
  "authorization": {
    "header": "Authorization",
    "scheme": "Bearer"
  },
  "checkout_url": "https://buy.stripe.com/example",
  "credits": "66666",
  "expires_at": "2026-07-13T13:00:00.000Z",
  "purchase_id": "gp_example",
  "status": "pending",
  "wallet_id": "gw_example"
}