PROCESSING and theDEPOSIT_ORDER_NOTIFICATION when the deposit completes.PROCESSING until that sweep finishes, and becomes SUCCESSSUCCESS as soon as the review passes.Idempotency-Key header on writes. AllSUCCESS is not the signal that funds are spendable.PROCESSING with the money already available (auto-collection still running), and itPROCESSING with the money locked (review not finished). To know whether funds are usable, readcreditStatus from GET /v1/wallet/transaction/detail, or read the available balance fromGET /v1/wallet/asset-balance.Order status | whiteListStatus | creditStatus | Money spendable? |
|---|---|---|---|
PROCESSING | init | PENDING | No — submit payer details |
PROCESSING | pending | PENDING | No — under review |
PROCESSING | rejected | PENDING | No — resubmit |
PROCESSING | approved | CREDITED | Yes — sweep still running |
SUCCESS | approved | CREDITED | Yes |
GET /v1/wallet/deposit-whitelist/options — fetch the VASP / provider list. That is the endpoint'sPOST /v1/wallet/deposit-whitelist/addresses — submit the address and the payer details. Send theSG). There is no country enum to look up.GET /v1/wallet/deposit-whitelist/addresses/{id} — check the outcome:PROCESSING — under reviewACTIVE — approvedFAILED — rejected. Call POST /v1/wallet/deposit-whitelist/addresses/{id}/disable, then register aGET /v1/wallet/deposit-address):PROCESSING and the funds are in the unavailable balance of theDEPOSIT_ORDER_NOTIFICATION arrives with statusPROCESSING and whiteListStatus init. Supply the payer details. You can also pollGET /v1/wallet/transaction/list?whiteListStatus=init (or rejected) for the work queue.ACTIVE — the deposit does not enter the whitelist flow and never shows aDEPOSIT_ORDER_NOTIFICATION at SUCCESS, or pollGET /v1/wallet/transaction/detail.whiteListStatus turning approved is whatGET /v1/wallet/asset-balance hasPROCESSING while the funds areSUCCESS and you receive DEPOSIT_ORDER_NOTIFICATION, whose payload now carries whiteListStatus. YouGET /v1/wallet/transaction/list or GET /v1/wallet/transaction/detail.PROCESSING and the funds are in the unavailable balance of theDEPOSIT_ORDER_NOTIFICATION arrives with whiteListStatus init; you can also readGET /v1/wallet/transaction/list?whiteListStatus=init for the deposits awaiting details.GET /v1/wallet/deposit-whitelist/options for the provider list.POST /v1/wallet/deposit-whitelist/transactions/{transactionId}/submit — submit the payer details. Do200 means the submission was accepted, not thatwhiteListStatus and failMessage in the response data, since the channelrejected.GET /v1/wallet/transaction/detail — track progress, including whiteListStatus.whiteListStatus becomes approved and the available balance of the receiving walletPROCESSING.whiteListStatus comes back as rejected on DEPOSIT_ORDER_NOTIFICATION. The order staysPROCESSING and the funds stay in the unavailable balance. Fix what failMessage reports and submitSUCCESS and you receiveDEPOSIT_ORDER_NOTIFICATION.whiteListStatus init or rejected; the only notification is DEPOSIT_ORDER_NOTIFICATIONPOST /v1/wallet/create/sub — create the sub-wallet and take its walletId.POST /v1/wallet/deposit-whitelist/wallets/{walletId}/profile — store the payer details.PUT /v1/wallet/deposit-whitelist/wallets/{walletId}/profile — replace them when they change. Send theGET /v1/wallet/deposit-whitelist/wallets/{walletId}/profile — read them back. data is null when200, not an error.walletAddress, network, memo or symbol. That is thewhiteListStatusinit. It moves to approved when the review passes, or rejected if it does not.ACTIVE, and it does not retroactively clear a deposit already sitting at initrejected — handle those one at a time with the path 2 submit call.correspondentType | Mandatory | Must NOT be sent |
|---|---|---|
ENTITY | fullName, countryCode, companyAddress | firstName, lastName, birthday, residentialAddress |
INDIVIDUAL | firstName, lastName, birthday (yyyy-MM-dd), countryCode, residentialAddress | fullName |
walletType | Also mandatory |
|---|---|
VASP | provider — must be a name from GET /v1/wallet/deposit-whitelist/options |
OTHERS | othersPleaseSpecify, max 255 characters |
SELF_HOSTED | — |
walletLabel max 50 characters; symbol may be empty when addressType is UNIVERSAL;memo only where the network uses one.countryCode is an ISO 3166-1 alpha-2 code such as SG. The platform converts it to whatever countrycountryInfo was withdrawn — do not send it. An unrecognised codeprovider returns 10000103.statusGET /v1/wallet/transaction/list, GET /v1/wallet/transaction/detail and the deposit webhooks.| Value | Meaning |
|---|---|
PROCESSING | Deposit in progress — awaiting whitelist, under review, or credited but not yet swept |
SUCCESS | Deposit fully complete, including auto-collection where enabled |
FAIL | Deposit failed |
creditStatus, orGET /v1/wallet/asset-balance.whiteListStatusDEPOSIT_ORDER_NOTIFICATION and Collect Order Updated. Values are lowercase.| Value | Meaning |
|---|---|
init | Travel Rule details not submitted yet |
pending | Submitted, under review |
approved | Passed — the gate is cleared. The order may still be PROCESSING |
rejected | Rejected, resubmit required |
submitStatuswas withdrawn. UsewhiteListStatuseverywhere.
creditStatus| Value | Meaning |
|---|---|
PENDING | Not yet in the available balance of the receiving wallet |
CREDITED | In the available balance of the receiving wallet. The order may still be PROCESSING |
BLOCKED | Could not be credited — contact support |
status| Value | Meaning |
|---|---|
PROCESSING | Submitted, under review |
ACTIVE | Approved |
FAILED | Rejected |
eventId.data.whiteListStatus.| Event | Gate — payer details needed | Order finished |
|---|---|---|
DEPOSIT_ORDER_NOTIFICATION | status PROCESSING with whiteListStatus init or rejected | status SUCCESS, normally whiteListStatus approved |
Collect Order Updated | orderStatus PROCESSING with whiteListStatus init or rejected | orderStatus SUCCESS |
WALLET_ADDRESS_UPDATED | — | Source address moved to ACTIVE or FAILED |
ACTIVE never shows a gate. It does not enter the whitelistwhiteListStatus arrives as approved or null and the only notification you receive is theGET /v1/wallet/transaction/list?whiteListStatus=init|rejected and call thecreditStatus for spendability; completion is the order webhook reaching SUCCESS.200 and business status 200:{
"status": 200,
"code": null,
"msg": "OK",
"traceId": "…",
"data": {}
}status 500 with a code from the table at the bottom of this page.| Scenario | Method | Path |
|---|---|---|
| Provider list | GET | /v1/wallet/deposit-whitelist/options |
| Register source address | POST | /v1/wallet/deposit-whitelist/addresses |
| List source addresses | GET | /v1/wallet/deposit-whitelist/addresses |
| Source address detail | GET | /v1/wallet/deposit-whitelist/addresses/{id} |
| Disable source address | POST | /v1/wallet/deposit-whitelist/addresses/{id}/disable |
| Submit for a received deposit | POST | /v1/wallet/deposit-whitelist/transactions/{transactionId}/submit |
| Whitelist case for one deposit | GET | /v1/wallet/deposit-whitelist/cases/{transactionId} |
| Store sub-wallet payer profile | POST | /v1/wallet/deposit-whitelist/wallets/{walletId}/profile |
| Replace sub-wallet payer profile | PUT | /v1/wallet/deposit-whitelist/wallets/{walletId}/profile |
| Read sub-wallet payer profile | GET | /v1/wallet/deposit-whitelist/wallets/{walletId}/profile |
| Transaction detail | GET | /v1/wallet/transaction/detail |
| Method | Path | Purpose / change |
|---|---|---|
| GET | /v1/wallet/deposit-address | Deposit address |
| POST | /v1/wallet/create/sub | Create a sub-wallet |
| GET | /v1/wallet/asset-balance | Available / unavailable balance |
| GET | /v1/wallet/transaction/list | New: whiteListStatus filter and response field. Replaces the pending list |
| GET | /v1/wallet/transaction/detail | New: transaction detail carrying whiteListStatus |
| GET | /v2/stable/collect/order-status | New: whiteListStatus in the response |
| Webhook | DEPOSIT_ORDER_NOTIFICATION | New: whiteListStatus |
| Webhook | Collect Order Updated | New: whiteListStatus |
POST /v1/wallet/add-withdraw-whitelist. This page isGET /v1/wallet/deposit-whitelist/cases/{transactionId} returns the whitelist gate of one deposit in apayerWhitelist — the payer's Travel RulefailMessage when it was sentGET /v1/wallet/transaction/detail tells you the transactionwhiteListStatus; it does not carry the payer's whitelist record.payerWhitelist is null until payer details have been submitted or matched. A deposit that never went10000100 — read that one withGET /v1/wallet/transaction/detail.| Item | Replacement |
|---|---|
GET /v1/wallet/deposit-whitelist/pending-list | GET /v1/wallet/transaction/list with whiteListStatus |
submitStatus | whiteListStatus, with lowercase init / pending / approved / rejected |
Country enum in /options | Send countryCode as an ISO 3166-1 alpha-2 code |
countryInfo in requests | Not needed — derived from countryCode server-side |
code is an 8-digit string from WalletErrorCode.code | Meaning | Safe to retry unchanged? |
|---|---|---|
10000100 | Transaction not found, or not owned by the caller | No — re-read GET /v1/wallet/transaction/list?whiteListStatus=init |
10000101 | Review already completed for this deposit | No — nothing left to do |
10000102 | Payer details incomplete | No — add the missing fields |
10000103 | Field value not accepted, including an invalid countryCode or unknown provider | No — use an ISO 3166-1 alpha-2 code and a provider from /options |
10000104 | Cannot submit right now | Yes, later — poll the status. Do not edit the details and retry immediately |
10000105 | Duplicate request | No — read the original result |
10000106 | Source address supplied or changed for a received deposit | No — drop walletAddress / network / memo / symbol / txHash |
10000107 | Wallet invalid, or the sub-wallet has not been created | No — create the sub-wallet first |