Proteja as transações de pagamento com a proteção de transações

Nesta página, descrevemos como usar a Proteção de transações para proteger transações de pagamento contra ataques, como clonagem de cartões, fraude de instrumentos roubados e fraude de pagamento por sequestro de conta.

A proteção de transações ajuda a proteger transações de pagamento identificando ataques manuais direcionados e tentativas de fraude em grande escala. Ele treina automaticamente modelos de comportamento e transação para identificar eventos que provavelmente são fraudulentos e podem resultar em uma disputa ou estorno se aceitos.

Como parte desses modelos, a Proteção de transações examina os sinais de transação para detectar ataques de carding e estorno. Por exemplo, uma série de tentativas de compra com preços mínimos pode indicar um ataque de carding. Na resposta, você recebe pontuações de risco para diferentes tipos de fraude, que podem ser usadas para enviar a transação para uma revisão manual ou bloquear diretamente transações suficientemente suspeitas.

Para configurar a Proteção de transações, siga estas etapas:

  1. Preparar o ambiente.

  2. Ative a Proteção de transações no seu projeto do Google Cloud .

  3. Escolha um método de integração.

  4. Envie uma solicitação de API create assessment do seu back-end com dados de transação usando a integração de front-end ou a integração somente de API escolhida anteriormente.

    Na resposta da solicitação de API create assessment, o reCAPTCHA fornece uma pontuação para o risco da transação e outros motivos de explicabilidade (por exemplo, HIGH_TRANSACTION_VELOCITY), se aplicável.

  5. Determine a próxima ação para os usuários com base nas pontuações.

    Você pode permitir a transação, pedir uma verificação adicional, encaminhar para uma análise manual ou bloquear a transação.

Antes de começar

  1. Se você ainda não conhece o reCAPTCHA, faça o seguinte:

    1. Configure o reCAPTCHA no seu projeto do Google Cloud .

    2. Crie uma chave reCAPTCHA baseada em pontuação.

  2. Se você estiver planejando uma integração de front-end, verifique se o ambiente é compatível com tokens maiores que 8 kB, porque a Proteção de transações pode usar tokens maiores.

Ativar a Proteção de transações

  1. No console do Google Cloud , acesse a página do reCAPTCHA.

    Acessar o reCAPTCHA

  2. Verifique se o nome do projeto aparece no seletor de recursos.

    Se o nome do projeto não aparecer, clique no seletor de recursos e selecione o projeto.

  3. Clique em Configurações.

  4. No painel Proteção de transações, clique em Configurar.

  5. Clique no botão para Ativar e em Salvar.

Escolher um método de integração

Escolha a Integração de front-end para incorporar automaticamente os indicadores do dispositivo de front-end ou a Integração somente de API se você preferir não fazer a integração no front-end.

Quando o JavaScript é executado, o reCAPTCHA gera um token exclusivo para cada sessão do usuário e coleta dados comportamentais para avaliar o usuário.

A integração somente com API retorna um veredito usando apenas os dados de transação necessários e não exige esse token.

Integração de front-end: instale o reCAPTCHA no seu site

O uso da Proteção de transações com uma integração de front-end do reCAPTCHA ajuda a proteger contra ataques de clonagem de cartões e transações fraudulentas. Para começar a detectar ataques, instale uma chave do reCAPTCHA com base em pontuação em cada página do seu fluxo de usuário para pagamentos. Isso inclui a interface em que o usuário revisa o carrinho, seleciona a forma de pagamento e conclui a compra. Depois que o usuário fizer a seleção em cada etapa, chame grecaptcha.enterprise.execute() para gerar um token. Para saber como instalar chaves baseadas em pontuação e chamar execute(), consulte Instalar chaves baseadas em pontuação.

O exemplo a seguir mostra como integrar uma chave baseada em pontuação em um evento de transação de cartão de crédito:

function submitForm() {
  grecaptcha.enterprise.ready(function() {
    grecaptcha.enterprise.execute(
      'reCAPTCHA_site_key', {action: 'purchase'}).then(function(token) {
       document.getElementById("token").value = token;
       document.getElementByID("paymentForm").submit();
    });
  });
}
<form id="paymentForm" action="?" method="POST">
  Total: $1.99
  Credit Card Number: <input name="cc-number" id="cc-number" autocomplete="cc-number"><br/>
  <input type="hidden" id="token" name="recaptcha_token"/>
  <button onclick="submitForm()">Purchase</button>
</form>
<script src="https://www.google.com/recaptcha/enterprise.js"></script>

Você pode experimentar esse código no JSFiddle clicando no ícone <> no canto superior direito da janela de código.

<html>
  <head>
    <title>Protected Payment</title>
    <script src="https://www.google.com/recaptcha/enterprise.js"></script>
    <script>
    function submitForm() {
      grecaptcha.enterprise.ready(function() {
        grecaptcha.enterprise.execute(
          'reCAPTCHA_site_key', {action: 'purchase'}).then(function(token) {
           document.getElementById("token").value = token;
           document.getElementByID("paymentForm").submit();
        });
      });
    }
    </script>
  </head>
  <body>
    <form id="paymentForm" action="?" method="POST">
      Total: $1.99
      Credit Card Number: <input name="cc-number" id="cc-number" autocomplete="cc-number"><br/>
      <input type="hidden" id="token" name="recaptcha_token"/>
      <button onclick="submitForm()">Purchase</button>
    </form>
  </body>
