---
title: "Generar reporte descargable"
method: POST
path: "/download"
tags: ["Downloads"]
deprecated: true
---

# Generar reporte descargable

`POST /download`

## Request

- Base URL: `https://api.trytoku.com`
- URL: `https://api.trytoku.com/download`
- Auth: API key in header `x-api-key`

> **Deprecated.**

Genera un reporte de la entidad indicada y devuelve la URL firmada para descargarlo.

El reporte se construye con los filtros del payload, se sube a almacenamiento y la respuesta trae la URL de descarga junto con `dataAvailable`, que indica si hubo registros que exportar. Cuando la consulta no arroja datos la URL queda vacía y `dataAvailable` es `false`.

Si el payload incluye `user_email` o `external_emails`, además se envía el reporte por correo a esas direcciones. La generación es sincrónica: la respuesta llega recién cuando el archivo está listo, así que en reportes de gran volumen la llamada puede tardar varios segundos.

## Request body

- DownloadRequest
  - `custom_params` object
  - `date_range` 'CURRENT_DAY' | 'PREVIOUS_DAY' | 'LAST_WEEK' | 'LAST_7DAYS' | 'CURRENT_MONTH' | 'LAST_MONTH' | 'LAST_30DAYS' | 'LAST_3MONTHS' | 'LAST_12MONTHS': Rango de fechas relativo a un día de referencia: hoy, salvo que la ejecución indique otro. Los dos extremos son inclusivos.
  - `detail_metadata` object
  - `entity` 'bank_account_verification' | 'billing' | 'campaign' | 'card_verification' | 'customer' | 'customer_portal_event' | 'interaction_event' | 'invoice' | 'message' | 'payment' | 'payment_v2' | 'payment_intent' | 'payment_method' | 'payout' | 'payout_v2' | 'subscription' | 'ticket' | 'payment_method_inscription_intent' | 'pac_inscription_intent' | 'payout_additional' | 'campaign_customer' | 'campaign_invoice' | 'transfer_cl_activation' | 'electronic_signature_document' | 'chargeback' | 'chargeback_v2' | 'temporary_collection_file' | 'recipient_verification' | 'conversations_ai_agent' | 'forum_notification' | 'payout_disbursement' | 'beneficiary_account' | 'payout_batch' | 'reconciliation', required: Conjunto de datos que se exporta. Cada valor apunta a un reporte distinto, con sus propias columnas y hojas, así que es lo que determina la forma del archivo resultante. Es un catálogo que crece al publicar reportes nuevos, y no todos los valores están disponibles para toda organización: algunos dependen de sus permisos y otros exigen parámetros adicionales. Los valores terminados en `_v2` no son otro formato del mismo reporte, sino una versión que lee un modelo de datos más nuevo, con columnas y hojas distintas.
  - `exclude` string[]
  - `external_emails` string[]
  - `filters` ModelsDownloadRequestFilter[]
    - `criteria` 'lt' | 'gt' | 'le' | 'ge' | 'eq' | 'neq' | 'in' | 'not_in' | 'is', required: Operador con que un filtro compara una columna del reporte contra el valor entregado: `lt` y `gt` son menor y mayor estrictos, `le` y `ge` los mismos pero incluyendo la igualdad, `eq` y `neq` son igual y distinto, `in` y `not_in` esperan una lista y filtran por pertenecer o no a ella, e `is` compara contra un valor exacto.
    - `field` string, required
    - `source_table` string
    - `value` unknown, required
  - `get_soft_deleted` boolean
  - `id_campaign` string
  - `include_detail` boolean
  - `notification_context` NotificationContext
    - `additional_info` object
    - `type` 'outbound_campaign_summary' | 'upload_payment_reminder' | 'metrics_notification' | 'whatsapp_template_status_update' | 'new_open_ticket' | 'new_user_invitation' | 'new_user_invited' | 'failed_webhook' | 'direct_debit_load_reminder' | 'bank_account_verification_report' | 'deleted_mails_notification' | 'failed_creation_cat_payment_methods' | 'failed_creation_cards_batch_mx_payment_methods' | 'failed_creation_atoa_batch_mx_payment_methods' | 'batch_mx_status_update' | 'pac_authorization_reminder' | 'download_result' | 'upload_result' | 'custom_message' | 'reset_password' | 'conversation_human_handover_summary' | 'etl_process_success' | 'etl_process_partial' | 'etl_process_failed' | 'etl_file_not_received': All available notification types
    - `user_emails_to_notify` string[]
  - `timezone` string
  - `timezone_offset` integer
  - `user_email` string

## Response `200`

Successful Response

- ReportDownloadResponse: Resultado de la generación de un reporte descargable.
  - `dataAvailable` boolean, required: Indica si el reporte contiene datos. Es `false` cuando la consulta no arrojó registros.
  - `url` string, required: URL firmada de descarga del reporte, con vigencia limitada. Queda vacía cuando no hubo datos que exportar.

## Other responses

- `401`: Faltan las credenciales o son inválidas.
- `403`: No tienes acceso a este recurso.
- `404`: El recurso solicitado no existe.
- `422`: El cuerpo de la petición no pasó la validación.
- `429`: Se superó el límite de peticiones permitidas.

## Changes

- **2026-11-03** `a6ef070075b1`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/trytoku/apis/toku-api/changes/download/post.md)

---

[API](https://skmtc.dev/trytoku/apis/toku-api.md) - [All operations](https://skmtc.dev/trytoku/apis/toku-api/llms.txt) - [OpenAPI document](https://skmtc.dev/trytoku/apis/toku-api/revisions/a6ef070075b1?raw)
