v.2.15.0 - Test Environment
2026-10-27 - Planned deployment to Live
2026-10-15 - Test Environment
Added
eWP Redemption - Tax Withholding on the Order, Webhook and Transaction History
An eWP (BART) sell is taxed after settlement. The withheld German taxes are now shown on the order, on the order webhook and on the transaction-history entry, so partners can explain the cash the customer actually receives.
- Documentation Location: API REFERENCE - Trading - Digital Assets; API REFERENCE - Webhooks; API REFERENCE - Transaction History
- Added fields:
germanCit,solidaritySurcharge,churchTaxand their sumtaxDeductionTotal(decimal, optional,>= 0) on the orderexecutionData(DigitalAssetsOrderExecutionData), on theexecutionDataof theDIGITAL_ASSET_ORDER_NOTIFICATIONwebhook, and on the digital trading transaction in the transaction history. - Behavior change: a redemption now produces two webhooks with
status: FILLED. The first is sent at settlement and carries the gross proceeds and the fee. The second, withnotificationType: UPDATED, is sent once the tax has been processed and booked, and adds the four tax fields (all0when the sale realised no gain). - Behavior change: the transaction-history entry of the redemption is updated in place when the tax is booked. Its
netAmountbecomes gross amount minus fee minustaxDeductionTotal, which is the cash credited to the customer. - Note: the tax fields are populated only for
SELLorders with a processed tax result. Webhooks are delivered at least once, so the second notification can arrive again with the same figures. Process it idempotently byorderId.
Traditional Assets - Minimum Order Amount
Traditional asset orders whose value is below one cent are now rejected, because their fill would round to a gross amount of 0.00.
- Documentation Location: API REFERENCE - Trading - Traditional Assets; API REFERENCE - Webhooks
- New enum value:
ORDER_BELOW_MINIMUM_AMOUNTonTraditionalAssetOrderNotificationErrorCodeEnum. - Behavior change: an order whose value (quantity multiplied by the price the order is priced at: limit price, market price, or the higher of stop and market price) is below
0.01EUR is rejected through the traditional asset order notification with this error code. An order of exactly0.01EUR is accepted. - Note: the check applies to orders placed by the partner. Savings-plan executions and tokenized-asset orders keep their own minimums.
Identification Verification - CANCELLED Status
An identification that the customer cancels at the identification provider now ends in its own status.
- Documentation Location: API REFERENCE - Entities; API REFERENCE - Webhooks
- New enum value:
CANCELLEDonIdentificationVerificationStatusEnum. - Endpoints affected:
GET /entities/identification-verifications/{identificationVerificationId}and the identification verification webhook. - Note: clients that validate the status against a fixed list should add
CANCELLED. To retry, start a new identification verification.
Entity Webhooks - existingEntityId on Duplicate Errors
When an entity create is rejected as a duplicate, the webhook error now tells the partner which existing entity it duplicates.
- Documentation Location: API REFERENCE - Webhooks
- Added field:
existingEntityId(UUID, optional) onEntityValidationError. It is present only whenerrorTypeisALREADY_EXISTS_ERRORand the request duplicates an entity of the same partner (natural person, legal entity, beneficial owner, legal representative). The value is the id returned when that entity was created. - Note: use it to link the rejected request to the existing record instead of searching for it.
Document Signatures - Product Document Types
Signatures of the product documents can now be read back.
- Documentation Location: API REFERENCE - Documents; API REFERENCE - Entities
- New enum values:
KIID,RISK_INFORMATION,CONSUMER_INFORMATIONandPRODUCT_TERMS_AND_CONDITIONSonDocumentSignatureTypeEnum. - Endpoints affected: the
documentTypeof the signed documents on the natural person (naturalPersonSignedDocuments) and on the customer (signedDocumentsRelatedToCustomer). - Behavior change:
POST /v2/documents/signalready accepted signatures of these partner document types, but the natural person and customer did not return them correctly. They are now returned with the newdocumentTypevalues. - Note:
customerIdis required when signing a document of any of these four types, as forTERMS_AND_CONDITIONS. The rule is unchanged; the description ofcustomerIdnow lists all five types. Clients that validatedocumentTypeagainst a fixed list should add the new values.
Changed
Entities - Creating an Existing Person or Company, and Partner-Scoped modifiedOn
Two changes to how the Entities API handles natural persons and legal entities that already exist on the platform.
- Documentation Location: API REFERENCE - Entities; API REFERENCE - Webhooks
- Behavior change:
POSTto create a natural person or legal entity that already exists on the platform keeps the stored shared data. Only values missing from it are taken from the request; differing values in the request no longer overwrite it. UsePATCHto change shared data. - Changed:
modifiedOnon natural persons and legal entities, and on their webhooks, is the date your partner's record was last modified. It changes when your own data or the entity's status changes, or when shared data visible to you changes. Changes made by other partners to their own records of the same person or company do not affect it. - Note: the descriptions of
createdOnandverifiedOnon the legal entity were corrected (they wrongly referred to a natural person). The values are unchanged.
Price Streams - Partly Unsupported Market Requests
A price-stream request that mixes supported and unsupported markets no longer fails as a whole.
- Documentation Location: API REFERENCE - WebSocket Prices; API REFERENCE - WebSocket Tokenized Prices
- Endpoints affected:
/websocket/priceson the digital asset and the tokenized asset price streams. - Behavior change: an
ERRORresponse closes the connection, with one exception. When some requested markets are unsupported but at least one is supported, a singleERRORresponse lists the unsupported ones (unsupported markets: ...) andPRICESresponses for the supported markets follow on the same connection. - Note: do not treat every
ERRORresponse as the end of the connection. Check whetherPRICESresponses keep arriving.