---
title: "Create Onramp Intent"
method: POST
path: "/onramp/intents"
tags: ["onramp"]
---

# Create Onramp Intent

`POST /onramp/intents`

Create a reusable onramp intent. For Orders, amount, destination currency, and wallet fields are derived server-side from the Order and cannot be overridden by the client.

## Headers

- `X-API-KEY` string, required

## Request body

- OnrampIntentRequest
  - `order_id` string — CoinVoyage Order ID. When set, amount, currency, and wallet fields are derived server-side and must not be included.
  - `destination_amount` string — Crypto destination amount for a standalone onramp intent. Mutually exclusive with source_amount.
  - `destination_currency` CurrencyBase, required
    - `address` string, nullable
    - `chain_id` 1 | 10 | 56 | 137 | 4663 | 8453 | 42161 | 20000000000001 | 30000000000001 | 30000000000002, required
  - `source_amount` string — Fiat source amount for a standalone onramp intent. Mutually exclusive with destination_amount.
  - `source_currency` 'usd' | 'eur' — Fiat source currency for Stripe embedded onramp intents
  - `wallet_address` string

## Response `201`

Onramp intent created

- OnrampIntentResponse
  - `id` string, required
  - `order_id` string
  - `session_id` string
  - `status` 'requires_link_auth' | 'requires_kyc' | 'requires_identity_verification' | 'requires_document_verification' | 'identity_verification_pending' | 'session_created', required
  - `source_amount` string
  - `source_currency` 'usd' | 'eur', required — Fiat source currency for Stripe embedded onramp intents
  - `stripe_publishable_key` string, required
  - `destination_amount` string
  - `destination_currency` CurrencyBase, required
    - `address` string, nullable
    - `chain_id` 1 | 10 | 56 | 137 | 4663 | 8453 | 42161 | 20000000000001 | 30000000000001 | 30000000000002, required
  - `wallet_address` string, required
  - `expires_at` string, date-time, required

## Other responses

- `401` — Unauthorized
- `403` — Card payments are not enabled
- `404` — Order not found
- `422` — Invalid request body or unsupported onramp destination
- `500` — Failed to create Stripe onramp intent

---

[API](https://skmtc.net/coinvoyage/apis/coinvoyage-api-v3.md) · [All operations](https://skmtc.net/coinvoyage/apis/coinvoyage-api-v3/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/coinvoyage/coinvoyage-api-v3/revisions/f3a3056f2c83/schema)
