Webhooks
Conoce cómo configurar un webhook para tus solicitudes con virtual accounts.
¿Qué son los webhooks?
Los webhooks nos permiten notificarte sobre eventos ocurridos con las cuentas virtuales. Son útiles para actualizaciones, como cuando un pago es confirmado, una solicitud de reembolso ha sido completada con éxito o un wire out está en proceso.
Configura un webhook
Para iniciar la configuración de tu webhook, sigue estos pasos:
- Crea un endpoint para recibirlo, es decir, crea una nueva ruta con la URL deseada.
- Ajusta la llamada HTTP de tu endpoint a POST.
- Agrega el body en formato JSON.
Método de autenticación
ProntoPaga firma todas las solicitudes de webhook con una apiKey para verificar su autenticidad.
Webhook Payloads
A continuación se presentan los campos más importantes que pueden aparecer en los distintos webhooks. Para cada campo, se explica qué representa y cómo se utiliza según el tipo de evento, ya sea un pago recibido, un reembolso o un wire out.
| Campo | Qué significa | Descripción |
|---|---|---|
payinId | Pago entrante / depósito | Indica que un cliente ha realizado un pago o depósito. Incluye datos del pagador (payer), la cuenta de destino (account) y el valor de la transacción (amount). |
refundId | Reembolso parcial | Representa un reembolso (total o parcial) de un pago anterior. Incluye status para saber si fue recibido, type para diferenciar parcial o total, y referenceId para vincularlo con el pago original. |
wireOutId | Transferencia saliente / Wire out | Indica que se realizó una transferencia desde tu cuenta hacia otra, usualmente internacional. Incluye processingStatus y statusMessage para el resultado, amount y currency. |
Webhook PayIns
El servicio de notificación vía webhook de ProntoPaga está diseñado para notificar automáticamente a los comercios cada vez que una cuenta virtual reciba un PayIn. Esto te permite mantener actualizados tus sistemas de ventas y automatizar procesos de conciliación.
A continuación, puedes conocer la estructura del webhook:
| Campo | Tipo | Descripción |
|---|---|---|
transactionId | string | ID del pago recibido. |
vaNumber | string | Número de cuenta virtual que recibió los fondos. |
amount | object | Monto recibido. |
payer | string | Datos de quien envía los fondos. |
name | string | Nombre del remitente. |
document | object | Documento del remitente. |
type | string | Tipo de documento de identidad (RUC, DNI, CE, Pasaporte, Otros). "Otros" se usa para beneficiarios fuera de Perú. |
id | string | Número de documento de identidad. Debe ser válido según las reglas del tipo de documento por país. |
bank | object | Datos de la cuenta de banco destino del reembolso. |
name | string | Nombre del banco. |
code | string | Código del banco. |
account | object | Información sobre la cuenta que recibe los fondos. |
number | string | Número de cuenta de donde la VA recibe los fondos. |
type | string enum | Tipo de cuenta de donde la VA recibe los fondos. |
comment | string | Información adicional o referencia sobre el pago. |
Proceso de notificaciones PayIns
A continuación, se detalla el proceso de notificación mediante webhooks para payins de cuentas virtuales en ProntoPaga:
- Recepción de pago. ProntoPaga recibe el pago en la cuenta virtual del comercio.
- Validación. ProntoPaga valida los detalles del pago, incluyendo el monto, la cuenta activa y el comercio al que pertenece la cuenta virtual.
- Notificación al comercio. Una vez validado el pago, ProntoPaga envía una notificación a la URL configurada por el comercio, con los detalles del pago recibido.
Este es un ejemplo de webhook que podrías recibir.
{
"payinId": "TX987654321",
"vaNumber": "CCIV-00012345",
"amount": {
"currency": "PEN",
"value": 1500
},
"payer": {
"name": "Jane Doe",
"document": {
"type": "DNI",
"id": "87654321"
},
"bank": {
"name": "BCP",
"code": "002"
}
},
"account": {
"number": "000987654321",
"type": "ahorros"
},
"comment": "reference"
}
Webhook PayOuts
El servicio de notificación vía webhook de ProntoPaga permite a los comercios recibir actualizaciones automáticas cada vez que se dispersen fondos desde una cuenta virtual como parte de un reembolso (refund) asociado a un PayIn.
A continuación, puedes conocer la estructura del webhook:
| Campo | Tipo | Definición del Campo |
|---|---|---|
vaNumber | string | Número de cuenta virtual que dispersó los fondos. |
amount | object | Monto enviado. |
transactionId | string | El transactionId del PayIn inicial proporcionado en el request. |
refundId | string | Identificador interno de ProntoPaga por la operación de refund. |
status | string enum | Estatus de la operación. Puede ser una de las siguientes opciones: received, locked, in_progress, on_hold o completed. |
comment | string | Información adicional o referencia sobre el pago. |
type | string enum | Tipo de reembolso aplicado: partial o total. |
referenceId | string | Identificador único que puede proporcionar el cliente para etiquetar y rastrear refunds dentro de su sistema (opcional). |
Proceso de notificaciones reembolsos
A continuación, se detalla el proceso de notificación mediante webhooks para reembolsos hacia cuentas virtuales:
- Cambio de estado de reembolso. Cada vez que el estado de un reembolso asociado a un pago realizado por cuenta virtual cambia (desde
receivedhastacompleted), ProntoPaga enviará una notificación al endpoint URL configurado por el comercio. - Validación y envío. El sistema de ProntoPaga valida la información del reembolso y envía una notificación con los detalles del reembolso y su estado actualizado.
Este es un ejemplo de webhook que podrías recibir.
{
"vaNumber": "1234567890",
"amount": {
"currency": "PEN",
"value": 1000
},
"payinId": "abc123xyz",
"refundId": "refund789",
"status": "received",
"comment": "Reembolso parcial solicitado por el cliente.",
"type": "partial",
"referenceId": "ref12345"
}
Webhook Wire outs
El servicio de notificación de estado de Wire Out tiene como objetivo informar a los comercios sobre cambios relevantes en el estado de una operación de wire out realizada desde ProntoPaga. Este mecanismo de webhooks se activa cada vez que el estado de un wire out cambia, específicamente cuando el estado es Processing, Success o Failed.
A continuación, puedes conocer la estructura del webhook:
| Campo | Tipo | Descripción |
|---|---|---|
wireOutId | string | Identificador único del wire out generado por ProntoPaga. Permite al comercio rastrear cada transferencia saliente. |
referenceId | string | Referencia única de la transacción, utilizada por el comercio para vincular el wire out con la operación correspondiente. |
processingStatus | string enum | Estado actual del wire out. Valores posibles: Processing, Success, Failed. Indica si la transferencia está en proceso, se completó o falló. |
statusMessage | string | Mensaje descriptivo que detalla el estado actual de la transferencia, útil para auditoría o notificación al comercio. |
currency | string | Moneda en la que se realiza el wire out (por ejemplo, USD o PEN). |
amount | number | Monto total de la transferencia. |
updatedAt | datetime | Fecha y hora en la que se actualizó el estado del wire out, útil para seguimiento y sincronización por parte del comercio. |
createdAt | datetime | Fecha y hora en que se solicitó el wire out, permitiendo al comercio conocer cuándo se inició la transacción. |
Proceso de notificaciones wire outs
A continuación, se detalla el proceso de notificación mediante webhooks para wire outs en ProntoPaga:
-
Cambio de estado en ProntoPaga:
Cuando el estado de un wire out cambia (por ejemplo, de Processing a Success o Failed), ProntoPaga envía una notificación al endpoint del comercio configurado para recibir los webhooks. -
Generación del webhook:
El webhook incluirá los detalles del wire out, tales como:wireOutIdreferenceIdprocessingStatuscurrencyamountupdatedAt- Otros campos relevantes El envío se realiza solo después de que el estado ha sido registrado en el sistema de ProntoPaga.
-
Reintentos automáticos:
Si el webhook no es recibido correctamente (es decir, la respuesta no es HTTP 200), ProntoPaga registrará el intento de envío y aplicará una política de reintentos automáticos. -
Actualización del comercio:
Una vez recibido el webhook, el comercio podrá actualizar su plataforma, asegurando que los estados transaccionales estén sincronizados correctamente.
Este es un ejemplo de webhook que podrías recibir.
{
"wireOutId": "wo_20260414_001",
"referenceId": "XT12340260414WO001",
"processingStatus": "Success",
"statusMessage": "Wire out ejecutado correctamente vía SWIFT",
"currency": "USD",
"amount": 1500,
"updatedAt": "2026-04-14T19:10:00-05:00",
"completedAt": "2026-04-14T19:10:00-05:00"
}Updated 1 day ago