> ## Documentation Index
> Fetch the complete documentation index at: https://apidocs.hydrahub.com.br/llms.txt
> Use this file to discover all available pages before exploring further.

# Autenticação

> A API HYDRA HUB utiliza autenticação Basic Auth para todas as requisições. Esse método de autenticação é seguro e simples de implementar.

## Credenciais de Acesso

A autenticação na API HYDRA HUB é feita utilizando Basic Auth com suas chaves de API:

* **Username**: sk\_userKey (sua chave secreta)
* **Password**: pk\_userKey (sua chave pública)

<Warning>
  Suas chaves de API são confidenciais e não devem ser compartilhadas. Elas concedem acesso completo à sua conta HYDRA HUB.
</Warning>

## Utilizando a Autenticação

Para autenticar suas requisições, inclua as credenciais no cabeçalho HTTP de autorização:

```bash
Authorization: Basic {base64(sk_userKey:pk_userKey)}
```

### Exemplo em cURL

```bash
curl -X POST https://api.hydrahub.com.br/api/v1/transaction/card \
  -H "Authorization: Basic {base64(sk_userKey:pk_userKey)}" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 1000,
    "token": "tok_12345678",
    "description": "Compra de produto"
  }'
```

### Exemplo em JavaScript

```javascript
const response = await fetch('https://api.hydrahub.com.br/api/v1/transaction/card', {
  method: 'POST',
  headers: {
    'Authorization': 'Basic ' + btoa('sk_userKey:pk_userKey'),
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    amount: 1000,
    token: 'tok_12345678',
    description: 'Compra de produto'
  })
});

const data = await response.json();
console.log(data);
```

### Exemplo em PHP

```php
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'https://api.hydrahub.com.br/api/v1/transaction/card');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
  'amount' => 1000,
  'token' => 'tok_12345678',
  'description' => 'Compra de produto'
]));

$headers = [
  'Authorization: Basic ' . base64_encode('sk_userKey:pk_userKey'),
  'Content-Type: application/json'
];

curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$response = curl_exec($ch);
curl_close($ch);

echo $response;
```

## Tokenizador

A autenticação para o tokenizador é feita de forma diferente, utilizando query parameter:

```
https://api.hydrahub.com.br/api/v1/card-token?publicKey=pk_userKey
```

## URL Base da API

Nossa API está disponível apenas no seguinte endpoint:

* **Produção**: `https://api.hydrahub.com.br/api/v1`

<Note>
  Não possuímos ambiente de sandbox. Todos os testes devem ser realizados diretamente no ambiente de produção.
</Note>

## Segurança e Boas Práticas

* **Nunca compartilhe** suas chaves de API
* **Não armazene** as chaves no código-fonte ou repositórios públicos
* **Utilize variáveis de ambiente** para armazenar as chaves
* **Renove as chaves** periodicamente por questões de segurança
* **Configure CORS** apropriadamente se estiver fazendo chamadas a partir do navegador
