{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-products/dynamicmonetization/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"type":"markdown"},"seo":{"title":"Changelog","description":"API documentation for Revenera products","siteUrl":"https://developer.revenera.com","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"changelog","__idx":0},"children":["Changelog"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["All notable changes to this product and documentation will be listed in this file."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"july-30-2026-introducing-resettable-line-items","__idx":1},"children":["July 30, 2026: Introducing Resettable Line Items"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Dynamic Monetization now supports ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["resettable line items"]},". Resettable line items automatically replenish a configured quantity at regular intervals throughout the line item's lifecycle, enabling recurring allocations without requiring entitlement renewals or manual intervention."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The new topic ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/dynamicmonetization/guides/resettable-line-items"},"children":["Resettable Line Items"]}," describes how to configure and use resettable line items."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"july-30-2026-consumption-limits-documentation","__idx":2},"children":["July 30, 2026: Consumption Limits Documentation"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Documentation for ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["consumption limits"]}," is now available: ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/dynamicmonetization/guides/consumption-limits"},"children":["Consumption Limits"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"march-30-2026-introducing-consumption-limits","__idx":3},"children":["March 30, 2026: Introducing Consumption Limits"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Elastic Access now provides ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["consumption limits"]}," which allow end customers to regulate how quickly requesters may consume tokens associated with a line item. They serve as an important budgetary control mechanism within Elastic Access, helping organizations prevent unexpected or excessive usage during a line item’s lifecycle. By applying consumption limits, customers can align usage patterns with internal budgets, operational constraints, and the intended consumption cadence of their purchased entitlements."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Quick Links:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/dynamicmonetization/apis/openapi-spec/consumption-limits"},"children":["Consumption Limits"]}," in API Reference"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/dynamicmonetization/guides/consumption-limits"},"children":["Consumption Limits"]}," in User Guide"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"february-19-2026-user-guide-update-about-charge-interval","__idx":4},"children":["February 19, 2026: User Guide Update About Charge Interval"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Added section ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/dynamicmonetization/guides/sessions/managing-sessions#configuring-the-automatic-charge-interval"},"children":["Configuring the Automatic Charge Interval"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"february-12-2026-error-response-format-updated","__idx":5},"children":["February 12, 2026: Error Response Format Updated"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Validation error responses returned with HTTP ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["400 (Bad Request)"]}," from the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/dynamicmonetization/apis/openapi-spec/line-items/addactivation"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PUT /line-items"]}]}," endpoint now use the key ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["message"]}," instead of ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["errors"]},".",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["API v1.0 behavior"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In v1.0, validation errors were returned under the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["errors"]}," key:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"errors\": [\n    \"$.attributes.overdraftLimit: string found, integer expected\",\n    \"$.attributes: property 'resetFrequency' is not defined in the schema and the schema does not allow additional properties\"\n  ]\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["API v1.1 behavior"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Starting with v1.1, the same validation errors are returned under the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["message"]}," key:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n    \"message\": [\n        \"$.attributes.overdraftLimit: string found, integer expected\",\n        \"$.attributes.resetFrequency: integer found, string expected\"\n    ]\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Initially, this change applies only to the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PUT /line-items"]}," endpoint."," ","All other endpoints and response formats remain unchanged."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"december-16-2025-version-11-replacing-version-10","__idx":6},"children":["December 16, 2025: Version 1.1 Replacing Version 1.0"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"updated-elastic-access-reponse","__idx":7},"children":["Updated Elastic Access Reponse"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The status codes returned in responses for elastic access requests—covering both session-based and non-session-based scenarios—have been updated. In version 1.0 they were represented as three-digit codes. In version 1.1, these status codes are now expressed as four-digit codes. This change has been implemented to avoid confusion with standard HTTP response codes."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For an example, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/dynamicmonetization/apis/openapi-spec/non-session-access-request/postaccessrequest#non-session-access-request/postaccessrequest/t=response&c=200&path=requesteditems/status"},"children":["Access request for elastic tokens"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"updated-session-heartbeat-response-behaviour","__idx":8},"children":["Updated Session Heartbeat Response Behaviour"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The response to a session heartbeat request has been updated to improve clarity and consistency when a session is in a non-operable state."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Behavior in Version 1.0"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["A 403 response was returned if the session was terminated. However, this did not distinguish between terminated, failed, or disconnected states."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["A 409 response was returned if the session was locked."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Behavior in Version 1.1"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The request will fail with a 409 response whenever the session is in any non-operable state (e.g., terminated, failed, disconnected, or locked)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The response includes an error message indicating the current state of the session, providing clearer diagnostic information."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"september-23-2025-unified-documentation-for-dynamic-monetization","__idx":9},"children":["September 23, 2025: Unified Documentation for Dynamic Monetization"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The Dynamic Monetization User Guide and API Reference have been merged into a single, comprehensive document, offering simplified navigation and a more cohesive experience for developers and users alike."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The older versions of the Dynamic Monetization User Guide and API Reference will be retired in November 2025."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"august-2025-rules-of-access","__idx":10},"children":["August 2025: Rules of Access"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The Rules of Access APIs enable license administrators to define and enforce access control policies for token consumption from elastic line items in a Dynamic Monetization environment. The rules specify which user or device can consume tokens, based on specific conditions. This helps administrators maintain accurate and proportionate consumption of the allocated budget."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"documentation-updates-for-rules-of-access","__idx":11},"children":["Documentation Updates for Rules of Access"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Added ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/dynamicmonetization/guides/rules-of-access"},"children":["Rules of Access"]}," section in the User Guide"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Added tutorial ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/dynamicmonetization/tutorials/controlling-access"},"children":["Controlling Access with Conditions and Actions"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Added section ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/dynamicmonetization/apis/openapi-spec/rules-of-access"},"children":["Rules of Access"]}," in API Reference"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"june-4-2024-initial-release","__idx":12},"children":["June 4, 2024: Initial Release"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Introduction of Dynamic Monetization, a new cloud service that allows technology companies to introduce flexible monetization models for connected software and devices."," ","The first monetization model supported in this release is Elastic Access."]}]},"headings":[{"value":"Changelog","id":"changelog","depth":1},{"value":"July 30, 2026: Introducing Resettable Line Items","id":"july-30-2026-introducing-resettable-line-items","depth":2},{"value":"July 30, 2026: Consumption Limits Documentation","id":"july-30-2026-consumption-limits-documentation","depth":2},{"value":"March 30, 2026: Introducing Consumption Limits","id":"march-30-2026-introducing-consumption-limits","depth":2},{"value":"February 19, 2026: User Guide Update About Charge Interval","id":"february-19-2026-user-guide-update-about-charge-interval","depth":2},{"value":"February 12, 2026: Error Response Format Updated","id":"february-12-2026-error-response-format-updated","depth":2},{"value":"December 16, 2025: Version 1.1 Replacing Version 1.0","id":"december-16-2025-version-11-replacing-version-10","depth":2},{"value":"Updated Elastic Access Reponse","id":"updated-elastic-access-reponse","depth":3},{"value":"Updated Session Heartbeat Response Behaviour","id":"updated-session-heartbeat-response-behaviour","depth":3},{"value":"September 23, 2025: Unified Documentation for Dynamic Monetization","id":"september-23-2025-unified-documentation-for-dynamic-monetization","depth":2},{"value":"August 2025: Rules of Access","id":"august-2025-rules-of-access","depth":2},{"value":"Documentation Updates for Rules of Access","id":"documentation-updates-for-rules-of-access","depth":3},{"value":"June 4, 2024: Initial Release","id":"june-4-2024-initial-release","depth":2}],"frontmatter":{"seo":{"title":"Changelog"}},"lastModified":"2026-07-30T14:52:32.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/products/dynamicmonetization/changelog","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}