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

One sample transaction, LRZ-DEMO-1001, tied across its internal record, provider report and bank statement
Internal recordProvider reportBank statement
ReferenceLRZ-DEMO-1001LRZ-DEMO-1001Agreed to provider reportnot shown
BatchnoneBATCH-0601-ABATCH-0601-AAgreed to bank statement
Gross₦5,000.00₦5,000.00Agreed to provider reportnot shown
Fee₦75.00₦75.00Agreed to provider reportnot shown
Net₦4,925.00₦4,925.00Agreed to provider report₦4,925.00Agreed to bank statement
Date1 Jun 20262 Jun 2026Agreed to provider report2 Jun 2026Agreed to bank statement
StatuscompletedsettledAgreed to provider reportcreditAgreed to bank statement
Journal entry generated from the sample transaction. Debits equal credits.
Journal entryDebitCredit
1000 Cash / Settlement Asset4,925.00
5000 Processing Fees75.00
2000 Customer Liability5,000.00
Total , footed: debits equal credits5,000.005,000.00
Agreed to provider report Agreed to bank statement Footed: debits equal credits The bank credit is ₦7,387.50 for the batch. ₦4,925.00 is this payment's share.

The same payment looks different in every system that records it.

One sample payment, LRZ-DEMO-1001, in four records.

  1. Your transaction system

    ₦5,000.00

    The full amount

    completed, 1 Jun 2026
  2. Provider report

    ₦4,925.00

    Net of fee, a day later

    500000,7500,492500,2026-06-02
  3. Bank statement

    ₦7,387.50

    One credit for a whole batch

    :61:2606020602C7387,50NTRF
  4. 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.

  1. Your transaction systems Webhook, file import, scheduled API poll

    1 Ingest

    Inbound adapters normalise every source into one standard transaction record.

  2. 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. 3 Apply your gate

    Your posting gate decides what evidence a transaction needs before it can post.

  4. 4 Generate journals

    Mapping rules select the accounts. Debits must equal credits.

    Suspense account Unmapped transactions are parked and flagged, never dropped

  5. 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.

Choose a sample case to tie out

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.

Everything agrees: sample transaction across three records
Internal recordProvider reportBank statement
ReferenceLRZ-DEMO-1001LRZ-DEMO-1001Agreed to provider reportnot shown
BatchnoneBATCH-0601-ABATCH-0601-AAgreed to bank statement
Gross₦5,000.00₦5,000.00Agreed to provider reportnot shown
Fee₦75.00₦75.00Agreed to provider reportnot shown
Net₦4,925.00₦4,925.00Agreed to provider report₦4,925.00Agreed to bank statement
Date1 Jun 20262 Jun 2026Agreed to provider report2 Jun 2026Agreed to bank statement
StatuscompletedsettledAgreed to provider reportcreditAgreed 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

  1. Agreed to provider reportidentityReference matches
  2. Agreed to provider reportamountGross agrees
  3. Agreed to provider reportfeeFee agrees with your schedule
  4. Agreed to provider reportdateInside the settlement window
  5. Agreed to provider reportstatusSettled against completed
  6. Agreed to provider reportdirectionCredit on both sides

Rule trace, bank statement

  1. Agreed to bank statementidentityBatch reference found in narration
  2. Agreed to bank statementamountCredit equals the batch's net total
  3. Agreed to bank statementdateValue date inside the window
  4. Agreed to bank statementdirectionCredit 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.

Fee differs: sample transaction across three records
Internal recordProvider reportBank statement
ReferenceLRZ-DEMO-1001LRZ-DEMO-1001Agreed to provider reportnot imported
BatchnoneBATCH-0601-Anot imported
Gross₦5,000.00₦5,000.00Agreed to provider reportnot imported
Fee₦75.00₦100.00 does not agreenot imported
Net₦4,925.00₦4,900.00 does not agreenot imported
Date1 Jun 20262 Jun 2026Agreed to provider reportnot imported
StatuscompletedsettledAgreed to provider reportnot 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

  1. Agreed to provider reportidentityReference matches
  2. Agreed to provider reportamountGross agrees
  3. Failedfee₦100.00 against a ₦75.00 schedule
  4. Agreed to provider reportdateInside the settlement window
  5. Agreed to provider reportstatusSettled against completed
  6. Agreed to provider reportdirectionCredit on both sides

Rule trace, bank statement

  1. Not runidentityNo 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.