</html>

Integração de front-end: criar avaliações com dados de transações

Para receber vereditos de fraude de pagamento, crie avaliações com dados de transação usando os campos adicionais no método projects.assessments.create.

Para receber uma avaliação de proteção de transações com integração de front-end, forneça pelo menos um dos seguintes campos de identificador obrigatórios:

Para melhorar a qualidade da detecção, recomendamos adicionar campos opcionais, como payment_method, email, phone_number e billing_address.

{
  "event": {
    "token": "YOUR_TOKEN",
    "site_key": "KEY_ID",
    "expected_action": "YOUR_CHECKOUT_ACTION_NAME",
    "transaction_data": {
            "transaction_id": "txid-1234567890",
            "payment_method": "credit-card",
            "card_bin": "411111",
            "card_last_four": "1234",
            "currency_code": "USD",
            "value": 39.98,
            "user": {
                "email": "someEmailAddress@example.com"
            },
            "billing_address": {
                "recipient": "name1 name2",
                "address": [
                    "123 Street Name",
                    "Apt 1"
                ],
                "locality": "Sunnyvale",
                "administrative_area": "CA",
                "region_code": "US",
                "postal_code": "123456"
            }
        }
    }
}

Para melhorar a qualidade das pontuações, recomendamos que você também envie outros indicadores.

Para saber como criar avaliações, consulte Criar uma avaliação para seu site. A proteção de transações pode usar tokens maiores. Portanto, verifique se a solicitação é enviada em uma solicitação POST, e não GET, e no corpo, não em um cabeçalho.

Integração somente com API: criar avaliações com dados de transações

Para receber vereditos de fraude de pagamento, crie avaliações com dados de transação usando os campos adicionais no método projects.assessments.create.

Como a integração somente de API do reCAPTCHA produz uma avaliação de proteção de transações usando apenas os dados de transação que você fornece, é obrigatório fornecer, no mínimo, o seguinte:

  1. Endereço de faturamento regionCode e postalCode.
  2. Dados de Transação paymentMethod.
  3. Uma das seguintes opções:
{
  "event": {
    "site_key": "KEY_ID",
    "expected_action": "YOUR_CHECKOUT_ACTION_NAME",
    "transaction_data": {
            "transaction_id": "txid-1234567890",
            "payment_method": "credit-card",
            "card_bin": "411111",
            "card_last_four": "1234",
            "currency_code": "USD",
            "value": 39.98,
            "user": {
                "account_id": "abcde12345",
                "email": "someEmailAddress@example.com",
                "phone_number": "+18005550175"
            },
            "billing_address": {
                "recipient": "name1 name2",
                "address": [
                    "123 Street Name",
                    "Apt 1"
                ],
                "locality": "Sunnyvale",
                "administrative_area": "CA",
                "region_code": "US",
                "postal_code": "123456"
            }
        }
    }
}

Para melhorar a qualidade das pontuações, recomendamos que você forneça o máximo de informações possível e também envie indicadores adicionais.

Interpretar avaliações

Depois de começar a enviar os dados da transação, você vai receber avaliações como uma resposta JSON com o componente fraudPreventionAssessment na resposta Assessment.

O exemplo a seguir é uma resposta de amostra:

{
  "event": {....
  ....
  }
  .....
  ....
  ....
  "fraudPreventionAssessment": {
    "transactionRisk": 0.9,
    "riskReasons": [
      {
        "reason": "HIGH_TRANSACTION_VELOCITY"
      }
    ]
  }
}

A resposta que você receber vai incluir uma pontuação e códigos de motivo, quando aplicável. Quanto maior a pontuação, maior a probabilidade de a transação ser fraudulenta e arriscada. Quanto menor a pontuação, maior a probabilidade de a transação ser legítima. Por exemplo, uma pontuação de 0,9 indica que a transação é mais provável de ser fraudulenta e arriscada, e uma pontuação de 0,1 indica que a transação é mais provável de ser legítima.

Você é responsável pelas ações que realizar com base na avaliação. Para uma integração mais simples, defina limites em transactionRisk para contribuir com sua decisão. Por exemplo, ele pode contribuir para o envio de uma revisão manual ou rejeitar diretamente transações provavelmente fraudulentas. Também é possível usar a pontuação nos seus próprios fluxos de trabalho de fraude ou como parte de regras com seu sistema atual. Como o reCAPTCHA examina indicadores exclusivos e tem uma visibilidade única do comportamento na Internet, é possível esperar um valor incremental mesmo com um mecanismo de detecção de fraudes já maduro.

Cada bucket de pontuação é calibrado para uma taxa máxima de falso positivo, que representa a proporção máxima de usuários legítimos que podem enfrentar mais atrito. Os limites que você precisa selecionar dependem das necessidades da sua empresa. Veja alguns exemplos de como usar a pontuação transactionRisk:

Tolerância de risco Limite recomendado Taxa máxima de falsos positivos Exemplo de uso
Baixo 0,5 5% Exigir verificação adicional, como autenticação de dois fatores, antes de aceitar a transação
Média 0,7 1% Enviar transação para revisão manual
Alta 0,9 0,1% Rejeitar transação

A seguir