Proteggi le transazioni di pagamento con Fraud Prevention

Questa pagina descrive come proteggere in modo efficace le transazioni di pagamento da attacchi come l'uso di carte di credito, frodi per furto di strumenti e attività fraudolente nei pagamenti per violazione dell'account utilizzando reCAPTCHA Enterprise Fraud Prevention.

Fraud Prevention di reCAPTCHA Enterprise ti aiuta a proteggere le transazioni di pagamento identificando attacchi manuali mirati e tentativi di frode scalati. Addestra automaticamente modelli di comportamento e transazione per identificare gli eventi che sono probabilmente fraudolenti e che, se accettati, possono comportare una contestazione o uno storno di addebito.

Nell'ambito di questi modelli, reCAPTCHA Enterprise Fraud Prevention esamina gli indicatori di transazione per consentire il rilevamento delle attività fraudolente. Ad esempio, una serie di tentativi di acquisto con prezzi bassi potrebbe indicare un attacco carding. Nella risposta, ricevi punteggi di rischio per diversi tipi di frode, che puoi utilizzare per inviare la transazione a una revisione manuale o bloccare direttamente le transazioni sufficientemente sospette.

Per configurare Fraud Prevention di reCAPTCHA Enterprise, completa i seguenti passaggi:

  1. Installa reCAPTCHA Enterprise sul frontend dei pagamenti.

  2. Crea valutazioni con i dati delle transazioni.

  3. Annota le valutazioni con eventi di transazione.

  4. Interpretare le risposte per intervenire in merito a potenziali attività fraudolente.

Prima di iniziare

  1. Consulta le informazioni sui prezzi di reCAPTCHA Enterprise Fraud Prevention.

  2. Prepara l'ambiente per reCAPTCHA Enterprise.

  3. Crea chiavi basate sul punteggio.

  4. Verifica che la tua integrazione supporti token superiori a 8 kB. reCAPTCHA Enterprise Fraud Prevention potrebbe utilizzare token più grandi, quindi verifica che siano inviati in richieste POST anziché in GET e nel corpo, non in un'intestazione.

Installa reCAPTCHA Enterprise sul frontend dei pagamenti

Per iniziare a rilevare gli attacchi, installa una chiave basata sul punteggio in ogni pagina del flusso di utenti pagamenti. È inclusa l'interfaccia in cui un utente esamina il carrello, seleziona il metodo di pagamento e completa l'acquisto. Dopo che l'utente ha effettuato la selezione a ogni passaggio, chiama grecaptcha.enterprise.execute() per generare un token. Per scoprire come installare le chiavi basate sul punteggio e chiamare execute(), consulta Installare le chiavi basate sul punteggio.

L'esempio seguente mostra come integrare una chiave basata sul punteggio in un evento di transazione con carta di credito.

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>

Puoi sperimentare questo codice in JSFiddle facendo clic sull'icona <> nell'angolo in alto a destra della finestra del codice.

<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>

Crea una valutazione con i dati delle transazioni

Per abilitare gli esiti relativi a frodi nei pagamenti, crea valutazioni con dati sulle transazioni utilizzando i campi aggiuntivi nel metodo projects.assessments.create. Affinché tu possa utilizzare questa funzionalità, Google deve attivarla per la tua organizzazione. Per richiedere l'accesso a questa funzionalità, contattaci.

L'integrazione più semplice include l'ID transazione, il metodo di pagamento, la valuta e il valore della transazione.

{
  "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,
    }
  }
}

I seguenti campi sono facoltativi, ma consigliamo di fornirli per migliorare la qualità del rilevamento delle frodi.

