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 waiveinterest instead.
  • Use this command for marketing programs or installment-by-installment incentives; use waiveinterest for 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:

InstallmentBefore waiver – Interest / Principal / TotalAfter waiver – Interest / Principal / TotalNotes
#4 (13 Apr 2026)91.33 / 974.86 / 1,066.190.00 / 974.86 / 974.86Fixed 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)

DateTypeTotal AmountAllocation (Int / Principal)Notes
13 Apr 2026INTEREST_PAYMENT_WAIVER91.3391.33 / 0.00Promo credit applied to installment #4 (allocation: Interest → Principal).

Loan summary delta (Baseline A)

MetricBeforeAfterImpact
Principal outstandingUSD 8,158.11USD 8,158.11No change (no cash received).
Interest outstandingUSD 91.33 (installment #4)USD 0.00Waiver cleared the interest bucket for installment #4.
Next due date13 Apr 202613 Apr 2026Due date unchanged; amount due now equals the remaining principal portion.

Accounting snapshot (Baseline A)

EntryDebitCreditAmount
Reverse interest incomeInterest 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:

InstallmentBefore waiver – Interest / Principal / TotalAfter waiver – Interest / Principal / TotalNotes
#4 (21 Feb 2026)2.77 / 100.00 / 102.770.00 / 100.00 / 100.00Payment 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

DateTypeTotal AmountAllocation (Int / Fee / Principal)Notes
18 Feb 2026INTEREST_PAYMENT_WAIVER2.772.77 / 0.00 / 0.00Promo credit applied to installment #4 (Payment Waiver allocation: Interest → Fees → Principal).

Loan summary delta (Baseline B)

MetricBeforeAfterImpact
Principal outstandingUSD 300.00USD 300.00No change (no cash received).
Interest outstandingUSD 2.77 (installment #4)USD 0.00Promo credit cleared the interest bucket.
Sub-statusActiveActiveStatus unchanged.

Accounting snapshot

EntryDebitCreditAmount
Reverse interest incomeInterest 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

  1. Call GET /v1/loans/{loanId}?associations=repaymentSchedule,transactions,loanSummary before and after the command; confirm loanSummary.interestOutstanding drops by USD 2.77.
  2. Inspect transactions[] and confirm a new INTEREST_PAYMENT_WAIVER entry exists with amount 2.77 and the expected note/externalId.
  3. Check the repayment schedule: installment #4’s interestDue should be 0 while principalDue remains USD 100.
  4. 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.