Skip to content

CoinPay CLI v0.10.0: reports you can hand to an accountant

Choose a tag to compare

@ralyodio ralyodio released this 12 Sep 15:19
af97a58

coinpay finances can now produce a monthly, quarterly or custom-period activity report from your linked bank and card accounts, and keep the bank's own PDF statement next to it.

Reports. coinpay finances report --period 2026-08 --format pdf --output ./2026-08.pdf (or --period 2026-Q2, or --from/--to with an exclusive end). Periods are real calendar periods in your saved IANA timezone, never a rolling 30 or 90 days. Every report is an immutable revision generated on the server from one database snapshot, with totals summed exactly (no floating point anywhere), per currency, never combined. Each one says plainly that it was generated by CoinPay from imported account data and is not an institution-issued statement, and carries three separate facts: whether every local row made it into the export, how much of the period the provider was ever asked for (unknown, partial or available_window_fetched), and whether it has been reconciled. PDF, HTML, CSV and JSON are all rendered from the same frozen dataset; CSV neutralises spreadsheet formula prefixes.

Backfills. coinpay finances backfill --period 2026-Q2 --wait fetches a whole quarter in calendar-month chunks with a five-day overlap, as a durable job that resumes after a crash and pauses when the daily provider budget runs out (20 requests per credential, 16 of them for background work, four kept for you). coinpay finances coverage shows what was ever fetched per account. Reading a job or a report never spends a provider request.

Statements. coinpay finances statements import ./august.pdf --account <id> --period 2026-08 keeps the original PDF, encrypted, beside the account and period you say it covers. Nothing is read out of it and nobody claims it is verified. statements reconcile checks the printed opening and closing balances against a report revision with exact arithmetic; a match plus your acknowledgement records "user reconciled", never "bank verified".

Connecting. coinpay finances connect --provider simplefin prompts for the setup token without echo, or reads it from --setup-token-stdin; a token on the command line is refused so it never lands in shell history. disconnect <id> --yes stops syncs and drops the credential but keeps history; consent <id> on opts into a once-daily background sync.

SDK. New @profullstack/coinpay/finances-reports module (createFinanceReport, waitForFinanceReport, downloadFinanceReport, createBackfillJob, getFinanceCoverage, importFinanceStatement, reconcileFinanceStatement) and CoinPayClient.requestBinary() / requestForm(). listAllFinanceTransactions now forwards endDate.

Exit codes for the new subcommands: 0 done or job accepted, 2 invalid input, 3 strict or completeness rejection, 4 authentication, 5 provider or storage failure. With --json, stdout carries only the result.

Install or update: curl -fsSL https://coinpayportal.com/install.sh | sh, or npm i @profullstack/coinpay@0.10.0. Docs: docs/FINANCES-REPORTS.md and docs/STATEMENTS.md.