# Cimplify Docs > Type-safe SDK and REST API for the Cimplify commerce platform: catalogue, cart, checkout, scheduling, subscriptions, hosted checkout (Pay), and embeddable Elements via Cimplify Link. Notes for agents: - Every doc URL has a Markdown twin at `/llms.mdx` — e.g. `/docs/sdk/cart` → `/llms/docs/sdk/cart.mdx`. - The SDK is published as `@cimplify/sdk` on npm. - All client methods return `Result` and never throw. - `/checkout` request body is FLAT (top-level fields), not wrapped. - Scheduling endpoints accept `variant_id` for per-variant overrides. ## Pages - [Agent prompts](https://cimplify.dev/llms/docs/agent-prompts.mdx): Copy-paste prompts for the most common Cimplify workflows. Drop any block into Claude Code, Cursor, or any MCP-aware agent — fill the angle-bracket placeholders and run. - [API Reference](https://cimplify.dev/llms/docs/api-reference.mdx): Cimplify exposes a single REST surface at `/api/v1/*`. All requests are JSON. Most reads are public storefront calls keyed by `pk_`; writes that touch a customer require an active session cookie obtained from `/auth/verify-otp`. - [Choosing a checkout integration](https://cimplify.dev/llms/docs/checkout.mdx): Cimplify ships five layered ways to take a payment. Pick the highest tier you can; each step down the list trades a few minutes of integration time for more control. All five eventually reach the same backend endpoint and emit the same [Element events](/docs/concepts/element-events). - [CLI](https://cimplify.dev/llms/docs/cli.mdx): Every storefront workflow — scaffold, develop, deploy — runs through the Cimplify CLI. - [Docs](https://cimplify.dev/llms/docs.mdx): Build storefronts, embed checkout, and let agents transact — on Cimplify. The SDK, hosted checkout, and UCP all share one backend and one data model. - [Cimplify Link](https://cimplify.dev/llms/docs/link.mdx): Link is the shopper-facing layer of Cimplify: a saved-payment-and-address vault, an OTP identity, and a small set of embeddable iframe Elements that let merchants pull that identity into any storefront. It's hosted at `link.cimplify.io` and ships as the `@cimplify/link` package. - [MCP server](https://cimplify.dev/llms/docs/mcp.mdx): Cimplify exposes a Model Context Protocol server at api.cimplify.io/mcp. Agents (Claude Code, Cursor, ChatGPT Connectors, Continue, Goose) speak streamable HTTP per the MCP 2025-11-25 spec and drive every CLI workflow as typed tool calls: no shell-out, no help-text parsing, no stdio bridge required. - [Cimplify Pay](https://cimplify.dev/llms/docs/pay.mdx): Cimplify Pay is the hosted-checkout product. You create a session (or a payment link) on your server; the customer is redirected to `pay.cimplify.io`, which renders the full checkout flow on Cimplify infrastructure; on completion they bounce back to your `success_url`. It's the same iframe-based checkout you can embed directly; Pay just ships it on a Cimplify-owned domain so you don't have to. - [Quickstart](https://cimplify.dev/llms/docs/quickstart.mdx): From zero to a working storefront in 60 seconds. `cimplify init` scaffolds a Next.js app wired to the local mock; the same code points at your live business when you bring keys. - [TypeScript SDK](https://cimplify.dev/llms/docs/sdk.mdx): Type-safe wrapper around the Cimplify REST API. Single dependency, browser-safe, framework-agnostic core, with a React layer and a Server Components layer on top. - [Storefront templates](https://cimplify.dev/llms/docs/templates.mdx): Six production-shape Next.js storefronts you scaffold with one command. Each one ships with cart drawer wiring, mock-seeded data, a brand-as-config layer, and pre-baked test suites, so the loop from `init` to `deploy` stays inside an afternoon. - [Testing](https://cimplify.dev/llms/docs/testing.mdx): The SDK ships an in-process Hono mock that mirrors the production lens, plus pre-baked vitest suites and zod schemas as the single source of truth. Boot the mock, run the suites, get a 30-second feedback loop: no live API, no shared state. - [TL;DR — zero to production](https://cimplify.dev/llms/docs/tldr.mdx): Ten commands from an empty shell to a live storefront at a custom domain. The full developer journey through the Cimplify CLI in one page. - [Universal Commerce Protocol (UCP)](https://cimplify.dev/llms/docs/ucp.mdx): A signed, capability-discoverable protocol AI agents use to browse, price, check out, and pay across any Cimplify business with verifiable consent. - [Activity](https://cimplify.dev/llms/docs/api-reference/activity.mdx): The activity API records lightweight session signals (product views, searches, cart events) so that the storefront can show relevant recommendations, intent-based incentives, and contextual messages. Every call is scoped to the active session token. - [Auth](https://cimplify.dev/llms/docs/api-reference/auth.mdx): Customer-facing OTP login. Requesting an OTP delivers a 4–6 digit code over SMS or email; verifying it issues a session cookie that subsequent calls (cart, checkout, orders) recognise as the same customer. - [Cart](https://cimplify.dev/llms/docs/api-reference/cart.mdx): The cart is server-owned and bound to the caller’s session. Items are added by `item_id` with an optional `variant_id` and add-on selections. The same cart is read on the storefront and on checkout; there is no client-side cart sync. - [Catalogue](https://cimplify.dev/llms/docs/api-reference/catalogue.mdx): The catalogue surface covers everything visible to a shopper: products and variants, categories, collections, bundles, composites, and the modifier groups (add-ons) attached to them. All endpoints live under `/api/v1/catalogue` and accept an optional `location_id` query parameter for location-specific pricing and availability. - [Checkout](https://cimplify.dev/llms/docs/api-reference/checkout.mdx): Convert the active cart into an order, run payment, and return everything the caller needs to confirm or redirect. The body is **flat**: fields like `cart_id`, `customer`, and `payment_method` sit at the top level. There is no `checkout_data` wrapper. - [FX](https://cimplify.dev/llms/docs/api-reference/fx.mdx): Indicative FX rates and lockable cross-currency quotes. Pass the resulting `quote_id` as `fx_quote_id` on `/checkout` to settle in a non-cart currency at the locked rate. - [Inventory](https://cimplify.dev/llms/docs/api-reference/inventory.mdx): Stock and availability lookups, scoped per location. Inventory is tracked at either the product or the variant level depending on the product’s `inventory_type`. - [Link](https://cimplify.dev/llms/docs/api-reference/link.mdx): /v1/link/*: customer-scoped Link API. Hosted on api.cimplify.io, separate from the per-business storefront API. - [Orders](https://cimplify.dev/llms/docs/api-reference/orders.mdx): Read and manage orders created by checkout. Authenticated customers get their own orders; guests can access individual orders by passing the order’s `bill_token` as a query parameter. - [Places](https://cimplify.dev/llms/docs/api-reference/places.mdx): Address autocomplete and place lookup, fronted by Google Places. Reuse a `sessionToken` across consecutive autocomplete calls and the final details call to keep billing on a single Places session. - [Scheduling](https://cimplify.dev/llms/docs/api-reference/scheduling.mdx): Surface available time slots, create bookings via the cart, and manage existing bookings. As of 0.44.30 slot and availability lookups are **variant-aware**: pass `variant_id` when a service has per-variant duration, buffer, or capacity overrides. - [Subscriptions](https://cimplify.dev/llms/docs/api-reference/subscriptions.mdx): Read and manage the authenticated customer’s subscriptions. All endpoints require an active customer session (cookie set by `/auth/verify-otp`). - [Support](https://cimplify.dev/llms/docs/api-reference/support.mdx): Customer-facing support / chat-widget API. Each session has exactly one widget conversation; the server resolves it from the session identity, so callers never have to track a `conversation_id`. - [Uploads](https://cimplify.dev/llms/docs/api-reference/uploads.mdx): Two-step presigned upload flow. `init` returns a short-lived URL the client PUTs the file bytes to directly; `confirm` finalises the upload and returns the canonical CDN URL. - [Webhooks](https://cimplify.dev/llms/docs/api-reference/webhooks.mdx): Subscribe a server endpoint to lifecycle events emitted by Cimplify. Webhook administration is a server-side surface; all calls require a secret API key (`sk_…`) on `X-API-Key`. - [Appearance API](https://cimplify.dev/llms/docs/checkout/appearance.mdx): Every Cimplify Element iframe (`AuthElement`, `CheckoutElement`, `AccountElement`, the hosted Pay page) accepts an `appearance` object that controls theme, accent color, font, and corner radius. The same shape works across all integration tiers. - [Drop-in checkout (hosted Pay)](https://cimplify.dev/llms/docs/checkout/drop-in.mdx): The fastest path to a paid order: create a checkout session on your server, then redirect the customer to the URL it returns. Cimplify hosts the entire checkout UI at `pay.cimplify.io/s/` (auth, address, payment method, compliance). You get a webhook (or success-URL redirect) when payment lands. - [Controlled Elements (React)](https://cimplify.dev/llms/docs/checkout/elements.mdx): React wrappers around the Cimplify Element iframes. Drop a component into your tree, pass a few props, and you have a working checkout. The iframe still does all the rendering; you just orchestrate it with React. - [Embedded checkout iframe](https://cimplify.dev/llms/docs/checkout/embedded.mdx): The same checkout UI as the hosted Pay page, but you mount it as an iframe on your own domain. No SDK needed; just an `