A
202 Accepted response means the payout is durable and processing. It is
not proof that the beneficiary received funds. Poll or consume webhooks until
the payout becomes completed, failed, or reversed.Fund, send, and track
- Fund: deposit USD using your assigned funding instructions, then request conversion into the payout currency. Local funds become available after Zennopay operations confirms settlement.
- Send: create a stored or inline beneficiary and submit a payout. The API reserves the required amount from the available balance in that currency.
- Track: save the payout ID and your reference. Use signed webhooks or status reads to keep your records current.
API behavior
- Server-to-server only. Requests use the same HMAC signing scheme as the Partner API. Never expose the credential to a browser or app.
- Int64-safe money. Every monetary field is a base-10 signed-int64 string. VND values are whole dong—never decimals.
- Asynchronous delivery. An accepted payout remains retrievable while Zennopay processes the bank transfer.
- Tenant and environment isolation. Balances, beneficiaries, payouts, and routes are bound to the authenticated tenant and test/live mode.
- Stable idempotency. Retrying the same request with the same key returns the original payout. Reusing a key for different input fails.
Lifecycle
A payout exposescreated, processing, completed, failed, or reversed.
Internal queue and recovery states are intentionally collapsed into the public
lifecycle. The Payouts API reference owns the
status definitions, filters, cancellation behavior, and errors.
Availability
Destinations and currencies are enabled per account and environment. Confirm availability during onboarding, then test the destination with your sandbox credentials. Creating a beneficiary alone does not confirm payout readiness; complete a sandbox payout and verify its final state.Live prerequisites
Before sending live payouts, confirm account approval and destination activation with Zennopay, configure your production credentials and egress IPs, fund the required payout currency, and verify your HTTPS webhook handler. Sandbox success does not itself enable live mode.Related guides
Quickstart
Create a beneficiary, submit an idempotent payout, and retrieve its status.
Beneficiaries
Store a reusable bank destination without exposing it in later requests.
Payouts API
Request and response fields, lifecycle, idempotency, filters, and errors.
Payout webhooks
Verify signed status events and handle at-least-once delivery.
Sandbox testing
Exercise success, failure, processing, ambiguity, and compliance outcomes.
