Corresponsales API
Corresponsales API
Sistema REST para gestión de corresponsales bancarios. Permite consultar facturas, notificar pagos y reversar transacciones mediante stored procedures en bases de datos SQL Server multi-tenant.
¿Qué puedes hacer?
- Consultar facturas — Obtén el estado y detalle de una factura:
POST /corresponsales/api/factura/consulta/ - Notificar un pago — Registra el pago de una factura consultada:
POST /corresponsales/api/factura/pago/ - Reversar un pago — Cancela una notificación de pago:
POST /corresponsales/api/factura/pago/reversar/
Inicio rápido
- Obtén credenciales — Tu equipo de operaciones te entregará usuario, contraseña y
api-key - Lee la autenticación — JWT + api-key son obligatorios en cada request
- Prueba en sandbox — Usa el ambiente de pruebas antes de producción
- Integra el flujo completo — Consulta → Pago → (Reversa opcional)
Flujo de integración
Todo pago requiere una consulta previa. El request_id devuelto por la consulta es el vínculo entre las tres operaciones.
1. Obtener JWT
POST /api/token/
Body: { "username": "...", "password": "..." }
Response: { "access": "eyJ...", "refresh": "eyJ..." }
2. Consultar factura
POST /corresponsales/api/factura/consulta/
Headers: Authorization: Bearer {token}
api-key: {tu-api-key}
Body: { "invoice_id": "2025407608" }
Response: {
"status": "0",
"message": "Consulta exitosa",
"data": {
"ReciboPago": "2025407608",
"Total": 1003973,
"Vencimiento": "2026-02-09",
"Pagado": false,
"Vencido": false,
"Usable": true
},
"request_id": "f7002954-8ec2-4248-9c8e-6625a2588117"
}
3. Notificar pago (solo si Usable = true)
POST /corresponsales/api/factura/pago/
Headers: Authorization: Bearer {token}
api-key: {tu-api-key}
Body: { "request_id": "f7002954-8ec2-4248-9c8e-6625a2588117" }
Response: {
"status": "0",
"message": "Pago notificado exitosamente",
"data": { ... },
"llave_recibo": "..."
}
4. (Opcional) Reversar el pago
POST /corresponsales/api/factura/pago/reversar/
Headers: Authorization: Bearer {token}
api-key: {tu-api-key}
Body: { ... } ← parámetros definidos por el SP configurado
Response: { "status": "0", "message": "Pago revertido exitosamente", "data": [...] }
Precondiciones de negocio
- Solo se pueden pagar facturas con
"Usable": true - El
request_iddel pago debe corresponder a una consulta previa exitosa ("status": "0") del mismo usuario - El JWT y el
api-keydeben pertenecer al mismo usuario API - El usuario debe tener permiso explícito en cada endpoint (
User_Endpoint)
Seguridad
- JWT Bearer Token — Obligatorio en
Authorization: Bearer {token}. Vigencia: 8 horas. - api-key — UUID único por usuario API. Obligatorio en header
api-key. Debe pertenecer al mismo usuario del JWT. - HTTPS obligatorio — En producción, toda comunicación debe ser cifrada
- Rate limit — 200 requests/hora por usuario autenticado
Próximamente: Log de transacciones para implementadores — consulta el historial completo de operaciones por usuario, rango de fechas y estado.
REST system for bank correspondent management. Query invoices, notify payments, and reverse transactions using stored procedures on multi-tenant SQL Server databases.
What can you do?
- Query invoices — Get the status and detail of an invoice:
POST /corresponsales/api/factura/consulta/ - Notify a payment — Record payment of a queried invoice:
POST /corresponsales/api/factura/pago/ - Reverse a payment — Cancel a payment notification:
POST /corresponsales/api/factura/pago/reversar/
Quick start
- Get credentials — Your operations team will provide username, password and
api-key - Read the auth guide — JWT + api-key are required on every request
- Test in sandbox — Use the test environment before production
- Integrate the full flow — Query → Payment → (Optional Reversal)
Integration flow
Every payment requires a prior invoice query. The request_id returned by the query is the link between all three operations.
1. Get JWT
POST /api/token/
Body: { "username": "...", "password": "..." }
Response: { "access": "eyJ...", "refresh": "eyJ..." }
2. Query invoice
POST /corresponsales/api/factura/consulta/
Headers: Authorization: Bearer {token}
api-key: {your-api-key}
Body: { "invoice_id": "2025407608" }
Response: {
"status": "0",
"message": "Consulta exitosa",
"data": {
"ReciboPago": "2025407608",
"Total": 1003973,
"Vencimiento": "2026-02-09",
"Pagado": false,
"Vencido": false,
"Usable": true
},
"request_id": "f7002954-8ec2-4248-9c8e-6625a2588117"
}
3. Notify payment (only if Usable = true)
POST /corresponsales/api/factura/pago/
Headers: Authorization: Bearer {token}
api-key: {your-api-key}
Body: { "request_id": "f7002954-8ec2-4248-9c8e-6625a2588117" }
Response: {
"status": "0",
"message": "Pago notificado exitosamente",
"data": { ... },
"llave_recibo": "..."
}
4. (Optional) Reverse payment
POST /corresponsales/api/factura/pago/reversar/
Headers: Authorization: Bearer {token}
api-key: {your-api-key}
Body: { ... } ← parameters defined by the configured SP
Response: { "status": "0", "message": "Pago revertido exitosamente", "data": [...] }
Business preconditions
- Only invoices with
"Usable": truecan be paid - The payment
request_idmust match a prior successful query ("status": "0") from the same user - The JWT and
api-keymust belong to the same API user - The user must have explicit permission on each endpoint (
User_Endpoint)
Security
- JWT Bearer Token — Required in
Authorization: Bearer {token}. Valid for 8 hours. - api-key — UUID unique per API user. Required in
api-keyheader. Must belong to same user as the JWT. - HTTPS required — In production, all communication must be encrypted
- Rate limit — 200 requests/hour per authenticated user
Coming soon: Transaction log for implementers — query the full operation history by user, date range, and status.