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

# 3DS Beehive

> Passo a passo para autenticação 3DS.

***

# 🔒 Autenticação 3DS

Ao processar transações com cartão de crédito, a autenticação 3DS adiciona uma camada extra de segurança, reduzindo riscos de fraude e aumentando a aprovação das transações.

O fluxo correto é:

1. Importar o script de autenticação 3DS no front-end
2. Configurar a chave pública da empresa
3. Verificar se o 3DS está disponível
4. Realizar a autenticação 3DS
5. Tokenizar os dados do cartão
6. Enviar o token para o back-end criar a transação

Esse processo garante conformidade com padrões de segurança e protege dados sensíveis.

***

## Setup da biblioteca

Adicione o script da Beehive no `<head>` da sua página:

```html theme={null}
<script src="https://api.sandbox.hopysplit.com.br/v1/js"></script>
```

***

## Configuração inicial

Antes de qualquer operação, configure o SDK da Beehive.

```javascript theme={null}
// Inicialização do SDK Beehive
const BeehivePay = HopyPay;

// Configure com a chave pública da sua empresa
BeehivePay.setPublicKey("pk_live_sua_chave_publica");
```

***

## Validação do 3DS

Antes de autenticar, verifique se o 3DS está habilitado:

```javascript theme={null}
const is3DSAvailable = await BeehivePay.is3DSAvailable();
console.log("3DS disponível:", is3DSAvailable); // true ou false
```

***

## Autenticação 3DS

Se o 3DS estiver disponível, execute a autenticação:

```javascript theme={null}
const card = {
  number: "4111111111111111",
  holderName: "Bruce Wayne",
  expMonth: 5,
  expYear: 2028,
  cvv: "123",
};

if (is3DSAvailable) {
  await BeehivePay.authenticate3DS({
    amount: 4990,       // valor em centavos
    currency: "brl",    // sempre "brl"
    installments: 2,    // número de parcelas
    card,
  });
}
```

***

## Tokenização

Após a autenticação, gere o token do cartão:

```javascript theme={null}
const token = await BeehivePay.encrypt({
  number: "4111111111111111",
  holderName: "Bruce Wayne",
  expMonth: 5,
  expYear: 2028,
  cvv: "123",
});

console.log("Token:", token);
```

***

## 🚀 Envio da transação

No seu servidor, envie o token gerado para criar a transação via API, garantindo que a autenticação 3DS foi realizada com sucesso.
