Skip to main content

Breaking changes

Upcoming breaking changes, deprecations, and end-of-life announcements, of our APIs (including Web Services):

Summary

ChangeDeprecated dateSunset dateEnd-of-life date
General root XML element01-03-202431-12-202401-07-2025
API Request Rate above limits31-01-202401-12-202401-04-2025
API Concurrency above limits31-01-202401-12-202401-04-2025
More than 1000 lines per transaction01-04-202131-12-202101-10-2024
ProcessXmlCompressed31-12-201831-12-202431-07-2025
template field in Users master01-02-201931-12-202431-07-2025

Details

Details of the breaking changes:

General root XML element

The root element of the XML request can no longer be general. General could previously be used to combine multiple different requests within one request but causes complexity and implementation errors. Instead, a transaction can be part of a transactions root element.

If an integration used multiple different elements as part of one general request, they should now be split up to multiple requests.

For example, a request that contains a transaction and a customer should be split up into two separate requests.

API Request Rate above limits

When the rate of requests exceeds the limits, the API will return a 429 status code. The limits are defined in the Fair Use Policy.

API Concurrency above limits

When the number of concurrent requests exceeds the limits, the API will return a 429 status code. The limits are defined in the Fair Use Policy.

More than 1000 lines per transaction

When a transaction contains more than 1000 lines, the API will return a 400 status code.

ProcessXmlCompressed

The ProcessXmlCompressed method is deprecated and will be removed. It is recommended to use the ProcessXmlString or ProcessXmlDocument method instead. HTTP calls can use compression instead.

template field in user master

The template field is deprecated and will be removed. It is recommended to use the templatecompanyaccess field instead. More information.

Breaking changes terminology

Terminology used to describe breaking changes at Twinfield:

Breaking change

A change that breaks existing functionality. This could be for example a change in the request or response structure, change in functionality, compatibility, protocols, new limits, or a change in the behavior of the API.

We strive to communicate breaking changes with enough time for all integrators to adapt to these changes. This may not always be possible, as the change may for example be a consequence of a change of a service we use or urgent security or compliance requirements.

Phase-out period

The time between the announcement of the deprecation of functionality and the End-of-life period.

We strive to monitor usage of functionality before and during the phase-out period.

Deprecation

A previously supported functionality is no longer recommended for use, but still operational. It is expected that this functionality will stop working in the future. This could be because a new version of the API is available, parts of the API change in a way that is not backwards compatible, or the API or functionality will be discontinued. Consumers of this API that use the deprecated functionality are encouraged to change their implementations to avoid service disruption.

Sunset

The state between "deprecated" and "end-of-life". During this phase, the API or functionality is no longer actively maintained. New integrations can not use this functionality, nor can organisations start using this functionality if they did not use it recently before the sunset date.

End-of-life

A feature that is no longer operational, and no users can use the functionality anymore. This could be because an improved (but different) feature is available, or a change in the API.

The functionality is removed from the product.