{
  "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,
      "shipping_value": 7.99,
      "shipping_address": {
        "recipient": "name1 name2",
        "address": "123 Street Name",
        "address": "Apt 1",
        "locality": "Sunnyvale",
        "administrative_area": "CA",
        "region_code": "USA",
        "postal_code": "123456"
      },
      "billing_address": {
        "recipient": "name1 name2",
        "address": "123 Street Name",
        "address": "Apt 1",
        "locality": "Sunnyvale",
        "administrative_area": "CA",
        "region_code": "USA",
        "postal_code": "123456"
      },
      "user": {
        "account_id": "abcde12345",
        "creation_ms": 1650000000000,
        "email": "user@example.com",
        "email_verified": true,
        "phone_number": "+16502530000",
        "phone_verified" false
      },
      "merchant": {
        "account_id": "abcde12345",
        "creation_ms": 1650000000000,
        "email": "user@example.com",
        "email_verified": true,
        "phone_number": "+16502530000",
        "phone_verified": false
      },
      "items": {
        "name": "first item",
        "value": 19.99,
        "quantity": 1,
        "merchant_account_id": "abcde12345",
      },
      "items": {
        "name": "second item",
        "value": 19.99,
        "quantity": 1,
        "merchant_account_id": "abcde12345",
      },
      "gateway_info": {
        "name": "google",
        "gateway_response_code": "SUCCESS",
        "avs_response_code": "Y",
        "cvv_response_code": "Y",
      }
    }
  }
}

Per informazioni su come creare i test, consulta Creare un test per il tuo sito web.

Annota le valutazioni con eventi di transazione

Per ottenere le migliori prestazioni, Fraud Prevention di reCAPTCHA Enterprise ha bisogno di visibilità sugli eventi del ciclo di vita dei pagamenti per le transazioni. Di conseguenza, devi inviare annotazioni per le valutazioni create con i dati delle transazioni. Ad esempio, devi fornire le informazioni sulla transazione a reCAPTCHA Enterprise Fraud Prevention come evento di transazione nei seguenti scenari:

  • Il fornitore di servizi di pagamento accetta o rifiuta la transazione

  • Il commerciante emette un rimborso

  • L'emittente del pagamento presenta un rimborso

Per scoprire di più su come inviare annotazioni, consulta la pagina Annotare le valutazioni.

Ti consigliamo di effettuare queste richieste automaticamente come parte della logica corrispondente nel tuo sistema quando i dati sono disponibili, ad esempio quando cambia lo stato di una transazione.

Dopo aver creato una valutazione con i dati delle transazioni inclusi, reCAPTCHA Enterprise Fraud Prevention restituisce un esito e un assessment_id. Annota la valutazione con eventi di transazione nelle seguenti fasi importanti del ciclo di vita dei pagamenti, quando si verificano:

Tipo di evento Descrizione Esempio di motivo Esempio di valore
MERCHANT_APPROVE | MERCHANT_DENY Quando decidi se consentire che la transazione prosegua. IN_HOUSE N/A
AUTHORIZATION | AUTHORIZATION_DECLINE Quando invii la transazione da elaborare e l'emittente della carta decide se consentire che la transazione prosegua. 82 (un codice motivo che indica che il CVV non è corretto) N/A
CHARGEBACK Quando l'addebito della transazione viene effettuato. Card Reported Stolen 20 (che rappresenta uno storno di addebito parziale di 20 unità di valuta)

Insieme al tipo di evento CHARGEBACK, includi il codice motivo dello storno di addebito fornito dall'emittente della carta utilizzando il campo reason. Inoltre, includi l'importo monetario riaccreditato nel campo value se la transazione è stata riaddebitata parzialmente.

Nel campo reason dell'evento della transazione, includi termini chiarificatori per fornire maggiore contesto sul motivo dell'evento oppure fornisci i codici dei motivi ottenuti direttamente dalla rete di pagamento o dall'emittente della carta. Questi termini e codici variano a seconda del tipo di evento.

La tabella seguente specifica l'elenco completo dei tipi di eventi di transazione:

