Skip to content
On this page

Change Log

We use semantic versioning for the API, minor version bumps will not introduce any breaking changes under normal circumstances.

3.0.0 (2025-02-23)

New Features

Entry-level transaction ID

Added the ability to specify a transaction ID for each entry, the transaction ID must be unique for each (instance, entry) pair. Just like request-level IDs, transaction IDs are used to make sure that the same entry is not processed multiple times.

It is still possible to submit entries without a transaction ID and to use request IDs, the latter will be translated to entry transaction IDs internally.

Instance Time Zones

Time zones can be specified for instances, if not provided, the default time zone is undefined and depends on various factors.

Tax Information In Sales

It is now possible to specify VAT percentages and other tax information in itemSale entries.

Currency Information In Sales

It is now possible to specify the currency of the sale in itemSale entries.

Item dynamicPricingPeriod

It is possible to specify a dynamic pricing period for each item, this is a more flexible way to enable and disable scheduled pricing. If not provided, the sales period is used as the dynamic pricing period.

Note that the dynamicPricingPeriod property alone does not enable scheduled pricing, the instance also must be set as active in order for the scheduled pricing to be enabled.

Product-specific Pricing Models

It is now possible to set separate pricing models for each product.

Breaking Changes

Entry Validation Changes

Only basic entry validation is done during submission, such as syntactic integrity. From this version it is essential for API users to subscribe to webhooks to receive error messages and other important information.

Duplicate entries are also silently ignored instead of returning an 409 Conflict error.

Commission Rates Removed

Just like entry validation, commission rates cannot be calculated immediately and were removed from the response.

Instance Actions Deprecated

Instance actions are now deprecated. So far they only served the purpose of enabling and disabling scheduled pricing, which must be done by setting via dynamicPricingPeriod for each item.

For clients that depend on these actions, we will convert the date ranges to dynamicPricingPeriod internally.

Item Quantities Deprecated

Item quantities are now deprecated and are ignored. The quantity of each item is now determined by the product capacities and the number of items sold.

For clients that heavily depend on these quantity numbers we automatically set up product capacities based on the quantities.

Item-level Expected Sales Removed

Item-level expected sales are no longer supported, expected sales can be set for products instead.

Expected Sale Counts Removed

Expected sales are now only take percentage values (0-1.0) and it is no longer possible to specify exact counts.

Product Schedules Removed

Up until this version, we exposed product-level schedules that determined when prices were recalculated for products after certain thresholds (such as sales percent reached). DynamO will still recalculate prices based various triggers, but this feature can no longer be configured and is removed from the API.

Current and Last-sold Prices Removed

Current and last-sold prices of items are no longer included in instance summaries.

Constant Price Rule Removed

As a simplification the constant price field has been removed, use min and max with the same value instead.

Public Key Management Removed

Signatures of entries are no longer verified by DynamO and thus public keys are no longer needed. DynamO still accepts and stores entries in JWT formats so that the signatures can be verified by clients.

Item dates Renamed to salesPeriod

Item dates always reflected the period when an item was available for sale, so we renamed it to salesPeriod. The API will still accept dates for backwards compatibility.

Create "subproject" Request Removed

Please use the "create project" request instead.

Commission Rates Removed

Commission rates are determined by DynamO Pricing, it is no longer possible to set them.

2.8.0 (2024-07-03)

New Features

Product Zones

It is now possible to specify zones within an instance, these are often used to represent physical locations within venues.

For now zones can be provided as metadata to products and are not separate entities in our system.

2.7.0 (2024-05-09)

New Features

No More Item Quantity Errors

Previously, if an item was sold more than its quantity, the API would return an error. This is no longer the case, the API will now allow the sale of items even if the quantity is exceeded.

We are also planning to rethink how we process items and quantities in the future and how they relate to product capacities.

Repeated Registrations are Allowed

Previously, if an item or product was registered multiple times, the API would return an error in some cases. This is no longer the case, the API will now allow the registration of items multiple times by default.

Product-level Reservations

It is now possible to specify reservations at the product level instead of specifying them for each item.

2.6.0 (2023-11-27)

New Features

Manual Webhook Triggers

We added the ability to manually trigger webhooks of subscriptions.

Note that this is a rather niche API, webhooks are great for immediate updates but they should not be used as the only source of truth, manually triggering webhooks also carries the risk of the system re-sending obsolete prices.

Webhook Error Reporting

Some clients put received webhooks in a queue for batch processing later, which means it is not possible to report any errors in the webhook's response.

For this reason we added an endpoint that can be used to report errors asynchronously.

2.5.0 (2023-10-16)

New Features

Instance Date Tags

