En esta página, se describe cómo proteger de forma eficaz las transacciones de pago contra ataques, como el uso ilegítimo de tarjetas, el fraude con instrumentos robados y el fraude en los pagos por apropiación de cuentas, con Transaction defense.
Transaction defense te ayuda a proteger las transacciones de pagos identificando los ataques manuales dirigidos y los intentos de fraude a gran escala. Entrena automáticamente modelos de comportamiento y transacciones para identificar eventos que probablemente sean fraudulentos y puedan generar una disputa o una devolución del cargo si se aceptan.
Como parte de estos modelos, Transaction defense examina los indicadores de transacciones para detectar ataques de carding y devoluciones de cargos. Por ejemplo, una serie de intentos de compra con precios bajos podría indicar un ataque de carding. En la respuesta, recibes puntuaciones de riesgo para diferentes tipos de fraude, que puedes usar para enviar la transacción a una revisión manual o bloquear directamente las transacciones lo suficientemente sospechosas.
Para configurar Transaction defense, debes completar los siguientes pasos:
Habilita Transaction defense en tu proyecto de Google Cloud .
Envía una solicitud a la API de
create assessmentdesde tu backend con los datos de la transacción, usando la integración de frontend o la integración solo de API que elegiste antes.En la respuesta de la solicitud a la API de
create assessment, reCAPTCHA proporciona una puntuación para el riesgo de la transacción y motivos de explicabilidad adicionales (por ejemplo,HIGH_TRANSACTION_VELOCITY), si corresponde.Determina la próxima acción para tus usuarios según las puntuaciones.
Puedes permitir la transacción, solicitar una verificación adicional, reenviarla para una revisión manual o bloquearla.
Antes de comenzar
Si es la primera vez que usas reCAPTCHA, haz lo siguiente:
Si planeas una integración de frontend, verifica que tu entorno admita tokens de más de 8 kB, ya que Transaction defense podría usar tokens más grandes.
Habilita Transaction defense
En la consola de Google Cloud , ve a la página de reCAPTCHA.
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.
Haz clic en Configuración.
En el panel Transaction defense, haz clic en Configurar.
Haz clic en el botón de activación Habilitar y, luego, en Guardar.
Elige un método de integración
Elige la Integración de frontend para incorporar automáticamente los indicadores del dispositivo de frontend o la Integración solo de API si prefieres no realizar la integración en el frontend.
Cuando se ejecuta el JavaScript, reCAPTCHA genera un token de reCAPTCHA único para cada sesión de usuario y recopila datos de comportamiento del usuario para evaluarlo.
La integración solo de API devuelve un veredicto usando solo los datos de transacción requeridos y no requiere este token.
Integración de frontend: Instala reCAPTCHA en tu sitio web
Usar Transaction defense con una integración de frontend de reCAPTCHA ayuda a protegerse contra los ataques de carding y las transacciones fraudulentas. Para empezar 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 el usuario revisa su carrito, selecciona su forma de pago y completa la compra.
Después de que el usuario haya realizado su selección en cada paso, llama a grecaptcha.enterprise.execute() para generar un token. Para obtener información sobre cómo instalar claves basadas en puntuaciones y llamar a
execute(), consulta Instala claves basadas en puntuaciones.
En el siguiente ejemplo, se muestra cómo integrar una clave basada en puntuación 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"></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"></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>Integración de frontend: Crea evaluaciones con datos de transacciones
Para recibir veredictos de fraude en los pagos, crea evaluaciones con datos de transacciones usando los campos adicionales en el método projects.assessments.create.
Para recibir una evaluación de Transaction defense con integración de frontend, proporciona al menos uno de los siguientes campos de identificador obligatorios:
- Datos de transacciones
cardBinycardLastFour. - Usuario
accountId - Usuario
email - Usuario
phoneNumber
Para mejorar la calidad de la detección, recomendamos agregar campos opcionales, como payment_method, email, phone_number 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", "Apt 1" ], "locality": "Sunnyvale", "administrative_area": "CA", "region_code": "US", "postal_code": "123456" } } } }
Para mejorar la calidad de las puntuaciones, te recomendamos que también envíes indicadores adicionales.
Para obtener información sobre cómo crear evaluaciones, consulta Crea una evaluación para tu sitio web. Transaction defense puede usar tokens más grandes, por lo que debes verificar que la solicitud se envíe en una solicitud POST en lugar de GET, y en el cuerpo, no en un encabezado.
Integración solo de API: Crea evaluaciones con datos de transacciones
Para recibir veredictos de fraude en los pagos, crea evaluaciones con datos de transacciones usando los campos adicionales en el método projects.assessments.create.
Debido a que la integración de solo API de reCAPTCHA produce una evaluación de Transaction defense con solo los datos de transacciones que proporcionas, debes proporcionar, como mínimo, lo siguiente:
- Dirección de facturación
regionCodeypostalCode. - Datos de Transacciones
paymentMethod. - Uno de los siguientes:
- Datos de transacciones
cardBinycardLastFour. - Usuario
accountId - Usuario
email - Usuario
phoneNumber
- Datos de transacciones
{ "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 mejorar la calidad de las puntuaciones, te recomendamos que proporciones la mayor cantidad de entradas posible y que también envíes indicadores adicionales.
Interpreta las evaluaciones
Después de que comiences a enviar los datos de la transacción, recibirás evaluaciones como una
respuesta JSON con el componente fraudPreventionAssessment en la
respuesta
Assessment.
El siguiente ejemplo es una respuesta de muestra:
{ "event": {.... .... } ..... .... .... "fraudPreventionAssessment": { "transactionRisk": 0.9, "riskReasons": [ { "reason": "HIGH_TRANSACTION_VELOCITY" } ] } }
La respuesta que recibes incluye una puntuación y códigos de motivo cuando corresponda. Cuanto más alta sea la puntuación, es más probable que la transacción sea fraudulenta y riesgosa. Cuanto más baja sea la puntuación, es más probable que la transacción sea legítima. Por ejemplo, una puntuación de 0.9 indica que es más probable que la transacción 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 la integración más sencilla, puedes establecer umbrales en transactionRisk
para contribuir a tu decisión. Por ejemplo, puede contribuir a enviar a una
revisión manual o rechazar directamente las transacciones que probablemente sean fraudulentas.
También puedes usar la puntuación en tus propios flujos de trabajo de fraude o como parte de las reglas con
tu sistema existente. Debido a que reCAPTCHA 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 maduro.
Cada bucket de puntuación se calibra según una tasa máxima de falsos positivos, que representa la proporción máxima de usuarios legítimos que podrían experimentar dificultades adicionales. Los umbrales que debes seleccionar dependen de las necesidades de tu empresa. A continuación, se muestran algunos ejemplos de cómo puedes usar
la puntuación de transactionRisk:
| Tolerancia al riesgo | Umbral recomendado | Tasa máxima de falsos positivos | Ejemplo de uso |
|---|---|---|---|
| Baja | 0.5 | 5% | Exigir una verificación adicional, como la 2FA, antes de aceptar la transacción |
| Media | 0.7 | 1% | Envía la transacción para su revisión manual |
| Alta | 0.9 | 0.1% | Rechazar transacción |
¿Qué sigue?
- Para mejorar la calidad de la detección de fraudes, obtén más información sobre los indicadores adicionales.
- Para anotar evaluaciones, consulta Anota evaluaciones con eventos de transacciones.