The four account categories that matter
Every transaction touches some subset of these. All Zennopay-side balances are USD-denominated.| Account | What it holds |
|---|---|
| Partner FBO (at Unit) | USD the partner has pre-funded for its end users. Held in a For-Benefit-Of account at Zennopay’s US banking partner. Restricted custody. |
| Partner FBO liability | The offsetting liability — Zennopay’s obligation to return the partner’s pre-funded balance. Always equals the FBO cash balance. |
| Payout-partner pre-funded receivable (per corridor) | USD Zennopay has pre-funded to its payout partner for the corridor (one balance per corridor); drawn down as transactions in that corridor settle. |
| Zennopay commercial | Where Zennopay’s margin lands after the daily sweep from FBO. Operating income. |
Custody posture
- Zennopay holds USD in an FBO account at our partner bank (Unit). The funds remain attributable to the partner — and beneficially to the partner’s end users — at all times. Zennopay holds them in trust-like fashion.
- Zennopay is a US Delaware C-Corp registered with FinCEN as a Money Services Business (MSB), operating as a payment facilitator (agent of payee).
- Zennopay is not an e-money institution. We never co-mingle partner FBO funds with operating funds.
- We are USD-only. All FX happens inside the payout partner network for the destination corridor.
A $100 transaction, step by step
For a$100 transaction in the Thailand corridor (th_promptpay):
| Player | What changes |
|---|---|
| End user | Sees $100 USD in their partner-app wallet decrease. Sees THB equivalent paid to merchant. |
| Partner FBO | Drops by $101.50 ($100 user value + $1.50 Zennopay margin). |
| Zennopay margin accrual | Rises by $1.50. Swept to commercial at end of day. |
| Payout-partner pre-funded receivable (TH) | Drops by $99.00 — the $100 Zennopay sends downstream, minus the corridor’s $1.00 pass-through fee. |
| Corridor pass-through fee | Rises by $1.00. |
| Thai merchant | Receives THB equivalent of $99.00 at the payout partner’s quoted FX rate. |
clearing.in_flight account was loaded earlier when the partner FBO was
debited; it zeros out here when the payout partner confirms success.
When things fail
| Scenario | What happens to funds |
|---|---|
| Partner auth declines before debit | Nothing moves. The intent is logged as failed. |
| Payout partner returns failure after FBO debit | The FBO debit is reversed. No margin recognized, no pass-through fee incurred. |
| Payout-partner success, then settlement reported failed (CAPTURE_REVERSED) | Step-by-step reversal. Net: partner FBO restored, payout-partner pre-funding restored, no margin, no fee. The intent ends in failed and we emit a payment_intent.failed webhook. |
| User-initiated refund within the corridor’s refund window (T+7 for TH, T+1 for VN) | The downstream payout partner refunds the merchant; Zennopay reverses the margin and credits the partner FBO. |
| Refund requested after the corridor’s refund window | Payout partner rejects. From Zennopay’s books, no entries. Commercial-side resolution between partner and end user. |
Pre-funding cadence
| Movement | Trigger | Frequency |
|---|---|---|
| Partner → Partner FBO (top-up) | Float < 1.2× daily burn | On demand; partner-initiated |
| Zennopay commercial → payout-partner pre-fund (per corridor) | Corridor pre-fund < 1.2× daily burn | Daily, automatic |
| Partner FBO → Zennopay commercial (margin sweep) | End of day | Daily, automatic |
What you receive as a partner
- A monthly statement showing transaction count, gross TPV, gross margin, and any commitment-fee passthroughs.
- A reconciliation report per corridor, comparing Zennopay’s ledger against the downstream settlement record.
- A monthly invoice for any commitment fees due.