CustomDomain Docs
Registrar

Finalize a domain purchase after the embedded payment completes

Finalize a domain purchase after the embedded payment completes: CustomDomain™ API reference. Covers parameters, request body, responses and error codes.

POST
/registrar/fulfill

Verifies the session, registers the domain, captures the charge, and auto-connects the domain. Idempotent per session id (the Stripe webhook drives the same path server-side, so a closed tab never strands a paid session). 201 on first fulfillment, 200 on an idempotent replay. Exactly one caller fulfills a session: the first to claim its order registers the domain and captures the charge, and a caller that arrives while it is still working waits briefly, then gets that result or a 409 with code fulfillment_in_progress. A 409 never releases the authorization; retry the call, or read GET /v1/sell/orders/{id}, to see the outcome.

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

application/json

application/json

application/json

curl -X POST "https://example.com/registrar/fulfill" \  -H "Content-Type: application/json" \  -d '{    "session_id": "string"  }'
{  "Domain": "string",  "Registrar": "string",  "RegOrderID": "string"}
{  "Domain": "string",  "Registrar": "string",  "RegOrderID": "string"}
{  "code": "string",  "title": "string",  "details": "string"}
{  "code": "string",  "title": "string",  "details": "string"}
{  "code": "string",  "title": "string",  "details": "string",  "order": {    "orderId": "ord_1a2b3c",    "domain": "string",    "registrar": "string",    "status": "quoted",    "createdAt": "2019-08-24T14:15:22Z",    "regOrderId": "string",    "jobId": "string",    "link": "string",    "freeDomain": true  }}
{  "code": "string",  "title": "string",  "details": "string"}
{  "code": "string",  "title": "string",  "details": "string"}