Tokenização de cartão de comércio eletrônico: o que é e como funciona?

Olá! Recentemente, no Yandex.Checkout, juntamente com os sistemas de pagamento Visa e Mastercard, lançamos uma nova tecnologia para tokenizar pagamentos para comércio eletrônico ou, em outras palavras, comércio online. Alguém pode pensar: o que há de errado com a tokenização de cartões já com o lançamento do Apple Pay, Google Pay e outros * Pay. Mas não, há algo novo aqui, e também fomos os primeiros a lançar esta tecnologia na Rússia nesta primavera para lojas parceiras, então por que não compartilhá-la?



Nos EUA e na Europa, essa tecnologia apareceu um pouco mais cedo, e os usuários de serviços como Netflix e Amazon já pagam com tokens de comércio eletrônico, embora possam nem saber. E agora vou lhe dizer como funciona não apenas fora (para parceiros e portadores de cartão), mas também dentro, do ponto de vista do desenvolvedor e do líder da equipe deste projeto. Se você estiver interessado - galês sob o gato.





Apple Pay Google Pay



, , Apple Pay Google Pay ( — *Pay), .



, *Pay , . , , . , , , . — — , .



:



  • , ,
  • .


? E-commerce, , - -.



, E-commerce



, — , .



— (PAN — Primary Account Number) .
Se o titular do cartão for o iniciador para conectar o cartão a * Pay, a loja online iniciará a tokenização para comércio eletrônico. Mas por que (e por que motivo)?



Certamente muitos de vocês usam serviços de assinatura: sejam pagamentos mensais por músicas, filmes ou, por exemplo, utilitários. Como é emitida esta assinatura? Você acessa o site da loja on-line, insere os detalhes do seu cartão e marque a caixa confirmando seu consentimento de que a loja salvará os detalhes do seu cartão (PAN e data de validade) e poderá iniciar o pagamento de um serviço específico de forma independente.



Você precisa entender que tal ação implica que a loja deve salvar os dados do cartão em algum lugar. Geralmente existem duas opções:



  1. , PCI DSS, -,
  2. , ., PCI DSS .


É possível aplicar a abordagem de tokenização aqui também? Por que, em vez de armazenar dados do cartão bancário, use algum token que possa ser gerenciado separadamente do cartão? Mas e se o fizermos para que, na próxima reemissão do cartão, o token permaneça o mesmo e não seja necessário vincular novamente o cartão a serviços diferentes? Parece curioso?



Vamos conversar sobre tudo em ordem. Durante a tokenização, trocamos dados do cartão bancário por um token, mas o que é isso? O token é fornecido pelo sistema de pagamento com cartão - Mastercard ou Visa. É um identificador exclusivo, semelhante ao número da conta Apple Pay do dispositivo ou ao número da conta virtual Google Pay, que pode ser encontrado no aplicativo para smartphone (Carteira virtual em dispositivos Apple e Google Pay no Android).



Ao contrário de * Pay, na tokenização de comércio eletrônico, a criação de um token é iniciada por uma loja online ou sua solução de pagamento, e os próprios tokens são armazenados nos servidores dos sistemas de pagamento.



Obviamente, ninguém pode acessar o sistema de pagamento e receber um token do cartão de alguém para pagar pelas compras. Em primeiro lugar, os cartões só podem ser simbolizados pelas soluções de pagamento certificadas e aprovadas pelos sistemas de pagamento. Essa solução de pagamento é chamada Solicitante de Token Em Nome ou Fornecedor de Serviços de Tokens, mas, para simplificar, a partir de agora usaremos o termo Solicitante de Token.. E apenas o Solicitante de Token pode iniciar pagamentos de token. Em segundo lugar, um token é sempre emitido para uma loja específica e, com a ajuda de um token, você pode pagar apenas nessa loja. Muito semelhante à forma como o token * Pay está associado ao dispositivo em que foi criado.



