Autenticación
Se usa el flujo OAuth 2.0 client_credentials contra el Identity Provider.
Request
POST https://idp.prd.geopagos.io/auth/realms/{TENANT_IDENTIFIER}/protocol/openid-connect/token
Content-Type: application/x-www-form-urlencoded
curl --location 'https://idp.prd.geopagos.io/auth/realms/{TENANT_IDENTIFIER}/protocol/openid-connect/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'client_id={CLIENT_ID}' \
--data-urlencode 'client_secret={CLIENT_SECRET}' \
--data-urlencode 'grant_type=client_credentials' \
--data-urlencode 'scope=openid'
Response — 200 OK
{
"access_token": "eyJhbGciOiJSUzI1NiIs...",
"expires_in": 900,
"refresh_expires_in": 0,
"token_type": "Bearer",
"id_token": "eyJhbGciOiJSUzI1NiIs...",
"not-before-policy": 0,
"scope": "openid platform merchant",
"tid": "{TENANT_IDENTIFIER}"
}
Consideraciones
- El token expira a los 900 segundos (15 minutos). No hay refresh token (
refresh_expires_in: 0): al expirar, pedí un token nuevo repitiendo este request. - El token se envía en las siguientes llamadas con el header
Authorization: Bearer {access_token}.
Consejo: Renová el token antes de que venza
Cacheá el token y renovalo antes de su expiración (por ejemplo, a los ~13 minutos) para evitar errores 401 en llamadas concurrentes.
Siguiente paso: crear un point of sale.