Device fingerprint

Integrar Device Fingerprint de Motores Anti-Fraude y de Pagos

Requisitos

Para la mayoría de motores anti-fraude y algunos proveedores de pago, es indispensable que el comercio genere sus fingerprints. Por ejemplo, para Mercado Pago, todos los clientes, sin excepción, deben agregar el siguiente script al activar Mercado Pago con DEUNA. Para que los comercios no tengan que agregar manualmente cada uno de los fingerprint scripts, DEUNA ofrece un único script / SDK que detrás de cámaras crea todos los fingerprints.

Pasos de integración:

1. Agrega el script de Mercado Pago

Este script carga automáticamente todo lo necesario para crear el Device Fingerprint, que se envía al procesar con Mercado Pago o quien sea el motor anti-fraude o de pagos.

Mercado Pago y otros proveedores requieren esta información para asegurar la transacción.

window.DEUNA_CREDENTIALS = {  
  <provider name>: {},  
}

// example
window.DEUNA_CREDENTIALS = {  
  MERCADOPAGO: {},  
}

🚧

Sin el scriptt, hay una mayor probabilidad de que tu transacción sea rechazada, ya que por ejemplo Mercado Pago utiliza este identificador para asegurar que tu transacción no sea fraudulenta.

2. Selecciona los proveedores

You can consult the following link where you can review the anti-fraud providers supported with DEUNA. We also give you a table with all the supported attributes for each of the anti-fraud engine options supported by the widget.

NameAttributesExample
BAZorgId, merchantIdBAZ: { orgId: '', merchantId: '' }
CLEARSALE
/ CLEARSALE-BRASIL
ClientIdCLEARSALE: { clientId: '' }
CLEARSALE-BRASIL: { clientId: '' }
CYBERSOURCEorgId, merchantIdCYBERSOURCE: { orgId: '', merchantId: '' }
MERCADOPAGODoes not require parameters at the merchant_id levelMERCADOPAGO: {}
SIFTaccountId, restApiKeySIFT: { accountId: '', restApiKey: '' }
SIGNIFYDDoes not require parameters at the merchant_id levelSIGNIFYD: {}
STRIPEAPI_KEYSTRIPE: { apiKey: '' }

3. Genera los fingerprints

Usos del device fingerprint

Payment widget de DEUNA:

  • Paso 1: Agrega el script: Incluye el código de integración antes de cargar el widget de DEUNA.
window.DEUNA_CREDENTIALS = {  
  <provider name>: {},  
}

// example
window.DEUNA_CREDENTIALS = {  
  MERCADOPAGO: {},  
}
  • Paso 2: Asegura el orden de carga: Asegúrate de que el script se cargue antes de presionar el botón de pago y mostrar el modal.
  • Paso 3: Verifica fuentes externas: Asegúrate de no estar cargando el código del proveedor de pagos o anti-fraude desde Google Tag Manager u otra fuente.
  • Paso 4: Validación: Un paso antes de mostrar el modal de DEUNA, abre la consola de desarrollador de tu navegador y copia este código.
    window.DEUNA_CREDENTIALS
    
    Esto debería mostrar el mismo script que configuraste anteriormente. Con esto ya sabes que se configuró correctamente.
    Estas medidas garantizarán que tu implementación con DEUNA y el proveedor sea exitosa y sin problemas.

Conector de VTEX

https://docs.deuna.com/docs/vtex-como-configurar-device-fingerprint-widget-v2

Integración vía API

  • Paso 1: Agrega el script: Este script incluye un SDK de DEUNA que es capaz de generar los fingerprints de cualquier proveedor bajo solo una integración. En este caso mostraremos como usarlo para generar el fingerprint del proveedor:

    • Web SDK: https://docs.deuna.com/docs/primeros-pasos-web#instalaci%C3%B3n

      • Example snippet:
      <script>
          var script = document.createElement("script");
          script.id = "deuna-sdk";
          script.src = "https://cdn.deuna.io/web-sdk/v1.1/index.js";
          
          script.onload = async function () {  // ✅ Make function async
              // Initialize the SDK
              await DeunaSDK.initialize({
                  publicApiKey: "<public api key>",
                  env: "sandbox"  // "sandbox" or "production"
              });
      
              // Get the MasterDeviceId from DEUNA
              const fraudId = await DeunaSDK.generateFraudId({
                  someProvider: {  // ✅ Replace with actual provider name
                      // provider-specific data
                  }
              });
      
              console.log("Fraud ID:", fraudId);
          };
      
          document.body.appendChild(script);
      </script>
      
    • iOS SDK:
      Sigue los pasos para agregar e inicializar el SDK de DEUNA
      https://docs.deuna.com/docs/primeros-pasos-instalacion-ios-sdk
      Después utiliza la función generateFraudId para generar el fingerprint

      deunaSDK.generateFraudId(
        params: [
          "RISKIFIED": [
            "storeDomain": "volaris.com"
          ]
        ]
      ) { fraudId in
         
      }
      
    • Android SDK:
      Sigue los pasos para agregar e inicializar el SDK de DEUNA
      https://docs.deuna.com/docs/primeros-pasos-instalacion-android-sdk
      Después utiliza la función generateFraudId para generar el fingerprint

      deunaSDK.generateFraudId(
        context = context,
        params = mapOf(
          "RISKIFIED" to mapOf(
            "storeDomain" to "deuna.com"
          )
        ),
        callback = { fraudId ->
        }
      )
      
  • Paso 2: Obtener el valor del device fingerprint y enviarlo en el /purchase API

    • Para el /purchase V1 (Request):
      • {
            "token": "e4caabfb-3ed5-4930-a4fc-dd6e4812bd03", // order token
            "email": "john.doe@gmail",
            "method_type": "credit_card", 
            ...
            // mandar el fingerprint como base64
            "device_id": "<device fingerprint generated by the DEUNA Fraud SDK>",
            ...
        }
        
    • Para el /purchase V2 (Request):
      • {
          "payer_info": {
            "email": "[email protected]",
            "card_holder_dni": "12345678"
          },
          "payment_source": {
            "method_type": "debit_card",
            "card_info": {
              "card_id": "<card id>"
            }
          },
          "order": {
            "order_id": "DEUNA-NOW-69553619",
             // ...
          },
          "anti_fraud_info": { // dentro de este objeto se manda el fingerprint
            "device": {
              // mandar el fingerprint como base64
              "id": "<device fingerprint generated by the DEUNA Fraud SDK>"
            }
          }
        }