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

# Início rápido da API do Reporter

> Coloque o Reporter em funcionamento: envie seu primeiro template, gere um relatório e baixe o arquivo final com cURL na API do Reporter.

<Tip>
  **Este guia é para desenvolvedores.** Se você procura uma visão de negócio sobre o que o Reporter faz, veja [O que é o Reporter?](/pt/products/reporter/what-is-reporter).
</Tip>

Este guia leva você do envio do primeiro template até o download de um relatório gerado.

## Antes de começar

***

Você precisa de:

* Uma instância do Reporter em execução
* Um token de autenticação válido (se o Access Manager estiver habilitado)
* Um arquivo de template `.tpl` pronto para envio

Todos os exemplos usam `cURL`. Substitua `***` em cada header `Authorization` pelo seu token de autenticação e `https://reporter.example.com` pela URL do seu Reporter.

## Etapa 1: Enviar um template

***

Envie um arquivo `.tpl` que define a estrutura e o conteúdo do seu relatório. O conteúdo do template deve corresponder ao formato de saída selecionado: HTML para `HTML` e `PDF`, XML para `XML`, CSV para `CSV`, e texto não vazio para `TXT`. O arquivo enviado deve ter a extensão `.tpl`.

<Tip>
  Referência da API: [Enviar template](/pt/reference/products/reporter/upload-template)
</Tip>

```bash cURL theme={null}
curl -X POST "https://reporter.example.com/v1/templates" \
 -H "Authorization: Bearer ***" \
 -F "template=@account_summary.tpl" \
 -F "outputFormat=PDF" \
 -F "description=Daily account summary report"
```

```json theme={null}
{
  "id": "0196b270-a315-7137-9408-3f16af2685e1",
  "outputFormat": "pdf",
  "description": "Daily account summary report",
  "fileName": "0196b270-a315-7137-9408-3f16af2685e1.tpl",
  "createdAt": "2026-03-05T10:00:00Z",
  "updatedAt": "2026-03-05T10:00:00Z"
}
```

Salve o `id` do template. Você vai usá-lo para gerar relatórios.

### Formatos de saída suportados

| Formato | Caso de uso                                          |
| ------- | ---------------------------------------------------- |
| `CSV`   | Exportação de dados e integração com planilhas       |
| `XML`   | Dados estruturados e envios regulatórios             |
| `HTML`  | Relatórios visualizáveis no navegador                |
| `PDF`   | Documentos prontos para impressão e compartilhamento |
| `TXT`   | Texto simples e integração com sistemas legados      |

## Etapa 2: Verificar o template

***

Liste seus templates para confirmar que o envio foi bem-sucedido.

<Tip>
  Referência da API: [Listar templates](/pt/reference/products/reporter/list-templates)
</Tip>

```bash cURL theme={null}
curl -X GET "https://reporter.example.com/v1/templates" \
 -H "Authorization: Bearer ***"
```

## Etapa 3: Gerar um relatório

***

Envie uma requisição de geração de relatório com o ID do template e o objeto `filters` obrigatório. Adicione filtros para restringir os dados, ou envie `{}` quando não quiser nenhum filtro.

<Tip>
  Referência da API: [Criar relatório](/pt/reference/products/reporter/create-report)
</Tip>

```bash cURL theme={null}
curl -X POST "https://reporter.example.com/v1/reports" \
 -H "Authorization: Bearer ***" \
 -H "Content-Type: application/json" \
 -d '{
   "templateId": "0196b270-a315-7137-9408-3f16af2685e1",
   "filters": {
     "midaz_onboarding": {
       "account": {
         "created_at": {
           "between": ["2026-03-01", "2026-03-05"]
         }
       }
     }
   }
 }'
```

```json theme={null}
{
  "id": "0196c5c0-5044-724f-95f3-4b32076e7ad7",
  "templateId": "0196b270-a315-7137-9408-3f16af2685e1",
  "templateOutputFormat": "pdf",
  "templateDescription": "Daily account summary report",
  "filters": {
    "midaz_onboarding": {
      "account": {
        "created_at": {
          "between": ["2026-03-01", "2026-03-05"]
        }
      }
    }
  },
  "status": "Processing",
  "metadata": null,
  "completedAt": null,
  "createdAt": "2026-03-05T10:05:00Z",
  "updatedAt": "2026-03-05T10:05:00Z",
  "deletedAt": null
}
```

Salve o `id` do relatório para as próximas etapas.

### Estrutura do filtro

Os filtros seguem o caminho: **fonte de dados > tabela > campo > operador > valores**.

