Promo Interest Credit
Operational Use Cases
- Promotional incentives: “Pay on time and we waive this installment’s interest.”
- Merchant-funded offers: Partners cover the interest portion for specific billing cycles.
- Dispute remedies: Forgive installments (or parts of them) on either repayment schedule engine without collecting cash.
Supported on both Fixed Schedule and Dynamic Schedule loan engines. On Dynamic loans the Payment Waiver allocation row runs through the advanced allocation processor, while Fixed loans apply the same row through the standard repayment allocation. Works whether or not interest recalculation is enabled; your Payment Waiver row decides which components (interest, fees, principal) the waiver clears.
How Fixed vs Dynamic differ: Loan A (Fixed engine) treats the waiver exactly like a classic repayment—only the targeted installment’s interest falls off and the EMI stays unchanged. Loan B (Dynamic engine) uses the advanced allocation strategy; waived interest can automatically spill over into fees or principal if your Payment Waiver row allows it. Keep this contrast in mind when designing UI copy or explaining promo credits to merchants.
Lifecycle Snapshot
flowchart TD
A[Identify installments to forgive] --> B[Submit interest payment waiver command]
B --> C[Allocation clears components per product configuration]
C --> D[Schedule and delinquency recomputed like a repayment]
API Playbook
POST /v1/loans/{loanId}/transactions?command=interestPaymentWaiver
{
"locale": "en",
"dateFormat": "dd MMM yyyy",
"transactionDate": "25 Oct 2025",
"transactionAmount": 18.50,
"note": "On-time payment incentive",
"externalId": "IPW-2025-10-25-OT"
}Key points
- Loan must be Active (Fixed or Dynamic engine) and have outstanding components on at least one installment. Waivers can also be posted on loans that are technically Closed/Overpaid when policy allows.
- The Payment Waiver row in the loan product’s payment allocation strategy controls how the amount is split (e.g., Interest → Fee → Principal). If you need interest-only forgiveness, ensure interest is the only or first component in that allocation row.
- Because the command behaves like a repayment, you can post it on the current business date even when the installment is due later; Embarc updates the schedule immediately.
Tips for Operations Teams
- Keep a cheat sheet of the Payment Waiver allocation order for each product so agents know whether the waiver will touch principal as well as interest.
- If you need a one-off interest-only adjustment but the product allocation prioritises principal, temporarily edit the product’s Payment Waiver allocation or use
waiveinterestinstead. - Use this command for marketing programs or installment-by-installment incentives; use
waiveinterestfor broad interest forgiveness across the entire loan.
Baseline Example (Fixed Loan A)
Baseline A (Fixed Schedule) has installment #4 scheduled for 13 Apr 2026 with USD 91.33 interest and USD 974.86 principal (total USD 1,066.19). Posting an Interest Payment Waiver of USD 91.33 on the due date produces:
| Installment | Before waiver – Interest / Principal / Total | After waiver – Interest / Principal / Total | Notes |
|---|---|---|---|
| #4 (13 Apr 2026) | 91.33 / 974.86 / 1,066.19 | 0.00 / 974.86 / 974.86 | Fixed engine keeps the installment amount but drops only the interest piece, so borrowers now owe USD 974.86 on that date. |
Because Fixed products use the Payment Waiver allocation row through the standard repayment allocation (Interest → Principal), the command behaves like a cash repayment: no principal movement occurs unless your allocation row explicitly routes excess amounts into principal.
Transactions created (Baseline A)
| Date | Type | Total Amount | Allocation (Int / Principal) | Notes |
|---|---|---|---|---|
| 13 Apr 2026 | INTEREST_PAYMENT_WAIVER | 91.33 | 91.33 / 0.00 | Promo credit applied to installment #4 (allocation: Interest → Principal). |
Loan summary delta (Baseline A)
| Metric | Before | After | Impact |
|---|---|---|---|
| Principal outstanding | USD 8,158.11 | USD 8,158.11 | No change (no cash received). |
| Interest outstanding | USD 91.33 (installment #4) | USD 0.00 | Waiver cleared the interest bucket for installment #4. |
| Next due date | 13 Apr 2026 | 13 Apr 2026 | Due date unchanged; amount due now equals the remaining principal portion. |
Accounting snapshot (Baseline A)
| Entry | Debit | Credit | Amount |
|---|---|---|---|
| Reverse interest income | Interest Income (GL) | Loans Receivable (Interest component) | USD 91.33 |
Baseline Example (Dynamic Loan B)
Baseline B (see baseline-loans.md) has installment #4 scheduled for 21 Feb 2026 with USD 2.77 interest and USD 100.00 principal. Posting a Promo Interest Credit of USD 2.77 on 18 Feb 2026 produces:
| Installment | Before waiver – Interest / Principal / Total | After waiver – Interest / Principal / Total | Notes |
|---|---|---|---|
| #4 (21 Feb 2026) | 2.77 / 100.00 / 102.77 | 0.00 / 100.00 / 100.00 | Payment Waiver allocation treats the waiver as if the borrower paid the interest. Principal remains due. |
Unlike Baseline A, Dynamic loans can continue allocating any excess amount into fees or principal if your Payment Waiver row lists those components. In this example the row is Interest → Fees → Principal, so the waiver stops after clearing interest; if you supplied USD 5 instead of 2.77, the additional 2.23 would flow into fees (if present) and then principal.
No other installments change; the borrower simply sees installment #4 reduced by USD 2.77. Because the allocation row is Interest → Fees → Principal, only interest is cleared. Adjust the row if you ever need the waiver to touch fees or principal.
Transactions created
| Date | Type | Total Amount | Allocation (Int / Fee / Principal) | Notes |
|---|---|---|---|---|
| 18 Feb 2026 | INTEREST_PAYMENT_WAIVER | 2.77 | 2.77 / 0.00 / 0.00 | Promo credit applied to installment #4 (Payment Waiver allocation: Interest → Fees → Principal). |
Loan summary delta (Baseline B)
| Metric | Before | After | Impact |
|---|---|---|---|
| Principal outstanding | USD 300.00 | USD 300.00 | No change (no cash received). |
| Interest outstanding | USD 2.77 (installment #4) | USD 0.00 | Promo credit cleared the interest bucket. |
| Sub-status | Active | Active | Status unchanged. |
Accounting snapshot
| Entry | Debit | Credit | Amount |
|---|---|---|---|
| Reverse interest income | Interest Income (GL) | Loans Receivable (Interest component) | USD 2.77 |
AccrualBasedAccountingProcessorForLoan.createJournalEntriesForInterestPaymentWaiverOrInterestRefund(...) posts this entry immediately, so finance sees the waived interest the same day.
Verification checklist
- Call
GET /v1/loans/{loanId}?associations=repaymentSchedule,transactions,loanSummarybefore and after the command; confirmloanSummary.interestOutstandingdrops by USD 2.77. - Inspect
transactions[]and confirm a newINTEREST_PAYMENT_WAIVERentry exists with amount 2.77 and the expected note/externalId. - Check the repayment schedule: installment #4’s
interestDueshould be 0 whileprincipalDueremains USD 100. - Optional: review GL entries via your accounting bridge to see the debit/credit pair above.
Sandbox request template
POST /v1/loans/{{baselineDynamicLoanId}}/transactions?command=interestPaymentWaiver
{
"locale": "en",
"dateFormat": "dd MMM yyyy",
"transactionDate": "18 Feb 2026",
"transactionAmount": 2.77,
"note": "Promo interest credit – installment 4",
"externalId": "IPW-BL-B-0001"
}Replace {{baselineDynamicLoanId}} with the ID of your Baseline B clone in QA. Run the verification checklist above immediately after posting.
Updated about 1 month ago
