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:
Ative a Proteção de transações no seu projeto do Google Cloud .
Envie uma solicitação de API
create assessmentdo 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.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
Se você ainda não conhece o reCAPTCHA, faça o seguinte:
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
No console do Google Cloud , acesse a página do reCAPTCHA.
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.
Clique em Configurações.
No painel Proteção de transações, clique em Configurar.
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:
- Dados de transação
cardBinecardLastFour. - Usuário
accountId - Usuário
email - Usuário
phoneNumber
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:
- Endereço de faturamento
regionCodeepostalCode. - Dados de Transação
paymentMethod. - Uma das seguintes opções:
- Dados de transação
cardBinecardLastFour. - Usuário
accountId - Usuário
email - Usuário
phoneNumber
- Dados de transação
{ "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
- Para melhorar a qualidade da detecção de fraudes, saiba mais sobre os indicadores adicionais.
- Para anotar avaliações, consulte Anotar avaliações com eventos de transação.