Autenticación
La API utiliza el flujo OAuth 2.0 client_credentials contra el Identity Provider (Keycloak) de GeoPagos.
Credenciales necesarias
| Credencial | Descripción |
|---|---|
| client_id | Identificador OAuth del cliente/integrador. Se solicita al equipo de Sipago. |
| client_secret | Secreto OAuth del cliente/integrador. Se solicita al equipo de Sipago. |
| TENANT_IDENTIFIER | UUID del realm, necesario para el path del endpoint de token. Valor fijo y compartido por todos los integradores: 5662e892-59f2-4a54-aea8-cfbf77942843. |
Peligro: Protegé tus credenciales
Las credenciales son sensibles. Deben almacenarse en un vault/secret manager y nunca versionarse en repositorios ni exponerse en clientes front-end.
Obtener el access token
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": "eyJhbGci0iJSUzI1NiIs...",
"expires_in": 900,
"refresh_expires_in": 0,
"token_type": "Bearer",
"id_token": "eyJhbGci0iJSUzI1NiIs...",
"not-before-policy": 0,
"scope": "openid platform merchant",
"tid": "{TENANT_IDENTIFIER}"
}
Uso del token
El access_token obtenido se envía en cada request contra https://api.geopagos.io mediante el header:
Authorization: Bearer <access_token>
En las peticiones que envían body (POST, PUT, DELETE con body) se debe agregar además:
Content-Type: application/json
Si el header Authorization no está presente o el token es inválido, la API responde con un error de autenticación (ver Manejo de errores).