Skip to main content

Adyen

FinDock supports several payment methods through Adyen, a Dutch payment service provider that is today a global payments company.

Multi-merchantMulti-currency
yesyes
Payment MethodOne-timeRecurringRefunds
Cardyesyesyes
Bancontactyes--yes
iDEALyes--yes
Sofortyes--yes

Pre-requisites

  • FinDock installed and configured
  • A working WebhHub connection
note

If you plan on using the Sofort payment method in certain countries, you need to contact the Adyen Support Team. For further information, please see the Adyen documentation.

Install and activate Adyen for FinDock

Follow the standard procedure for installing and activating the Adyen payment extension.

Check and assign the required permissions for FinDock and Adyen features. Ensure all package-specific permission sets are correctly assigned.

Set up an Adyen account

Configuring the Adyen for FinDock payment extension requires an Adyen account. You need to configure the account and use setting values from the account for the FinDock settings in Salesforce.

The following steps guide you through a FinDock integration with an Adyen test account. Once you have completed testing, the same integration steps can be used with your live Adyen account.

To set up an Adyen test account:

  1. Sign up for a text account at Adyen.
  2. After successful registration, log in to your account.
  3. Go to Developer > API credentials and click the Web Service user.
    API credentials Web Service user
  4. Click Generate API key.
    Generate API key
  5. Copy and save the generated API key for later. This key is needed to communicate with Adyen over the FinDock Payment API.
  6. Scroll down to Permissions and expand Accounts.
  7. Select the option to assign a specific account to these credentials and add your desired account. (Keep this account name handy as you'll need it for the FinDock extension settings).
    Adyen account assignment
  8. For Live (Production) accounts: Go to Developer > API URLs and copy the URL for the Live Checkout API up until /checkout as described here. Do not include the /[version]/[method] part!
  9. Add the copied URL from the previous step to your org Remote Site Settings.

Configure Adyen for FinDock

To configure the Adyen payment extension:

  1. Launch the FinDock app and click Setup.
  2. Click the Adyen for FinDock tile under Payment Extensions.
  3. Enter the generated API key and name of the assigned account from the procedure above.
  4. Activate Is Test if you are in a test phase and don’t want to process real payments.
  5. For Live (Production) accounts, enter the Checkout API URL in the Production Checkout Endpoint field.
  6. Repeat the above steps for each account if you are setting up Adyen for multi-merchant use. Activate Is Default for the account (Target) that is your default account with Adyen.

Configure notifications in Adyen

To configure notifications in Adyen:

  1. In the Adyen for FinDock settings, copy the Notification URL.
  2. Go back to your Adyen portal and select the account you are integrating with FinDock.
  3. Navigate to Develop > Webhooks and click the + Webhook button.
  4. Click Add next to Standard Webhook.
    Adyen add standard webhook
  5. Under Server configuration, fill in the following and click Apply.
    • URL: paste the FinDock notification URL you copied above.
    • Method: select HTTP Post
    • Encryption protocol: select TLSv1.2 or TLSv1.3
  6. Open Additional Settings and select the following and click Apply for each area.
    • Bank:
      • Include Bank Account Details
    • Card:
      • Include Card Holder
      • Include card info for recurring contract notifications
      • Include Card Bin
      • Include Shopper Details
    • Payment:
      • Include Shopper Interaction
  7. Click Save Changes when you are done and then enable the webhook with the toggle at the top of the settings page.

Enable offer closed webhook

Adyen can send an OFFER_CLOSE webhook event if a payer abandons a payment journey (after being redirected to the online banking method). When FinDock receives this event, the related installment is set to Failed.

This event is not available by default. You need to contact Adyen Support to get this event enabled for your account.

Optional API parameters for Adyen

When initiating payments through the API, additional processor-specific parameters can and/or need to be included for a particular payment method. You can check these parameters by calling the /PaymentMethods or /PaymentProcessors endpoints. For more information, see our API Reference Guide.

A particularly important optional parameter for Adyen is the Pay by Link expiration time. These links expire in 24 hours unless you set a specific expiration time using the expiresAt parameter. For further information, please see the Adyen Docs.

If you use the expiration time override, you need to specify a time in minutes instead of a ISO 8601 timestamp. FinDock takes care of calculating the correct ISO 8601 timestamp on the fly. So, in the PaymentIntent you would add the following, for example, to tell Adyen that the link should expire in 60 minutes from the time of the API call.

{
"expiresAt":"60"
}

iDEAL issuer

If you would like to eliminate the step in the Adyen payment journey where customers make their own online banking selection from the list of official iDEAL issuers, you can use the optional issuer parameter to set a specific issuer. When this is use, the customer is taken directly to the online banking service of the issuer.

Note, too, that Adyen has its own set of iDEAL issuers for testing purposes and only uses the official issuers in production. When an Adyen configuration is in test mode, FinDock bypasses its normal set of iDEAL issuers and overrides any issuer in the API message to Adyen with a test issuer value.

Testing iDEAL issuers

If you need to test iDEAL payments with a custom Adyen integration to the FinDock API (or using FinDock Giving Pages or PayLinks), you need to use specific issuer values to confirm the integration is working as expected. The following table provides the values you can use for testing purpose. Any other issuer not included in the table results in a succesful payment.

FinDock API issuerAdyen Test IssuerOutcome
ing1151Success
abn1162Cancelled
rabo1161Pending
bunq1160Refused

Payment API messages

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

One-time payment

{
"SuccessURL": "https://www.example.com/success",
"FailureURL": "https://www.example.com/error",
"Payer": {
"Contact": {
"SalesforceFields": {
"FirstName": "Eric",
"LastName": "Johnson",
"Email": "eric@johnson.com"
}
}
},
"OneTime": {
"Amount": "30"
},
"PaymentMethod": {
"Name": "CreditCard",
"Processor": "PaymentHub-Adyen"
},
"Settings": {
"SourceConnector": "PaymentHub"
}
}

Recurring payment

{
"SuccessURL": "https://www.example.com/success",
"FailureURL": "https://www.example.com/error",
"Payer": {
"Contact": {
"SalesforceFields": {
"FirstName": "Eric",
"LastName": "Johnson",
"Email": "eric@johnson.com"

}
}
},
"OneTime": {
"Amount": "25"
},
"Recurring": {
"Amount": "25",
"Frequency": "Monthly",
"StartDate": "2020-11-01"
},
"PaymentMethod": {
"Name": "CreditCard",
"Processor": "PaymentHub-Adyen"
},
"Settings": {
"SourceConnector": "PaymentHub"
}
}