Reports turn your store’s activity into CSV or JSON files for accounting, reconciliation, and audits. Generation runs in the background. You’ll get an email when it’s ready. Files are kept for 30 days, then deleted.

When to use reports

  • Month-end or quarter-end bookkeeping. Pull a payment activity report for the period and hand it to your accountant.
  • Reconciling a payout against the underlying transactions. Run a payout reconciliation report to see exactly which orders, refunds, and disputes are bundled into each payout.
  • Auditing your balance. Run a balance ledger report to see every credit and debit on your store, including a tamper-evident hash chain.
  • Filing taxes. Payment activity includes the tax we collected and remitted on your behalf, broken down per transaction.

Available reports

Generating a report

Open the Reports page

From the dashboard sidebar, go to Finances → Reports.

Click New Report

Pick the report type, period, and output format(s).

Wait for it to finish

The status column shows Generating while the report is in progress, then flips to Ready when the file is available. Most reports finish in seconds; larger periods can take a few minutes. You can leave the page. We’ll email you when it’s done.

Download

Click the Download button in the Actions column to grab the file.

The reports table shows status, type, period, row count, file size, and how long ago the report was requested. Use the tabs at the top to filter by All / Ready / Generating / Failed.

Period and limits

  • Maximum period: 90 days per report. To export a longer window, run several reports back-to-back (e.g. one per month for a year).
  • Concurrent reports: up to 10 reports can be running at a time per store. If you queue an 11th, you’ll see a message asking you to wait for the current batch to finish.
  • Retention: 30 days from the time you requested it. After that, the file is deleted automatically. Re-run if you need it again.

Output format

CSV

A standard comma-separated file with a UTF-8 byte-order mark so Excel, Numbers, and Google Sheets detect the encoding correctly. The first row is a header; every subsequent row is a record.

Amounts are stored in the smallest currency unit (cents for USD/EUR/GBP, whole yen for JPY, etc.). Divide by 100 to get the major-unit display value for most currencies.

JSON

The same data shaped as a JSON array of objects. Useful if you’re feeding the file into a script, a data warehouse, or a custom BI tool.

Email notifications

We send an email when a report finishes, whether it succeeded or failed, to the email address on your account.

Troubleshooting

Download links are signed for security and expire after 5 minutes. Open the report from the dashboard again and click Download to generate a fresh link.

My report says Failed

We retry a few times before marking a report as failed. When it does fail, the error message in the dashboard explains why (most commonly a transient infrastructure issue). Click Retry to re-queue with the same parameters.

If a report fails repeatedly with the same error, reach out to support with the report ID.

My report doesn’t include a recent transaction

Reports include any record whose created_at falls in the period you selected. If a transaction completed at 23:59 UTC on the last day of your period, it’s included; one at 00:01 UTC the next day is not. Periods are interpreted in UTC.

Can I schedule reports to run automatically?

Not yet. Every report is generated on demand. If you need a recurring export, ask your developer to run the Reports API on a cron job.

API access

Everything described above is also available programmatically. See Reports (Developer guide).