Perfil e branding da Organization
Leia e atualize o perfil e o branding white-label da Organization pelo Dashboard.
Esses endpoints sustentam as telas de perfil e branding da Organization. O perfil contém a identidade de compliance da Organization — razão social, registro, país. O branding contém a superfície white-label: logotipo, cores e a aparência que os clientes veem no Customer Portal e nos fluxos hospedados.
Como o Tokeflow é white-label, esse branding é o que seus clientes experimentam como seu produto. As alterações são aplicadas às superfícies em todo o escopo da Organization no próximo carregamento.
Esses endpoints alimentam a interface do Tokeflow Dashboard no nível da Organization. Eles são autenticados por sessão (JWT bearer) — o token vem do login no Dashboard, não de uma chave de API sk_/pk_. As solicitações também carregam o header x-organization-id, e o usuário autenticado deve ser membro dessa Organization.
O objeto Organization
Retornado pelos endpoints de listagem e consulta desta página.
| Campo | Tipo | Descrição |
|---|---|---|
id | string | ID da Organization. |
name | string | Nome da Organization. |
slug | string | Slug do negócio. |
status | string | Status da Organization. |
business_registration_number | string | null | Número de registro empresarial (identificação fiscal). |
mcc | string | null | Merchant Category Code (MCC). |
phone_number | string | null | Número de telefone de contato. |
address_line1 | string | null | Linha 1 do endereço do Merchant. |
address_line2 | string | null | Linha 2 do endereço do Merchant. |
city | string | null | Cidade do Merchant. |
state | string | null | Estado do Merchant. |
postal_code | string | null | Código postal do Merchant. |
country_code | string | null | Código do país do Merchant. |
external_reference | string | null | Referência/ID externo do sistema da Organization. |
created_at | string | Data em que a Organization foi criada. (ISO 8601 UTC). |
updated_at | string | Data da última atualização da Organization. (ISO 8601 UTC). |
branding | object | Informações de branding da Organization. |
Endpoints
GET/api/v1/organization
Auth: Dashboard session (JWT bearer). É necessário ser membro da Organization.
Obtém as informações de perfil e branding da Organization.
Exemplo de solicitação
curl https://api.tokeflow.com/api/v1/organization \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9…" \
-H "x-organization-id: org_4b21e7c3"Exemplo de resposta — 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ão 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). É necessário ser membro da Organization.
Atualiza as informações de perfil da Organization.
Campos da solicitação
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
name | string | Sim | Nome da Organization. |
business_registration_number | string | null | Sim | Número de registro empresarial (identificação fiscal). |
mcc | string | null | Sim | Merchant Category Code (MCC). |
phone_number | string | null | Sim | Número de telefone de contato. |
address_line1 | string | null | Sim | Linha 1 do endereço do Merchant. |
address_line2 | string | null | Sim | Linha 2 do endereço do Merchant. |
city | string | null | Sim | Cidade do Merchant. |
state | string | null | Sim | Estado do Merchant. Código de subdivisão ISO 3166-2 sem o prefixo do país ("SP", e não "BR-SP"). Verificado em relação a country_code quando ambos são enviados. |
postal_code | string | null | Sim | Código postal do Merchant. |
country_code | string | null | Sim | Código do país do Merchant. |
external_reference | string | null | Sim | Referência/ID externo do sistema da Organization. |
Exemplo de solicitação
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ão Paulo",
"state": "SP",
"postal_code": "12345-678",
"country_code": "BR",
"external_reference": "internal_id_99"
}'Exemplo de resposta — 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ão 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). É necessário ser membro da Organization.
Obtém as informações de branding da Organization.
Exemplo de solicitação
curl https://api.tokeflow.com/api/v1/organization/branding \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9…" \
-H "x-organization-id: org_4b21e7c3"Exemplo de resposta — 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). É necessário ser membro da Organization.
Atualiza as informações de branding da Organization.
Campos da solicitação
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
theme_primary_color | string | null | Não | Cor primária em formato hexadecimal. |
theme_secondary_color | string | null | Não | Cor secundária em formato hexadecimal. |
custom_url | string | null | Não | URL personalizada da Organization. |
site_title | string | null | Não | Título do site da Organization. |
favicon | string | null | Não | URL do favicon da Organization. |
logo_light_mode | string | null | Não | URL do logotipo para o modo claro. |
logo_dark_mode | string | null | Não | URL do logotipo para o modo escuro. |
collapsible_logo_light_mode | string | null | Não | URL do logotipo recolhível para o modo claro. |
collapsible_logo_dark_mode | string | null | Não | URL do logotipo recolhível para o modo escuro. |
show_name_with_logo | boolean | Não | Exibe o título do site (ou o nome do Merchant) ao lado do logotipo no Customer Portal, em vez de substituí-lo. |
Exemplo de solicitação
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
}'Exemplo de resposta — 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"
}Erros
Os erros usam o envelope padrão. Os casos mais comuns aqui:
| HTTP | Significado |
|---|---|
400 | Parâmetros inválidos ou um estado que não permite esta operação. |
401 | Token de sessão do Dashboard ausente, expirado ou inválido. |
403 | Autenticado, mas o usuário logado não tem acesso a esta entidade. |
404 | O registro não existe ou não está visível para esta entidade. |