# Como configurar o Antifraude

A documentação para a instalação de um script de antifraude no checkout, utilizando React, segue abaixo. Este guia tem como objetivo fornecer uma visão clara e direta para integrar o script de antifraude de forma eficiente e segura no processo de checkout da sua aplicação.

### **Visão Geral**

O script de antifraude tem como objetivo monitorar e analisar o comportamento do usuário durante o preenchimento de dados sensíveis no checkout (como informações do cartão de crédito) para identificar padrões de fraude. A integração deste script aumenta a segurança nas transações, minimizando o risco de fraudes.

### **Pré-requisitos**

* Acesso ao checkout onde os dados do usuário são capturados.

### **Passo a Passo**

#### 1. Preparação do Script

O script deve ser iniciado assim que os dados do cartão de crédito ou do usuário começarem a ser capturados na página de checkout. Isso assegura a monitoração desde o início da inserção de dados sensíveis.

#### 2. Integração do Script no React (Exemplo)

Inclua o seguinte trecho de código no componente React do seu checkout:

```jsx

import React, { useEffect, useState } from 'react';
import { v4 as uuidv1 } from 'uuid';

function Checkout() {
  const [attempt_reference, setAttempt_reference] = useState(uuidv1());

  useEffect(() => {
    if (attempt_reference) {
      const nethoneScript = document.createElement("script");
      nethoneScript.type = "text/javascript";
      nethoneScript.id = "nethone-script";
      nethoneScript.crossOrigin = "use-credentials";
      nethoneScript.src = "<https://d354c9v5bptm0r.cloudfront.net/s/68741/dQItJr.js>";
      nethoneScript.async = true;
      document.body.appendChild(nethoneScript);
      nethoneScript.onload = () => {
        localStorage.setItem("attempt_reference", attempt_reference);
        const nethoneOptions = {
          attemptReference: attempt_reference,
          sensitiveFields: ["cardHolderName", "cardCvv", "cardExpirationDate", "cardNumber"],
        };
        if (window.dftp) {
          window.dftp.init(nethoneOptions);
        } else {
          nethoneScript.addEventListener("load", () => {
            if (window.dftp) {
              window.dftp.init(nethoneOptions);
            }
          });
        }
      }
    }
  }, [attempt_reference]);

  // Conteúdo do componente de checkout vai aqui

  return (
    <div>
      {/* Seu formulário de checkout */}
    </div>
  );
}

export default Checkout;

```

#### 3. Geração do **`attemptReference`**

O **`attemptReference`** é um identificador único necessário para rastrear os comportamentos do usuário durante a sessão de checkout. Este identificador deve ser gerado toda vez que a página de checkout for recarregada para assegurar a unicidade da sessão.

#### 4. Envio do **`attemptReference`** na API de Payments/Orders

Quando o usuário finalizar o processo de checkout, inclua o **`attemptReference`** no corpo da requisição enviada à API de Orders. Isso permitirá a verificação de potenciais fraudes antes que a transação seja processada pelo provedor.

```json

{
    "startDate": "2024-02-15",
    "value": 3.50,
    "installments": 1,
    "title": "Order de webhook",
    "attemptReference" : "5c8d1bf6-9d64-40d9-b2f0-94e95ec728ab", //aqui o 
    //attempReference do antifraude
    "description": "Descrição opcional da order",
    "payment": {
        "method": "CREDIT_CARD_EARLY_SELLER",
        "card": {
            "holderName": "JOSE DAS NEVES TEST",
            "number": "5383638854440891",
            "cvv": 220,
            "expiration": "12/2024"
        },
        "fraudData": {
	    "document": "41011660059",
            "name": "Tester",
            "email": "teste@barte.com",
            "phone": "62984812743",
            "billingAddress": {
                "country": "BR",
                "state": "Goiás",
                "city": "Goiânia",
                "district": "Setor Bueno",
                "street": "Rua t 65",
                "zipCode": "74230120",
                "number": "1061",
                "complement": "Ap 2301"
            }
        }
    },
    "uuidBuyer": "7b28ad57-52fc-44ff-9716-2b70b4b44120"
}

```

#### Verificação de Fraudes

Com o **`attemptReference`** enviado, o sistema de antifraude poderá analisar os comportamentos registrados e determinar se a transação possui características suspeitas de fraude antes de ser processada.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.barte.com/guias/inicio/como-configurar-o-antifraude.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
