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

Esta página descreve como proteger transações de pagamento contra ataques, como carding, fraude de instrumentos roubados e fraude de pagamento por sequestro de conta, usando a Proteção de transações.

A Proteção de transações ajuda a proteger transações de pagamento identificando ataques manuais direcionados e tentativas de fraude em grande escala. Ela 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 indicadores de transação para detectar ataques de carding e estorno. Por exemplo, uma série de tentativas de compra com preços baixos 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, conclua as etapas a seguir:

  1. Preparar o ambiente.

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

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

  4. Envie uma solicitação de API create assessment do 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 de transação e outros motivos de explicabilidade (por exemplo, HIGH_TRANSACTION_VELOCITY), se aplicável.

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

    Você pode permitir a transação, pedir outra verificação, encaminhar para uma revisão manual ou bloquear a transação.

Antes de começar

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

    1. Configure o reCAPTCHA no seu Google Cloud projeto.

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

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

Ativar a Proteção de transações

  1. Noconsole, acesse a página reCAPTCHA. Google Cloud

    Acessar o reCAPTCHA

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

    Se você não vir o nome do projeto, clique no seletor de recursos para selecioná-lo.

  3. Clique em Configurações.

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

  5. Clique na opção Ativar e em Salvar.

Escolher um método de integração

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

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

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

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

Usar a Proteção de transações com uma integração de front-end do reCAPTCHA ajuda a proteger contra ataques de carding e transações fraudulentas. Para começar a detectar ataques, instale uma chave reCAPTCHA baseada em pontuação em cada página do fluxo de usuário para pagamentos. Isso inclui a interface em que um usuário analisa 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 a 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" async defer></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" async defer></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ção

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

No mínimo, a integração exige os campos payment_method, card_bin e card_last_four. Para melhorar a qualidade da detecção, recomendamos adicionar campos opcionais, como email, phone_number e billing_address.

Um dos seguintes itens é necessário para receber uma avaliação de Proteção de transações com integração de front-end:

{
  "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": "USA",
                "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 em vez de GET e no corpo, não em um cabeçalho.

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

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

Como a integração somente de API do reCAPTCHA produz uma avaliação de Defesa de Transações usando apenas os dados de transação fornecidos, você precisa 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": "USA",
                "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 outros indicadores.

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 em riskAnalysis.

O exemplo a seguir é uma resposta de amostra:

{
  "event": {....
  ....
  }
  .....
  ....
  ....
"fraudPreventionAssessment": {
    "transactionRisk": 0.9,
    "riskReasons": 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 propensa a ser fraudulenta e arriscada, e uma pontuação de 0,1 indica que a transação é mais propensa a ser legítima.

Você é responsável pelas ações que realiza com base na avaliação. Para a integração mais simples, defina limites em transactionRisk para contribuir com sua decisão. Por exemplo, ela pode contribuir para o envio a uma revisão manual ou para a rejeição direta de transações provavelmente fraudulentas. Você também pode 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 exclusiva do comportamento na Internet, você pode 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 falsos positivos, que representa a proporção máxima de usuários legítimos que podem ter mais dificuldades. Os limites que você precisa selecionar dependem das necessidades da sua empresa. Confira 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 outra verificação, como a autenticação de dois fatores, antes de aceitar a transação
Médio 0,7 1% Enviar transação para revisão manual
Alta 0,9 0,1% Rejeitar transação

A seguir