For the complete documentation index, see llms.txt. Append
.mdto any page URL for its markdown version.
Follow these steps to validate your complete integration before going to production.
Call POST /v2/buy (API integration) or construct your referral URL (Referral integration) with:
- A valid test wallet address
- A supported crypto and fiat combination
- Your sandbox
redirectUrl
Verify that you receive a checkoutUrl (API) or that your referral URL loads correctly.
Navigate to the checkoutUrl in a browser or via your embedded checkout component.
Verify:
- The checkout loads without errors
- Pre-populated values (wallet address, crypto, fiat, amount) match what you submitted
Enter test personal details (realistic-looking name, address, date of birth).
For email verification (OTP), use:
- Email: any email address
- Verification code:
7203
If prompted for document upload, any legible document image is accepted in sandbox.
Enter test card details:
- Card:
4111 1111 1111 1111 - Expiry: any future date
- CVV: any 3 digits
- Name on card: the same name you entered at the billing details step
After completing payment:
- Confirm you are redirected to your
redirectUrl - Look up the order via
GET /v2/orders/{orderId}and confirmstatusiscomplete - Confirm a webhook was delivered to your configured endpoint with
status: "complete"
Call POST /v2/sell (API integration) with a test wallet address, crypto asset, fiat currency and your sandbox redirectUrl, or open your referral URL with orderType=sell (Referral integration). For AUD, pass payid-bank-transfer as paymentMethodId.
Verify that you receive a checkoutUrl (API) or that the referral URL opens the checkout in sell mode.
Open the checkoutUrl. Complete any required KYC steps and enter the payout details. For AUD, use the sandbox bank details.
QR code / MetaMask: The checkout displays the deposit details. Verify the deposit address, amount and memo (if any) match GET /v2/orders/{orderId}.
Native Wallet: The checkout redirects the customer to your redirectUrl with the deposit details as query parameters. Verify that your app reads providerWalletAddress, coinAmount and (if present) providerWalletAddressTag correctly.
Custodial: The customer sees an "in progress" status page and your platform receives a webhook. Verify that your platform retrieves the deposit address with GET /v2/orders/{orderId} and confirms the transfer with POST /v2/orders/{orderId}/confirm.
No crypto moves on-chain in sandbox, so a sell order may stay at waitingPayment. Ask your integration manager to progress it, then confirm the order reaches complete via order lookup or webhook, and that the complete webhook has order_type: "SELL".
- Configure a webhook URL in the Partner Dashboard (use webhook.site or ngrok for local testing).
- Create and complete an order.
- Confirm the webhook is received with the correct
order_idandstatus. - Confirm your endpoint responds with
200 OK. - If using HMAC verification, confirm signature validation passes.
If using embedded checkout:
- Load the checkout URL in your iFrame or WebView component.
- Verify the checkout renders correctly within your layout.
- Confirm camera access works (attempt to reach the document upload step).
- Complete a full order flow inside the embedded view.
- Verify the WebView/iFrame navigates to your
redirectUrlon completion.
Once you have completed the end-to-end test flow and confirmed all components are working, see Going Live for what Banxa needs before it enables your production environment.