> For the complete documentation index, see [llms.txt](https://docs.enapi.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.enapi.com/roaming/how-to-send-a-roaming-offer.md).

# How to Send a Roaming Offer

Create and send a roaming offer — whether you're using ENAPI's standard contract, your own contract template, or uploading an externally signed agreement. Both CPOs and eMSPs can send roaming offers.

### Pick your path

ENAPI supports three paths (introduced in the [Roaming](/roaming.md)). Here's when each one applies:

<table><thead><tr><th width="251.57421875">Path</th><th>When to use it</th></tr></thead><tbody><tr><td><strong>ENAPI Standard Contract</strong></td><td>Default for most partnerships. Fastest path to going live.</td></tr><tr><td><strong>Custom Contract</strong></td><td>You have a reusable contract your legal team requires. Set up the template first in <a data-mention href="/roaming/custom-contract-templates.md">Custom Contract Templates</a>.</td></tr><tr><td><strong>Externally Signed Contract</strong></td><td>You've already signed an agreement with this partner outside of the platform and want to register it on ENAPI to enable data flows.</td></tr></tbody></table>

### Open the offer flow

Start from either:

* **Roaming → Offers →** *New Offer*, or
* **Roaming → Partners →** click the partner → *Make offer*

{% stepper %}
{% step %}

### Select your contract type

Choose one of the three paths below. What happens next depends on your choice.

<figure><img src="https://303450155-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FheBP0sH0U1Rrp1jIot9S%2Fuploads%2FeetbJ8pvfGHHbxbVuSky%2Fimage.png?alt=media&amp;token=62ea53e8-3969-463c-846a-c3952ed2ed06" alt=""><figcaption><p>Contract type selection.</p></figcaption></figure>

{% endstep %}

{% step %}

### Set up the contract

**If you chose ENAPI Standard Contract:** The contract is pre-loaded. Review the preview and check the confirmation box.

**If you chose Custom Contract:** Select the template from your library. Review the preview and check the confirmation box.

**If you chose Externally Signed Contract:** Upload your signed agreement (PDF). Enter the effective date and any reference details your records require.

{% hint style="info" %}
**Important for Dual-role partners.** If you operate as both a CPO and an eMSP, pick the role you're sending from. When the receiver is single-role, the role is set automatically.
{% endhint %}
{% endstep %}

{% step %}

### Configure the offer

#### Who receives it

* **All partners.** Send the offer to every eligible partner on ENAPI.
* **Specific partners.** Select one or more individual partners.

For **Externally Signed Contracts**, partner selection doesn't apply — the offer is tied to the specific partner you already signed with.

#### Advanced settings

* **Country filter.** Limit the offer to locations in specific countries. See [Roaming Offers Restrictions](/roaming/roaming-offers-restrictions.md).
* **Party filter.** Share only certain OCPI parties with the partner. See [Roaming Offers Restrictions](/roaming/roaming-offers-restrictions.md).
* **Activation date.** Go live immediately, or schedule a future date. Future-dated offers are common when migrating existing connections.

{% hint style="info" %}
**Filters affect visibility, not access.** Drivers can't see or navigate to filtered stations through the eMSP app. But if tokens are whitelisted at the charge point, they may still be able to charge by tapping their RFID card directly.
{% endhint %}

<figure><img src="https://303450155-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FheBP0sH0U1Rrp1jIot9S%2Fuploads%2FmZkCHGRXXWFongq0BMJ4%2FScreenshot%202026-04-24%20at%2017.52.54%20(1).png?alt=media&amp;token=409b2e2c-14f3-4175-add9-d0af07ec4fb3" alt="" width="563"><figcaption><p>Advanced settings for roaming offer.</p></figcaption></figure>
{% endstep %}

{% step %}

### Send

Track the offer under **Roaming → Offers → Sent**. The partner receives a notification to review and accept.

<figure><img src="https://303450155-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FheBP0sH0U1Rrp1jIot9S%2Fuploads%2FNQgomhQWznTLlOCoYfF6%2Fimage.png?alt=media&amp;token=b5ce8257-e29b-46aa-949d-040b0cfaa58f" alt=""><figcaption><p>Overview of sent offers.</p></figcaption></figure>
{% endstep %}
{% endstepper %}

### Sign in advance (recommended for General Offers)

Once the offer exists, collect your own signatures up front. We recommend this for any offer you send to all partners: it's the difference between each acceptance going live immediately and each one waiting in your signatory's inbox.

Open the offer and click **Presign**. Each of your signatories gets a one-time link to a signature page and signs without needing an ENAPI account. If you're sending to all partners, one presign covers every partner who accepts. See [How to Pre-sign an Offer](/roaming/how-to-pre-sign-an-offer.md).

### Final steps

**If you pre-signed the offer:** your signatures are applied automatically when the partner accepts, and the connection is set to *Active*. If you set a future activation date, it activates on that date instead.

**If you didn't pre-sign, or not every signature was collected:** you'll get an email with a signing link once the partner submits theirs. At that point the email is the only entry point to sign from your side, so watch your inbox.

**Once all signatures are in:** the agreement activates, and ENAPI marks the partnership as *Roaming*.

**To start exchanging data:** an initial data sync needs to happen. See [How ENAPI Syncs OCPI Data](/technical-documentation/how-enapi-syncs-ocpi-data.md)


---

# 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, and the optional `goal` query parameter:

```
GET https://docs.enapi.com/roaming/how-to-send-a-roaming-offer.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
