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:

  • isBundletrue 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.