---
type: template
name: _template-contrato
description: Template para definição de contratos de API e schemas de uma funcionalidade
updatedAt: "2026-08-12"
---

# Contrato de API — <PREENCHER NOME DA FUNCIONALIDADE>

## Serviço
<Nome e breve descrição do serviço responsável por esta API>

## Base URL
`<URL base de desenvolvimento e/ou produção>`

## Autenticação
<Como autenticar? Token Bearer, API Key, sem auth?>

## Endpoints

| Método | Rota | Descrição | Auth |
| :--- | :--- | :--- | :--- |
| `GET` | `/rota/exemplo` | `<Descrição>` | `Sim/Não` |
| `POST` | `/rota/exemplo` | `<Descrição>` | `Sim/Não` |

---

## Detalhamento por Endpoint

### `<MÉTODO>` `<ROTA>`
<Breve descrição adicional do endpoint>

**Request Params**
- `param1` (tipo, obrigatório?): <descrição>

**Body Schema**
```json
{
  // Exemplo de body esperado
}
```

**Response Schema (Sucesso)**
```json
{
  // Exemplo de resposta 200/201
}
```

**Códigos de Erro**
- `400 Bad Request`: <motivo>
- `404 Not Found`: <motivo>

---

## Schema Zod de Referência
```typescript
// z.object({ ... })
```

## Exemplos de Uso
```bash
curl -X GET ...
```

## Referências
- Especificação: `especificacao.md` (co-localizado)
- Regras de negócio: `regras-negocio.md` (co-localizado)
- [...]
