1. Payment Link
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
      • 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
        POST
      • List Payment links
        POST
      • Get Curreny Network Config
        GET
    • 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. Payment Link

List Payment links

POST
/v1/stable/collect/payment-links

Filter precedence#

The filters are not all combined. Exactly one of three branches runs, in this order.
BranchApplies whenWhat filters
1paymentId suppliedpaymentId alone
2no paymentId, requestId suppliedrequestId alone
3neither suppliedevery other filter, combined with AND
1.
paymentId wins outright. Every other filter is dropped, referencePaymentId included.
2.
requestId comes next. With paymentId absent and requestId present, every remaining
filter is dropped, referencePaymentId included. A blank requestId falls back to
userOrderNo — both match the same stored value, so they are not two independent filters.
Only primary Payment Links carry this value, so this branch never returns a child record.
3.
Otherwise the remaining filters combine with AND: recipientAccountId, fiatCurrency,
cryptoCurrency, supportCurrency, supportNetwork, paymentLinkType, statuses, the
startTime / endTime range, and either referencePaymentId or primaryOrderOnly. Supplying
referencePaymentId pages that parent's child records and makes primaryOrderOnly irrelevant;
without it, primaryOrderOnly defaults to true and limits the result to primary links.
Branch 3 returns newest first. Branches 1 and 2 match at most one record.

Query by merchant request ID#

Use requestId for an exact merchant request ID filter.

Primary payment links#

primaryOrderOnly defaults to true and returns only primary Payment Links. Set it to false to include
primary links and actual payment child records. It is ignored when referencePaymentId, paymentId or requestId is supplied.

Permanent child payments#

1.
referencePaymentId is optional; use a permanent parent Payment ID to page its actual payment records.
2.
referencePaymentId is ignored when paymentId or requestId is supplied — see Filter precedence.
3.
A child record returns referencePaymentId to identify its parent permanent Payment Link.

Status and completion#

processing means the payment is confirmed and merchant funds are still being processed. Treat a payment
as complete only when its status becomes completed.

Amount tolerance#

Each record reports the tolerance in effect for it in amountTolerance. mode NONE means the payment
had to match the expected amount exactly. Only One-Time links can carry a tolerance; see
POST /v1/stable/collect/create-payment-link for how the band is applied. Records for Payment Links
created before this release omit the field entirely — treat an absent amountTolerance as exact-amount
matching.

Deposit addresses#

addressList is returned only for links whose deposit addresses were pre-allocated at creation, which
depends on merchant configuration. Every other record omits it, and the payer obtains the address
through the hosted checkout link.

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
Body Params application/jsonRequired

Example
{
    "pageNum": 1,
    "pageSize": 20,
    "paymentId": "sample_paymentId",
    "referencePaymentId": "sample_parentPaymentId",
    "requestId": "sample_requestId",
    "userOrderNo": "mo_20260805_001",
    "recipientAccountId": "acc_recv_001",
    "fiatCurrency": "BRL",
    "cryptoCurrency": "USDT",
    "supportCurrency": "USDT",
    "supportNetwork": "ETH",
    "paymentLinkType": "permanent",
    "statuses": [],
    "primaryOrderOnly": true,
    "startTime": 1,
    "endTime": 1
}

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/stable/collect/payment-links' \
--header 'API-KEY: <api-key>' \
--header 'API-SIGNATURE: <api-key>' \
--header 'API-TIMESTAMP: <api-key>' \
--header 'Content-Type: application/json' \
--data '{
    "pageNum": 1,
    "pageSize": 20,
    "paymentId": "sample_paymentId",
    "referencePaymentId": "sample_parentPaymentId",
    "requestId": "sample_requestId",
    "userOrderNo": "mo_20260805_001",
    "recipientAccountId": "acc_recv_001",
    "fiatCurrency": "BRL",
    "cryptoCurrency": "USDT",
    "supportCurrency": "USDT",
    "supportNetwork": "ETH",
    "paymentLinkType": "permanent",
    "statuses": [],
    "primaryOrderOnly": true,
    "startTime": 1,
    "endTime": 1
}'

Responses

🟢200Success
application/json
Bodyapplication/json

Example
{
    "status": 200,
    "code": "SUCCESS",
    "msg": "ok",
    "data": {
        "pageNumber": 1,
        "pageSize": 20,
        "totalPage": 1,
        "totalRow": 1,
        "records": []
    },
    "traceId": "a1b2c3d4e5f6"
}
Previous
Create Payment Link
Next
Get Curreny Network Config
Built with