Platform Types
Supported platforms for authentication and service access (SKU-based)
Supported Platforms
The API supports the following platforms for sign-in, SSO, and sessions. Each platform that requires subscription access (livestream, app, scanners) is validated by SKU: the user must have at least one active product SKU for that service.
| Platform | Value | Display Name | SKU validation |
|---|---|---|---|
| Mobile App | app | Mobile App | Yes (1+ required SKU) |
| Live Platform | livestream | Live Platform | Yes (1+ required SKU) |
| Scanners | scanners | Scanners | Yes (1+ required SKU when SKUs are defined) |
| Web | web | Web | No |
| Back Office | backoffice | Back Office | No |
Current SKUs each platform looks like
Each platform that requires SKU validation accepts any one of the listed SKUs (not all required). The user must have at least one of these SKUs active (within its access window from last_purchased_date).
SKU list per platform
| Platform | Current SKUs (any one grants access) |
|---|---|
Livestream (livestream) | DSAS408, 1HM102, FREEACCESS, 1HSET101, 1HSET202, 1HSET303 |
App (app) | 1HSET101, 1HM102, 1HSET202, 1HSET303, FREEACCESS, DSAS408 |
Scanners (scanners) | (none configured yet; add SKUs in auth service when defined) |
Access window per SKU (days from last_purchased_date)
| SKU | Access window |
|---|---|
1HSET303, 1HDEP303 | 365 days (annual) |
1HSET202, 1HDEP202 | 90 days (quarterly) |
DSAS408, FREEACCESS | 7 days |
1HSET101, 1HM102, others | 30 days (default) |
When a product’s last_purchased_date is within the SKU’s window, that SKU is considered active. Access to a platform is granted if the user has at least one of that platform’s SKUs active.
Platform Details
1. Mobile App (app)
Display name: "Mobile App"
Description: Main mobile application for iOS and Android.
Access: Requires at least one active product SKU from the app SKU list. Current SKUs: 1HSET101, 1HM102, 1HSET202, 1HSET303, FREEACCESS, DSAS408 (any one grants access).
Sign-in example:
{
"email": "user@example.com",
"password": "password",
"platform": "app",
"device": "mobile",
"deviceId": "unique-device-id" // Optional
}2. Live Platform (livestream)
Display name: "Live Platform"
Description: Web-based live streaming and session platform. Used for livestream SSO redirect when platform=livestream.
Access: Requires at least one active product SKU from the livestream SKU list. Current SKUs: DSAS408, 1HM102, FREEACCESS, 1HSET101, 1HSET202, 1HSET303 (any one grants access).
Sign-in example:
{
"email": "user@example.com",
"password": "password",
"platform": "livestream"
}SSO: When using POST/GET /v1/auth/signin-sso with platform=livestream, the response may include redirectUrl (or 302 redirect) to the livestream app with a JWT.
3. Scanners (scanners)
Display name: "Scanners"
Description: Scanner product / service. Access is validated by SKU when scanner SKUs are configured.
Access: Requires at least one active product SKU from the scanners SKU list when the list is non-empty. Current SKUs: none configured yet; add SKUs in auth service when scanner products are defined.
Sign-in example:
{
"email": "user@example.com",
"password": "password",
"platform": "scanners"
}4. Web (web)
Display name: "Web"
Description: Web clients. No SKU validation.
Sign-in example:
{
"email": "user@example.com",
"password": "password",
"platform": "web"
}5. Back Office (backoffice)
Display name: "Back Office"
Description: Administrative and management platform. No SKU validation for sign-in.
Sign-in example:
{
"email": "admin@example.com",
"password": "password",
"platform": "backoffice"
}Service Access (SKU-Based)
Platforms livestream, app, and scanners require the user to have at least one active product SKU for that service. The backoffice sign-in response includes data.services.products (array of { sku, last_purchased_date, product_name }). The auth service:
- Reads the user’s products from the backoffice response.
- For each product, checks that
last_purchased_dateis set and within that SKU’s access window (7, 30, 90, or 365 days). - Builds the set of active SKUs (only those within window).
- Grants access to a platform if at least one of that platform’s SKUs (see Current SKUs each platform looks like) is in the active set — not all are required.
- If no required SKU is active, returns 403 with a message such as:
No access to [Platform Name]. A valid subscription (SKU) is required.
Adding new platforms or SKUs: Extend the platform list, required SKUs per platform, access windows per SKU, and display names in the auth service configuration. See Current SKUs each platform looks like for the current lists and Authentication for request/response shapes.
Error Responses
Invalid platform (400)
{
"success": false,
"message": "Invalid platform. Valid options: app, livestream, scanners, web, backoffice",
"statusCode": 400
}No SKU access (403)
{
"success": false,
"message": "No access to Mobile App. A valid subscription (SKU) is required.",
"statusCode": 403
}Account inactive (403)
{
"success": false,
"message": "Account is inactive",
"statusCode": 403
}Session and Sign-Out
Sessions are keyed by userId, platform, and device. Sign-out can target:
- All sessions: omit
platformanddevice. - One platform:
"platform": "app"(orlivestream,scanners,web,backoffice). - One device+platform: send both
platformanddevice.
Related Documentation
- Authentication – Sign-in, sign-up, SSO, tokens, and backoffice
- Password Reset – Reset flow