API reference

Objects

The shapes the API returns. Endpoints link here rather than repeating them.

The transaction object

One request for payment.

Attributes

uiduid

The transaction's id. Its checkout is at /checkout/{uid}.

seller_iduid

The seller it belongs to.

statusstring
pending
Waiting for payment. Every transaction starts here.
completed
Paid in full and confirmed. A completed webhook was sent.
cancelled
Cancelled with the seller's key or the transaction's private key. Final.
expired
24 hours passed without full payment.
amount_topaydecimal string or null

The price, in currency. Null for open-ended and deposit transactions.

amount_paiddecimal string or null

Received so far, expressed in currency.

currencystring or null

The unit of amount_topay.

allowed_payment_methodsarray of strings or null

The method codes the buyer may choose from. Null means every method you enabled.

payment_methodstring or null

Null until the buyer chooses.

createdunix time
expiresunix time

24 hours after created.

cancelledunix time or null
completedunix time or null
is_depositinteger

1 for a top-up of your own balance.

01
paymentobject or null

What the buyer pays, and where. Null until a method is chosen.

10 child attributes
addressstring

Receiving address, or PayPal email.

currencystring

What the buyer actually pays in.

topaydecimal string

Quoted at the currency's practical precision, rounded up so the seller is never short-changed.

paiddecimal string

Observed so far. Updated by the settlement job.

ratedecimal string

transaction-currency → payment-currency, locked in at mint time.

confirmationsinteger or null

Crypto only. -1 means nothing observed yet.

confirmations_neededinteger or null

Crypto only.

overpaiddecimal string

Present only when the buyer paid more than topay.

gsboolean

PayPal only — Goods & Services accepted.

ffboolean

PayPal only — Friends & Family accepted.

private_keyuidYour key only

Cancellation credential and webhook signing secret.

webhookstring or nullYour key only

Where this transaction's events are sent.

Example
{
  "uid": "9c1f0b7a4e2d8f6a3b5c7d9e1f0a2b4c",
  "seller_id": "4b8e2d0f6a1c3e5b7d9f0a2c4e6b8d0f",
  "status": "completed",
  "amount_topay": "20",
  "amount_paid": "20",
  "currency": "usd",
  "allowed_payment_methods": [
    "btc",
    "xmr",
    "usdt-erc20"
  ],
  "payment_method": "btc",
  "created": 1753919400,
  "expires": 1754005800,
  "cancelled": null,
  "completed": 1753920000,
  "is_deposit": 0,
  "payment": {
    "address": "bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq",
    "currency": "btc",
    "topay": "0.00021",
    "paid": "0.00021",
    "rate": "0.0000105",
    "confirmations": 6,
    "confirmations_needed": 6
  },
  "private_key": "a3f9d0e1c2b4a6f8e0d2c4b6a8f0e2d4",
  "webhook": "https://seller.example/hooks/apa"
}

The payment object

What the buyer pays, and where. Its shape depends on the payment method.

Attributes

addressstring

Receiving address, or PayPal email.

currencystring

What the buyer actually pays in.

topaydecimal string

Quoted at the currency's practical precision, rounded up so the seller is never short-changed.

paiddecimal string

Observed so far. Updated by the settlement job.

ratedecimal string

transaction-currency → payment-currency, locked in at mint time.

confirmationsinteger or null

Crypto only. -1 means nothing observed yet.

confirmations_neededinteger or null

Crypto only.

overpaiddecimal string

Present only when the buyer paid more than topay.

gsboolean

PayPal only — Goods & Services accepted.

ffboolean

PayPal only — Friends & Family accepted.

Example
{
  "address": "bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq",
  "currency": "btc",
  "topay": "0.00021",
  "paid": "0",
  "rate": "0.0000105",
  "confirmations": -1,
  "confirmations_needed": 6
}

The withdrawal object

One payout from your balance to an address.

Attributes

uiduid
amountdecimal string

What was charged to the seller's balance.

feedecimal string

The difference between the two.

