> ## Documentation Index
> Fetch the complete documentation index at: https://docs.malga.io/llms.txt
> Use this file to discover all available pages before exploring further.

# B2E

> Provedor de antifraude

export const ProviderImage = ({src, backgroundColor = '#F9F9F9', children, docUrl, id}) => {
  const borderColors = {
    '#F9F9F9': '#E5E5E5',
    '#030303': '#4D4D4D'
  };
  const borderColor = borderColors[backgroundColor];
  const img = <>
    <img className="rounded-lg p-2 m-0" id={id} src={src} noZoom style={{
    background: backgroundColor,
    border: `solid 3px ${borderColor}`,
    width: "36px",
    height: "36px"
  }} />
    <p className="m-0">{children}</p>
  </>;
  if (docUrl) {
    return <a className="flex items-center gap-2 flex-row border-none" href={docUrl}>
        {img}
      </a>;
  }
  return <div className="flex items-center gap-2 flex-row" href={docUrl}>
      {img}
    </div>;
};

export const CheckIcon = ({mode, type, id}) => {
  const colorIcons = {
    'error': '#919191',
    'success': '#00AE42',
    'noSupported': '#919191'
  };
  const foundColor = colorIcons[mode];
  const iconType = mode === 'noSupported' ? type : `circle-${type}`;
  return <div className="check-icon" id={id}>
      <Icon icon={iconType} iconType="regular" color={foundColor} size={18} />
    </div>;
};

