List Fiat Withdrawal Requests
POST https://trade-uk.sandbox.zodiamarkets.com/api/3/withdrawal/fiat/list
Every client-initiated fiat withdrawal request on every account group where you hold ROLE_OPERATIONS, newest first by creation date.
Scope, and what it does not return
Section titled “Scope, and what it does not return”The response spans every account group where you hold ROLE_OPERATIONS and silently omits the rest. There is no account-group parameter, and an accountGroupUuid in the body is ignored.
- Requests raised by other members of the same account group are included.
- Requests raised by Zodia Markets Operations on your behalf are not included.
- An empty array can mean you hold
ROLE_OPERATIONSon nothing, rather than that you have no requests. Owning an account group does not substitute for the role.
There is no pagination and no filtering, so every request you can see is returned. Page and filter client-side.
Reading a row
Section titled “Reading a row”state uses the four-value fiat vocabulary, which has no FAILED. See Request states.
accountGroup is a duplicate of accountGroupName carrying the same value; read accountGroupName. requestor is the user who submitted the request, which need not be you, and clientName is the client the request belongs to. beneficiary is your own onboarded entity on record, not a third-party payee.
Amounts are strings. Fields with no value are omitted rather than returned as null, and the name and alias fields inside bankAccount and beneficiary are omitted when the participants service is unavailable, while the uuid fields remain.
This is a POST because the nonce or tonce travels in the signed body. It changes nothing.
Domain: Withdrawals
Request
Section titled “Request”POST https://trade-uk.sandbox.zodiamarkets.com/api/3/withdrawal/fiat/listHeaders
Section titled “Headers”| Header | Required | Description |
|---|---|---|
Rest-Key |
yes | API key for authentication |
Rest-Sign |
yes | Calculated API Signature |
| Field | Type | Required | Description |
|---|---|---|---|
tonce |
integer (int64) | yes | The current Unix time in microseconds. Accepted only within two minutes of server time. Send either tonce or nonce. |
nonce |
integer (int64) | Alternative to tonce, and takes precedence when both are sent. Must be a whole number and strictly increasing for a given API key: a reused or lower value is rejected. A request carrying neither nonce nor tonce is rejected with 401. |
Responses
Section titled “Responses”200 OK
Section titled “200 OK”Every fiat withdrawal request you can see, newest first by creation date. No pagination and no filtering, so page and filter client-side.
| Field | Type | Required | Description |
|---|---|---|---|
[].uuid |
string | Pass this to the cancel endpoint. | |
[].amount |
string | Exact decimal as a string, never a float. Parse it as a decimal. | |
[].ccy |
string | Currency or asset code. | |
[].state |
string (enum) | PENDING_APPROVAL awaiting review by Zodia Markets Operations, and the only state a request can be cancelled from. PENDING accepted by Operations and in progress. PROCESSED funds sent. CANCELLED cancelled by you or declined by Operations - the two are not distinguished. There is no FAILED on fiat. Every request raised through this API carries a state; as with any field, treat an absent one as unknown rather than as a value. — One of: PENDING_APPROVAL, PENDING, PROCESSED, CANCELLED |
|
[].accountGroup |
string | Duplicate of accountGroupName, carrying exactly the same value. Read accountGroupName instead. |
|
[].accountGroupUuid |
string | UUID of the account group the request belongs to. | |
[].accountGroupOwner |
string | Username of the account group’s owner. | |
[].accountGroupOwnerUuid |
string | UUID of the account group’s owner. | |
[].accountGroupName |
string | Name of the account group the request belongs to. | |
[].clientName |
string | The client the request belongs to. For a subordinate user this is the parent, not the submitter. | |
[].requestor |
string | The user who actually submitted the request, which need not be you. | |
[].withdrawalMethod |
string (enum) | Always BANK_WIRE. — One of: BANK_WIRE |
|
[].beneficiary |
object | Your own onboarded entity, as registered with Zodia Markets. | |
[].beneficiary.uuid |
string | ||
[].beneficiary.name |
string | ||
[].bankAccount |
object | The beneficiary bank account the funds are destined for. | |
[].bankAccount.uuid |
string | ||
[].bankAccount.name |
string | ||
[].bankAccount.alias |
string | ||
[].clientComment |
string | As submitted, up to 1024 characters. Absent when none was sent. | |
[].dateCreated |
string | When the request was raised. ISO-8601 with milliseconds and a zone offset, e.g. 2026-08-04T10:15:30.451+01:00. |
|
[].lastUpdated |
string | Changes on every state transition. Same format as dateCreated. |
401 Unauthorized
Section titled “401 Unauthorized”Authentication failed: unknown key, bad signature, a missing, malformed, reused or decreasing nonce or out-of-window tonce, a body that is not parseable JSON, or a throttled caller. Rate limiting surfaces here as 401, not 429.
| Field | Type | Required | Description |
|---|---|---|---|
success |
boolean | ||
message |
string |
403 Forbidden
Section titled “403 Forbidden”Body missing or malformed (Invalid signed params), or the API key lacks the Move Funds permission (MOVE FUNDS permission required), which these read-only endpoints require too.
| Field | Type | Required | Description |
|---|---|---|---|
success |
boolean | ||
message |
string |
500 Internal Server Error
Section titled “500 Internal Server Error”Unexpected error. The outcome is undefined - for a submit, use the list endpoint to establish whether the request was created before resending.
| Field | Type | Required | Description |
|---|---|---|---|
success |
boolean | ||
message |
string |
