---
title: Legacy API
slug: legacy-api
createdAt: 2026-11-02T08:43:14.733Z
---

## Create the tenant

<font color="#EF4444">`POST https://api.fsflt.net/customerarea/customers/new`</font>

| **Field**                                       | **Type** | **Required** | **Description**                                                                   |
| ----------------------------------------------- | -------- | ------------ | --------------------------------------------------------------------------------- |
| <font color="#EF4444">`email`</font>            | string   | yes          | Login e-mail of the customer                                                      |
| <font color="#EF4444">`password`</font>         | string   | yes          | Initial password                                                                  |
| <font color="#EF4444">`customer_name`</font>    | string   | yes          | First name / account name                                                         |
| <font color="#EF4444">`customer_surname`</font> | string   | no           | Last name                                                                         |
| <font color="#EF4444">`country_code`</font>     | string   | yes          | ISO 3166-1 alpha-2 (e.g. IT)                                                      |
| <font color="#EF4444">`industry_code`</font>    | number   | yes          | Industry ID — see directory/industries                                            |
| <font color="#EF4444">`company_name`</font>     | string   | yes          | Required for every industry except *family*                                       |
| <font color="#EF4444">`customer_code`</font>    | string   | no           | **Dealer code.** A distributor uses it to register the customer under that dealer |
| <font color="#EF4444">`lang`</font>             | string   | no           | EN, IT, ES, DE— default EN                                                        |
| <font color="#EF4444">`phone`</font>            | string   | no           | Phone number                                                                      |
| <font color="#EF4444">`skype`</font>            | string   | no           | Skype contact                                                                     |

```curl
curl -X POST 'https://api.fsflt.net/customerarea/customers/new' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -H 'X-API-KEY: YOUR_LEGACY_API_KEY' \
  -d '{
    "email": "customer@example.com",
    "password": "Str0ngPassword",
    "customer_name": "Mario",
    "customer_surname": "Rossi",
    "country_code": "IT",
    "industry_code": 1,
    "company_name": "Rossi Srl",
    "lang": "IT"
  }'
```

```json
{ "code": 200, "content": { "customer_code": 12345 } }
```

Store the returned <font color="#EF4444">`customer_code`</font>: it is the **legacy** tenant key for all subsequent calls.

## Legacy error conditions

| **Body&#x20;**<font color="#EF4444">`code`</font> | **Meaning**                                                            |
| ------------------------------------------------- | ---------------------------------------------------------------------- |
| <font color="#EF4444">`401`</font>                | Invalid token or unauthorized admin                                    |
| <font color="#EF4444">`406`</font>                | Cannot register the customer as a reseller (you must be a distributor) |
| <font color="#EF4444">`409`</font>                | E-mail already registered                                              |
| <font color="#EF4444">`422`</font>                | Validation error (field-level details in errors)                       |
| <font color="#EF4444">`428`</font>                | Cannot register the customer (you must be a reseller or distributor)   |

:::hint{type="info"}
Legacy endpoints often return HTTP 200even for business errors. **Always parse the codeinside the JSON body**, not only the HTTP status.
:::

## Inspect available licenses

<font color="#EF4444">`GET https://api.fsflt.net/customerarea/licenses/available`</font>

Optional filters: <font color="#EF4444">`customer_code`</font>, <font color="#EF4444">`lang`</font>, <font color="#EF4444">`version_code`</font>, <font color="#EF4444">`license_duration`</font>(months), <font color="#EF4444">`license_code`</font>, <font color="#EF4444">`currency_code`</font>.

```curl
curl 'https://api.fsflt.net/customerarea/licenses/available?lang=IT&version_code=0' \
  -H 'Accept: application/json' \
  -H 'X-API-KEY: YOUR_LEGACY_API_KEY'
```

```json
{
  "code": 200,
  "content": [
    {
      "license_code": "CL_Q_A005-M1",
      "license_name": "Business Filter License",
      "license_duration_months": "1",
      "license_version": "0",
      "license_quantity": "5 users",
      "license_points": 0.5,
      "license_amount": 5,
      "license_amount_currency": "EUR"
    }
  ]
}
```

License versions can be listed with <font color="#EF4444">`GET /customerarea/directory/licenses/versions`</font> (<font color="#EF4444">0</font> = Cloud Pro, <font color="#EF4444">`1`</font> = Cloud ProPlus).

## Activate a license

