You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently, Chainvoice supports exporting a single invoice at a time (CSV/JSON/PDF from the invoice detail drawer), implemented in #136 and shipped in PR #138. There is no way to bulk export multiple invoices at once from the main invoices list page.
Businesses using Chainvoice need bulk export capabilities for:
Exporting monthly/quarterly invoice batches for accounting software (QuickBooks, Xero, Wave)
Tax filing and audits requiring all invoices in a period
Data reconciliation across multiple transactions
Bookkeeping automation pipelines
Exporting invoices one by one when dealing with dozens or hundreds of records is impractical and defeats the purpose of a decentralized, automated invoicing platform.
The first PR (#138) has since been merged, and this issue is the agreed follow-up for part 2.
Proposed Solution
Add bulk export support on the Sent Invoices and Received Invoices list pages, allowing users to select multiple invoices and export them in CSV, JSON, or PDF format.
Export Formats
Format
Description
CSV
All selected invoices in a single .csv file, one row per invoice
JSON
Array of invoice objects exported as a single .json file
PDF
Selected invoices as a multi-page .pdf (one invoice per page)
User Choice: Single File vs. Separate Files
Users should be able to decide how their invoices are packaged on export:
Option A — All in One File (default)
CSV: single file, one row per invoice
JSON: single file, array of all selected invoice objects
PDF: single multi-page PDF, one invoice per page
Option B — Separate Files per Invoice
Each selected invoice is exported as its own individual file
Files are bundled and downloaded as a .zip archive
Invoice data is already decrypted and available in component state on the Sent/Received list pages (frontend/src/page/SentInvoice.jsx, frontend/src/page/ReceivedInvoice.jsx)
Problem
Currently, Chainvoice supports exporting a single invoice at a time (CSV/JSON/PDF from the invoice detail drawer), implemented in #136 and shipped in PR #138. There is no way to bulk export multiple invoices at once from the main invoices list page.
Businesses using Chainvoice need bulk export capabilities for:
Exporting invoices one by one when dealing with dozens or hundreds of records is impractical and defeats the purpose of a decentralized, automated invoicing platform.
Discord thread: https://discord.com/channels/995968619034984528/1328282666335993856/1480964370069717063
The first PR (#138) has since been merged, and this issue is the agreed follow-up for part 2.
Proposed Solution
Add bulk export support on the Sent Invoices and Received Invoices list pages, allowing users to select multiple invoices and export them in CSV, JSON, or PDF format.
Export Formats
.csvfile, one row per invoice.jsonfile.pdf(one invoice per page)User Choice: Single File vs. Separate Files
Users should be able to decide how their invoices are packaged on export:
Option A — All in One File (default)
Option B — Separate Files per Invoice
.ziparchiveinvoice-<id>-<date>.csv / .json / .pdfImplementation Approach
Export Selectedbutton (matching the pattern already introduced in PR feat: implement Export Invoice to JSON/CSV #138)frontend/src/utils/generateInvoiceCSV.js— accept array of invoicesfrontend/src/utils/generateInvoiceJSON.js— accept array of invoicesfrontend/src/utils/generateInvoicePDF.js— batch multi-page PDF generationfrontend/src/utils/invoiceExportHelpers.js— add ZIP bundling helper for separate-file optionBlob+URL.createObjectURL()for client-side downloads (no backend needed)jszip) for the separate-files optionWhy This Matters
Additional Context
frontend/src/utils/generateInvoicePDF.jsfrontend/src/utils/generateInvoiceCSV.jsfrontend/src/utils/generateInvoiceJSON.jsfrontend/src/utils/invoiceExportHelpers.jsfrontend/src/page/SentInvoice.jsx,frontend/src/page/ReceivedInvoice.jsx)