> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://ajuda.groner.app/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# API Monitoramento — alertas, diagnóstico, relatórios e rateio

Referência de **Monitoramento** para integrar as operações descritas abaixo.

[Guia principal e downloads](https://ajuda.groner.app/pt-br/article/documentacao-da-api-groner-crm-vz2bq2/) · [Exemplos](#2-exemplos-de-requisicao-e-resposta) · [Endpoints](#2-referencia-dos-endpoints)

|| Revisão: **14/10/2026**. Classificação conferida nos clients dos produtos e nas rotas registradas do servidor. Respostas abaixo são exemplos completos do contrato escolhido com dados fictícios, não capturas de produção.

## Índice clicável

[Alertas e notificações — alerts](#3-alertas-e-notificacoes-alerts) · [Indicadores — analytics](#3-indicadores-analytics) · [Planos e faturamento do Monitoramento — billing](#3-planos-e-faturamento-do-monitoramento-billing) · [Créditos do Monitoramento — credits](#3-creditos-do-monitoramento-credits) · [Diagnóstico — diagnostics](#3-diagnostico-diagnostics) · [Importação de faturas por e-mail — faturas-email](#3-importacao-de-faturas-por-e-mail-faturas-email) · [Conjuntos de regras de alerta — alert-rule-sets](#3-conjuntos-de-regras-de-alerta-alert-rule-sets) · [Carteiras de usinas — portfolios](#3-carteiras-de-usinas-portfolios) · [Rateio de energia — rateio](#3-rateio-de-energia-rateio) · [Relatórios — reports](#3-relatorios-reports) · [Faturas de energia — energy-bills](#3-faturas-de-energia-energy-bills) · [Concessionárias e tarifas — utilities](#3-concessionarias-e-tarifas-utilities)

---

## Como usar esta referência

**API de Monitoramento de usinas:** `https://monitoramento.groner.app` (host). As rotas incluem `/api/v1`. Use `MONITORAMENTO_URL` com esse host, sem `/api/v1`. Tenant é resolvido pelo token do ecossistema nas operações correspondentes. Resposta comum: `success`, `data`, `timestamp`; algumas actions omitem timestamp. Rotas legadas de faturamento indicadas abaixo têm guard próprio.

Substitua tenant/token pelo ambiente autorizado e IDs de exemplo pelos cadastros reais. Os comandos são Bash; no PowerShell use `curl.exe` e adapte variáveis e continuação de linha.

**Recursos compartilhados:** a organização segue a finalidade principal da operação, não exclusividade de produto. Um client consumir um controller não significa que todas as actions desse controller sejam liberadas para aquele usuário. Consulte guard e contrato.

## Exemplos de requisição e resposta

### Consultar eventos de alerta

**Requisição completa (Bash):**

```bash
curl --request GET \
  --url "$MONITORAMENTO_URL/api/v1/alerts/events?page=1&limit=20" \
  --header "Authorization: Bearer $TOKEN" \
  --header "Accept: application/json"
```

**Resposta ilustrativa — HTTP 200:**

```json
{
  "success": true,
  "data": {
    "data": [],
    "total": 0,
    "page": 1,
    "limit": 20,
    "totalPages": 0,
    "hasNextPage": false,
    "hasPreviousPage": false
  },
  "timestamp": 1791979200000
}
```

### Consultar resumo dos alertas

**Requisição completa (Bash):**

```bash
curl --request GET \
  --url "$MONITORAMENTO_URL/api/v1/alerts/stats" \
  --header "Authorization: Bearer $TOKEN" \
  --header "Accept: application/json"
```

**Resposta ilustrativa — HTTP 200:**

```json
{
  "success": true,
  "data": {
    "byStatus": {},
    "bySeverity": {}
  },
  "timestamp": 1791979200000
}
```

Alertas automáticos de equipamento são deste host. O cadastro `AbaComplementar/Monitoramento` no CRM não devolve curvas nem substitui `/plants`, `/readings` ou `/alerts`. Relatórios, rateio, diagnósticos e planos ficam separados das rotas de financeiro do ERP.

---

## Referência dos endpoints

### Alertas e notificações — alerts

#### `GET /api/v1/alerts/rules`

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

O corpo/filtro é validado no handler; confirme a operação no Swagger/contrato implantado antes de enviar campos adicionais.

[Voltar ao índice](#2-indice-clicavel)

#### `POST /api/v1/alerts/rules`

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

O corpo/filtro é validado no handler; confirme a operação no Swagger/contrato implantado antes de enviar campos adicionais.

[Voltar ao índice](#2-indice-clicavel)

#### `GET /api/v1/alerts/rules/:ruleId`

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

O corpo/filtro é validado no handler; confirme a operação no Swagger/contrato implantado antes de enviar campos adicionais.

[Voltar ao índice](#2-indice-clicavel)

#### `PATCH /api/v1/alerts/rules/:ruleId`

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

O corpo/filtro é validado no handler; confirme a operação no Swagger/contrato implantado antes de enviar campos adicionais.

[Voltar ao índice](#2-indice-clicavel)

#### `DELETE /api/v1/alerts/rules/:ruleId`

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

O corpo/filtro é validado no handler; confirme a operação no Swagger/contrato implantado antes de enviar campos adicionais.

[Voltar ao índice](#2-indice-clicavel)

#### `GET /api/v1/alerts/events`

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

O corpo/filtro é validado no handler; confirme a operação no Swagger/contrato implantado antes de enviar campos adicionais.

[Voltar ao índice](#2-indice-clicavel)

#### `GET /api/v1/alerts/events/:eventId`

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

O corpo/filtro é validado no handler; confirme a operação no Swagger/contrato implantado antes de enviar campos adicionais.

[Voltar ao índice](#2-indice-clicavel)

#### `POST /api/v1/alerts/events/:eventId/acknowledge`

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

O corpo/filtro é validado no handler; confirme a operação no Swagger/contrato implantado antes de enviar campos adicionais.

[Voltar ao índice](#2-indice-clicavel)

#### `POST /api/v1/alerts/events/:eventId/resolve`

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

O corpo/filtro é validado no handler; confirme a operação no Swagger/contrato implantado antes de enviar campos adicionais.

[Voltar ao índice](#2-indice-clicavel)

#### `GET /api/v1/alerts/notifications/config`

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

O corpo/filtro é validado no handler; confirme a operação no Swagger/contrato implantado antes de enviar campos adicionais.

[Voltar ao índice](#2-indice-clicavel)

#### `PUT /api/v1/alerts/notifications/config`

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

O corpo/filtro é validado no handler; confirme a operação no Swagger/contrato implantado antes de enviar campos adicionais.

[Voltar ao índice](#2-indice-clicavel)

#### `GET /api/v1/alerts/notifications/usuarios`

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

O corpo/filtro é validado no handler; confirme a operação no Swagger/contrato implantado antes de enviar campos adicionais.

[Voltar ao índice](#2-indice-clicavel)

#### `GET /api/v1/alerts/notifications/instancias`

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

O corpo/filtro é validado no handler; confirme a operação no Swagger/contrato implantado antes de enviar campos adicionais.

[Voltar ao índice](#2-indice-clicavel)

#### `GET /api/v1/alerts/notifications/templates`

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

O corpo/filtro é validado no handler; confirme a operação no Swagger/contrato implantado antes de enviar campos adicionais.

[Voltar ao índice](#2-indice-clicavel)

#### `POST /api/v1/alerts/notifications/test`

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

O corpo/filtro é validado no handler; confirme a operação no Swagger/contrato implantado antes de enviar campos adicionais.

[Voltar ao índice](#2-indice-clicavel)

#### `GET /api/v1/alerts/stats`

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

O corpo/filtro é validado no handler; confirme a operação no Swagger/contrato implantado antes de enviar campos adicionais.

[Voltar ao índice](#2-indice-clicavel)

### Indicadores — analytics

#### `GET /api/v1/analytics/dashboard`

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

O corpo/filtro é validado no handler; confirme a operação no Swagger/contrato implantado antes de enviar campos adicionais.

[Voltar ao índice](#2-indice-clicavel)

#### `GET /api/v1/analytics/generation`

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

O corpo/filtro é validado no handler; confirme a operação no Swagger/contrato implantado antes de enviar campos adicionais.

[Voltar ao índice](#2-indice-clicavel)

#### `GET /api/v1/analytics/performance`

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

O corpo/filtro é validado no handler; confirme a operação no Swagger/contrato implantado antes de enviar campos adicionais.

[Voltar ao índice](#2-indice-clicavel)

#### `GET /api/v1/analytics/comparison`

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

O corpo/filtro é validado no handler; confirme a operação no Swagger/contrato implantado antes de enviar campos adicionais.

[Voltar ao índice](#2-indice-clicavel)

#### `POST /api/v1/analytics/export`

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

O corpo/filtro é validado no handler; confirme a operação no Swagger/contrato implantado antes de enviar campos adicionais.

[Voltar ao índice](#2-indice-clicavel)

### Planos e faturamento do Monitoramento — billing

#### `GET /api/v1/billing/plans`

**Acesso:** JWT legado do Monitoramento; não assumir intercâmbio com o token do ecossistema.

O corpo/filtro é validado no handler; confirme a operação no Swagger/contrato implantado antes de enviar campos adicionais.

[Voltar ao índice](#2-indice-clicavel)

#### `GET /api/v1/billing/current`

**Acesso:** JWT legado do Monitoramento; não assumir intercâmbio com o token do ecossistema.

O corpo/filtro é validado no handler; confirme a operação no Swagger/contrato implantado antes de enviar campos adicionais.

[Voltar ao índice](#2-indice-clicavel)

#### `GET /api/v1/billing/usage`

**Acesso:** JWT legado do Monitoramento; não assumir intercâmbio com o token do ecossistema.

O corpo/filtro é validado no handler; confirme a operação no Swagger/contrato implantado antes de enviar campos adicionais.

[Voltar ao índice](#2-indice-clicavel)

#### `GET /api/v1/billing/invoices`

**Acesso:** JWT legado do Monitoramento; não assumir intercâmbio com o token do ecossistema.

O corpo/filtro é validado no handler; confirme a operação no Swagger/contrato implantado antes de enviar campos adicionais.

[Voltar ao índice](#2-indice-clicavel)

#### `POST /api/v1/billing/upgrade`

**Acesso:** JWT legado do Monitoramento; não assumir intercâmbio com o token do ecossistema.

O corpo/filtro é validado no handler; confirme a operação no Swagger/contrato implantado antes de enviar campos adicionais.

[Voltar ao índice](#2-indice-clicavel)

### Créditos do Monitoramento — credits

#### `GET /api/v1/credits/saldo`

Saldo de créditos do tenant

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

[Voltar ao índice](#2-indice-clicavel)

#### `GET /api/v1/credits/extrato`

Extrato (histórico) de créditos

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

[Voltar ao índice](#2-indice-clicavel)

#### `GET /api/v1/credits/pacotes`

Pacotes de crédito à venda

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

[Voltar ao índice](#2-indice-clicavel)

#### `GET /api/v1/credits/compras`

Pedidos de compra de crédito (com status)

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

[Voltar ao índice](#2-indice-clicavel)

#### `POST /api/v1/credits/comprar`

Inicia a compra de um pacote (checkout)

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

[Voltar ao índice](#2-indice-clicavel)

### Diagnóstico — diagnostics

#### `POST /api/v1/diagnostics/plants/:plantId`

Gera o diagnóstico por IA da usina

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

[Voltar ao índice](#2-indice-clicavel)

#### `GET /api/v1/diagnostics/plants/:plantId/latest`

Último diagnóstico salvo da usina

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

[Voltar ao índice](#2-indice-clicavel)

### Importação de faturas por e-mail — faturas-email

#### `GET /api/v1/faturas-email`

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

O corpo/filtro é validado no handler; confirme a operação no Swagger/contrato implantado antes de enviar campos adicionais.

[Voltar ao índice](#2-indice-clicavel)

#### `POST /api/v1/faturas-email/:id/reprocessar`

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

O corpo/filtro é validado no handler; confirme a operação no Swagger/contrato implantado antes de enviar campos adicionais.

[Voltar ao índice](#2-indice-clicavel)

### Conjuntos de regras de alerta — alert-rule-sets

#### `GET /api/v1/alert-rule-sets`

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

O corpo/filtro é validado no handler; confirme a operação no Swagger/contrato implantado antes de enviar campos adicionais.

[Voltar ao índice](#2-indice-clicavel)

#### `POST /api/v1/alert-rule-sets`

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

O corpo/filtro é validado no handler; confirme a operação no Swagger/contrato implantado antes de enviar campos adicionais.

[Voltar ao índice](#2-indice-clicavel)

#### `PUT /api/v1/alert-rule-sets/:id`

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

O corpo/filtro é validado no handler; confirme a operação no Swagger/contrato implantado antes de enviar campos adicionais.

[Voltar ao índice](#2-indice-clicavel)

#### `DELETE /api/v1/alert-rule-sets/:id`

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

O corpo/filtro é validado no handler; confirme a operação no Swagger/contrato implantado antes de enviar campos adicionais.

[Voltar ao índice](#2-indice-clicavel)

#### `POST /api/v1/alert-rule-sets/preview`

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

O corpo/filtro é validado no handler; confirme a operação no Swagger/contrato implantado antes de enviar campos adicionais.

[Voltar ao índice](#2-indice-clicavel)

### Carteiras de usinas — portfolios

#### `GET /api/v1/portfolios/public/:token`

Página pública do portfólio (link)

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

[Voltar ao índice](#2-indice-clicavel)

#### `GET /api/v1/portfolios`

Lista os portfólios do tenant

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

[Voltar ao índice](#2-indice-clicavel)

#### `POST /api/v1/portfolios`

Cria um portfólio

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

[Voltar ao índice](#2-indice-clicavel)

#### `PUT /api/v1/portfolios/:id`

Atualiza um portfólio

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

[Voltar ao índice](#2-indice-clicavel)

#### `DELETE /api/v1/portfolios/:id`

Remove um portfólio

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

[Voltar ao índice](#2-indice-clicavel)

### Rateio de energia — rateio

#### `GET /api/v1/rateio/plants/:plantId/allocation/prefill`

Conferência e pré-preenchimento das faturas, sem gravação

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

[Voltar ao índice](#2-indice-clicavel)

#### `POST /api/v1/rateio/plants/:plantId/allocation/simulate`

Simulação de energia por prioridade (sem gravação)

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

[Voltar ao índice](#2-indice-clicavel)

#### `GET /api/v1/rateio/plants/:plantId/consumer-units`

Lista as UCs da usina

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

[Voltar ao índice](#2-indice-clicavel)

#### `POST /api/v1/rateio/plants/:plantId/consumer-units`

Cria uma UC

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

[Voltar ao índice](#2-indice-clicavel)

#### `POST /api/v1/rateio/plants/:plantId/consumer-units/detect`

Cria as UCs a partir das contas de energia extraídas

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

[Voltar ao índice](#2-indice-clicavel)

#### `POST /api/v1/rateio/plants/:plantId/consumer-units/merge-renumbered`

Detecta e funde UCs renumeradas pela distribuidora (?dry_run=1 simula)

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

[Voltar ao índice](#2-indice-clicavel)

#### `POST /api/v1/rateio/plants/:plantId/consumer-units/merge`

Funde duas UCs manualmente (from_id vira código anterior de into_id)

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

**body:** `from_id` (string obrigatório); `into_id` (string obrigatório).

[Voltar ao índice](#2-indice-clicavel)

#### `PATCH /api/v1/rateio/plants/:plantId/consumer-units/:ucId`

Edita uma UC

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

[Voltar ao índice](#2-indice-clicavel)

#### `DELETE /api/v1/rateio/plants/:plantId/consumer-units/:ucId`

Remove uma UC

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

[Voltar ao índice](#2-indice-clicavel)

#### `GET /api/v1/rateio/plants/:plantId/allocation`

Rateio vigente da usina

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

[Voltar ao índice](#2-indice-clicavel)

#### `PUT /api/v1/rateio/plants/:plantId/allocation`

Grava o rateio (Σ% ≤ 100)

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

[Voltar ao índice](#2-indice-clicavel)

#### `GET /api/v1/rateio/plants/:plantId/allocation/report`

Relatório de rateio do mês

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

[Voltar ao índice](#2-indice-clicavel)

### Relatórios — reports

#### `GET /api/v1/reports/public/logo/:tenantId`

Logo do relatório (redireciona p/ URL assinada)

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

[Voltar ao índice](#2-indice-clicavel)

#### `GET /api/v1/reports/public/:token`

Página pública do relatório (link)

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

[Voltar ao índice](#2-indice-clicavel)

#### `GET /api/v1/reports/public/:token/pdf`

Relatório em PDF (download pelo mesmo token do link)

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

[Voltar ao índice](#2-indice-clicavel)

#### `GET /api/v1/reports/plants/:plantId/config`

Config do relatório da usina

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

[Voltar ao índice](#2-indice-clicavel)

#### `PUT /api/v1/reports/plants/:plantId/config`

Atualiza a config do relatório

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

[Voltar ao índice](#2-indice-clicavel)

#### `POST /api/v1/reports/plans/:planId/apply-config`

Aplica a mesma config de relatório a todas as usinas do plano (não envia nada)

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

[Voltar ao índice](#2-indice-clicavel)

#### `POST /api/v1/reports/plants/:plantId/send-now`

Gera o relatório e envia ao cliente agora (manual)

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

[Voltar ao índice](#2-indice-clicavel)

#### `POST /api/v1/reports/plants/:plantId/generate`

Gera o relatório e guarda na lista como "Gerado", sem enviar ao cliente

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

[Voltar ao índice](#2-indice-clicavel)

#### `POST /api/v1/reports/plants/:plantId/preview`

Gera a PRÉVIA do relatório e devolve o link público (não envia nada)

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

[Voltar ao índice](#2-indice-clicavel)

#### `GET /api/v1/reports/deliveries`

Relatórios gerados e envios (lista e métricas)

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

[Voltar ao índice](#2-indice-clicavel)

#### `POST /api/v1/reports/deliveries/:deliveryId/regenerate`

Regera o relatório de um envio no mesmo link (mesmo ciclo/modelo)

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

[Voltar ao índice](#2-indice-clicavel)

#### `POST /api/v1/reports/deliveries/:deliveryId/send`

Envia ao cliente um relatório gerado (mesmo link e mesmo PDF)

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

[Voltar ao índice](#2-indice-clicavel)

#### `GET /api/v1/reports/branding`

Aparência do relatório (cores/logo/textos)

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

[Voltar ao índice](#2-indice-clicavel)

#### `PUT /api/v1/reports/branding`

Atualiza a aparência do relatório

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

[Voltar ao índice](#2-indice-clicavel)

#### `POST /api/v1/reports/branding/logo`

Upload do logo do relatório (PNG/JPG/WEBP/GIF)

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

[Voltar ao índice](#2-indice-clicavel)

#### `GET /api/v1/reports/preview`

Preview do relatório com o branding atual

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

[Voltar ao índice](#2-indice-clicavel)

#### `GET /api/v1/reports/templates/variables`

Catálogo de variáveis disponíveis nos modelos

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

[Voltar ao índice](#2-indice-clicavel)

#### `GET /api/v1/reports/templates`

Modelos de relatório do tenant

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

[Voltar ao índice](#2-indice-clicavel)

#### `POST /api/v1/reports/templates`

Cria um modelo de relatório

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

[Voltar ao índice](#2-indice-clicavel)

#### `PUT /api/v1/reports/templates/:templateId`

Atualiza um modelo de relatório

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

[Voltar ao índice](#2-indice-clicavel)

#### `DELETE /api/v1/reports/templates/:templateId`

Remove um modelo de relatório

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

[Voltar ao índice](#2-indice-clicavel)

#### `GET /api/v1/reports/templates/:templateId/preview`

Preview do modelo com dados de exemplo ou de uma usina

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

[Voltar ao índice](#2-indice-clicavel)

### Faturas de energia — energy-bills

#### `POST /api/v1/energy-bills/extract-fields`

Extrai os campos de cadastro (PascalCase) de uma conta de energia via IA, sem usina e sem persistir

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

[Voltar ao índice](#2-indice-clicavel)

#### `POST /api/v1/energy-bills/analyze-url`

Analisa uma conta de energia a partir da URL do storage do CRM e devolve os 14 campos do contrato do webhook n8n (resposta crua, sem envelope). Custa 1 crédito. Responde 422 NOT_AN_ENERGY_BILL se o documento não for uma conta.

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

**body:** `documentoUrl` (string obrigatório).

[Voltar ao índice](#2-indice-clicavel)

### Concessionárias e tarifas — utilities

#### `GET /api/v1/utilities`

List utility connections

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

[Voltar ao índice](#2-indice-clicavel)

#### `GET /api/v1/utilities/:id`

Get utility connection by id

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

[Voltar ao índice](#2-indice-clicavel)

#### `POST /api/v1/utilities`

Create utility connection

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

[Voltar ao índice](#2-indice-clicavel)

#### `PATCH /api/v1/utilities/:id`

Update utility connection

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

[Voltar ao índice](#2-indice-clicavel)

#### `DELETE /api/v1/utilities/:id`

Delete utility connection

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

[Voltar ao índice](#2-indice-clicavel)

#### `POST /api/v1/utilities/:id/test`

Test utility connection

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

[Voltar ao índice](#2-indice-clicavel)

#### `POST /api/v1/utilities/:id/sync`

Trigger utility sync

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

[Voltar ao índice](#2-indice-clicavel)

#### `GET /api/v1/utilities/:id/sync-logs`

Get utility sync logs

**Acesso:** JWT do ecossistema; acesso e tenant conferidos pelo guard da operação.

[Voltar ao índice](#2-indice-clicavel)


<!-- groner-suporte:veja-tambem:inicio -->
## Veja também

* [Guia principal, autenticação e coleção Postman](https://ajuda.groner.app/pt-br/article/documentacao-da-api-groner-crm-vz2bq2/)
* [Como gerar token de API](https://ajuda.groner.app/pt-br/article/como-gerar-um-token-de-api-para-integrar-o-groner-com-outros-sistemas-2okhj6/)
* [Limites de requisições](https://ajuda.groner.app/pt-br/article/limites-de-requisicoes-da-api-da-groner-1cwtj65/)
<!-- groner-suporte:veja-tambem:fim -->