> 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/cardstream.md).

# Cardstream

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

**STEP 1**

Obtain merchantID and merchantSecret from cardstream. If you intend to send merchantPwd, please configure it on your Merchant Account with cardstream. Optionally choose to enable 3D Secure.

<figure><img src="/files/moZaECcRUdfK47rGpqei" alt=""><figcaption></figcaption></figure>

**STEP 2**

Activate and edit the Cardstream gateway. Add your credentials.

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

<figure><img src="/files/oHMwEFYm9WW9QgKIhYdn" alt="" width="437"><figcaption></figcaption></figure>

{% hint style="info" %}
Steps 3-5 can be skipped if using CheckoutChamp hosted pages
{% endhint %}

**STEP 3**

{% hint style="info" %}
For Secure 3DS it may be required to pass browserData and ipAddress on the Import Order API call.
{% endhint %}

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

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

**STEP 4 (if not using CheckoutChamp page builder)**

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

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

**STEP 5**

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

[Basic 3DS Instructions](/crm/gateway-setup/direct-api-3ds-instructions.md)
