Skip to main content

Create on-ramp order (fiat → crypto)

POST 

/onramp

Creates an on-ramp order: the customer pays fiat by bank transfer and receives crypto at destination_crypto_address, which is validated against the asset's network (see GET /assets).

There is no separate quote step and the exchange rate is not locked at creation. Bank transfers can take days to arrive, so the trade is priced when the payment is confirmed. Until then order.crypto_amount is null.

Show the customer bank_details. They must put transfer_code in the payment reference, or the payment cannot be matched to the order automatically, and pay before expires_at.

Orders at or above the KYC threshold (GET /limits) need a customer verified with ID-Flow under the same email.

For gift cards, use POST /gift-card/purchase instead.

Request​

Body

required
    asset stringrequired

    Possible values: [BTC, ARK-BTC, USDT, USDT-CX, CEXT]

    Crypto asset ticker, e.g. ARK-BTC. See GET /assets.

    fiat_currency stringrequired

    Possible values: [EUR, CHF, USD]

    email emailrequired
    fiat_amount stringrequired

    Amount the customer will pay

    destination_crypto_address stringrequired

    Wallet address to receive crypto

    refund_address string
    origin string

    Possible values: [api, web, app]

    Default value: api

Responses​

Order created

Schema
    order object
    id string

    Short public token (shown to customer)

    code string

    Human-readable order reference. Quote it when contacting support.

    email string
    direction string

    Possible values: [onramp, offramp]

    asset stringnullable

    Null for gift card purchases — no crypto asset involved

    fiat_currency string
    fiat_amount stringnullable

    Null until settlement for off-ramp orders — see status

    crypto_amount stringnullable

    Null until settlement for on-ramp orders — see status

    status string

    Possible values: [WAITING_FOR_DEPOSIT, DEPOSIT_RECEIVED, PROCESSING, COMPLETED, FAILED, PENDING_MANUAL, REJECTED, EXPIRED, REFUNDED]

    transfer_code string

    Bank payment reference the customer must include in their transfer

    destination_type string

    Possible values: [crypto, sepa, swift, us, gift_card]

    destination_crypto_address stringnullable
    deposit_txid stringnullable

    Off-ramp: the Arkade transaction credited as the deposit

    deposit_iban stringnullable
    deposit_bic stringnullable
    deposit_beneficiary stringnullable
    deposit_bank_name stringnullable
    deposit_payment_type stringnullable
    kyc_verified boolean
    created_at date-time
    expires_at date-timenullable
    completed_at date-timenullable
    bank_details object

    Bank details the customer must pay into

    iban string
    bic string
    beneficiary string
    bank_name string
    payment_type string
    transfer_code string
    fee object
    feePct string
    feeFlat string
    feeAmount string
    netAmount string
Loading...