PSP settlement reconciliation
Your PSP reports vs. your ledger. Every discrepancy explained.
Reconcio reconciles payment provider settlement reports with your books and shows exactly which payments differ, which are missing and by how much — fees, partial refunds, FX differences, duplicates. Reports from Stripe, Adyen, PayPal and Checkout.com are recognised automatically. Use it in the cloud or run it in your own infrastructure.
No card required: try it on sample files in a minute. Or send us your own files for a free audit.
PSP transactions vs. ledger
CompletedConvergence
99.34%
- Matched
- 10,487
- Mismatched
- 29
- Only in file A
- 26
- Only in file B
- 15
2 keys appear twice in file A — kept out of matches
Amount, totals
difference: 0.01
Reconciliation still lives in spreadsheets
Every month someone exports two files, glues them together with VLOOKUP and scrolls through thousands of rows looking for the ones that don't add up. It is slow, it breaks on volume, and its mistakes are silent.
Typical pairs
- PSP transactionsAccounting ledger
- Bank statementERP
- Marketplace payoutsOrders
Hours of manual work
Column headers differ, formats differ, and the spreadsheet has to be rebuilt every period.
Silent errors
A lookup quietly takes the first of two duplicate rows, and rounding hides a one-cent gap.
Spreadsheets hit a wall
A month of transactions does not fit comfortably in a spreadsheet, let alone two of them.
Free reconciliation audit in 48 hours
Not sure the tool is worth it? Send us one month of a PSP settlement report and the matching ledger export. Within 48 hours you get the list of discrepancies with amounts — and an idea of how much is slipping through today.
Send files for a free auditFiles are deleted right after the audit. NDA on request; anonymised data works too.
Send two files
A settlement report from one provider (Stripe, Adyen, PayPal, Checkout.com or any CSV/XLSX) and your ledger export for the same period.
We reconcile
We run them through Reconcio: fees, partial refunds, FX differences, payments missing on either side, duplicates.
You get the report
A PDF with totals and an Excel file with every discrepancy. No commitment.
How it works
No formulas and no scripts. The same flow works in the web UI and through the API.
- 1
Bring two files
Upload CSV or XLSX exports, or point to files that are already in your S3 storage.
- 2
Choose the columns
Reconcio suggests the key and the columns to compare. Accept them or pick your own.
- 3
Run
The comparison runs on the server: a million transactions take about twenty seconds.
- 4
Review and share
See every discrepancy, download the differences file and the PDF report, or get it by email.
Built for reconciliation that has to be right
Accuracy first, then speed: a reconciliation that is fast but occasionally wrong is worse than a spreadsheet.
Accuracy
Discrepancies are found, not smoothed over.
Exact amounts
64-bit arithmetic: a one-cent difference on 12,345,678.91 is caught, not rounded away.
Headers in any language
Column names in German, Polish, Russian or anything else are read as they are.
Duplicate keys flagged
Rows whose key appears more than once are reported separately and never counted as matched.
Tolerances where reality needs them
Allow a cent of rounding or a day or two between the transaction and the booking date — real discrepancies still stand out.
Smart column suggestion
Reconcio probes a sample of rows and won't propose comparing columns with different vocabularies, like status codes.
Scale, verified
1,000,000 transactions reconciled in about 20 seconds — checked by an automated test on every release.
Workflow
From two exports to an answer you can act on.
CSV, XLSX or S3
Upload files in the browser or create a reconciliation from files already in your S3 buckets.
Results that explain
Convergence, rows only in one file, mismatches per column, totals of amounts and recommendations.
One payout, many orders
Sum rows with the same key on each side: a payout is compared with the total of its orders, a payment with the invoices it covers.
Browse discrepancies
Filter by kind, search by key and see both values side by side, right in the browser — no spreadsheet needed.
Differences file and PDF
Download every discrepancy as CSV, or a PDF report — sent by email automatically when the run is done.
Automation
Recurring reconciliations without opening the UI.
Templates
Save the key and compared columns once. With a template, a reconciliation runs by itself after upload — files in any order.
REST API
Scoped API keys and an OpenAPI description with Swagger UI served by every installation.
Report in your inbox
Export the files, send them to the API with a template, and receive the report by email.
Your data stays in your perimeter
Reconcio is not a cloud service you send your transactions to. It is software you run on your own servers, next to the systems the exports come from.
Runs in your infrastructure
Data never leaves your perimeter. Works air-gapped, with an offline license — no calls home.
Secrets where you keep them
From environment variables, a file, HashiCorp Vault or Infisical.
Files don't pile up
Uploaded files and differences files are deleted after a retention period.
Access control
Two-factor authentication, roles and invitations. The admin console shows users, all reconciliations, background tasks and system health.
Observable
Prometheus metrics and liveness and readiness probes for your monitoring.
Up in a few commands
One Docker image plus the services it relies on. The bundled Docker Compose file brings up the whole stack; database migrations run on start. For a pilot, ClickHouse is optional: files of up to a million rows reconcile in memory, with the same results.
- Reconcio (one image)
- PostgreSQL
- ClickHouse (optional)
- Redis
- S3-compatible storage
For Kubernetes there is a Helm chart.
Docker Compose
cp .env.example .env
./scripts/gen-secrets.sh # DB passwords, JWT keys
docker compose up -d
curl http://localhost:2604/readyzAutomate it end to end
Everything you do in the UI is available through the REST API. Pass a template and the reconciliation starts as soon as the files are uploaded.
- Authorization: Bearer with scoped API keys
- Upload files or reference objects in your S3
- PDF report emailed when the run completes
- Swagger UI at /swagger/index.html on every installation
Upload
curl -X POST https://reconcio.example.com/api/v1/reconciliations/prepare \
-H "Authorization: Bearer $RECONCIO_API_KEY" \
-F file_a=@psp_transactions.csv \
-F file_b=@ledger.xlsx \
-F template_id=3c1e7a52-0b9d-4c64-9f0e-2a7d5b8c4e11 \
-F report_emails=finance@example.comFrom S3
curl -X POST https://reconcio.example.com/api/v1/reconciliations/prepare-from-storage \
-H "Authorization: Bearer $RECONCIO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"file_a": "s3://psp-exports/2026-10/transactions.csv",
"file_b": "s3://erp-exports/2026-10/ledger.xlsx",
"template_id": "3c1e7a52-0b9d-4c64-9f0e-2a7d5b8c4e11"
}'Result
curl https://reconcio.example.com/api/v1/reconciliations/8f2b9d51-f5a8-4b64-8a0d-4c8db2dc6e4f \
-H "Authorization: Bearer $RECONCIO_API_KEY"
{
"id": "8f2b9d51-f5a8-4b64-8a0d-4c8db2dc6e4f",
"status": "completed",
"file_a_rows_count": 10544,
"file_b_rows_count": 10531,
"results": {
"matched_rows_count": 10487,
"mismatched_rows_count": 29,
"missed_rows_count_in_file_b": 26,
"missed_rows_count_in_file_a": 15,
"duplicate_key_rows_count": 2,
"convergence": 0.9934,
"float_column_stat": [
{
"column_name": "amount",
"total_a": 1284903.17,
"total_b": 1284903.16,
"difference": 0.01
}
],
...
}
}Questions
What can Reconcio reconcile?
Any two lists of records that share a key: transaction IDs, invoice numbers, order numbers. Typical pairs are PSP transactions vs. the accounting ledger, bank statement vs. ERP, and marketplace payouts vs. orders. Files are CSV or XLSX.
Does our data leave our infrastructure?
No. Reconcio runs on your servers, stores files in your S3-compatible storage and works without internet access: the license is checked offline.
What do we need to run it?
Docker with Compose, or Kubernetes. The stack is one Reconcio image plus PostgreSQL, Redis and S3-compatible storage; the bundled Compose file brings all of them up. ClickHouse is added for files beyond a million rows — without it, reconciliation runs in memory with the same results.
How large can the files be?
A million transactions reconcile in about 20 seconds; an automated test checks this on every release. The upload size limit is a setting of your installation.
Our two files name the columns differently. Is that a problem?
No. You choose which column of file A corresponds to which column of file B, and Reconcio suggests the pairs for you. Headers can be in any language.
What happens to duplicate keys?
By default a row whose key appears more than once in a file is never counted as matched: it is reported among the discrepancies, with the number of rows each file had. When one record should match several — a payout and its orders — turn on summing rows with the same key, and the totals are compared.
How much does it cost?
In the cloud: Starter at $250 a month, Business at $750 a month, with a 14-day free trial. Self-hosted: an annual license from $3,600 a year, priced on request. See the pricing page; the first audit of your files is free.
See what slips through your reconciliation
Upload a PSP report and your ledger export and get every discrepancy with amounts in minutes. 14 days free, no card required.