# Checkout.com

FinDock supports [Checkout.com](https://www.checkout.com/), an global provider of finance tools to businesses, from startups and name brands.

| [Multi-merchant](/docs/payment-processors/multi-merchant-accounts-for-psps) | [Multi-currency](/docs/payment-processors/multiple-currency-support-in-findock) |
|  --- | --- |
|  |  |


| Payment Method | [Online Payment Flow](/docs/payments/accepting-payments-with-findock#online-payment-collection) | [Integration Patterns](/docs/payments/accepting-payments-with-findock#online-integration-patterns) | [Data Entry](/docs/payments/accepting-payments-with-findock#data-entry) | One-time | Recurring | [Refunds](/docs/payment-processors/payment-methods/payment-methods-overview#refunds) |
|  --- | --- | --- | --- | --- | --- | --- |
| [Bancontact](/docs/payment-processors/payment-methods/bancontact) | Online Redirect | API | No |  |  |  |
| [Card](/docs/payment-processors/payment-methods/cards) | Online Redirect | API | No |  |  |  |
| [iDEAL - Wero](/docs/payment-processors/payment-methods/ideal) | Online Redirect | API | No |  |  |  |


You need to register separately with Checkout.com to be able to use iDEAL and Bancontact payment methods.

## Prerequisites

* FinDock is installed and configured.
* A working connection to ProcessingHub and WebHub.
* Registered [Hosted Payments Page](https://www.checkout.com/docs/payments/accept-payments/accept-a-payment-on-a-hosted-page/manage-your-hosted-payments-page)


## Install and activate Checkout.com extension

Follow the standard procedure for [installing](/docs/setup/install-findock) and [activating](/docs/setup/add-payment-extensions) the Checkout.com for FinDock payment extension.

Check and assign the [required permissions](/docs/setup/general-permission-guidance). If you are using custom permission set groups, ensure the [package-specific permission sets](/docs/setup/permission-set-groups#checkout-com-permission-sets) are assigned.

## Set up Checkout.com at The Hub

1. Sign up and log in to [The Hub](https://hub.checkout.com).
2. Under Settings, go to Channels and scroll down to Webhooks. Click **New Webhook**.
![Checkout.com Hub new webhook](/assets/checkout-com-hub-new-webhook.cd3c3835c92a59d4df7e4c2dd015f7c5c96628f30c5b144c3754ae20a57c8a91.f78e0b2f.png)
3. As Endpoint URL use your Notification URL from the Checkout.com for FinDock settings (see below).
4. Select API version 2.0.
5. Check the following event types:
  * Dispute canceled
  * Dispute won
  * Payment approved
  * Payment canceled
  * Payment capture declined
  * Payment captured
  * Payment chargeback
  * Payment declined
  * Payment expired
  * Payment pending
  * Payment refund declined
  * Payment refunded
6. Click **Create webhook**.
7. Under Channel settings, generate API keys as needed.
![Checkout.com API keys](/assets/checkout-com-hub-api-keys.3c9294a67f911dc2ac4635d6b7efbc6c59148db9904b764e36425816bfa7d8ec.f78e0b2f.png)
8. Scroll down and click **Save changes** when you are done.


The URLs under Channel settings are handled different depending on the payment method you use.

## Configure Checkout.com extension

To configure the Checkout.com payment 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 Checkout.com processor entry.
4. Click the edit icon next to the Main account in the accounts table.
5. Fill in the target settings as described below.
  * **Notification URL**: this value is automatically filled by the Notification Gateway.
  * **Public key, Secret key (production)**: if you are setting up a production org, copy-paste your public and secret keys for production from your account in The Hub.
  * **Public key, Secret key (test)**: if you are setting up a sandbox org, copy-paste your public and secret keys for testing from your account in The Hub.
  * **Is Test**: enable if you are setting up a sandbox org
  * **Log Requests**: enable to log all API requests
6. Click **Save**.


## Refunds

The Checkout.com for FinDock extension supports full refunds of credit card payments. Refunds are initiated from your account at The Hub.

![Checkout.com Hub dashboard](/assets/checkout-com-hub-dashboard.ecddb2da54a8f85aa72ccef55c51078004146766bef9cd4542ada03b3a52aa1b.f78e0b2f.png)

Installments collected through [payment schedules](/docs/payments/creating-approval-processes-for-bulk-collection-runs) can be refunded based on the installment reference only.

## Payment API

To test your Checkout.com configuration, you can use the following API messages.

### Single credit card payment


```json
{
    "SuccessURL": "https://www.example.com/success",
    "FailureURL": "https://www.example.com/error",
    "Payer": {
        "Contact": {
            "SalesforceFields": {
                "FirstName": "Test",
                "LastName": "Payment",
                "Email": "testpayment@findock.com"
            }
        }
    },
    "OneTime": {
        "Amount": "15"
    },
    "PaymentMethod": {
        "Name": "Creditcard",
        "Processor": "PaymentHub-Checkout.com",
        "Parameters": {
            "billingCountry" : "UK"
        }
    },
    "Settings": {
        "SourceConnector": "PaymentHub"
    }
}
```

### Recurring credit card payment


```json
{
    "SuccessURL": "https://www.example.com/success",
    "FailureURL": "https://www.example.com/error",
    "WebhookURL" : "https://webhook.site/365d03f8-977f-4fc3-9b01-256cf51e71bb",
    "Payer": {
        "Contact": {
            "SalesforceFields": {
                "FirstName": "Test",
                "LastName": "Payment",
                "Email": "testpayment@findock.com"

            }
        }
    },
    "OneTime" : {
        "Amount" : "0.01"
    },
    "Recurring": {
        "Amount": "40",
        "Frequency": "Monthly",
        "StartDate": "2020-12-21"
    },
    "PaymentMethod": {
        "Name": "Creditcard",
        "Processor": "PaymentHub-Checkout.com",
        "Parameters": {
            "billingCountry" : "UK"
        }
    },
    "Settings": {
        "SourceConnector": "PaymentHub"
    }
}
```