Installment
API name: cpm__Installment__c
Description
The Installment object is central to FinDock payment management. It represents an amount that is collected or paid out. The amount can change over time (e.g. due to refunds, late fees and so forth.)
All monetary transactions that go through FinDock are linked to an installment record. The Installment record types are:
- Receivable: you collect the amount from the payer
- Payable: you remit the amount to another party
- Gift Aid: the amount is collected from the UK government through the Gift Aid scheme
Fields
The following table outlines key fields for this object. For complete details, please use the Salesforce Object Manager.
Label | Type | Description |
---|---|---|
Amount | Currency(16,2) | The initial, full amount of the installment |
Due date | Date | The date the amount should be collected or paid out |
Last Collection Date | Date | The date money was last received; the date is take from the Collection Date of the most recent related Payment record. |
Open Amount | Currency(16,2) | The remainder of the amount still to be pad |
Payment Method | Picklist | The payment method intended to be used for collecting or paying out the amount; this does not limit payment methods in practice |
ProcessingHub Id | Text(255) | External Id of the synced record on ProcessingHub. NOTE: If you clone an installment, this field must be cleared. If the field is not empty, the next ProcessingHub process fails with a cardinality violation error. |
Source | Picklist | The source of the installment where business logic payments management is implemented (e.g. FinDock Standalone or Fundraising) |
Status | Picklist | The current status of the installment (see below) |
Status and counters
Every installment record has a status. Each status is considered either ‘open’ or ‘closed’ (similar to NPSP Opportunity stages). In addition to the Status field itself, the Installment object has to other fields used to manage status changes.
- Last status date: this date is stored on insert of a payment for the installment. The date value comes from the Collection Date field of the payment record. If the installment has Failed and Cancelled status, today's date is stored on the installment on status change instead of on insert of a payment.
- # of times statused: stores the number of times the installment was put to the current status.
Status | Explanation | Installment Date Field | Installment Status Counter |
---|---|---|---|
Cancelled | This installment is cancelled and no payment is expected. | Last Cancelled Date (cpm__Last_Cancelled_Date__c ) | # of times Cancelled (cpm__of_times_cancelled__c ) |
Collected | The (receivable) installment is paid for the full amount or more. | Last Collection Date (cpm__Last_Collection_Date__c ) | Collection Count (cpm__Collection_Count__c ) |
Failed | This installment could not be processed; check the Last Status Reason field for details. | Last Failed Date (cpm__Last_Failed_Date__c ) | # of times Failed (cpm__of_times_failed__c ) |
New | This installment is ready for processing | Open status, therefore not applicable. | Open status, therefore not applicable. |
Outstanding | This installment is awaiting payment, but there is no active process to collect the money. | Open status, therefore not applicable. | Open status, therefore not applicable. |
Paid | The installment has been paid out. Used for installments with record type Payable, but can also be applied to Receivable installments through customization. | Last Paid Date (cpm__Last_Paid_Date__c ) | # of times Paid (cpm__of_times_paid__c ) |
Partially paid | A payment was collected, but not for the full amount of the receivable installment, so the Open Amount field is not 0 (zero). Can also apply to Payable installment, in which case it means the disbursed amount is not the full amount. | Open status, therefore not applicable. | Open status, therefore not applicable. |
Pending | This installment is currently in processing and a result (positive or negative) is expected | Open status, therefore not applicable. | Open status, therefore not applicable. |
Pending Processing | This installment is currently in processing and a result (positive or negative) is expected (this status is used for specific payment processors only) | Open status, therefore not applicable. | Open status, therefore not applicable. |
Pending recollection | This installment was reversed, but is now scheduled for re-collection at the next collection run. | Open status, therefore not applicable. | Open status, therefore not applicable. |
Refunded | This installment was 'Paid back' to the debtor, and no new payment is expected | Last Refunded Date (cpm__Last_Refunded_Date__c ) | # of times Refunded (cpm__of_times_refunded__c ) |
Rejected | This installment was never paid, but has been rejected by the payment processor; the reason is stated in the Last ReasonCode Received field. | Last Rejected Date (cpm__Last_Rejection_Date__c ) | # of times Rejected (cpm__of_times_rejected__c ) |
Reversed | This installment was paid, but has been reversed, the reason is stated in the Last ReasonCode Received field. | Last Reversal Date (cpm__Last_Reversal_Date__c ) | # of times Reversed (cpm__of_times_reversed__c ) |
Installment GUIDs and payment references
Every installment that is processed through FinDock is automatically assigned a GUID (Globally Unique Identifier). These identifiers can be used when referencing the installment in a link for instance.
Each installment record has a payment reference. This reference can come from different sources, so three fields are used:
- Custom Payment Reference: optional field for customized reference value
- Final Payment Reference: the reference value used for the installment
- Generated Payment Reference: an auto-generated reference value for the installment