It is now possible to attach tags to pricing instance dates in Instance Metadata entries to provide additional hints and other information.

Arbitrary tags cannot be specified, unknown tags (currently anthing other than main) will be rejected, duplicate tags are allowed however.

For most one-time events (such as cinema screenings) the exact date of the event is known, sometimes even its duration. Attach the main tag to a date or date range to mark it as the date of the main event:

json
{
  "date": {
    "start": "2023-01-01T16:00:00Z",
    "end": "2023-01-01T18:00:00Z"
  },
  "description": "The main event that is 2 hours long.",
  "tags": ["main"]
}

Attaching main to multiple dates is allowed, but in most cases the first valid date (range) will be used.

2.4.0 (2023-07-06)

New Features

New Project Creation

Added the ability to create a project without a specified parent project.

This is already mostly what creating a subproject did, as we phase out subprojects it made sense to allow creating regular projects instead.

2.3.0 (2023-07-04)

New Features

  • It is now possible to toggle dynamic pricing on a per-item basis.
  • Added instance action entries (via Instance Actions Entry) that can be used to:
    • enable scheduled pricing automatically at a given date
    • disable scheduled pricing automatically at a given date
  • Added support for coordinates via the coord field within InstanceMetadataLocation.

Changes

Instance Date Actions

Instance date deactivation actions are now considered the absolute end of a pricing period for an instance, and instances cannot be activated again after the given date.

Deprecations

  • instance metadata date actions (meta.dates.actions) have been deprecated in favor of instance actions.

2.2.1 (2023-04-23)

Changes

Negative Price Settings

Negative price settings in entries are now disallowed, including minimum/maximum/default prices and multipliers.

2.2.0 (2023-03-11)

New Features

  • It is now possible to specify a pool in itemSale entries that makes it possible to sell reserved items without freeing them up first in a separate entry.

2.1.0 (2023-02-08)

New Features

  • Added GET /webhooks/signatureVerificationKeys for retrieving webhook verification keys.

Deprecations

  • The subprojects feature is being deprecated and will be replaced by a management layer that allows grouping and managing multiple projects in one of the following versions. Along with the deprecation, we changed its behaviour to simply create new projects without any inheritance. According to our analysis the latter change does not affect any of our clients.

2.0.0 (2022-12-09)

Production release of the last RC.

2.0.0-rc.1 (2022-11-07)

New Features

JSON Patches

  • Added the ability to provide JSON Patch (RFC 6902) operations within the following entries:
    • instanceMetadata
    • itemMetadata
    • itemProperties
    • productMetadata
    • productProperties

JSON patches are a standard way of updating (patching) objects of arbitrarily complex structure. Previously the only way to update fields without resending the entire object was to use the update operation, but it was very limited as it did not allow removing fields and only worked at the object root.

Entry Changes

  • Added the basePrice field to itemSale entries.

Breaking Changes

Removed Features

Removed the following:

  • POST /projects/{projectId}/instances/{instanceId}/items endpoint has been removed completely.
  • PUT /projects/{projectId}/instances/{instanceId}
    • The fields addMeta and replaceMeta have been removed.
  • POST /projects/{projectId}/instances/{instanceId}/entries
    • The entries instanceDates and expectedSales have been removed.
    • change.relative of itemQuantity entry has been removed without a deprecation period as it was not used by any clients.
  • GET /projects/{projectId}/instances/{instanceId}
    • The field dates from the item summary has been removed as it is part of properties.

No Implicit Products

Products are not created implicitly anymore with item registrations. Implicit products were only a temporary feature in order to help with transitioning for existing users. Products now have become an integral part of the pricing system and has too much of an impact to be automatically configured by DynamO.

itemQuantity Entry Behavioural Change

The way total change in itemQuantity entries affect the total quantity of items has changed.

Previous 1.x.x Behaviour

Previously the itemQuantity entry only affected the items that were available for sale instead of adjusting the total item amount in circulation. After setting the quantity of the items, subsequent item sales and reservations decreased this number. This meant that the entry was not idempotent, submitting the same itemQuantity entry after items were sold or reserved increased the total amount of items for an instance.

For example:

  • itemQuantity entry submitted with a total amount of 100 items
  • itemSale entry submitted with an amount of 50 items
  • same itemQuantity entry submitted with a total amount of 100 items caused 150 items to be in circulation within the pricing instance
New 2.0.0 Behaviour

In order to align with the naming of the entry and the users' expectations the itemQuantity total amounts are now idempotent and reflect the total amount of items in circulation.

