> ## 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.

# Inicio rápido de la API de Reporter

> Pon Reporter en marcha: carga tu primera plantilla, genera un informe y descarga el resultado final con cURL contra la API de Reporter.

<Tip>
  **Esta guía es para desarrolladores.** Si buscas una descripción general en el nivel de negocio de lo que hace Reporter, consulta [¿Qué es Reporter?](/es/products/reporter/what-is-reporter).
</Tip>

Esta guía te lleva desde cargar tu primera plantilla hasta descargar un informe generado.

## Antes de empezar

***

Necesitas:

* Una instancia de Reporter en ejecución
* Un token de autenticación válido (si Access Manager está habilitado)
* Un archivo de plantilla `.tpl` listo para cargar

Todos los ejemplos usan `cURL`. Reemplaza `***` en cada encabezado `Authorization` con tu token de autenticación y `https://reporter.example.com` con la URL de tu Reporter.

## Paso 1: Cargar una plantilla

***

Carga un archivo `.tpl` que defina la estructura y el contenido de tu informe. El contenido de la plantilla debe coincidir con el formato de salida seleccionado: HTML para `HTML` y `PDF`, XML para `XML`, CSV para `CSV`, y texto no vacío para `TXT`. El archivo cargado debe tener la extensión `.tpl`.

<Tip>
  Referencia de la API: [Cargar plantilla](/es/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"
}
```

Guarda el `id` de la plantilla. Lo usarás para generar informes.

### Formatos de salida admitidos

| Formato | Caso de uso                                               |
| ------- | --------------------------------------------------------- |
| `CSV`   | Exportaciones de datos e integración con hojas de cálculo |
| `XML`   | Datos estructurados y presentaciones regulatorias         |
| `HTML`  | Informes visibles en el navegador                         |
| `PDF`   | Documentos listos para imprimir y compartir               |
| `TXT`   | Texto plano e integración con sistemas heredados          |

## Paso 2: Verificar la plantilla

***

Lista tus plantillas para confirmar que la carga se completó correctamente.

<Tip>
  Referencia de la API: [Listar plantillas](/es/reference/products/reporter/list-templates)
</Tip>

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

## Paso 3: Generar un informe

***

Envía una solicitud de generación de informe con el ID de la plantilla y el objeto `filters` obligatorio. Agrega filtros para acotar los datos, o envía `{}` cuando no quieras ningún filtro.

<Tip>
  Referencia de la API: [Crear informe](/es/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
}
```

Guarda el `id` del informe para los pasos siguientes.

### Estructura de los filtros

Los filtros siguen la ruta: **fuente de datos > tabla > campo > operador > valores**.

| Operador     | Descripción                   | Ejemplo                                       |
| ------------ | ----------------------------- | --------------------------------------------- |
| `eq`         | Igual a                       | `{ "eq": ["active"] }`                        |
| `gt` / `gte` | Mayor que / mayor o igual que | `{ "gte": ["2026-01-01"] }`                   |
| `lt` / `lte` | Menor que / menor o igual que | `{ "lt": [1000] }`                            |
| `between`    | Valor dentro de un rango      | `{ "between": ["2026-03-01", "2026-03-31"] }` |
| `in` / `nin` | Valor en / no en una lista    | `{ "in": ["active", "pending"] }`             |

<Info>
  El campo `filters` es obligatorio. Para generar un informe sin filtrar, envía un objeto vacío: `"filters": {}`.
</Info>

## Paso 4: Verificar el estado del informe

***

La generación de informes es asíncrona. Consulta el endpoint de estado hasta que el informe esté listo.

<Tip>
  Referencia de la API: [Verificar el estado del informe](/es/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 ***"
```

| Estado       | Significado                                                                                                                  |
| ------------ | ---------------------------------------------------------------------------------------------------------------------------- |
| `Processing` | Reporter está consultando los datos y generando la plantilla                                                                 |
| `Finished`   | El informe está listo para descargar                                                                                         |
| `Partial`    | Algunas secciones de datos tuvieron éxito y otras fallaron; el `metadata` del informe lleva los códigos de error por sección |
| `Error`      | Un error impidió que se generara el informe.                                                                                 |

Espera a que el estado sea `Finished` antes de continuar con la descarga.

## Paso 5: Descargar el informe

***

Una vez que el informe está terminado, descarga el archivo generado.

<Tip>
  Referencia de la API: [Descargar informe](/es/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
```

Reporter devuelve el archivo con encabezados `Content-Disposition` que indican el nombre y el formato.

## Paso 6: Explorar las fuentes de datos

***

Para entender qué datos están disponibles para tus plantillas, lista las fuentes de datos configuradas. Luego usa `GET /v1/data-sources/{dataSourceId}` para inspeccionar el esquema de una fuente de datos.

<Tip>
  Referencia de la API: [Listar fuentes de datos](/es/reference/products/reporter/list-data-sources) | [Consultar fuente de datos](/es/reference/products/reporter/retrieve-data-source)
</Tip>

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

La respuesta de listado identifica cada fuente de datos. La respuesta de detalle incluye sus tablas y campos disponibles, que puedes referenciar en tus plantillas con la sintaxis `{{ datasource.table.field }}`.

## Plazos y plantillas

***

La API de Plazos impulsa la gestión de plazos en la Console, y también puedes llamarla directamente para integrar los plazos en tus propios sistemas. Para probar `POST /v1/templates`, descarga [un archivo `.tpl` de ejemplo](https://drive.google.com/file/d/1i8QP2Uk4ZGMy7Zk28b_c9e2Zwb9i65-X/view?usp=sharing).

## Próximos pasos

***

<CardGroup cols={2}>
  <Card title="¿Qué es Reporter?" icon="circle-info" href="/es/products/reporter/what-is-reporter">
    Descripción general completa de la sintaxis de plantillas, las etiquetas y los filtros.
  </Card>

  <Card title="Formatos de plantilla" icon="file-code" href="/es/products/reporter/template-examples">
    Ejemplos prácticos de plantillas HTML, XML y TXT.
  </Card>

  <Card title="Uso de Reporter" icon="rocket" href="/es/products/reporter/using-reporter">
    Guía detallada sobre plantillas, almacenamiento y configuración de fuentes de datos.
  </Card>

  <Card title="Gestión de errores" icon="triangle-exclamation" href="/es/reference/products/reporter/reporter-error-list">
    Lista completa de códigos de error y cómo resolverlos.
  </Card>
</CardGroup>