Como isso é alcançado? Antes de efetuar cada pagamento no token, o solicitante deve obter aprovação do sistema de pagamento para esse pagamento. O fato dessa aprovação precisará ser apresentado durante o pagamento real. Portanto, essa aprovação assume a forma de um criptograma único, que forma o sistema de pagamento do cartão. Ao efetuar um pagamento, esse criptograma é adicionado aos parâmetros de solicitação ao banco adquirente e depois transmitido ao sistema de pagamento, que verifica a autenticidade desse criptograma, que ele próprio emitiu anteriormente.



E o gerenciamento de tokens, independentemente do gerenciamento de cartões? Em geral, tudo é simples aqui - o token vive sua própria vida, possui seus próprios status de ciclo de vida e o Solicitante de Token aprende imediatamente sobre cada alteração no status do Solicitante de Token no sistema de pagamento com cartão.



Para resumir alguns. O que a tokenização oferece ao titular do cartão?



  1. A segurança dos dados reais do cartão bancário. Ao efetuar um pagamento, um token é usado e os dados do cartão em si não são transmitidos; portanto, um invasor em potencial não pode interceptá-los. E não faz sentido interceptar os dados do token, porque o token se transforma em abóbora quando você tenta pagar em qualquer outra loja.
  2. Quando um cartão bancário é reemitido, o token emitido para a loja on-line continua válido e o titular do cartão não precisa vincular o novo cartão aos serviços de que precisa.
  3. A capacidade de gerenciar o token. Os tokens podem ser gerenciados sem afetar o próprio cartão do banco. Os bancos emissores poderão implementar ferramentas especiais em suas interfaces para gerenciamento flexível de ligações em lojas online (criando um token em uma nova loja, visualizando tokens existentes, excluindo os irrelevantes).


O que isso faz para fazer compras online?



  1. O que é bom para o comprador também é bom para a loja; portanto, o uso de cartões tokenizados pode aumentar a lealdade do cliente.
  2. , . , , . , .
  3. . , . , 88,53%, 97,89%*. , - , - . . , -, , .


* Comparamos os pagamentos para abril deste ano em um grande cinema on-line (MCC 4899) - com cartões vinculados sem 3DS, excluindo pagamentos mal sucedidos devido à falta de dinheiro no cartão.

Aspectos tecnicos



Para quem gosta de se aprofundar um pouco mais, falarei sobre a tecnologia de tokenização de cartão e seu lançamento no Yandex.Cash - como tudo se parece com o interior de nossa solução de pagamento.



Integração com sistemas de pagamento



Para obter a capacidade técnica de tokenizar cartões e fazer pagamentos com tokens, você precisa se integrar com Visa e Mastercard, passar em testes, certificação e obter a aprovação deles para iniciar a produção. Pareceu intimidador a princípio. E não só a princípio, para ser sincero, pelo menos para mim. Mas a certificação era bastante assustadora e, em tecnologia, tudo era extremamente claro.



A integração implica a implementação da seguinte API (condicionalmente) entre o sistema de pagamento e nós como solicitante de token:



  1. .

    -, . (risk scoring) . , , , . , .
  2. .

    , : — , ? , , . , , .
  3. .

    / , , , , . , .


Essa descrição da API é condicional e generalizada - é fácil adivinhar que cada sistema de pagamento possui diferentes formatos de solicitação / resposta, algoritmos de assinatura e criptografia para dados em solicitações e existem várias nuances na lógica de negócios. Portanto, ocultamos todos esses detalhes e diferenças do resto do nosso sistema, criando um serviço de tokenização de cartão separado, que é um adaptador para sistemas de pagamento e é totalmente responsável pelo ciclo de vida dos tokens.



Tokenização no Yandex.Checkout



O Yandex.Checkout é um grande sistema para aceitar pagamentos para lojas online. Consiste em dezenas de serviços diferentes: back-end, aplicativos de front-end, serviços de BI. Eles fornecem a aceitação do pagamento do usuário de várias maneiras, transferindo fundos para a loja, gerenciando pagamentos através da conta pessoal da loja, serviços analíticos e similares. E como exatamente a tokenização de cartões foi feita aqui?



