1. Deposit Whitelist
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 · Currencies & limits
      • VA · Payout
      • VA · RFI
    • Wallet
      • Wallet · Withdraw
      • Wallet · Transfer
      • Wallet · Assets & limits
      • Wallet · Deposit whitelist
      • Wallet Overview
      • Wallet · Deposit
      • Wallet · Statuses
    • 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
          GET
        • Register Deposit Source Address
          POST
        • List Deposit Source Addresses
          GET
        • Get Deposit Source Address
          GET
        • Disable Deposit Source Address
          POST
        • Submit Payer Details for a Received Deposit
          POST
        • Save Sub-wallet Payer Profile
          POST
        • Update Sub-wallet Payer Profile
          PUT
        • Get Sub-wallet Payer Profile
          GET
      • Get Asset Balance
        GET
      • Get Deposit Address
        GET
      • Add Deposit Sender
        POST
      • Add Withdraw Whitelist
        POST
      • Delete Withdraw Whiltelist
        POST
      • Request Withdraw
        POST
      • Query Wallet Internal Transfer Detail
        GET
      • List Wallet Internal Transfer order
        GET
      • Wallet Internal Transfer
        POST
      • Create Sub Account
        POST
      • Query Transaction History
        GET
      • List Wallets
        GET
      • List Sub Account
        GET
      • Get Transaction Detail
        GET
    • 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
    • Mock
      • Mock Virtual account Payin Order
      • Mock wallet deposit transaction
      • Mock Payin Order Refund
      • Mock Payout Order Update Status
    • Pay Session
      • Request Pay Session
  • Webhooks
    • Webhooks Overview
    • KYB notifications
    • Event catalogue
    • 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
    • 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
    • inquiry supported currency
    • KYC/KYB Sharing
    • inquiry onboard status
    • get price
    • Create order
    • order list
    • inquiry single order
    • get user deposit address
    • get payment instruction
    • sync fund notification
    • daily settlement records
  • 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. Deposit Whitelist

Save Sub-wallet Payer Profile

Designing
POST
/v1/wallet/deposit-whitelist/wallets/{walletId}/profile

Save Sub-wallet Payer Profile#

POST /v1/wallet/deposit-whitelist/wallets/{walletId}/profile
Stores the payer details that apply to every deposit into this sub-wallet.

When this is the right tool#

Use it when one sub-wallet always receives from one payer, and that payer may send from more than one
source address
. You store the payer once against the sub-wallet instead of registering every address, or
answering DEPOSIT_WHITELIST_REQUIRED for every new one.
A deposit arriving from an address this sub-wallet has not seen before still goes through review — but
nothing is asked of you, because the details are already on file. No DEPOSIT_WHITELIST_REQUIRED is raised.
You receive DEPOSIT_WHITELIST_CREDITED when the review passes, or DEPOSIT_WHITELIST_FAILED if it does
not. Once an address has been approved this way, later deposits from it skip the whitelist flow entirely,
exactly as if you had registered it up front.
Nothing address-shaped belongs in the body. No walletAddress, network, memo or symbol — the
whole point is that the payer is fixed and the address set is not. The platform pairs the stored payer with
whatever address the money actually came from.
Get the walletId from POST /v1/wallet/create/sub.
A stored profile can be replaced with PUT, but it cannot be switched off. Storing one does not re-submit source addresses that are already approved, and it does not clear deposits that are already init or rejected — handle those one at a time with POST /v1/wallet/deposit-whitelist/transactions/{transactionId}/submit.

Payer fields#

correspondentTypeMandatoryMust NOT be sent
ENTITYfullName, countryCode, companyAddressfirstName, lastName, birthday, residentialAddress
INDIVIDUALfirstName, lastName, birthday (yyyy-MM-dd), countryCode, residentialAddressfullName
walletTypeAlso mandatory
VASPprovider — a name from GET /v1/wallet/deposit-whitelist/options
OTHERSothersPleaseSpecify, max 255 characters
SELF_HOSTED—
countryCode is an ISO 3166-1 alpha-2 code such as SG. Do not send countryInfo.

Errors#

codeMeaning
10000102Payer details incomplete for the given correspondentType
10000103Field value not accepted, including an invalid countryCode or unknown provider
10000105Duplicate request
10000107Wallet invalid, or the sub-wallet has not been created
Guide: Wallet · Deposit whitelist

Request

Authorization
API Key
Add parameter in header
API-KEY
Example:
API-KEY: ********************
API Key
Add parameter in header
API-SIGNATURE
Example:
API-SIGNATURE: ********************
API Key
Add parameter in header
API-TIMESTAMP
Example:
API-TIMESTAMP: ********************
or
Path Params

Header Params

Body Params application/json

Example
{
    "requestId": "b0f4c6a2-7d51-4c0e-9a2f-6f7c1e2d3b40",
    "walletLabel": "Payport Limited",
    "walletType": "VASP",
    "provider": "Binance",
    "othersPleaseSpecify": "",
    "correspondentType": "ENTITY",
    "fullName": "Payport Limited",
    "firstName": "Alex",
    "lastName": "Tan",
    "birthday": "1990-01-31",
    "countryCode": "SG",
    "companyAddress": "Tampines Blk67, Singapore",
    "residentialAddress": "12 Bedok North Ave 4, Singapore"
}

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 '/v1/wallet/deposit-whitelist/wallets/3095/profile' \
--header 'Idempotency-Key: a3f1c2de-6f0b-4a1e-9e3b-2b7c5f0d1a44' \
--header 'API-KEY: <api-key>' \
--header 'API-SIGNATURE: <api-key>' \
--header 'API-TIMESTAMP: <api-key>' \
--header 'Content-Type: application/json' \
--data '{
    "requestId": "b0f4c6a2-7d51-4c0e-9a2f-6f7c1e2d3b40",
    "walletLabel": "Payport Limited",
    "walletType": "VASP",
    "provider": "Binance",
    "othersPleaseSpecify": "",
    "correspondentType": "ENTITY",
    "fullName": "Payport Limited",
    "firstName": "Alex",
    "lastName": "Tan",
    "birthday": "1990-01-31",
    "countryCode": "SG",
    "companyAddress": "Tampines Blk67, Singapore",
    "residentialAddress": "12 Bedok North Ave 4, Singapore"
}'

Responses

🟢200OK
application/json
Bodyapplication/json

Examples
{
  "status": 200,
  "code": null,
  "msg": "OK",
  "traceId": "Auto:bf288b9af2e04dff88e943f2dcaf2b03",
  "data": {
    "walletId": "3095",
    "walletLabel": "Payport Limited",
    "walletType": "VASP",
    "provider": "Binance",
    "othersPleaseSpecify": null,
    "correspondentType": "ENTITY",
    "fullName": "Payport Limited",
    "firstName": null,
    "lastName": null,
    "birthday": null,
    "countryCode": "SG",
    "companyAddress": "Tampines Blk67, Singapore",
    "residentialAddress": null,
    "createTime": "2026-09-08T09:12:00Z",
    "updateTime": "2026-09-08T09:12:00Z"
  }
}
Previous
Submit Payer Details for a Received Deposit
Next
Update Sub-wallet Payer Profile
Built with