1. Account Management
BPN OpenAPI
  • Getting Started
    • Introduction to BPN
    • Architecture Overview
  • Onboarding & Prerequisites
    • Product Demo
    • Sandbox & Test Environment
    • Signature Authentication Mechanism
  • Use Case
    • Fiat Collection via Virtual Accounts & Local Collection Rails
    • Convert Stablecoins
    • Transfer
    • Wallet
    • Compliance (Travel Rule Information Submission)
    • RFI process
  • API Reference
    • KYB
      • Share KYB/KYC Info For Sub User
      • Get KYB Sub User Status
    • Account Management
      • Create Virtaul Account
        POST
      • List Primary Virtual Accounts
        GET
      • Inquiry Master VA Balance
        GET
      • Add Bank Account
        POST
      • List Bank Account
        GET
      • List Banks
        GET
      • Submit Invoice
        POST
      • Send Email Verify Code
        POST
      • List Virtual Account
        GET
      • List RFI Sub Virtual Account
        GET
      • Sub Virtual Account Submit RFI
        POST
      • Get Sub Virtual Account RFI Template Info
        GET
      • Get Virtual Account Detail
        GET
      • List Virtual Account Orders
        GET
      • Get Virtual Account Order Detail
        GET
      • Refund Virtual Account Order
        POST
      • Payout via Virtual Account
        POST
      • Query bank info by account number
        POST
      • Get Invoice list Status
        GET
    • Wallet
      • List Wallets
      • List Sub Account
      • Create Sub Account
      • Wallet Internal Transfer
      • Query Wallet Internal Transfer Detail
      • List Wallet Internal Transfer order
      • Get Asset Balance
      • Get Deposit Address
      • Add Deposit Sender
      • Add Withdraw Whitelist
      • Delete Withdraw Whiltelist
      • Request Withdraw
      • Query Transaction History
    • FX
      • Inquery FX Rate
    • BPN Transactions
      • Get Stablecoin Quote
      • Create Stable Order
      • Get Order (Single) Detail
      • List Orders(Batch)
    • Reconciliation
      • Get Reconciliation Order List By Page
    • Crypto Payment Link
      • Abnormal fund
        • Abnormal funds
        • Matchable Payment links
        • Link Order(Abnormal fund)
        • Submit to platform
      • Create Payment Link
      • List Payment links
      • Get Curreny Network Config
    • External Provider
      • FE: Create stablecoin collection sub-account link
      • Create stablecoin collection sub-account link
      • Get sub wallet account
      • List sub wallet accounts
      • Change sub wallet status
      • Query stablecoin collection order list
      • Query stablecoin collection order status
      • Get quote
      • Accept stablecoin collection order
      • Reject stablecoin collection order
      • Query USD balance
      • USD Payout (withdrawal)
      • Query USD Payout order status
      • Query USD Payout order list
    • Mock
      • Mock Virtual account Payin Order
      • Mock wallet deposit transaction
      • Mock Payin Order Refund
      • Mock Payout Order Update Status
    • Pay Session
      • Request Pay Session
  • Webhooks & Events
    • Resend Fail Webhook
    • Open Virtual Account Status
    • Virtual Account Payment Status
    • Virtual Account Invoice update
    • Transaction Status Notification
    • KYB Status Notification
    • Deposit Sender Detail Required
    • Abnormal Fund Notification
    • WALLET_TRANSFER_ORDER_UPDATED
    • Sub Virtual Account RFI Required
    • Sub Wallet Update
    • wallet address whitelist Copy
    • Crypto Deposit Order Notification
    • Collect Order Updated
    • Usd Payout Order Updated
    • onboard result
    • partner order status
    • PaymentLink Notification
  • Partner Flow
    • inquiry supported currency
    • KYC/KYB Sharing
    • inquiry onboard status
    • get price
    • Create order
    • order list
    • inquiry single order
    • get user deposit address
    • get payment instruction
    • sync fund notification
    • daily settlement records
  • Appendix
    • Enum
    • Virtual Account(VA) Support List & KYB requirement
  • Release Notes & Changelog
  1. Account Management

Payout via Virtual Account

POST
/v1/virtual-account/order/payout
Latest Update Date: 22 July, 2026
Use this API to initiate a local fiat payout from a Virtual Account to a beneficiary through the supported local payment network.
The payout is processed in the selected local currency and delivered to the beneficiary account information provided in the request.

Supported Currencies#

πŸ‡§πŸ‡· BRL β€” Brazilian Real
πŸ‡²πŸ‡½ MXN β€” Mexican Peso
πŸ‡³πŸ‡¬ NGN β€” Nigerian Naira
πŸ‡°πŸ‡ͺ KES β€” Kenyan Shilling
πŸ‡ΏπŸ‡¦ ZAR β€” South African Rand
πŸ‡¨πŸ‡΄ COP β€” Colombian Peso
[!NOTE]
The required beneficiary and bank account information may vary depending on the selected currency and destination country.

Processing and Status Tracking#

After the payout request is accepted:
1.
The system creates a payout order and returns its order information.
2.
The payout is submitted to the applicable local payment network.
3.
The merchant tracks the order until it reaches its final status.
The latest order status can be obtained through either:
Transaction order query: Actively query the payout order when the latest status is required. Link:Get Virtual Account Order Detail
Webhook notification: Receive asynchronous notifications when the payout status changes.Link: Virtual Account Payment Status

Woovi BRL Payout Refund β€” In Development#

The Payout refund functionality for Woovi BRL is currently under development. The specific ETA will be shared as soon as possible.
Once available, two linked transaction records will be used: one for the original Payout and one for the refund.
[!TIP]
Use webhook notifications for regular status updates and the transaction order query for verification or exception handling.

Request

Body Params application/json

Examples
{
    "requestId": "PAYOUT20250828150000812",
    "primaryAccountId": 10001,
    "currency": "BRL",
    "amount": 360,
    "accountName": "test 123",
    "accountNumber": "pixkey1234556",
    "accountEntityType": "Individual",
    "firstName": "test",
    "lastName": "123",
    "bankCountry": "BR"
}

Request Code Samples

Shell
JavaScript
Java
Swift
Go
PHP
Python
HTTP
C
C#
Objective-C
Ruby
OCaml
Dart
R
Request Request Example
Shell
JavaScript
Java
Swift
cURL
curl --location '/v1/virtual-account/order/payout' \
--header 'X-BPN-API-KEY: <api-key>' \
--header 'X-BPN-SIGNATURE: <api-key>' \
--header 'X-BPN-TIMESTAMP: <api-key>' \
--header 'Content-Type: application/json' \
--data '{
    "requestId": "PAYOUT20250828150000812",
    "primaryAccountId": 10001,
    "currency": "BRL",
    "amount": 360,
    "accountName": "test 123",
    "accountNumber": "pixkey1234556",
    "accountEntityType": "Individual",
    "firstName": "test",
    "lastName": "123",
    "bankCountry": "BR"
}'

Responses

🟒200OK
application/json
Bodyapplication/json

Example
{
    "status": 0,
    "message": "string",
    "data": {
        "requestId": "string",
        "orderId": "string",
        "status": "string"
    },
    "traceId": "string"
}
Previous
Refund Virtual Account Order
Next
Query bank info by account number
Built with