---
title: "Initiate Checkout"
method: POST
path: "/v1/checkout/initiate"
tags: ["Checkout"]
---

# Initiate Checkout

`POST /v1/checkout/initiate`

Agent initiates a checkout (purchase). Sends a push notification to the user for biometric approval of the payment amount + merchant. When invoked with a CIBA-approved token (approve:payment scope), the payment is auto-approved without a second push.

## Request body

- object
  - `merchantName` string, required
  - `merchantDomain` string, required
  - `checkoutUrl` string, uri, required
  - `amount` integer, required
  - `currency` string
  - `lineItems` object[], required
    - `title` string, required
    - `quantity` integer, required
    - `price` integer, required
  - `expiresInSecs` integer

## Response `200`

Default Response

- object
  - `success` boolean, required
  - `checkoutRequest` object, required
    - `id` string, required
    - `status` string, required — Initial status — "pending" for standard flow, "approved" when created with a CIBA auto-approve token, "completed" when the auto-approve Stripe payment succeeded synchronously
    - `challengeHex` string, required
    - `expiresAt` string, date-time, required
    - `createdAt` string, date-time, required
    - `sptId` string, nullable — Stripe Payment Token ID. Present when CIBA auto-approve + Stripe payment succeeded synchronously.
    - `paymentIntentId` string, nullable — Stripe PaymentIntent ID. Present when CIBA auto-approve + Stripe payment succeeded synchronously.

## Other responses

- `400` — Default Response
- `401` — Default Response
- `403` — Default Response

---

[API](https://skmtc.net/bkeyid/apis/bkey-api.md) · [All operations](https://skmtc.net/bkeyid/apis/bkey-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/bkeyid/bkey-api/revisions/304d4d4d93c7/schema)