Bank not in yet: sample transaction across three records
Internal recordProvider reportBank statement
ReferenceLRZ-DEMO-1001LRZ-DEMO-1001Agreed to provider reportnot imported
BatchnoneBATCH-0601-Anot imported
Gross₦5,000.00₦5,000.00Agreed to provider reportnot imported
Fee₦75.00₦75.00Agreed to provider reportnot imported
Net₦4,925.00₦4,925.00Agreed to provider reportnot imported
Date1 Jun 20262 Jun 2026Agreed to provider reportnot imported
StatuscompletedsettledAgreed to provider reportnot 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

  1. Agreed to provider reportidentityReference matches
  2. Agreed to provider reportamountGross agrees
  3. Agreed to provider reportfeeFee agrees with your schedule
  4. Agreed to provider reportdateInside the settlement window
  5. Agreed to provider reportstatusSettled against completed
  6. Agreed to provider reportdirectionCredit on both sides

Rule trace, bank statement

  1. Not runidentityNo statement imported yet

Case status bank_break

The provider says it settled, but the statement shows no credit. The money has not reached you.

No bank credit: sample transaction across three records
Internal recordProvider reportBank statement
ReferenceLRZ-DEMO-1001LRZ-DEMO-1001Agreed to provider reportnot shown
BatchnoneBATCH-0601-Ano match
Gross₦5,000.00₦5,000.00Agreed to provider reportnot shown
Fee₦75.00₦75.00Agreed to provider reportnot shown
Net₦4,925.00₦4,925.00Agreed to provider reportNo credit no bank credit found
Date1 Jun 20262 Jun 2026Agreed to provider reportno match
StatuscompletedsettledAgreed to provider reportno 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

  1. Agreed to provider reportidentityReference matches
  2. Agreed to provider reportamountGross agrees
  3. Agreed to provider reportfeeFee agrees with your schedule
  4. Agreed to provider reportdateInside the settlement window
  5. Agreed to provider reportstatusSettled against completed
  6. Agreed to provider reportdirectionCredit on both sides

Rule trace, bank statement

  1. FailedidentityNo 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. 1 What came in

    A sample electricity payment, stored as a standard record.

    The sample transaction as a standard record
    Standard recordValue
    Amount₦5,000.00
    Provider fee₦75.00
    BillerMetro Electric
    Categoryelectricity
    Product lineutilities
  2. 2 Which rule applies

    The engine tries the most specific rule first and stops at the first match.

    1. Tried first: this billerMetro ElectricRule found. It selects accounts 1000, 5000 and 2000.
    2. Then: this categoryelectricityNot needed
    3. Then: this product lineutilitiesNot needed
    4. If nothing matches9999 SuspensePosted there and flagged for review
  3. 3 What gets posted

    The rule selects the accounts. Debits must equal credits.

    Journal entry generated from the sample transaction. Debits equal credits.
    Journal entryDebitCredit
    1000 Cash / Settlement Asset4,925.00
    5000 Processing Fees75.00
    2000 Customer Liability5,000.00
    Total , footed: debits equal credits5,000.005,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.

Import preview gateway-settlement-june.xlsx
  • 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.

  1. Statement imported, run started Finance

  2. fee rule raised fee_mismatch Engine

  3. Fee schedule updated, with a note Finance

  4. Break resolved: fee_schedule_updated Finance

  5. Journal entry generated from mapping rule Engine

  6. Posted to Zoho Books Adapter

Sample log.

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.

Report source Gateway Settlement Report
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.

Ledgerise One standard record in. Balanced journals out.

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 Assurance
  1. Reconcile

    We match your internal records against provider reports and bank statements.

  2. Track exceptions

    Exceptions stay in one workspace until they are resolved.

  3. Keep adapters working

    We maintain connections, file formats and provider rules, so finance is not waiting on IT when a report changes.

  4. Generate journals

    We generate entries from reconciled transactions and maintain the mapping between your products, chart of accounts, fees and reversals.

  5. Close the period

    At month end, we provide completeness checks, exception clearance reports and journal reviews.

  6. 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 demo

What happens next

  1. Scoping Your systems, volumes and accounting setup, and whether the generic adapters cover them.
  2. Agreement Licence, services and support scope.
  3. Deployment and configuration Adapters, chart of accounts and mapping rules, validated against your historical transactions.
  4. Go-live Live data, close monitoring, then training and a runbook for your team.

Or send us the details

No spam. We'll reach out personally. See our privacy policy.