Skip to main content
Billing reports support usage, ledger, statement and funding. Exports are read-only. Their schema version is 1.4.2. The selected immutable snapshot and filters determine the financial rows; there is no hidden truncation or maximum-row omission. Larger files are generated asynchronously.

JSON

JSON files contain schema_version, report_type, snapshot_id, as_of and a rows array. The row schema matches the corresponding API resource. Empty results use rows: []. Amounts remain decimal strings with two digits after the decimal point, and nullable values remain JSON null. Resource IDs and record versions are preserved.

CSV

CSV files use UTF-8 without a byte-order mark, comma delimiters, CRLF line endings and RFC 4180 quoting. The first row contains the exact ordered headers below. Empty results contain that header row only. Null is an empty cell; an actual empty text value is not permitted for these reporting fields. Dates use the API’s UTC representation; amounts use a period decimal separator without currency symbols or thousands separators. Every data row starts with export_schema_version, export_snapshot_id and export_as_of. Arrays or objects, if present in a future compatible row schema, use compact JSON in a quoted cell. Text beginning with a spreadsheet formula character (=, +, -, @, tab or carriage return) is prefixed with a single quote. Validated numeric decimal fields retain their minus sign without escaping. Consumers should treat text cells as data, not evaluate formulas.

Schemas, samples and columns

The examples share the endpoint fixture: CAD 12,000.00 funded before October, then CAD 3.00 Signal and CAD 5.00 Insights consumption in October. October funding is therefore an empty export. The ledger export contains only the two movements in the selected October window.

Usage

JSON Schema · JSON example · CSV example

Ledger

JSON Schema · JSON example · CSV example

Statement

JSON Schema · JSON example · CSV example

Funding

JSON Schema · JSON example · CSV example

Delivery and verification

Download links require a ready, unexpired report. Verify SHA-256 over the exact downloaded bytes before parsing. Content types are application/json or text/csv; charset=utf-8; filenames identify report ID, type and extension. A failed generation returns status: failed and a safe failure_code, not a partial file marked ready. An expired report requires a new export of the same saved snapshot and filters. Do not silently substitute today’s data. File-delivery URLs and job timestamps can change; financial rows and schema remain reproducible. Workspace deletion removes access, so retain required exports before closure.