How FinDock handles payments
Getting payment data into your Salesforce CRM is valuable in itself, but the ultimate goal is getting money on your organization’s bank account. Here we present the basic tools available to do just that.
Accepting and collecting online payments
Most payment methods can be accepted through digital channels. You can connect your front-end payment form (app, web page, etc.) to the FinDock Payment API or set up web pages using FinDock Giving Pages. The basic flow looks like this:
- Customer enters personal information in the front-end payment form.
- Details are sent to FinDock for creation, update (or deduplication) of contact record.
- If required by the payment method, additional authorization details are requested and captured by the PSP (e.g. through a Hosted Payment Page).
- Notification(s) of payment transactions are sent to FinDock for creation of payment records.
- Follow-up communication, such as a thank-you message or payment confirmation, is sent to the customer according to your customer relations flow.
When you collect online payments through a PSP, FinDock does not store all payment details like credit card numbers or bank accounts, but a token provided by the PSP that can be used for future payments.
Initial payment for recurring payments
PSPs offer a variety of options for initial payment when setting up a new recurring payment. Typically used with recurring credit card payments, a PSP may require in initial payment, make it option, or not allow it at all.
The FinDock Payment API tells you what is allowed with payment method parameter, InitialPaymentonRecurring
. This is only available through custom front-end integrations and FinDock Giving Pages.
The parameter is returned by the GET PaymentMethods
endpoint. The returned options are:
- Required: The recurring payment setup must include a one-time payment block.
- Optional: The recurring payment setup may include a one-time payment block.
- No: The recurring payment setup must not include a one-time payment block.
If an initial payment is required or optional, you use the OneTime
block to set the first payment. Below is an example of an API POST message where InitialPaymentonRecurring
is required.
{
"Recurring": {
"Amount": 10,
"Frequency": "Monthly",
"StartDate": "2023-01-01",
"EndDate": "2024-01-01"
},
"OneTime": {
"Amount": 10
},
"SuccessURL": "https://www.example.com/success",
"FailureURL": "https://www.example.com/failure",
"Payer": {
"Contact": {
"SalesforceFields": {
"FirstName": "First",
"LastName": "Last",
"Email": "first.last@email.address",
}
}
},
"PaymentMethod": {
"Name": "CreditCard"
}
}
The RecurringRequiresInitialPayment
is deprecated in favor of InitialPaymentonRecurring
.
Accepting and collecting offline payments
Some one-time payments and future installments of recurring payments are collected with a delay when the payer is not present, or “offline” as it is sometimes called.
For these offline payments, you use a payment schedule to send instructions to the processor to collect the payments. Payment schedules can be run once, regularly over a specific period, or configured to run automatically. This gives you fine-grained control over when, what and how you collect your payments.
While the payment schedule tool itself remains the same regardless of the payment method and processor, FinDock automatically handles the related installments according to the given method and processor.
If the payment collection is through an integrated PSP, the collection is handled via API calls. If the collection is through a bank or service bureau, FinDock generates the required file, uploads it to Chatter, from where it is manually (or in some cases automatically) transferred to the bank or service bureau.
Mandate management
A "mandate" is the authorization payers give you to collect money from their accounts. When using external processors, managing these authorizations is largely the role of your PSP.
For payment methods natively processed through FinDock, we provide complete mandate handling. This includes both outbound and inbound mandate-related instructions.
File types generated by FinDock
The following table includes the file types that FinDock generates through payment or mandate schedule runs. These files are generated when FinDock is used as a native payment processor.
File | Name | Payment Method | Description | Format |
---|---|---|---|---|
Autogiro Mandate File | Mandate File | Autogiro direct debit | Mandate setup instructions for Bankgirot service | 80-character fixed length |
Autogiro Payment Initiation | Payment Initiation | Autogiro direct debit | Payment collection instructions for Bankgirot service | 80-character fixed length |
DDI | Direct Debit Instruction | Bacs Direct Debit | Mandate setup instructions for the Bacs Service | Standard 18 |
DD collection file | Direct Debit payment instruction | Bacs Direct Debit | Payment collection instructions for the Bacs Service | Standard 18 |
HMRC file | Charities Online Filing | Gift Aid | Charity tax claim for UK donations | HMRC XML for Gift Aid submissions |
Pain.001 | Customer Credit Transfer Initiation | SEPA Credit Transfer | Instruction from debtor organization to transfer funds to creditor | ISO 20022 |
Pain.008 | Customer Direct Debit Initiation | SEPA Direct Debit, SEPA CBI | Instruction from creditor organization to collect from debtor | ISO 20022 |
Pain.009 | Mandate Initiation Request | SEDA | Instruction from creditor organization to set up a direct debit mandate | ISO 20022 |
Pain.010 | Mandate Amendment Request | SEDA | Instruction from creditor organization to change a direct debit mandate | ISO 20022 |
Pain.011 | Mandate Cancellation Request | SEDA | Instruction from creditor organization to cancel a direct debit mandate | ISO 20022 |