Skip to main content
POST
Buy a card

Authorizations

Authorization
string
header
required

Your API key, sent as a bearer token. Keep it on your server. See Authentication. A request from a location we refuse gets a 403 with Access denied, whether or not it has a valid key: where you can call from.

Headers

Idempotency-Key
string
required

Your order id, 8–128 characters of A-Za-z0-9_-, unique per account across pack and card orders. Reuse it to retry the same order safely, and use a new one for every new order.

Pattern: ^[A-Za-z0-9_-]{8,128}$

Body

application/json
card_id
string<uuid>
required

card_id from Search cards.

max_price
number
required

The most you'll pay for the card in dollars, before the fee. Usually the price the search showed.

Required range: x <= 1000000

Response

The card is yours. A retry of a finished order returns the original body with idempotent_replay: true, and charges nothing. If we closed the order after its response was lost, the retry returns a shorter body with reconciled: true and no fee, remaining_balance or item: see Idempotency.

checkout_id
string
required

Our id for the order.

transaction_id
string | null
required

The sale. It is the purchase_id that Get vault and Sell back use for this card.

card_id
string
required
source
enum<string>
required
Available options:
shop,
listing
listing_id
string | null
required
price
number
required

Charged for the card.

total_charged
number
required
fee
number

The $1 buyer fee.

remaining_balance
number
item
object | null

The card object. Other fields appear only on the catalogs that have them.

needs_review
boolean

The sale went through and the card is yours, but our bookkeeping needs a manual check. Don't retry under a new key.

idempotent_replay
boolean
reconciled
boolean

Present and true on the shorter body we return when we closed the order after its response was lost.

message
string

Present with reconciled.