Jupiter

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/jupiter

Guarda 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_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6

Implementa el endpoint

Crea un endpoint en tu servidor que:

  1. Reciba solicitudes POST
  2. 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)
  1. Procese el evento
  2. 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:

EventoDescripción
loan.createdSe creó una nueva solicitud de préstamo
loan.approvedLa solicitud de préstamo fue aprobada
loan.rejectedLa solicitud de préstamo fue rechazada
loan.fundedEl préstamo fue financiado y está listo para desembolso
loan.disbursedLos 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

CampoTipoDescripción
idstringIdentificador único del evento webhook (usar para deduplicación)
typestringTipo de evento (loan.created, loan.approved, etc.)
createdstringTimestamp ISO 8601 de cuándo ocurrió el evento
data.idstringID único del préstamo en Jupiter
data.amountintegerMonto del préstamo en centavos (25000 = $250.00)
data.statusstringEstado actual del préstamo
data.reference_idstring | nullID de referencia de ser proporcionado por el comercio