Legacy API
Create the tenant
POST https://api.fsflt.net/customerarea/customers/new
Field | Type | Required | Description |
|---|---|---|---|
email | string | yes | Login e-mail of the customer |
password | string | yes | Initial password |
customer_name | string | yes | First name / account name |
customer_surname | string | no | Last name |
country_code | string | yes | ISO 3166-1 alpha-2 (e.g. IT) |
industry_code | number | yes | Industry ID — see directory/industries |
company_name | string | yes | Required for every industry except family |
customer_code | string | no | Dealer code. A distributor uses it to register the customer under that dealer |
lang | string | no | EN, IT, ES, DE— default EN |
phone | string | no | Phone number |
skype | string | no | Skype contact |
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": "[email protected]",
"password": "Str0ngPassword",
"customer_name": "Mario",
"customer_surname": "Rossi",
"country_code": "IT",
"industry_code": 1,
"company_name": "Rossi Srl",
"lang": "IT"
}'{ "code": 200, "content": { "customer_code": 12345 } }Store the returned customer_code: it is the legacy tenant key for all subsequent calls.
Legacy error conditions
Body code | Meaning |
|---|---|
401 | Invalid token or unauthorized admin |
406 | Cannot register the customer as a reseller (you must be a distributor) |
409 | E-mail already registered |
422 | Validation error (field-level details in errors) |
428 | Cannot register the customer (you must be a reseller or distributor) |
Legacy endpoints often return HTTP 200even for business errors. Always parse the codeinside the JSON body, not only the HTTP status.
Inspect available licenses
GET https://api.fsflt.net/customerarea/licenses/available
Optional filters: customer_code, lang, version_code, license_duration(months), license_code, currency_code.
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'{
"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 GET /customerarea/directory/licenses/versions (0 = Cloud Pro, 1 = Cloud ProPlus).
Activate a license
POST https://api.fsflt.net/customerarea/licenses/assign
Field | Type | Required | Description |
|---|---|---|---|
license_code | string | yes | Code from licenses/available |
license_info | string | yes | Free-text description (e.g. Headquarter) — letters, digits, dashes and spaces only |
customer_code | number | no | Target customer; defaults to your own account |
accept_notifications | boolean | no | Default true |
currency_code | string | no | Default EUR |
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"
}'{
"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 license_id — it is required by suspend/enable/remove.
Demo license
POST https://api.fsflt.net/customerarea/licenses/demo — assigns a trial license to the customer. Body: customer_code, lang, accept_notifications. Returns the same shape as licenses/assign.
Other license operations
Method | Endpoint | Body | Notes |
|---|---|---|---|
GET / POST | /customerarea/customers/licenses | customer_code, lang | Licenses of a given customer |
POST | /customerarea/customers/licenses/remove | customer_code, license_id | Only allowed within 3 days of assignment |
POST | /customerarea/licenses/suspend | customer_code, license_id | Stops renewal |
POST | /customerarea/licenses/enable | customer_code, license_id | Resumes renewal |
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.
# 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
GET https://api.fsflt.net/customerarea/auth/token returns a short-lived (15 min) token that authenticates the customer directly into the web panel, without a password:
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 }'{ "code": 200, "content": { "token": "AUTH_TOKEN", "expiration": "15 min" } }Then redirect the customer to https://cloud.flashstart.com/?auth_token=YOUR_AUTH_TOKEN (or https://YOUR_WHITELABEL/?auth_token=...). The token is already URL-encoded.