Skip to content

Reports & branding

Reports (PDF client statements)

POST /v1/reports

json
{ "investor_id":"inv_…", "type":"client_statement",
  "period_start":"2026-01-01", "period_end":"2026-03-31",
  "sections":["summary","performance","holdings","trades"], "locale":"en" }

Returns {report_id, state:"pending"}. Omitted sections = all; disclosures are always appended (regulatory). The PDF is generated asynchronously, sealed under the tenant's key before storage (the store holds ciphertext only), and retained ≥ 7 years.

GET /v1/reports/{id} · /download

state: pending → generating → ready | failed. GET …/download streams the PDF (409 REPORT_NOT_READY until ready; 410 REPORT_PURGED after retention). Every download is written to the hash-chained audit log.

Branding (statement theme)

GET/PUT /v1/branding sets the tenant's statement theme: display_name, primary_color/accent_color (strict #rrggbb), font (from the embedded set), footer_text, and a logo (PUT /v1/branding/logo, raw image ≤ 512 KiB).

Embedded investing infrastructure for the Egyptian Exchange. Sandbox runs on simulated money.