Reconciliation Reports
NjiaPay provides a suite of reconciliation reports that help you verify every transaction processed through your account matches what your payment service providers (PSPs) report on their end. These reports are available as CSV downloads from the Merchant Portal under the Reconciliation tab.
Why Reconciliation Matters
When you process payments through NjiaPay, the flow involves multiple systems:
Each system keeps its own records. Reconciliation is the process of cross-checking NjiaPay's records against the PSP's settlement files to make sure:
- Every successful payment in NjiaPay also appears in the PSP settlement
- The amounts match (no discrepancies in what was charged vs. what was settled)
- You can account for PSP fees, currency conversions, and net payouts
- No transactions are missing on either side
Available Reports
NjiaPay generates four reconciliation reports, each serving a different purpose in your monthly close process:
NjiaPay Transactions
All successful transactions recorded by NjiaPay. Your single source of truth for what was processed.
Successful Payments
Every successful payment with its reconciliation status: matched against PSP settlement data or still awaiting confirmation. Includes side-by-side amounts, fees, and break flags.
Guides
Timezone Settings
How the timezone selector affects which transactions appear in each month and how timestamps are displayed in exports.
Example Workbook
Download this example Excel workbook to see how the four reconciliation reports look in practice, with sample data and ready-made analysis sheets:
Download Example Workbook (.xlsx)
The workbook contains six sheets:
| Sheet | What it contains |
|---|---|
| njia_transactions | Sample data from the NjiaPay Transactions report: 80 successful payments across multiple currencies and PSPs. |
| matched_success_tx | Sample data from the Successful Payments report: the same 80 payments with PSP matching status, fees, net amounts, and break flags. Includes both matched and unmatched rows. |
| matched_other_tx | Sample data from the Refunds, Chargebacks & Pending report: pending checkouts, refunds, and chargebacks. |
| psp_non_tx | Sample data from the Fees & Settlements report: merchant payouts, processing fees, and dispute holds from Adyen and PayPal. |
| Reconciliation KPIs | A dashboard sheet with formulas that calculate key metrics: match rate, total volume per currency, unmatched amounts, and PSP fee totals. Use this as a template for your own monthly summary. |
| Inconsistency Finder | An analysis sheet that automatically flags transactions with amount breaks, currency mismatches, or other anomalies. Adapt the formulas to your own data. |
Open the workbook in Excel or Google Sheets and explore the formulas in the last two sheets to understand how they reference the report data. You can use these sheets as starting templates for your own reconciliation process.
Typical Reconciliation Workflow
Here is how a finance team typically uses these reports each month:
Step 1: Upload PSP Settlement Files
Before downloading reports, make sure you have uploaded PSP settlement data for the month. Check the coverage timeline. Your goal is a fully blue bar for each PSP.
Step 2: Start with NjiaPay Transactions
Download the NjiaPay Transactions report for your period. This gives you the complete list of successful payments. Use it as your master checklist.
Step 3: Review Successful Payments Reconciliation
Download the Successful Payments report. This contains every successful payment along with its reconciliation status. Filter by exists_in_psp:
Truerows are matched: both NjiaPay and the PSP agree. Check thebreak_gross_amountcolumn:Falsemeans the amounts agree,Truemeans investigate.Falserows are unmatched: the PSP settlement hasn't been received yet. Common reasons: settlement file not yet uploaded, transaction too recent, or the PSP doesn't have settlement integration yet (e.g. StartButton).
Step 4: Review Refunds, Chargebacks & Pending
Download the Refunds, Chargebacks & Pending report. This shows non-success transactions: payments still in Pending state (customer may have abandoned checkout), refunds, and chargebacks. Use this to:
- Track your checkout drop-off rate (pending items)
- Reconcile refund amounts against your records
- Monitor chargeback exposure
Step 5: Account for Fees & Settlements
Download the Fees & Settlements report. This shows PSP-level items that are not tied to individual transactions: batch payouts to your bank account, monthly processing fees, dispute holds and releases, and currency conversion charges.
Step 6: Cross-check Totals
Use a pivot table or SUMIFS in your spreadsheet to compare:
| Check | Formula Idea |
|---|---|
| Total NjiaPay volume | =SUMIFS(njia_transactions[amount], njia_transactions[currency], "USD") |
| Total matched volume | =SUMIFS(success[njia_amount], success[njia_currency], "USD", success[exists_in_psp], "True") |
| Unmatched volume | =SUMIFS(success[njia_amount], success[njia_currency], "USD", success[exists_in_psp], "False") |
| Net after fees | =SUMIFS(success[psp_net_amount], success[psp_net_currency], "USD") |
| Settlement payouts | =SUMIFS(fees[net_amount], fees[transaction_type], "MerchantPayout", fees[net_currency], "USD") |
How Reports Are Generated
NjiaPay's reconciliation engine runs daily. It:
- Collects all successful NjiaPay transactions for the selected period
- Imports PSP settlement files (uploaded via the portal)
- Matches each NjiaPay transaction to its PSP counterpart using the PSP reference ID
- Classifies each record as: successful payment (matched or unmatched), non-success item (refund/chargeback/pending), or operational entry (fees/settlements)
- Outputs the four CSV reports
Column Conventions
Across all reports, you will notice these conventions:
- Amounts in major units. All amounts are shown in the main currency unit (e.g.
10.00means ten dollars, not 1000 cents). Some reports also include a_minor_unitscolumn with the raw cent value for precision. - Timestamps follow your timezone. CSV exports use the timezone from the timezone selector, locked to the offset at the start of the selected month. If no timezone is explicitly selected, it defaults to your browser's locale timezone.
njia_prefix: columns from NjiaPay's side of the ledger.psp_prefix: columns from the PSP settlement file.break_prefix: discrepancy flags.Truemeans the values don't match between NjiaPay and PSP;Falsemeans they agree.exists_in_njia/exists_in_psp: boolean flags showing whether a transaction was found on each side.