¡Hola! Recientemente, en Yandex.Checkout, junto con los sistemas de pago Visa y Mastercard, lanzamos una nueva tecnología para simular pagos para el comercio electrónico o, en otras palabras, el comercio en línea. Alguien podría pensar: ¿qué hay de malo en la tokenización de las tarjetas ya resuelto con el lanzamiento de Apple Pay, Google Pay y otros * Pay. Pero no, hay algo nuevo aquí, y también fuimos los primeros en lanzar esta tecnología en Rusia esta primavera para tiendas asociadas, así que ¿por qué no compartirla?
En los Estados Unidos y Europa, esta tecnología apareció un poco antes, y los usuarios de servicios como Netflix y Amazon ya pagan tokens de comercio electrónico, aunque es posible que ni siquiera lo sepan. Y ahora le diré cómo funciona no solo en el exterior (para socios y titulares de tarjetas), sino también en el interior, desde el punto de vista del desarrollador y el líder del equipo de este proyecto. Si está interesado, galés debajo del gato.
Apple Pay Google Pay
, , Apple Pay Google Pay ( — *Pay), .
, *Pay , . , , . , , , . — — , .
:
- , ,
- .
? E-commerce, , - -.
, E-commerce
, — , .
— (PAN — Primary Account Number) .Si el titular de la tarjeta es el iniciador para conectar la tarjeta a * Pay, la tienda en línea inicia la tokenización para el comercio electrónico. ¿Pero por qué (y por qué)?
Seguramente muchos de ustedes usan servicios de suscripción: ya sean pagos mensuales para música, películas o, por ejemplo, servicios públicos. ¿Cómo se emite esta suscripción? Usted va al sitio web de la tienda en línea, ingresa los detalles de su tarjeta y marca la casilla que confirma su consentimiento de que la tienda guardará los detalles de su tarjeta (PAN y fecha de vencimiento) y podrá iniciar de forma independiente el pago de un servicio específico.
Debe comprender que dicha acción implica que la tienda debe guardar los datos de la tarjeta en algún lugar. Generalmente hay dos opciones:
- , PCI DSS, -,
- , ., PCI DSS .
¿Es posible aplicar el enfoque de tokenización aquí también? ¿Por qué, en lugar de almacenar los datos de la tarjeta bancaria, usar algún token que se pueda administrar por separado de la tarjeta? Pero, ¿qué sucede si lo hacemos de modo que en la próxima reedición de la tarjeta, el token permanezca igual y no sea necesario volver a vincular la tarjeta a diferentes servicios? ¿Suena curioso?
Hablemos de todo en orden. Durante la tokenización, intercambiamos datos de la tarjeta bancaria por un token, pero ¿qué es? El token es proporcionado por el sistema de pago con tarjeta: Mastercard o Visa. Es un identificador único, similar al número de cuenta Apple Pay del dispositivo o al número de cuenta virtual Google Pay, que se puede encontrar en la aplicación del teléfono inteligente (Wallet en dispositivos Apple y Google Pay en Android).
A diferencia de * Pay, en la tokenización de comercio electrónico, la creación de un token inicia una tienda en línea o su solución de pago, y los tokens se almacenan en los servidores de los sistemas de pago.
Por supuesto, cualquiera no puede ingresar al sistema de pago y obtener el token de la tarjeta de alguien para pagar las compras. En primer lugar, las tarjetas solo pueden ser tokenizadas por aquellas soluciones de pago certificadas y aprobadas por los sistemas de pago. Dicha solución de pago se llama Solicitante de token en nombre o Proveedor de servicios de token, pero por simplicidad continuaremos usando el término Solicitante de token... Y solo el Solicitante de tokens puede iniciar pagos con tokens. En segundo lugar, siempre se emite un token para una tienda específica, y solo puede pagar con un token en esa tienda. Muy similar a cómo se asocia el token * Pay con el dispositivo en el que se creó.
¿Cómo se logra esto? Es solo que antes de realizar cada pago en el Token, el Solicitante debe obtener la aprobación del sistema de pago para este pago. El hecho de dicha aprobación deberá presentarse durante el pago real, por lo tanto, esta aprobación tiene la forma de un criptograma único, que es generado por el sistema de pago con tarjeta. Al realizar un pago, este criptograma se agrega a los parámetros de solicitud al banco adquirente y luego se transmite al sistema de pago, que verifica la autenticidad de este criptograma, que él mismo emitió previamente.
¿Y qué hay de la administración de tokens, independientemente de la administración de la tarjeta? En general, todo es simple aquí: el token vive su propia vida, tiene sus propios estados de ciclo de vida y el Solicitante de token se entera inmediatamente de cada cambio en el estado del Solicitante de token del sistema de pago con tarjeta.
Para resumir algunos. ¿Qué le da la tokenización al titular de la tarjeta?
- Seguridad de datos de una tarjeta bancaria real. Se utiliza un token para el pago, pero los datos de la tarjeta en sí no se transmiten, por lo que un atacante potencial no podrá interceptarlos de ninguna manera. Y no tiene sentido interceptar los datos del token, porque el token se convierte en una calabaza cuando intentas pagar en cualquier otra tienda.
- Cuando se vuelve a emitir una tarjeta bancaria, el token emitido para la tienda en línea sigue siendo válido, y el titular de la tarjeta no necesita vincular la nueva tarjeta con los servicios que necesita.
- La capacidad de administrar el token. Los tokens se pueden administrar sin afectar la tarjeta bancaria. Los bancos emisores podrán implementar en sus interfaces herramientas especiales para una gestión flexible de los enlaces en las tiendas en línea (crear un token en una nueva tienda, ver los tokens existentes, eliminar los irrelevantes).
¿Qué le da esto a las tiendas en línea?
- Lo que es bueno para el comprador también es bueno para la tienda, por lo que el uso de tarjetas con token puede aumentar la lealtad del cliente.
- , . , , . , .
- . , . , 88,53%, 97,89%*. , - , - . . , -, , .
* Comparamos pagos para este mes de abril en un gran cine en línea (MCC 4899) - tarjetas vinculadas sin 3DS, excluyendo pagos fallidos debido a la falta de dinero en la tarjeta.
Aspectos técnicos
Para aquellos a quienes les gusta profundizar un poco más, hablaré sobre la tecnología de tokenización de tarjetas y su lanzamiento en Yandex.Cash: cómo se ve desde el interior de nuestra solución de pago.
Integración con sistemas de pago.
Para obtener la capacidad técnica de tokenizar tarjetas y realizar pagos con tokens, debe integrarse con Visa y Mastercard, aprobar pruebas, certificaciones y obtener su aprobación para su lanzamiento en producción. Parecía intimidante al principio. Y no solo al principio, para ser honesto, al menos para mí. Pero la certificación estaba bastante asustada, y en tecnología todo estaba extremadamente claro.
La integración implica la implementación de la siguiente API (condicionalmente) entre el sistema de pago y nosotros como Solicitante de Token:
- .
-, . (risk scoring) . , , , . , . - .
, : — , ? , , . , , . - .
/ , , , , . , .
Esta descripción de la API es condicional y generalizada: es fácil adivinar que cada sistema de pago tiene diferentes formatos de solicitud / respuesta, algoritmos para firmar y cifrar datos en las solicitudes, y existen diferentes matices en la lógica empresarial. Por lo tanto, ocultamos todos estos detalles y diferencias del resto de nuestro sistema al crear un servicio de tokenización de tarjetas separado, que es un adaptador para los sistemas de pago y es totalmente responsable del ciclo de vida de los tokens.
Tokenización en Yandex.Cash
Yandex.Kassa es un gran sistema para recibir pagos para tiendas en línea. Se compone de muchas docenas de servicios diferentes: backend, aplicaciones frontend, servicios de BI. Proporcionan aceptación del pago del usuario de varias maneras, transfiriendo fondos a la tienda, administrando pagos a través de la cuenta personal de la tienda, servicios analíticos y similares. ¿Y cómo fue exactamente la tokenización de las tarjetas aquí?
La pregunta principal: ¿en qué momento creo un token para una tarjeta bancaria?
La API Yandex.Checkout le permite guardar el método de pago seleccionado para pagos futuros en el futuro, a esto le llamamos pagos automáticos .
Esto puede ocurrir tanto cuando la tarjeta está vinculada a la cuenta del usuario en la cuenta personal de la tienda, como cuando se suscribe periódicamente, cuando los pagos de la tarjeta se realizarán automáticamente. En ambos escenarios, al crear un pago, el comerciante utiliza la API para enviar el parámetro save_payment_method: true , y después de un pago exitoso, emitimos el comerciante payment_method_id , el identificador del método de pago guardado, con el que puede realizar nuevos pagos.
Aquí está, este momento. Los tokens se crean solo para pagos iniciados por la tienda. Por lo tanto, inmediatamente después de realizar un pago mientras guardamos el método de pago, configuramos asincrónicamente nuestro servicio de tokenización para crear un token para el par "tarjeta y tienda".
¿Qué hacen los propios sistemas de pago en el momento de la tokenización de la tarjeta?
Se comunican con el banco emisor con una solicitud para crear un token (como sucede al crear * Pagar tokens), y el banco emite un token para esta tienda. El banco también puede notificar al titular de la tarjeta al respecto y mostrar el token creado en su cuenta personal.
¿Cómo se realiza el pago simbólico?
Quizás, aquí necesita una ilustración de cómo se realiza el pago con una tarjeta previamente guardada en general, lo que inicia la tienda en línea:
Entonces, cuando paga con un método previamente guardado, la tienda envía solo su identificador: payment_method_id . Con este identificador, el servicio de pago con tarjeta encuentra los datos (PAN y fecha de vencimiento) de la tarjeta y los transfiere a uno de los bancos adquirentes, que luego se comunica con el sistema de pago con tarjeta.
Con tokens, se agrega otro paso en este escenario:
Si vemos que anteriormente se emitió un token para la tarjeta y la tienda, entonces podemos hacer un pago sin usar los datos de la tarjeta. Para hacer esto, a través del servicio de tokenización, primero enviamos una solicitud al sistema de pago internacional con los datos del token y, en respuesta, recibimos un criptograma único, que confirma que el token es válido y tenemos derecho a realizar un pago. Y después de eso, transferimos los datos del token al banco adquirente junto con este criptograma.
¿Qué sucede en el escenario cuando un usuario vuelve a emitir una tarjeta en su banco?
Si los tokens se emitieron previamente a la tarjeta, el banco emisor informa al sistema de pago de Mastercard / Visa que la tarjeta ha sido reemitida. A su vez, cada Solicitante de Token que emitió tokens a esta tarjeta recibirá una notificación del sistema de pago. Contiene información actualizada sobre la tarjeta: los últimos 4 dígitos del número y el nuevo período de validez. La ficha sigue siendo la misma.
Cuando una tienda inicia otro pago desde una tarjeta ya vencida, que en realidad se volvió a emitir, y tenemos un token para esta tienda, el pago será exitoso. Además, informaremos a la tienda sobre los nuevos últimos 4 dígitos de la tarjeta bancaria; estarán presentes en las respuestas de nuestra API. Esto es necesario para que tanto la tienda como el usuario siempre vean de qué tarjeta se debita.
En lugar de una conclusión
La tokenización en el comercio electrónico es una nueva etapa en el desarrollo de la aceptación del pago, lo que aumenta la comodidad para todos los participantes en el proceso de pago. Esperamos que en el futuro cercano la tecnología sea respaldada por muchos bancos y proveedores rusos, y se convierta en un nuevo estándar en el mercado de pagos.
Por supuesto, la historia resultó ser más bien una visión general, pero espero que cada lector encuentre algo útil en ella: aumentará su nivel de educación financiera, aprenderá sobre nuevos productos en fintech o, tal vez, encuentre una idea para desarrollar su negocio.
Soy todo, ¡mantente saludable y no te enfermes!