Perfil y branding de la Organization
Lee y actualiza el perfil y el branding white-label de la Organization desde el Dashboard.
Estos endpoints sustentan las pantallas de perfil y branding de la Organization. El perfil contiene la identidad de compliance de la Organization — razón social, registro, país. El branding contiene la superficie white-label: logotipo, colores y la apariencia que los clientes ven en el Customer Portal y en los flujos alojados.
Como Tokeflow es white-label, este branding es lo que tus clientes experimentan como tu producto. Los cambios se aplican a las superficies de toda la Organization en la siguiente carga.
Estos endpoints impulsan la interfaz del Tokeflow Dashboard a nivel de la Organization. Están autenticados por sesión (JWT bearer) — el token proviene de iniciar sesión en el Dashboard, no de una clave de API sk_/pk_. Las solicitudes también incluyen el header x-organization-id, y el usuario que inició sesión debe ser miembro de esa Organization.
El objeto Organization
Devuelto por los endpoints de listado y consulta de esta página.
| Campo | Tipo | Descripción |
|---|---|---|
id | string | ID de la Organization. |
name | string | Nombre de la Organization. |
slug | string | Slug del negocio. |
status | string | Estado de la Organization. |
business_registration_number | string | null | Número de registro empresarial (identificación fiscal). |
mcc | string | null | Merchant Category Code (MCC). |
phone_number | string | null | Número de teléfono de contacto. |
address_line1 | string | null | Línea 1 de la dirección del Merchant. |
address_line2 | string | null | Línea 2 de la dirección del Merchant. |
city | string | null | Ciudad del Merchant. |
state | string | null | Estado del Merchant. |
postal_code | string | null | Código postal del Merchant. |
country_code | string | null | Código de país del Merchant. |
external_reference | string | null | Referencia/ID externo del sistema de la Organization. |
created_at | string | Fecha en la que se creó la Organization. (ISO 8601 UTC). |
updated_at | string | Fecha de la última actualización de la Organization. (ISO 8601 UTC). |
branding | object | Información de branding de la Organization. |
Endpoints
GET/api/v1/organization
Auth: Dashboard session (JWT bearer). Se requiere membresía de la Organization.
Obtiene la información de perfil y branding de la Organization.
Ejemplo de solicitud
curl https://api.tokeflow.com/api/v1/organization \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9…" \
-H "x-organization-id: org_4b21e7c3"Ejemplo de respuesta — 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). Se requiere membresía de la Organization.
Actualiza la información de perfil de la Organization.
Campos de la solicitud
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
name | string | Sí | Nombre de la Organization. |
business_registration_number | string | null | Sí | Número de registro empresarial (identificación fiscal). |
mcc | string | null | Sí | Merchant Category Code (MCC). |
phone_number | string | null | Sí | Número de teléfono de contacto. |
address_line1 | string | null | Sí | Línea 1 de la dirección del Merchant. |
address_line2 | string | null | Sí | Línea 2 de la dirección del Merchant. |
city | string | null | Sí | Ciudad del Merchant. |
state | string | null | Sí | Estado del Merchant. Código de subdivisión ISO 3166-2 sin el prefijo del país ("SP", no "BR-SP"). Se verifica contra country_code cuando se envían ambos. |
postal_code | string | null | Sí | Código postal del Merchant. |
country_code | string | null | Sí | Código de país del Merchant. |
external_reference | string | null | Sí | Referencia/ID externo del sistema de la Organization. |
Ejemplo de solicitud
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"
}'Ejemplo de respuesta — 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). Se requiere membresía de la Organization.
Obtiene la información de branding de la Organization.
Ejemplo de solicitud
curl https://api.tokeflow.com/api/v1/organization/branding \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9…" \
-H "x-organization-id: org_4b21e7c3"Ejemplo de respuesta — 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). Se requiere membresía de la Organization.
Actualiza la información de branding de la Organization.
Campos de la solicitud
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
theme_primary_color | string | null | No | Color primario en formato hexadecimal. |
theme_secondary_color | string | null | No | Color secundario en formato hexadecimal. |
custom_url | string | null | No | URL personalizada de la Organization. |
site_title | string | null | No | Título del sitio de la Organization. |
favicon | string | null | No | URL del favicon de la Organization. |
logo_light_mode | string | null | No | URL del logotipo para el modo claro. |
logo_dark_mode | string | null | No | URL del logotipo para el modo oscuro. |
collapsible_logo_light_mode | string | null | No | URL del logotipo plegable para el modo claro. |
collapsible_logo_dark_mode | string | null | No | URL del logotipo plegable para el modo oscuro. |
show_name_with_logo | boolean | No | Muestra el título del sitio (o el nombre del Merchant) junto al logotipo en el Customer Portal, en lugar de reemplazarlo. |
Ejemplo de solicitud
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
}'Ejemplo de respuesta — 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"
}Errores
Los errores usan el envoltorio estándar. Los casos más comunes aquí:
| HTTP | Significado |
|---|---|
400 | Parámetros inválidos o un estado que no permite esta operación. |
401 | Token de sesión del Dashboard ausente, vencido o inválido. |
403 | Autenticado, pero el usuario que inició sesión no tiene acceso a esta entidad. |
404 | El registro no existe o no es visible para esta entidad. |