putty
API ReferenceArtifacts

Open a checkout

Opens a payment for a cart and answers with where to send the customer. **The response shape is identical for both methods:** `checkoutUrl` is the link the storefront's Pay button points at, whether the shopper pays by card or in USDC or USDG. **The customer completes the payment on the payment provider's own page.** putty never takes custody of the money: it never sees a card number, never holds a stablecoin, and never asks for a seed phrase. The stablecoin page shows an amount and a QR code — no wallet prompt, no token ticker the customer did not choose. `successUrl` and `cancelUrl` must be absolute https URLs on the shop's own host, and default to the shop's `/thanks` and `/cart` when omitted. A checkout that returns a customer somewhere else is telling them not to trust the payment, so it is refused. An order is recorded before the response is written, so a customer who sees a link always has an order behind it. A cart the provider refuses gets a 409 with every problem in `error.problems` and no checkout is opened.

POST
/business/checkout

Opens a payment for a cart and answers with where to send the customer. The response shape is identical for both methods: checkoutUrl is the link the storefront's Pay button points at, whether the shopper pays by card or in USDC or USDG. The customer completes the payment on the payment provider's own page. putty never takes custody of the money: it never sees a card number, never holds a stablecoin, and never asks for a seed phrase. The stablecoin page shows an amount and a QR code — no wallet prompt, no token ticker the customer did not choose. successUrl and cancelUrl must be absolute https URLs on the shop's own host, and default to the shop's /thanks and /cart when omitted. A checkout that returns a customer somewhere else is telling them not to trust the payment, so it is refused. An order is recorded before the response is written, so a customer who sees a link always has an order behind it. A cart the provider refuses gets a 409 with every problem in error.problems and no checkout is opened.

Authorization

bearerAuth
AuthorizationBearer <token>

A bearer token. The Account routes accept a Privy access token; the MCP transport accepts an sk- API key issued by POST /account/api-keys.

In: header

Request Body

application/json

The cart and the method to take it in.

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/business/checkout" \  -H "Content-Type: application/json" \  -d '{    "shopId": "string",    "method": "card",    "lines": [      {        "productId": "string",        "name": "string",        "quantity": 1,        "unitPriceUsd": "string"      }    ]  }'
{  "checkoutId": "string",  "method": "card",  "currency": "string",  "totalUsd": "string",  "checkoutUrl": "http://example.com",  "expiresAt": "2019-08-24T14:15:22Z"}