Instead of directly affecting the amount of items that are available, the available item count will be calculated by DynamO Pricing by subtracting the amount of items that were already sold and reserved. This means that the submitted itemQuantity entry total amount cannot be less than the sum of sold and reserved for an item.

Deprecations

  • the update field is now deprecated as it is superseded by the patch field in the following entries:
    • instanceMetadata
    • itemMetadata
    • itemProperties
    • productMetadata
    • productProperties

1.9.0 (2022-10-29)

New Features

  • Added the ability to provide unmodified base prices for item sale entries.

1.8.0 (2022-10-21)

New Features

  • Added the ability to specify pricing recalculation triggers via product properties. These triggers can be used to request pricing calculations based on item sales rather than time.

1.7.0 (2022-09-11)

New Features

  • Added the /projects/{projectId}/instancePrices endpoint to query prices of selected pricing instances.

1.6.0 (2022-05-26)

Changes

  • Product and item registration entries are now allowed to be sent multiple times for the same IDs. The previous behaviour can be enabled by setting "strict": true within the entries.

1.5.0 (2022-05-17)

New Features

  • Added the ability to create subprojects for a project that will inherit most project settings but not pricing instances.

1.4.0 (2022-03-16)

New Features

  • Added the ability to send metadata with pricing calculation requests that are returned in callbacks.

1.3.0 (2022-01-24)

A stable release that incorporates the new Product-based pricing.

It mostly contains refinements of previous release candidates, as well as some minor convenience features.

New Features

  • Added the ability to automatically deactivate instances after certain dates.

New Instance Entries

  • Item Reservation: A new entry type that signals that a specific amount of items cannot be sold but they are not sold yet.

Other Changes

  • All metadata should now follow a given structure.
  • The behaviour when updating JSON objects, such as metadata or properties is now properly defined.
  • Removed the need for explicit oauth scopes, we will be reintroducing them in the future, but they were not used right now.
  • Various refinements and naming changes in new endpoints and data structures.
  • Cycles in price matches will be no longer allowed, as it is impossible to determine a final price in that case.

1.3.0-rc.2

  • There is one product per item by default to match the existing behaviour.
  • Added per item capacity when specifying products for items.

1.3.0-rc.1

New Features

  • Added the new concept of Product that allows grouping items within an instance.
  • Added feature for signing entries.
  • Added on-demand pricing requests.

New Endpoints

  • Project Management
    • POST /projects/{projectId}/calculatePrices: Request a price calculation for selected or all instances within the project.
    • POST /projects/{projectId}/publicKeys: Add public keys for the project.
    • GET /projects/{projectId}/publicKeys: Get public keys for the project.

New Instance Entries

  • Instance Metadata: Add and update metadata of instances.
  • Item Registration: Registration of items for an instance.
  • Item Metadata: Add and update metadata of items.
  • Item Properties: Add and update properties of items.
  • Item Removal: Remove items from the instance permanently.
  • Product Registration: Registration of products for an instance.
  • Product Metadata: Add and update metadata of products.
  • Product Properties: Add and update properties of products.
  • Pricing Schedule: Set the frequency and schedule of price updates.

Deprecations

The following endpoints and resources are deprecated and will be removed in a future version.

Endpoint Deprecations

  • Update a Pricing Instance:
    • addMeta: functionality was moved into the instanceMetadata instance entry.
    • replaceMeta: functionality was moved into the instanceMetadata instance entry.
    • commissionRates: functionality was moved into the itemProperties instance entry.
  • Register items for pricing: functionality was moved into the instanceMetadata instance entry.

Instance Entry Deprecations

  • expectedSales: functionality was moved to the itemProperties entry.
  • instanceDates: functionality was moved to the itemProperties entry and instanceMetadata entry.

1.2.0

1.2.0-rc.2

Changes

  • (breaking change) The Create Instance endpoint now requires a JSON object in the request body.
  • (behavior) The default and current price of all items will start with 999_999_999 as a safety feature.

1.2.0-rc.1

Changes

  • (breaking change) The Submit Entries endpoint returns a summary response based on the entries and thus uses status code 200 rather than 204.
  • (breaking change) Removed quantity links.
  • Added Expected Sales entry.
  • Added ability to remove price matching rules.
  • Price matches now show up in item details.
  • Item-scoped dates now show up in the item details.
  • Added handling of DynamO Pricing commissions per item, commission rates can be viewed and changed on the instance-level. Exact commission values are calculated for each itemSale entry and returned in the Submit Entries response.
  • Instance Update allows setting additional fields for metadata, which are returned with the instance details.
  • Item Registration now accepts items as objects with additional metadata, these are also shown in the instance details.

1.1.0

Changes

  • Added callbackUrl property in the response when listing project and and instance subscriptions.