Skip to main content
Los campos alojados te permiten construir un formulario de tarjeta completamente personalizado manteniendo los números de tarjeta sin procesar fuera de tu DOM. Cada campo — número de tarjeta, vencimiento y CVV — se renderiza dentro de un iframe alojado por Therius. Tu JavaScript nunca ve el PAN; solo recibe un nonce de un solo uso que tu servidor usa para completar el cobro.

Configura los contenedores de campos

Agrega elementos contenedores vacíos a tu formulario. Therius reemplaza cada contenedor con un iframe seguro en tiempo de ejecución.

Inicializa los campos alojados

Después de inicializar el SDK, llama a sdk.hostedFields() con un mapa de nombres de campo a selectores CSS.
Cada selector apunta a uno de los elementos contenedores <div> de arriba. El SDK inyecta un iframe en cada contenedor y el comprador escribe directamente en él.

Recolecta un nonce al enviar el formulario

Cuando el comprador envía el formulario, llama a sdk.createNonce() para tokenizar los datos de tarjeta que retienen los iframes. El SDK devuelve un nonce de corta duración — no el número de tarjeta.
El nonce es de un solo uso y expira después de un período corto. Crea un nuevo nonce para cada intento de pago — no reutilices nonces de intentos fallidos o abandonados.

Cobra el nonce en tu servidor

Tu servidor pasa el nonce como card.nonceData.nonce al llamar a POST /payment/purchase.

Guarda la tarjeta para pagos futuros

Para depositar la tarjeta en el vault durante el pago, agrega tokenize: true y un shopper.id a la solicitud de cobro del lado del servidor:
La respuesta incluye un token que el comprador puede usar para futuros checkouts de un clic. Ver Tarjetas guardadas para el flujo completo de comprador recurrente.

Maneja los desafíos de 3DS

Algunas tarjetas requieren un desafío de 3DS antes de que el pago pueda ser autorizado. Llama a sdk.authorize(nonce) en el navegador en lugar de enviar el nonce directamente a tu servidor, luego maneja cualquier acción requerida:
sdk.handleAction es el único punto de entrada para todos los pasos fuera de banda — desafíos de 3DS, redirects y visualizaciones de vouchers. No necesitas rutas de código separadas para diferentes tipos de acción.