# MyCPO

<figure><img src="https://3790748257-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FT43PzcNjyZtWby9yrGd3%2Fuploads%2FpxDllDn37FIRGsARDarc%2Fimage.png?alt=media&#x26;token=906a239e-b7c6-434f-9f65-b716df90e33c" alt="" width="518"><figcaption></figcaption></figure>

**STEP 1 - Activate Gateway**

Go to **Gateways | Gateway Integrations** and select the MyCPO 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%2FukUGYNacF7fYhA5w5hXH%2Fimage.png?alt=media&#x26;token=b0c305ac-f38a-41e2-a4e5-e62e10ec89ab" alt="" width="375"><figcaption></figcaption></figure>

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

**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%2FdeBdyrOpFMGq9ulWrZji%2Fimage.png?alt=media&#x26;token=b2a3f250-1449-4924-9c1a-e9c68e07dded" alt="" width="375"><figcaption></figcaption></figure>

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

**STEP 2 - 3D Secure processing**

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>
```