amount_originaldecimal string

What is sent to the recipient.

currencystring

The currency withdrawn.

recipientstring

The address paid.

statusstring

Where a withdrawal is in its life.

pending
Queued. Nothing has been sent yet.
submitted
Handed to the payout node, which owns the retries.
completed
Broadcast. crypto_transaction_id is set.
failed
Definitely not sent.
needs_review
Outcome unknown. Verify on-chain before acting; it is never retried automatically.
refunded
Reversed back to your balance.
createdunix time
completedunix time or null
crypto_transaction_idstring or null

On-chain txid once broadcast.

Example
{
  "uid": "7b9d0f2a4c6e8b0d2f4a6c8e0b2d4f6a",
  "amount": "0.0153",
  "fee": "0.000042",
  "amount_original": "0.015258",
  "currency": "btc",
  "recipient": "bc1q9h7garjf3p8rk5tjz7w8a4v3gmn2zd7xkq8fy6",
  "status": "completed",
  "created": 1753922000,
  "completed": 1753923600,
  "crypto_transaction_id": "4f3e2d1c0b9a87766554433221100ffe4f3e2d1c0b9a87766554433221100ffe"
}

The balance object

Your holding in one currency.

Attributes

actualdecimal string

Withdrawable money — exactly what withdraw and exchange accept.

creditdecimal string

Fee-only funds. Never withdrawable, never counted in total_balance.

convertedstring or null

actual in the target currency. Present only when converting; null for an unpriceable currency.

percentinteger

Share of total_balance, rounded to an integer. Present only when converting.

Example
{
  "actual": "10",
  "credit": "3",
  "converted": "10",
  "percent": 100
}

The currency object

One entry of the currency registry.

Attributes

namestring

Human-readable name.

theoreticalinteger

Ledger precision, and the cap on decimals accepted in an amount.

practicalinteger

Decimals quoted to buyers in payment.topay.

kindstring

A coin on its own chain, a token on another chain, or a fiat currency.

nativetokenfiat
chainstring or null

The chain a token lives on. Null for native coins and fiat.

erc20splbep20trc20
confirmationsinteger or null

Confirmations required before a crypto payment counts. Null for fiat.

statusstring

A paused or retired currency is still returned — historical transactions name it and must keep resolving — but must not be offered for new payments. Filter on selectable, not on this, for anything buyer-facing.

enabledpausedretired
selectableboolean

Whether this currency may be offered for new payments: false for paused and retired. Branch on this rather than on status.

explorer_urlstring or null

Block-explorer template with a {txid} placeholder, or null.

Example
{
  "name": "Bitcoin",
  "theoretical": 8,
  "practical": 8,
  "kind": "native",
  "chain": null,
  "confirmations": 6,
  "status": "enabled",
  "selectable": true,
  "explorer_url": "https://mempool.space/tx/{txid}"
}

The payment method object

One payment method, as the platform offers it.

Attributes

namestring

Human-readable display name.

kindstring

How the method settles: crypto mints a receiving address, external is settled off-platform (PayPal). This is the METHOD's kind, which is not a currency's native/token/fiat.

cryptoexternal
currencystring or null

The currency this method settles in, or null when the seller's own configuration decides — a PayPal account names its own currency.

statusstring
enabledpausedretired
selectableboolean

Whether the PLATFORM currently offers it. A seller may still have switched it off; combine with payment_methods from /api/user/info, or read that endpoint's payment_method_info, which already has.

sort_orderinteger

The operator's display order. Render in it rather than alphabetically.

groupstring or null

The method group this belongs to, keyed into payment_method_groups on the same response — the chain for a token, native for a coin whose chain is its own, external for a processor. Lets a storefront section sixty-odd methods without keeping a chain table of its own. Null only if the operator has not grouped it.

Example
{
  "name": "Bitcoin",
  "kind": "crypto",
  "currency": "btc",
  "status": "enabled",
  "selectable": true,
  "sort_order": 10,
  "group": "native"
}