
Start by matching each PSP settlement report to bank activity using a provider reference or batch identifier, then release entries from subledger to the general ledger only after control totals tie. When a feed is late at cutoff, record a named exception with owner, timestamp, and next action instead of silent backfill. Keep timing, FX, fee or adjustment, return, and unknown mapping in separate buckets so unresolved cash links stay visible.
Month-end close often breaks down when PSP settlement is treated as a side reconciliation. For payment platforms, settlement is often the clearest record of what cash should have moved, so it should drive the close rather than being checked after journals are drafted. If you run close across multiple PSPs, you need that settlement record to lead the review before your team starts defending journal entries.
This guide follows a practical sequence: reconcile settlement report, bank statement, and general ledger in that order. It is not a universal provider mandate, but it is a useful operating pattern for multi-PSP, multi-currency teams across finance, ops, and product. We recommend using that order whenever you want your reviewers to work from the same cash story.
Think of it as a three-way match: gateway auth or capture, settlement file, and bank credit. When those records do not align, the ledger reflects a current accounting position, not a fully evidenced cash outcome.
For some PSPs, the settlement artifact is explicit enough to anchor this process. Klarna states that it creates a settlement report for each payout, provides reports in CSV, PDF, or JSON, and exposes them through API or SFTP. It also states that each settlement report can be tied to the bank statement using a unique payment reference. That is the evidence standard to aim for, even when other providers use different fields or file shapes.
If cash appears in the bank statement or GL but payout-level settlement evidence is missing or incomplete, treat it as an open close exception.
Use the provider reference, payout ID, or bank-side reference available for that flow. A practical checkpoint is simple: do not release settlement-related postings until the team can show the exact file used, its provenance, and the key tying it to cash movement. We recommend keeping your close packet tied to that same reference so your reviewer can retrace the cash path quickly.
Readiness ownership and early escalation are core controls. If a feed is late or a mapping fails, raise an exception with an owner and evidence instead of patching it quietly after cutoff.
Close pain is often not one dramatic failure. It is unclassified variance: timing, FX, fee drift, or chargebacks. These are valid reconciliation reasons, but they become risky when they are merged into one "other" bucket or pushed to the GL before the cash-side story is proven. If your team hides them in one bucket, you lose the signal that tells you what actually needs review before sign-off.
The rest of this article stays focused on repeatable controls, not reconciler heroics: named ownership per source, completeness checks before posting, and clear escalation when cash evidence is missing. If a settlement report shows a payout and the bank statement does not yet support it, your team should classify it as timing, currency effect, or unknown break without improvising. We would rather keep that exception visible than ask your close owner to guess at the cause later.
The posture here is simple: traceable money movement, explicit evidence, and visible exceptions. The goal is a faster close that finance can defend, ops can run, and product can improve without guessing where the money trail went cold.
Related: What Is an Accounting Cycle? How Payment Platforms Should Structure Month-End and Quarter-End Close.
Set the perimeter first, or your teams will reconcile different versions of the month and call it progress. Before anyone posts, make sure every team is working from the same in-scope lanes, entities, accounts, and source artifacts. Treat these controls as internal close-policy choices, not universal external requirements.
Document the lanes, entities, and accounts your team will reconcile for the period, and explicitly list exclusions.
For each in-scope lane, identify the exact records your team will use, for example settlement exports, bank records, card statements, and subledger extracts where relevant, including version or timestamp and storage location.
If a source is late, partial, or stale at cutoff, use the pre-agreed path your policy defines, for example pause close or proceed with a visible exception and assigned owner, instead of silently backfilling from ad hoc records.
Where your internal documentation distinguishes gross and net settlement flows, capture that per lane so matching logic is applied consistently to your own definitions.
Perimeter first, entries second. That rule removes a surprising amount of month-end noise. If you want a deeper dive, read Month-End Close for Payment Platforms: A Step-by-Step Checklist for Finance Teams.
Use one evidence pack per in-scope lane, and make it the basis for control review. If a lane cannot produce a complete pack, mark that lane incomplete until the missing artifacts are added and reviewed.
Start by assembling four traceable control artifacts for the review period:
| Input | Verify before use | Common failure mode |
|---|---|---|
| Program Control | Included for the lane and period, with scope clearly stated | Review proceeds without a clear control frame |
| Product Review of Final Deposit | Managerial review checkpoint is present and clearly marked | Final deposit review is assumed but not evidenced |
| Daily Courier Checklist | Daily checklist artifacts are present for the period | Missing daily records create control gaps |
| Courier Incident Log | Incident records are included, or explicitly show no incidents | Exceptions are handled outside the auditable record |
Once those inputs are assembled, process them the same way each month:
The output should be one reviewable bundle per lane. A reviewer should be able to move from Program Control to daily checklist and incident evidence, then to Product Review of Final Deposit without gaps.
Keep one operator rule in place: do not mark a lane review-complete until required artifacts are present and reviewed. If any required artifact is regenerated after review, reopen that lane's pack and re-review.
You might also find this useful: How to Build a Global Contractor Payment Compliance Calendar: Monthly Quarterly and Annual Obligations.
For each PSP lane, you need to prove where settlement landed in bank statement activity or a multi-currency EMI account. If you cannot, that lane is not close-ready.
Settlement-to-cash matching is a control, not a formatting step. Settlement activity can touch the balance sheet through settlement accounts and reserve balances, and in multi-PSP operations mismatches should be triaged early, not waved through late in close.
Build the matrix by PSP and currency, and keep direct bank payout lanes separate from EMI settlement lanes. Each row should carry the same keys every month:
If a payout batch ID is missing or keys conflict, mark the item unresolved instead of forcing a weak match. Matching status alone is not enough. Classify breaks with documented buckets and retain supporting evidence:
| Break bucket | What it can explain |
|---|---|
| Timing gap | Cash can appear after settlement because timing differs |
| FX conversion | Settlement and destination cash differ because of conversion |
| Fee or adjustment variance | Landed cash differs from expected net because of deductions or adjustments |
| Return or reversal | A later offset changes the original settlement outcome |
| Unknown mapping | Available keys do not support a reliable link |
For EMI lanes, validate the match path against payout-account validation, settlement-currency support, legal-entity matching, and receiving-account format. If those conditions are misaligned, the issue may be routing configuration, not just reconciliation execution.
Set a documented cutoff rule: if unmatched value for a PSP lane exceeds your internal materiality threshold, treat that lane as not ready to finalize. Keep the value visible and classified in the matrix, for example a mismatch like 72.64 EUR (8.00%), and resolve it from documented evidence, not assumptions.
As an internal control, treat transaction movement, settlement reporting, and cash posting as separate review checkpoints so timing signals are not collapsed into one timestamp.
Use the same match-matrix keys to keep this clean: provider reference, payout batch ID, date window, currency, and expected net amount. If settlement evidence is present but cash is not yet visible, do not assume a provider-specific lag window; check the governing rail terms and apply your documented escalation policy.
For real-time lanes, anchor timing logic to the governing bank documents. RTP services are described as real-time availability, 24/7/52, but only if the bank has approved RTP for your program. Usage is governed by the RTP Services Guide, RTP Rules, bank policies, and agreement terms. Those documents can change over time, and where RTP terms conflict with the master agreement, RTP terms control.
For each timing-reviewed item, one practical evidence set is:
This keeps expected timing out of the exception queue and makes potential misses easier to escalate. Need the full breakdown? Read Real-Time Ledger vs Batch Settlement for Platform Volume Decisions.
A settlement-to-cash difference is not always a true reconciliation break. In multi-currency lanes, classify the route and currency path from the records you actually have, then decide whether the item belongs in escalation.
Use this route-first checklist before you compare amounts:
Keep two review points explicit:
If your operating model includes staged currency movements, document the currency-change point only when it is evidenced in records; otherwise mark it as unknown. Keep ownership aligned across payments, finance, and product, because shared ownership and tooling decisions directly affect whether teams can work independently or create avoidable dependency friction.
For FX-reviewed residuals, keep an evidence log tied to your existing policy and reviewer decision. At minimum, keep provider reference or payout batch ID, settlement timestamp, source currency and amount, what the records show on the payout or cash side, any available conversion context, residual variance, and reviewer decision. If the currency change point cannot be evidenced, keep the item unresolved instead of treating it as routine FX noise.
We covered this in detail in Vendor Portal Requirements Checklist for Platform Payment Ops.
Post to the GL only after the subledger is finalized, journals are drafted, and control totals are proven. If you post from a half-settled view, reconciliation gaps can become accounting risk, especially when late manual entries are used to "help close."
Use a sequence your team can reproduce and defend:
Keep subledger finalization and GL posting as separate control points. A product-specific example is creating accounting in final mode, then transferring and posting to the GL. The control principle is separation, not ERP brand.
There is no universal required list, but most month-end closes need explicit decisions in these areas:
| Entry area | What it captures | Evidence required before release |
|---|---|---|
| Settlement clearing | Settlement activity not yet cleared to final cash or liability position | Final settlement report, payout or batch ID, cash-side match result, unresolved exceptions log |
| Fees | PSP or processing charges for the period | Provider fee detail from settlement extracts, fee mapping logic, approval for estimates |
| Accruals | Income earned or expenses incurred in-period before cash or invoice timing catches up | Cutoff support, calculation sheet, reversal rule for next period |
| Deferred revenue / contract liability | Consideration received before transfer of promised goods or services | Billing or prepayment record, performance-obligation support, revenue policy treatment |
Two checks matter here. Accrual treatment should follow when income is earned or expense is incurred. Pre-transfer consideration should be presented as a contract liability under ASC 606 guidance.
A posting is not done when the import succeeds. It is done when the adjusted trial balance supports the income statement and balance sheet outputs you expect. Use a short tie-out that shows:
Reconciliation should explicitly cover AP, AR, tax, and bank subledgers where applicable, and it should drive exception action, not just produce an archived report.
Late corrections are normal. Duplicate entries are not. Apply idempotent retry logic to posting so repeated requests with the same key return the same result instead of creating a second journal.
Use a stable posting key that identifies one intended batch. If content changes, require a controlled reverse-and-repost or an approved superseding version. Also define key-retention windows in the accounting layer for real close timelines. Some API implementations may prune idempotency keys after 24 hours, which may be shorter than your correction cycle.
Treat manual settlement-related journals as high-control items because management override risk can arise through inappropriate entries. Each should include source artifact, preparer, approver, and reason code, and anything that cannot be tied back to the frozen subledger and evidence pack stays an exception.
This pairs well with our guide on How to Build a Deterministic Ledger for a Payment Platform.
Run these checks before period lock. If an in-scope PSP is missing settlement evidence or cash-side evidence, pause that lane or record it as a named exception with an owner and date.
| Provider | Artifact | Stated note |
|---|---|---|
| Adyen | Settlement details report | Supports transaction-level reconciliation |
| PayPal | Settlement Report | Generated on a 24-hour basis and placed by 12:00PM daily in the reporting window's leading timezone |
| Stripe | Bank reconciliation data (where available) | Currently available only for direct US-based Stripe accounts using an automated payout schedule |
For each PSP in scope, confirm you have both the settlement artifact and matching cash evidence for the same destination path. Use the provider artifact that fits the lane, for example Adyen Settlement details report, PayPal Settlement Report, or Stripe Bank reconciliation data where available, plus the receiving account statement for that destination path. Capture provenance fields so the evidence is reviewable: report date, extraction time, account scope, currency, and payout or batch identifier.
First verify that each expected payout has a cash-side record at all. Stripe's bank reconciliation flow can help by matching payouts to bank deposits, but Stripe states this is currently available only for direct US-based Stripe accounts using an automated payout schedule. For PayPal, account for report timing: the Settlement Report is generated on a 24-hour basis and placed by 12:00PM daily in the reporting window's leading timezone.
Reconcile settlement-related balances from subledger to general ledger and log every delta as a tracked reconciling item. The control is explicit identification and tracking of exceptions, not leaving differences uncategorized. If your stack supports it, enforce a close block when subledgers are still open or accounting is incomplete.
Spot-check unmatched items and make sure each has a clear category and named owner instead of being parked in "other." Complete the review with written evidence: checklist, supporting reports, exception log, preparer, reviewer, and timestamp. Preserve this as an audit trail so the sequence of events can be reconstructed later.
For a step-by-step walkthrough, see Usage-Based Billing for Platforms That Holds Up at Month-End Close.
Before period lock, map your sign-off artifacts and exception paths to an implementation checklist in the Gruv docs.
Run the exception queue as a close control. Every break needs a severity tier, one accountable owner, a cutoff decision, and documented remediation before period lock.
| Tier | Meaning | Examples or action |
|---|---|---|
| Immaterial timing | Settlement evidence exists, the cash path is known, and the variance is plausibly timing-related | Weekend or holiday transmission effects, bank posting lag, or provider payout delay |
| Material variance | Amounts, currency, payout reference, or fee outcomes do not align and may affect period balances or require a journal entry decision | Escalate immediately through higher-level reporting lines |
| Control failure | Missing or incomplete evidence, broken feeds, duplicate or missing postings, or controls did not prevent or detect misstatement risk in time | Highest tier in this model |
Use three internal tiers so teams can make decisions quickly. An immaterial timing break means settlement evidence exists, the cash path is known, and the variance is plausibly timing-related. Examples include weekend or holiday transmission effects, bank posting lag, or provider payout delay. A material variance means amounts, currency, payout reference, or fee outcomes do not align and may affect period balances or require a journal entry decision. A control failure is the highest tier in this model. It covers missing or incomplete evidence, broken feeds, duplicate or missing postings, or any condition showing controls did not prevent or detect misstatement risk in time. If an item is marked "timing," require proof: payout or batch ID, destination account, event timestamps, and lane-specific lag rationale. If that proof is missing, re-tier it.
Assign owners based on the remediation path, not the discovery path. A practical split is PSP ops for mapping failures, payout-path investigation, and provider-side settlement anomalies; Finance for general ledger impact, posting decisions, and close sign-off; and Product/engineering for feed defects, transform errors, and missing propagation.
This owner map is operational, not universal. The control requirement is explicit accountability with authority to remediate. In each ticket, record owner, open timestamp, PSP, entity, currency, payout or batch ID, and close cutoff. If provider statuses like ACTION_REQUIRED indicate failed settlement-to-deposit matching, route them directly into the queue.
Use established reporting lines and force an explicit cutoff decision. If an exception remains open at close cutoff, choose and record either a close with named exceptions or a delayed close for the affected lane or entity.
Timing-only items with no expected general ledger impact before lock can remain as named exceptions with owner and target clearance date. Material variances and control failures should escalate immediately through higher-level reporting lines, including controller-level or oversight-body review where needed. Severe control breakdowns are not routine reconciliation noise.
Close tickets only when the remediation artifact is linked. That should point to corrected settlement data or mapping, a replacement settlement intent when bad platform data caused the break, or the related journal entry, including reversal or repost where applicable.
Include preparer, preparation date, reviewer, and review date. A "resolved" status without changed evidence should be treated as still open.
Related reading: The Freelancer's Year-End Tax Prep Checklist (US Expat Edition).
Run the close on a dated calendar with defined dependencies. Each checkpoint needs one owner, one cutoff time, and one evidence file, or teams will close against different snapshots.
Use a month-end close calendar with real dates, internal cutoffs, and named owners for PSP extraction, reconciliation, posting, review, and any internal sign-off step. Keep the sequence fixed, for example provider artifacts first, payment reconciliation second, then posting and review. If reconciliation is still open, do not post from an older file version.
Treat settlement-to-cash matching to accounting posting as a formal checkpoint. Mark it complete only when ops attaches the exact settlement export, bank-side evidence where available, and reconciled output file for the period and PSP lane. Status calls do not replace written records of what was used, who prepared it, and the conclusion reached.
If an artifact is missing, trigger retrieval immediately. If retrieval still fails by cutoff, log a named exception instead of backfilling silently later.
| PSP | Primary artifact | Fallback path to avoid deadlock |
|---|---|---|
| Stripe | Payout reconciliation report | Pull from Stripe Dashboard or retrieve payout details through the API |
| Adyen | Settlement details report | Generate or download manually if the automated feed is missing |
| PayPal | Settlement report | Retrieve via PayPal website, or SFTP where approved; reports are generated on a 24-hour basis and placed by no later than 12:00PM daily in the reporting window timezone |
Tie completion to deliverable files: export, reconciled workbook, journal support, reviewer sign-off note, or approval memo. Watch for false completion, which usually looks like green status with no attached evidence.
Use one compact dashboard to decide whether to post, hold, or escalate the close. Keep it to three views: reconciliation completeness, accounting integrity, and timeliness, so sign-off reflects whether the evidence pack supports the income statement and balance sheet marked close-ready.
| Control area | What to track | What to verify before you trust it | Red flag that needs action |
|---|---|---|---|
| Reconciliation completeness | Matched vs unmatched PSP settlement value and item count by PSP and currency | Confirm metrics come from the same period-end file set: settlement export, cash-side evidence, and matching output | High unmatched value, or rising unmatched item count in a previously stable lane |
| Accounting integrity | Open exception count, late journal entry count, unreconciled subledger to general ledger deltas | Tie open subledger balances to corresponding general ledger accounts for the period before final posting | Exceptions appearing after close cutoff, or any unexplained subledger-to-GL delta |
| Timeliness | Calendar days from trial balance start to completion of consolidated financial statements, or to a consistently defined close-ready package | Use one consistent endpoint, such as the package containing the draft trial balance, income statement, and balance sheet for review | Cycle time improves only because items were parked as exceptions or posted late |
Start with provider-level visibility, not a single global percentage. Stripe's Payout reconciliation report supports matching bank-received payouts to underlying transaction batches. Adyen's Settlement details report supports transaction-level reconciliation, and Adyen also supports matching payout batches to bank statements. PayPal positions reconciliation reports for finance and accounting use across sales, refunds, disputes, fees, and withdrawals.
For each lane, prioritize unmatched value and unmatched item count. Value shows close risk, while count shows whether smaller mapping defects are spreading. Also verify that the dashboard and reconciled workbook use the same settlement snapshot, because transactions begin unmatched when loaded into transaction matching.
A clean settlement view does not guarantee a clean posting layer. Track open exceptions, late journal entry count, and any unreconciled subledger to general ledger delta for settlement-related accounts.
The key control is the subledger-to-GL tie-out: compare open subledger balances with the corresponding general ledger account balances for the period. If unmatched settlement is near zero but a delta remains, investigate posting logic, account mapping, or duplicate or missing journal entry issues.
Measure timeliness with one consistent definition. A common finance definition tracks cycle time from trial balance start to completion of consolidated financial statements. If you use a close-ready package as an internal proxy, keep the endpoint consistent and include the draft income statement and balance sheet used for review.
Use benchmarks as context, not as targets by themselves. CFO.com, citing APQC data from 2,300 organizations, reports a median of 6.4 calendar days. It also reports top performers at 4.8 days or less, and the bottom 25% at 10 or more days. If cycle time drops, confirm it came from process improvement, not delayed posting or expanded exceptions.
Review these metrics month over month to decide where the fix belongs:
That trend view tells you whether to adjust provider extraction, tighten evidence-pack completeness, or redesign posting controls.
If you want a close you can defend, treat settlement-to-cash matching as a practical gate, then post controlled entries from subledger to general ledger. It is not a universal rule for every platform, but it is a clear operating pattern when month-end assertions need to tie back to cash evidence. We recommend treating that gate as non-negotiable on any lane your reviewers may need to revisit. We would rather hold one lane open than let your team finalize a posting it cannot evidence cleanly.
Use a simple lane-level test: for each PSP and currency, you can show the settlement artifact, the cash-side record, and the posting result without changing the story. That might be an Adyen Settlement details report plus the batch-level payout view used to match payout batches to the bank statement. It might be a PayPal Disbursement Reconciliation Report with Transfer IDs cross-referenced to bank lines, or Stripe balance transactions data as the ledger-style account-balance record for accounting reporting. If a link in that chain is missing, treat it as an evidence gap before treating it as a posting step.
Keep the evidence pack disciplined. Management is responsible for internal-control documentation and evidential matter, and audit standards require sufficient appropriate evidence. In practice, preserve finalized provider exports, payout identifiers, bank activity, the period-end subledger snapshot, exception ownership, and the sign-off artifact. Save provider reports during close, because availability windows can expire. Adyen notes that manually generated reports are kept for two years from the generation date, starting Jan 13, 2024.
Run escalation with explicit rules. Items that still fit your documented lag policy across clearing and settlement can remain timing items with timestamps. Items with no payout ID, no bank-side evidence, or no owner should be escalated, not parked in an "other" bucket.
A practical way to tighten the process is to start where artifacts are already reliable and prove the chain month after month. If you can prove the chain on one clean lane first, your team has a standard it can copy instead of reinventing close each month. Then extend the same checkpoints to other providers and currencies, with only the adjustments the lane actually needs, such as net settlement, FX handling, or payout destination differences.
When you want to test this close design against your current PSP and ledger workflow, contact Gruv.
Include, at minimum, period-end settlement exports by PSP and currency, bank statement or equivalent cash records, and payout logs or payout-reconciliation outputs. Then confirm payout-to-bank reconciliation status, open exceptions, and failed payouts. If you use Stripe, account for scope limits: Stripe states bank reconciliation is currently available only for direct US-based accounts on automated payouts.
A payment marked complete at the PSP can still be missing from the bank statement because clearing, settlement, and bank posting are not the same event. Clearing happens before settlement, and settlement is separate from when funds post at the bank. PayPal notes transfer timing can vary, typically around 1 business day but up to 1-3 business days, with an added day possible for transfers after 7:00 PM ET or on weekends and holidays.
Track clearing, settlement, and bank posting as separate states in your reconciliation process. The European Payments Council describes clearing as pre-settlement transmission and reconciliation of transfer orders, and settlement as the step that discharges obligations through transfer of funds. If a transaction is settled in provider data but not yet on the bank statement, treat it as timing only when it still fits your documented lag policy and has timestamped evidence.
The deposited amount is often lower because net settlement pays out sales after deductions, not gross sales. Adyen states net settlement can reflect deductions for transaction costs, refunds, chargebacks, settlement reversal, and other adjustments. Reconcile gross sales to settlement lines first, then tie the net payout to bank cash.
Reconcile the provider settlement report, payout batch or payout-reconciliation output, bank or multi-currency account activity, and the related ledger entries. Stripe’s Payout reconciliation report is designed to match bank-account payouts to payment batches, and Adyen’s Settlement details report supports transaction-level reconciliation including transaction costs. If a required record is missing at cutoff, log a named exception instead of silently backfilling.
Run separate reconciliation lanes by PSP and currency, because FX can arise when presentment and settlement currencies differ. Stripe notes this presentment-versus-settlement mismatch is where payments FX occurs, and Connect can hold and pay out in up to 18 supported currencies while charges can be taken in over 135 currencies. Adyen requires a payout account for each payout currency, and if local payout is unavailable, settlement can occur via cross-border transfer.
Escalate when an item is outside your documented lag window, appears in failed payout reporting, or remains unmatched between settled provider records and bank posting. Escalate as well when key evidence is missing, such as payout identifiers, bank-side records, finalized settlement exports, or ownership. Timing items should clear in the next cycle. If they do not, stop classifying them as timing.
Avery writes for operators who care about clean books: reconciliation habits, payout workflows, and the systems that prevent month-end chaos when money crosses borders.
With a Ph.D. in Economics and over 15 years of experience in cross-border tax advisory, Alistair specializes in demystifying cross-border tax law for independent professionals. He focuses on risk mitigation and long-term financial planning.
Educational content only. Not legal, tax, or financial advice.

Month-end close on payment platforms usually breaks in three places: timing mismatch, explanation debt, and unclear ownership. The fix is to choose a close structure you can actually run, assign clear ownership for each tie-out, and set verification checkpoints for month-end and quarter-end. That keeps financial statements accurate without pushing cleanup into the next period.

A usable first version of your **global contractor payment compliance calendar monthly quarterly annual** should work as a control document, not just a list of dates. Keep monthly, quarterly, and annual obligations in one place, assign clear owners and reviewers, and define when unclear rules or missing evidence must be escalated. If you are building version 1, we recommend starting with the obligations your team can evidence today and marking the rest for legal review.

The hard part is not calculating a commission. It is proving you can pay the right person, in the right state, over the right rail, and explain every exception at month-end. If you cannot do that cleanly, your launch is not ready, even if the demo makes it look simple.