| Operador     | Descrição                          | Exemplo                                       |
| ------------ | ---------------------------------- | --------------------------------------------- |
| `eq`         | Igual a                            | `{ "eq": ["active"] }`                        |
| `gt` / `gte` | Maior que / maior ou igual a       | `{ "gte": ["2026-01-01"] }`                   |
| `lt` / `lte` | Menor que / menor ou igual a       | `{ "lt": [1000] }`                            |
| `between`    | Valor dentro de um intervalo       | `{ "between": ["2026-03-01", "2026-03-31"] }` |
| `in` / `nin` | Valor está / não está em uma lista | `{ "in": ["active", "pending"] }`             |

<Info>
  O campo `filters` é obrigatório. Para gerar um relatório sem filtragem, envie um objeto vazio: `"filters": {}`.
</Info>

## Etapa 4: Verificar o status do relatório

***

A geração do relatório é assíncrona. Consulte o endpoint de status até que o relatório esteja pronto.

<Tip>
  Referência da API: [Verificar status do relatório](/pt/reference/products/reporter/check-report-status)
</Tip>

```bash cURL theme={null}
curl -X GET "https://reporter.example.com/v1/reports/0196c5c0-5044-724f-95f3-4b32076e7ad7" \
 -H "Authorization: Bearer ***"
```

| Status       | Significado                                                                                                            |
| ------------ | ---------------------------------------------------------------------------------------------------------------------- |
| `Processing` | O Reporter está consultando os dados e renderizando o template                                                         |
| `Finished`   | O relatório está pronto para download                                                                                  |
| `Partial`    | Algumas seções de dados tiveram sucesso e outras falharam; o `metadata` do relatório traz os códigos de erro por seção |
| `Error`      | Um erro impediu a geração do relatório.                                                                                |

Aguarde o status `Finished` antes de prosseguir para o download.

## Etapa 5: Baixar o relatório

***

Quando o relatório estiver finalizado, baixe o arquivo gerado.

<Tip>
  Referência da API: [Baixar relatório](/pt/reference/products/reporter/download-report)
</Tip>

```bash cURL theme={null}
curl -X GET "https://reporter.example.com/v1/reports/0196c5c0-5044-724f-95f3-4b32076e7ad7/download" \
 -H "Authorization: Bearer ***" \
 -o account_summary.pdf
```

O Reporter retorna o arquivo com headers `Content-Disposition` que informam o nome e o formato do arquivo.

## Etapa 6: Explorar fontes de dados

***

Para entender quais dados estão disponíveis para seus templates, liste as fontes de dados configuradas. Depois, use `GET /v1/data-sources/{dataSourceId}` para inspecionar o esquema de uma fonte de dados.

<Tip>
  Referência da API: [Listar fontes de dados](/pt/reference/products/reporter/list-data-sources) | [Consultar fonte de dados](/pt/reference/products/reporter/retrieve-data-source)
</Tip>

```bash cURL theme={null}
curl -X GET "https://reporter.example.com/v1/data-sources" \
 -H "Authorization: Bearer ***"
```

A resposta de listagem identifica cada fonte de dados. A resposta de detalhe inclui suas tabelas e campos disponíveis, que você pode referenciar nos seus templates usando a sintaxe `{{ datasource.table.field }}`.

## Prazos e templates

***

A API de Prazos alimenta a gestão de prazos no Console, e você também pode chamá-la diretamente para integrar prazos aos seus próprios sistemas. Para testar `POST /v1/templates`, baixe [um arquivo `.tpl` de amostra](https://drive.google.com/file/d/1i8QP2Uk4ZGMy7Zk28b_c9e2Zwb9i65-X/view?usp=sharing).

## Próximos passos

***

<CardGroup cols={2}>
  <Card title="O que é o Reporter?" icon="circle-info" href="/pt/products/reporter/what-is-reporter">
    Visão completa da sintaxe de templates, tags e filtros.
  </Card>

  <Card title="Formatos de template" icon="file-code" href="/pt/products/reporter/template-examples">
    Exemplos práticos para templates HTML, XML e TXT.
  </Card>

  <Card title="Usando o Reporter" icon="rocket" href="/pt/products/reporter/using-reporter">
    Guia detalhado sobre templates, armazenamento e configuração de fontes de dados.
  </Card>

  <Card title="Tratamento de erros" icon="triangle-exclamation" href="/pt/reference/products/reporter/reporter-error-list">
    Lista completa de códigos de erro e como resolvê-los.
  </Card>
</CardGroup>
