Requisitos para integrar
Con la API Cobros de SiPago generás links de pago (Checkout) desde tu sistema. Tu cliente paga en el formulario de SiPago y vos te enterás del resultado.
Cómo funciona

| Paso | Qué hacés | Dónde está explicado |
|---|---|---|
| 1 | Obtener el token de acceso | En esta página, más abajo |
| 2 | Crear la orden de pago | Integración Checkout |
| 3 | Mostrar el link al comprador | Integración Checkout |
| 4 y 5 | Recibir el resultado (webhook y redirección) | Integración avanzada |
| 6 | Consultar el estado de la orden | Estado de la orden |
Las credenciales de desarrollo son públicas y funcionan en el ambiente de desarrollo. Podés seguir toda esta guía sin dar de alta nada.
Credenciales
Necesitás dos datos, que te entrega SiPago:
| Dato | Para qué sirve |
|---|---|
client_id | Identifica tu aplicación. |
client_secret | Clave privada con la que obtenés el token. |
El client_secret se usa solo en tu servidor. No lo pongas en el frontend, en una app móvil ni en un repositorio público.
Cada ambiente (desarrollo y producción) tiene sus propias URLs y credenciales. Las encontrás en Ambientes.
Obtener el token (JWT)
Con el client_id y el client_secret le pedís al servidor de autenticación un token. Ese token va en todas las llamadas a la API de Checkout.
POST {auth_url}/oauth/token, donde {auth_url} es la URL del Auth Server del ambiente que uses (Ambientes).
| Campo | Valor |
|---|---|
grant_type | "client_credentials" (siempre este valor) |
client_id | Tu client_id |
client_secret | Tu client_secret |
scope | "*" (siempre este valor) |
curl --request POST 'https://auth.stg.geopagos.io/oauth/token' \
--header 'Content-Type: application/json' \
--data '{
"grant_type": "client_credentials",
"client_id": "TU_CLIENT_ID",
"client_secret": "TU_CLIENT_SECRET",
"scope": "*"
}'Respuesta:
{
"token_type": "Bearer",
"expires_in": 3600,
"access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9..."
}
Usá el access_token en el header Authorization de las próximas llamadas:
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...
No pidas un token nuevo para cada orden. Guardalo y reutilizalo hasta poco antes de que venza. El vencimiento exacto está en el campo exp del JWT (fecha Unix, en segundos). Es más confiable que expires_in, cuyo formato puede variar según el ambiente.
Siguiente paso: crear una orden de pago.