Get started
Stand up a sandbox integration end to end in about 10 minutes — sign your
first HMAC call, read back the session token Zennopay mints, present the
PaymentSheet. No key pair required.
Build your integration
Make a payment
Present the native PaymentSheet — scan, confirm, slide to pay. One call in,
one PaymentResult out.
Session endpoint
The one backend route every payment starts with: create an intent, return
the session token Zennopay mints.
Reopen a receipt
Keep your own history list; reopen the authoritative Zennopay receipt with
its live status.
Test your integration
Run the whole flow in the sandbox — no camera, no real money — before going
live.
API reference
REST endpoints, webhooks, and an in-browser JWT inspector.
How Zennopay works
One diagram of the whole system — apps, money, and rails.
What Zennopay does
Zennopay lets a partner fintech offer its users a way to pay any Thai PromptPay or Vietnamese VietQR merchant — using their USD wallet balance, from inside the partner’s own app. Two corridors are live today:Thailand
PromptPay QR. THB settlement.
Vietnam
VietQR. VND settlement.
How a payment flows
- The end user opens the partner app and chooses to pay a SEA merchant.
- Partner backend calls
POST /v1/payment_intents(signed with HMAC), passing the user’s KYC + sanctions attestations, to create a Zennopay intent. - Zennopay mints a short-lived session token for that intent and returns it in the same response; the backend hands it to the app.
- Partner app opens the Zennopay SDK with the
intent_id+ session token. - The user scans the merchant QR, confirms the amount, and slides to pay.
- Zennopay debits the partner’s pre-funded USD float, routes the transaction to its licensed payout partner network for the destination corridor, and the merchant receives local currency.
- Zennopay sends the partner a webhook with the final status.
What makes Zennopay different
- USD-only on our side. We never hold THB or VND. The local payout provider owns the FX leg.
- FBO custody. Partner funds are held in a For-Benefit-Of account at our US banking partner. Funds remain attributable to the partner (and beneficially to its end users) at all times.
- One credential. Your backend signs REST calls with a long-lived HMAC secret; Zennopay mints the short-lived, per-intent session token your app holds. No key pair to generate or register.