GEThttps://api.veriko.mx/v1/finance/statement

Monthly statement (PDF / XLSX / CSV / HTML)

Audience
public
Auth
API key
Permission
finance:generate_self
How-to guide →

Monthly financial statement in four formats:

  • format=pdf (default, application/pdf): bank-statement-style PDF with repeating header and "Page X of Y" footer, portfolio summary, verdict distribution, top counterparties and banks, daily breakdown, and up to 1000 appendix rows.
  • format=xlsx (application/vnd.openxmlformats-officedocument.spreadsheetml.sheet): workbook with 6 sheets (Resumen, Detalle diario, Top contrapartes, Top bancos, Veredicto, Verificaciones). The Verificaciones sheet carries the full monthly ledger uncapped.
  • format=csv (text/csv; charset=utf-8): UTF-8 BOM CSV partitioned into [HEADER], [KPIS], [TRANSACTIONS], and [TOTALS] sections. Keep the order if parsing by marker.
  • format=html (text/html; charset=utf-8): same content as the PDF, served inline for browser-side printing.

All variants return X-Finance-Folio with the deterministic period folio (SHA1(user_id|YYYY-MM|brand_slug)[:12] upper-case). Downloads include X-Frame-Options: DENY and Cache-Control: no-cache, no-store.

Scope: self by default. Admins with finance:generate_all may target another user via ?user_id=<uuid>. The KPIs rendered in the PDF/XLSX come from the same computation as GET /v1/finance/summary; for CEPs as a separate ZIP archive use GET /v1/finance/ceps.

Parameters
ParameterInTypeRequiredDescription
formatquerystringoptional

Statement format. pdf is the document to file or send; xlsx and csv are the same movements as data; html returns the embeddable document, handy for viewing in the browser without downloading it.

Default: pdf

e.g. pdf
month*querystringrequired

Statement month in YYYY-MM format.

e.g. 2026-04
user_idquerystring (uuid)optional

Admins with finance:generate_all only. UUID of the user to query.

e.g. f47ac10b-58cc-4372-a567-0e02b2c3d479
Request
curl -X GET 'https://api.veriko.mx/v1/finance/statement' \
  -H 'Authorization: Bearer veriko_••••'

Python example — coming soon.

JavaScript example — coming soon.

PHP example — coming soon.

Response status codesGET /v1/finance/statement
StatusClassDescriptionBody
2002xxStatement stream in the requested format.No body
4004xxInvalid or missing month parameterErrorResponse
4014xxAuthentication is required or the provided credentials are invalid.ErrorResponse
4034xxInsufficient permissions.ErrorResponse
5005xxpdf_render_failed when dompdf fails (OOM, missing font). xlsx_render_failed when phpspreadsheet fails. csv_stream_failed when php://output cannot be opened. For PDF/XLSX, try another format.ErrorResponse
Response headers200
HeaderTypeDescription
Cache-ControlstringDisables intermediary caching of the download (deterministic folio, but sensitive content).
Content-DispositionstringSuggested filename for the download.
X-Finance-FoliostringDeterministic folio for the period (12 upper-hex chars). The same user+month pair always yields the same folio.
X-Frame-OptionsstringAnti-DoS: downloads do not embed in an iframe.
Errors from GET /v1/finance/statement
StatusCodeExample
400invalid_month

'month' is required and must be YYYY-MM.

Envelope
meta.request_id
d5e6f7a8b9c1
401unauthorized

Invalid or missing authentication credentials.

Envelope
meta.request_id
c4d5e6f7a8b9
403forbidden

You do not have permission to access this resource.

Envelope
meta.request_id
d5e6f7a8b9c0