SiPagoDocs
Docs para IA

Autenticación

La API utiliza el flujo OAuth 2.0 client_credentials contra el Identity Provider (Keycloak) de GeoPagos.

Credenciales necesarias

CredencialDescripción
client_idIdentificador OAuth del cliente/integrador. Se solicita al equipo de Sipago.
client_secretSecreto OAuth del cliente/integrador. Se solicita al equipo de Sipago.
TENANT_IDENTIFIERUUID 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).