Un solo contrato
Un PaymentIntent para todo: el método y el proveedor son configuración, no código. Cambia de procesador sin tocar tu integración.
Tarjeta y MSI, SPEI, DiMo, OXXO — Mercado Pago, Conekta, STP y más, detrás de una integración estilo Stripe. Sin custodia de fondos y con un ledger de doble partida que cuadra al centavo, todos los días.
Ya procesa los cobros de Antech y muvx.
POST /v1/payment_intents
{
"amount_minor": 84900,
"currency": "MXN",
"payment_method_types": ["card", "spei", "oxxo"]
}
→ 201 · Idempotency-Key obligatoria · webhook firmado
Un PaymentIntent para todo: el método y el proveedor son configuración, no código. Cambia de procesador sin tocar tu integración.
Ruteo por prioridad y failover automático ante caídas del proveedor, con circuit breakers por conector. La caída de un procesador deja de ser tu caída.
Ledger inmutable de doble partida y conciliación diaria contra los reportes de cada proveedor. Si un peso no cuadra, lo sabes tú antes que nadie.
Cada cobro se verifica contra el proveedor y contra tu ledger. El anillo gira mientras procesa; el punto aparece cuando todo cuadró.
Ofrece pagos a tus clientes con tu propia marca sobre nuestros rieles: white-label con precios transparentes en pesos, sin mínimos enterprise.
winal.js son ~500 líneas vanilla: sin npm install,
sin bundlers. Tu servidor crea el PaymentIntent con tu clave
sk_test_…, tu página lo confirma con winal.js
— que dibuja el QR, la CLABE o la referencia según el método — y tu servidor recibe la
verdad desde el webhook firmado.
<script src="https://<host>/js/winal.js"></script>
<div id="winal-mount"></div>
<script>
const winal = Winal({ baseUrl: "https://<host>" });
winal.confirmPayment({
clientSecret: "pi_secret_9f...",
intentId: "5b6b8b3e-...-a1c2",
paymentMethod: "card",
paymentToken: "tok_sim_ok",
mountEl: document.getElementById("winal-mount"),
onStatus: (status) => console.log("estado:", status),
}).then((intent) => {
if (intent.status === "succeeded") alert("¡Pago exitoso!");
});
</script>
Idempotency-Key obligatoria en todo POST que mueve dinero — incluido el intento inicial.client_secret: token de capacidad de corto plazo; solo confirma o consulta ese PaymentIntent, nunca autentica nada más.Gateway-Signature, HMAC) — mismo esquema que Stripe-Signature.