> ## 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.

# Konduto

> Integração com o provedor de antifraude Konduto na Malga, com análise de risco baseada em machine learning em modo realtime e assíncrono.

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, utilizando machine learning para avaliação do comportamento do comprador. A Konduto atua em modo realtime e assíncrono para avaliação das transações.
[Mais informações.](https://www.konduto.com)

## Funcionalidades suportadas pelo antifraude

| Provedor                                                                                                |                  Realtime                 |                 Assíncrono                |
| ------------------------------------------------------------------------------------------------------- | :---------------------------------------: | :---------------------------------------: |
| <ProviderImage src="https://malga-docs-prod.s3.amazonaws.com/icons/konduto.svg">Konduto</ProviderImage> | <CheckIcon type="check" mode="success" /> | <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 Konduto ao seu checkout

Esta seção guia você passo a passo para integrar a Konduto 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 Konduto, 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
* **secret-key**: chave secreta de API fornecida pela Konduto para autenticação
* **public-key**: chave pública da Konduto cadastrada no merchant Malga (`credentials.publicKey`)

<Info title="Atenção">
  O campo `credentials.publicKey` identifica a sua loja na Konduto no contrato server-side com a Malga. **Não** é a chave pública do [Malga Checkout](/documentations/anti-fraud/malga-checkout), do [client-token](/documentations/welcome/authentication) nem da [Sessions API](/documentations/more/sessions).
</Info>

```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": "KONDUTO",
            "priority": 1,
            "credentials": {
                "type": "KONDUTO",
                "secretKey": "<secret-key>",
                "publicKey": "<public-key>"
            },
            "options": {
                "type": "ANTIFRAUD",
                "captureOnApproved": true,
                "refundOnReproved": true,
                "runBeforeCharge": false
            }
        }
    ]
}'
```

### 2. Configure o fingerprint do navegador

A Konduto utiliza o fingerprint do navegador para enriquecer a análise de risco. Inclua o SDK da Konduto no HTML do seu checkout e capture o identificador do visitante antes de realizar a transação.

Se você usa checkout ou link de pagamento próprio, **deve** configurar o fingerprint do navegador. O placeholder `<PUBLIC_KEY>` abaixo vem do portal da Konduto e alimenta apenas o script client-side.

Para configurar o script de tracking, você precisa de **1 informação**:

* **PUBLIC\_KEY**: chave pública obtida junto à Konduto

```html index.html lines icon="html" theme={null}
<script type="text/javascript">
  var __kdt = __kdt || [];
  __kdt.push({"public_key": "<PUBLIC_KEY>"}); // A chave pública identifica a sua loja
  (function() {
    var kdt = document.createElement('script');
    kdt.id = 'kdtjs';
    kdt.type = 'text/javascript';
    kdt.async = true;
    kdt.src = 'https://i.k-analytix.com/k.js';
    var s = document.getElementsByTagName('body')[0];
    s.parentNode.insertBefore(kdt, s);
  })();
</script>
```

Após a inclusão do script, capture o identificador do visitante com `Konduto.getVisitorID()` e envie-o em `fraudAnalysis.customer.browser.browserFingerprint` na requisição de cobrança:

```javascript index.js lines icon="javascript" theme={null}
// Aguarda a captura do fingerprint pela Konduto
var period = 300;
var limit = 20 * 1000 / period;
var attempts = 0;

var interval = setInterval(function() {
    var kId = Konduto.getVisitorID();

    if (kId || attempts >= limit) {
        clearInterval(interval);
        // Utilize o kId como browserFingerprint na requisição de cobrança
        console.log("Konduto Visitor ID:", kId);
    }

    attempts++;
}, period);
```

### 3. 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. O campo `browser.browserFingerprint` deve ser preenchido com o visitor ID capturado pelo SDK da Konduto.

```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": 15000,
    "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",
            "birthdate": "1990-01-15T00:00:00.000Z",
            "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", // kid Konduto
                "ipAddress": "127.0.0.1"
            }
        },
        "cart": {
            "items": [
                {
                    "name": "Tênis Esportivo",
                    "description": "Tênis esportivo masculino tamanho 42",
                    "quantity": 1,
                    "sku": "TNS-42-ESP",
                    "unitPrice": 15000
                }
            ]
        }
    }
}'
```

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.
