Webhooks
Recibe notificaciones en tiempo real sobre eventos de préstamos en tu aplicación
Introducción
Los webhooks de Jupiter te permiten recibir notificaciones en tiempo real cuando ocurren eventos importantes relacionados con préstamos en tu cuenta.
Configuración rápida
Configura tu endpoint
Accede a tu panel de control de Jupiter y navega a la sección de Webhooks. Ingresa la URL de tu servidor donde recibirás las notificaciones.
https://tu-dominio.com/api/webhooks/jupiterGuarda tu secret key
Al crear el webhook, recibirás una secret key única. Guárdala de forma segura, la necesitarás para verificar la autenticidad de los webhooks.
# Ejemplo de secret key
whsec_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6Implementa el endpoint
Crea un endpoint en tu servidor que:
- Reciba solicitudes POST
- Verifique la firma HMAC
import crypto from 'crypto';
function verifyWebhookSignature(
payload: string,
signature: string,
secret: string
): boolean {
const expectedSignature = crypto
.createHmac('sha256', secret)
.update(payload)
.digest('hex');
return crypto.timingSafeEqual(
Buffer.from(signature),
Buffer.from(expectedSignature)
);
}import hmac
import hashlib
def verify_webhook_signature(payload: bytes, signature: str, secret: str) -> bool:
"""Verifica la firma HMAC del webhook."""
expected_signature = hmac.new(
secret.encode('utf-8'),
payload,
hashlib.sha256
).hexdigest()
return hmac.compare_digest(signature, expected_signature)- Procese el evento
- Responda con 200 OK
Ve a la sección Verificación de webhooks para ejemplos de código.
🎉 ¡Listo!
Tu aplicación ahora recibirá notificaciones en tiempo real de todos los eventos de préstamos.
Eventos disponibles
Jupiter envía webhooks para los siguientes eventos:
| Evento | Descripción |
|---|---|
loan.created | Se creó una nueva solicitud de préstamo |
loan.approved | La solicitud de préstamo fue aprobada |
loan.rejected | La solicitud de préstamo fue rechazada |
loan.funded | El préstamo fue financiado y está listo para desembolso |
loan.disbursed | Los fondos fueron enviados al comerciante |
Estructura básica del payload
Todos los webhooks siguen esta estructura:
{
"id": "evt_1a2b3c4d5e6f",
"type": "loan.funded",
"created": "2025-12-10T15:00:00Z",
"data": {
"id": "loan_xyz123",
"amount": 50000,
"status": "funded",
"reference_id": "order_123" // o null
}
}Campos del webhook
| Campo | Tipo | Descripción |
|---|---|---|
id | string | Identificador único del evento webhook (usar para deduplicación) |
type | string | Tipo de evento (loan.created, loan.approved, etc.) |
created | string | Timestamp ISO 8601 de cuándo ocurrió el evento |
data.id | string | ID único del préstamo en Jupiter |
data.amount | integer | Monto del préstamo en centavos (25000 = $250.00) |
data.status | string | Estado actual del préstamo |
data.reference_id | string | null | ID de referencia de ser proporcionado por el comercio |