Prefer not to write code? Use the widget or Client Dashboard instead. Building with an AI coding agent? Point it at Build with AI first.
Before you start
You need a sandbox API key and API secret. To get them, email support@zapyd.com. Sandbox and production credentials are separate.1. Add the request helper
Every Zapyd request carries three headers:X-API-KEY, X-TIMESTAMP and X-SIGNATURE. The signature is Base64 HMAC-SHA256 over apiKey|timestamp|canonicalJsonBody. The helper below handles signing, so later steps only pass a method, a path and a body.
2. Create a customer
Each end user is a customer.client_reference_id is your own ID for the user. If you send the same value again, Zapyd returns the existing customer, so retrying this call is safe.
3. Verify the customer
In production, a customer becomesVERIFIED through KYC. In sandbox, skip KYC and set the status directly with Mock KYC Status.
4. Run an order
Pick the direction you want to test. Both flows follow the same pattern: quote, pay, initiate, track. A quotation locks the rate and expires atexpiry_time, so initiate the order before it expires.
- Payout (crypto to fiat)
- Payin (fiat to crypto)
Add the beneficiary bank account
Get a quotation
Send the crypto
Send exactly
quote.sending_amount of testnet USDT on Sepolia to quote.wallet_address. Keep the transaction hash.Initiate the payout
Complete it in sandbox
5. Receive webhooks
Don’t poll in production. Register an HTTPS endpoint once, and Zapyd sends a signed event whenever a customer, bank, payin or payout changes status.Next steps
Core concepts
Objects, statuses, amounts, idempotency and the response envelope.
Payouts
Configuration, rates, fees, EDD and every payout field.
Payins
Deposit instructions, transfer references and payin statuses.
Go-live checklist
Everything to test before you switch to production keys.