Added
Crypto withdrawal addresses: registration, ownership verification and withdrawals
9 days ago by Lim Zi Xuan
You can now register your own crypto wallet as a withdrawal destination, prove you own it, and withdraw to it. Withdrawals only go to addresses that have been verified (active).
Impact
- Breaking change: No. This adds new endpoints and fields. Existing integrations keep working.
- Who is affected: Platform clients who want to withdraw crypto, for their own platform-level wallets or on behalf of a managed account.
Endpoints
- Register a crypto external address -
POST /external-addresses - Get an external address by id -
GET /external-addresses/{externalAddressId} - List external addresses -
GET /external-addresses - Delete an external address -
DELETE /external-addresses/{externalAddressId} - Create a withdrawal -
POST /withdrawals - Get a withdrawal by id -
GET /withdrawals/{withdrawalId}
How verification and withdrawal works
- Register the address. It starts as pending.
- It becomes active once risk screening passes and you prove ownership with a satoshi test. This is a small test transfer.
- A few seconds after registration, call Get an external address by id.
satoshiTestis null until the test amount is issued, so poll briefly. - Send exactly
satoshiTest.amountfrom the registered address to the account's own payouts wallet on the same network, beforeexpiresAt. A deposit to any other wallet doesn't count. - Once the test succeeds,
ownershipVerification.statusbecomes verified and the address becomes active. You can then withdraw to it. - When withdrawal status gets updated, you will receive webhooks accordingly via the withdrawal_status_update events.