A principal questão é: quando criar um token para um cartão bancário?

A API Yandex.Checkout permite salvar o método de pagamento selecionado para pagamentos futuros no futuro, que chamamos de pagamentos automáticos .



Isso pode acontecer quando o cartão está vinculado a uma conta de usuário na conta pessoal da loja e quando é assinado periodicamente, quando os pagamentos do cartão são realizados automaticamente. Nos dois cenários, ao criar um pagamento, o comerciante usa a API para enviar o parâmetro save_payment_method: true e, após um pagamento bem-sucedido, emitimos o comerciante payment_method_id - o identificador do método de pagamento salvo, com o qual ele pode fazer novos pagamentos.



Aqui está, neste momento. Os tokens são criados apenas para pagamentos iniciados pela loja. Portanto, imediatamente após efetuar um pagamento e salvar a forma de pagamento, configuramos de forma assíncrona nosso serviço de tokenização para criar um token para o par "cartão e loja".



O que os próprios sistemas de pagamento fazem quando o cartão é tokenizado?

Eles entram em contato com o banco emissor com uma solicitação para criar um token (como acontece ao criar * Pay tokens), e o banco emite um token para esta loja. O banco também pode notificar o titular do cartão sobre isso e exibir o token criado em sua conta pessoal.



Como funciona um pagamento de token?



Talvez você precise de alguma ilustração aqui, como geralmente ocorre o pagamento com um cartão salvo anteriormente que inicia uma loja on-line:







Portanto, ao pagar com um método salvo anteriormente, a loja transmite apenas seu identificador - payment_method_id . Usando esse identificador, o serviço de pagamento com cartão localiza os dados (PAN e data de validade) do cartão e os transfere para um dos bancos adquirentes, que se comunica com o sistema de pagamento com cartão.



Com os tokens nesse cenário, mais uma etapa é adicionada:







Se percebermos que um token foi emitido anteriormente para o cartão e a loja, podemos efetuar um pagamento sem usar os dados do cartão. Para fazer isso, por meio do serviço de tokenização, primeiro enviamos uma solicitação ao sistema de pagamento internacional com os dados do token e, em resposta, recebemos um criptograma único, que confirma que o token é válido e que temos o direito de efetuar um pagamento. Depois disso, transferimos os dados do banco de tokens junto com este criptograma para o banco adquirente.



E o que acontece no cenário quando um usuário reemite um cartão em seu banco?

Se os tokens foram emitidos anteriormente para o cartão, o banco emissor informa ao sistema de pagamento Mastercard / Visa que o cartão foi reemitido. Por sua vez, cada Solicitante de Token que emitiu tokens para este cartão receberá uma notificação do sistema de pagamento. Ele contém informações atualizadas sobre o cartão: os últimos 4 dígitos do número e uma nova data de validade. O token permanece o mesmo.



Quando uma loja inicia outro pagamento a partir de um cartão já expirado, que foi realmente reemitido, e temos um token para essa loja, o pagamento será bem-sucedido. Além disso, informaremos a loja sobre os novos quatro últimos dígitos do cartão do banco - eles estarão presentes nas respostas da nossa API. Isso é necessário para que a loja e o usuário sempre vejam de qual cartão é debitado.



Em vez de uma conclusão



A tokenização no comércio eletrônico é uma nova etapa no desenvolvimento da aceitação de pagamento, aumentando a comodidade para todos os participantes no processo de pagamento. Esperamos que, em um futuro próximo, a tecnologia seja suportada por muitos bancos e provedores russos - e se torne um novo padrão no mercado de pagamentos.



Obviamente, a história acabou sendo uma visão geral, mas espero que todo leitor encontre algo útil nela - ele aumente seu nível de conhecimento financeiro, aprenda sobre novos produtos na fintech ou, talvez, encontre uma idéia para o desenvolvimento de seus negócios.



Acabei, seja saudável e não fique doente!



All Articles