Esta página demuestra el kit DX de checkout de Winal de extremo a extremo: crea el payment_intent con tu API key de servidor y le entrega el client_secret a winal.js, que confirma el cobro y hace polling directo desde el navegador — sin exponer tu API key en el cliente. Decisión de esta demo: la creación del intent usa /v1/payment_intents (la única forma de obtener un intent SIN confirmar); el botón "Simular pago entrante" usa el portal admin porque no hay ruta pública equivalente — ambos se pegan una sola vez, igual que en /portal.
Sucursal/caja son discretos: viajan en metadata.branch/ metadata.register de cada cobro, SIN validarse contra ningún catálogo (fase 0). Sirven para cortar caja por sucursal en /v1/reports/cash-cut.