Motivo dell'annotazione Descrizione
MERCHANT_APPROVE Indica che la transazione è stata approvata dal commerciante. I motivi associati possono includere termini come IN_HOUSE, ACCERTIFY, CYBERSOURCE o MANUAL_REVIEW.
MERCHANT_DENY Indica che la transazione è stata rifiutata e conclusa a causa dei rischi rilevati dal commerciante. I motivi associati possono includere termini come IN_HOUSE, ACCERTIFY, CYBERSOURCE o MANUAL_REVIEW.
MANUAL_REVIEW Indica che la transazione è stata valutata da una persona in quanto sospetti o rischio.
AUTHORIZATION Indica che il tentativo di autorizzazione con l'emittente della carta è andato a buon fine.
AUTHORIZATION_DECLINE Indica che il tentativo di autorizzazione con l'emittente della carta non è riuscito. I motivi associati possono includere 54 di Visa che indica che la carta è scaduta o 82 che indica che il CVV non è corretto.
PAYMENT_CAPTURE Indica che la transazione è stata completata perché i fondi sono stati liquidati.
PAYMENT_CAPTURE_DECLINE Indica che non è stato possibile completare la transazione perché i fondi non sono stati liquidati.
CANCEL Indica che la transazione è stata annullata. Specifica il motivo dell'annullamento. Ad esempio, INSUFFICIENT_INVENTORY.
CHARGEBACK_INQUIRY Indica che il commerciante ha ricevuto una richiesta di storno di addebito a causa di un'attività fraudolenta relativa alla transazione, con la richiesta di ulteriori informazioni prima che venga emesso ufficialmente uno storno di addebito per attività fraudolenta e venga inviata una notifica formale dello storno di addebito.
CHARGEBACK_ALERT Indica che il commerciante ha ricevuto un avviso di storno di addebito a causa di attività fraudolente per la transazione. È iniziato il processo di risoluzione della controversia senza il coinvolgimento della rete di pagamento.
FRAUD_NOTIFICATION Indica che è stata emessa una notifica di attività fraudolenta per la transazione, inviata dalla banca emittente dello strumento di pagamento perché la transazione sembra essere fraudolenta. Ti consigliamo di includere i dati TC40 o SAFE nel campo reason per questo tipo di evento. Per gli storni di addebito parziali, ti consigliamo di includere un importo nel campo value.
CHARGEBACK Indica che il commerciante è informato dalla rete di pagamento che la transazione è entrata nel processo di storno di addebito a causa di un'attività fraudolenta. Gli esempi di codici motivo includono 6005 e 6041 di Discover. Per gli storni di addebito parziali, ti consigliamo di includere un importo nel campo value.
CHARGEBACK_REPRESENTMENT Indica che la transazione è entrata nella procedura di storno di addebito a causa di attività fraudolenta e che il commerciante ha scelto di partecipare alla dichiarazione. Gli esempi di motivi includono 6005 e 6041 di Discover. Per gli storni di addebito parziali, ti consigliamo di includere un importo nel campo value.
CHARGEBACK_REVERSE Indica che la transazione è oggetto di uno storno di addebito per attività fraudolenta che è illegittimo e di conseguenza è stato annullato. Per gli storni di addebito parziali, ti consigliamo di includere un importo nel campo value.
REFUND_REQUEST Indica che il commerciante ha ricevuto un rimborso per una transazione completata. Per i rimborsi parziali, ti consigliamo di includere un importo nel campo value. Esempio di motivo: FRAUD.
REFUND_DECLINE Indica che il commerciante ha ricevuto una richiesta di rimborso per questa transazione, ma che l'ha rifiutata. Per i rimborsi parziali, ti consigliamo di includere un importo nel campo value. Esempio di motivo: FRAUD.
REFUND Indica che la transazione completata è stata rimborsata dal commerciante. Per i rimborsi parziali, ti consigliamo di includere un importo nel campo value. Esempio di motivo: PROACTIVE_FRAUD.
REFUND_REVERSE Indica che la transazione completata è stata rimborsata dal commerciante e che questo rimborso è stato annullato. Per i rimborsi parziali, ti consigliamo di includere un importo nel campo value.

