Installment

Api name: cpm__Installment__c

The installment object might be the most important object in FinDock, it represents a single amount receivable, and it will continue to represent this particular amount receivable, meaning that you can always track if this amount was paid, when, and in the case of a reversal or refund, you can track it back to the exact installment that is involved.

Example: In January you collect 100 from the bank account of a customer using Direct Debit. In February you do the same. In March the customer reverses the January transaction. Because FinDock will always link transactions and payments back to the original installment, it will actually be the installment of January that is reversed, even though we already have a February installment that has been collected after that.

All transactions that go through FinDock will eventually be linked to an installment.

Record Types

The installment object currently has the following available Record Types:

  • "Receivable" wich is used for all standard installments.
  • "GiftAid" which is only available if the Gift aid package is installed, and is used to track gift aid claim installments.

Key Fields

Some of the key fields on the installment object are:

  • Amount: this defines the initial starting amount for this amount receivable
  • Open Amount: this describes how much of the original amount is still due
  • Status: this field reflects the overall status of this installment (collected, reversed, outstanding, etc.)
  • Source: The source package this Installment is connected to.
  • Payment Method: reflects the current planned payment method to be used for collection of the amount receivable. However, this does not limit the payment methods that could be used to close this installment. (for instance, a Direct Debit installment can still be closed with a Credit card payment).
  • Due date: the date this amount receivable is supposed to be paid
  • Payment reference: a unique code provided by the payment extension to identify this transaction
  • GUID: a unique identifier created by FinDock, this can be used to reference this installment through the Payment API

Installment Statuses and Counters

The Installment comes with a list of different statuses. Each status can be categorized as ‘open’ or ‘closed,’ similar to opportunity stages. For all the different closed Installment statuses, FinDock comes with two fields:

  • Last status Date: stores on insert of a payment under the Installment. The value from the field Collection Date of the payment is taken. For the statuses ‘Failed’ and ‘Cancelled’, 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 this specific status
StatusExplanationInstallment Date FieldInstallment Status Counter
CollectedThis installment is paid for at least the full amount or even more.Last Collection Date (cpm__Last_Collection_Date__c)Collection Count (cpm__Collection_Count__c)
ReversedThis installment was paid, but has been reversed, the reason is stated in the last reason code received field.Last Reversal Date (cpm__Last_Reversal_Date__c)# of times Reversed (cpm__of_times_reversed__c)
RejectedThis installment was never paid, but has been rejected by the payment processor; the reason is stated in the last reason code received field.Last Rejected Date (cpm__Last_Rejection_Date__c)# of times Rejected (cpm__of_times_rejected__c)
OutstandingThis installment is awaiting payment, but there is no active process collecting the money, meaning the payment will come in through either bank transfer or some other external system.Open status, therefore not applicable.Open status, therefore not applicable.
CancelledThis installment is cancelled and no payment is expectedLast Cancelled Date (cpm__Last_Cancelled_Date__c)# of times Cancelled (cpm__of_times_cancelled__c)
RefundedThis installment was 'Paid back' to the debtor, and no new payment is expectedLast Refunded Date (cpm__Last_Refunded_Date__c)# of times Refunded (cpm__of_times_refunded__c)
PendingThis installment is currently in processing and a result (positive or negative) is expectedOpen status, therefore not applicable.Open status, therefore not applicable.
Pending processingThis 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 recollectionThis 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.
FailedThis installment could not be processed, check the last status reason for more detailsLast Failed Date (cpm__Last_Failed_Date__c)# of times Failed (cpm__of_times_failed__c)
Partially paidA payment was received, but not for the full amount of this Installment. so a certain amount is still expected to be paid.Open status, therefore not applicable.Open status, therefore not applicable.
NewThis installment is ready for processingOpen status, therefore not applicable.Open status, therefore not applicable.

Customizing the installment object

Customizations to the installment object should be done with care. Creating additional custom fields is supported, and these can even be supplied through the Payment API. However, it is not recommended to make any custom field you create a required field (at field level or through validation rule). You can still require users to enter the value by making it a required field on page-layout level. For more information, see Make a Custom Field required.

warning

Most of the installments are created automatically by the system. Do not introduce customizations that negatively affect the installments and might not allow it to be inserted or updated. Doing so can compromise the data integrity of FinDock.

Payment References and GUIDs

Every installment that is being processed through FinDock is automatically assigned a GUID (Globally Unique Identifier). These identifiers can be used when referencing the installment in a paylink for instance. Of course, every installment also has a Salesforce Id, however these Id’s are hexadecimal numbers that are created in order. And as such, based on a single installment Id, it is possible to guess the following id’s by simply adding +1 to the Id. When using GUIDs this is no longer possible.