Product: Virtual Account · Fiat
Capabilities:payin,payout
API prefix:/v1/virtual-account/*
Updated: 2026-08-27 · Phase C multi-page · English
| Capability | Meaning | Deep dive |
|---|---|---|
| Payin | Payer sends funds to a sub VA → fiat credited | VA · Payin |
| Payout | Fiat out from VA to a bank account | VA · Payout |
| RFI | Compliance remediation branch | VA · RFI |
/v1/account/* (API Reference · More).| Page | Content |
|---|---|
| Overview | This page |
| Payin | Payin sequence & reconciliation keys |
| Payout | Payout & refunds |
| RFI | Remediation |
| Statuses | Account / order state machines |
| Currencies & limits | Currency & limit ownership |
| VND VA Opening | VA Opening · VND beneficiary profile & rules |
| BRL VA Opening | VA Opening · channel selection and Woovi profile |
| GOWD BRL Corporate VA Opening | GOWD corporate profile, uploads and result tracking |
| Scenario | Method | Path |
|---|---|---|
| Master balance | GET | /v1/virtual-account/primary/get-balance |
| Master list | GET | /v1/virtual-account/primary/list |
| Create sub VA | POST | /v1/virtual-account/sub/create |
| Request file upload URL | POST | /v1/files/upload-url |
| Get / list sub VA | GET | /sub/get · /sub/list |
| Email verify code | POST | /v1/virtual-account/email/send-verify-code |
| Query bank info | POST | /v1/virtual-account/query-bank-account-info |
| Order detail / list | GET | /order/detail · /order/list |
| Payout | POST | /v1/virtual-account/order/payout |
| Refund | POST | /v1/virtual-account/order/refund |
| RFI | GET/POST | /sub/rfi-template · /sub/submit-rfi · /sub/rfi-list |
/v1/files/upload-url is a general-purpose endpoint, not a Virtual Account one. It issues a short-lived pre-signed URL so file bytes are uploaded straight to object storage and then referenced by fileId. VA opening is one caller: a VND company application references its supporting documents this way. GOWD BRL corporate applications also upload three supporting document categories through this endpoint. Channels whose opening takes no documents, such as the Woovi flow, do not call it. See GOWD BRL Corporate VA Opening.| eventType | Scenario |
|---|---|
VIRTUAL_ACCOUNT_UPDATED | Account status |
VIRTUAL_ACCOUNT_ORDER_UPDATED | Payin / Payout order |
SUB_VIRTUAL_ACCOUNT_RFI_REQUIRED | RFI required |
EXPIRED (VA expired), REJECTED (payment rejected, funds returned to source). Refunds use a separate RE* child (PAYIN_REFUND / PAYOUT_REFUND); the original VA* order stays SUCCESS. Details: VA · Statuses.orderId semantics across Convert / Wallet.Provision or retrieve receiving details
↓
Payer sends local-currency funds
↓
Receive PayIn webhook notification
↓
Query and reconcile the collection order
↓
Refund or use the available balanceorderId to query and reconcile the same PayIn order.200 means the application was accepted — not that the account exists. Track the outcome on Open Virtual Account Status and confirm it with Get VA Detail (GET /v1/virtual-account/sub/get).| Currency | Review required | Profile | Integration guide |
|---|---|---|---|
| BRL · Woovi | Yes | Name, tax identification number, country; no documents | BRL VA Opening |
| BRL · GOWD | Yes | Corporate STATIC; CNPJ, legal name, UBO, PEP declaration, three uploaded document categories | GOWD BRL Corporate VA Opening |
| VND | Yes | Individual: identity profile. Company: company profile, supporting documents, and the people behind the company | VND VA Opening |
| MXN · NGN · KES · GHS | No | Provisioned directly | — |
PROCESSING, then reaches SUCCESS or FAIL; do not require an INIT response first. See VA · Statuses.orderStatus=SUCCESS on the original VA* order.RE* child (PAYIN_REFUND / PAYOUT_REFUND).orderId as the unique identifier for tracking the order being notified.RE* child (businessType PAYIN_REFUND or PAYOUT_REFUND).VA* order orderStatus stays SUCCESS. Use refundStatus / refundOrderId on the original, and originalOrderId on the child.orderStatus=PROCESSING + refundStatus=REFUNDING → REFUNDED+REFUNDED or FAIL+REFUND_FAILED.RE* child, not original-order orderStatus=REFUNDED.orderId and merchant-side order records.orderId as the primary identifier for PayIn tracking.