1. Webhooks
BPN OpenAPI
  • Get started
    • Introduction to BPN
    • Introduction to API
    • Architecture Overview
    • Authentication
    • Environments
    • Response envelope
    • Idempotency
  • Guides
    • Virtual Account
      • Virtual Account Overview
      • VA · Payin
      • VA · Statuses
      • VA · Payout
      • VA · RFI
      • VA · Currencies & limits
      • VA Opening
        • VND VA Opening
        • BRL VA Opening
    • Wallet
      • Wallet · Transfer
      • Wallet · Assets & limits
      • Wallet · Deposit whitelist
      • Wallet · PaymentLink
      • Wallet Overview
      • Wallet · Deposit
      • Wallet · Statuses
      • Wallet · Withdraw
    • Convert
      • Convert Overview
      • Convert · Quote & submit
      • Convert · Business types
      • Convert · Pairs & limits
      • Convert · Statuses
  • API Reference
    • Virtual Account
      • Virtual Account field notes
      • Inquiry Master VA Balance
      • List Primary Virtual Accounts
      • Create Virtual Account
      • Get Virtual Account Detail
      • List Virtual Account
      • List Virtual Account Orders
      • Get Virtual Account Order Detail
      • Refund Virtual Account Order
      • List RFI Sub Virtual Account
      • Get Sub Virtual Account RFI Template Info
      • Sub Virtual Account Submit RFI
      • Add Bank Account
      • List Bank Account
      • List Banks
      • Payout via Virtual Account
      • Send Email Verify Code
    • Wallet
      • Wallet field notes
      • Deposit Whitelist
        • Get Deposit Whitelist Options
        • Register Deposit Source Address
        • List Deposit Source Addresses
        • Get Deposit Source Address
        • Disable Deposit Source Address
        • Submit Payer Details for a Received Deposit
        • Save Sub-wallet Payer Profile
        • Update Sub-wallet Payer Profile
        • Get Sub-wallet Payer Profile
        • Get Deposit Whitelist Case
      • Get Asset Balance
      • Get Deposit Address
      • Add Deposit Sender
      • Add Withdraw Whitelist
      • Delete Withdraw Whiltelist
      • Request Withdraw
      • Query Wallet Internal Transfer Detail
      • List Wallet Internal Transfer order
      • Wallet Internal Transfer
      • Create Sub Account
      • Query Transaction History
      • List Wallets
      • List Sub Account
      • Get Transaction Detail
      • List Wallet Transactions
      • Get Wallet Transaction Detail
    • 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
    • Convert
      • Convert field notes
      • Inquery FX Rate
      • Get Stablecoin Quote
      • Create Stable Order
      • Get Order (Single) Detail
      • List Orders(Batch)
    • KYB
      • Share KYB/KYC Info For Sub User
      • Get KYB Sub User Status
    • Reconciliation
      • Get Reconciliation Order List By Page
    • External Provider
      • FE: Create stablecoin collection sub-account link
      • FE: Deposit Travel Rule
      • External Provider · Deposit whitelist
      • 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
      • Create deposit Travel Rule link
      • Create deposit Travel Rule detail link
    • Mock
      • Mock Virtual account Payin Order
      • Mock wallet deposit transaction
      • Mock Payin Order Refund
      • Mock Payout Order Update Status
    • Pay Session
      • Request Pay Session
    • Files
      • Request File Upload URL
  • Webhooks
    • Webhooks Overview
    • KYB notifications
    • Event catalogue
    • 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
    • Abnormal Fund Notification
    • WALLET_TRANSFER_ORDER_UPDATED
    • Sub Virtual Account RFI Required
    • Sub Wallet Update
    • wallet address whitelist Update
    • Crypto Deposit Order Notification
    • Collect Order Updated
    • Usd Payout Order Updated
    • onboard result
    • partner order status
    • PaymentLink Notification
    • Deposit Whitelist Notification
  • Partner Flow
    • Share KYB/KYC and open account directly
    • Get KYB/KYC submit + open account status
    • Get Stablecoin Quote
    • Create Stable Order
    • Get Order (Single) Detail
    • List Orders(Batch)
    • Submit hash
  • Appendix
    • Enums quick reference
    • Enum
    • Virtual Account(VA) Support List & KYB requirement
  • Release Notes & Changelog
  • Errors
    • Error codes catalogue
  • Change Log
    • 2026-09-21 Virtual Account independent refund orders
    • Wallet deposit source-address whitelist
  1. Webhooks

