Proteger transações de pagamento com a Prevenção contra fraudes

Esta página descreve como proteger suas transações de pagamento contra ataques, como cartões, fraude de instrumentos roubados e pagamento de invasão de contas usando a Prevenção contra fraudes reCAPTCHA.

A prevenção contra fraudes do reCAPTCHA 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 provavelmente será fraudulento e poderá resultar em uma disputa ou estorno se aceito.

Como parte desses modelos, a prevenção contra fraudes do reCAPTCHA examina de transações para detectar fraudes. Por exemplo, uma série de tentativas de compra com preços baixos pode indicar um ataque de falsificação de cartões. Na resposta, você recebe pontuações de risco para diferentes tipos de fraude, que podem ser usadas para enviar a transação a uma análise manual ou bloquear diretamente transações suspeitas.

Para configurar a prevenção contra fraudes do reCAPTCHA, você precisa concluir o seguintes etapas:

  1. Instale o reCAPTCHA JavaScript no front-end de pagamento instalando uma chave reCAPTCHA baseada em pontuação.

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

  2. Envie uma solicitação de API de criação de avaliação do back-end com dados de transação sobre eventos do usuário no fluxo de pagamento.

    Na resposta da solicitação da API de criação de avaliação, o reCAPTCHA fornece uma pontuação para o risco de transação e um código de motivo adicional (por exemplo, suspected_carding), se aplicável.

  3. Determine a próxima ação dos 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ê 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. Ative a prevenção contra fraudes do reCAPTCHA no seu projeto do Google Cloud:

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

      Acessar o reCAPTCHA

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

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

    3. Clique em Configurações.

    4. No painel Prevenção contra fraudes, clique em Configurar.

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

  3. Verifique se o ambiente é compatível com tokens maiores que 8 KB, porque a prevenção contra fraudes do reCAPTCHA pode usar tokens maiores.

Instalar o reCAPTCHA no front-end de pagamento

Para começar a detectar ataques, instale uma chave reCAPTCHA baseada em pontuação em cada página do seu fluxo de usuários para pagamentos. Isso inclui a interface em que um usuário analisa carrinho, seleciona a forma de pagamento e conclui a compra. Depois que o usuário escolher uma opçã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 uma conta de evento de transação do cartão:

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>

Criar avaliações com dados de transações

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

A integração mais simples inclui transaction_id, payment_method, card_bin e value. Para melhorar a qualidade da detecção, recomendamos adicionar campos opcionais, como email 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": "USA",
                "postal_code": "123456"
            }
        }
    }
}

Para melhorar a qualidade das pontuações, recomendamos que você envie indicadores adicionais.

Para saber como criar avaliações, consulte Criar uma avaliação para seu site. O reCAPTCHA Fraud Prevention 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.

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.

Confira a seguir um exemplo de resposta:

{
  "event": {....
  ....
  }
  .....
  ....
  ....
"riskAnalysis": {
    "score": "0.5"
    "reasons": SUSPECTED_CARDING
}
"fraudPreventionAssessment": {
    "transactionRisk": 0.9,
}
}

A resposta que você recebe inclui 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 tem maior probabilidade é fraudulento e arriscado, e um escore de 0,1 indica que a transação é provavelmente legítima.

Você é responsável pelas ações que realiza com base na avaliação. Para a integração mais simples, você pode definir limites no transactionRisk de contribuir para sua decisão. Por exemplo, ela pode contribuir para o envio para uma revisão manual ou 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 das regras do 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.

A seguir