← All workAuth-walled reporting and delivery ledger
Fixledger Report Delivery Pipeline
Fixledger's reporting surface gained an artifact-first delivery ledger, so reconciliation reports can be generated, downloaded, batched, and audited from one record.
- Client
- Fixledger
- Sector
- Financial technology
- Delivered
- 2026
- Access
- Internal tool · Auth-walled
Internal tool · Restricted access

The engagement
This Fixledger platform engagement focused on the auth-walled report artifact and delivery ledger layer behind reconciliation reporting. The verified source shows immutable report artifacts, same-transaction download and batch-download events, paged JSON and CSV ledger exports, and an explicit placeholder for email delivery until recipient sending is configured.
01
The challenge
Client-facing reports could not be treated as disposable downloads. Holdings, performance, billing, quarterly, realized-gains, consolidated, fee-history, comparison, and household package PDFs needed a books-and-records trail that tied the generated artifact, sha256 digest, actor, delivery method, status, and pull-time evidence together.
02
The approach
The backend writes each generated PDF to report_artifact with its parameters and sha256 digest, then records delivery_event rows in the same transaction for download and batch-download paths. The batch API validates up to 20 report requests for one account, rolls the transaction back if any item fails, and returns a ZIP only when the artifact set is internally consistent. The ledger endpoints expose the same bounded filters as JSON and CSV for operators.
10report types
20reports per batch
2ledger export formats
03
Scope of work
- Report artifact model for reconciliation and client-reporting PDFs
- Delivery event model with method, status, recipient, actor, and timestamp fields
- Atomic single-report and batch-download generation paths
- Paged delivery ledger API with account, report type, date, method, and page-size filters
- CSV export using the same ledger query boundaries as the JSON view
04
What we delivered
- report_artifact table storing account, report type, params, generated time, sha256 digest, and supersession fields
- delivery_event table supporting download, batch-download, and email methods with delivered, bounced, and recorded statuses
- Batch download endpoint for 1 to 20 report items in a single transaction
- Delivery ledger JSON endpoint with newest-first paging and filters
- Delivery ledger CSV export with artifact and delivery columns
- Frontend API bindings for authenticated downloads, batch downloads, delivery ledger reads, and CSV export
- 01
Operators can see generated report artifacts and their recorded deliveries without splitting evidence across unrelated surfaces.
- 02
Download and batch-download events are captured with the report artifact instead of after the fact.
- 03
Batch generation fails atomically: one unreportable item prevents partial artifacts and partial delivery records.
- 04
Email delivery is intentionally labeled not yet configured in the source, so the ledger is ready for recipient events without pretending SMTP send is already live.
Built with
- FastAPI
- PostgreSQL
- SQLAlchemy
- ReportLab
- React
- TypeScript