# Antifraude

O Antifraude da Getnet avalia o risco de transações de e-commerce utilizando dados enviados pelos clientes, além de contar com tecnologias de machine learning, redes neurais, decisões gerenciais e regras ajustáveis.

Quanto mais dados disponíveis para treinar os modelos, melhores os resultados e maior a probabilidade de detecção. Com essa riqueza de dados, o número de detectores de fraude aumenta, o que significa uma melhor precisão na identificação do risco da transação.

Portanto, solicitamos que você envie todas as informações listadas abaixo, você pode encontrar os campos no objeto `additional_data`:

**Informações do cliente:**
Todas as informações listadas aqui estão dentro do objeto `customer`.

| Atributo | Tipo | Descrição | Exemplo |
|---|---|---|---|
|`document_number`| String | Número do documento do comprador sem pontuação (sem máscara) | `2441356709`|
|`document_type`| String | Tipo do documento de identificação do comprador | `CPF`|
|`email`| String | E-mail do comprador | `aceiti@getnet.com.br`|
|`name`| String | Nome do comprador | `Jose da Silva`|
|`phone number`| String | Número de telefone do comprador | `11999999999`|

**Endereço de cobrança:**
Todas as informações listadas aqui estão dentro do objeto `customer`.

| Atributo | Tipo | Descrição | Exemplo |
|---|---|---|---|
|`billing_address`| Object | Informações do endereço do cliente para cobrança | - |
|`city`| String | Nome da cidade | `São Paulo` |
|`complement`| String | Complemento do endereço | `apto 43` |
|`country`| String | País, informe no padrão ISO 3166-1 alpha-3 | `BRA` |
|`district`| String | Bairro | `Jardins` | 
|`number`| String | Número do logradouro | `123` |
|`postal_code`| String | Código Postal, CEP no Brasil ou ZIP nos Estados Unidos (sem máscara) | `02576896` |
|`state`| String | Estado (UF) | `SP`
|`street`| String | Nome do logradouro | `Dark Tower`|
|`type` | String | Tipo de endereço | `Residential`|

**Informações do dispositivo:**

Todas as informações listadas aqui estão dentro do objeto `device`.

| Atributo | Tipo | Descrição | Exemplo |
|---|---|---|---|
|`device`| Object | Conjunto de dados referentes ao dispositivo usado pelo comprador | - |
|`device_id`| String | ID exclusivo do dispositivo | `ae44e06c-3e85-44af-8542-bcaccd54ef2e`|
|`finger_print`| String | Hash de identificação (Device Fingerprint) do dispositivo | `aGVsbG8td29ybGQtZGV2aWNlLWlkCg==`|
|`ip_address`| String | Endereço IP (IPv4) do dispositivo do comprador. Este atributo deve ser capturado pela sua aplicação, a partir do dispositivo do comprador (mobile; navegador; etc.) e enviado no payload, a fim de enriquecer nossas análises preventivas | `10.0.0.1`|

Para mais detalhes, consulte a [Referência da API](https://docs.globalgetnet.com/en/products/online-payments/regional-api/swagger#tag/payments/POST/dpm/payments-gwproxy/v2/payments)

## Implementação do Device Fingerprint

O Device Fingerprint é uma técnica que coleta dezenas de pontos de dados do dispositivo e do ambiente de rede de um usuário, permitindo que os estabelecimentos comerciais (merchants) detectem anomalias com mais eficácia e aprimorem os recursos gerais de prevenção a fraudes.

O fluxo de integração para este método envolve duas fases principais:

* Uma etapa no lado do cliente (client-side), onde os dados do dispositivo são capturados carregando a URL do antifraude contendo o ID da sessão gerado previamente pelo sistema de e-commerce.
* Uma etapa no backend, onde o sistema de e-commerce envia os dados do pagamento para a API da Getnet, incluindo o ID da sessão mencionado anteriormente.

### Passo 1: Capturando os dados do dispositivo

Para coletar as informações do dispositivo do usuário transacionador, construa a URL do antifraude usando o seguinte formato:

`https://BASE_URL?session={session id}&country={country code}`, onde:

`https://BASE_URL` corresponde a um dos seguintes ambientes:
&#x20;  [https://api.pre.globalgetnet.com/dpm/digital-platform/antifraud/afdf.js](https://api.pre.globalgetnet.com/dpm/digital-platform/antifraud/afdf.js) (stage),
&#x20;  [https://api.globalgetnet.com/dpm/digital-platform/antifraud/afdf.js](https://api.globalgetnet.com/dpm/digital-platform/antifraud/afdf.js) (produção).
`?` indica o início da seção de query,
`session={session_id}` é um parâmetro obrigatório usado para identificar o dispositivo durante o processo de análise da transação, e seu valor deve seguir o formato UUIDv4,
`&` é usado como um conector entre os parâmetros de query,
`country={country_code}` corresponde ao segundo parâmetro obrigatório, necessário para identificar o país de origem e deve ter o valor do código de país ISO correspondente (AR, BR, CL, MX).

Uma vez que a URL esteja construída corretamente, você deve implementar a URL do antifraude resultante dentro da tag `head` ou `body` da sua aplicação web, como você pode ver nos exemplos abaixo:

Para a tag `head`:

```json
<head>
  <script
  type="text/javascript"
  src="https://base_url?session=${session_id}&country=${country_code}" />
</head>
```

Para a tag `body`:

```json
<body>
  <noscript>
    <iframe
      style="width: 100px; height: 100px; border: 0; position:absolute; top: -5000px;"
      src="https://base_url?session=${session_id}&country=${country_code}" />
  </noscript>
</body>
```

### Passo 2: Criar pagamento através da API da Getnet

Quando o usuário inicia um pagamento, o `session_id` gerado previamente deve ser incluído no corpo da requisição enviado para a API da Getnet. Esse valor deve ser passado como o `device_id` dentro do objeto `device`, juntamente com o `ip_address` e o `finger_print` (hash do fingerprint). O objeto `device` deve ser aninhado dentro do objeto de segundo nível `additional_data`, conforme mostrado abaixo:

```json
additional_data: {
  device: {
    ip_address: {ip_address},
    device_id: {session_id},
    finger_print: {finger-print-hash}
  }
}
```

Para mais detalhes, consulte a [Referência da API](https://docs.globalgetnet.com/en/products/online-payments/regional-api/swagger#tag/payments/POST/dpm/payments-gwproxy/v2/payments)