Report off-ramp deposit
POST/order/:token/deposit
Tells the API which Arkade transaction paid an off-ramp order. All off-ramp orders share one deposit address, so this report is how a payment is matched to its order: until it is reported, the order is not credited automatically. Call it as soon as the transfer to the deposit address has been sent.
The transaction is verified before anything is credited. It must be an offchain Arkade transfer that pays the deposit address exactly the order's crypto_amount of its asset, it must not be older than the order, and it must not have been credited to another order. The order then moves to DEPOSIT_RECEIVED and the payout follows.
Reporting the same transaction again returns the order unchanged, so retries are safe. On 502, retry later with the same txid.
Request
Path Parameters
Short public order token (order.id from the create response)
- application/json
Body
required
Possible values: Value must match regular expression ^[0-9a-f]{64}$
Arkade transaction id (lowercase hex)
Responses
- 200
- 404
- 409
- 422
- 502
OK
- application/json
- Schema
- Example (from schema)
Schema
order object
Short public token (shown to customer)
Human-readable order reference. Quote it when contacting support.
Possible values: [onramp, offramp]
Null for gift card purchases — no crypto asset involved
Null until settlement for off-ramp orders — see status
Null until settlement for on-ramp orders — see status
Possible values: [WAITING_FOR_DEPOSIT, DEPOSIT_RECEIVED, PROCESSING, COMPLETED, FAILED, PENDING_MANUAL, REJECTED, EXPIRED, REFUNDED]
Bank payment reference the customer must include in their transfer
Possible values: [crypto, sepa, swift, us, gift_card]
Off-ramp: the Arkade transaction credited as the deposit
{
"order": {
"id": "string",
"code": "string",
"email": "string",
"direction": "onramp",
"asset": "string",
"fiat_currency": "string",
"fiat_amount": "string",
"crypto_amount": "string",
"status": "WAITING_FOR_DEPOSIT",
"transfer_code": "string",
"destination_type": "crypto",
"destination_crypto_address": "string",
"deposit_txid": "string",
"deposit_iban": "string",
"deposit_bic": "string",
"deposit_beneficiary": "string",
"deposit_bank_name": "string",
"deposit_payment_type": "string",
"kyc_verified": true,
"created_at": "2026-11-09T04:34:14.501Z",
"expires_at": "2026-11-09T04:34:14.501Z",
"completed_at": "2026-11-09T04:34:14.501Z"
}
}
Order not found
- application/json
- Schema
- Example (from schema)
Schema
{
"error": "string"
}
Not an off-ramp order awaiting a deposit, or the transaction already credited another order
- application/json
- Schema
- Example (from schema)
Schema
{
"error": "string"
}
The transaction doesn't pay this order
- application/json
- Schema
- Example (from schema)
Schema
{
"error": "string"
}
The transaction couldn't be verified right now. Retry later with the same txid.
- application/json
- Schema
- Example (from schema)
Schema
{
"error": "string"
}