Ir al contenido

Eventos

Conoce todos los eventos disponibles y el formato de los datos que recibirás en cada webhook.

EventoCuándo se dispara
payment.completedEl cliente completó el pago exitosamente
payment.failedEl pago falló (rechazado, cancelado por cliente)
payment_link.cancelledCancelaste el payment link manualmente
payment_link.expiredEl payment link expiró sin ser pagado
EventoCuándo se dispara
card_payment.completedEl cliente completó el pago con tarjeta exitosamente
card_payment_link.cancelledCancelaste el enlace de pago con tarjeta manualmente

Cada webhook incluye los siguientes headers HTTP:

HeaderDescripciónEjemplo
Content-TypeSiempre JSONapplication/json
User-AgentIdentificador de Aloha PayAlohaPay-Webhooks/1.0
X-Webhook-IdID único de esta entregadel_abc123...
X-Webhook-TimestampUnix timestamp del envío1733310600
X-Webhook-SignatureFirma HMAC-SHA256sha256=abc123...

Todos los webhooks siguen esta estructura:

{
"id": "wh_evt_uuid",
"event": "payment.completed",
"created": "2025-12-04T10:30:00Z",
"api_version": "2025-12-03",
"source": "subscription",
"data": {
"object": {
// Datos del recurso (pago o payment link)
}
}
}
CampoTipoDescripción
idstringID único del evento webhook
eventstringTipo de evento
createdstringFecha del evento (ISO 8601)
api_versionstringVersión de la API
sourcestringOrigen del webhook (subscription o inline)
data.objectobjectDatos del recurso relacionado

Se envía cuando un cliente completa exitosamente un pago.

{
"id": "wh_evt_550e8400-e29b-41d4-a716-446655440000",
"event": "payment.completed",
"created": "2025-12-04T10:30:00Z",
"api_version": "2025-12-03",
"source": "subscription",
"data": {
"object": {
"id": "payin_uuid",
"amount": 100.0,
"currency": "USD",
"status": "completed",
"customer_data": {
"name": "Juan Pérez",
"email": "juan@ejemplo.com"
},
"created_at": "2025-12-04T10:29:45Z",
"completed_at": "2025-12-04T10:30:00Z",
"payment_method": "bank_transfer",
"description": "Orden #1234"
}
}
}

Se envía cuando un pago falla o es rechazado.

{
"id": "wh_evt_550e8400-e29b-41d4-a716-446655440001",
"event": "payment.failed",
"created": "2025-12-04T10:30:00Z",
"api_version": "2025-12-03",
"source": "subscription",
"data": {
"object": {
"id": "payin_uuid",
"amount": 100.0,
"currency": "USD",
"status": "failed",
"customer_data": {
"name": "Juan Pérez",
"email": "juan@ejemplo.com"
},
"created_at": "2025-12-04T10:29:45Z",
"completed_at": "2025-12-04T10:30:00Z",
"payment_method": "bank_transfer",
"description": "Orden #1234"
}
}
}

Se envía cuando cancelas manualmente un payment link.

{
"id": "wh_evt_550e8400-e29b-41d4-a716-446655440002",
"event": "payment_link.cancelled",
"created": "2025-12-04T11:00:00Z",
"api_version": "2025-12-03",
"source": "subscription",
"data": {
"object": {
"id": "pl_uuid",
"amount": 100.0,
"currency": "USD",
"status": "cancelled",
"customer_data": {
"name": "Juan Pérez",
"email": "juan@ejemplo.com"
},
"created_at": "2025-12-04T10:00:00Z",
"completed_at": "2025-12-04T11:00:00Z",
"payment_method": "bank_transfer",
"description": "Orden #1234"
}
}
}

Se envía cuando un payment link expira sin ser pagado.

{
"id": "wh_evt_550e8400-e29b-41d4-a716-446655440003",
"event": "payment_link.expired",
"created": "2025-12-04T12:00:00Z",
"api_version": "2025-12-03",
"source": "subscription",
"data": {
"object": {
"id": "pl_uuid",
"amount": 100.0,
"currency": "USD",
"status": "expired",
"customer_data": {
"name": "Juan Pérez",
"email": "juan@ejemplo.com"
},
"created_at": "2025-12-04T10:00:00Z",
"completed_at": "2025-12-04T12:00:00Z",
"payment_method": "bank_transfer",
"description": "Orden #1234"
}
}
}

Se envía cuando un cliente completa exitosamente un pago con tarjeta.

{
"id": "wh_evt_661f9511-f30c-42e5-b827-557766551111",
"event": "card_payment.completed",
"created": "2026-03-20T14:35:00Z",
"api_version": "2025-12-03",
"source": "subscription",
"data": {
"object": {
"id": "59294a0c-1c51-45e4-afa5-bafeac73d08f",
"amount_usd": 100.50,
"original_amount": 100.50,
"original_currency": "USD",
"status": "completed",
"customer_name": "Juan Pérez",
"customer_email": "juan@ejemplo.com",
"description": "Factura #1234 - Servicio mensual",
"created_at": "2026-03-20T10:00:00Z",
"completed_at": "2026-03-20T14:35:00Z"
}
}
}

Se envía cuando cancelas manualmente un enlace de pago con tarjeta.

{
"id": "wh_evt_883b1733-h52e-64g7-d049-779988773333",
"event": "card_payment_link.cancelled",
"created": "2026-03-20T15:10:00Z",
"api_version": "2025-12-03",
"source": "subscription",
"data": {
"object": {
"id": "59294a0c-1c51-45e4-afa5-bafeac73d08f",
"amount_usd": 100.50,
"original_amount": 100.50,
"original_currency": "USD",
"status": "cancelled",
"customer_name": "Juan Pérez",
"customer_email": "juan@ejemplo.com",
"description": "Factura #1234 - Servicio mensual",
"created_at": "2026-03-20T10:00:00Z",
"completed_at": null
}
}
}

Campos del Objeto de Datos (Pagos con Tarjeta)

Sección titulada «Campos del Objeto de Datos (Pagos con Tarjeta)»

Los campos disponibles en data.object para eventos de pagos con tarjeta:

CampoTipoDescripción
idstringID único del pago con tarjeta
amount_usdnumberMonto en USD
original_amountnumberMonto original proporcionado
original_currencystringMoneda original de la solicitud
statusstringEstado actual: completed, cancelled
customer_namestringNombre del cliente
customer_emailstringEmail del cliente
descriptionstring/nullDescripción del pago
created_atstringFecha de creación (ISO 8601)
completed_atstring/nullFecha de completación (ISO 8601)

Los campos disponibles en data.object son:

CampoTipoDescripción
idstringID único del pago o payment link
amountnumberMonto del pago
currencystringCódigo de moneda (ISO 4217)
statusstringEstado actual del recurso
customer_dataobjectDatos del cliente (nombre, email)
created_atstringFecha de creación (ISO 8601)
completed_atstringFecha de finalización (ISO 8601)
payment_methodstringMétodo de pago utilizado
descriptionstringDescripción del pago (la que enviaste)
CampoTipoDescripción
namestringNombre del cliente (opcional)
emailstringEmail del cliente (opcional)