L'esempio seguente mostra un payload di annotazione di esempio contenente un evento di transazione. Per maggiori dettagli, consulta Annotare le valutazioni.

POST https://recaptchaenterprise.googleapis.com/v1/ASSESSMENT_ID:annotate
{
  "transaction_event": {
    "event_type": "CHARGEBACK",
    "reason": "Card Reported Stolen",
    "value": 20
  }
}

Interpreta le valutazioni

Dopo aver iniziato a inviare i dati della transazione, vedrai il componente fraudPreventionAssessment nella risposta riskAnalysis.

Il componente fraudPreventionAssessment include un punteggio di rischio delle transazioni e più punteggi di attività fraudolenta che identificano diversi tipi di attacchi. Il punteggio transactionRisk di Fraud Prevention di reCAPTCHA Enterprise va da 0,0 a 1,0, riassumendo i rischi associati a questa transazione dai componenti seguenti. Il punteggio di rischio 0,0 indica che il rischio è basso e che la transazione è probabilmente legittima, mentre 1,0 indica che il rischio è elevato e che l'interazione è probabilmente fraudolenta.

Installando Fraud Prevention di reCAPTCHA Enterprise e aggiungendo il componente TransactionData, puoi accedere al valore cardTestingVerdict, che rileva gli utenti malintenzionati che utilizzano il tuo sito web per testare elenchi di strumenti rubati o informazioni di forza bruta. Una volta ottenuti, l'attività perde la sua attività.

Puoi inoltre accedere al valore behavioralTrustVerdict, che indica l'attendibilità di una sessione in base a indicatori di comportamento sul tuo sito e su internet. Questo punteggio è particolarmente utile se utilizzi un motore antifrode esistente e vuoi ridurre i falsi positivi. Poiché questo punteggio include informazioni univoche e ortogonali al rilevamento convenzionale basato sui dati delle transazioni, è efficace per aggiungere fiducia in determinate transazioni altrimenti rischiose o neutre.

Dopo aver inviato gli eventi del ciclo di vita, incluse le informazioni sullo storno di addebito, avrai accesso al valore stolenInstrumentVerdict. Questo rileva attacchi, anche su scala molto ridotta, che potrebbero essere fraudolenti in base agli indicatori che reCAPTCHA Enterprise analizza per la transazione e al comportamento dell'utente sulla rete di milioni di siti web.

L'accesso ai punteggi aggiuntivi (rischio dello strumento rubato, rischio di test della carta) viene abilitato dopo una revisione della sicurezza. Contatta il nostro team di vendita per avviare il controllo della sicurezza.

Il blocco seguente mostra una risposta di esempio con i valori transactionRisk, cardTestingVerdict, stolenInstrumentVerdict e behavioralTrustVerdict.

"riskAnalysis": {
    "score": "BOT_SCORE"
}
"fraudPreventionAssessment": {
    "transactionRisk": 0.9,
    "stolenInstrumentVerdict": {
        "risk": 0.7
    },
    "cardTestingVerdict": {
        "risk": 1.0
    }
    "behavioralTrustVerdict": {
        "trust": 0.0
    }
}

Sei responsabile delle azioni che intraprendi in base alla valutazione. Per l'integrazione più semplice, puoi impostare soglie al livello transactionRisk principale per contribuire alla tua decisione. Ad esempio, può contribuire a inviare una revisione manuale o a rifiutare direttamente le probabili transazioni fraudolente. Puoi anche utilizzare questi punteggi nei tuoi flussi di lavoro di attività fraudolenta o come parte delle regole del tuo sistema esistente. Poiché reCAPTCHA Enterprise esamina diversi indicatori e ha una visibilità del comportamento diversa, puoi aspettarti un valore incrementale anche con un motore di rilevamento già maturo.

Passaggi successivi