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

# Autenticação

> As chaves de API permitem integrar sua aplicação junto à nossa plataforma. Entenda como gerenciar suas chaves de teste e produção.

<Note>
  **Segurança**: Mantenha suas chaves de API seguras e nunca as compartilhe com partes não autorizadas. Essas chaves fornecem acesso à sua conta e serviços da plataforma.
</Note>

<Warning>
  **NUNCA** deixe suas chaves de API expostas diretamente no código front-end (JavaScript, HTML, aplicativos móveis, etc.). Chaves expostas podem ser facilmente acessadas por qualquer usuário, comprometendo a segurança da sua conta. Use sempre um backend/servidor para fazer as requisições com as chaves de API.
</Warning>

### Acessando sua Chave

Sua primeira chave de API está disponível diretamente na **home do painel administrativo**:

1. Acesse o painel administrativo
2. No menu lateral dentro de desenvolvedores clique em Chaves de API
3. Clique em criar nova chave
4. Adicione um nome
5. Copie a chave e guarde **A CHAVE DE API SÓ SERÁ MOSTRADA UMA VEZ**

## Prefixos das Chaves

Nossas chaves de API utilizam prefixos específicos para identificar o ambiente:

| Prefixo        | Ambiente     | Descrição                                        |
| -------------- | ------------ | ------------------------------------------------ |
| `cpk_sandbox_` | **Teste**    | Chaves para ambiente de desenvolvimento e testes |
| `cpk_live_`    | **Produção** | Chaves para processamento de pagamentos reais    |

### Exemplo de Chaves

```bash theme={null}
# Chave de Teste
cpk_sandbox_1a2b3c4d5e6f7g8h9i0j

# Chave de Produção
cpk_live_9i8h7g6f5e4d3c2b1a0j
```

## Chaves de Produção

<Warning>
  **Importante**: Chaves de produção (`cpk_live_`) **só podem ser criadas após a validação completa dos documentos** dentro da plataforma.
</Warning>

### Processo para Chaves de Produção

1. **Validação de Documentos** - Complete o processo de validação
2. **Aprovação da Conta** - Aguarde a aprovação da nossa equipe
3. **Acesso Liberado** - Após aprovação, o botão para criar chaves de produção será habilitado

### Quando Usar Cada Tipo

| Situação                          | Chave Recomendada |
| --------------------------------- | ----------------- |
| Desenvolvimento e testes          | `cpk_sandbox_`    |
| Homologação                       | `cpk_sandbox_`    |
| **Produção com transações reais** | `cpk_live_`       |

## Informações das Chaves

Na tela de gerenciamento, você visualiza:

* **Nome da chave** - Identificação personalizada
* **Prefixo** - Tipo de ambiente (sandbox/prod)
* **Status** - Ativo/Inativo
* **Data de criação** - Quando foi gerada
* **Último uso** - Última atividade registrada

<Accordion title="Boas Práticas de Segurança">
  - **Rotacione chaves periodicamente** para manter a segurança
  - **Use chaves diferentes** para diferentes serviços/ambientes
  - **Desative chaves não utilizadas** para reduzir riscos
  - **Monitore o uso** através dos logs de atividade
  - **Nunca commite chaves** no código fonte
</Accordion>

## Utilizando as Chaves

### Autenticação HTTP

Inclua a chave no header de autorização:

```bash theme={null}
curl -X GET "https://api.rivopay.com/charge/:id" \
  -H "X-API-KEY: cpk_sandbox_sua_chave_aqui" \
  -H "Content-Type: application/json"
```

### Exemplo de Integração

```javascript theme={null}
const apiKey = 'cpk_sandbox_sua_chave_aqui';

fetch('https://api.rivopay.com/charge/:id', {
  method: 'GET',
  headers: {
    'X-API-KEY': `${apiKey}`,
    'Content-Type': 'application/json'
  }
})
.then(response => response.json())
.then(data => console.log(data));
```

## Migração Teste → Produção

Quando sua conta for aprovada:

1. **Crie chaves de produção** na tela de gerenciamento
2. **Substitua as chaves** em sua aplicação
3. **Atualize a URL base** se necessário
4. **Teste em homologação** antes do go-live

<Note>
  **Dica**: Mantenha sempre chaves de teste ativas mesmo em produção para facilitar novos desenvolvimentos e testes de funcionalidades.
</Note>
