Ir al contenido

Webhooks

Los Webhooks te permiten recibir notificaciones HTTP automáticas cuando ocurren eventos importantes en tu cuenta de Aloha Pay.

Los webhooks son notificaciones HTTP que Aloha Pay envía a tu servidor cuando ocurre un evento importante. En lugar de que tu sistema consulte constantemente “¿ya pagó el cliente?”, nosotros te avisamos inmediatamente cuando el pago se completa.

Sin Webhooks (Polling):
┌──────────────┐ ┌─────────────┐
│ Tu Sistema │ ───── ¿Pagó? ────► │ Aloha Pay │
│ │ ◄──── No ───────── │ │
│ │ ───── ¿Pagó? ────► │ │
│ │ ◄──── No ───────── │ │
│ │ ───── ¿Pagó? ────► │ │ (Repetir cada 5 seg...)
│ │ ◄──── Sí! ──────── │ │
└──────────────┘ └─────────────┘
Con Webhooks:
┌──────────────┐ ┌─────────────┐
│ Tu Sistema │ │ Aloha Pay │
│ │ │ │
│ (espera) │ ◄──── ¡Pagó! ───── │ │ (Te avisamos al instante)
│ │ │ │
└──────────────┘ └─────────────┘
Polling (sin webhooks)Webhooks
Consultas constantes a la APISolo recibes cuando hay eventos
Consume recursos de ambos ladosEficiente y en tiempo real
Delay entre consultas (5-30 seg)Notificación instantánea
Puede alcanzar rate limitsSin límites por consultas
Código más complejoArquitectura más simple
1. Tu sistema crea un Payment Link
┌──────────────┐ ┌─────────────┐
│ Tu Sistema │ ── POST /payment-links ─► │ Aloha Pay │
│ │ ◄─ { id, checkout_url } ── │ │
└──────────────┘ └─────────────┘
2. Rediriges al cliente al checkout
┌──────────────┐ ┌─────────────┐
│ Cliente │ ── Abre checkout_url ───► │ Checkout │
│ │ Completa el pago │ │
└──────────────┘ └─────────────┘
3. Aloha Pay te notifica vía webhook
┌──────────────┐ ┌─────────────┐
│ Tu Sistema │ ◄── POST /tu-webhook ──── │ Aloha Pay │
│ │ { payment.completed } │ │
│ │ ── 200 OK ───────────────► │ │
└──────────────┘ └─────────────┘
4. Tu sistema procesa el pago
- Marca la orden como pagada
- Envía email de confirmación
- Libera el producto/servicio

Registras UN endpoint que recibe TODOS los eventos de tu cuenta:

Ventana de terminal
# Registrar webhook global
curl -X POST https://api.alohapay.co/api/external/v1/webhooks \
-H "X-API-Key: tu_api_key" \
-d '{
"url": "https://tu-servidor.com/webhooks/alohapay",
"events": ["payment.completed", "payment.failed"]
}'

Ventajas:

  • Configuración única
  • Todos los pagos notifican al mismo endpoint
  • Fácil de mantener

Cuándo usar:

  • Tienes un sistema centralizado
  • Quieres recibir todos los eventos en un lugar

Defines una URL específica para CADA payment link:

Ventana de terminal
# Al crear el payment link
curl -X POST https://api.alohapay.co/api/external/v1/payment-links \
-H "X-API-Key: tu_api_key" \
-d '{
"amount": 100.00,
"currency": "USD",
"description": "Orden #1234",
"webhook_url": "https://tu-servidor.com/webhooks/orden/1234"
}'

Ventajas:

  • URL específica por transacción
  • Puedes incluir información en la URL
  • Útil para sistemas distribuidos

Cuándo usar:

  • Cada transacción necesita un endpoint diferente
  • Quieres pasar contexto en la URL

Puedes usar las dos opciones al mismo tiempo. Si un payment link tiene webhook_url Y tienes un webhook global, recibirás el evento en AMBOS.

Tu sistema debe manejar esto con idempotencia (ver Mejores Prácticas).

Para trabajar con Webhooks, tu API Key necesita los siguientes abilities:

OperaciónAbility
Listarwebhooks:read
Consultarwebhooks:read
Crearwebhooks:write
Actualizarwebhooks:write
Eliminarwebhooks:write
Rotar Secretwebhooks:write

Todos los endpoints de Webhooks utilizan la siguiente URL base:

https://api.alohapay.co/api/external/v1/webhooks
MétodoEndpointDescripción
GET/v1/webhooksListar todos los webhooks
GET/v1/webhooks/{id}Obtener detalles de un webhook
POST/v1/webhooksCrear un nuevo webhook
PUT/v1/webhooks/{id}Actualizar un webhook
DELETE/v1/webhooks/{id}Eliminar un webhook
POST/v1/webhooks/{id}/rotate-secretRotar el secret del webhook