📚 Documentación de API
Referencia completa de todos los endpoints de SOMARPAY.
Índice
URL Base:
En producción, reemplaza con tu dominio.
En producción, reemplaza con tu dominio.
1. Autenticación
La API usa dos tipos de autenticación:
- API Key: Para endpoints de checkout y pagos
- JWT Token: Para endpoints de administración
Autenticación por API Key
curl -H "X-API-Key: tu_api_key" https://tu-dominio.com/api/v1/checkout
2. Checkout (Iniciar Pagos)
POST
/checkout
API Key
Inicia una nueva transacción
Request Body
| Parámetro | Tipo | Descripción |
|---|---|---|
| order_id * | string | ID único del pedido |
| amount * | integer | Monto en centavos |
| currency | string | Moneda (default: CLP) |
| provider * | string | TRANSBANK, MERCADOPAGO o GETNET |
| description | string | Descripción de la compra |
| return_url * | string | URL de retorno (éxito) |
| cancel_url * | string | URL de cancelación (fracaso/aborto) |
| client_email | string | Email del cliente |
| client_name | string | Nombre del cliente |
| sandbox | boolean | Si es true, usa ambiente de sandbox/integración del proveedor |
Ejemplo Request
{
"order_id": "ORD-001",
"amount": 5990,
"currency": "CLP",
"provider": "TRANSBANK",
"description": "Compra de prueba",
"return_url": "https://mi-comercio.com/exito",
"cancel_url": "https://mi-comercio.com/fracaso",
"client_email": "cliente@email.com",
"client_name": "Juan Pérez"
}
Ejemplo Response (Éxito)
{
"payment_id": "pay_123456789",
"action": "REDIRECT",
"target_url": "https://webpay3gint.transbank.cl/...",
"token": "01ab23cd..."
}
Ejemplo Response (Error)
{
"error": "provider not supported"
}
3. Pagos (Consultas)
GET
/payments
API Key
Lista pagos con filtros
Query Parameters
| Parámetro | Descripción |
|---|---|
| limit | Cantidad (default: 20) |
| provider | Filtrar por proveedor |
| status | CREATED, APPROVED, REJECTED |
4. Webhooks
Importante: Configura estas URLs en el panel de cada proveedor.
| Proveedor | URL |
|---|---|
| Transbank | |
| Mercado Pago | |
| Getnet | |
5. Administración
POST
/admin/auth/login
Público
Obtiene JWT token
{"username": "admin", "password": "..."}
GET
/admin/config/summary
JWT
Resumen de configuración
[{"category": "transbank", "configured": false}, {"category": "mercadopago", "configured": true}]