Skip to content

What's New ​

Stay up to date with the latest features and improvements to the Attivita API.

March 2026 ​

Region Filtering for Products NEW ​

You can now filter products by their valid region using the region query parameter on the GET /api/products endpoint.

Supported values: DACH, EU, GLOBAL

bash
# Get only products valid in the DACH region
curl -X GET "https://api.attivita.de/api/products?region=DACH" \
  -H "Authorization: Bearer YOUR_API_ACCESS_TOKEN"

Products without a region (validRegion: null) are excluded when using this filter. To get all products regardless of region, simply omit the parameter — this is the default behavior and fully backward compatible.

Current distribution:

RegionProducts
GLOBAL89
EU85
DACH21
No region36

Bundle Products & License Allocation NEW ​

Products can now be configured as bundles (isBundle: true) that combine licenses from multiple license pools into a single purchasable product.

What changed? ​

Product responses now include two additional fields:

  • isBundle — true if the product is a bundle, false otherwise (default)
  • licensePools — array of linked license pool IDs

Order responses for bundle products include a new bundleLicenses field that groups the allocated licenses by their source pool:

json
{
  "bundleLicenses": [
    {
      "licensePoolId": "507f1f77bcf86cd799439011",
      "poolName": "Office 2021 Pool",
      "productName": "Microsoft Office 2021",
      "licenses": [
        { "licenseKey": "ABCD-EFGH-IJKL-MNOP" }
      ]
    },
    {
      "licensePoolId": "507f191e810c19729de860ea",
      "poolName": "Antivirus Pool",
      "productName": "Norton Antivirus",
      "licenses": [
        { "licenseKey": "QRST-UVWX-YZAB-CDEF" }
      ]
    }
  ]
}

Backward Compatibility ​

Fully backward compatible

These changes are additive only — no existing fields or behaviors were modified.

  • isBundle defaults to false for all existing products
  • bundleLicenses is null / absent for non-bundle orders
  • The licenses flat array still contains all license keys (bundle and non-bundle)
  • Existing integrations that don't read the new fields will continue to work without any changes

How bundle stock works ​

Bundle availability is determined by the minimum available licenses across all linked pools. If any pool runs out, the bundle cannot be ordered. The allocation is all-or-nothing within a transaction.


Looking for the full history?

See the Changelog for a complete list of all API changes.

The usage of this API is at your own risk. Attivita GmbH is not responsible for any damages or losses.