Reconciliation

Reconciliation is the process of matching your internal payment records against the authoritative data from Monnify. A good reconciliation workflow catches discrepancies early, such as missed payments, duplicate records, or settlement shortfalls, before they become accounting problems.

What You Are Reconciling

There are two layers of reconciliation for most merchants:

  1. Transaction-level: Every payment your customers made. Does your database record match what Monnify recorded?
  2. Settlement-level: The net amount credited to your wallet or bank account. Does it match the sum of your transaction fees and settlement amounts?

Step 1 – Pull Your Transactions from Monnify

Use the transaction search API to fetch all transactions for a given period. Paginate through the results to ensure you capture everything.

Step 2 – Compare Against Your Internal Records

For each Monnify transaction, look up the corresponding record in your own database using the paymentReference (your own order/reference ID).

reconcile.js
Discrepancy TypeMeaningAction
MISSING_IN_DBMonnify recorded a payment but your DB has no matching order.Investigate: the webhook may have been missed. Fulfill or refund as appropriate.
AMOUNT_MISMATCHPayment amount differs from your expected order amount.Check for overpayment or partial payment. Refund the excess or chase the balance.
STATUS_MISMATCHMonnify shows PAID but your DB shows PENDING (webhook missed or duplicate).Update your DB and fulfill the order.

Step 3 – Reconcile Settlement Amounts

To verify that the amount credited to your Monnify wallet matches what you expect, sum the settlementAmount field across all paid transactions for a settlement period and compare it against your wallet credit.

settlement-recon.js

Step 4 – Handle Split Payment Reconciliation

If you use Transaction Splitting, each sub-account receives its portion at settlement. Reconcile each sub-account independently by querying its settlement separately or by tracking the incomeSplitConfig you sent when initializing the transaction.

split-recon-example.json

Automating Reconciliation

Run reconciliation as a scheduled job. Daily is the most common cadence, aligned with the 10 PM settlement cycle. A typical setup:

  1. Schedule a job at 11 PM daily (after settlement).
  2. Fetch all Monnify transactions for the day.
  3. Compare against your internal database.
  4. Log or alert on any discrepancies for manual review.
  5. Auto-resolve clear cases (e.g. status mismatches from missed webhooks).

Key API Endpoints for Reconciliation

  1. Search Transactions: GET /api/v1/merchant/transactions/search. Filter by status, date range, or payment method. The from and to parameters accept Unix timestamps in milliseconds.
  2. Verify Single Transaction: GET /api/v2/merchant/transactions/query. Look up a specific transaction by reference.

See the full API Reference for query parameters and response schemas.

Rate this page

How helpful is the content on this page?

Copyright © 2026 Monnify
instagramfacebookicon