---
title: "Paid: Check a cart before checkout ($0.25 per completed decision; never charged for insufficient_evidence)"
method: POST
path: "/paid/checkout"
---

# Paid: Check a cart before checkout ($0.25 per completed decision; never charged for insufficient_evidence)

`POST /paid/checkout`

## Request

- Base URL: `https://tetheredtrust.com/v1`
- URL: `https://tetheredtrust.com/v1/paid/checkout`
- Auth: one of:
  - none
  - HTTP bearer

Checks a cart at checkout. Takes the checkout session exactly as a commerce protocol returns it (a UCP checkout or an ACP CheckoutSession) or plain line items, plus what the customer already owns. Returns a decision per line item, safe_to_checkout, an action (proceed, resolve_conditions, do_not_checkout, ask_customer), questions, substitutions, a signed receipt, and a com.tetheredtrust.shopping.compatibility extension object to attach to the checkout.

## Request body

- object
  - `checkout` object: The checkout session as your commerce protocol returns it: a UCP checkout (line_items[].item.title) or an ACP CheckoutSession (line_items[].item.id). Or send line_items directly.
  - `line_items` object[]: Generic cart: [{id, title | url | gtin | sku | text, quantity}]. Used when checkout isn't sent.
  - `products` object: ACP only: map of item id → {title | url | gtin} from your product feed, because ACP line items carry only ids.
  - `owned` union[]: What the customer already owns that these items must work with (model numbers, URLs or descriptions; objects may carry config like memory_modules).
    - union
      - string
      - object

## Response `200`

OK

- object

## Other responses

- `400`: Bad input (code bad_request), or plain HTTP (https_required).
- `401`: Missing or invalid API key where one is required.
- `402`: Payment required: pay with x402 or credits and retry. Verified first, settled only for a completed decision.
- `429`: Rate limit; see Retry-After.
- `500`: Our error; retry once.
- `503`: Temporarily unavailable, or paid access is off (paid_access_off).

---

[API](https://skmtc.dev/tetheredtrust/apis/tethered-trust-api.md) · [All operations](https://skmtc.dev/tetheredtrust/apis/tethered-trust-api/llms.txt) · [OpenAPI document](https://skmtc.dev/tetheredtrust/apis/tethered-trust-api/revisions/f737ac591159?raw)
