Qué es ROKI Connect
Le permite al servidor de un comercio aceptar pagos con tarjeta de tres maneras. En todas ellas, el comercio nunca recibe, transmite ni almacena el número de tarjeta: el ingreso de la tarjeta siempre ocurre en una superficie controlada por ROKI.
| Modo | Qué es | Ingreso de tarjeta | Qué necesita el frontend | Qué necesita el backend |
|---|---|---|---|---|
| 1 - Checkout alojado | Redirigís al cliente a una página de ROKI | Página de ROKI | nada | sk_* crea el pago |
| 2 - Componentes embebidos | Campos de tarjeta de ROKI en un iframe dentro de tu propio sitio | iframe de ROKI | pk_* |
sk_* confirma con el monto |
| 3A - Pagos tokenizados | Cobrarle a una tarjeta que el cliente ya guardó | ninguno | nada | sk_* le cobra a un pm_* opaco |
El modo 3B todavía no está disponible.
Empezá con el modo 1. Es el más simple, no necesita trabajo de frontend, y todos los demás modos reutilizan su objeto de pago, sus webhooks y sus endpoints de anulación/reembolso/recibo. Pasá al modo 2 cuando el comercio quiera que el paso del pago se vea como su propio sitio, y al modo 3A cuando necesités cobrarle a un cliente que vuelve sin volver a pedirle la tarjeta.
En los modos 2 y 3A el navegador del cliente habla únicamente con tu propio backend. Tu backend es el único
lugar que guarda la sk_* y que llama a ROKI directamente. Un botón de "pagar con tarjeta guardada" tiene que
llamar a tu servidor, nunca a un endpoint de ROKI de llave secreta, y la sk_* nunca debe aparecer en código
del navegador.
Lo que eso te da, dicho con precisión: el número de tarjeta se escribe en el dominio de ROKI y nunca
llega a los sistemas del comercio. En el modo 1 el cliente está en una página de ROKI. En el modo 2 los
campos de tarjeta son un iframe servido desde aura.roki.systems, así que la página del comercio no puede
leerlos — se lo impide la política de mismo origen del navegador — y lo que cruza de vuelta es un tok_*,
nunca el número. Eso está medido, no supuesto: probes/verificar-pci-modo2.mjs escribe una tarjeta de
prueba dentro del componente real y después rastrilla la página anfitriona entera — DOM, valores de los
inputs, atributos, window, localStorage, sessionStorage, cookies, los postMessage en crudo, los
eventos del SDK y el input oculto del token — y el número no aparece en ninguno. Es el mismo modelo que
Stripe Checkout o los enlaces de pago de otros procesadores.
Lo que eso no te da es una conclusión de cumplimiento, y esta guía no la va a sacar por vos. Qué SAQ le aplica a un comercio, y si le aplica alguno, lo determina ese comercio con su adquirente o con un QSA — y la elegibilidad para los cuestionarios más livianos depende además de que las partes que manejan los datos de tarjeta estén validadas en PCI, que es una pregunta para ROKI y no algo que este documento pueda contestar. El hecho es que los datos de tarjeta no pasan por los sistemas del comercio. El papeleo que se desprende de eso lo decide el comercio con quien se lo firma.
Mercado: Honduras. Moneda usual: lempira hondureño (HNL, código numérico ISO 340).
