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

# MyCPO

<figure><img src="/files/e3Qn04P6bEx5jMjyuBQm" 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="/files/gQ1uuuqmWEQWTCWp7U81" 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="/files/RssPWXK0IrZGgzZSTSnV" 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](/crm/gateway-setup/direct-api-3ds-instructions.md)

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


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://help.checkoutchamp.com/crm/gateway-setup/gateway-integrations/mycpo.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
