Credit Balance Refund
Operational Use Cases
- Overpayment return: Borrower sends more than the outstanding balance (duplicate ACH, manual transfer) and expects the surplus back.
- Standing-instruction cleanup: Auto-debit keeps running after closure; use this command to return the extra cash and move the loan from Overpaid → Active (or Closed if zero balance remains).
Works for both Fixed Schedule and Dynamic Schedule loans because it only touches loan transactions, not the repayment schedule.
Lifecycle Snapshot
flowchart TD
A[Loan status is Overpaid] --> B[Submit credit balance refund command]
B --> C[Credit balance refund transaction posted]
C --> D{Credit still remaining?}
D -->|Yes| E[Loan stays Overpaid]
D -->|No| F[Loan returns to Active or Closed]
API Playbook
-
Confirm the balance
GET /v1/loans/{loanId}?associations=loanSummaryEnsure
loanSummary.status = Overpaidand notetotalOverpaid. -
Post the refund
POST /v1/loans/{loanId}/transactions?command=creditBalanceRefund { "transactionDate": "18 Feb 2026", "transactionAmount": 25.00, "paymentTypeId": 2, "note": "Return duplicate ACH", "externalId": "CBR-2026-02-18-001", "locale": "en", "dateFormat": "dd MMM yyyy" } -
Verify
- Check
loanSummary.totalOverpaiddrops by the refunded amount. - Confirm a
CREDIT_BALANCE_REFUNDtransaction exists with your payment metadata. - If
totalOverpaidhits zero, the loan status automatically reverts to Active (or stays Closed if the principal balance is already zero).
- Check
Baseline Example (Fixed Loan A)
Baseline A has USD 50.00 more than required after the borrower prepays the final installment. Operations need to return USD 30.00 and leave USD 20.00 on the account for future adjustments.
Transactions created
| Date | Type | Amount | Notes |
|---|---|---|---|
| 15 Jan 2027 | CREDIT_BALANCE_REFUND | 30.00 | Returned duplicate ACH; externalId=CBR-50-A-1. |
Loan summary delta
| Metric | Before | After |
|---|---|---|
| Status | Overpaid | Overpaid (remaining USD 20.00) |
| Total overpaid | USD 50.00 | USD 20.00 |
| Principal/interest outstanding | 0.00 | 0.00 |
If you repeat the command for the remaining USD 20.00, the loan transitions to Active (or Closed if no principal remains) because the credit balance is cleared.
Tips for Operations Teams
- Always coordinate with payouts: the API records the refund, but you still need to send money through your payments rail (ACH, wire, etc.).
- Use
externalIdto tie the refund to your payout batch for audit and idempotency. - Run Close of Business after high-volume refunds so GL/export files reflect the reduced receivable balance.
- Don’t use this command for merchant/lender-driven reversals—that’s what
merchantIssuedRefundandpayoutRefundare for.
Following this sequence keeps credit balances under control while preserving clean audit and accounting records.
Updated about 1 month ago
