This object represents refunds. Various situations require full or partial refunds of a loan. Depending on the refund amount and whether the borrower has made payments, a refund may also trigger a reimbursement to the borrower.
The refund endpoint will execute a full or partial refund according to the refundAmount
specified.
A full refund is equal to the amountFinancedAtOrigination
. An atFaultParty
must also be specified,
in order to trigger the corresponding accounting entries related to billing for the refund.
Loan Refund
{- "refundDate": "2019-08-24",
- "refundAmount": 0,
- "atFaultParty": "loanOwner",
- "caseId": "string",
- "sendNotice": true,
- "refundDetails": {
- "description": "Refund",
- "pointOfSaleType": "online",
- "categoryId": "string",
- "merchantId": "string",
- "merchantName": "string",
- "metadata": { }
}
}
{- "status": 0,
- "message": "string",
- "data": {
- "refundDate": "2019-08-24",
- "refundAmount": 0,
- "originalAmount": 0,
- "isFullRefund": true,
- "atFaultParty": "loanOwner",
- "caseId": "string",
- "refundDetails": {
- "description": "Refund",
- "pointOfSaleType": "online",
- "categoryId": "string",
- "merchantId": "string",
- "merchantName": "string",
- "metadata": { }
}, - "timestamps": {
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "canceledAt": "2019-08-24T14:15:22Z"
}
}
}
Returns a list of all prior refunds for the loan, as well as the remaining eligible refund amount.
Loan Refund
{- "status": 0,
- "message": "string",
- "data": {
- "eligibleRefundAmount": 0,
- "refunds": [
- {
- "refundDate": "2019-08-24",
- "refundAmount": 0,
- "originalAmount": 0,
- "isFullRefund": true,
- "atFaultParty": "loanOwner",
- "caseId": "string",
- "refundDetails": {
- "description": "Refund",
- "pointOfSaleType": "online",
- "categoryId": "string",
- "merchantId": "string",
- "merchantName": "string",
- "metadata": { }
}, - "timestamps": {
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "canceledAt": "2019-08-24T14:15:22Z"
}
}
]
}
}
Cancel a refund.
Loan Refund
{- "cancellationReason": "wrongAmountOrDetails",
- "cancellationReasonDetails": "string",
- "caseId": "string"
}
{- "status": 0,
- "message": "string",
- "data": {
- "refundDate": "2019-08-24",
- "refundAmount": 0,
- "originalAmount": 0,
- "isFullRefund": true,
- "atFaultParty": "loanOwner",
- "caseId": "string",
- "refundDetails": {
- "description": "Refund",
- "pointOfSaleType": "online",
- "categoryId": "string",
- "merchantId": "string",
- "merchantName": "string",
- "metadata": { }
}, - "timestamps": {
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "canceledAt": "2019-08-24T14:15:22Z"
}
}
}
The refund endpoint will execute a full or partial refund according to the refundAmount
specified.
The total of all refunds cannot exceed the amountFinanced
(or principalAmount
) passed at origination.
A refund is applied in the following way:
refundDetails.refundNonDuePrincipalAmount
.serviceCreditType=refund
.
This transaction will be applied on the loan using the "payment waterfall".
This amount will be stored as refundDetails.refundTransactionAmount
.serviceCreditType=refund
, if there is any remaining unapplied
refund amount, it will be recorded as credit to the borrower (also called reimbursementAmount
or amount owed to borrower.)refundDate
.Please consider the following before creating refunds:
refundDate
equals the activation date.refundAmount
equals the amount financed.isRefundOriginationFees
, isRefundLateFees
and isRefundOtherFees
set to true
.isRefundMDR
and isRefundDownPayment
- set these attributes depending on your policy.refundDate
equals the activation date.refundAmount
equals a partial refund amount.isRefundOriginationFees
, isRefundLateFees
and isRefundOtherFees
- set these values depending on your policy.isRefundMDR
- set this attribute depending on your policy.isRefundDownPayment
- set to false
. To remind: this attribute can be true
only for a full refund.refundDate
equals an effective date of the refund (or keep empty to indicate "today").refundAmount
equals a partial refund amount.isRefundOriginationFees
, isRefundLateFees
and isRefundOtherFees
set to false
.isRefundMDR
- set to false
. To remind: this attribute can be true
only if refundDate
equals the activation date.isRefundDownPayment
- set to false
. To remind: this attribute can be true
only for a full refund.Loan Refund
{- "externalId": "string",
- "refundDate": "2019-08-24",
- "refundTimeOfDay": {
- "hour": 12,
- "minute": 1,
- "second": 0
}, - "refundAmount": 0,
- "atFaultParty": "loanOwner",
- "caseId": "string",
- "isRefundOriginationFees": false,
- "isRefundLateFees": false,
- "isRefundOtherFees": false,
- "feesExceptionList": [ ],
- "isRefundDownPayment": false,
- "isRefundMDR": false,
- "sendNotice": true,
- "refundDetails": {
- "refundTransactionId": "string",
- "refundNonDuePrincipalAmount": 0,
- "refundTransactionAmount": 0,
- "description": "Refund",
- "merchantId": "string",
- "merchantName": "string",
- "metadata": { }
}
}
{- "status": 0,
- "message": "string",
- "data": {
- "externalId": "string",
- "id": "string",
- "refundDate": "2019-08-24",
- "refundAmount": 0,
- "originalAmount": 0,
- "isFullRefund": true,
- "atFaultParty": "loanOwner",
- "status": "settled",
- "caseId": "string",
- "cancellationCaseId": "string",
- "cancellationReason": "wrongAmountOrDetails",
- "cancellationReasonDetails": "string",
- "createdBy": {
- "id": "string",
- "name": "string",
- "userType": "agent",
- "descriptor": "Agent bob@acme.com",
- "employee": {
- "id": "string"
}
}, - "canceledBy": {
- "id": "string",
- "name": "string",
- "userType": "agent",
- "descriptor": "Agent bob@acme.com",
- "employee": {
- "id": "string"
}
}, - "isRefundOriginationFees": false,
- "isRefundLateFees": false,
- "isRefundOtherFees": false,
- "feesExceptionList": [ ],
- "isRefundDownPayment": false,
- "isRefundMDR": false,
- "refundDetails": {
- "refundTransactionId": null,
- "refundNonDuePrincipalAmount": null,
- "refundTransactionAmount": null,
- "description": "Refund",
- "merchantId": "string",
- "merchantName": "string",
- "metadata": { }
}, - "timestamps": {
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "canceledAt": "2019-08-24T14:15:22Z"
}
}
}