Group Management

The group management APIs include the messaging required to operate on the group object. The APIs include the messaging and data elements required to create, modify, associate, and query objects directly related to the group.

A group is a collection of one or more subscriptions, users, other groups, or a combination of those. A group can belong to one other group only, but a subscription or user can belong to any number of groups. Each group can have one or more optional administrators. If an administrator is added, it must be an existing subscription but does not have to be a group member. At this time, the MATRIXX Engine supports up to 1,000,000 subscriptions per group.

You can modify the maximum number of user or subscription members using the GroupModify API. In the MtxRequestGroupModify API, set the parameters described in User and Subscription Count Parameters to configure the maximum number of allowed users and subscriptions.

You can filter the MtxRequestSubscriberQuery, MtxRequestDeviceQuery, MtxRequestGroupQuery, and MtxRequestSubscriptionQuery responses with the following Boolean fields:
  • FilterNonCatalogItems — When true, the PurchasedOfferArray in the response does not include purchased offers that are part of a bundle. Information about the required balances of each non catalog item is returned in the MtxPurchasedOfferInfo.RequiredBalanceArray array of the parent bundle in the API response.
  • FilterInvalidPurchasedOffer — When true, the response does not include expired purchased offers.
  • FilterInvalidBalance — When true, the BalanceArray in the response does not include expired balances. MtxRequestDeviceQuery does not have the FilterInvalidBalance field.
Table 1. User and Subscription Count Parameters
Parameter Type Flags Description
MaxUserCount unsigned int32 Optional The maximum number of allowed users.
MaxSubscriberCount unsigned int32 Optional The maximum number of allowed subscriptions.

If you do not specify a maximum user or subscription count, there is no limit on the number of user or subscription members in the group. The value for a newly applied limit is not checked against the current count. If the new limit is less than the current count, future additions are blocked after the limit is set, and will be blocked until the count is reduced below the limit. If a group has sub-group members, then the whole tree of member groups is limited at the parent group maximum user/subscription count.

Groups can reference secondary resources such as wallets and product offers. If a group purchases a product offer that adds a periodic balance to the group wallet (G/L balance), and the balance is configured to align with the billing cycle, it is aligned with the billing cycle associated with the group wallet. Each virtual balance created in the group members wallets assumes the billing cycle associated with the member's wallet—not the billing cycle of the group. If any subscriptions in the group do not have a billing profile associated with their wallet, the operation will fail and the group will not be able to purchase the product offer requiring the periodic balance. Similarly, if a group's G/L balance is aligned with the billing cycle and a subscription joining the group does not have a billing cycle defined, the add membership operation will fail.

A group query returns information about the group, including the parent group, users and subscriptions in the group, group balance information, and purchased offers. The balance information returns standard balance information, such as the balance type, credit limit, available amounts, and start and end times. For an on-demand balances, if there are multiple overlapping periods at the query time, the latest valid period is returned.

You can filter the MtxRequestSubscriberQuery, MtxRequestDeviceQuery, MtxRequestGroupQuery, and MtxRequestSubscriptionQuery responses with the following Boolean fields:
  • FilterNonCatalogItems — When true, the PurchasedOfferArray in the response does not include purchased offers that are part of a bundle. Information about the required balances of each non catalog item is returned in the MtxPurchasedOfferInfo.RequiredBalanceArray array of the parent bundle in the API response.
  • FilterInvalidPurchasedOffer — When true, the response does not include expired purchased offers.
  • FilterInvalidBalance — When true, the BalanceArray in the response does not include expired balances. MtxRequestDeviceQuery does not have the FilterInvalidBalance field.