Interest Refund
Operational Use Cases
- Auto refunds on payouts/merchant returns: Let Embarc unwind accrued interest whenever you issue a
payoutRefundormerchantIssuedRefund. - Manual top-up: Add an interest refund later if the original refund skipped interest (e.g., you set
interestRefundCalculation=false) or if finance needs a rounded amount.
Supported on both Fixed Schedule and Dynamic Schedule products. The only requirements are:
- The loan product lists
supportedInterestRefundTypescontainingPAYOUT_REFUND,MERCHANT_ISSUED_REFUND, or both. - The target transaction is a non-reversed refund of one of those types.
Lifecycle Snapshot
flowchart TD
A[Refund posted] --> B{Interest refund auto-calculation enabled?}
B -->|Yes| C[Interest refund linked automatically]
B -->|No| D[Post manual interest refund later]
D --> C
C --> E[Schedule and GL updated]
API Moves
-
Automatic interest refund (default behaviour)
POST /v1/loans/{loanId}/transactions?command=payoutRefund { "transactionDate": "18 Feb 2026", "transactionAmount": 75, "locale": "en", "dateFormat": "dd MMM yyyy", "note": "Return to card", "interestRefundCalculation": true }- Embarc posts both
PAYOUT_REFUNDandINTEREST_REFUND(amount calculated from the referenced installments) and links them automatically.
- Embarc posts both
-
Manual interest refund
POST /v1/loans/{loanId}/transactions/{refundTransactionId}?command=interest-refund { "transactionAmount": 2.77, "locale": "en", "dateFormat": "dd MMM yyyy", "note": "Return promo interest" }- Use when the original refund set
interestRefundCalculation=falseor when you want to override the amount.
- Use when the original refund set
Field reminders
interestRefundCalculation(refund metadata) defaults totrue. Set it tofalseonly when policy says the refund should be principal-only.transactionAmountin the manual call must be positive and equals the exact interest you want to unwind.
Baseline Example (Dynamic Loan B)
Baseline B installment #4 (due 21 Feb 2026) has USD 2.77 interest and USD 100 principal. The merchant cancels the order and refunds USD 75 of principal.
- Merchant issues refund with
interestRefundCalculation=false(merchant only covers principal today). - Later, finance decides to return the USD 2.77 interest as well, so they run the manual interest refund.
Transactions created
| Date | Type | Amount | Allocation | Notes |
|---|---|---|---|---|
| 14 Feb 2026 | MERCHANT_ISSUED_REFUND | 75.00 | Principal 75.00 | Merchant paid back part of the loan; interestRefundCalculation=false. |
| 18 Feb 2026 | INTEREST_REFUND | 2.77 | Interest 2.77 | Manual command linked to the earlier refund transaction. |
Loan summary delta
| Metric | Before manual refund | After manual refund |
|---|---|---|
| Principal outstanding | USD 525.00 | USD 525.00 (unchanged by interest refund) |
| Interest outstanding | USD 2.77 | USD 0.00 |
| Next due installment | #4 still due 21 Feb 2026 but only principal remains |
Accounting snapshot
| Entry | Debit | Credit | Amount |
|---|---|---|---|
| Interest reversal | Interest Income | Loans Receivable (Interest component) | USD 2.77 |
Because the interest refund is linked to the merchant refund, undoing the merchant refund later will also reverse the interest refund.
Verification Checklist
GET /v1/loans/{loanId}?associations=transactions,repaymentSchedule,loanSummary– confirm a newINTEREST_REFUNDtransaction exists and the affected installment’sinterestOutstandingdrops accordingly.- If you set
interestRefundCalculation=trueon the refund itself, ensure you see the linked transactions immediately without running the manual command. - Subscribe to the interest-refund webhook (or your reporting feed) to reconcile GL entries in real time.
Use these steps to keep interest recognition accurate whenever refunds occur, regardless of whether they originated from Embarc (payout reversals) or external merchants.
Updated about 1 month ago
