Withdrawals
GET /v2/withdrawals
List withdrawals
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
page | query | integer | no | Default: 1. |
limit | query | integer | no | Default: 25. |
assetSymbol | query | string | no | |
status | query | string | no | |
subType | query | INTERNAL | EXTERNAL_CRYPTO | EXTERNAL_FIAT_BANK | EXTERNAL_FIAT_REDPAY | NETWORK_FEE | TRANSFER_FEE | no | |
assetFormat | query | base | rebased | no | How to express tokenised-equity (xStock) amounts. rebased (default) = underlying equity; base = settled SPV tokens. No effect on other assets. Default: rebased. |
startDate | query | string | no | ISO-8601 start date. |
endDate | query | string | no | ISO-8601 end date. |
Responses
| Code | Description | Body |
|---|---|---|
200 | Success. | data: WithdrawalResource[] · pagination: PaginationMeta |
401 | application/problem+json (RFC 9457) — branch on code, not on the status: unauthorized (not retryable), key_expired (not retryable), key_revoked (not retryable). | — |
403 | application/problem+json (RFC 9457) — branch on code, not on the status: insufficient_scope (not retryable), ip_not_allowed (not retryable), api_access_disabled (not retryable). | — |
429 | application/problem+json (RFC 9457) — branch on code, not on the status: rate_limited (retryable). | — |
500 | application/problem+json (RFC 9457) — branch on code, not on the status: internal_error (retryable). | — |
502 | application/problem+json (RFC 9457) — branch on code, not on the status: downstream_unavailable (retryable). | — |
503 | application/problem+json (RFC 9457) — branch on code, not on the status: maintenance (retryable). | — |
POST /v2/withdrawals
Create a withdrawal
Money movement — requires a Tier-2 signed request (X-API-Key header + signed Authorization JWT), not a bare bearer key.
Authentication: Signed request (Tier-2)
Request body — CreateWithdrawalDto
Responses
| Code | Description | Body |
|---|---|---|
201 | Created. | WithdrawalResource |
400 | application/problem+json (RFC 9457) — branch on code, not on the status: validation_error (not retryable). | — |
401 | application/problem+json (RFC 9457) — branch on code, not on the status: unauthorized (not retryable), key_expired (not retryable), key_revoked (not retryable), invalid_signature (not retryable), clock_skew (retryable), nonce_reused (retryable). | — |
403 | application/problem+json (RFC 9457) — branch on code, not on the status: insufficient_scope (not retryable), ip_not_allowed (not retryable), api_access_disabled (not retryable), two_factor_required (not retryable). | — |
422 | application/problem+json (RFC 9457) — branch on code, not on the status: unprocessable (not retryable). | — |
429 | application/problem+json (RFC 9457) — branch on code, not on the status: rate_limited (retryable). | — |
500 | application/problem+json (RFC 9457) — branch on code, not on the status: internal_error (retryable). | — |
502 | application/problem+json (RFC 9457) — branch on code, not on the status: downstream_unavailable (retryable). | — |
503 | application/problem+json (RFC 9457) — branch on code, not on the status: maintenance (retryable). | — |
GET /v2/withdrawals/{id}
Get a withdrawal by id
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
Responses
| Code | Description | Body |
|---|---|---|
200 | Success. | WithdrawalResource |
401 | application/problem+json (RFC 9457) — branch on code, not on the status: unauthorized (not retryable), key_expired (not retryable), key_revoked (not retryable). | — |
403 | application/problem+json (RFC 9457) — branch on code, not on the status: insufficient_scope (not retryable), ip_not_allowed (not retryable), api_access_disabled (not retryable). | — |
404 | application/problem+json (RFC 9457) — branch on code, not on the status: not_found (not retryable). | — |
429 | application/problem+json (RFC 9457) — branch on code, not on the status: rate_limited (retryable). | — |
500 | application/problem+json (RFC 9457) — branch on code, not on the status: internal_error (retryable). | — |
502 | application/problem+json (RFC 9457) — branch on code, not on the status: downstream_unavailable (retryable). | — |
503 | application/problem+json (RFC 9457) — branch on code, not on the status: maintenance (retryable). | — |
Schemas
CreateWithdrawalDto
| Field | Type | Description |
|---|---|---|
assetSymbol | string | Asset to withdraw. e.g. BTC. |
amount | string | Amount to withdraw, as a positive decimal string. The withdrawal fee is charged on top — the balance is debited amount + fee. e.g. 0.05. |
contactId (optional) | string | Destination contact id (a whitelisted address/account). |
contactReference (optional) | string | Destination contact reference/alias. |
PaginationMeta
| Field | Type | Description |
|---|---|---|
page | number | e.g. 1. |
limit | number | e.g. 25. |
totalItems | number | e.g. 100. |
totalPages | number | e.g. 4. |
Problem
| Field | Type | Description |
|---|---|---|
type | string | Stable problem-type URI. Resolves to docs for this error. e.g. https://docs.skipo.com/errors/rate_limited. |
title | string | Short, human-readable summary (stable, English). e.g. Rate limit exceeded. |
status | number | HTTP status code. e.g. 429. |
code | string | Stable machine-readable error code (equals the last path segment of type). e.g. rate_limited. |
retryable | boolean | Whether retrying the identical request may succeed. e.g. true. |
detail (optional) | string | Human-readable, possibly localized detail. |
instance (optional) | string | The request path that produced the error. |
traceId (optional) | string | Trace id — joins BigQuery api_request and Cloud Logging. |
WithdrawalResource
| Field | Type | Description |
|---|---|---|
id | string | Withdrawal id. Use it to re-fetch this withdrawal and to match its ledger entry (source.id). |
type | string | e.g. WITHDRAWAL. |
subType | INTERNAL | EXTERNAL_CRYPTO | EXTERNAL_FIAT_BANK | EXTERNAL_FIAT_REDPAY | NETWORK_FEE | TRANSFER_FEE | |
assetSymbol | string | Asset code of the withdrawal. e.g. BTC. |
amount | string | Amount withdrawn, excluding the fee. Positive magnitude, in assetSymbol. |
fee | string | The withdrawal fee charged by Skipo, in assetSymbol. A flat fee — NOT the blockchain network fee, which Skipo absorbs. Positive magnitude. |
total | string | Total debited from the balance (amount + fee). Positive magnitude, in assetSymbol. |
status | string | |
createdAt | string | |
withdrawalData | object | Sub-type-specific details. |
Back to the endpoint reference. See also: Pagination · Errors · Ids and correlation.