Skip to main content
The sandbox runs the same API as production, with test data and no real money. Mock endpoints let you move any customer or order to any status, so you can test every branch of your code in minutes.

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 on sepolia return a testnet wallet_address.
  1. Get Sepolia ETH for gas and testnet stablecoins from a faucet.
  2. Send the exact sending_amount to the quotation’s wallet_address.
  3. Initiate with the Sepolia transaction hash, then set the result with the mock endpoint.
Sepolia works only in sandbox. Never send real funds to a sandbox address.

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

  • Customer create, then the same client_reference_id again (it returns the same customer)
  • KYC VERIFIED, then each failure value and its update endpoint
  • Bank account VERIFIED and FAILED
  • Quotation, then initiate before and after expiry_time
  • Every final status: SUCCESS, ON_HOLD, REFUNDED, FAILED
  • A reused transaction_reference_id is rejected
  • Crypto is credited only on SUCCESS
  • Quotation with sending_amount, and with receiving_amount
  • A reused transaction_hash is rejected
  • Every final status: SUCCESS, FAILED, REFUNDED
  • A limit is exceeded, then EDD is submitted and mocked to VERIFIED and FAILED
  • Wrong signature, expired timestamp and wrong module prefix
  • Duplicate webhook delivery is ignored
  • Your endpoint is down, and the order is recovered by polling
When everything passes, work through the Go-live checklist.