Withdrawals
Requesting a withdrawal to a destination held on file, listing outstanding requests and cancelling one.
A withdrawal is a request, not an instruction. You submit one, it is reviewed, and while it is outstanding you can list it or cancel it. Crypto and fiat are separate endpoints throughout — pick one below and the page follows.
POST /api/3/withdrawal/crypto # request a digital-asset withdrawal
POST /api/3/withdrawal/fiat # request a fiat withdrawal
POST /api/3/withdrawal/crypto/list # outstanding and past crypto requests
POST /api/3/withdrawal/fiat/list # outstanding and past fiat requests
POST /api/3/withdrawal/crypto/{uuid}/cancel
POST /api/3/withdrawal/fiat/{uuid}/cancel
The destination is held on file. A request names a registered wallet
(walletParticipantUuid) or bank account (bankAccountUuid) rather than a raw
address or account number — which is why the
settlement party records carry
whitelisted and verified per destination.
All six calls require a credential with permission to move funds.
On cancel, the {uuid} in the path identifies the request. The account group
travels in the signed body, not the query string: the request signature
covers the endpoint and body only, so a value on the URL is not signed and is
not read.
Request
Fields marked required are declared optional in source and then rejected when absent, so the Required column on those is authored here rather than read from the class.
| Field | Type | Required | Notes |
|---|---|---|---|
nonce | string | Optional | A counter that must increase with each request. An alternative to tonce; send one or the other |
tonce | string | Optional | The current Unix time in microseconds. Send this or nonce — a request with neither is rejected, and each value must be higher than the last one used by the key |
userUuid | string | Optional | The user the credentials act for. Set automatically from the API key; sending it has no effect |
accountGroupUuid | string | Required | The account group to withdraw from |
ccy | string | Required | The digital asset to withdraw |
amount | decimal | Required | How much to withdraw. Must be positive |
walletParticipantUuid | string | Required | The registered wallet to withdraw to |
clientComment | string | Optional | Free text kept with the request — up to 1024 characters |
Cancel request
Sent with the request's uuid in the path.
| Field | Type | Required | Notes |
|---|---|---|---|
nonce | string | Optional | A counter that must increase with each request. An alternative to tonce; send one or the other |
tonce | string | Optional | The current Unix time in microseconds. Send this or nonce — a request with neither is rejected, and each value must be higher than the last one used by the key |
userUuid | string | Optional | The user the credentials act for. Set automatically from the API key; sending it has no effect |
accountGroupUuid | string | Required | The account group the request belongs to, and it must travel in the signed body |
Submit and cancel response
Submitting and cancelling both answer with the identifier of the affected
request. A rejected request answers 400 with the validation failure instead.
| Field | Type | Notes |
|---|---|---|
success | boolean | Present and true when the request was accepted |
uuid | string | Identifier of the withdrawal request, to list or cancel it later |
List response
An array, one entry per request. Both outstanding and completed requests are returned.
| Field | Type | Notes |
|---|---|---|
uuid | string | Identifier for the request. This is the value the cancel path takes |
amount | string | How much was requested |
ccy | string | The digital asset requested |
coinAddress | string | The address the funds are being sent to |
state | WithdrawalState | Where the request has reached |
accountGroup | string | Name of the account group withdrawn from |
accountGroupUuid | string | Identifier of that account group |
accountGroupOwner | string | Username of the account group's owner |
accountGroupOwnerUuid | string | Identifier of that owner |
accountGroupName | string | Name of the account group, repeated |
clientName | string | The client the request belongs to |
requestor | string | Who raised the request |
beneficiary | ParticipantRef | The settlement party being paid |
wallet | WalletRef | The registered wallet being paid to |
clientComment | string | Free text supplied when the request was raised |
dateCreated | timestamp | When the request was raised |
lastUpdated | timestamp | When the request was last changed |
ParticipantRef
The same shape on both endpoints.
| Field | Type | Notes |
|---|---|---|
uuid | string | Identifier for the settlement party |
name | string | Name of the party |
WalletRef
Returned by the crypto endpoint only.
| Field | Type | Notes |
|---|---|---|
uuid | string | Identifier for the registered wallet |
address | string | The address being paid to |
alias | string | Your name for the wallet |
BankAccountRef
Returned by the fiat endpoint only.
| Field | Type | Notes |
|---|---|---|
uuid | string | Identifier for the registered bank account |
name | string | Name on the account |
alias | string | Your name for the account |
WithdrawalState
The two endpoints do not share a vocabulary. Crypto derives its state and
can report FAILED; fiat returns a persisted state and cannot.
| Value | Meaning |
|---|---|
PENDING_APPROVAL | Raised, and waiting to be reviewed |
PENDING | Approved, and being processed |
PROCESSED | Sent |
FAILED | Approved, but processing did not complete. Contact your Relationship Manager |
CANCELLED | Rejected on review, or cancelled by you. Nothing is sent |