# Activation Modes

The ActivationMode field allows to choose *when* a data package starts to be valid.&#x20;

#### **Three activation options are available:**

* NOW: The data package activates immediately upon purchase (used by default).
* FIRST\_USE: The data package activates only when the customer first connects to a network in the coverage area, perfect for travellers who want to start their package automatically when they reach their destination.
* ON\_DEMAND: The data package activates when explicitly triggered via the API, provides full control over the activation timing.

{% hint style="info" %}
**ON\_DEMAND** activation is only available for **Worldwide** and **Regional** data packages.
{% endhint %}

Data packages using the options `FIRST_USE` or `ON_DEMAND` have a 90-day period to be fully activated. If the plan remains inactive after this period, the packages will automatically activate, and the validity will begin.

This options are available in the following endpoints:

* `/gigastore/activations/register`
* `/gigastore/activations/top-up-with-profile`
* `/gigastore/activations/top-up`

The `activationMode` field is optional and defaults to NOW, ensuring existing integrations continue to work seamlessly.

#### Best practices

* Use `ON_DEMAND` for worldwide packs, as most people will already be located in a coverage area from the data package.
* Use `FIRST_USE` activation for single-country and regional packs, as most people won't be located already in a coverage area.

#### Important notes:

* For FIRST\_USE or ON\_DEMAND modes, the `activatedAt` field in the Balance schema will be empty until activation, and the `expiresAt` field represents the latest date the package can be activated. \
  If the plan remains inactive by this date, it will automatically activate.
* Once activated, `activatedAt` is set to the current timestamp, and `expiresAt` is updated to reflect the package's duration from the activation time.
* A `salesDate` field in the `activatedItem` schema indicates when the package was sold, distinct from `activatedAt`, which reflects the actual activation time.

#### Endpoint for On-Demand Activation.

To support the ON\_DEMAND activation mode, the following endpoint should be used:\
`POST /gigastore/activations/activated-items/{uid}/activate`

This endpoint activates the balance of an item by its UID. \
UID in this case it's UID from `activatedItem` in response to `POST /gigastore/activations/register` endpoint.\
It also can be used for manual activation a FIRST\_USE package before using it.
