# Zaprite Checkout > Zaprite Checkout lets a payer complete an existing Order with Lightning or Bitcoin. LLM agents can request a payment quote, pay the returned wallet URI, and then check the Order status. Use these instructions only for Orders the user explicitly asked you to pay. Do not create or submit a payment without user intent and access to a wallet controlled by the user or agent. Checkouts may offer payment methods other than Lightning or on-chain Bitcoin. This API is only for quote-based Bitcoin payments; use the checkout page UI for other payment methods. To pay a checkout Order, extract the `orderId` from a checkout URL like `https://pay.zaprite.com/order/od_...`. Create a quote before paying. The quote locks in the amount and returns a `paymentUrl` that a compatible wallet can pay. Request format: ```http POST https://pay.zaprite.com/api/public/checkout/create-quote Content-Type: application/json { "orderId": "od_...", "transactionMethod": "LIGHTNING" } ``` `transactionMethod` is optional. When provided, it must be either `LIGHTNING` or `BITCOIN`. When omitted, Zaprite tries `LIGHTNING` first, then `BITCOIN`, and returns an error if neither quote-based method is available for the checkout. For protected checkout URLs like `https://pay.zaprite.com/order/odp_...?access=ACCESS_TOKEN`, include the URL's `access` token in the request body as `orderAccess`: ```json { "orderId": "odp_...", "orderAccess": "ACCESS_TOKEN" } ``` Response format: ```json { "method": "LIGHTNING", "paymentUrl": "lightning:lnbc...", "btcAmount": 1400 } ``` `method` will be either `LIGHTNING` or `BITCOIN`. `paymentUrl` is the value to pass to a compatible wallet. `btcAmount` is denominated in sats. After paying, check the Order status: ```http POST https://pay.zaprite.com/api/public/checkout/order-status Content-Type: application/json { "orderId": "od_..." } ``` Status response format: ```json { "status": "PROCESSING", "paidAt": null } ``` `status` is the current Order status. `paidAt` is `null` until the Order is paid. If the Order is still `PENDING` or `PROCESSING`, wait and check again later or revisit the checkout page in the same browser session. If the checkout URL includes `?access=...`, the access token is required for protected `odp_...` Orders. You may pass it as `orderAccess` in the JSON request body or call the endpoint with the checkout page's `zap_order_access` cookie. Do not share the access token or checkout cookies with third parties. ## Resources - [Create Checkout Quote](https://pay.zaprite.com/api/public/checkout/create-quote): Request a Lightning or Bitcoin quote for an existing checkout Order. - [Get Checkout Order Status](https://pay.zaprite.com/api/public/checkout/order-status): Check whether an existing checkout Order is paid, processing, or still pending. - [Protected Checkout URL](https://pay.zaprite.com/order/odp_...?access=ACCESS_TOKEN): Protected Order IDs require an access token before public checkout APIs can be used.