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.

CampoTipoDescripción
idstringID de la Organization.
namestringNombre de la Organization.
slugstringSlug del negocio.
statusstringEstado de la Organization.
business_registration_numberstring | nullNúmero de registro empresarial (identificación fiscal).
mccstring | nullMerchant Category Code (MCC).
phone_numberstring | nullNúmero de teléfono de contacto.
address_line1string | nullLínea 1 de la dirección del Merchant.
address_line2string | nullLínea 2 de la dirección del Merchant.
citystring | nullCiudad del Merchant.
statestring | nullEstado del Merchant.
postal_codestring | nullCódigo postal del Merchant.
country_codestring | nullCódigo de país del Merchant.
external_referencestring | nullReferencia/ID externo del sistema de la Organization.
created_atstringFecha en la que se creó la Organization. (ISO 8601 UTC).
updated_atstringFecha de la última actualización de la Organization. (ISO 8601 UTC).
brandingobjectInformación de branding de la Organization.

Endpoints

GET/api/v1/organization

Org

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

Org

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

CampoTipoObligatorioDescripción
namestringSíNombre de la Organization.
business_registration_numberstring | nullSíNúmero de registro empresarial (identificación fiscal).
mccstring | nullSíMerchant Category Code (MCC).
phone_numberstring | nullSíNúmero de teléfono de contacto.
address_line1string | nullSíLínea 1 de la dirección del Merchant.
address_line2string | nullSíLínea 2 de la dirección del Merchant.
citystring | nullSíCiudad del Merchant.
statestring | nullSí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_codestring | nullSíCódigo postal del Merchant.
country_codestring | nullSíCódigo de país del Merchant.
external_referencestring | nullSí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

Org

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

Org

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

CampoTipoObligatorioDescripción
theme_primary_colorstring | nullNoColor primario en formato hexadecimal.
theme_secondary_colorstring | nullNoColor secundario en formato hexadecimal.
custom_urlstring | nullNoURL personalizada de la Organization.
site_titlestring | nullNoTítulo del sitio de la Organization.
faviconstring | nullNoURL del favicon de la Organization.
logo_light_modestring | nullNoURL del logotipo para el modo claro.
logo_dark_modestring | nullNoURL del logotipo para el modo oscuro.
collapsible_logo_light_modestring | nullNoURL del logotipo plegable para el modo claro.
collapsible_logo_dark_modestring | nullNoURL del logotipo plegable para el modo oscuro.
show_name_with_logobooleanNoMuestra 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í:

HTTPSignificado
400Parámetros inválidos o un estado que no permite esta operación.
401Token de sesión del Dashboard ausente, vencido o inválido.
403Autenticado, pero el usuario que inició sesión no tiene acceso a esta entidad.
404El registro no existe o no es visible para esta entidad.

Relacionados

En esta página