> For the complete documentation index, see [llms.txt](https://help.konnektive.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.konnektive.com/konnektive-crm/gateway-setup/gateways/checkout.com.md).

# Checkout.com

<figure><img src="/files/VnKCY5IfDnKP0shajjAO" alt="" width="375"><figcaption></figcaption></figure>

{% hint style="info" %}
Checkout.com V2 gateway supports both Apple Pay and Google Pay. Obtain the token on your page and pass to Konnektive on the Import Order API call.
{% endhint %}

**STEP 1**

Obtain **AccessToken** from Checkout.com.  **AccessToken** is found in the API Keys section as noted in this screenshot.

If using Apple Pay or Google Pay then also obtain **PublicKey** in the API Keys section

<figure><img src="/files/7EbvWcAU3b90s1dQMMDq" alt=""><figcaption></figcaption></figure>

**STEP 2**

Activate and edit the CheckoutV2 gateway. Enter **AccessToken** from Step 1.  Do not enter **SecretKey**.

Enter **PublicKey** if using Apple Pay or Google Pay

Optionally enter **ProcessingChannelId** to process on a specific channel.

Optionally enter **clientId**.  This is your checkout.com account unique identifier.

Set **PaymentType** to Recurring or Unscheduled. More details are at the [bottom](#payment-type-additional-details) of this document.

Choose to process using **3DSecure**. This uses Checkout.com 3DS services. Use **force3DS** to require 3DS from Checkout.com.

Choose to send the descriptor using the **sendDescriptor** setting

Choose to send upsells as merchant-initiated with the **sendUpsellAsMIT** setting. By default upsells are sent as customer-initiated.

Choose to send item details using the **sendProductDetails** setting

Choose **useTestServer** for sandbox testing only

**STEP 3**

If there is a requirement to implement Checkout.com fraud prevention, then implement risk.js onto your checkout page and pass the resulting device\_session\_id into Import Order API as fraudSessionId.

<https://www.checkout.com/docs/business-operations/prevent-fraud/integrate-with-risk-js>

**STEP 4**

Add the hidden input browserData inside of the same form as the card input.

`<input type="hidden" name="browserData" value="" id="browserData">`

**STEP 5**

Add this script to your page before the closing body tag.

```
<script type="text/javascript">
    const navigator = window.navigator;
    const browserData = {
        acceptHeader: 'application/json',
        userAgent: navigator.userAgent,
        language: navigator.language,
        timezone: (new Date()).getTimezoneOffset().toString(),
        colorDepth: screen.colorDepth,
        screen: {
            height: screen.height.toString(),
            width: screen.width.toString()
        },
        javaScriptEnabled: true,
        javaEnabled: navigator.javaEnabled()
    };
    document.getElementById('browserData').value = JSON.stringify(browserData);
</script>
```

**STEP 6**

Your checkout and upsale pages must support standard merchant redirect handling

[Basic 3DS Instructions](https://help.checkoutchamp.com/crm/gateway-setup/direct-api-3ds-instructions)

#### Payment Type Additional Details

Payment Type will be sent to Checkout.com as Recurring, Unscheduled, or Regular

**Recurring (default)**

* If any item in the checkout or upsell has recurring products, the payment type is set to "recurring."
* If **sendUpsellAsMIT** is enabled, the checkout and upsell will both be marked as recurring, even if there are no recurring products present.
* The payment type is set to "recurring" for all rebills
* In all other cases the payment type is set to “regular”

**Unscheduled**

* If any item in the checkout or upsell contains recurring products, the payment type is set to "unscheduled."
* If **sendUpsellAsMIT** is enabled, the checkout and upsell will both be marked as unscheduled, even if there are no recurring products present.
* The payment type is set to "unscheduled" for all rebills
* In all other cases the payment type is set to “regular”

**Regular**

* A payment type of "regular" is sent when there are no recurring items in the checkout or upsell, and **sendUpsellAsMIT** is disabled.

**Apple Pay and Google Pay**

* The payment type is set based on the conditions above
* If the Apple Pay or Google Pay token is not passed on upsell, the transaction is sent as merchant-initiated with the payment token obtained from Checkout.com on the checkout.
* If the Apple Pay or Google Pay token is passed on upsell, that token is sent to Checkout.com instead of the checkout token.
