Base URLs
All endpoints are mounted under
/v1. Example:
https://api.zennopay.com/v1/payment_intents.Legacy domain hosts
zennopay.com is now the canonical domain, but the zennopay.in hosts
continue to be served — nothing is being switched off.
Existing integrations keep working. Published Zennopay SDK versions ship
the
.in base URL compiled in, and those builds are fully supported — you do
not need to release an app update. There is no cutover date. Both domains
serve the same API, the same credentials, and the same signing rules; only the
hostname differs. New integrations should use zennopay.com.Picking the right one
- During integration, point every example in this documentation at the sandbox base URL. Code snippets default to the production URL for copy-paste readiness in your final integration — swap the host while you’re building.
- Sandbox issues a separate
X-Zennopay-Key-Id(e.g.acme_sandbox_2026q2) and a separate signing secret from production. Never cross the streams. - The OpenAPI playground is hard-wired to the sandbox host.
Checkout and console hosts
These are shared across environments — the API host you call determines which backend the flow lands on.
The
.in equivalents (checkout.zennopay.in, console.zennopay.in) also
remain reachable.
What about staging?
Zennopay also runs an internal staging environment for pre-production verification of our own deploys. It is not exposed to partners and has no public hostname. Partners test against sandbox.Promotion path
.in hosts is equally valid and still supported.)
Graduation from sandbox to production is gated on:
- A signed partner agreement and operational runbook on file.
- A pre-funded USD float at the Zennopay FBO account.
- KYC / sanctions attestation flow verified end-to-end in sandbox.