---
title: "Open a checkout session on an offer"
method: POST
path: "/api/v1/market/checkout_sessions"
---

# Open a checkout session on an offer

`POST /api/v1/market/checkout_sessions`

## Request

- Base URL: `https://qomvia.com`
- URL: `https://qomvia.com/api/v1/market/checkout_sessions`
- Auth: one of:
  - HTTP bearer
  - none

Freezes the agent price, quantity and shipping until the offer expires. Qomvia never takes payment for goods; complete returns the merchant's payment URL.

## Request body

- object
  - `offerId` string, required
  - `qty` integer
  - `buyer` Buyer
    - `email` string, email, required
    - `name` string
    - `phone` string
  - `shipTo` ShipTo
    - `name` string, required
    - `line1` string, required
    - `line2` string
    - `zip` string, required
    - `city` string, required
    - `country` string, required: ISO-2 country

## Response `201`

The checkout session.

- CheckoutSession
  - `id` string
  - `offerId` string
  - `status` 'open' | 'ready' | 'completed' | 'cancelled' | 'expired'
  - `mode` 'merchant_redirect' | 'qomvia_order'
  - `qty` integer
  - `goodsCents` integer
  - `discountCents` integer
  - `shippingCents` integer
  - `totalCents` integer
  - `currency` string
  - `paymentUrl` string, uri, nullable
  - `expiresAt` string, date-time

## Other responses

- `400`: Invalid request.
- `409`: Offer expired or out of stock.
- `429`: Rate limited.

---

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