--- title: "Multiuser Subscriptions" slug: "multiuser-subscriptions" updated: 2026-07-09T05:17:53Z published: 2026-07-09T05:17:53Z canonical: "help.frisbii.com/multiuser-subscriptions" --- > ## Documentation Index > Fetch the complete documentation index at: https://help.frisbii.com/llms.txt > Use this file to discover all available pages before exploring further. # Multiuser Subscriptions Multi-user subscriptions allow a single licence holder to invite additional users — for example, a company buying seats for their employees, or a household subscription. Frisbii Media manages the licences and provides an invitation flow. There are two ways to add users to a multi-user subscription: via an **invitation URL** (manual invite), or **automatically by email domain**. --- ## How it works When a customer purchases a multi-user offer, the subscription contains a `chainId` and `multiuserSettings`. The `chainId` groups all licences belonging to the same multi-user subscription. The `invitationUrl` is a page on your website where invited users can accept the licence. ```json "chainId": 1238877, "multiuserSettings": {    "enableSelfService": true,    "onlyBundledUsage": false,    "invitationValidityInDays": 0,    "invitationUrl": "https://www.example.com/invitation" } ``` Use the `chainId` in your email templates as a path parameter: ```plaintext https://www.example.com/invitation/1238877 ``` This links the invited user directly to the correct subscription chain. --- ## Invitation page The invitation page you build needs to handle a login or registration flow so the invited user can immediately sign in. Use the Frisbii Media JavaScript SDK for this — see [SSO: Login & Registration](/frisbii-media/docs/sso-login-registration). Once the user is logged in, retrieve all subscriptions in the chain to validate the invitation: ```php // @see https://api.frisbii-media.com/#tag/Subscriptions/operation/getSubscriptionsByChain $chainSubscriptions = json_decode($client->request('GET',    "/subscriptions?chainId={$chainId}",    ['headers' => ['X-plenigo-token' => eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9]] )->getBody()->getContents(), true)['items'] ?? []; ``` --- ## Auto-add by email domain If the subscription's `multiuserSettings` includes `enableDomainRegistration: true` and a list of `allowedDomains`, any logged-in user whose email domain matches can be added automatically — no manual invitation required. The subscription item's `multiuserSettings` will look like: ```json "multiuserSettings": {    "maxNumberOfUsers": 0,    "onlyBundledUsage": false,    "enableDomainRegistration": true,    "invitationValidityInDays": 0,    "allowedDomains": [        "example.com"    ] } ``` Check whether the logged-in user's email domain matches `allowedDomains`. If it does, add them: ```php // @see https://api.frisbii-media.com/#tag/Subscriptions/operation/addMultiuser $response = $client->request('POST',    "/subscriptions/{$subscriptionId}/addMultiuser",    [        'headers' => ['X-plenigo-token' => eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9],        'json'    => ['customerId' => $loggedInCustomerId],    ] ); ``` --- ## Multi-user settings reference | Field | Description | | --- | --- | | `maxNumberOfUsers` | Maximum number of users that can be added. `0` = unlimited. | | `onlyBundledUsage` | If `true`, users can only access content when using the subscription as part of a bundle. | | `enableDomainRegistration` | If `true`, users with matching email domains are eligible for automatic addition. | | `invitationValidityInDays` | How long an invitation link is valid. `0` = no expiry. | | `allowedDomains` | List of email domains eligible for automatic domain-based addition. | | `invitationUrl` | The URL on your website to which invited users are directed. | | `chainId` | Groups all licences belonging to the same multi-user subscription across the chain. | --- ## API reference - [getSubscriptionsByChain](https://api.plenigo.com/#tag/Subscriptions/operation/getSubscriptionsByChain) - [addMultiuser](https://api.plenigo.com/#tag/Subscriptions/operation/addMultiuser) ---