> For the complete documentation index, see [llms.txt](https://integrations.impact.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://integrations.impact.com/integration-guides/for-brands/tracking-integrations/ftp-online-sale/introduction.md).

# Introduction to FTP (Online Sale)

If you're tracking online sales, you can submit a batch of conversion data from your site via a .CSV file uploaded via an FTP/SFTP/FTPS connection. This integration method is useful in circumstances where you can't integrate JavaScript (e.g., impact.com's Universal Tracking Tag) or server-side API calls onto your site.

{% hint style="success" %}
**Note:** This article covers the FTP Integration for a Performance Program. Learn more about how to [Integrate with SFTP for your Advocate Program](https://integrations.impact.com/integration-guides/for-brands/advocate/advocate-tracking-integrations/sftp-import-integration-for-advocate-programs).
{% endhint %}

## How it works

1. impact.com tracking links will dynamically populate your site's landing page URLs with an `im_ref` value. Store the `im_ref` value in a first-party cookie or server-side session. For single-domain sites, no special handling is required. If your checkout is on a different top-level domain, pass the `im_ref` value via a URL parameter or a server-side session, as cookies cannot be transferred across distinct domains. For subdomains, set the cookie at the top-level domain (e.g., `.yourbrand.com`).
2. Online sales that occur on your site (conversions) are recorded via the system you use to track your conversions. This data needs to be populated in a .CSV file, along with the recorded `im_ref` value (among other required parameters) present when a visitor converted.
3. You’ll submit a .CSV file with your conversion data and other required parameters that’s uploaded to impact.com. This file can be submitted in three ways:
   * Upload directly via an FTP/SFTP/FTPS to impact.com's server
   * [Email](/integration-guides/for-brands/tracking-integrations/ftp-online-sale/implementation.md#email) the file as an attachment to a unique address assigned to your account
   * Have impact.com pull the file from your own FTP server

### Server and connection rules

To ensure reliable file delivery and avoid system lockouts, configure your file transfer client according to these network requirements:

* **SFTP Failback:** If you experience connection failures when using SFTP (`sftp://batch.impact.com`, port 22), this may be due to host key algorithm compatibility. Use standard FTP (`ftp://batch.impact.com`, port 21) instead.
* **Connection Limits (421 Lockout):** impact.com's FTP servers enforce connection limits. Exceeding concurrent connections or accumulating failed login attempts will trigger a 421 lockout. If you're automating uploads, use retry logic with back-off delays rather than rapid reconnection.

{% hint style="warning" %}
**Warning:** Integrating with impact.com requires web development expertise. It's strongly recommended to enlist the help of a skilled web developer to complete the integration.
{% endhint %}

## Check before integrating

* See [Create an Event Type](https://help.impact.com/brand/what-would-you-like-to-learn-about/platform-features/event-types/create-an-event-type) for the steps to create your FTP event type.


---

# 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://integrations.impact.com/integration-guides/for-brands/tracking-integrations/ftp-online-sale/introduction.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
