Release 2027 · Schema version 001.05 · v1.4.0-prerelease → v1.4.0
Release 2027: pre-release versus final (what changed on 12 October 2026)
On 12 October 2026 SIVI published the final Release 2027 (tag v1.4.0). It replaces the pre-release of 17 July 2026, which is now tag v1.4.0-prerelease. Both carry afdDefinitionVersion 001.05 (the feedback message 001.02): the version number does not show which of the two a message was built on. A message built on the pre-release can therefore state 001.05 and still be rejected. Below, per message, what changed, what it means for a message built on the pre-release, and what the validator then reports.
Pre-release
17 July 2026, tag v1.4.0-prerelease
Final
12 October 2026, tag v1.4.0 (commit a603372)
Version number
001.05 (feedback 001.02), unchanged
In use
from 1 January 2027
Per message
| Message | What changed | A message built on the pre-release | What the validator reports |
|---|---|---|---|
| All messages | afdDefinitionName has a fixed value again: the file name of the schema with 001.00, for example VBPUO-001.00-Bericht_2._Cashflow_(0001b). The version is only in afdDefinitionVersion (#140, manual section 7.5.1.1). Also: chunking.currentChunkId at most 70 characters, and every attribute carries a Dutch explanation by SIVI (customDescription). | In the pre-release the name was free; SIVI's own chunk samples carried Pensioenprojectie_0001c. Any value other than the fixed name is now a schema error. | Error at afdDefinitionName, with the expected value and the reason. |
| 2 Cashflow | netAmount and netDate are mandatory in every cashflow block: directly under the scheme, per cohort and per investment portfolio. The cashflow per portfolio may now also carry contributionAmount and withdrawalAmount with their dates (two decimals). A portfolio next to the cashflow directly under the scheme is the FPR route itself; only a breakdown per cohort and per portfolio in one scheme is not valid. At least one cashflow per scheme (manual sections 6.3.1, 3.2.5). | A cohort without netDate is rejected; SIVI's own pre-release sample had that. The published schema only counts the valid array items (#63), so a generic validator misses it; a receiver that checks every item does not. | Error: required property netDate missing, per cohort. Error for a scheme without any cashflow. |
| 3 Pension projection | New: the FPR route with 0 to 99 investment portfolios per scheme, each with 0 to 9999 projected payments. Payments under a cohort or portfolio are optional. Each scheme uses exactly one breakdown: per cohort or per portfolio (manual section 6.3.1). | A scheme with only scheme-level payments and no cohorts is no longer valid. SIVI changed its own sample for that reason. | Error for a scheme without a breakdown and for a scheme with both cohorts and portfolios. Not on a chunk. |
| 5 Trade instruction | The order rules are now in the new section 6.3.2 (the old section 4.4.1 no longer exists). Per order exactly one of tradeAmount and tradeQuantity; both empty only on the order of a switch that does not steer, and that may be either order. Per switch pair exactly one order carries an amount or quantity. switchType has the codes 1 (sequential) and 2 (one day), via the code-list file next to the schema; a validator that does not find that file cannot compile the schema. | Amount and quantity together was already forbidden in the pre-release (section 4.4.1), yet SIVI's own three samples did it; the final samples no longer do. Newly allowed: an empty switchfrom order when the switchto order steers. | Error for amount and quantity together or both empty; error when neither or both orders of a switch steer. |
| 6 Order confirmation | If tradeQuantity and tradePrice are both present, then per trade quantity × price = tradeAmount. In a switch the amount of the switchfrom order goes into the switchto order, except between products in different currencies (manual section 6.3.2). switchType as in message 5. | A confirmation in which quantity × price is not the amount is rejected. SIVI's buy sample computes 102 × 98.04 = 10000.08. | Error when quantity × price differs by more than half a cent (plus the rounding of the price); warning when the amounts of a switch in the same currency differ. |
| 14 Payment information | Per scheme 1 to 999 payments in one message (was exactly one, #149). collectionAccountIban at most 34 characters, on the payment and on the creditor (was 10, #135). The sender is the investment administrator; the PUO only when it fulfils that role itself (#142). | A pre-release message stays valid. Not the other way round: with full IBANs or several payments the message is valid under Release 2027 only; Release 2026 (001.04, also v1.3.2) allows 10 characters and one payment. | Under Release 2026: error on the length of the IBAN and on the number of payments. |
| 15 Corporate actions | The empty financialInformation.reportingPeriod has been removed from the message. corporateActionType uses code list AFDCOA: 1 cash dividend, 2 stock dividend, 3 product change, 99 other; a rebate falls under 99. AFDCAE no longer exists. The dividend fields have two decimals. | Every message 15 of the pre-release is rejected: the codes cashDividend, stockDividend, productChange and rebate no longer exist, and financialInformation is an unknown field. | Error: value is not in the code list; error: unknown field financialInformation. |
| Feedback message | afdDefinitionName is fixed as VBPUO_Feedback_Message-001.00-VBPUO_Feedback_Message (the pre-release had …-001.02-…); the version stays 001.02. originalMessageType lists the ten active messages, 00557 added and the discontinued messages removed. | Every pre-release feedback message is rejected on afdDefinitionName. Feedback on message 15 is now possible. | Error at afdDefinitionName, with the expected value. |
| 1 to 4: reserves | The manual lays down a consistency check: if reserveIndicator is true, reserveType is mandatory (section 6.3). The schema keeps both fields optional. reserveDescription is desired with code 99. | The schema accepts a reserve cohort without reserveType; a receiver that applies the consistency checks does not. | Error under Release 2027, warning under Release 2026. |
What changed in the manual
- One FPR model: the distinction between a direct and a layered order model is gone, and with it the cohort pool (#124). The process flow shows two administrative set-ups (collective part in units or in euros), not two models.
- Consistency checks: section 6.3.1 for messages 2 and 3 and the new section 6.3.2 for messages 5 and 6; the SPR and FPR route in the new section 3.2.5. The validationRules files are still empty ("nog niet gemodelleerd").
- Senders: message 5 goes from the PUO to the investment administrator (BA), message 6 from the BA to the PUO; messages 10 and 14 are sent by the BA, the PUO only when it fulfils that role itself (#142).
- Security: OAuth 2.0 is the fixed mechanism; x-api-key and x-jws-signature are options (sections 2.7, 7.4).
- Cohorts with value 0: send them with 0 or leave them out, also for reserves; the standard has no field without a value (null) (#100).
- The sample messages live in a folder of their own per release on main, where main is leading: they can change between releases.
Built on the pre-release? What to change
- Set afdDefinitionName to the fixed name of the message (the list is on the code list page afdDefinitionName).
- Message 2: give netAmount and netDate in every cashflow block, also per cohort; use either cohorts or portfolios per scheme.
- Message 3: give every scheme exactly one breakdown.
- Message 5: per order an amount or a quantity; per switch one order steers.
- Message 6: make quantity × price come out at the amount.
- Message 15: use the AFDCOA codes 1, 2, 3 and 99 and leave financialInformation out.
- Feedback message: the new fixed afdDefinitionName.
- Validator: resolve the reference to the code-list file next to the schema (messages 5, 6 and 15), next to the code lists on sivi.org.
- Check your messages again in the validator, with Release 2027 (or automatic) selected.
Measured
- The final schemas reject 9 of the 17 pre-release sample messages: four chunk samples and the feedback sample on afdDefinitionName, the message 2 sample on netDate per cohort (only visible when every array item is checked, #63) and the three message 5 samples on amount and quantity together.
- Our validator on the pre-release (the version of 2 October 2026) rejected 6 of SIVI's 24 final sample messages: message 14, message 15, the FPR samples of messages 2 and 3, and both feedback samples. Since the update of 14 October it accepts all 24.
- Measured on 14 October 2026 with the schemas of tags v1.4.0-prerelease and v1.4.0.
Source: Release notes v1.4.0 (SIVI, GitHub) · Manual Release 2027 (final, Dutch) · Manual of the pre-release (online until April 2027)
