Skip to content

Mollie

Mollie is an internationally active payment service provider supporting a wide range of payment methods. The Mollie for FinDock package provides integration with the Mollie service and supports many Mollie payment methods.

Please note that your contract with Mollie needs to include the payment methods you activate in FinDock. Also be aware that FinDock does not set a specific collection or due date when sending payment instructions to Mollie. The date is determined by Mollie and varies based on the payment method.

Payment methods

Payment MethodCurrencyOne-timeRecurringInitial RecurringRefunds
BancontactEUR
CardMultiRequired
iDEAL - WeroEUR
PayPalMulti
SEPA Direct DebitEUR
SofortEUR

Integration patterns

Prerequisites

  • FinDock is installed and configured.
  • WebHub is connected.
  • You have a Mollie merchant account.

Install the Mollie extension

Follow the standard procedure for installing payment processors to add the Mollie payment extension and activate payment methods.

Check and assign the required permissions. If you are using custom permission set groups, ensure the package-specific permission sets are assigned.

Configure Mollie payment extension

To configure the Mollie extension:

  1. Launch the FinDock app and click the FinDock Setup tab.
  2. Click Processors & Methods in the left-hand menu.
  3. On the Installed tab, click the Mollie processor entry.
  4. On the Accounts tab, click Add account.
  5. For the merchant account you want to integrate, add the following details:
    • Merchant Account Name: Enter a name for your Mollie target (merchant account)
    • Default Account: Enable on the account you want used when no account is specified in a payment intent call to the Payment API
    • Is Test: Enable if you are setting up a test environment. When testing, ensure you have enabled test mode if your Mollie account is approved for production. Only approved accounts can disable test mode. When marked as a test account, FinDock only uses the test credentials.
  6. In a separate browser tab, log in to your Mollie account dashboard and go to Developers > API-keys.
    Mollie API keys
  7. Copy the test and production API keys from your Mollie dashboard to the corresponding fields in the Mollie extension account settings.
  8. Click Save.

SEPA Direct Debit options with Mollie

If you use Mollie for SEPA Direct Debit payments, ensure the FinDock Core mandate service is set to automatically create mandates.

For direct debit payments created through the Payment API, including PayLinks and Giving Pages, FinDock creates mandates based on the mandate service settings. Upon creation, the mandates get the status Pending registration. There is no mandate reference at this point, nor is the mandate activate.

The Core mandate service automatically checks for mandates with Pending registration status sends messages asynchronously to Mollie to register the new mandates. When this process is completed, the mandate status changes to Success, the Active checkbox is marked, and the Reference field contain a Mollie-generated reference value.

Once the mandate is active, installments are collected through payment schedule as normal.

If a SEPA Direct Debit payment is created by a Salesforce user, you only need to create the recurring payment and payment profile.

To manually create Salesforce records for new SEPA Direct Debit payments:

  1. Create a payment profile for the payer with record type IBAN.
  2. Fill in the required fields for the payer's bank account.
  3. Create a new recurring payment and link it to the payment profile.
  4. Wait for FinDock to create and register the mandate.
  5. Once the mandate is active, run payment schedules to collect installments.

If you are creating Salesforce records for a migration that includes existing mandates, be sure to set the migrated mandates to active with status Success. The existing Mollie Mandate Id also needs to be added to the Reference field.

Mandates that should no longer be used for collection can be deactivated by emptying the Active checkbox on the record. This can be done manually for each Mandate record or automated through Salesforce tooling.

Payment method parameters

The Payment API PaymentMethods endpoint returns payment method attributes, like does it support recurring payments, along with parameters that may be optional or required. The attributes and parameters are provided here for reference. The parameter descriptions here are in some cases extended beyond the API response to provide additional guidance.

Processor: PaymentHub-Mollie

Name: Bancontact
IsDefault: true | false (default processor for method; based on org config)
SupportsRecurring: false

descriptionstring

Explanation or purpose of the payment that payers see on their account transactions.

Example:"Thank you for your payment of invoice 123ABC457XYZ."
localestring

