Skip to main content

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.
Already know the shape? Jump straight to the PaymentSheet overview.

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

  1. The end user opens the partner app and chooses to pay a SEA merchant.
  2. Partner backend calls POST /v1/payment_intents (signed with HMAC), passing the user’s KYC + sanctions attestations, to create a Zennopay intent.
  3. Zennopay mints a short-lived session token for that intent and returns it in the same response; the backend hands it to the app.
  4. Partner app opens the Zennopay SDK with the intent_id + session token.
  5. The user scans the merchant QR, confirms the amount, and slides to pay.
  6. 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.
  7. Zennopay sends the partner a webhook with the final status.
The moving parts and where the money sits at each step are diagrammed in How Zennopay works; the full auth sequence is in Authentication under “end-to-end flow.”

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.