BPN OpenAPI
  1. Webhooks & Events
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
      • Create Virtaul Account
      • Get Virtual Account Detail
      • List Virtual Account
      • Send Email Verify Code
      • Query bank info by account number
      • Payout via Virtual Account
      • Refund Virtual Account Order
      • Get Virtual Account Order Detail
      • List Virtual Account Orders
      • Submit Invoice
      • Get Invoice list Status
      • List Banks
      • Add Bank Account
      • List Bank Account
      • List RFI Sub Virtual Account
      • Get Sub Virtual Account RFI Template Info
      • Sub Virtual Account Submit RFI
    • 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
      POST
    • 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. Webhooks & Events

Virtual Account Payment Status

Webhook
POST
stablecoinPaymentResult
Notifies your server that a stablecoin payment created with Create Order has succeeded, failed, or expired.
Use the fields in this callback to update order status in your system and, if needed, query the full transaction with your own API.

Request

Header Params

Body Params application/json

Examples
{
    "eventId": "b271f38a-c45f-4348-ab04-0807be30c9d7",
    "eventType": "VIRTUAL_ACCOUNT_ORDER_UPDATED",
    "referenceId": "VA20251123093831400002",
    "status": "SUCCESS",
    "timestamp": 1763890710735,
    "data": {
        "requestId": "PAYOUT20250828150000812",
        "taskId": "",
        "orderId": "VA20251123093831400002",
        "businessType": "CASH_OUT",
        "currency": "BRL",
        "amount": 360.0,
        "orderStatus": "SUCCESS",
        "failCode": "",
        "failReason": "",
        "fromAccountId": "4",
        "fromAccountName": "3322",
        "fromAccountNumber": "",
        "fromAccountCnpjOrCpf": "03027123383271",
        "fromAccountBankCode": "",
        "toAccountId": "",
        "toAccountName": "Teste da Silva LTDA",
        "toAccountNumber": "1234567890",
        "toAccountCnpjOrCpf": "12345678912",
        "toAccountBankCode": "13140088",
        "transactionId": "EECU20251123093831400002",
        "createTime": 1763890682000,
        "completeTime": 1763890710679,
        "invoiceSubmitStatus": "",
        "invoiceId": ""
    }
}

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 'https://your-api-server.com' \
--header 'API-KEY: apikey ' \
--header 'API-TIMESTAMP: 1765454475759' \
--header 'API-SIGNATURE: d110004016a3cf2bfa06d57eaf850618c143f8aeb6e528882bd3811b2b988160' \
--header 'Content-Type: application/json' \
--data-raw '{
    "eventId": "b271f38a-c45f-4348-ab04-0807be30c9d7",
    "eventType": "VIRTUAL_ACCOUNT_ORDER_UPDATED",
    "referenceId": "VA20251123093831400002",
    "status": "SUCCESS",
    "timestamp": 1763890710735,
    "data": {
        "requestId": "PAYOUT20250828150000812",
        "taskId": "",
        "orderId": "VA20251123093831400002",
        "businessType": "CASH_OUT",
        "currency": "BRL",
        "amount": 360.0,
        "orderStatus": "SUCCESS",
        "failCode": "",
        "failReason": "",
        "fromAccountId": "4",
        "fromAccountName": "3322",
        "fromAccountNumber": "",
        "fromAccountCnpjOrCpf": "03027123383271",
        "fromAccountBankCode": "",
        "toAccountId": "",
        "toAccountName": "Teste da Silva LTDA",
        "toAccountNumber": "1234567890",
        "toAccountCnpjOrCpf": "12345678912",
        "toAccountBankCode": "13140088",
        "transactionId": "EECU20251123093831400002",
        "createTime": 1763890682000,
        "completeTime": 1763890710679,
        "invoiceSubmitStatus": "",
        "invoiceId": ""
    }
}'

Responses

🟢200OK
application/json
Body

Example
"string"
Previous
Open Virtual Account Status
Next
Virtual Account Invoice update
Built with