Inicio rápido
Integra Prestando BNPL en tu plataforma en cinco pasos. Tiempo estimado: 30 minutos.
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.
PRESTANDO_API_KEY=apk_live_<tu_secreto> WEBHOOK_SECRET=whsec_<tu_secreto_de_webhook>
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.
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 SDKConsulta la referencia de la API para ver todos los campos disponibles.
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.
<!-- 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.
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.
// 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);
});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.