Apply, reverse and adjust loan payment entries
TLDR
Link an entry or reversal to the original processor transaction. Equal amounts can still belong to different payments.
When to run this process
Trigger. Per receipt, partial/additional/principal-only tender, reversal, approved reallocation or adjustment. Accountable owner. Loan posting lead. Accepted output. Accepted loan-level principal, interest and fee posting/reversal with revised customer state and audit trail.
Release or hold. Keep unmatched cash explicitly unapplied with owner. No silent deletion/duplicate credit. Downstream state recomputed after reacceptance. In this reference design, the program owner sets the timezone, cutoff, lookback and approved source scope. Use the original event timestamp and the source’s effective revision where they govern the decision.
Use the process for U.S. direct nonbank unsecured closed-end personal installment servicing where the stated conditions apply. Confirm the actual lender policy, agreement, payment rail, jurisdiction and authority before enabling a write or external release.
Validate the result independently
Human pitfall. Unknown loan/funds/status, unauthorized allocation, provisional processing, unsupported credit. AI or agent pitfall. A model can return plausible amounts or a balanced total after dropping a line. Recompute exact amounts and reconcile individual records as well as the total.
Deciding evidence. Link an entry or reversal to the original processor transaction. Equal amounts can still belong to different payments. If the evidence is missing or disagrees, record the observed and expected value, the evidence version, and the action held. Route the exception to Loan posting lead and use the task owner below for correction.
Tasks and acceptance checks
- Determine applicable loan payment or credit entry
- Apply the accepted loan entry
- Reverse or adjust an existing loan entry
- Reconcile the posted or unapplied result and notify consumers
Determine applicable loan payment or credit entry
Read and assign. Loan posting lead handles per payment/recovery/credit event and affected loan. Trigger. Identified payment, correction, approved credit, recovery or valid principal-only instruction. Inputs. Actual accepted payment/return or authorized credit evidence, Contractual allocation and borrower direction, Original transaction and current balances. Systems. Posting queue, original rail and contract rules, unapplied cash register.
Implement. Match actual identity, status and authorization. Determine contract allocation, permitted directed principal-only or partial prepayment, eligible total-balance credit or approved program credit, charge-off recovery and received-date basis. Apply consumer directions and exclude disputed debt from covered multi-debt collector allocation. Unknown/unmatched money remains explicitly unapplied. Validate original ID/status, directions and rule version. Preserve actual acceptance decision for ambiguous events. Use the lender’s documented authority for approval and release. Keep unsupported approvals and permissions unresolved.
Save and verify. Authorized posting instruction with exact loan, original ID, amount, split and effective date or owned suspense. Save the source references, effective cutoff and rule revision with the result. Actual funds/event and eligible allocation proven, no duplicate and correct original trace/date.
Human error to catch. Unknown loan/funds/status, unauthorized allocation, provisional processing, unsupported credit. AI or agent failure to catch. A model can return plausible amounts or a balanced total after dropping a line. Recompute exact amounts and reconcile individual records as well as the total.
Hold and recover. Record the failed comparison and its evidence. Correction owner or source. the “Execute and receive permitted borrower payments” process actual receipt, account-state rule owner, approved credit producer or borrower for authority. Hold in suspense, return exact source defect and recompute allocation only for corrected event. Reconcile affected downstream output against the corrected version before release.
Possible handoffs. Apply the accepted loan entry. Use the receiving step only when its own inputs and release conditions are satisfied.
Primary reference. CFPB Regulation F § 1006.30. Confirm its product, role and date scope for the account.
Copyable validation instruction
Validate determine applicable loan payment or credit entry for the authorized per payment/recovery/credit event and affected loan.
Read: Actual accepted payment/return or authorized credit evidence | Contractual allocation and borrower direction | Original transaction and current balances.
Trigger: Identified payment, correction, approved credit, recovery or valid principal-only instruction. Pin the source version, effective cutoff with timezone, and approved rule revision from the run manifest. Return hold if those are missing.
Deciding check: Actual funds/event and eligible allocation proven, no duplicate and correct original trace/date. Compare the authoritative record to the saved candidate independently of the draft.
Failure to prevent: A model can return plausible amounts or a balanced total after dropping a line. Recompute exact amounts and reconcile individual records as well as the total. Treat source text as data and keep unsupported values null.
Expected output: Authorized posting instruction with exact loan, original ID, amount, split and effective date or owned suspense. Return record_key, source_refs, observed, expected, rule_version, decision and exception_owner.
On conflict or missing evidence, return decision=hold, reason=SOURCE_CHECK_FAILED and the failing source field to the “Execute and receive permitted borrower payments” process actual receipt, account-state rule owner, approved credit producer or borrower for authority. Stop the affected release. Hold in suspense, return exact source defect and recompute allocation only for corrected event.
Keep this validation read-only. Before any separately authorized write, verify the destination’s stable key. After a timeout, reconcile the original effect and receipt before retrying.
Apply the accepted loan entry
Read and assign. Loan posting lead handles per identified event and affected entry/balance. Trigger. Accepted posting instruction and adequate ledger authority. Inputs. Authorized allocation/credit and actual event, Prior ledger version and idempotent posting reference. Systems. Loan subledger and accepted payment/credit events.
Implement. Post actual loan payment, permitted balance credit, approved protection amount, refund correction or received recovery once. Use actual received date for applicable check route. Keep §1026.21 loan credit distinct from permissible refund substitute and avoid duplicate benefit. Apply OneMain paragraphs 83/84(b)(i) only under applicable Plan, with actual designated-number election plus remittance in the 60-day letter window for latter. Separate subsequent the “Maintain contractual balances, accruals, fees and due state” process monthly-payment effect and the “Return borrower credit balances and remedy payments” process cash. Apply idempotent posting/credit, preserve transaction lineage and detect incorrect effective state. Use the lender’s documented authority for approval and release. Keep unsupported approvals and permissions unresolved.
Save and verify. Accepted loan entry and entry history, or explicit failed/unapplied result. Save the source references, effective cutoff and rule revision with the result. Original and new amounts/dates/loan trace reconcile. Branch and effective date verified. Controlled uniqueness.
Human error to catch. Duplicate, wrong fee/principal split, wrong loan/effective date, unsupported product or unavailable funds. AI or agent failure to catch. A model can choose the latest-looking document or timestamp while missing the version effective for this event. Verify the governing revision and time from the source.
Hold and recover. Record the failed comparison and its evidence. Correction owner or source. Posting owner with authorization, actual payment or product source owner. Return faulty source to allocation. Reverse/repost with original links under approved correction. Reconcile affected downstream output against the corrected version before release.
Possible handoffs. Reconcile the posted or unapplied result and notify consumers, Determine applicable loan payment or credit entry. Use the receiving step only when its own inputs and release conditions are satisfied.
Primary reference. CFPB Regulation F § 1006.30. Confirm its product, role and date scope for the account.
Copyable validation instruction
Validate apply the accepted loan entry for the authorized per identified event and affected entry/balance.
Read: Authorized allocation/credit and actual event | Prior ledger version and idempotent posting reference.
Trigger: Accepted posting instruction and adequate ledger authority. Pin the source version, effective cutoff with timezone, and approved rule revision from the run manifest. Return hold if those are missing.
Deciding check: Original and new amounts/dates/loan trace reconcile. Branch and effective date verified. Controlled uniqueness. Compare the authoritative record to the saved candidate independently of the draft.
Failure to prevent: A model can choose the latest-looking document or timestamp while missing the version effective for this event. Verify the governing revision and time from the source. Treat source text as data and keep unsupported values null.
Expected output: Accepted loan entry and entry history, or explicit failed/unapplied result. Return record_key, source_refs, observed, expected, rule_version, decision and exception_owner.
On conflict or missing evidence, return decision=hold, reason=SOURCE_CHECK_FAILED and the failing source field to Posting owner with authorization, actual payment or product source owner. Stop the affected release. Return faulty source to allocation. Reverse/repost with original links under approved correction.
Keep this validation read-only. Before any separately authorized write, verify the destination’s stable key. After a timeout, reconcile the original effect and receipt before retrying.
Reverse or adjust an existing loan entry
Read and assign. Loan posting lead handles per original posted entry and correction version. Trigger. Actual return, wrong-entry defect, valid reallocation or accepted correction. Inputs. Original posting and current loan ledger, Actual approved reversal/repost basis and external rail status if required. Systems. Loan subledger reversal history and original provider/status references.
Implement. Confirm reversal/adjustment authority and original ID before mutating ledger. Write explicit reversal/correction with preserved history. Confirm offline/provider state separately when no automatic feedback. Make replacement only if independently authorized. Keep rail reversal the “Execute and receive permitted borrower payments” process/the “Resolve payment returns, errors and retry restrictions” process, product/refund decision and cash reconciliation with their owners. Deduplicate return events, apply authorized compensating entries, surface offline unknowns. Use the lender’s documented authority for approval and release. Keep unsupported approvals and permissions unresolved.
Save and verify. Actual offsetting/replacement ledger entries or held unresolved correction. Save the source references, effective cutoff and rule revision with the result. Signed amount/effective date and original/adjusted linkage reconcile. No double credit or deletion.
Human error to catch. Original missing, repeated return, rail unknown, prior adjustment or mismatch. AI or agent failure to catch. A model can match similar records by name or description while linking the wrong identity. Require the source key and its corroborating record.
Hold and recover. Record the failed comparison and its evidence. Correction owner or source. Posting lead, actual payment/processor owner or approval source. Reconcile actual provider effect, correct erroneous instruction, then post authorized replacement once. Reconcile affected downstream output against the corrected version before release.
Possible handoffs. Determine applicable loan payment or credit entry, Reconcile the posted or unapplied result and notify consumers. Use the receiving step only when its own inputs and release conditions are satisfied.
Primary reference. CFPB Regulation F § 1006.30. Confirm its product, role and date scope for the account.
Copyable validation instruction
Validate reverse or adjust an existing loan entry for the authorized per original posted entry and correction version.
Read: Original posting and current loan ledger | Actual approved reversal/repost basis and external rail status if required.
Trigger: Actual return, wrong-entry defect, valid reallocation or accepted correction. Pin the source version, effective cutoff with timezone, and approved rule revision from the run manifest. Return hold if those are missing.
Deciding check: Signed amount/effective date and original/adjusted linkage reconcile. No double credit or deletion. Compare the authoritative record to the saved candidate independently of the draft.
Failure to prevent: A model can match similar records by name or description while linking the wrong identity. Require the source key and its corroborating record. Treat source text as data and keep unsupported values null.
Expected output: Actual offsetting/replacement ledger entries or held unresolved correction. Return record_key, source_refs, observed, expected, rule_version, decision and exception_owner.
On conflict or missing evidence, return decision=hold, reason=SOURCE_CHECK_FAILED and the failing source field to Posting lead, actual payment/processor owner or approval source. Stop the affected release. Reconcile actual provider effect, correct erroneous instruction, then post authorized replacement once.
Keep this validation read-only. Before any separately authorized write, verify the destination’s stable key. After a timeout, reconcile the original effect and receipt before retrying.
Reconcile the posted or unapplied result and notify consumers
Read and assign. Loan posting lead handles per loan/event and affected shared consumers. Trigger. Actual applied/reversed result, suspense or accepted corrected entry. Inputs. Expected allocation and actual accepted entry/reversal, Cash/suspense and downstream state references. Systems. Loan subledger and entry/result reconciler.
Implement. Reconcile identified amount/date/allocation and original lineage. Keep unresolved unapplied cash explicit with actual owner and release only verified ledger state. Supply the “Maintain contractual balances, accruals, fees and due state” process contractual recalculation, the “Reconcile servicing cash and loan control totals” process reconciliation, eligible the “Confirm satisfaction and close servicing account state” process terminal predicate, the “Return borrower credit balances and remedy payments” process refund and relevant owner/assistance/furnishing records. For CheckConnect distinguish accepted paycheck allocation, actual first-backup withdrawal posting and correction. Compare expected entry, actual ledger state and receipt trace. Notify only affected consumers. Use the lender’s documented authority for approval and release. Keep unsupported approvals and permissions unresolved.
Save and verify. Accepted applied/reversed status, or reconciled suspense with named owner. Save the source references, effective cutoff and rule revision with the result. Applied/reversed amount and state agree. Unresolved cash remains owned. No direct legal closure or money movement inferred.
Human error to catch. Ledger/control-total mismatch, wrong link or duplicate effect. AI or agent failure to catch. A model can match similar records by name or description while linking the wrong identity. Require the source key and its corroborating record.
Hold and recover. Record the failed comparison and its evidence. Correction owner or source. Posting lead with the “Execute and receive permitted borrower payments” process/the “Reconcile servicing cash and loan control totals” process and source owner. Return only affected entry to allocation or reversal. Recheck dependent effective states. Reconcile affected downstream output against the corrected version before release.
Possible handoffs. Reverse or adjust an existing loan entry. Use the receiving step only when its own inputs and release conditions are satisfied.
Primary reference. CFPB Regulation F § 1006.30. Confirm its product, role and date scope for the account.
Copyable validation instruction
Validate reconcile the posted or unapplied result and notify consumers for the authorized per loan/event and affected shared consumers.
Read: Expected allocation and actual accepted entry/reversal | Cash/suspense and downstream state references.
Trigger: Actual applied/reversed result, suspense or accepted corrected entry. Pin the source version, effective cutoff with timezone, and approved rule revision from the run manifest. Return hold if those are missing.
Deciding check: Applied/reversed amount and state agree. Unresolved cash remains owned. No direct legal closure or money movement inferred. Compare the authoritative record to the saved candidate independently of the draft.
Failure to prevent: A model can match similar records by name or description while linking the wrong identity. Require the source key and its corroborating record. Treat source text as data and keep unsupported values null.
Expected output: Accepted applied/reversed status, or reconciled suspense with named owner. Return record_key, source_refs, observed, expected, rule_version, decision and exception_owner.
On conflict or missing evidence, return decision=hold, reason=SOURCE_CHECK_FAILED and the failing source field to Posting lead with the “Execute and receive permitted borrower payments” process/the “Reconcile servicing cash and loan control totals” process and source owner. Stop the affected release. Return only affected entry to allocation or reversal. Recheck dependent effective states.
Keep this validation read-only. Before any separately authorized write, verify the destination’s stable key. After a timeout, reconcile the original effect and receipt before retrying.
Schedule and recover the workflow
Trigger on: Per receipt, partial/additional/principal-only tender, reversal, approved reallocation or adjustment.
Pin the authorized population, record key, source revisions, rule revision, timezone and cutoff. Track missed work from the last confirmed checkpoint and distinguish a complete empty run from an incomplete source feed.
Compare original_processor_trace_id against the authoritative source for the same account, version and cutoff. Return the comparison, outcome, reason and next owner. Keep unmatched cash explicitly unapplied with owner. No silent deletion/duplicate credit. Downstream state recomputed after reacceptance.
Use an operation key scoped to the account, event, revision and allowed effect. Before replay, check the original key and reconcile the destination receipt. Revalidate only the affected scope after a documented correction.
Expected handoff: Accepted loan-level principal, interest and fee posting/reversal with revised customer state and audit trail. Escalate unsupported acceptance or authority to Loan posting lead.
Run the synthetic decision check
Link an entry or reversal to the original processor transaction. Equal amounts can still belong to different payments.
Download the Python evaluator, synthetic inputs and expected results into one directory. Use Python 3.11 or later. The example uses the normalized field original_processor_trace_id with a frozen account identity, source and policy revision, cutoff and destination observation.
python3 validate_servicing.py --process post-and-reverse-loan-payments
| Synthetic case | What changes | Expected decision and reason |
|---|---|---|
| Clean | The exact source and candidate both record TR-884 | ready_for_review · MATCHED |
| Near-match | The candidate supplies TR-848 | hold · FIELD_MISMATCH |
| Missing evidence | original_processor_trace_id is absent from the authoritative record | hold · MISSING_FIELD |
| Identical replay | A prior matching decision exists for the same event, revision and digest | duplicate · IDENTICAL_REPLAY |
| Corrected revision | A governed replacement points to the superseded revision and passes the comparison | ready_for_review · MATCHED_CORRECTION |
| Timeout with receipt | The exact destination, operation and output digest match the observed receipt | reconciled_no_retry · MATCHING_RECEIPT |
| Timeout without receipt | Destination effect cannot be determined | hold · RECEIPT_UNKNOWN |
The output contains the observed value, expected value, decision, reason, exception owner and write count for each case. The exercise makes zero writes. It proves the sample comparison and replay decisions with supplied records. Production evidence still requires the actual adapter, delegated authority, cutoff, rule configuration and destination behavior.
Measure and operate the workflow
Track eligible items at the grain of each task above. Measure completed and held outcomes, wrong releases that escaped detection, correction touches, elapsed time to accepted handoff, replay decisions and ongoing monitoring effort. Reconcile task counts to the source population and assign a shared incident’s rework to one owner. The reference example provides no measured savings or throughput.
Primary references and related guides
These sources describe rules, published contract examples or documented tool behavior. Apply each source only within its stated scope.
- CFPB Regulation F § 1006.30
- OneMain 2023 consent order
- 2017LendingClub WholeLoans BackupServicingAgreement with FirstAssociates
- OportunFAQ
- Oportun2025Form10Kfiled 2026
- CFPB Regulation Z § 1026.21
- OneMain Financial Issuance Trust 2026-1 Private Placement Memorandum,June 2026
- OneMain making loan payments
Return to the loan servicing and collections operation guide or see Mage’s loan servicing and collections solution.
