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

List Virtual Account

GET
/v1/virtual-account/sub/list
Purpose:
To retrieve a list of virtual accounts created under a business or its sub-users, with support for filtering by account details, currency, creation date, and pagination.
What this endpoint does:
Returns detailed information about virtual accounts, including account numbers, bank details, status, and associated user/sub-user IDs. This endpoint is useful for operational tracking, reconciliation, customer service support, and back-office reporting.
Keynotes:
Supports multiple filters such as accountId, subUserId, currency, and creation time range (startTimestamp, endTimestamp).
Pagination parameters pageNum and pageSize help manage large result sets.
Returned account details may vary depending on currency and jurisdiction — e.g., IBAN and SWIFT codes may not be applicable in all cases.
Account status values typically include:
INIT: Account creation initiated but not yet active
SUCCESS: Account successfully created and active
FAIL: Account creation failed
Useful for listing all virtual accounts associated with a business for audit, support, or transaction routing purposes.
traceId is always returned for troubleshooting and request correlation.

Request

Query Params

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 --location --request GET '/v1/virtual-account/sub/list?accountId=&accountName=&currency=&startTime=&endTime=&pageNum=0&pageSize=0&externalAccountId'

Responses

🟢200OK
application/json
Body

Example
{
    "status": 200,
    "data": {
        "pageNumber": 55,
        "pageSize": 8,
        "totalPage": 69,
        "totalRow": 73,
        "records": [
            {
                "virtualAccountId": "6",
                "externalAccountId": "42",
                "accountName": "Investment Account",
                "bankName": "Test Bank",
                "currency": "BRL",
                "status": "SUCCESS",
                "qrCode": "58",
                "qrCodeImage": "https://loremflickr.com/400/400?lock=8282583396766534",
                "subAccountType": "consequat sit cillum pariatur aute",
                "expireTime": "2025-12-16 02:43:52",
                "amount": "411.89",
                "pixKeyType": "DYNAMIC",
                "pixKey": "XXXXXXXXX",
                "rfiStatus": "AWAITING_SUBMISSION"
            },
            {
                "virtualAccountId": "30",
                "externalAccountId": "79",
                "accountName": "Savings Account",
                "bankName": "Bessie Boehm",
                "currency": "velit eu dolore",
                "status": "velit Duis cillum dolore",
                "qrCode": "71",
                "qrCodeImage": "https://loremflickr.com/400/400?lock=1490647520379366",
                "subAccountType": "incididunt proident ex",
                "expireTime": "2025-12-16 11:07:54",
                "amount": "810.49",
                "pixKeyType": "fugiat aliquip ex eiusmod deserunt",
                "pixKey": "dolor et Duis dolore Lorem",
                "rfiStatus": "AWAITING_SUBMISSION"
            },
            {
                "virtualAccountId": "15",
                "externalAccountId": "67",
                "accountName": "Personal Loan Account",
                "bankName": "Ms. Chelsea Boyle PhD",
                "currency": "ut pariatur reprehenderit eiusmod tempor",
                "status": "nulla in pariatur",
                "qrCode": "57",
                "qrCodeImage": "https://loremflickr.com/400/400?lock=129177682950569",
                "subAccountType": "est aliquip minim",
                "expireTime": "2025-12-16 00:24:58",
                "amount": "197.39",
                "pixKeyType": "ex ullamco incididunt est",
                "pixKey": "laborum sunt ut",
                "rfiStatus": "SUBMITTED"
            }
        ]
    },
    "traceId": "52"
}
Previous
Get Virtual Account Detail
Next
Send Email Verify Code
Built with