API reference
Objects
The shapes the API returns. Endpoints link here rather than repeating them.
The transaction object
One request for payment.
Attributes
uiduidThe transaction's id. Its checkout is at
/checkout/{uid}.seller_iduidThe seller it belongs to.
statusstring-
pending- Waiting for payment. Every transaction starts here.
completed- Paid in full and confirmed. A
completedwebhook 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 nullThe price, in
currency. Null for open-ended and deposit transactions.amount_paiddecimal string or nullReceived so far, expressed in
currency.currencystring or nullThe unit of
amount_topay.allowed_payment_methodsarray of strings or nullThe method codes the buyer may choose from. Null means every method you enabled.
payment_methodstring or nullNull until the buyer chooses.
createdunix timeexpiresunix time24 hours after
created.cancelledunix time or nullcompletedunix time or nullis_depositinteger1for a top-up of your own balance.01paymentobject or nullWhat the buyer pays, and where. Null until a method is chosen.
10 child attributes
addressstringReceiving address, or PayPal email.
currencystringWhat the buyer actually pays in.
topaydecimal stringQuoted at the currency's
practicalprecision, rounded up so the seller is never short-changed.paiddecimal stringObserved so far. Updated by the settlement job.
ratedecimal stringtransaction-currency → payment-currency, locked in at mint time.
confirmationsinteger or nullCrypto only.
-1means nothing observed yet.confirmations_neededinteger or nullCrypto only.
overpaiddecimal stringPresent only when the buyer paid more than
topay.gsbooleanPayPal only — Goods & Services accepted.
ffbooleanPayPal only — Friends & Family accepted.
private_keyuidYour key onlyCancellation credential and webhook signing secret.
webhookstring or nullYour key onlyWhere this transaction's events are sent.
{
"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
addressstringReceiving address, or PayPal email.
currencystringWhat the buyer actually pays in.
topaydecimal stringQuoted at the currency's
practicalprecision, rounded up so the seller is never short-changed.paiddecimal stringObserved so far. Updated by the settlement job.
ratedecimal stringtransaction-currency → payment-currency, locked in at mint time.
confirmationsinteger or nullCrypto only.
-1means nothing observed yet.confirmations_neededinteger or nullCrypto only.
overpaiddecimal stringPresent only when the buyer paid more than
topay.gsbooleanPayPal only — Goods & Services accepted.
ffbooleanPayPal only — Friends & Family accepted.
{
"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
uiduidamountdecimal stringWhat was charged to the seller's balance.
feedecimal stringThe difference between the two.
amount_originaldecimal stringWhat is sent to the recipient.
currencystringThe currency withdrawn.
recipientstringThe address paid.
statusstringWhere 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_idis 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 timecompletedunix time or nullcrypto_transaction_idstring or nullOn-chain txid once broadcast.
{
"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 stringWithdrawable money — exactly what withdraw and exchange accept.
creditdecimal stringFee-only funds. Never withdrawable, never counted in
total_balance.convertedstring or nullactualin the target currency. Present only when converting; null for an unpriceable currency.percentintegerShare of
total_balance, rounded to an integer. Present only when converting.
{
"actual": "10",
"credit": "3",
"converted": "10",
"percent": 100
}
The currency object
One entry of the currency registry.
Attributes
namestringHuman-readable name.
theoreticalintegerLedger precision, and the cap on decimals accepted in an
amount.practicalintegerDecimals quoted to buyers in
payment.topay.kindstringA coin on its own chain, a token on another chain, or a fiat currency.
nativetokenfiatchainstring or nullThe chain a token lives on. Null for native coins and fiat.
erc20splbep20trc20confirmationsinteger or nullConfirmations required before a crypto payment counts. Null for fiat.
statusstringA
pausedorretiredcurrency is still returned — historical transactions name it and must keep resolving — but must not be offered for new payments. Filter onselectable, not on this, for anything buyer-facing.enabledpausedretiredselectablebooleanWhether this currency may be offered for new payments: false for
pausedandretired. Branch on this rather than onstatus.explorer_urlstring or nullBlock-explorer template with a
{txid}placeholder, or null.
{
"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
namestringHuman-readable display name.
kindstringHow the method settles:
cryptomints a receiving address,externalis settled off-platform (PayPal). This is the METHOD's kind, which is not a currency'snative/token/fiat.cryptoexternalcurrencystring or nullThe currency this method settles in, or null when the seller's own configuration decides — a PayPal account names its own currency.
statusstringenabledpausedretiredselectablebooleanWhether the PLATFORM currently offers it. A seller may still have switched it off; combine with
payment_methodsfrom/api/user/info, or read that endpoint'spayment_method_info, which already has.sort_orderintegerThe operator's display order. Render in it rather than alphabetically.
groupstring or nullThe method group this belongs to, keyed into
payment_method_groupson the same response — the chain for a token,nativefor a coin whose chain is its own,externalfor 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.
{
"name": "Bitcoin",
"kind": "crypto",
"currency": "btc",
"status": "enabled",
"selectable": true,
"sort_order": 10,
"group": "native"
}