Servicing Examples
Baseline Loan Scenarios
To make servicing examples concrete, every servicing loan now references one of four baseline loans. Each scenario below lists the exact inputs, the initial repayment schedule, and the assumptions (interest method, day-count, allocation strategy). When a servicing action modifies a loan, the guide cites “Baseline A”, “Baseline B”, or “Baseline C” so you can compare before/after at a glance.
| Baseline | Engine | Principal | Term / Frequency | Annual Rate | Other settings | Schedule Source |
|---|---|---|---|---|---|---|
| A. Fixed EMI loan | Fixed Schedule | USD 12,000 | 12 monthly installments (first due 13 Jan 2026) | 12% APR (1% monthly) | Interest recalculation: ON, equal installments, no grace periods | Calculated via standard EMI formula (matches LoanScheduleGeneratorFactory output) |
| B. Dynamic BNPL plan | Dynamic Schedule | USD 600 | 6 bi-weekly installments (first due 10 Jan 2026) | 0% promo for installments 1–3, then 24% APR for installments 4–6 | Advanced Payment Allocation (ADJUST_LAST_UNPAID_PERIOD), interest accrued per period after promo, no down payment, IR: ON | Mirrors the Dynamic engine schedule assembled by AdvancedPaymentScheduleTransactionProcessor |
| C. Dynamic Hardship plan | Dynamic Schedule | USD 600 | 6 bi-weekly installments (first due 10 Jan 2026) | 0% APR | Advanced Payment Allocation, non-interest-bearing (IR: OFF), satisfies validators for reAge / reAmortize | Generated via the Dynamic schedule generator with zero interest |
Baseline A – Fixed EMI Loan
Parameters:
- Principal: USD 12,000
- Tenor: 12 months
- Interest method: Declining balance, monthly amortization
- EMI: USD 1,066.19 (using r = 1% per month; rounded for readability)
- Interest recalculation: Enabled (Embarc reprocesses interest on each servicing command).
- First due date: 13 Jan 2026
- Allocation: Standard (Interest → Principal → Fees → Penalties)
Initial schedule (excerpt):
| Inst. # | Due date | Interest due (USD) | Principal due (USD) | Total due (USD) | Remaining principal (USD) |
|---|---|---|---|---|---|
| 1 | 2026-01-13 | 120.00 | 946.19 | 1,066.19 | 11,053.81 |
| 2 | 2026-02-13 | 110.54 | 955.65 | 1,066.19 | 10,098.17 |
| 3 | 2026-03-13 | 100.98 | 965.20 | 1,066.19 | 9,132.96 |
| 4 | 2026-04-13 | 91.33 | 974.86 | 1,066.19 | 8,158.11 |
| 5 | 2026-05-13 | 81.58 | 984.60 | 1,066.19 | 7,173.50 |
| 6 | 2026-06-13 | 71.74 | 994.45 | 1,066.19 | 6,179.05 |
| 7 | 2026-07-13 | 61.79 | 1,004.39 | 1,066.19 | 5,174.66 |
| 8 | 2026-08-13 | 51.75 | 1,014.44 | 1,066.19 | 4,160.22 |
| 9 | 2026-09-13 | 41.60 | 1,024.58 | 1,066.19 | 3,135.64 |
| 10 | 2026-10-13 | 31.36 | 1,034.83 | 1,066.19 | 2,100.81 |
| 11 | 2026-11-13 | 21.01 | 1,045.18 | 1,066.19 | 1,055.63 |
| 12 | 2026-12-13 | 10.56 | 1,055.63 | 1,066.19 | 0.00 |
We reuse this loan whenever a servicing action targets a traditional EMI product (prepay, waive interest, goodwill credit, re-amortize “Installment Smoothing”, etc.).
Initial loan summary
| Field | Value |
|---|---|
| Status / Sub-status | Active / None |
| Principal outstanding | USD 12,000.00 |
| Interest outstanding | USD 0.00 (before the first accrual) |
| Next due date | 13 Jan 2026 |
| Delinquent amount | USD 0.00 |
Transaction log
| Date | Type | Amount (USD) | Notes |
|---|---|---|---|
| 03 Jan 2026 | DISBURSEMENT | 12,000.00 | Initial disbursement to borrower. |
| 13 Jan 2026 onward | Scheduled installments (see table above) | 1,066.19 each | Not yet posted—appear once repayments occur. |
Baseline B – Dynamic BNPL Plan
Parameters:
- Principal: USD 600
- Tenor: 6 installments, bi-weekly cadence (every 14 days)
- Interest policy: Installments 1–3 promotional 0% APR, installments 4–6 at 24% APR (0.24/26 ≈ 0.923% per period)
- Interest recalculation: Enabled
- Allocation strategy: Advanced Payment Allocation (
ADJUST_LAST_UNPAID_PERIOD) - First due date: 10 Jan 2026
- Principal schedule: USD 100 per installment
Initial schedule:
| Inst. # | Due date | Interest due (USD) | Principal due (USD) | Total due (USD) | Remaining principal (USD) |
|---|---|---|---|---|---|
| 1 | 2026-01-10 | 0.00 | 100.00 | 100.00 | 500.00 |
| 2 | 2026-01-24 | 0.00 | 100.00 | 100.00 | 400.00 |
| 3 | 2026-02-07 | 0.00 | 100.00 | 100.00 | 300.00 |
| 4 | 2026-02-21 | 2.77 | 100.00 | 102.77 | 200.00 |
| 5 | 2026-03-07 | 1.85 | 100.00 | 101.85 | 100.00 |
| 6 | 2026-03-21 | 0.92 | 100.00 | 100.92 | 0.00 |
This loan underpins Dynamic Schedule examples that require interest-bearing behaviour (Promo Interest Credit, Contract Termination, Buy-down Fee amortization, Capitalized Income). Because the Dynamic engine can be sensitive to due-date shifts and allocations, every before/after table in the guides references these exact installments.
Promo interest logic:
LoanPromoPeriodCalculatoronly keeps installments 1–3 at 0% if the borrower pays on or before each due date. Any delinquency causes the first interest-bearing installment (installment #4 here) to include catch-up interest from prior periods. Baseline B assumes on-time payments so the promo periods stay interest-free.
Initial loan summary
| Field | Value |
|---|---|
| Status / Sub-status | Active / None |
| Principal outstanding | USD 600.00 |
| Interest outstanding | USD 0.00 (promo period) |
| Next due date | 10 Jan 2026 |
| Delinquent amount | USD 0.00 |
Transaction log
| Date | Type | Amount (USD) | Notes |
|---|---|---|---|
| 05 Jan 2026 | DISBURSEMENT | 600.00 | Merchant disbursement. |
| 10 Jan 2026 – 21 Mar 2026 | Planned installments | See schedule | Payments are recorded as REPAYMENT commands as customers pay. |
Baseline C – Dynamic Hardship Plan (non-interest)
Parameters:
- Principal: USD 600
- Tenor: 6 installments, bi-weekly cadence (every 14 days)
- Interest: 0% (non-interest-bearing as required by validators)
- Allocation strategy: Advanced Payment Allocation (
ADJUST_LAST_UNPAID_PERIOD) - First due date: 10 Jan 2026
Initial schedule:
| Inst. # | Due date | Interest due (USD) | Principal due (USD) | Total due (USD) | Remaining principal (USD) |
|---|---|---|---|---|---|
| 1 | 2026-01-10 | 0.00 | 100.00 | 100.00 | 500.00 |
| 2 | 2026-01-24 | 0.00 | 100.00 | 100.00 | 400.00 |
| 3 | 2026-02-07 | 0.00 | 100.00 | 100.00 | 300.00 |
| 4 | 2026-02-21 | 0.00 | 100.00 | 100.00 | 200.00 |
| 5 | 2026-03-07 | 0.00 | 100.00 | 100.00 | 100.00 |
| 6 | 2026-03-21 | 0.00 | 100.00 | 100.00 | 0.00 |
This baseline powers reAge, reAmortize, and any other Dynamic-only command that rejects interest-bearing loans.
Initial loan summary (Baseline C)
| Field | Value |
|---|---|
| Status / Sub-status | Active / None |
| Principal outstanding | USD 600.00 |
| Interest outstanding | USD 0.00 (non-interest product) |
| Next due date | 10 Jan 2026 |
Transaction log (Baseline C)
| Date | Type | Amount (USD) | Notes |
|---|---|---|---|
| 05 Jan 2026 | DISBURSEMENT | 600.00 | Initial advance. |
| 10 Jan 2026 onward | Scheduled installments | 100.00 each | No interest components. |
Baseline D – Dynamic BNPL with Down Payment
Parameters:
- Principal: USD 800
- Down payment: 25% (USD 200) collected on the disbursement date
- Remaining tenor: 6 installments, bi-weekly cadence after the down payment
- Interest policy: Installments 1–3 promotional 0% APR, installments 4–6 at 24% APR
- Interest recalculation: Enabled
- Allocation strategy: Advanced Payment Allocation (
ADJUST_LAST_UNPAID_PERIOD) - First disbursement / down payment date: 05 Jan 2026
Initial schedule:
| Period | Label | Due date | Interest due (USD) | Principal due (USD) | Total due (USD) | Remaining principal (USD) |
|---|---|---|---|---|---|---|
| DP | Down payment | 2026-01-05 | 0.00 | 200.00 | 200.00 | 600.00 |
| 1 | Installment #1 | 2026-01-19 | 0.00 | 100.00 | 100.00 | 500.00 |
| 2 | Installment #2 | 2026-02-02 | 0.00 | 100.00 | 100.00 | 400.00 |
| 3 | Installment #3 | 2026-02-16 | 0.00 | 100.00 | 100.00 | 300.00 |
| 4 | Installment #4 | 2026-03-02 | 2.77 | 100.00 | 102.77 | 200.00 |
| 5 | Installment #5 | 2026-03-16 | 1.85 | 100.00 | 101.85 | 100.00 |
| 6 | Installment #6 | 2026-03-30 | 0.92 | 100.00 | 100.92 | 0.00 |
Use this baseline whenever you need to demonstrate down-payment servicing behaviour (auto-collection at disbursement, manual down payment command, chargeback, etc.). Its promo/interest pattern mirrors Baseline B so comparisons stay simple.
Initial loan summary
| Field | Value |
|---|---|
| Status / Sub-status | Active / None |
| Principal outstanding | USD 800.00 (drops to USD 600.00 immediately after the down payment posts) |
| Interest outstanding | USD 0.00 (promo period) |
| Next due date | 19 Jan 2026 |
| Down payment due | USD 200.00 on 05 Jan 2026 |
Transaction log
| Date | Type | Amount (USD) | Notes |
|---|---|---|---|
| 05 Jan 2026 | DISBURSEMENT | 800.00 | Merchant payout to fulfil the order. |
| 05 Jan 2026 | DOWN PAYMENT | 200.00 | Automatically posted because the product enables down payments (auto-repayment flag on). |
| 19 Jan 2026 onward | Planned installments | See schedule | Captured as repayments (autopay or manual). |
When a servicing action modifies one of these baselines, the corresponding servicing guide will include:
- A “Baseline impact” subsection that links back here.
- A small before/after table (affected installments only).
- A note explaining how the command parameters produced that delta (with references to validators or processors when useful).
Verification & sandbox tips
To reproduce any scenario end-to-end:
- Clone the baseline state – Create loans in your tenant that mirror Baseline A, Baseline B, Baseline C and Baseline D.
- Capture “before” data – Call
GET /v1/loans/{loanId}?associations=alland save theloanSummary,repaymentSchedule, andtransactions. - Apply the servicing command (per the servicing guide) and repeat the same GET call to diff schedules, summaries, and transaction logs.
Each servicing guide now references the exact sections above plus a ready-to-use curl template so teams can replay the scenario without rebuilding context from scratch.
Shared Product-to-Accounting Mapping
All baselines use the same comprehensive mapping so every accounting example references familiar GL accounts.
Mapping (LoanProductAccountingDataParams) | Example GL Account | Notes |
|---|---|---|
FUND_SOURCE | Cash – Loan Funding (101100) | Credited on disbursement, debited when repayments arrive (via Payments API). |
LOAN_PORTFOLIO | Loans Receivable – Short Term (112601) | Debited on disbursement, credited when principal is repaid/adjusted. |
INTEREST_ON_LOANS | Interest Income (404000) | Credited when interest is billed or recognised. |
INCOME_FROM_FEES | Fee Income (405000) | Used for capitalized income amortization, buy-down fee recognition, etc. |
INCOME_FROM_PENALTIES | Penalty Income (406000) | Included for completeness. |
LOSSES_WRITTEN_OFF | Loan Write-off Expense (601500) | Debited when writeoff command runs. |
GOODWILL_CREDIT | Goodwill Credit Expense (505100) | Debited when goodwillCredit posts. |
OVERPAYMENT | Overpayment Liability (212000) | Holds surplus repayments until refunded. |
INTEREST_RECEIVABLE | Interest Receivable (119200) | Used by accrual accounting / waive interest. |
FEES_RECEIVABLE | Fees Receivable (119210) | Used when fee accruals are enabled. |
PENALTIES_RECEIVABLE | Penalty Receivable (119220) | Optional. |
TRANSFERS_SUSPENSE | Transfers in Suspense (212100) | For account-transfer workflows. |
INCOME_FROM_RECOVERY | Recovery Income (404100) | Credited when recoverypayment posts after charge-off. |
LIABILITY_TRANSFER_SUSPENSE | Liability Transfer Suspense (212110) | Optional. |
INCOME_FROM_CHARGE_OFF_INTEREST | Charge-off Interest Income (404200) | Credited when charge-off interest is reversed. |
INCOME_FROM_CHARGE_OFF_FEES | Charge-off Fee Income (405200) | Ditto for fees. |
INCOME_FROM_CHARGE_OFF_PENALTY | Charge-off Penalty Income (406200) | Ditto for penalties. |
CHARGE_OFF_EXPENSE | Charge-off Expense (601600) | Used when policy routes charge-offs to expense accounts. |
CHARGE_OFF_FRAUD_EXPENSE | Fraud Loss Expense (601610) | Optional mapping for fraud cases. |
INCOME_FROM_GOODWILL_CREDIT_INTEREST | Goodwill Credit – Interest Income (404300) | Credited when goodwill credits cover interest. |
INCOME_FROM_GOODWILL_CREDIT_FEES | Goodwill Credit – Fee Income (405300) | For fee portions. |
INCOME_FROM_GOODWILL_CREDIT_PENALTY | Goodwill Credit – Penalty Income (406300) | For penalty portions. |
DEFERRED_INCOME_LIABILITY | Deferred Capitalised Income (212500) | Liability reduced via CAPITALIZED_INCOME_AMORTIZATION. |
INCOME_FROM_CAPITALIZATION | Capitalised Income Recognition (405500) | Credited when deferred income is amortised. |
BUY_DOWN_EXPENSE | Buy-down Fee Asset (171000) | Debited when subsidy is logged. |
INCOME_FROM_BUY_DOWN | Buy-down Fee Income (405600) | Credited as amortization runs. |
Note: Some deployments use separate GLs for Dynamic vs. Fixed Schedule products; feel free to swap the examples while keeping the same mapping structure.
How servicing guides use this mapping
- Promo Interest Credit (interest payment waiver) → Debit
INTEREST_ON_LOANS(404000) / CreditLOAN_PORTFOLIO(112601, interest component). - Waive Interest (
waiveinterest) → DebitINTEREST_ON_LOANSorINTEREST_RECEIVABLE(119200) / CreditLOAN_PORTFOLIO(112601 – interest component). - Contract Termination → No immediate GL impact (entries occur when a payoff/refund or charge-off follows).
- Buy-down fee → Initial subsidy: Debit
BUY_DOWN_EXPENSE(171000) / CreditINCOME_FROM_BUY_DOWN(405600); amortization reverses the entry over time. - Capitalized income → Capitalise: Debit
LOAN_PORTFOLIO(112601) / CreditDEFERRED_INCOME_LIABILITY(212500); amortization: DebitDEFERRED_INCOME_LIABILITY/ CreditINCOME_FROM_CAPITALIZATION(405500). - Goodwill credit → Debit
GOODWILL_CREDIT(505100) / CreditLOAN_PORTFOLIOsplit across components per allocation order. - Charge-off / recovery → Commands reference the charge-off expense/income accounts listed above.
General rule: when a product guide references an “Accounting snapshot,” it uses the account names above so finance teams can reconcile quickly. Swap the GL codes as needed for your environment—the mechanics (asset/liability vs. income/expense) remain identical.
Updated about 1 month ago
