arrow_backDocumentación

Inicio rápido

Integra Prestando BNPL en tu plataforma en cinco pasos. Tiempo estimado: 30 minutos.

01

Obtén tus credenciales

Inicia sesión en el portal de comercios y crea una API key desde API keys → Nueva clave.

  • Usa el entorno Sandbox para pruebas.
  • Usa el entorno Live para producción.
  • El secreto solo se muestra una vez — guárdalo de inmediato.
Variables de entorno recomendadas:
PRESTANDO_API_KEY=apk_live_<tu_secreto>
WEBHOOK_SECRET=whsec_<tu_secreto_de_webhook>
02

Crea una sesión de pago (servidor → servidor)

Desde tu backend, crea una sesión de pago firmando la petición con HMAC-SHA256. El sessionId resultante se pasa al SDK en el frontend.

javascript
const crypto = require("crypto");

function signRequest(secret, body) {
  const timestamp = Math.floor(Date.now() / 1000).toString();
  const payload = timestamp + "." + body;
  const sig = crypto
    .createHmac("sha256", secret)
    .update(payload)
    .digest("base64");
  return { timestamp, signature: "sha256=" + sig };
}

// Ejemplo: crear sesión de pago
const body = JSON.stringify({
  merchantId: "merch_festiva_prod",
  businessRelationshipId: "rel_abc123",
  externalOrderId: "FESTIVA-20260425-9912",
  description: "Entrada concierto Sech — VIP x2",
  amountMinor: 450000,
  currency: "DOP",
  serviceDate: "2026-06-15",
  maxInstallments: 4,
  frequency: "WEEKLY",
});

const { timestamp, signature } = signRequest(process.env.PRESTANDO_API_KEY, body);

const res = await fetch("https://api.prestando.com/api/public/bnpl/checkout-sessions", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    Authorization: `Bearer ${process.env.PRESTANDO_API_KEY}`,
    "X-Prestando-Timestamp": timestamp,
    "X-Prestando-Signature": signature,
  },
  body,
});

const session = await res.json();
// session.sessionId → pásalo al SDK

Consulta la referencia de la API para ver todos los campos disponibles.

03

Incruста el SDK en tu frontend

Usa <prestando-payment-plan> para mostrar las cuotas disponibles en tu página de producto, y <prestando-button> para abrir el popup de checkout.

html
<!-- En tu página de producto: preview de cuotas -->
<prestando-payment-plan
  merchant-id="merch_festiva_prod"
  amount="450000"
  currency="DOP"
  public-api-base-url="https://api.prestando.com"
></prestando-payment-plan>

<!-- En tu checkout: botón que abre el popup -->
<prestando-button
  client-id="cli_abc"
  merchant-id="merch_festiva_prod"
  environment="production"
  session-id="<sessionId del servidor>"
  host-origin="https://tusitioweb.com"
></prestando-button>

<script type="module"
  src="https://cdn.jsdelivr.net/npm/@prestando/web-components/dist/prestando-web-components.js">
</script>

El popup de Prestando guía al cliente por la verificación de correo, selección del plan y confirmación. Cuando el cliente completa el flujo, el botón emite el evento prestando:checkout-confirmed.

04

Recibe y verifica webhooks

Configura un endpoint en Portal → Webhooks. Prestando firmará cada evento con HMAC-SHA256 en el encabezado X-Prestando-Signature.

El evento más importante para tu flujo de fulfillment es fulfillment.allowed — se dispara cuando el financiamiento está completo y puedes emitir las entradas o confirmar el pedido.

javascript
// Node.js — verificación de firma de webhook
const crypto = require("crypto");

function verifyWebhook(secret, rawBody, receivedSig) {
  const expected =
    "sha256=" +
    crypto.createHmac("sha256", secret).update(rawBody).digest("base64");
  return crypto.timingSafeEqual(
    Buffer.from(expected),
    Buffer.from(receivedSig)
  );
}

// Express route handler
app.post("/webhooks/prestando", express.raw({ type: "application/json" }), (req, res) => {
  const sig = req.headers["x-prestando-signature"];
  if (!verifyWebhook(process.env.WEBHOOK_SECRET, req.body, sig)) {
    return res.status(401).send("Invalid signature");
  }

  const event = JSON.parse(req.body);
  if (event.eventType === "fulfillment.allowed") {
    // Emitir entradas o confirmar pedido
    console.log("¡Financiamiento completado!", event.data.financingId);
  }

  res.sendStatus(200);
});
05

Depura tu integración

El portal de comercios incluye herramientas para depurar tu integración sin contactar al equipo de soporte:

  • receipt_longÓrdenes — Historial completo de tus sesiones de pago con estado de cuotas y pagos.
  • webhookWebhooks — Ve el estado de cada entrega. Usa el botón Reenviar para reintentar sin esperar al scheduler automático.
  • articleBitácora — Registro de todas las comunicaciones entrantes y salientes de los últimos 90 días.