Payment reconciliation software
Automated payment reconciliation, daily
FractionalPay is payment reconciliation software for platforms that split payments: every day it matches charges, refunds, fees, payouts and disputes in your operator account against your ledger and shows only what does not match.
Your controller stops rebuilding the month from exports. The ledger and the operator balance are compared line by line, mismatches arrive as alerts, and each one is resolved with a note that stays in the audit trail.
- Daily run over every balance transaction type
- Mismatch alerts in the dashboard and as a signed webhook
- Resolve with a note, export the period for close
Reconciliation run
Oct 14, 2026 · 3 matched, 2 open
-
txn_3M8Q4KQChargeOperator $1,250.00Ledger $1,250.00Matched
-
txn_3M8R7TAFeeOperator $36.55Ledger $36.55Matched
-
txn_3M8S1PLRefundOperator $200.00Ledger $200.00Matched
-
txn_3M8T9WDDisputeOperator $480.00Ledger noneMissing
-
txn_3M8V2BXPayoutOperator $3,410.00Ledger $3,140.00Mismatch
| Reference | Type | Operator | Ledger | Status |
|---|---|---|---|---|
| txn_3M8Q4KQ | Charge | $1,250.00 | $1,250.00 | Matched |
| txn_3M8R7TA | Fee | $36.55 | $36.55 | Matched |
| txn_3M8S1PL | Refund | $200.00 | $200.00 | Matched |
| txn_3M8T9WD | Dispute | $480.00 | none | Missing |
| txn_3M8V2BX | Payout | $3,410.00 | $3,140.00 | Mismatch |
The problem
Why split payments are hard to reconcile by hand
A platform that splits payments has two versions of the truth. The operator account knows what money came in, what went out and what fees were taken. Your business knows who earned what from each payment. Reconciliation is the work of proving those two agree, and on a platform with sellers, partners and subcontractors it means thousands of lines a month.
The usual process is a spreadsheet. Someone exports balance transactions at month end, exports the payout file, adds a lookup column and hunts for differences. A refund that was recorded at the operator but never reversed in the split, a payout that went out twice after a retry, or a dispute nobody saw until the funds were already withdrawn will each take hours to find, because they surface weeks after they happened.
Automated payment reconciliation moves that check from the last week of the month to every single day. Small differences are caught while the context is fresh, and the month-end close becomes a review of a handful of resolved items instead of a hunt.
- Charges, refunds, fees, payouts and disputes in one run
- Differences found the day after they happen, not at month end
- Every resolution recorded with who, when and why
How reconciliation runs
From operator balance to a clean ledger
Payments land in your own platform account at a licensed payment operator. FractionalPay calculates the splits, keeps the ledger and sends payout instructions to that account. It never holds, pools or transmits funds and it is not a payment institution, so reconciliation compares two records you own: the operator balance and the ledger.
-
01
Mirror operator events
Payments, refunds, disputes and payouts from your connected account are recorded as they happen, idempotently, so a repeated event never creates a second entry.
-
02
Run the daily match
Once a day each balance transaction is matched to its ledger transaction by reference, type and amount, including the operator fee on every charge.
-
03
Flag what is open
Anything with a different amount is a Mismatch, anything present on one side only is Missing. Both raise an alert and fire
reconciliation.mismatch. -
04
Resolve and close
Finance reviews each open item, corrects it or explains it in a note, and the period closes with every line either Matched or Resolved.
Ledger journal
Balanced
txn_3M8S1PL ·Refund of $200.00 on payment order-1250 reversed proportionally
- Payable to Seller Dr$160.00
- Platform revenue Dr$30.00
- Payable to Partner Dr$10.00
- Operator balance (your account) Cr$200.00
TotalDr $200.00 · Cr $200.00
| Account | Debit | Credit |
|---|---|---|
| Payable to Seller | $160.00 | |
| Platform revenue | $30.00 | |
| Payable to Partner | $10.00 | |
| Operator balance (your account) | $200.00 | |
| Total | $200.00 | $200.00 |
Worked example
One day, five lines, two open items
Here is the run from the screen above. Three lines match exactly, including the operator fee of 36.55 USD on the 1,250.00 USD charge. Two lines need a person.
-
Charge txn_3M8Q4KQ
- Operator
- $1,250.00
- Ledger
- $1,250.00
- Status
- Matched
-
Fee txn_3M8R7TA
- Operator
- $36.55
- Ledger
- $36.55
- Status
- Matched
-
Refund txn_3M8S1PL
- Operator
- $200.00
- Ledger
- $200.00
- Status
- Matched
-
Dispute txn_3M8T9WD
- Operator
- $480.00
- Ledger
- none
- Status
- Missing
-
Payout txn_3M8V2BX
- Operator
- $3,410.00
- Ledger
- $3,140.00
- Status
- Mismatch
-
Open items
- Operator
- Ledger
- Status
- 2
The dispute was opened at the operator but the event never reached the ledger, so the split was not reversed. Recording it reverses each share in proportion and the line moves to Resolved. The payout differs by 270.00 USD because a beneficiary's bank details were changed and a manual transfer was sent outside the schedule. The controller links it to the ledger entry and writes a note. Both are fixed on Oct 15, not discovered on Nov 3.
For how the refund and dispute reversal itself works, see split payment API; for payout timing, see marketplace payouts.
Webhook delivery · reconciliation.mismatch
200 delivered
POST https://api.yourplatform.com/hooks/fractionalpay
FractionalPay-Signature: t=1760534400,v1=5257a869e7ec...
{
"id": "evt_c6214db24c2d538c1fd87b17",
"type": "reconciliation.mismatch",
"created": 1760534400,
"livemode": false,
"data": {
"run_id": 1014,
"period_start": "2026-10-14 00:00:00",
"period_end": "2026-10-14 00:00:00",
"item": {
"id": 40871,
"kind": "missing_in_ledger",
"external_id": "txn_3M8T9WD",
"expected_amount": null,
"actual_amount": 48000,
"currency": "USD"
}
}
}Balances at period end
Seller
Northfield Studio
$4,820.00
80%
Payout Oct 31
Partner
Referral program
$610.50
5%
Return window ends Nov 2
For the controller
A month-end close that starts already reconciled
Controllers use FractionalPay to replace the reconciliation tab of the close checklist. By the last day of the month every day has already been matched, so the close is a review: open items, their notes, and the totals per beneficiary that auditors ask for.
The ledger is double-entry and append-only. Corrections are new entries, never edits, so the balance of any beneficiary on any date can be rebuilt and explained. The period exports as CSV on every plan, and Scale adds the accounting journal export and scheduled exports for your general ledger.
- Balances per beneficiary as pending, held, available and paid
- Resolution notes kept with the reconciliation item
- Audit log export and four-eyes payout approvals on Scale
Reconciliation features
What reconciliation includes and on which plan
Reconciliation with mismatch alerts is part of Growth and Scale. Starter already gives you the ledger it reconciles against, so moving up later needs no migration.
Growth is 499 USD a month, or 249 USD a month billed yearly. No transaction fees from us. Full details on pricing.
-
Double-entry ledger
Starter+Every split, refund and payout as a balanced transaction with balances per beneficiary.
-
Daily matching
Growth+Charges, refunds, fees, payouts and disputes matched against operator balance transactions.
-
Mismatch alerts
Growth+Open items in the dashboard plus the signed
reconciliation.mismatchwebhook to any endpoint. -
Resolve with notes
Growth+Mark an item Resolved with an explanation, visible to Finance and Viewer roles.
-
Accounting ledger export
ScaleJournal format export for your general ledger, on a schedule you set.
-
Per-entity ledgers
ScaleUp to 10 connected accounts and several currencies, each reconciled on its own.
Questions
Frequently asked questions
Something else on your mind? Write to [email protected] or read the API documentation.
What does the payment reconciliation software compare?
Does FractionalPay hold the money it reconciles?
How often does reconciliation run?
reconciliation.mismatch webhook, which you can route to your own alerting. Payload details are in the API docs.Which plan includes automated payment reconciliation?
Can we fix a mismatch by editing the ledger?
Does it help with month-end close and audits?
See the ledger you will reconcile against
Run a split in the simulator on the homepage to see the ledger lines it writes, then create an account to try it with sandbox data.
No transaction fees from us. Runs on your own payment account at a licensed operator. FractionalPay never holds your funds.