<font color="#EF4444">`POST https://api.fsflt.net/customerarea/licenses/assign`</font>

| **Field**                                           | **Type** | **Required** | **Description**                                                                                                   |
| --------------------------------------------------- | -------- | ------------ | ----------------------------------------------------------------------------------------------------------------- |
| <font color="#EF4444">`license_code`</font>         | string   | yes          | Code from <font color="#EF4444">`licenses/available`</font>                                                       |
| <font color="#EF4444">`license_info`</font>         | string   | yes          | Free-text description (e.g. <font color="#EF4444">`Headquarter`</font>) — letters, digits, dashes and spaces only |
| <font color="#EF4444">`customer_code`</font>        | number   | no           | Target customer; defaults to your own account                                                                     |
| <font color="#EF4444">`accept_notifications`</font> | boolean  | no           | Default <font color="#EF4444">`true`</font>                                                                       |
| <font color="#EF4444">`currency_code`</font>        | string   | no           | Default <font color="#EF4444">`EUR`</font>                                                                        |

```curl
curl -X POST 'https://api.fsflt.net/customerarea/licenses/assign' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -H 'X-API-KEY: YOUR_LEGACY_API_KEY' \
  -d '{
    "customer_code": 12345,
    "license_code": "CL_Q_A005-M1",
    "license_info": "Headquarter",
    "accept_notifications": true,
    "currency_code": "EUR"
  }'
```

```json
{
  "code": 200,
  "content": {
    "customer": "Rossi Srl",
    "license_id": "13343",
    "start_date": "2026-10-27",
    "expiry_date": "2026-11-26",
    "deducted_amount": 5,
    "currency_code": "EUR"
  }
}
```

Store <font color="#EF4444">`license_id`</font> — it is required by suspend/enable/remove.

## Demo license

<font color="#EF4444">`POST https://api.fsflt.net/customerarea/licenses/demo`</font> — assigns a trial license to the customer. Body: <font color="#EF4444">`customer_code`</font>, <font color="#EF4444">`lang, accept_notifications`</font>. Returns the same shape as <font color="#EF4444">`licenses/assign`</font>.

## Other license operations

| **Method**                          | **Endpoint**                                                           | **Body**                                                 | **Notes**                                    |
| ----------------------------------- | ---------------------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------- |
| <font color="#EF4444"> / </font>    | <font color="#EF4444">`/customerarea/customers/licenses`</font>        | <font color="#EF4444">`customer_code, lang`</font>       | Licenses of a given customer                 |
| <font color="#EF4444">`POST`</font> | <font color="#EF4444">`/customerarea/customers/licenses/remove`</font> | <font color="#EF4444">`customer_code, license_id`</font> | Only allowed **within 3 days** of assignment |
| <font color="#EF4444">`POST`</font> | <font color="#EF4444">`/customerarea/licenses/suspend`</font>          | <font color="#EF4444">`customer_code, license_id`</font> | Stops renewal                                |
| <font color="#EF4444">`POST`</font> | <font color="#EF4444">`/customerarea/licenses/enable`</font>           | <font color="#EF4444">`customer_code, license_id`</font> | Resumes renewal                              |

:::hint{type="info"}
The reference page declares GETfor /customerarea/customers/licenseswhile its cURL example uses POST. Start with GETand fall back to POSTif you receive 405, and confirm with the provider for your account.
:::

```curl
# Suspend renewal
curl -X POST 'https://api.fsflt.net/customerarea/licenses/suspend' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -H 'X-API-KEY: YOUR_LEGACY_API_KEY' \
  -d '{ "customer_code": "12345", "license_id": "13343" }'
```

## Optional: one-time login link for the customer

<font color="#EF4444">`GET https://api.fsflt.net/customerarea/auth/token`</font> returns a short-lived (15 min) token that authenticates the customer directly into the web panel, without a password:

```curl
curl 'https://api.fsflt.net/customerarea/auth/token' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -H 'X-API-KEY: YOUR_LEGACY_API_KEY' \
  -d '{ "customer_code": 12345 }'
```

```json
{ "code": 200, "content": { "token": "AUTH_TOKEN", "expiration": "15 min" } }
```

Then redirect the customer to <font color="#EF4444">`https://cloud.flashstart.com/?auth_token=YOUR_AUTH_TOKEN`</font> (or <font color="#EF4444">`https://YOUR_WHITELABEL/?auth_token=...`</font>). The token is already URL-encoded.
