Get a brand's go-live checklist
The brands.go_live_checklist operation: GET /api/v1/brands/{id}/go_live_checklist in the REST API and the brands_go_live_checklist tool in the MCP server.
GET
/api/v1/brands/{id}/go_live_checklistReturns what the brand needs before it can go live, each requirement met or not with the reason:
plan_livemode: the organization's plan includes live mode;org_status: the organization is active (not restricted, suspended, closing or closed);legal_accepted: the current Terms of Service and Data Processing Agreement are accepted;entity_verified: the legal entity's tax ID is verified;invoice_settings: the entity's invoice details are complete;home_registration: the entity's home registration isregistered, with a number (live mode);processor_live: the brand has a live processor connection whose last connection test passed (going live tests it again);brand_urls: the brand has its terms and privacy URLs;brand_status: the brand is in test mode (test_only), not suspended.
Live API keys and live checkout sessions are refused until the brand is live. Reading the checklist calls no processor.
At a glance
- REST:
GET /api/v1/brands/{id}/go_live_checklist - MCP tool:
brands_go_live_checklist - Operation ID:
brands.go_live_checklist - Scope: Organization, or one of its legal entities or brands
- Permission:
brands:read - Risk tier:
read - Dry run: Not supported
- Idempotency: Not needed (read only)
- Modes: Test and live
- Authentication: API key with the
brands:readscope - Since: M12
Request
Path parameters
| Field | Type | Description |
|---|---|---|
id | brd_… ID |
Query parameters
This operation takes no query parameters.
Response
200 OK with a JSON object:
| Field | Type | Description |
|---|---|---|
object | "go_live_checklist" | |
brandId | brd_… ID | |
entityId | ent_… ID | |
brandStatus | string | |
ready | boolean | Every requirement is met: brands.go_live will move the brand to live. |
live | boolean | The brand is live already. |
items | array of object | |
items[].requirement | one of 10 values, e.g. plan_livemode, org_status, legal_accepted (all in the OpenAPI document) | |
items[].met | boolean | |
items[].reason | string or null | Why it isn't met, in plain words. |
processor | object or null | The brand's live processor connection, with its last connection test. |
legalVersions | object | |
legalVersions.terms | string | |
legalVersions.dpa | string | |
legalAccepted | object | Whether the organization accepted the current version of each document. |
legalAccepted.terms | boolean | |
legalAccepted.dpa | boolean |
Examples
Two items left
HTTP
GET /api/v1/brands/brd_01m4tx5nj8emwbyf7y9vcf47x4/go_live_checklist
Authorization: Bearer or_test_…
Response (200):
JSON
{
"object": "go_live_checklist",
"brandId": "brd_01m4tx5nj8emwbyf7y9vcf47x4",
"entityId": "ent_01m4tx5nj8emwbyf7y9vcf47x2",
"brandStatus": "test_only",
"ready": false,
"live": false,
"items": [
{
"requirement": "plan_livemode",
"met": true,
"reason": null
},
{
"requirement": "org_status",
"met": true,
"reason": null
},
{
"requirement": "legal_accepted",
"met": false,
"reason": "An owner or admin must accept the current version of the Data Processing Agreement."
},
{
"requirement": "entity_verified",
"met": true,
"reason": null
},
{
"requirement": "invoice_settings",
"met": true,
"reason": null
},
{
"requirement": "home_registration",
"met": true,
"reason": null
},
{
"requirement": "processor_live",
"met": true,
"reason": null
},
{
"requirement": "brand_urls",
"met": false,
"reason": "The brand needs its privacy URL."
},
{
"requirement": "brand_status",
"met": true,
"reason": null
}
],
"processor": {
"connectionId": "pcon_01m4tx5nj8emwbyf7y9vcf47xd",
"processor": "stripe",
"status": "active",
"lastTestOk": true,
"lastTestAt": "2026-10-26T09:00:00.000Z"
},
"legalVersions": {
"terms": "1.0",
"dpa": "1.0"
},
"legalAccepted": {
"terms": true,
"dpa": false
}
}
Errors
| Code | HTTP status | When | What to do |
|---|---|---|---|
resource_not_found | 404 | No such brand in your scope. | Check the ID and that your credentials are scoped to the right organization, entity, brand and mode. |
permission_denied | 403 | You can't read this brand. | Ask an organization owner or admin for a role or scope that allows this action. |
It can also return these common errors: validation_failed, api_version_unsupported, authentication_required, api_key_invalid, dry_run_not_supported, rate_limited, internal_error.