---
title: "POST /checkout_sessions/{checkout_session_id}/complete"
method: POST
path: "/checkout_sessions/{checkout_session_id}/complete"
---

# POST /checkout_sessions/{checkout_session_id}/complete

`POST /checkout_sessions/{checkout_session_id}/complete`

## Request

- Base URL: `https://nowyourlink.com`
- URL: `https://nowyourlink.com/checkout_sessions/{checkout_session_id}/complete`
- Auth: OAuth 2 (authorization code, authorization URL `https://api.nowyourlink.com/oauth/authorize`, token URL `https://api.nowyourlink.com/oauth/token`, scopes: `account:read`)

The buyer-approved Stripe SPT authorizes this EUR 1 charge. OAuth account:read identifies the owner only. Keep the same token, body and key when retrying uncertain outcomes.

## Path parameters

- `checkout_session_id` string, required

## Headers

- `API-Version` '2026-04-17', required
- `Idempotency-Key` string, required

## Request body

- object
  - `payment_data` object, required
    - `handler_id` 'stripe', required
    - `instrument` object, required
      - `type` 'card', required
      - `credential` object, required
        - `type` 'spt', required
        - `token` string, required

## Response `200`

ACP checkout state or paid metrics. No-store; owned by this OAuth grant.

## Other responses

- `400`: Invalid request or unsupported API version. See Supported-Versions.
- `401`: OAuth bearer token required.
- `403`: account:read scope required.
- `409`: Conflicting replay, frozen cart or buyer action required.
- `503`: Uncertain outcome: retry the same body and Idempotency-Key. Never start another payment.

---

[API](https://skmtc.dev/nowyourlink/apis/nowyourlink-public-spotlight-api.md) · [All operations](https://skmtc.dev/nowyourlink/apis/nowyourlink-public-spotlight-api/llms.txt) · [OpenAPI document](https://skmtc.dev/nowyourlink/apis/nowyourlink-public-spotlight-api/revisions/cd8408529b48?raw)
