Skip to main content

Payments AI MoR Developer Docs

Welcome to the Payments AI MoR developer portal. Build merchant integrations with sandbox-first workflows, OpenAPI-driven API reference, and in-browser Try It.

What you can do here

  • Follow the Quickstart to make your first sandbox API call in under 15 minutes
  • Read the Merchant Public API guide for API-key routes (/v1/public-api/...)
  • Connect Claude or Cursor via the MCP server (OAuth or User MCP Key)
  • Receive signed events via Webhooks
  • Browse the API Reference generated from TypeSpec contracts (Merchant Public API + buyer checkout)
  • Use Try It on operation pages with sandbox pai_test_* Merchant API Keys (live keys blocked by Safe Mode)
  • Copy AI Context for coding agents (Markdown bundle with OpenAPI + common errors)
  • Look up Fix-It error guides linked from API docUrl responses

Auth surfaces

SurfaceAuthTypical clients
Merchant Public API (/v1/public-api/…)Merchant API Key (pai_test_* / pai_live_*)Integrations, scripts, agents
Buyer checkout (/v1/checkout/…)Public (no key)Checkout SPA, embed script, custom elements UI

Sandbox vs live

Sandbox and live are separate backends. API keys, products, plans, and hosts must all match:

EnvironmentKey prefixBase URL
Sandboxpai_test_*https://sandbox.managed.payments.ai/api
Livepai_live_*https://managed.payments.ai/api

Creating a product with a live key and calling the sandbox API (or the reverse) will not resolve the plan. Generate sandbox keys in the dashboard developer tools.

Embedded Checkout uses the same axis: set environment to 'sandbox' or 'live' to match how you created the plan.

Buyer checkout (no API key)

Keyless routes under /v1/checkout/plans/{planId} — used by the hosted checkout page and embed script:

MethodPathPurpose
GET/v1/checkout/plans/{planId}Plan metadata and customization
POST/v1/checkout/plans/{planId}/sessionWhop iframe checkout session
POST/v1/checkout/plans/{planId}/confirmConfirm a Whop Elements confirmation token
GET/v1/checkout/plans/{planId}/receipts/{receiptId}Receipt totals after payment

See Embedded Checkout for the elements payment flow. The embed mounts payment fields only — product name and price come from GET /v1/checkout/plans/{planId} on your page. Hosted checkout at /payment/{planId} shows those automatically.

Charging several items or a custom amount in one order is planned and not yet deployed.

Machine-readable artifacts