Skip to main content
This walkthrough takes you from an empty account to delivered card codes on the B2B surface. You need an API key with the default scopes.
1

Fund your balance

Create a deposit. amount is the USD value to credit; paymentCurrency is what you pay in. Pass paymentMethodId to get the payment invoice in the same call (list method ids first with GET /retailer/v1/payment-methods, or omit the field and pick from the returned availablePaymentMethods).
The response contains the invoice — send exactly payment.amount to payment.paymentAddress (or redirect to payment.paymentUrl for hosted providers):
Response (201)
Deposits expire after roughly 60 minutes unpaid. Each deposit is capped by your tier’s maxDepositUSD.
2

Wait for the credit

Poll the deposit until deposit.status is confirmed:
Crypto payments pass through confirming (transaction seen, awaiting network confirmations) before confirmed. Once confirmed, GET /b2b/balance reflects the credit.
3

Browse the catalog

Each product carries skus with a denomination range (min, max, changeStep) and minCost — the price for the minimum denomination, before your account discount. Note the productId and the SKU id you want to order.
4

Place an order

One call creates the order and pays it from your balance. Always send an externalRef so retries are idempotent:
amount is the denomination the recipient gets (a 50 USD card), quantity is how many. A 201 means the balance payment confirmed and fulfillment started. Insufficient balance returns 400 with the reason in error.details.reason; tier caps return 422 B2B_LIMIT_EXCEEDED.
5

Poll for codes

When status reaches completed (or partial), read the codes from each item’s fulfillments array:
Response (200)
Poll every few seconds; most orders complete within a minute. If some units fail (status: partial), request a refund for the failed portion with POST /b2b/refunds.

Next steps

Order lifecycle

Statuses, partial fulfillment, and sealed cards.

Limits and tiers

Spend caps, order shape limits, and how to read your usage.