Event catalogue

Event catalogue (eventType)#

Matches code StableWebhookEvent literally.
Envelope: Virtual Account Overview.

Full table#

eventTypeProductScenarioGuide
VIRTUAL_ACCOUNT_UPDATEDVAAccount statusvirtual-account
VIRTUAL_ACCOUNT_ORDER_UPDATEDVAPayin/Payout ordervirtual-account
SUB_VIRTUAL_ACCOUNT_RFI_REQUIREDVARFI requiredvirtual-account
STABLE_ORDER_UPDATEDConvertFX orderconvert
DEPOSIT_ORDER_NOTIFICATIONWalletDeposit progress and completion — carries whiteListStatuswallet
DEPOSIT_SENDER_DETAIL_UPDATEDWalletDeposit senderwallet
WALLET_ADDRESS_UPDATEDWalletAddress updatewallet
WALLET_WITHDRAW_UPDATEDWalletWithdrawwallet
WALLET_TRANSFER_ORDER_UPDATEDWalletInternal transferwallet
SUB_WALLET_UPDATEDWallet / V2Sub-walletwallet / excluded
PAYMENT_LINK_UPDATEDPayment Link v1Payment linkexcluded
UNALLOCATED_FUND_RECEIVEDPayment Link v1Unallocated fundsexcluded
COLLECT_ORDER_UPDATEDCollect v2Collect order — carries whiteListStatusexcluded
USD_PAYOUT_ORDER_UPDATEDCollect v2USD payoutexcluded

Convert example#

{
  "eventId": "550e8400-e29b-41d4-a716-446655440000",
  "eventType": "STABLE_ORDER_UPDATED",
  "referenceId": "ord_123",
  "status": "success",
  "timestamp": 1690000000000,
  "data": {
    "orderId": "ord_123",
    "merchantOrderId": "m_001",
    "orderStatus": "success",
    "businessType": "STABLE_BUY"
  }
}

VA refund events (this release)#

VIRTUAL_ACCOUNT_ORDER_UPDATED covers original pay-in/payout and independent RE* refund children.
Terminal refund notification is the RE* payload (businessType PAYIN_REFUND / PAYOUT_REFUND).
Do not treat original-order orderStatus=REFUNDED as the refund terminal event.
Webhook envelope status follows the child's orderStatus: PROCESSING / REFUNDED / FAIL. Order state in data is orderStatus.

Wallet deposit-whitelist events (this release)#

Deposited funds stay in the unavailable balance of the receiving wallet until the payer source address is
whitelisted and the payer details pass review.
There is no standalone whitelist event. The gate rides on the order webhook you already consume, as
data.whiteListStatus.
Your floweventTypePayer details neededOrder finished
Plain wallet depositsDEPOSIT_ORDER_NOTIFICATIONstatus PROCESSING with whiteListStatus init or rejectedstatus SUCCESS, normally whiteListStatus approved
Collection / payment-link ordersCOLLECT_ORDER_UPDATEDorderStatus PROCESSING with whiteListStatus init or rejectedorderStatus SUCCESS
Source-address reviewWALLET_ADDRESS_UPDATED—Address moved to ACTIVE or FAILED
Answer a gate with POST /v1/wallet/deposit-whitelist/transactions/{transactionId}/submit.
A deposit from an already whitelisted address never shows a gate. Once the source address is ACTIVE,
later deposits from it skip the whitelist flow and arrive with whiteListStatus approved or null. A
handler that waits for a gate before booking repeat deposits will stall.
Whitelist approval is not announced on its own, and neither is the moment the funds become spendable.
Completion is the order webhook reaching SUCCESS.
whiteListStatus replaces submitStatus and is lowercase: init · pending · approved · rejected.
Poll GET /v1/wallet/transaction/list?whiteListStatus=init|rejected when webhooks are missed; pending-list was removed.
COLLECT_ORDER_UPDATED also carries whiteListStatus for gated collection orders.
Guide: Wallet · Deposit whitelist.
Previous
KYB notifications
Next
Resend Fail Webhook
Built with