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

# Responsáveis Financeiros

> Cadastre o responsável financeiro exigido pelos canais do WhatsApp Oficial

# Responsáveis Financeiros (Financial Managers)

O **Responsável Financeiro** representa a pessoa física ou jurídica responsável pela conta e pela carteira de créditos do WhatsApp Oficial. É contra ele que as cobranças da **MessageFy** são emitidas (não da Meta): os créditos pagos alimentam a [carteira](/whatsapp-oficial/carteiras) usada nos envios.

<Warning>
  Um canal `whatsapp-api` **não pode ser criado** sem que a Account tenha um responsável
  financeiro com `isDefault: true` — a criação falha com `METAGURU_FINANCIAL_MANAGER_REQUIRED`.
</Warning>

Todos os endpoints usam o header `X-API-KEY` e o escopo da chave (`org_`/`acc_`) se aplica normalmente.

## Listar

```
GET /api/v1/Admin/FinancialManager
```

| Query       | Tipo | Obrigatório | Descrição                              |
| ----------- | ---- | ----------- | -------------------------------------- |
| `accountId` | uuid | Não         | Filtra pelos responsáveis de uma conta |
| `page`      | int  | Não         | Página (padrão 1)                      |
| `perPage`   | int  | Não         | Itens por página (padrão 10, máx 50)   |

Resposta `200`: lista de objetos com `financialManagerId`, `name`, `parameters` (dados abaixo), `isDefault`, `isEnabled`, `createdAt`, `updatedAt`, `accountId`, `accountName`, `organizationId`, `organizationName`.

## Criar

```
POST /api/v1/Admin/FinancialManager
```

```json theme={null}
{
  "accountId": "019f1a8a-7e30-79dd-be6e-a379e4fa4904",
  "name": "Financeiro Principal",
  "isDefault": true,
  "parameters": {
    "name": "Paiva Neto Enterprises",
    "title": "Arquitetura",
    "legalName": "Paiva Neto LTDA",
    "document": "CNPJ",
    "documentNumber": "63629891000160",
    "slug": "paivaneto",
    "email": "financeiro@paivaneto.com.br",
    "phone": "5559978498830",
    "contactName": "Gabriel Xavier",
    "contactPhone": "5579223393757",
    "contactEmail": "gabriel@paivaneto.com.br"
  }
}
```

<ParamField body="accountId" type="uuid">
  Conta dona do responsável. Preenchido automaticamente quando a chave é de Account (`acc_`).
</ParamField>

<ParamField body="name" type="string" required>
  Título de referência do registro (como ele aparece nas listagens).
</ParamField>

<ParamField body="isDefault" type="boolean" required>
  Define o responsável **padrão** da conta — é o padrão que os canais oficiais usam.
</ParamField>

<ParamField body="parameters.legalName" type="string" required>
  Razão social / nome legal. **Deve corresponder ao documento informado.**
</ParamField>

<ParamField body="parameters.document" type="string" required>
  Tipo do documento: `"CPF"` ou `"CNPJ"`.
</ParamField>

<ParamField body="parameters.documentNumber" type="string" required>
  Número do documento, **somente dígitos**.
</ParamField>

<ParamField body="parameters.slug" type="string" required>
  Nome curto para identificação via URL — sempre em minúsculas e sem espaços.
</ParamField>

<ParamField body="parameters.email" type="string" required>
  E-mail oficial da empresa/pessoa (usado nas cobranças).
</ParamField>

<ParamField body="parameters.phone" type="string" required>
  Telefone oficial.
</ParamField>

<ParamField body="parameters.name" type="string">
  Nome de exibição da pessoa ou empresa.
</ParamField>

<ParamField body="parameters.title" type="string">
  Cargo ou setor.
</ParamField>

<ParamField body="parameters.contactName" type="string">
  Pessoa de contato responsável.
</ParamField>

<ParamField body="parameters.contactPhone" type="string">
  Telefone da pessoa de contato.
</ParamField>

<ParamField body="parameters.contactEmail" type="string">
  E-mail da pessoa de contato.
</ParamField>

Resposta `200`: o objeto completo criado (mesmos campos da listagem).

## Obter por id

```
GET /api/v1/Admin/FinancialManager/{id}
```

## Atualizar

```
PUT /api/v1/Admin/FinancialManager/{id}
```

Mesmo corpo do Criar (substituição completa do registro).

## Remover

```
DELETE /api/v1/Admin/FinancialManager/{id}
```

Resposta: `204 No Content`.

## Erros

| Status | Descrição                                         |
| ------ | ------------------------------------------------- |
| `400`  | Validação (lista de erros com `errorCode`)        |
| `401`  | Chave inválida ou recurso fora do escopo da chave |
| `404`  | Responsável não encontrado                        |
