Chargeback
Operational Use Cases
- Processor reversals: A card, ACH, or digital wallet payment is clawed back by the network and the loan balance must be reinstated.
- Dispute investigations: Temporarily unwind a repayment while the dispute team reviews evidence.
- Merchant-originated refunds: A merchant issues a chargeback that should flow through the loan ledger without creating a new refund command.
Chargeback is available on both Fixed and Dynamic Schedule loans, but it is blocked when a Fixed loan has interest recalculation enabled. The command targets an existing repayment-like transaction (repayment, payout reversal, merchant credit, goodwill credit, interest payment waiver, or down payment) and posts a new CHARGEBACK transaction dated on the current business day.
How it behaves
- The original transaction must be active (not reversed) and not part of an account transfer. Written-off loans and transactions already involved in chargeback relations are rejected.
- The chargeback amount can be partial or full, but the sum of all chargebacks cannot exceed the original transaction amount.
- Embarc records a new
CHARGEBACKtransaction whose principal portion equals the requested amount. Interest/fee buckets are not touched because the original transaction already cleared them. - The loan sub-status does not change, but the repayment schedule is extended or regenerated (Dynamic engine) so the outstanding principal becomes due again. On Fixed loans without interest recalculation, the remaining installments simply increase by the chargeback amount.
- Cash-based accounting posts Debit Loan Portfolio / Credit Fund Source for the chargeback amount, reversing the earlier cash receipt.
- Undo is handled by reversing the chargeback transaction through the standard “undo” command (if necessary).
Lifecycle Snapshot
flowchart LR
A[Identify repayment to reverse] --> B[Submit chargeback command]
B --> C[Chargeback transaction recorded]
C --> D[Schedule and balances recomputed]
D --> E{Next step?}
E -->|Collect funds again| F[Gather repayment or refund]
E -->|Dispute resolved| G[Reverse chargeback if needed]
API Playbook
-
Call the chargeback endpoint
POST /v1/loans/{loanId}/transactions/{transactionId}?command=chargeback { "transactionAmount": 80.00, "paymentTypeId": 7, "note": "ACH return – dispute #45821", "externalId": "CB-2026-02-25-ACH" }transactionAmount(required): partial or full amount you want to reinstate (≤ original transaction amount).paymentTypeId(optional but recommended): pick a payment type such as Repayment Adjustment Chargeback for GL mapping.note/externalId: free-form fields for dispute IDs or processor references.- The transaction date is always the current Close of Business date; payload dates are ignored.
-
Validations to expect
- Original transaction must be of a supported type (repayment, payout reversal, merchant credit, goodwill credit, down payment, interest payment waiver) and not reversed.
- Loan must be active (not written off/closed) and cannot have Fixed Schedule + interest recalculation enabled.
- Chargeback amount plus prior chargebacks cannot exceed the original amount.
- Transactions that participated in account transfers or were generated by chargeback already cannot be chargebacked again.
Baseline Example (Dynamic Loan B)
Borrower paid installment #4 (USD 102.77) on 21 Feb 2026. The processor reverses USD 80.00 on 25 Feb 2026.
Before chargeback
| Metric | Value |
|---|---|
| Principal outstanding | USD 200.00 |
| Interest outstanding | USD 2.77 |
| Schedule | Installments #5–#6 remain (each USD 101.85 / 100.92) |
Chargeback request
POST /v1/loans/{{baselineDynamicLoanId}}/transactions/{repaymentTxnId}?command=chargeback
{
"transactionAmount": 80.00,
"paymentTypeId": 7,
"note": "Chargeback from ACH dispute",
"externalId": "CB-BL-B-0001"
}After chargeback
| Metric | Value |
|---|---|
| Principal outstanding | USD 280.00 |
| Interest outstanding | USD 2.77 (unchanged) |
| Schedule | Dynamic engine appends a new installment dated 25 Feb 2026 with USD 80.00 principal due (N+1 behavior). |
| Transactions | A CHARGEBACK transaction for USD 80.00 links back to the original repayment. |
Borrower balances now reflect the reinstated amount, and collections teams can pursue the new installment or capture another repayment.
Accounting snapshot
| Entry | Debit | Credit | Amount |
|---|---|---|---|
| Reverse cash collection | Loans Receivable – Principal (112601) | Fund Source / Cash (101100) | USD 80.00 |
If you specify a dedicated payment type (e.g., “Repayment Adjustment Chargeback”), Embarc routes the credit leg through the mapped funding account for that payment channel.
Verification checklist
GET /v1/loans/{loanId}?associations=transactions,loanSummary,repaymentScheduleto:- Confirm a new
CHARGEBACKtransaction with the business date and amount. - Review the
transactions.relations[]showing the link back to the original repayment. - Inspect the repayment schedule; Dynamic loans will show an extra installment or shifted amounts representing the reinstated balance.
- Confirm a new
- Check delinquency/collection data after the next Close of Business run—the reinstated balance will flow into the appropriate buckets automatically.
- (Optional) If you need to undo the chargeback, call
POST /v1/loans/{loanId}/transactions/{chargebackTxnId}?command=undobefore any newer user transactions occur.
Use chargebacks whenever the processor returns funds after a repayment so the loan’s principal, schedule, and GL remain accurate without manually crafting negative transactions.
Updated about 1 month ago
