Skip to main content
Zerocash exposes one host. The environment you are in is determined by which credentials you authenticate with, not by a different base URL.
Sandbox and production keys are separate. Generate a bearer token with your sandbox keys and you are transacting in sandbox; generate one with your production keys and you are moving real money.
One exception: Simulate Webhook is sandbox-only and lives under its own path, /api/sandbox/b2b/utilities/simulate-webhook.

What differs

Your webhook URLs for both environments are configured in the dashboard and returned by Get User.

Rules that apply in both

Unique externalReference

Use a fresh externalReference for every attempt. It is how you reconcile and how you avoid duplicate transactions on retry.

Only successful is settled

Treat successful as the sole fulfilled state. Pending and processing are not outcomes.

Confirm before granting value

Verify the final status by webhook or by Get Transaction before you release goods or credit an account.

Never mix credentials

Keep production keys out of test requests, and never send real card details to sandbox.

Going live

1

Exercise both outcomes in sandbox

Run each collection and payout method you intend to use, covering the success and failure test values, not just the happy path.
2

Verify webhook signatures

Confirm your endpoint validates the signature header before trusting a payload. See Webhook secrets.
3

Swap credentials

Point your integration at your production public key and API key. No URL changes are needed.
4

Confirm coverage and limits

Check supported countries and limits for the corridors you are launching, and your fees on the account fees page.
Before your first production transaction, confirm that your production webhook URL is set and reachable. Money movement is asynchronous — without webhooks you will be polling for every outcome.