Reconcile payment transactions and turn them into balanced journal entries.
Back-office operations for payment operators, deployed in your own environment.
- Working paper
- Sample reconciliation
- Transaction
- LRZ-DEMO-1001
- Data
- Sample, not customer data
Sample data, not customer data
| Internal record | Provider report | Bank statement | |
|---|---|---|---|
| Reference | LRZ-DEMO-1001 | LRZ-DEMO-1001Agreed to provider report | not shown |
| Batch | none | BATCH-0601-A | BATCH-0601-AAgreed to bank statement |
| Gross | ₦5,000.00 | ₦5,000.00Agreed to provider report | not shown |
| Fee | ₦75.00 | ₦75.00Agreed to provider report | not shown |
| Net | ₦4,925.00 | ₦4,925.00Agreed to provider report | ₦4,925.00Agreed to bank statement |
| Date | 1 Jun 2026 | 2 Jun 2026Agreed to provider report | 2 Jun 2026Agreed to bank statement |
| Status | completed | settledAgreed to provider report | creditAgreed to bank statement |
| Journal entry | Debit | Credit |
|---|---|---|
| 1000 Cash / Settlement Asset | 4,925.00 | |
| 5000 Processing Fees | 75.00 | |
| 2000 Customer Liability | 5,000.00 | |
| Total , footed: debits equal credits | 5,000.00 | 5,000.00 |
| Mapping rule | Metro Electric, exact biller | |
| Source | LRZ-DEMO-1001 | |
| Output | Zoho Books manual journal | |
The same payment looks different in every system that records it.
One sample payment, LRZ-DEMO-1001, in four records.
-
Your transaction system
₦5,000.00
The full amount
completed, 1 Jun 2026 -
Provider report
₦4,925.00
Net of fee, a day later
500000,7500,492500,2026-06-02 -
Bank statement
₦7,387.50
One credit for a whole batch
:61:2606020602C7387,50NTRF -
Accounting system
No line
Lost in a monthly total
Manual journal, 30 Jun
Accounting integrations are built for invoices and expenses, not this. So finance closes the gap by hand, and float and wallet balances stay off the books.
Where Ledgerise fits in your stack
It sits between the systems you already run. Adapters handle every connection, so adding a source or an accounting system means adding an adapter, not changing the core.
-
Your transaction systems Webhook, file import, scheduled API poll
1 Ingest
Inbound adapters normalise every source into one standard transaction record.
-
External evidence Provider reports, bank statements
2 Reconcile
Each record is compared with the evidence, using rules you set per report.
Breaks Held with their evidence until resolved, with a type and a note
-
3 Apply your gate
Your posting gate decides what evidence a transaction needs before it can post.
-
4 Generate journals
Mapping rules select the accounts. Debits must equal credits.
Suspense account Unmapped transactions are parked and flagged, never dropped
-
Your accounting system Zoho Books, QuickBooks, Sage, or a journal CSV for systems that import files
5 Post or export
Outbound adapters post to your accounting system or export a journal file.
Audit trail Every rule change, match, break, resolution and posting is recorded, with a path back to the source transaction.
Reconciliation finds what does not agree. Your gate decides what posts.
A run starts when you import a statement. Ledgerise compares it with your internal records for the same scope and period, using the rules you set for that report. What agrees is matched. What does not becomes a break, carrying both sides of the evidence.
Agreed to provider report Agreed to bank statement Rule failed Sample data. The statuses, rule categories and gate results are the product's own.
Case status full_match
Provider and bank evidence both agree with your record. Nothing here needs finance's attention. The bank credit is ₦7,387.50 for the whole batch, and ₦4,925.00 is this payment's share.
| Internal record | Provider report | Bank statement | |
|---|---|---|---|
| Reference | LRZ-DEMO-1001 | LRZ-DEMO-1001Agreed to provider report | not shown |
| Batch | none | BATCH-0601-A | BATCH-0601-AAgreed to bank statement |
| Gross | ₦5,000.00 | ₦5,000.00Agreed to provider report | not shown |
| Fee | ₦75.00 | ₦75.00Agreed to provider report | not shown |
| Net | ₦4,925.00 | ₦4,925.00Agreed to provider report | ₦4,925.00Agreed to bank statement |
| Date | 1 Jun 2026 | 2 Jun 2026Agreed to provider report | 2 Jun 2026Agreed to bank statement |
| Status | completed | settledAgreed to provider report | creditAgreed to bank statement |
What happens at each posting gate setting
- DisabledPosts
- Provider matched or betterPosts
- Bank matched or betterPosts
- Full match or resolvedPosts
With the gate set to Disabled, journals generate from internal records with no evidence required.
Rule trace, provider report
- Agreed to provider report
identityReference matches - Agreed to provider report
amountGross agrees - Agreed to provider report
feeFee agrees with your schedule - Agreed to provider report
dateInside the settlement window - Agreed to provider report
statusSettled against completed - Agreed to provider report
directionCredit on both sides
Rule trace, bank statement
- Agreed to bank statement
identityBatch reference found in narration - Agreed to bank statement
amountCredit equals the batch's net total - Agreed to bank statement
dateValue date inside the window - Agreed to bank statement
directionCredit on both sides
Case status provider_break
The gross agrees, so this is a fee break, not an amount break. Often the provider's fee changed and your schedule has not.
| Internal record | Provider report | Bank statement | |
|---|---|---|---|
| Reference | LRZ-DEMO-1001 | LRZ-DEMO-1001Agreed to provider report | not imported |
| Batch | none | BATCH-0601-A | not imported |
| Gross | ₦5,000.00 | ₦5,000.00Agreed to provider report | not imported |
| Fee | ₦75.00 | ₦100.00 does not agree | not imported |
| Net | ₦4,925.00 | ₦4,900.00 does not agree | not imported |
| Date | 1 Jun 2026 | 2 Jun 2026Agreed to provider report | not imported |
| Status | completed | settledAgreed to provider report | not imported |
What happens at each posting gate setting
- DisabledPosts
- Provider matched or betterHeld
- Bank matched or betterHeld
- Full match or resolvedHeld
Once the break is resolved, every setting posts.
With the gate set to Disabled, journals generate from internal records with no evidence required.
Open breakfee_mismatch
Could close withfee_schedule_updated
Example note: Provider fee rose from 1 June. Schedule updated.
A break cannot close without a resolution type and a note.
Rule trace, provider report
- Agreed to provider report
identityReference matches - Agreed to provider report
amountGross agrees - Failed
fee₦100.00 against a ₦75.00 schedule - Agreed to provider report
dateInside the settlement window - Agreed to provider report
statusSettled against completed - Agreed to provider report
directionCredit on both sides
Rule trace, bank statement
- Not run
identityNo statement imported yet
Case status provider_matched
Provider evidence agrees and the bank statement has not arrived. This is not a break. Your gate setting decides whether the transaction posts now or waits.
| Internal record | Provider report | Bank statement | |
|---|---|---|---|
| Reference | LRZ-DEMO-1001 | LRZ-DEMO-1001Agreed to provider report | not imported |
| Batch | none | BATCH-0601-A | not imported |
| Gross | ₦5,000.00 | ₦5,000.00Agreed to provider report | not imported |
| Fee | ₦75.00 | ₦75.00Agreed to provider report | not imported |
| Net | ₦4,925.00 | ₦4,925.00Agreed to provider report | not imported |
| Date | 1 Jun 2026 | 2 Jun 2026Agreed to provider report | not imported |
| Status | completed | settledAgreed to provider report | not imported |
What happens at each posting gate setting
- DisabledPosts
- Provider matched or betterPosts
- Bank matched or betterHeld
- Full match or resolvedHeld
With the gate set to Disabled, journals generate from internal records with no evidence required.
Rule trace, provider report
- Agreed to provider report
identityReference matches - Agreed to provider report
amountGross agrees - Agreed to provider report
feeFee agrees with your schedule - Agreed to provider report
dateInside the settlement window - Agreed to provider report
statusSettled against completed - Agreed to provider report
directionCredit on both sides
Rule trace, bank statement
- Not run
identityNo statement imported yet
Case status bank_break
The provider says it settled, but the statement shows no credit. The money has not reached you.
| Internal record | Provider report | Bank statement | |
|---|---|---|---|
| Reference | LRZ-DEMO-1001 | LRZ-DEMO-1001Agreed to provider report | not shown |
| Batch | none | BATCH-0601-A | no match |
| Gross | ₦5,000.00 | ₦5,000.00Agreed to provider report | not shown |
| Fee | ₦75.00 | ₦75.00Agreed to provider report | not shown |
| Net | ₦4,925.00 | ₦4,925.00Agreed to provider report | No credit no bank credit found |
| Date | 1 Jun 2026 | 2 Jun 2026Agreed to provider report | no match |
| Status | completed | settledAgreed to provider report | no match |
What happens at each posting gate setting
- DisabledPosts
- Provider matched or betterHeld
- Bank matched or betterHeld
- Full match or resolvedHeld
Once the break is resolved, every setting posts.
With the gate set to Disabled, journals generate from internal records with no evidence required.
Open breakmissing_external
Could close withmatched_late
Example note: Credited 4 June in a later batch.
A break cannot close without a resolution type and a note.
Rule trace, provider report
- Agreed to provider report
identityReference matches - Agreed to provider report
amountGross agrees - Agreed to provider report
feeFee agrees with your schedule - Agreed to provider report
dateInside the settlement window - Agreed to provider report
statusSettled against completed - Agreed to provider report
directionCredit on both sides
Rule trace, bank statement
- Failed
identityNo credit carries this batch reference
How a transaction becomes a journal entry
Follow the biller. Your finance team maintains the mapping rules in the interface, without engineering, and the engine picks the most specific rule for each transaction.
-
1 What came in
A sample electricity payment, stored as a standard record.
The sample transaction as a standard record Standard record Value Amount ₦5,000.00 Provider fee ₦75.00 Biller Metro Electric Category electricity Product line utilities -
2 Which rule applies
The engine tries the most specific rule first and stops at the first match.
- Tried first: this billerMetro ElectricRule found. It selects accounts 1000, 5000 and 2000.
- Then: this categoryelectricityNot needed
- Then: this product lineutilitiesNot needed
- If nothing matches9999 SuspensePosted there and flagged for review
-
3 What gets posted
The rule selects the accounts. Debits must equal credits.
Journal entry generated from the sample transaction. Debits equal credits. Journal entry Debit Credit 1000 Cash / Settlement Asset 4,925.00 5000 Processing Fees 75.00 2000 Customer Liability 5,000.00 Total , footed: debits equal credits 5,000.00 5,000.00
- A transaction that already has a journal entry is not picked up again.
- Records from test environments are stored but never posted.
- A reversal generates a mirror entry when the original was already posted.
- Failed postings retry, then wait for someone to act on them.
Built for damaged files, audits and changing rules
Statements are checked before they are committed
Ledgerise reads CSV, delimited, XLSX, XML, fixed-width text, MT940 and MT942. The preview says what it found and proposes a correction where one exists. Nothing is repaired silently, and an accepted correction is saved for the next file.
- Dates look transposed
value_date reads as month first.
Proposed: read as day first
- Currency written as a word
Naira in 1,240 rows.
Proposed: use NGN
- Reference rounded
3.3E+11 no longer identifies a transaction.
Fix the source file
- Scope
This run will see 1,240 internal transactions.
Sample preview.
Every decision leaves a record
Rule changes, matches, breaks, resolutions and postings are written to the audit log. Auditors get read-only access, and evidence exports carry the run, rule trace, status, break and audit trail the operator reviewed.
Statement imported, run started Finance
feerule raisedfee_mismatchEngineFee schedule updated, with a note Finance
Break resolved:
fee_schedule_updatedFinanceJournal entry generated from mapping rule Engine
Posted to Zoho Books Adapter
Rules belong to finance, per report
A settlement report and a bank statement need different reference fields, fee logic and date windows, so each saved report source has its own rule set. Every change is logged with who made it and what changed.
- Identity
- reference = provider_reference
- Amount tolerance
- NGN 1.00
- Fee
- 1.5% of gross
- Settlement window
- 2 days
- Duplicate key
- reference + value_date
Sample rule set. Ten rule categories are available.
Import reports, export journals
Generic adapters connect the systems that can send a webhook, produce a supported file or expose a JSON API. We confirm coverage for your setup during scoping.
Inbound: records and reports
Webhook
JSON payloads pushed from your internal systems.
File import
Statements and exports, checked before they are committed.
- CSV
- Delimited
- XLSX
- XML
- Fixed-width
- MT940
- MT942
API poll
Scheduled fetch from a JSON API, resuming from the last good run.
Your own source
Assessed during scoping when the generic adapters do not cover it.
Outbound: accounting systems
Zoho Books
Manual journals posted over OAuth 2.0.
QuickBooks
Journal entries posted to QuickBooks.
Sage
Journal entries posted to Sage.
Journal CSV
Batches exported for accounting systems that import files.
It runs on your infrastructure, under your control
Ledgerise is a licensed Docker deployment for your own cloud account or on-premise environment. It does not host your transaction data, your database or your credentials. Here is what goes out.
Your infrastructure
- Ledgerise A versioned Docker image you update at your own pace
- Your PostgreSQL database Transactions, evidence, rules, journals and audit log
- Your backups and storage Under your existing controls
- Your credentials Encrypted at rest, under a key you generate and manage
-
To Ledgerise
A daily licence check-in carrying usage counts only. No transaction rows, amounts, customer identities or journal entries.
-
To your accounting system
The journal entries you post, using credentials you hold. Export to a file instead, and nothing is sent.
-
To your AI provider, only if you enable it
AI is optional and suggests rather than decides. Point it at a model on your own network and this crossing stays inside.
Ledger Assurance
A managed reconciliation service from the Ledgerise team, in early access.
Ledgerise is the software you license and run. Ledger Assurance is for operators who would rather have the monthly work done for them.
Ask about Ledger AssuranceReconcile
We match your internal records against provider reports and bank statements.
Track exceptions
Exceptions stay in one workspace until they are resolved.
Keep adapters working
We maintain connections, file formats and provider rules, so finance is not waiting on IT when a report changes.
Generate journals
We generate entries from reconciled transactions and maintain the mapping between your products, chart of accounts, fees and reversals.
Close the period
At month end, we provide completeness checks, exception clearance reports and journal reviews.
Hand over audit-ready outputs
Reconciliation outputs and an audit trail your auditors can follow.
Questions that come up early
Is Ledgerise an accounting system?
No. It does not keep a general ledger or produce financial statements. It sends journal entries to the accounting system you already use.
Does it replace our accountants?
No. It automates the mechanical work of matching and posting. Judgement calls, period-end adjustments and financial analysis stay with your team, and a person resolves every break that rules do not.
Is every journal reconciled first?
That is your decision. The posting gate can require provider evidence, bank evidence or a full match. It can also be turned off, in which case journals generate from internal records alone.
Can Ledgerise host it for us?
Not today. Ledgerise is licensed for deployment on infrastructure you control. A managed cloud version is not currently offered.
Does our data leave our environment?
Only in the ways the deployment section sets out: usage counts to Ledgerise, journal entries to your accounting system if you post to one, and redacted context to an AI provider if you enable it.
What does beta mean here?
Ledgerise is pre-1.0 and under active development. We confirm exactly what is covered for your systems during scoping.
What does implementation involve?
It is a scoped services engagement rather than a self-service install. It covers your sources and reports, adapter setup, your chart of accounts, mapping rules, validation against historical transactions, and go-live.
Tell us how transactions reach your books today.
Bring your sources, your provider reports and your accounting system. We will walk you through reconciliation runs, report rules, breaks, journal batches and adapters, and tell you whether Ledgerise fits.
Book a demoWhat happens next
- Scoping Your systems, volumes and accounting setup, and whether the generic adapters cover them.
- Agreement Licence, services and support scope.
- Deployment and configuration Adapters, chart of accounts and mapping rules, validated against your historical transactions.
- Go-live Live data, close monitoring, then training and a runbook for your team.