BPN OpenAPI
  1. Account Management
BPN OpenAPI
  • Getting Started
    • Introduction to BPN
    • Key Concepts & Terminology
    • Architecture Overview
  • Onboarding & Prerequisites
    • Product Demo
    • Sandbox & Test Environment
    • Signature Authentication Mechanism
  • Use Case
    • Transfer
    • Vault
    • On/Off Ramp
    • Compliance (Travel Rule Information Submission)
    • Fiat Collection(BRL PIX for example)
  • API Reference
    • Account Management
      • Inquiry Master VA Balance
        GET
      • Create Virtaul Account
        POST
      • Get Virtual Account Detail
        GET
      • List Virtual Account
        GET
      • Send Email Verify Code
        POST
      • Query bank info by account number
        POST
      • Payout via Virtual Account
        POST
      • Refund Virtual Account Order
        POST
      • Get Virtual Account Order Detail
        GET
      • List Virtual Account Orders
        GET
      • Submit Invoice
        POST
      • Get Invoice list Status
        GET
      • List Banks
        GET
      • Add Bank Account
        POST
      • List Bank Account
        GET
      • List RFI Sub Virtual Account
        GET
      • Get Sub Virtual Account RFI Template Info
        GET
      • Sub Virtual Account Submit RFI
        POST
    • Wallet
      • List Wallets
      • List Sub Account
      • Create Sub Account
      • Wallet Internal Transfer
      • 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
      • Create Payment Link
      • List Payment links
      • Get Curreny Network Config
    • Mock
      • Mock Virtual account Payin Order
  • 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
  • Appendix
    • Enum
    • Virtual Account(VA) Support List & KYB requirement
  • Release Notes & Changelog
    • Version History
  • 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 customer (sub-user)
Create for your own
1
Create Virtual Account
Simply call this endpoint and submit the required information to open a Virtual Account (VA) under your customer (sub-user).
All necessary KYB/KYC information for the customer should be prepared and included as specified in the request parameters.
For details on required verification fields, please refer to the KYB/KYC documentation below: Virtual Account(VA) Support List
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
Here is an example for MXN VA creation
{
    "currency": "MXN",
    "companyName": "Test Company",
    "accountSubType": "STATIC",
    "externalAccountId": "EX1231",
    "companyInfo": {
        "entityName": "Test Company",
        "incorporatedCountry": "MX",
        "incorporatedDate": "2024-05-24",
        "registrationNumber": "ABC210315K12",
        "companyAddress": "XXXX 217, XXXXXX, 64763,XXX City, Monterrey",
        "phoneNumber": "+5212345678",
        "email": "Ashleigh19@hotmail.com",
        "businessType": "B2B",
        "industry": "Private Education & Training Services"
    }
}

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 --request POST '/v1/virtual-account/sub/create' \
--header 'Content-Type: application/json' \
--data-raw '{
    "currency": "MXN",
    "companyName": "Test Company",
    "accountSubType": "STATIC",
    "externalAccountId": "EX1231",
    "companyInfo": {
        "entityName": "Test Company",
        "incorporatedCountry": "MX",
        "incorporatedDate": "2024-05-24",
        "registrationNumber": "ABC210315K12",
        "companyAddress": "XXXX 217, XXXXXX, 64763,XXX City, Monterrey",
        "phoneNumber": "+5212345678",
        "email": "Ashleigh19@hotmail.com",
        "businessType": "B2B",
        "industry": "Private Education & Training Services"
    }
}'

Responses

🟢200OK
application/json
Body

Examples
{
    "status": 200,
    "code": null,
    "msg": "OK",
    "data": {
        "virtualAccountId": "3121",
        "accountName": "apisuu mxn 123003",
        "accountNumber": "123456789",
        "currency": "MXN",
        "status": "success",
        "subAccountType": "STATIC",
        "bankName": "STP",
        "bankCode": "646",
        "externalAccountId": "EX1231"
    },
    "traceId": "Auto:79a6413a6e9b4f7e87c0ab5e738888df",
    "success": true
}
Previous
Inquiry Master VA Balance
Next
Get Virtual Account Detail
Built with