Breaking (!) API changes for v1 API, September 11 to September 18
During the week of September 11 to September 18, 2026, the mittwald API introduced several significant changes, including the addition of new endpoints for managing GDPR contracts and authentication, the removal of deprecated paths, updates to response properties, and the requirement of certain request parameters.
Summary
- The
domainIdentifierrequest parameter in theDELETEoperation for deleting a certificate has become required, which is a breaking change. The endpoint isDELETE /accounts/{accountIdentifier}/domains/{domainIdentifier}/certificate. - The response body for the
GEToperation to list application tokens has become nullable, and the property type for/items/crdatehas changed fromstring/date-timetointegerfor status200. The endpoint isGET /authentication/tokens. - The
crdateresponse property type has changed fromstring/date-timetointegerfor status201in thePOSToperation for creating an application token. The endpoint isPOST /authentication/tokens. - Several API paths related to GDPR contracts have been removed without deprecation:
POST /gdpr/contracts/{contractIdentifier}/actions/acceptPOST /gdpr/contracts/{contractIdentifier}/actions/mailPOST /gdpr/contracts/{contractIdentifier}/actions/pdfPOST /gdpr/pdfs/{pdfIdentifier}/actions/download
- The response property
contract/items/payload/statusFields/editLockhas become nullable for status200in theGEToperation for menu generation, along with similar changes forleft,support, andtopproperties. The endpoint isGET /menu. - A new
POSToperation for authenticating with a token has been added at the endpointPOST /authenticate/token. - A non-success response with status
401has been added for theGEToperation to list application tokens, thePOSToperation to create an application token, and theDELETEoperation to delete an application token. The endpoints areGET /authentication/tokens,POST /authentication/tokens, andDELETE /authentication/tokens/{uuid}respectively. - Several optional properties have been added to the response with status
200for theGEToperation to retrieve GDPR contracts, includingclient/creationDate,client/type,recipient/creationDate,recipient/type,tom/content, andtom/creationDate. The endpoint isGET /gdpr/contracts. - Required properties have been added to the response with status
200for theGEToperation to retrieve GDPR contracts, includingclient/city,client/houseNumber,client/mail,client/name,client/street,client/zipCode,recipient/city,recipient/houseNumber,recipient/mail,recipient/name,recipient/street, andrecipient/zipCode. The endpoint isGET /gdpr/contracts. - New endpoints have been added for various operations related to GDPR contracts:
POST /gdpr/contracts/{contractIdentifier}/actions/acceptPOST /gdpr/contracts/{contractIdentifier}/actions/mailPOST /gdpr/contracts/{contractIdentifier}/actions/pdfPOST /gdpr/pdfs/{pdfIdentifier}/actions/download
- The
GEToperation for retrieving navigation meta has a new endpoint atGET /menu-meta. - The
oneOflist for the response propertiescontract/items/payload/statusFields/editLock,left/items/payload/statusFields/editLock,support/items/payload/statusFields/editLock, andtop/items/payload/statusFields/editLockhas had certain subschemas removed for the response status200. The endpoint isGET /menu.
Disclaimer: This summary is AI-generated. If you find any discrepancies, please refer to the detailed changes below.
Detailed changes
Changes in "Let's Encrypt Zertifikat einer Domain löschen"
- ⚠️ Breaking: the 'path' request parameter 'domainIdentifier' became required
For details, refer to the DELETE/ endpoint.
Changes in "Auslesen von erstellten application-Tokens"
-
⚠️ Breaking: the response's body became nullable
-
⚠️ Breaking: the '/items/crdate' response's property type/format changed from 'string'/'date-time' to 'integer'/'' for status '200'
-
added the non-success response with the status '401'
For details, refer to the GET/ endpoint.
Changes in "Neues Access-Token erstellen"
-
⚠️ Breaking: the 'crdate' response's property type/format changed from 'string'/'date-time' to 'integer'/'' for status '201'
-
added the new optional request property 'token'
-
added the non-success response with the status '401'
For details, refer to the POST/ endpoint.
Changes in "Vertrag - Akzeptiert den Vertrag"
-
⚠️ Breaking: api path removed without deprecation
-
endpoint added
For details, refer to the POST/ endpoint.
Changes in "Vertrag - Verschickt eine E-Mail mit PDF an den Empfänger des Vertrags"
-
⚠️ Breaking: api path removed without deprecation
-
endpoint added
For details, refer to the POST/ endpoint.
Changes in "Vertrag - Liefert ein PDF zu einem bestimmten Vertrag"
-
⚠️ Breaking: api path removed without deprecation
-
endpoint added
For details, refer to the POST/ endpoint.
Changes in "PDF - Stellt ein Vertrags-PDF zum Download bereit"
-
⚠️ Breaking: api path removed without deprecation
-
endpoint added
For details, refer to the POST/ endpoint.
Changes in "Menu generation"
-
⚠️ Breaking: the response property 'contract/items/payload/statusFields/editLock' became nullable for the status '200'
-
⚠️ Breaking: the response property 'left/items/payload/statusFields/editLock' became nullable for the status '200'
-
⚠️ Breaking: the response property 'support/items/payload/statusFields/editLock' became nullable for the status '200'
-
⚠️ Breaking: the response property 'top/items/payload/statusFields/editLock' became nullable for the status '200'
-
⚠️ Breaking: the 'contract/items/payload/statusFields/editLock' response's property type/format changed from ''/'' to 'string'/'' for status '200'
-
⚠️ Breaking: the 'left/items/payload/statusFields/editLock' response's property type/format changed from ''/'' to 'string'/'' for status '200'
-
⚠️ Breaking: the 'support/items/payload/statusFields/editLock' response's property type/format changed from ''/'' to 'string'/'' for status '200'
-
⚠️ Breaking: the 'top/items/payload/statusFields/editLock' response's property type/format changed from ''/'' to 'string'/'' for status '200'
-
removed 'subschema #1, subschema #2' from the 'contract/items/payload/statusFields/editLock' response property 'oneOf' list for the response status '200'
-
removed 'subschema #1, subschema #2' from the 'left/items/payload/statusFields/editLock' response property 'oneOf' list for the response status '200'
-
removed 'subschema #1, subschema #2' from the 'support/items/payload/statusFields/editLock' response property 'oneOf' list for the response status '200'
-
removed 'subschema #1, subschema #2' from the 'top/items/payload/statusFields/editLock' response property 'oneOf' list for the response status '200'
For details, refer to the GET/ endpoint.
Changes in "Get meta menu items"
-
⚠️ Breaking: api path removed without deprecation
-
endpoint added
For details, refer to the GET/ endpoint.
Changes in "Anmeldung mit einem Transfer-Token"
- endpoint added
For details, refer to the POST/ endpoint.
Changes in "Löschen von application-Tokens"
- added the non-success response with the status '401'
For details, refer to the DELETE/ endpoint.
Changes in "Vertrag - Liefert alle hinterlegten Verträge"
-
added the optional property '/items/client/creationDate' to the response with the '200' status
-
added the optional property '/items/client/type' to the response with the '200' status
-
added the optional property '/items/recipient/creationDate' to the response with the '200' status
-
added the optional property '/items/recipient/type' to the response with the '200' status
-
added the optional property '/items/tom/content' to the response with the '200' status
-
added the optional property '/items/tom/creationDate' to the response with the '200' status
-
added the required property '/items/client/city' to the response with the '200' status
-
added the required property '/items/client/houseNumber' to the response with the '200' status
-
added the required property '/items/client/mail' to the response with the '200' status
-
added the required property '/items/client/name' to the response with the '200' status
-
added the required property '/items/client/street' to the response with the '200' status
-
added the required property '/items/client/zipCode' to the response with the '200' status
-
added the required property '/items/recipient/city' to the response with the '200' status
-
added the required property '/items/recipient/houseNumber' to the response with the '200' status
-
added the required property '/items/recipient/mail' to the response with the '200' status
-
added the required property '/items/recipient/name' to the response with the '200' status
-
added the required property '/items/recipient/street' to the response with the '200' status
-
added the required property '/items/recipient/zipCode' to the response with the '200' status
For details, refer to the GET/ endpoint.
Changes in "Vertrag - Vertrag anlegen"
-
added the optional property 'client/creationDate' to the response with the '201' status
-
added the optional property 'client/type' to the response with the '201' status
-
added the optional property 'recipient/creationDate' to the response with the '201' status
-
added the optional property 'recipient/type' to the response with the '201' status
-
added the optional property 'tom/content' to the response with the '201' status
-
added the optional property 'tom/creationDate' to the response with the '201' status
-
added the required property 'client/city' to the response with the '201' status
-
added the required property 'client/houseNumber' to the response with the '201' status
-
added the required property 'client/mail' to the response with the '201' status
-
added the required property 'client/name' to the response with the '201' status
-
added the required property 'client/street' to the response with the '201' status
-
added the required property 'client/zipCode' to the response with the '201' status
-
added the required property 'recipient/city' to the response with the '201' status
-
added the required property 'recipient/houseNumber' to the response with the '201' status
-
added the required property 'recipient/mail' to the response with the '201' status
-
added the required property 'recipient/name' to the response with the '201' status
-
added the required property 'recipient/street' to the response with the '201' status
-
added the required property 'recipient/zipCode' to the response with the '201' status
For details, refer to the POST/ endpoint.
Changes in "Vertrag - Liefert einen bestimmten Vertrag"
-
added the optional property 'client/creationDate' to the response with the '200' status
-
added the optional property 'client/type' to the response with the '200' status
-
added the optional property 'recipient/creationDate' to the response with the '200' status
-
added the optional property 'recipient/type' to the response with the '200' status
-
added the optional property 'tom/content' to the response with the '200' status
-
added the optional property 'tom/creationDate' to the response with the '200' status
-
added the required property 'client/city' to the response with the '200' status
-
added the required property 'client/houseNumber' to the response with the '200' status
-
added the required property 'client/mail' to the response with the '200' status
-
added the required property 'client/name' to the response with the '200' status
-
added the required property 'client/street' to the response with the '200' status
-
added the required property 'client/zipCode' to the response with the '200' status
-
added the required property 'recipient/city' to the response with the '200' status
-
added the required property 'recipient/houseNumber' to the response with the '200' status
-
added the required property 'recipient/mail' to the response with the '200' status
-
added the required property 'recipient/name' to the response with the '200' status
-
added the required property 'recipient/street' to the response with the '200' status
-
added the required property 'recipient/zipCode' to the response with the '200' status
For details, refer to the GET/ endpoint.