SDK, URL y token de Web Checkout
Estado documental: Implementado y verificado en Producción.
SDK productivo
<script src="https://api.yupy.us/v1/checkouts/browser/sdk.js"></script>
Global:
window.YupyCheckout
Uso:
const result = await YupyCheckout.open(checkoutUrl);
El SDK crea un modal, monta un iframe y carga exactamente la checkout_url entregada por YUPY.
URL productiva
https://api.yupy.us/v1/checkouts/browser#token=<OPAQUE_CHECKOUT_TOKEN>
El token permanece en el fragment. No moverlo a query string, reconstruir la URL ni registrar el token completo en analytics o logs públicos.
Browser Checkout
Internamente utiliza:
POST /v1/checkouts/browser/context
POST /v1/checkouts/browser/presented
POST /v1/checkouts/browser/status
El integrador no debe convertir esos endpoints internos en su contrato de negocio; su interfaz normal es checkout_url + SDK.
Context
Browser Context obtiene datos seguros para la presentación: monto, moneda, delivery, cliente, datos seguros del instrumento, expires_at, timeout y estado.
Presented
qr.onload
↓
POST /browser/presented
↓
POO presented_at
Polling
Browser consulta estado aproximadamente cada 2 segundos mediante POST /v1/checkouts/browser/status.
Mensajería iframe → SDK
Tipo:
yupy.checkout.result
El SDK valida event.origin antes de aceptar el mensaje.
Estados terminales:
pagado
cancelado
timeout
failed
Resultado típico:
{
"status": "pagado",
"terminal": true,
"source": "yupy_checkout"
}
Cierre manual
{
"status": "cancelled_by_user",
"terminal": false,
"source": "yupy_sdk"
}
Cerrar el modal no cancela la Payment Order.
Datos que no debe exponer el SDK al parent
checkout_token
counter_id
client_id
payment_order_uid
instrument_id