---
title: "Create Commerce Surface Session"
method: POST
path: "/api/commerce/surfaces/sessions"
tags: ["Commerce", "Marketplace"]
---

# Create Commerce Surface Session

`POST /api/commerce/surfaces/sessions`

## Request

- Base URL: `https://api.agentstack.tech` (the document declares no server; this is the origin it was published from)
- URL: `https://api.agentstack.tech/api/commerce/surfaces/sessions`
- Auth: one of:
  - API key in header `X-API-Key`
  - HTTP bearer

Factory for chromeless surface hydrate sessions.

## Headers

- `Idempotency-Key` string, nullable

## Request body

- CreateCommerceSurfaceSessionRequest
  - `surface` 'checkout' | 'pay' | 'topup' | 'receipt'
  - `listing_uuids` string[]
  - `return_url` string, nullable
  - `cancel_url` string, nullable
  - `theme` 'light' | 'dark' | 'auto'
  - `locale` string
  - `amount_minor` integer, nullable
  - `currency` string, nullable
  - `project_id` integer, nullable
  - `commerce_checkout_id` string, nullable
  - `payment_id` string, nullable
  - `expires_in_seconds` integer

## Response `200`

Successful Response

- unknown

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not Found
- `409`: Conflict
- `422`: Validation Error
- `429`: Too Many Requests
- `500`: Internal Server Error

---

[API](https://skmtc.dev/agentstack/apis/agentstack-core-api.md) · [All operations](https://skmtc.dev/agentstack/apis/agentstack-core-api/llms.txt) · [OpenAPI document](https://skmtc.dev/agentstack/apis/agentstack-core-api/revisions/79f4a4dd8813?raw)
