1
Fund your balance
Create a deposit. The response contains the invoice — send exactly
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).payment.amount to payment.paymentAddress (or redirect to payment.paymentUrl for hosted providers):Response (201)
2
Wait for the credit
Poll the deposit until Crypto payments pass through
deposit.status is confirmed:confirming (transaction seen, awaiting network confirmations) before confirmed. Once confirmed, GET /b2b/balance reflects the credit.3
Browse the catalog
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
status reaches completed (or partial), read the codes from each item’s fulfillments array:Response (200)
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.