---
title: "Checkout Onramp Session"
method: POST
path: "/onramp/sessions/{session_id}/checkout"
tags: ["onramp"]
---

# Checkout Onramp Session

`POST /onramp/sessions/{session_id}/checkout`

## Request

- Base URL: `https://api.coinvoyage.io/v3`
- URL: `https://api.coinvoyage.io/v3/onramp/sessions/{session_id}/checkout`
- Auth: API key in header `X-API-KEY`
- TypeScript: <https://skmtc.dev/coinvoyage/apis/coinvoyage-api-v3/docs/onramp/sessions/:session_id/checkout/post.ts> (a function with typed inputs; its response is checked against the schema)

Checkout a headless Stripe embedded onramp session and return the checkout client secret required by the Stripe embedded component. The session is resolved to the stored Link OAuth token server-side.

## Path parameters

- `session_id` string, required

## Headers

- `X-API-KEY` string, required

## Response `200`

onramp checkout client secret created

- OnrampCheckoutResponse
  - `client_secret` string, required

## Other responses

- `400`: onramp session ID is required
- `401`: Unauthorized
- `402`: Card payment failed or requires corrected payment details
- `404`: onramp session not found
- `422`: Checkout requires a payment-method, quote, identity, or regional action
- `500`: Failed to checkout onramp session
- `502`: Stripe checkout failed upstream
- `504`: Stripe checkout timed out

## Changes

- **2026-09-04** `6c3f317b7473`: 4 info
  - added the non-success response with the status `402`
  - added the non-success response with the status `422`
  - added the non-success response with the status `502`
  - added the non-success response with the status `504`

[Operation history](https://skmtc.dev/coinvoyage/apis/coinvoyage-api-v3/changes/onramp/sessions/:session_id/checkout/post.md)

---

[API](https://skmtc.dev/coinvoyage/apis/coinvoyage-api-v3.md) - [All operations](https://skmtc.dev/coinvoyage/apis/coinvoyage-api-v3/llms.txt) - [OpenAPI document](https://skmtc.dev/coinvoyage/apis/coinvoyage-api-v3/revisions/3535f46f4c27?raw)
