Autenticação 3DS

A autenticação 3DS (Three-Domain Secure) é uma medida de segurança para transações de pagamento online com cartões. O objetivo é aumentar a proteção contra fraudes, garantindo que o titular do cartão autorize a transação antes que ela seja aprovada. Segue uma descrição do fluxo de autenticação 3DS, os detalhes dos endpoints disponíveis para testes em sandbox e a biblioteca usada no fluxo de 3DS.

Fluxo da autenticação 3DS

  1. Início da compra: O usuário inicia uma compra em um estabelecimento online e insere os dados do cartão.
  2. Solicitação de validação: O adquirente do estabelecimento solicita à bandeira do cartão (por exemplo, Mastercard) a validação da transação.
  3. Verificação de protocolo: A bandeira do cartão verifica se o estabelecimento está habilitado para usar o protocolo 3DS. Se sim, uma solicitação de autenticação é enviada à intermediária de segurança.
  4. Encaminhamento para o emissor: A intermediária de segurança recebe as informações da tentativa de compra e as encaminha ao emissor do cartão para validação. Nesta etapa, pode ocorrer um desafio, dependendo da política de risco do emissor.
  5. Autenticação sem desafio (Frictionless): Se não houver desafio, a transação é autenticada diretamente.
  6. Autenticação com desafio (Challenge): Se houver desafio, o emissor do cartão envia uma mensagem à Parcelamos Tudo com os identificadores do desafio.
  7. Encaminhamento do desafio: A Parcelamos Tudo repassa o desafio associado ao identificador recebido e o encaminha ao cliente para confirmação de identidade.
  8. Resposta do cliente: O cliente responde ao desafio, autorizando ou não a compra.
  9. Transmissão da resposta: O emissor do cartão comunica a resposta à intermediária de segurança. A bandeira do cartão envia a resposta ao adquirente do estabelecimento, autenticando ou não a compra.
  10. Confirmação da compra: O parceiro utiliza o endpoint de confirmação de desafio para verificação da transação.

Cenário de testes

Para testar esse fluxo em ambiente sandbox, disponibilizamos os seguintes endpoints:

1. Inicio de um tipo de cobrança com validação 3DS

Endpoint: Inicia cobrança com 3ds

Esse primeiro endpoint tem o objetivo de validar se o cartão do cliente suporta a autenticação e iniciar a validação 3DS.

Requisição:

NomeTipoDescrição
chargesobjectObjeto que contém informação sobre as opções de cobrança e os dados do cartão.
id_clientstringIdentificador do cliente que está realizando o pagamento.

Resposta:

{
  "id_three_ds": "string", //identificador da cobrança com autenticação 3ds.
}

2. Criação do Checkout

Após obter o identificador do 3DS, você pode criar o checkout.

Endpoint: Cria um checkout.

Requisição:

NomeTipoDescrição
chargesobjectObjeto que contém informação sobre as opções de cobrança e os dados do cartão.
id_clientstringIdentificador do cliente que está fazendo o pagamento.
id_payment_linkstringIdentificador do vínculo com um link de pagamento (opcional).
id_userstringIdentificador do usuário que receberá comissão por esse checkout (opcional).

Resposta:

{
  "id_checkout": "string",
  "id_status": "3DS_VALIDATION_REQUESTED",
  "id_three_ds": "string", // Identificador da cobrança com autenticação 3ds(se aplicável).
  "challenge_url": "string", // URL do desafio (se aplicável).
  "credential_request": "string", // Credencial da requisição do desafio (se aplicável).
}

3. Confirmação do checkout com 3DS

Se um desafio for resolvido, você pode confirmar o checkout.

Endpoint: Confirma o checkout 3DS.

Requisição: O corpo da requisição é o mesmo do endpoint anterior, acrescido do parâmetro id_checkout, obtido na resposta do endpoint de criação do checkout.

Resposta: Segue o mesmo formato de resposta do endpoint de criação do checkout.

Após a confirmação, o fluxo de autenticação 3DS é concluído, garantindo a segurança da transação.


lib-3ds-client

Biblioteca para ser utilizada pelo cliente no fluxo de 3DS.

Pacote: lib-3ds-client

A biblioteca ParcelamosTudo3DS é usada para validação do usuário e execução do desafio no processo de autenticação 3DS em transações financeiras online.

  1. Validação do Cliente (executeCustomerValidation): Executa uma validação inicial do cliente por meio de um formulário enviado via iframe oculto.
    • Dados de entrada: São os dados retornados no endpoint de cobrança com 3ds.
      id_three_ds: Identificador da autenticação 3DS.
      validation_method_url: URL para a validação.
      validation_method_token: Token para a validação
    • Dados de saída:
      validation_time_to_complete: Tempo em segundos que levou para completar a validação.
  2. Desafio (executeChallenge): Mostra um modal para o usuário interagir com um desafio 3DS, onde ele deve fornecer informações adicionais para completar a autenticação.
    • Dados de entrada: Esses dados são retornadas na criação de checkout com 3DS.
      id_three_ds: Identificador para o método 3DS.
      challenge_url: URL para o desafio.
      credential_request: Dados do pedido de credenciais.
    • Dados de saída: Nenhuma resposta (void), o método exibe o modal e espera a interação do usuário.