Skip to main content

Withdrawals

GET /v2/withdrawals

List withdrawals

Parameters

ParameterInTypeRequiredDescription
pagequeryintegernoDefault: 1.
limitqueryintegernoDefault: 25.
assetSymbolquerystringno
statusquerystringno
subTypequeryINTERNAL | EXTERNAL_CRYPTO | EXTERNAL_FIAT_BANK | EXTERNAL_FIAT_REDPAY | NETWORK_FEE | TRANSFER_FEEno
assetFormatquerybase | rebasednoHow to express tokenised-equity (xStock) amounts. rebased (default) = underlying equity; base = settled SPV tokens. No effect on other assets. Default: rebased.
startDatequerystringnoISO-8601 start date.
endDatequerystringnoISO-8601 end date.

Responses

CodeDescriptionBody
200Success.data: WithdrawalResource[] · pagination: PaginationMeta
401application/problem+json (RFC 9457) — branch on code, not on the status: unauthorized (not retryable), key_expired (not retryable), key_revoked (not retryable).
403application/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).
429application/problem+json (RFC 9457) — branch on code, not on the status: rate_limited (retryable).
500application/problem+json (RFC 9457) — branch on code, not on the status: internal_error (retryable).
502application/problem+json (RFC 9457) — branch on code, not on the status: downstream_unavailable (retryable).
503application/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 bodyCreateWithdrawalDto

Responses

CodeDescriptionBody
201Created.WithdrawalResource
400application/problem+json (RFC 9457) — branch on code, not on the status: validation_error (not retryable).
401application/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).
403application/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).
422application/problem+json (RFC 9457) — branch on code, not on the status: unprocessable (not retryable).
429application/problem+json (RFC 9457) — branch on code, not on the status: rate_limited (retryable).
500application/problem+json (RFC 9457) — branch on code, not on the status: internal_error (retryable).
502application/problem+json (RFC 9457) — branch on code, not on the status: downstream_unavailable (retryable).
503application/problem+json (RFC 9457) — branch on code, not on the status: maintenance (retryable).

GET /v2/withdrawals/{id}

Get a withdrawal by id

Parameters

ParameterInTypeRequiredDescription
idpathstringyes

Responses

CodeDescriptionBody
200Success.WithdrawalResource
401application/problem+json (RFC 9457) — branch on code, not on the status: unauthorized (not retryable), key_expired (not retryable), key_revoked (not retryable).
403application/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).
404application/problem+json (RFC 9457) — branch on code, not on the status: not_found (not retryable).
429application/problem+json (RFC 9457) — branch on code, not on the status: rate_limited (retryable).
500application/problem+json (RFC 9457) — branch on code, not on the status: internal_error (retryable).
502application/problem+json (RFC 9457) — branch on code, not on the status: downstream_unavailable (retryable).
503application/problem+json (RFC 9457) — branch on code, not on the status: maintenance (retryable).

Schemas

CreateWithdrawalDto

FieldTypeDescription
assetSymbolstringAsset to withdraw. e.g. BTC.
amountstringAmount 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)stringDestination contact id (a whitelisted address/account).
contactReference (optional)stringDestination contact reference/alias.

PaginationMeta

FieldTypeDescription
pagenumbere.g. 1.
limitnumbere.g. 25.
totalItemsnumbere.g. 100.
totalPagesnumbere.g. 4.

Problem

FieldTypeDescription
typestringStable problem-type URI. Resolves to docs for this error. e.g. https://docs.skipo.com/errors/rate_limited.
titlestringShort, human-readable summary (stable, English). e.g. Rate limit exceeded.
statusnumberHTTP status code. e.g. 429.
codestringStable machine-readable error code (equals the last path segment of type). e.g. rate_limited.
retryablebooleanWhether retrying the identical request may succeed. e.g. true.
detail (optional)stringHuman-readable, possibly localized detail.
instance (optional)stringThe request path that produced the error.
traceId (optional)stringTrace id — joins BigQuery api_request and Cloud Logging.

WithdrawalResource

FieldTypeDescription
idstringWithdrawal id. Use it to re-fetch this withdrawal and to match its ledger entry (source.id).
typestringe.g. WITHDRAWAL.
subTypeINTERNAL | EXTERNAL_CRYPTO | EXTERNAL_FIAT_BANK | EXTERNAL_FIAT_REDPAY | NETWORK_FEE | TRANSFER_FEE
assetSymbolstringAsset code of the withdrawal. e.g. BTC.
amountstringAmount withdrawn, excluding the fee. Positive magnitude, in assetSymbol.
feestringThe withdrawal fee charged by Skipo, in assetSymbol. A flat fee — NOT the blockchain network fee, which Skipo absorbs. Positive magnitude.
totalstringTotal debited from the balance (amount + fee). Positive magnitude, in assetSymbol.
statusstring
createdAtstring
withdrawalDataobjectSub-type-specific details.

Back to the endpoint reference. See also: Pagination · Errors · Ids and correlation.