---
search:
  tags:
    - Orders
    - POST
seo:
  description: >-
    Starts, or returns the existing active, checkout session for an… Reference
    for the POST /orders/{order_id}/checkout_session endpoint in the Bolder API
    v2.
sidebar:
  label: Start (or resume) checkout for an order
  badge: POST
title: Start (or resume) checkout for an order
type: openapi-operation
---
Starts, or returns the existing active, checkout session for an order. Idempotent while a session is still active — calling this repeatedly before expiry returns the same token.

`POST /orders/{order_id}/checkout_session`

**Request body** (`application/json`)

- `return_url` (string) — Where to redirect the buyer after a hosted-redirect-mode gateway round-trip. Its host must match the shop's own domain or one of its configured allowed embed origins — any other host is rejected with 422, to prevent open redirects. Only applied if the session doesn't already have a \`return\_url\` (first caller wins); ignored on later idempotent calls.

Request body example:

```json
{
  "return_url": "https://mystore.com/order/confirmation"
}
```

**Responses**

- `200` — Checkout session
- `422` — Either this shop is not on the session-based checkout, or \`return\_url\` was given but its host isn't allowed for this shop

Response example, 200:

```json
{
  "token": "string",
  "status": "string",
  "order_id": 0,
  "return_url": "string",
  "expires_at": "2019-08-24T14:15:22Z",
  "last_viewed_at": "2019-08-24T14:15:22Z",
  "view_count": 0,
  "checkout_url": "string"
}
```
