# Maverick

<figure><img src="https://3790748257-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FT43PzcNjyZtWby9yrGd3%2Fuploads%2Fji3jdnKLIbNbTVUzVmft%2Fimage.png?alt=media&#x26;token=c527bd67-51d4-4b8a-b09a-b23f87ef329a" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
CheckoutChamp is integrated to [Maverick’s](https://maverickpayments.com) 3DS proprietary payment gateway
{% endhint %}

**STEP 1 - Activate Plugin**

Go to **Gateways | Gateway Integrations** and select the Maverick tile.

Select the <mark style="color:green;">**+ Activate**</mark> button.

<figure><img src="https://3790748257-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FT43PzcNjyZtWby9yrGd3%2Fuploads%2FkA04tS46ud4JtdPDF1UY%2Fimage.png?alt=media&#x26;token=f2906cbf-0633-46e1-afe1-b1d92d39e45d" alt=""><figcaption></figcaption></figure>

Specify your Maverick account credentials along with other gateway configuration details and select <mark style="color:green;">**Create Gateway**</mark>.&#x20;

**dbald** and **secCode** are specific to ACH processing.

Optionally choose to enable **3DSecure** processing.

Use **sendProductDetails** to send products with each sale.

Once the gateway is created, it can be assigned to campaign products and start processing payments.

<figure><img src="https://3790748257-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FT43PzcNjyZtWby9yrGd3%2Fuploads%2FWAxC3nf3f1kUTCUQTrUp%2Fimage.png?alt=media&#x26;token=dc3b2992-0a2f-46b3-b774-be7a94ec79ff" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
This next step can be ignored if using CheckoutChamp hosted pages
{% endhint %}

[**STEP 2 - 3D Secure processing**](#user-content-fn-1)[^1]

If using Secure 3DS be sure the checkout page supports the challenge requests

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

A step in the 3DS processing is passing browser information on the Order Import API call.

Review this example of one method to send browserData parameter.

```
browserData input to be added to checkout page:
<input type="hidden" name="browserData" value="" id="browserData">

Script to get browserData:
<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>
```

[^1]:
