Autenticación de la API
Todas las peticiones a la API REST pública de Pago Cierto requieren autenticación mediante tu API Key de negocio.
Cabeceras HTTP Soportadas:
Puedes obtener o regenerar tu API Key en cualquier momento iniciando sesión e ingresando al menú Mi Cuenta > API & Webhooks.
Consultar Pagos Detectados
/api/external/payments
Retorna la lista de transacciones capturadas en tiempo real para tu negocio, con soporte de paginación y filtros.
Parámetros Query (Opcionales):
| Parámetro | Tipo | Valores | Descripción |
|---|---|---|---|
| period | String | all, day, week, month | Filtro temporal (Por defecto: all). |
| sourceApp | String | all, yape, nequi, bancolombia | Filtrar por canal de pago. |
| verified | String | all, verified, unverified | Filtrar por estado de verificación. |
| search | String | Texto | Busca por nombre del pagador o código. |
Respuesta JSON (200 OK):
{
"success": true,
"payments": [
{
"id": 142,
"source_app": "yape",
"payer_name": "JUAN PEREZ",
"amount": 20.00,
"currency": "PEN",
"security_code": "482910",
"verified_at": "2026-07-27T01:05:00Z",
"verified_by_name": "Carlos Ruiz",
"detected_at": "2026-07-27T01:04:12Z"
}
],
"summary": {
"payment_count": 1,
"total_pen": 20.00,
"total_cop": 0.00
}
}
Verificar Pago desde tu Sistema
/api/external/payments/:id/verify
Permite a tus propios bots o sistemas cambiar el estado de un pago a verificado o no verificado.
Request Body JSON:
{
"verified": true
}
Conciliación Rápida por Código (Claim)
/api/external/yape/claim
Busca y marca automáticamente un pago en base al monto y código de seguridad (Yape/Nequi) ingresado por tu cliente en tu carrito de compras.
Request Body JSON:
{
"security_code": "482910",
"amount": 20.00
}
Webhooks en Tiempo Real
Cuando un dispositivo Android captura un nuevo pago, Pago Cierto envía inmediatamente una notificación HTTP POST a la URL de tu Webhook en menos de 1 segundo.
Estructura del Payload enviado a tu Webhook:
{
"event": "payment.detected",
"business_id": 15,
"payment": {
"id": 142,
"source_app": "yape",
"payer_name": "JUAN PEREZ",
"amount": 20.00,
"currency": "PEN",
"security_code": "482910",
"detected_at": "2026-07-27T01:04:12Z"
}
}
Cabeceras de Seguridad en la Petición Entrante:
Tu servidor recibirá la cabecera con tu API Key para validar que la notificación proviene de Pago Cierto:
Ejemplos de Integración
// Ejemplo: Servidor Receptor de Webhook en Node.js (Express)
const express = require('express');
const app = express();
app.use(express.json());
app.post('/mi-webhook-pagos', (req, res) => {
const webhookKey = req.headers['x-webhook-key'];
// Validar autenticidad de Pago Cierto
if (webhookKey !== process.env.PAGOS_LIVE_API_KEY) {
return res.status(401).send('Unauthorized');
}
const { event, payment } = req.body;
if (event === 'payment.detected') {
console.log(`¡Pago recibido! ${payment.payer_name} pagó ${payment.currency} ${payment.amount}`);
// Aquí puedes activar tu pedido en tu tienda o entregar el producto digital
}
res.status(200).json({ received: true });
});
app.listen(3000, () => console.log('Escuchando webhooks de Pago Cierto en puerto 3000'));