Organization profile and branding
Read and update the organization's profile and white-label branding from the Dashboard.
These endpoints back the organization's profile and branding screens. The profile holds the org's compliance identity — legal name, registration, country. Branding holds the white-label surface: logo, colors, and the look customers see in the Customer Portal and hosted flows.
Because Tokeflow is white-label, this branding is what your customers experience as your product. Changes apply to org-wide surfaces on their next load.
These endpoints power the Tokeflow Dashboard UI at the organization level. They are session-authenticated (JWT bearer) — the token comes from signing in to the Dashboard, not from an sk_/pk_ API key. Requests also carry the x-organization-id header, and the signed-in user must be a member of that organization.
The organization object
Returned by the list and retrieve endpoints on this page.
| Field | Type | Description |
|---|---|---|
id | string | Organisation ID. |
name | string | Organisation name. |
slug | string | Business Slug. |
status | string | Organisation status. |
business_registration_number | string | null | Business registration number (tax ID). |
mcc | string | null | Merchant Category Code (MCC). |
phone_number | string | null | Contact phone number. |
address_line1 | string | null | Merchant address line 1. |
address_line2 | string | null | Merchant address line 2. |
city | string | null | City of the merchant. |
state | string | null | State of the merchant. |
postal_code | string | null | Postal code of the merchant. |
country_code | string | null | Country code of the merchant. |
external_reference | string | null | External reference/ID from organization system. |
created_at | string | Date when the organisation was created. (ISO 8601 UTC). |
updated_at | string | Date when the organisation was last updated. (ISO 8601 UTC). |
branding | object | Branding information for the organisation. |
Endpoints
GET/api/v1/organization
Auth: Dashboard session (JWT bearer). Organization membership required.
Get organization profile and branding information.
Example request
curl https://api.tokeflow.com/api/v1/organization \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9…" \
-H "x-organization-id: org_4b21e7c3"Example response — 200
{
"id": "org_123",
"name": "Acme Corp",
"slug": "acme-corp",
"status": "active",
"business_registration_number": "12345678000199",
"mcc": "5732",
"phone_number": "+55 11 99999-0000",
"address_line1": "123 Main St",
"address_line2": "Suite 100",
"city": "S\u00e3o Paulo",
"state": "SP",
"postal_code": "12345-678",
"country_code": "BR",
"external_reference": "internal_id_99",
"created_at": "2024-01-01T00:00:00Z",
"updated_at": "2024-01-02T00:00:00Z",
"branding": {
"theme_primary_color": "#FF5733",
"theme_secondary_color": "#33C1FF",
"custom_url": "https://www.acme-corp.com",
"site_title": "Acme Corp Identity Provider",
"favicon": "https://www.acme-corp.com/favicon.ico",
"logo_light_mode": "https://www.acme-corp.com/logo-light.png",
"logo_dark_mode": "https://www.acme-corp.com/logo-dark.png",
"collapsible_logo_light_mode": "https://www.acme-corp.com/collapsible-logo-light.png",
"collapsible_logo_dark_mode": "https://www.acme-corp.com/collapsible-logo-dark.png"
}
}PATCH/api/v1/organization
Auth: Dashboard session (JWT bearer). Organization membership required.
Update organization profile information.
Request fields
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Organisation name. |
business_registration_number | string | null | Yes | Business registration number (tax ID). |
mcc | string | null | Yes | Merchant Category Code (MCC). |
phone_number | string | null | Yes | Contact phone number. |
address_line1 | string | null | Yes | Merchant address line 1. |
address_line2 | string | null | Yes | Merchant address line 2. |
city | string | null | Yes | City of the merchant. |
state | string | null | Yes | State of the merchant. ISO 3166-2 subdivision code without the country prefix ("SP", not "BR-SP"). Checked against country_code when both are sent. |
postal_code | string | null | Yes | Postal code of the merchant. |
country_code | string | null | Yes | Country code of the merchant. |
external_reference | string | null | Yes | External reference/ID from organization system. |
Example request
curl -X PATCH https://api.tokeflow.com/api/v1/organization \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9…" \
-H "x-organization-id: org_4b21e7c3" \
-H "Content-Type: application/json" \
-d '{
"name": "Acme Corp",
"business_registration_number": "12345678000199",
"mcc": "5732",
"phone_number": "+55 11 99999-0000",
"address_line1": "123 Main St",
"address_line2": "Suite 100",
"city": "S\u00e3o Paulo",
"state": "SP",
"postal_code": "12345-678",
"country_code": "BR",
"external_reference": "internal_id_99"
}'Example response — 202
{
"id": "org_123",
"name": "Acme Corp",
"slug": "acme-corp",
"status": "active",
"business_registration_number": "12345678000199",
"mcc": "5732",
"phone_number": "+55 11 99999-0000",
"address_line1": "123 Main St",
"address_line2": "Suite 100",
"city": "S\u00e3o Paulo",
"state": "SP",
"postal_code": "12345-678",
"country_code": "BR",
"external_reference": "internal_id_99",
"created_at": "2024-01-01T00:00:00Z",
"updated_at": "2024-01-02T00:00:00Z",
"branding": {
"theme_primary_color": "#FF5733",
"theme_secondary_color": "#33C1FF",
"custom_url": "https://www.acme-corp.com",
"site_title": "Acme Corp Identity Provider",
"favicon": "https://www.acme-corp.com/favicon.ico",
"logo_light_mode": "https://www.acme-corp.com/logo-light.png",
"logo_dark_mode": "https://www.acme-corp.com/logo-dark.png",
"collapsible_logo_light_mode": "https://www.acme-corp.com/collapsible-logo-light.png",
"collapsible_logo_dark_mode": "https://www.acme-corp.com/collapsible-logo-dark.png"
}
}GET/api/v1/organization/branding
Auth: Dashboard session (JWT bearer). Organization membership required.
Get organization branding information.
Example request
curl https://api.tokeflow.com/api/v1/organization/branding \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9…" \
-H "x-organization-id: org_4b21e7c3"Example response — 200
{
"theme_primary_color": "#FF5733",
"theme_secondary_color": "#33C1FF",
"custom_url": "https://www.acme-corp.com",
"site_title": "Acme Corp Identity Provider",
"favicon": "https://www.acme-corp.com/favicon.ico",
"logo_light_mode": "https://www.acme-corp.com/logo-light.png",
"logo_dark_mode": "https://www.acme-corp.com/logo-dark.png",
"collapsible_logo_light_mode": "https://www.acme-corp.com/collapsible-logo-light.png",
"collapsible_logo_dark_mode": "https://www.acme-corp.com/collapsible-logo-dark.png"
}PATCH/api/v1/organization/branding
Auth: Dashboard session (JWT bearer). Organization membership required.
Update organization branding information.
Request fields
| Field | Type | Required | Description |
|---|---|---|---|
theme_primary_color | string | null | No | Primary color in hex format. |
theme_secondary_color | string | null | No | Secondary color in hex format. |
custom_url | string | null | No | Custom URL for the organization. |
site_title | string | null | No | Site title for the organization. |
favicon | string | null | No | Favicon URL for the organization. |
logo_light_mode | string | null | No | Logo URL for light mode. |
logo_dark_mode | string | null | No | Logo URL for dark mode. |
collapsible_logo_light_mode | string | null | No | Collapsible logo URL for light mode. |
collapsible_logo_dark_mode | string | null | No | Collapsible logo URL for dark mode. |
show_name_with_logo | boolean | No | Show the site title (or merchant name) alongside the logo in the customer portal instead of replacing it. |
Example request
curl -X PATCH https://api.tokeflow.com/api/v1/organization/branding \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9…" \
-H "x-organization-id: org_4b21e7c3" \
-H "Content-Type: application/json" \
-d '{
"theme_primary_color": "#FF5733",
"theme_secondary_color": "#33C1FF",
"custom_url": "https://www.acme-corp.com",
"site_title": "Acme Corp Identity Provider",
"favicon": "https://www.acme-corp.com/favicon.ico",
"logo_light_mode": "https://www.acme-corp.com/logo-light.png",
"logo_dark_mode": "https://www.acme-corp.com/logo-dark.png",
"collapsible_logo_light_mode": "https://www.acme-corp.com/collapsible-logo-light.png",
"collapsible_logo_dark_mode": "https://www.acme-corp.com/collapsible-logo-dark.png",
"show_name_with_logo": false
}'Example response — 202
{
"theme_primary_color": "#FF5733",
"theme_secondary_color": "#33C1FF",
"custom_url": "https://www.acme-corp.com",
"site_title": "Acme Corp Identity Provider",
"favicon": "https://www.acme-corp.com/favicon.ico",
"logo_light_mode": "https://www.acme-corp.com/logo-light.png",
"logo_dark_mode": "https://www.acme-corp.com/logo-dark.png",
"collapsible_logo_light_mode": "https://www.acme-corp.com/collapsible-logo-light.png",
"collapsible_logo_dark_mode": "https://www.acme-corp.com/collapsible-logo-dark.png"
}Errors
Errors use the standard envelope. The most common cases here:
| HTTP | Meaning |
|---|---|
400 | Invalid parameters or a state that does not allow this operation. |
401 | Missing, expired, or invalid Dashboard session token. |
403 | Authenticated, but the signed-in user lacks access to this entity. |
404 | The record does not exist or is not visible to this entity. |