Appearance
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:
| Region | Products |
|---|---|
| GLOBAL | 89 |
| EU | 85 |
| DACH | 21 |
| No region | 36 |
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—trueif the product is a bundle,falseotherwise (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.
isBundledefaults tofalsefor all existing productsbundleLicensesisnull/ absent for non-bundle orders- The
licensesflat 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.