Custom Domain docs
API referenceRegistrar

Start an embedded payment to buy a domain at retail

POST
/registrar/checkout

Authorizes payment (manual capture) for a domain at the retail price. Returns a Stripe checkout session whose client_secret drives the embedded payment element. The domain is registered only after payment completes via POST /v1/registrar/fulfill; the card is captured strictly after the registrar settles, so a failed registration never charges the buyer. 503 when purchasing is disabled on the deployment.

Authorization

widgetJWT
AuthorizationBearer <token>

Short-lived widget JWT minted server-side via POST /v1/tokens. Scoped to one application (and optionally one domain).

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/registrar/checkout" \  -H "Content-Type: application/json" \  -d '{    "domain": "string",    "buyer": {      "email": "[email protected]"    },    "return_url": "http://example.com"  }'
{  "id": "cs_test_123",  "url": "http://example.com",  "client_secret": "string"}
{  "code": "string",  "title": "string",  "details": "string"}
{  "code": "string",  "title": "string",  "details": "string"}
{  "code": "string",  "title": "string",  "details": "string"}