Cette page explique comment protéger efficacement les transactions de paiement contre les attaques, telles que le carding, la fraude aux instruments de paiement volés et la fraude de paiement par prise de contrôle de compte, à l'aide de Transaction defense.
Transaction Defense vous aide à protéger les transactions de paiement en identifiant les attaques manuelles ciblées et les tentatives de fraude à grande échelle. Il entraîne automatiquement des modèles de comportement et de transaction pour identifier les événements susceptibles d'être frauduleux et d'entraîner un litige ou un rejet de débit s'ils sont acceptés.
Dans le cadre de ces modèles, Transaction defense examine les signaux de transaction pour détecter les attaques de carding et de rejet de débit. Par exemple, une série de tentatives d'achat à bas prix peut indiquer une attaque de carding. Dans la réponse, vous recevez des scores de risque pour différents types de fraude, que vous pouvez utiliser pour envoyer la transaction à un examen manuel ou bloquer directement les transactions suffisamment suspectes.
Pour configurer Transaction defense, vous devez suivre les étapes suivantes :
Envoyez une requête API
create assessmentdepuis votre backend avec les données de transaction, en utilisant l'intégration frontend ou l'intégration API uniquement choisie précédemment.Dans la réponse de la requête API
create assessment, reCAPTCHA fournit un score pour le risque de transaction et des raisons d'explicabilité supplémentaires (par exemple,HIGH_TRANSACTION_VELOCITY), le cas échéant.Déterminez l'action suivante pour vos utilisateurs en fonction des scores.
Vous pouvez choisir d'autoriser la transaction, de demander une validation supplémentaire, de la transférer pour un examen manuel ou de la bloquer.
Avant de commencer
Si vous débutez avec reCAPTCHA, procédez comme suit :
Si vous prévoyez une intégration de l'interface, vérifiez que votre environnement accepte les jetons de plus de 8 ko, car Transaction Defense peut utiliser des jetons plus volumineux.
Activer Transaction defense
Dans la console Google Cloud , accédez à la page reCAPTCHA.
Vérifiez que le nom de votre projet apparaît dans le sélecteur de ressources.
Si le nom de votre projet ne s'affiche pas, cliquez sur le sélecteur de ressources, puis sélectionnez votre projet.
Cliquez sur Paramètres.
Dans le volet Transaction defense, cliquez sur Configurer.
Cliquez sur le bouton Activer, puis sur Enregistrer.
Choisir une méthode d'intégration
Choisissez Intégration de l'interface pour intégrer automatiquement les signaux de l'appareil d'interface, ou Intégration de l'API uniquement si vous préférez ne pas intégrer l'interface.
Lorsque le code JavaScript est exécuté, reCAPTCHA génère un jeton reCAPTCHA unique pour chaque session utilisateur et collecte des données comportementales pour évaluer l'utilisateur.
L'intégration API-only renvoie un verdict en utilisant uniquement les données de transaction requises et ne nécessite pas ce jeton.
Intégration de l'interface : installer reCAPTCHA sur votre site Web
L'utilisation de Transaction defense avec une intégration d'interface reCAPTCHA permet de se protéger contre les attaques de carding et les transactions frauduleuses. Pour commencer à détecter les attaques, installez une clé reCAPTCHA basée sur des scores sur chaque page de votre parcours utilisateur de paiement. Cela inclut l'interface dans laquelle l'utilisateur consulte son panier, sélectionne son mode de paiement et finalise l'achat.
Une fois que l'utilisateur a effectué sa sélection à chaque étape, appelez grecaptcha.enterprise.execute() pour générer un jeton. Pour savoir comment installer des clés basées sur un score et appeler execute(), consultez Installer des clés basées sur un score.
L'exemple suivant montre comment intégrer une clé basée sur un score à un événement de transaction par carte de crédit :
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>
Vous pouvez tester ce code dans JSFiddle en cliquant sur l'icône <> dans l'angle supérieur droit de la fenêtre de code.
<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>Intégration de l'interface : créer des évaluations avec des données de transaction
Pour recevoir des verdicts de fraude de paiement, créez des évaluations avec des données de transaction en utilisant les champs supplémentaires de la méthode projects.assessments.create.
Pour recevoir une évaluation Transaction defense avec intégration de l'interface, fournissez au moins l'un des champs d'identifiant obligatoires suivants :
- Données de transaction
cardBinetcardLastFour. - Utilisateur
accountId - Utilisateur
email - Utilisateur
phoneNumber
Pour améliorer la qualité de la détection, nous vous recommandons d'ajouter des champs facultatifs tels que payment_method, email, phone_number et 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" } } } }
Pour améliorer la qualité des scores, nous vous recommandons d'envoyer également des signaux supplémentaires.
Pour savoir comment créer des évaluations, consultez Créer une évaluation pour votre site Web. Transaction defense peut utiliser des jetons plus volumineux. Vérifiez donc que la requête est envoyée dans une requête POST plutôt que GET, et dans le corps, et non dans un en-tête.
Intégration API uniquement : créer des évaluations avec des données de transaction
Pour recevoir des verdicts de fraude de paiement, créez des évaluations avec des données de transaction en utilisant les champs supplémentaires de la méthode projects.assessments.create.
Étant donné que l'intégration de l'API reCAPTCHA produit une évaluation Transaction defense en utilisant uniquement les données de transaction que vous fournissez, vous devez au minimum fournir les éléments suivants :
- Adresse de facturation :
regionCodeetpostalCode. - Données de transaction
paymentMethod. - Choisissez l'une des options suivantes :
- Données de transaction
cardBinetcardLastFour. - Utilisateur
accountId - Utilisateur
email - Utilisateur
phoneNumber
- Données de transaction
{ "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" } } } }
Pour améliorer la qualité des scores, nous vous recommandons de fournir autant d'entrées que possible et d'envoyer des signaux supplémentaires.
Interpréter les évaluations
Une fois que vous avez commencé à envoyer les données de transaction, vous recevez des évaluations sous forme de réponse JSON avec le composant fraudPreventionAssessment dans la réponse Assessment.
Voici un exemple de réponse :
{ "event": {.... .... } ..... .... .... "fraudPreventionAssessment": { "transactionRisk": 0.9, "riskReasons": [ { "reason": "HIGH_TRANSACTION_VELOCITY" } ] } }
La réponse que vous recevez inclut un score et des codes de motif, le cas échéant. Plus le score est élevé, plus la transaction a de probabilités d'être frauduleuse et risquée. À l'inverse, plus le score est faible, plus la transaction a de chances d'être légitime. Par exemple, un score de 0,9 indique que la transaction est plus susceptible d'être frauduleuse et risquée, et un score de 0,1 indique que la transaction est plus susceptible d'être légitime.
Vous êtes responsable des actions que vous entreprenez sur la base de l'évaluation.
Pour une intégration plus simple, vous pouvez définir des seuils sur transactionRisk pour vous aider à prendre une décision. Par exemple, il peut contribuer à envoyer à un examen manuel ou à rejeter directement les transactions susceptibles d'être frauduleuses.
Vous pouvez également utiliser le score dans vos propres workflows de fraude ou dans le cadre de règles avec votre système existant. Comme reCAPTCHA examine des signaux uniques et dispose d'une visibilité unique sur les comportements sur Internet, vous pouvez vous attendre à une valeur incrémentielle, même avec un moteur de détection des fraudes déjà mature.
Chaque bucket de score est calibré sur un taux maximal de faux positifs, qui représente la proportion maximale d'utilisateurs légitimes susceptibles de rencontrer des frictions supplémentaires. Les seuils à sélectionner dépendent des besoins de votre entreprise. Voici quelques exemples d'utilisation du score transactionRisk :
| Tolérance au risque | Seuil recommandé | Taux maximal de faux positifs | Exemple d'utilisation |
|---|---|---|---|
| Faible | 0,5 | 5 % | Exiger une validation supplémentaire, telle que l'A2F, avant d'accepter la transaction |
| Moyenne | 0,7 | 1 % | Envoyer la transaction pour examen manuel |
| Élevée | 0,9 | 0,1 % | Refuser la transaction |
Étapes suivantes
- Pour améliorer la qualité de la détection des fraudes, découvrez les signaux supplémentaires.
- Pour annoter des évaluations, consultez Annoter des évaluations avec des événements de transaction.