Protege las transacciones de pago con la prevención de fraudes

En esta página, se describe cómo proteger de manera eficaz las transacciones de pago contra los ataques, como el uso ilegítimo de tarjetas, el fraude con instrumentos robados y la apropiación de cuentas, mediante la prevención de fraudes de reCAPTCHA Enterprise.

La prevención de fraudes de reCAPTCHA Enterprise te ayuda a proteger las transacciones de pago mediante la identificación de ataques manuales dirigidos y intentos de fraude a gran escala. Entrena automáticamente modelos de comportamiento y transacción para identificar eventos que podrían ser fraudulentos y que puedan generar una impugnación o una devolución del cargo si se aceptan.

Como parte de estos modelos, la prevención de fraudes de reCAPTCHA Enterprise examina los indicadores de transacción para habilitar la detección de fraudes. Por ejemplo, una serie de intentos de compra con precios bajos podría indicar un ataque de carding. En la respuesta, recibirás puntuaciones de riesgo para diferentes tipos de fraude, que puedes usar para enviar la transacción a una revisión manual o bloquear directamente transacciones lo suficientemente sospechosas.

Para configurar la prevención de fraudes de reCAPTCHA Enterprise, debes completar los siguientes pasos:

  1. Instala reCAPTCHA Enterprise JavaScript en tu frontend de pagos. Para ello, instala una clave de reCAPTCHA basada en puntuaciones.

    Cuando se ejecuta JavaScript, reCAPTCHA genera un token de reCAPTCHA único para cada sesión de usuario y recopila datos de comportamiento del usuario a fin de evaluarlo.

  2. Envía una solicitud a la API de creación de evaluaciones desde tu backend con datos de transacciones sobre eventos de usuario en tu flujo de trabajo de pagos.

    En la respuesta de la solicitud a la API de creación de evaluaciones, reCAPTCHA Enterprise proporciona una puntuación del riesgo de transacción y un código de motivo adicional (por ejemplo, suspected_carding), si corresponde.

  3. Determinar la próxima acción para tus usuarios en función de las puntuaciones.

    Puedes permitir la transacción, solicitar una verificación adicional, reenviarla a una revisión manual o bloquear la transacción.

Antes de comenzar

  1. Si es la primera vez que usas reCAPTCHA Enterprise, sigue estos pasos:

    1. Configura reCAPTCHA Enterprise en tu proyecto de Google Cloud.

    2. Crea una clave de reCAPTCHA basada en puntuaciones.

  2. Habilita la prevención de fraudes de reCAPTCHA en tu proyecto de Google Cloud:

    1. En la consola de Google Cloud, ve a la página de reCAPTCHA Enterprise.

      Ir a reCAPTCHA Enterprise

    2. Verifica que el nombre de tu proyecto aparezca en el selector de recursos.

      Si no ves el nombre de tu proyecto, haz clic en el selector de recursos y, luego, selecciona tu proyecto.

    3. Haz clic en Configuración.

    4. En el panel Prevención de fraudes, haz clic en Configurar.

    5. Haz clic en el botón de activación Habilitar y, luego, en Guardar.

  3. Asegúrate de que tu entorno admita tokens de más de 8 KB, ya que la prevención de fraudes de reCAPTCHA Enterprise puede usar tokens más grandes.

Instala reCAPTCHA Enterprise en tu frontend de pagos

Para comenzar a detectar ataques, instala una clave de reCAPTCHA basada en puntuaciones en cada página de tu flujo de usuarios de pagos. Esto incluye la interfaz en la que un usuario revisa su carrito, selecciona su forma de pago y completa la compra. Después de que el usuario haga su selección en cada paso, llama a grecaptcha.enterprise.execute() para generar un token. Para aprender a instalar claves basadas en puntuaciones y llamar a execute(), consulta Cómo instalar claves basadas en puntuaciones.

En el siguiente ejemplo, se muestra cómo integrar una clave basada en puntuaciones en un evento de transacción con tarjeta 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>

Puedes experimentar con este código en JSFiddle si haces clic en el icono <> en la esquina superior derecha de la ventana 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>

Crea evaluaciones con datos de transacciones

Para habilitar veredictos de fraude de pago, crea evaluaciones con datos de transacciones mediante los campos adicionales en el método projects.assessments.create.

La integración más simple incluye transaction_id, payment_method, currency_code y value. Para mejorar la calidad de la detección, recomendamos agregar campos opcionales como email y 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",
        "address": "Apt 1",
        "locality": "Sunnyvale",
        "administrative_area": "CA",
        "region_code": "USA",
        "postal_code": "123456"
  }
 }
}

Para mejorar la calidad de las puntuaciones, te recomendamos que envíes indicadores adicionales.

Si quieres obtener información sobre cómo crear evaluaciones, consulta Crea una evaluación para tu sitio web. La prevención de fraudes de reCAPTCHA Enterprise puede usar tokens más grandes, por lo que debes asegurarte de que la solicitud se envíe en una solicitud POST en lugar de GET, y en el cuerpo, no en el encabezado.

Interpreta las evaluaciones

Después de comenzar a enviar los datos de la transacción, recibirás evaluaciones como una respuesta JSON con el componente fraudPreventionAssessment en riskAnalysis.

El siguiente ejemplo es una respuesta de muestra:

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

La respuesta que recibas incluirá una puntuación y códigos de motivo cuando corresponda. Cuanto más alta sea la puntuación, más probable será que la transacción sea fraudulenta y riesgosa. Cuanto más baja sea la puntuación, más probable será que la transacción sea legítima. Por ejemplo, una puntuación de 0.9 indica que la transacción es más probable que sea fraudulenta y riesgosa, y una puntuación de 0.1 indica que es más probable que la transacción sea legítima.

Tú eres responsable de las acciones que realices en función de la evaluación. Para lograr una integración más sencilla, puedes establecer umbrales en transactionRisk a fin de contribuir a tu decisión. Por ejemplo, puede contribuir al envío de una revisión manual o a rechazar directamente las posibles transacciones fraudulentas. También puedes usar la puntuación en tus propios flujos de trabajo de fraude o como parte de reglas con tu sistema existente. Dado que reCAPTCHA Enterprise examina indicadores únicos y tiene una visibilidad única del comportamiento en Internet, puedes esperar un valor incremental, incluso con un motor de detección de fraudes ya consolidado.

¿Qué sigue?