Skip to content

feat(billing): implement subscription export with multiple format support - #1047

Open
ayomideadeniran wants to merge 1 commit into
Smartdevs17:mainfrom
ayomideadeniran:feat/issue-954-subscription-export
Open

feat(billing): implement subscription export with multiple format support#1047
ayomideadeniran wants to merge 1 commit into
Smartdevs17:mainfrom
ayomideadeniran:feat/issue-954-subscription-export

Conversation

@ayomideadeniran

Copy link
Copy Markdown

Summary

Implements comprehensive subscription export with support for multiple accounting and ledger formats including Excel XML (SpreadsheetML), QuickBooks IIF, Open Financial Exchange (OFX), NDJSON, and TSV, with chunked memory-safe streaming.

Key Changes

1. Multi-Format Export Support (backend/services/billing/accountingExportService.ts, src/services/accountingExport.ts)

  • Excel 2003 XML (SpreadsheetML): Generates structured, styled XML spreadsheets with typed cells (String, Number), custom headers, and workbook metadata.
  • QuickBooks IIF (Intuit Interchange Format): Formats double-entry transaction ledgers with !TRNS, !SPL, and !ENDTRNS blocks.
  • Open Financial Exchange (OFX): Builds standard bank statement format with <STMTTRN> blocks, <FITID>, posted timestamps, and debit/credit classifications.
  • NDJSON (Newline-Delimited JSON): Streams line-by-line JSON records for streaming data ingestion.
  • TSV (Tab-Separated Values): Tab-delimited RFC export format.
  • Extended AccountingFormat across frontend, app, and backend interfaces.

2. Streaming & Analytics Engine

  • Updated streamExport and streamExportAsync to support all new format encoders.
  • Updated getExportAnalytics to aggregate download statistics across all supported formats.

3. Tests & Verification

  • Added test coverage in backend/services/billing/__tests__/accountingExportService.test.ts verifying:
    • Excel XML structure and data types
    • QuickBooks IIF header and split records
    • OFX header and transaction nodes
    • NDJSON line serialization
    • TSV tab-delimited formatting

Closes #954

…port

- Added multi-format export encoders for Excel XML (SpreadsheetML), QuickBooks IIF, Open Financial Exchange (OFX), NDJSON, and TSV
- Extended AccountingFormat union across app, frontend and backend services
- Added chunked streaming support for all new formats with custom field mappings
- Added unit tests for each new export format and delimiter handling

Closes Smartdevs17#954
@drips-wave

drips-wave Bot commented Aug 27, 2026

Copy link
Copy Markdown

@ayomideadeniran Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement subscription export with multiple format support

1 participant