Where bookkeepers meet JSON
- Payment processor and marketplace exports (orders, payouts, fees).
- API responses from invoicing, payroll or e-commerce apps.
- Webhook logs to reconcile against bank deposits.
Once it's a CSV, you can merge it with other exports or open it as a clean spreadsheet with CSV to Excel.
Example
Two payout records like these:
[
{ "id": "po_1", "amount": 1520.4, "fees": { "card": 41.2 }, "tags": ["march", "us"] },
{ "id": "po_2", "amount": 980, "fees": { "card": 26.5 } }
]become a CSV with the columns id, amount, fees.card and tags. The second record gets an empty tags cell, and the first has march; us.
Reconciling processor payouts
Payment processors deposit a net amount: sales minus fees and refunds. Their API exports or webhook logs show the detail. Convert them to CSV, total the gross and fee columns per payout, and compare the net with the deposits on your bank statement. Record the fees as an expense so the bank account reconciles to the cent.
If the conversion fails
- Invalid JSON: a missing comma or quote stops the whole file. The error message shows where; logs copied from a terminal sometimes contain extra lines at the start or end.
- One record per line (NDJSON) instead of an array: wrap the lines in
[ ]and add commas between them. - Records nested deep inside an object: if the top level is an object, the tool uses its first list, such as
dataoritems.