Sandbox vs production
Every request is signed the same way in both environments. The Quickstart has a request helper that the examples below use.
Mock endpoints
Each mock fires the same webhook production would send, except the bank account mock: read the account to see its new status.
Test funds for payouts
Payout quotations onsepolia return a testnet wallet_address.
- Get Sepolia ETH for gas and testnet stablecoins from a faucet.
- Send the exact
sending_amountto the quotation’swallet_address. - Initiate with the Sepolia transaction hash, then set the result with the mock endpoint.
Webhooks on your laptop
Zapyd needs a public HTTPS URL. Expose your local server with a tunnel such as ngrok, then register it:Scenarios to cover
Customers and KYC
Customers and KYC
- Customer create, then the same
client_reference_idagain (it returns the same customer) - KYC
VERIFIED, then each failure value and its update endpoint - Bank account
VERIFIEDandFAILED
Payins
Payins
- Quotation, then initiate before and after
expiry_time - Every final status:
SUCCESS,ON_HOLD,REFUNDED,FAILED - A reused
transaction_reference_idis rejected - Crypto is credited only on
SUCCESS
Payouts
Payouts
- Quotation with
sending_amount, and withreceiving_amount - A reused
transaction_hashis rejected - Every final status:
SUCCESS,FAILED,REFUNDED
Limits and EDD
Limits and EDD
- A limit is exceeded, then EDD is submitted and mocked to
VERIFIEDandFAILED
Errors and webhooks
Errors and webhooks
- Wrong signature, expired timestamp and wrong module prefix
- Duplicate webhook delivery is ignored
- Your endpoint is down, and the order is recovered by polling