Get withdrawal
GET /v1/accounts/{externalUserId}/withdrawals/{withdrawalId}
Use this operation for get withdrawal. Follow the withdrawals guide for the complete workflow.
Withdrawals guide · All endpoints · SDK: getWithdrawal, waitForWithdrawal
Authentication
Server-to-server HMAC. Your key selects the partner; your backend must authorize the end user.
CRISP enables access to the features agreed for your integration. Contact CRISP if an enabled feature returns an access error.
Idempotency-Key: Not required by this operation. Signing and authentication →
Request fields
Required means the field must be present. Nullable means an explicit JSON null is allowed; it does not mean optional.
Path parameters
| Field | Type / presence | Description and constraints |
|---|---|---|
externalUserId | stringRequired Non-null | Your stable user ID within the authenticated partner. Derive it from your authorized server session. Validation pattern^[A-Za-z0-9._:@-]{1,200}$ |
withdrawalId | stringRequired Non-null | Format: uuid |
Query parameters
None.
Header parameters
No operation-specific headers. The HMAC headers above still apply.
JSON body
No request body.
Request example
Illustrative identifiers only: replace them with resources from your integration. Keep credentials on your backend. HTTP placeholders must be signed; the SDK signs automatically. Financial intent keys must be persisted and unique per new action.
GET /v1/accounts/user-123/withdrawals/11111111-1111-4111-8111-111111111111
Host: partner-api.crisp.trade
X-Crisp-Partner-Key: <server-key-id>
X-Crisp-Timestamp: <fresh-ISO-8601-UTC-timestamp>
X-Crisp-Nonce: <fresh-unique-nonce>
X-Crisp-Signature: <computed-base64-HMAC>Response fields
HTTP responses use the envelope below. SDK calls expose its payload as result.data, with HTTP status and request metadata on the SDK wrapper.
200 · Success
Data payload
| Field | Type / presence | Description and constraints | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
crispAccountId | stringRequired Non-null | CRISP's account identifier; distinct from your external user ID. Format: uuid | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
externalUserId | stringRequired Non-null | Your stable user ID within the authenticated partner. Derive it from your authorized server session. Validation pattern^[A-Za-z0-9._:@-]{1,200}$ | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
withdrawal | objectRequired Non-null | Expand the structure below. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
withdrawal: expand fields
Additional fields are not allowed in this object. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Additional fields are not allowed in this object.
Full HTTP envelope
| Field | Type / presence | Description and constraints | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
data | objectRequired Non-null | Expand the structure below. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
data: expand fields
Additional fields are not allowed in this object. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
requestId | stringRequired Non-null | Request correlation ID for debugging and support. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Additional fields are not allowed in this object.
Response example
Schema illustration, not live account data. Null means unavailable or not applicable, never an invented zero. Empty arrays do not imply the endpoint always returns no results.
200 response JSON
{
"data": {
"crispAccountId": "11111111-1111-4111-8111-111111111111",
"externalUserId": "user-123",
"withdrawal": {
"id": "11111111-1111-4111-8111-111111111111",
"amountBaseUnit": "2000000",
"recipientAddress": "example",
"toChainId": "137",
"toTokenAddress": "example",
"bridgeAddress": null,
"state": "queued",
"relayTransactionId": null,
"transactionHash": null,
"failureCode": null,
"finalDestinationStatus": null,
"createdAt": "2026-09-01T00:00:00Z",
"updatedAt": "2026-09-01T00:00:00Z",
"submittedAt": null,
"confirmedAt": null
}
},
"requestId": "example-request-id"
}Errors and recovery
| Status | Meaning |
|---|---|
400 | Inspect error.code and retain the original financial intent. |
401 | Inspect error.code and retain the original financial intent. |
403 | Inspect error.code and retain the original financial intent. |
404 | Not visible for this account. A recovery lookup miss is not proof that an in-flight submission failed. |
409 | Inspect error.code and retain the original financial intent. |
429 | Inspect error.code and retain the original financial intent. |
500 | Inspect error.code and retain the original financial intent. |
502 | Inspect error.code and retain the original financial intent. |
503 | Inspect error.code and retain the original financial intent. |
Inspect the error code and outcomeUnknown, not just the HTTP status. Preserve the original intent after financial uncertainty. Read-only retries should honor Retry-After. Recovery workflow →
Error response fields
| Field | Type / presence | Description and constraints | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
error | objectRequired Non-null | Expand the structure below. | ||||||||||||
error: expand fields
Additional fields are not allowed in this object. | ||||||||||||||
Additional fields are not allowed in this object.