Credentials are environment-scoped. A sandbox client cannot mint tokens against production, and vice versa. Mismatched attempts return
403 with error: "invalid_client". See Authentication for the OAuth+DPoP flow.
Sandbox
The sandbox is a full-fidelity clone of the production API. Authentication, the data model, the state machine, webhook delivery, screening, and idempotency all behave the same way. The only substitutions are:- Rail submission — routed to internal mocks. No funds leave Anton, no third parties are contacted.
- Compliance screening — real OFAC logic runs, but you can trigger specific outcomes using deterministic test beneficiaries.
- Timing — payouts move through states on a compressed timeline so you don’t wait hours for a
completedwebhook in CI.
Production
Production moves real money. Before a live OAuth client will issue anything but a403, your merchant account must be:
- KYB approved — identity verification completed through the merchant dashboard.
- Risk underwritten — Anton’s underwriting team has reviewed and approved your account for live operation.
- Corridor enabled — the source/destination currency pair you want to use is active on your account.
POST /v1/payouts returns 403 with a code explaining what’s outstanding. Use the Going Live checklist to verify everything before your first live call.