Provedor de soluções de prevenção a fraudes com foco em análise de risco para transações online. Em nossa integração, a B2E atua em modo assíncrono para avaliação das transações.
[Mais informações.](https://www.b2egroup.com.br)

## Funcionalidades suportadas pelo antifraude

| Provedor                                                                                              |                 Realtime                |                 Assíncrono                |
| ----------------------------------------------------------------------------------------------------- | :-------------------------------------: | :---------------------------------------: |
| <ProviderImage src="https://malga-docs-prod.s3.amazonaws.com/icons/b2e.png">B2E group</ProviderImage> | <CheckIcon type="xmark" mode="error" /> | <CheckIcon type="check" mode="success" /> |

<br />

<div className="flex flex-col gap-2 justify-center items-start">
  <div className="flex items-center justify-center gap-4 table-legend">
    <CheckIcon type="check" mode="success" />

    Este serviço ou método é oferecido pelo provedor e suportado pela API da
    Malga
  </div>

  <div className="flex items-center justify-center gap-4 table-legend">
    <CheckIcon type="xmark" mode="error" />

    Este serviço ou método não é oferecido pelo provedor
  </div>

  <div className="flex items-start justify-center gap-4 table-legend">
    <CheckIcon type="check" mode="noSupported" />

    Este serviço ou método é oferecido pelo provedor e ainda não é suportado
    pela API da Malga. Caso tenha interesse em utilizar este recurso, contate o
    nosso time de atendimento pelo e-mail
    <a href="mailto:suporte@malga.io">[suporte@malga.io](mailto:suporte@malga.io)</a>.
  </div>

  <div className="flex items-center justify-center gap-4 table-legend">
    <CheckIcon type="minus" mode="noSupported" />

    Não se aplica
  </div>
</div>

<br />

## Integrando a B2E ao seu checkout

Esta seção guia você passo a passo para integrar a B2E ao seu fluxo de checkout, garantindo a correta prevenção de fraudes.

### 1. Obtenha seus dados de integração

Após solicitar e receber os dados de integração com a B2E, configure-os no merchant da Malga. Estes dados são essenciais para autenticar e habilitar o serviço.

* **api-key** e **client-id**: dúvidas sobre api-key e client-id consulte a página sobre [autenticação](/api-reference/authentication) para mais detalhes
* **merchant-id**, **user**, **password**: converse com nosso time para obter as credenciais

```bash theme={null}
curl --location 'https://api.malga.io/v1/merchants' \
--header 'X-Client-Id: <client-id>' \
--header 'X-Api-Key: <api-key>' \
--header 'Content-Type: application/json' \
--data-raw '{
    "mcc": "4789",
    "providers": [
        {
            "name": "B2E",
            "priority": 1,
            "credentials": {
                "type": "B2E",
                "merchantId": "<merchant-id>",
                "user": "<user>",
                "password": "<password>"
            },
            "options": {
                "type": "ANTIFRAUD",
                "captureOnApproved": true,
                "refundOnReproved": true,
                "runBeforeCharge": false
            }
        }
    ]
}'
```

### 2. Adicione os SDKs da B2E no seu checkout

Inclua as bibliotecas necessárias para tracking e identificação do cliente no arquivo HTML do seu checkout. Estes SDKs são responsáveis por coletar dados importantes para análise antifraude.

```html index.html lines icon="html" theme={null}
<!-- SDK de Tracking  -->
<script src="https://trkme.bigdatacorp.com.br/lib/trcklibiframe.min.js" type="text/javascript"></script>

<!-- SDK de Identity -->
<script src='https://identity.b2egroup.com.br/Identity/v1.11.1/b2e.identity.js' type='text/javascript'></script>   
```

Após a inclusão, os objetos \$infoReader (TrackMe) e a função capturar (Identity) estarão disponíveis globalmente no objeto window.

### 3. Configure a identificação do cliente

Para realizar a identificação do pedido, será necessário 3 informações para a captura.

* **sid**: Identificador numérico do cliente (ex: CPF ou CNPJ)
* **key**: Chave fornecida pela B2E para autenticação no Identity SDK
* **domain**: Identificação da página, com prefixo fixo fornecido junto com as chaves da B2E (ex: "MALGA\_CHECKOUT")

```javascript index.js lines icon="javascript" theme={null}
// Identificador do cliente (CPF, CNPJ, etc.)
let sid = 12345678900;

// Chave de autenticação fornecida pela B2E
let key = dde85eb7-2dd9-4d8b-b924-8c6444d94801;

// Prefixo para identificar o domínio/página atual
let prefix = "MALGA_"

// Executa o tracking com o SDK TrackMe
$infoReader.run(sid, null, `${prefix}CHECKOUT`);

// Executa a captura de identidade com o SDK Identity
capturar({ sid: sid, key: key, domain: `${prefix}CHECKOUT`});
```

Substitua os valores de sid e key pelos dados reais fornecidos para sua integração.

### 4. Envie os dados para análise B2E

Após configurar os SDKs e o seu merchant Malga, a B2E realizará a análise dos dados coletados junto com as informações da compra enviadas via integração.

### 5. Crie uma transação com a API da Malga

Adicione o objeto de [fraudAnalysis](/api-reference/charges/realizar-nova-cobranca#body-fraud-analysis) ao body quando realizar nova cobrança.

```bash theme={null}
curl --location 'https://api.malga.io/v1/charges' \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: <api-key>' \
--header 'X-Client-Id: <client-id>' \
--data-raw '{
    "merchantId": "7f8870a2-71c9-4ef0-a531-82000e00b7e1",
    "amount": 150,
    "currency": "BRL",
    "statementDescriptor": "LOJA JOAO",
    "description": "Descrição longa da cobrança",
    "capture": false,
    "orderId": "32c68ff7-902c-408b-b464-cf487c7cda97",
    "paymentMethod": {
        "paymentType": "credit",
        "installments": 1
    },
    "paymentSource": {
        "sourceType": "card",
        "card": {
            "cardNumber": "5261424250184574",
            "cardCvv": "321",
            "cardExpirationDate": "06/2028",
            "cardHolderName": "JOAO DA SILVA"
        }
    },
    "fraudAnalysis": {
        "sla": 10,
        "customer": {
            "name": "Joao Torres",
            "phone": "11 99329899",
            "email": "joao@gmail.com",
            "identity": "45762964851",
            "identityType": "CPF",
            "registrationDate": "2022-07-26T16:11:35.756Z",
            "billingAddress": {
                "street": "Rua Um",
                "number": "200",
                "zipCode": "02010010",
                "country": "BR",
                "state": "SP",
                "district": "Jardim Paraiso",
                "city": "Sao Paulo",
                "complement": "ap 10"
            },
            "browser": {
                "browserFingerprint": "074c1ee676ed4998ab66491013c565e2",
                "cookiesAccepted": false,
                "email": "comprador@test.com.br",
                "hostName": "google.com",
                "ipAddress": "127.0.0.1",
                "type": "Chrome"
            }
        },
        "cart": {
            "items": [
                {
                    "name": "ItemTeste1",
                    "quantity": 1,
                    "sku": "20170511",
                    "unitPrice": 100,
                    "risk": "High",
                    "locality": "Local do evento",
                    "date": "2017-03-21T22:36:53",
                    "type": 1,
                    "genre": "Concerto de música",
                    "tickets": {
                        "quantityTicketSale": 800,
                        "quantityEventHouse": 2,
                        "convenienceFeeValue": 0,
                        "quantityFull": 100,
                        "quantityHalf": 50,
                        "batch": 1234123
                    },
                    "location": {
                        "country": "BR",
                        "street": "Rua Um",
                        "number": "2",
                        "zipCode": "02417140",
                        "city": "Sao Paulo",
                        "state": "SP",
                        "district": "Bairro"
                    }
                }
            ]
        }
    }
}'
```

Para mais detalhes sobre como realizar uma nova cobrança, consulte a página de [novas cobranças](api-reference/charges/realizar-nova-cobranca).

<br />

Se você possui interesse em receber cotações e avaliar este provedor antifraude para o seu fluxo de pagamentos, entre em contato com o nosso time para avaliar.
