BPN
  1. Account Management
BPN
  • Getting Started
    • Introduction to BPN
    • Key Concepts & Terminology
    • Architecture Overview
  • Onboarding & Prerequisites
    • Product Demo
    • Sandbox & Test Environment
  • Use Case
    • Transfer
    • Vault
    • On/Off Ramp
    • Compliance (Travel Rule Information Submission)
  • API Reference
    • KYB
      • Share KYB Info For Sub User
      • Get KYB Sub User Status
    • Account Management
      • add bank account
        POST
      • list bank account
        GET
      • create virtaul account
        POST
      • list virtual account
        GET
      • Master VA balance inquiry
        GET
      • list virtual account orders
        GET
      • refund virtual account order
        POST
    • Wallet
      • Get Asset Balance
      • Get Deposit Address
      • Add Deposit Sender
      • Add Withdraw Whitelist
      • Delete Withdraw Whiltelist
      • Request Withdraw
      • Query Transaction History
    • FX
      • fx inquery
    • BPN Transactions
      • get stablecoin quote
      • create stable order
      • get order (single) detail
      • list orders(batch)
    • Reconciliation
  • Webhooks & Event
    • resend fail webhook
      POST
    • KYB Status Notification
      POST
    • Transaction Status Notification
      POST
    • Account Status Notification
      POST
    • Open Virtual Account Status
      POST
    • Deposit Sender Detail Required
      POST
    • virtual account payment status
      POST
  • Appendix
    • Enum
    • Virtual Account(VA) Support List
  • Release Notes & Changelog
    • Version History
  • Schemas
    • Schemas
      • walletBalance
      • walletAddress
      • transactionRecord
  1. Account Management

create virtaul account

POST
/v1/virtual-account/sub/create
This endpoint lets you create a fiat receiving account (Virtual Account, “VA”) for a specific currency. A VA is a bank-style deposit handle issued to you (or to your end-customer under your tenancy) so funds can be received and reconciled automatically and later used in transfer flows.
💡
Supported VA types & rails: see Supported Virtual Accounts (link to be provided). Different rails may have different attributes (e.g., bank code, branch, IBAN/CLABE/PIX key).
Currency: pass the 3-letter ISO 4217 code (e.g., BRL, USD, EUR). The VA will be issued on the corresponding fiat rail for that currency.
Two creation modes
Create for your own
Create for your customer (sub-user)
1
First Step
Provide only the currency.
2
Second Step
A VA will be issued in your merchant’s name. Use it to collect funds that will be settled into your BPN balance and available for subsequent FX/transfer operations.
Notes
The response returns the virtual account details issued by the rail (e.g., account number / bank code / holder name / PIX key, depending on the rail).
Use the VA only for the specified currency. Cross-currency deposits are not supported.
For compliance (e.g., Travel Rule / payer data), some rails may require payer metadata at deposit time; follow the rail-specific guidance in the Supported Virtual Accounts page.
To remove a VA that is no longer needed, use the Delete Account endpoint.

Request

Body Params application/json

Examples

Responses

🟢200OK
application/json
Body

Request Request Example
Shell
JavaScript
Java
Swift
curl --location --request POST '/v1/virtual-account/sub/create' \
--header 'Content-Type: application/json' \
--data-raw '{
    "currency": "string",
    "companyName": "string",
    "accountSubType": "STATIC"
}'
Response Response Example
{
    "status": 0,
    "message": "string",
    "data": {
        "virtualAccountId": "string",
        "accountName": "string",
        "currency": "string",
        "status": "string",
        "qrCode": "string",
        "qrCodeImage": "string",
        "subAccountType": "string",
        "expireTime": "string"
    },
    "traceId": "string"
}
Modified at 2025-09-10 15:49:40
Previous
list bank account
Next
list virtual account
Built with