Language indicator tags (see JDK13 specification) used to determine the language of the payment page.

Example:"nl-BE"

Name: CreditCard
IsDefault: true | false (default processor for method; based on org config)
SupportsRecurring: true
InitialPaymentOnRecurring: required (read more)

descriptionstring

Explanation or purpose of the payment that payers see on their account transactions.

Example:"Thank you for your payment of invoice 123ABC457XYZ."
localestring

Language indicator tags (see JDK13 specification) used to determine the language of the payment page.

Example:"en-US"

Name: Ideal
IsDefault: true | false (default processor for method; based on org config)
SupportsRecurring: false

descriptionstring

Explanation or purpose of the payment that payers see on their account transactions.

Example:"Thank you for your payment of invoice 123ABC457XYZ."
issuerenum

Defines issuing bank. Use this parameter to skip the bank selection screen and send payers directly to their bank's authorization environment. Supported values: abnamro, asnbank, bunq, ing, knob, n26, nationale-nederlanden, rabobank, revolut, snsbank, snsregiobank, triodosbank, vanlanschot, yoursafe.

localestring

Language indicator tags (see JDK13 specification) used to determine the language of the payment page.

Example:"nl-NL"

Name: PayPal
IsDefault: true | false (configured default processor for method)
SupportsRecurring: false

descriptionstring

Explanation or purpose of the payment that payers see on their account transactions.

Example:"Thank you for your payment of invoice 123ABC457XYZ."
localestring

Language indicator tags (see JDK13 specification) used to determine the language of the payment page.

Example:"en-US"

Name: Direct Debit
IsDefault: true | false (default processor for method; based on org config)
SupportsRecurring: true
InitialPaymentOnRecurring: unsupported (read more)

bicstring

Bank identification code of the payer's bank.

Example:"ABNANL2AXXX"
descriptionstring

Explanation or purpose of the payment that payers see on their account transactions.

Example:"Thank you for your payment of invoice 123ABC457XYZ."
holderNamestringrequired

Name of the owner of the payer's bank account.

Example:"Test Payer"
ibanstringrequired

The IBAN of the payer's bank account.

Example:"NL13TEST0123456789"

Name: Sofort
IsDefault: true | false (default processor for method; based on org config)
SupportsRecurring: false

descriptionstring

Explanation or purpose of the payment that payers see on their account transactions.

Example:"Thank you for your payment of invoice 123ABC457XYZ."
localestring

Language indicator tags (see JDK13 specification) used to determine the language of the payment page.

Example:"de-DE"

Payment API messages

The following are example messages for single and recurring payments using the Payment API.

One-time iDEAL payment

{
    "SuccessURL": "https://www.example.com/success",
    "FailureURL": "https://www.example.com/error",
    "Payer": {
        "Contact": {
            "SalesforceFields": {
                "FirstName": "Test",
                "LastName": "Payer",
                "Email": "testpayer@findock.com"
            }
        }
    },
    "OneTime": {
        "Amount": "36"
    },
    "PaymentMethod": {
        "Name": "Ideal",
        "Processor": "PaymentHub-Mollie"
    },
    "Settings": {
        "SourceConnector": "PaymentHub"
    }
}

Recurring card payment

{
    "SuccessURL": "https://www.example.com/success",
    "FailureURL": "https://www.example.com/error",
    "WebhookURL" : "https://webhook.site/9b9e84ca-1026-434e-a4a0-0d9f93a29587",
    "Payer": {
        "Contact": {
            "SalesforceFields": {
                "FirstName": "Test",
                "LastName": "Payer",
                "Email": "testpayer@findock.com"

            }
        }
    },
    "OneTime": {
        "Amount": "25"
    },
     "Recurring": {
          "Amount": "25",
          "Frequency": "Monthly",
          "StartDate": "2021-04-01"
     },
    "PaymentMethod": {
        "Name": "CreditCard",
        "Processor": "PaymentHub-Mollie"
    },
    "Settings": {
        "SourceConnector": "PaymentHub"
    }
}