Saltar al contenido
Developer Docs

Obtener token OAuth2

POST
/idp/oauth2/token

Emite tokens OAuth2 que autentican todas las llamadas a la API. La base de seguridad de la plataforma.

Admite cuatro flujos según el tipo de integración:

  • client_credentials — acceso servidor a servidor a la API de Zertiban. El par clientId / clientSecret viaja en la cabecera Authorization como HTTP Basic, no en el cuerpo. Devuelve un access_token de corta duración (el valor por defecto de expires_in es 900 segundos / 15 minutos). Envíalo en cada llamada posterior a la API como Authorization: Bearer {access_token}, junto con x-tenant-id: {businessUuid}.
  • authorization_code + PKCE — inicio de sesión desde el navegador para el Dashboard de Zertiban.
  • refresh_token — intercambia un refresh token por un nuevo access token (normalmente para la sesión del Dashboard).
  • urn:ietf:params:oauth:grant-type:token-exchange — cambio de tenant a tenant dentro de la misma sesión de usuario. El dashboard envía el access_token actual como subject_token y el UUID del tenant de destino como audience. Devuelve un nuevo access_token con los roles y las authorities del tenant de destino. El token original no se revoca. Los parámetros scope y resource no se aceptan y producirán un 400 invalid_request.

Lee siempre expires_in de la respuesta y renueva el token antes de que caduque para evitar errores 401.

Autorizaciones

clientSecretBasic

Autenticación de cliente OAuth2 para el endpoint de token. El
par clientId / clientSecret se envía como HTTP Basic Auth en
la cabecera Authorization (p. ej. curl -u clientId:clientSecret,
Python requests auth=(id, secret)), no en el cuerpo de la solicitud.
Obligatoria por defecto para clientes confidenciales.

Tipo
HTTP (basic)

Cuerpo de la petición

application/x-www-form-urlencoded
object
One of
object
Valores válidos"authorization_code"
Formato"uri"

Code verifier de PKCE (cadena aleatoria original).

object

Cuerpo para el grant client_credentials — autenticación
servidor a servidor para los consumidores de la API de Zertiban. El
clientId y el clientSecret viajan como HTTP Basic Auth en la
cabecera Authorization, no en este cuerpo.

Debe ser client_credentials.

Valores válidos"client_credentials"

Scopes opcionales separados por espacios. El parámetro scope
no es obligatorio para el acceso estándar a la API de Zertiban.

OBLIGATORIO cuando scope incluye web_app. UUID del tenant para el que se emite el token. El valor se incluye como reclamación tenant_id en el access token resultante.

Formato"uuid"
object
Valores válidos"refresh_token"

Conjunto de scopes reducido y opcional.

object

Cuerpo para el grant token-exchange (RFC 8693): cambio de tenant a
tenant dentro de la misma sesión de usuario. El dashboard envía el
access token actual como subject_token y el UUID del tenant de
destino como audience. Devuelve un nuevo access token con los roles y
las authorities del tenant de destino. El token original no se
revoca. Los parámetros scope y resource no se aceptan y
producirán 400 invalid_request.

Debe ser urn:ietf:params:oauth:grant-type:token-exchange.

Valores válidos"urn:ietf:params:oauth:grant-type:token-exchange"

Access token (JWT) actual del usuario autenticado.

Debe ser urn:ietf:params:oauth:token-type:access_token.

Valores válidos"urn:ietf:params:oauth:token-type:access_token"

UUID del tenant de destino al que el usuario quiere cambiar.

Formato"uuid"

ID de cliente OAuth2 del dashboard (cliente público, no requiere secreto).

Opcional. Por defecto urn:ietf:params:oauth:token-type:access_token.

Respuestas

Respuesta del token

application/json
JSON
{
  
"access_token": "string",
  
"token_type": "Bearer",
  
"expires_in": 900,
  
"refresh_token": "string",
  
"scope": "string",
  
"id_token": "string",
  
"issued_token_type": "string",
  
"additionalProperties": "string"
}

Playground

Autorización
Cuerpo

Ejemplos