Release 2027 · Schema version 001.05 · Active
SIVI message 13 (00555b): Value information investment pool (VB-PUO)
Message 13 delivers the value of each investment pool: the (preliminary) unit value, the number of units and the total value, plus the value of the mutated units. The PUO uses it to value the personal pension capitals and close the unit administration; the fiduciary uses it to check execution.
Message structure
Entities with cardinality [min..max] and number of attributes; click for the entity page.
- chunking.default[0..1] · 4 attr.
- commonFunctional.default[1..1] · 4 attr.
- commonTechnical.default[1..1] · 3 attr.
- party.receiver[1..1] · 3 attr.
- party.sender[1..1] · 4 attr.
- party.contact[0..9] · 2 attr.
- document.default[0..99] · 3 attr.
- party.pensionProvider[1..1] · 3 attr.
- pension.scheme[1..999] · 2 attr.
- financialInformation.reportingPeriod[1..1] · 1 attr.
- investment.pool[1..99] · 6 attr.
- pension.scheme[1..999] · 2 attr.
Attributes (35)
| Entity | Attribute | Type | V/O | Code list | Description |
|---|---|---|---|---|---|
| chunking.default | currentChunkId | string · max 70 | V | Unique reference (id) of the current chunk. | |
| chunking.default | chunkSequenceNumber | integer | V | Sequence number of the current chunk. | |
| chunking.default | totalNumberOfChunks | integer | V | Total number of chunks the message has been split into. | |
| chunking.default | chunkFragmentPaths | array[string] | V | Array of JMESPath references to the message fragments used within the current chunk. | |
| commonFunctional.default | afdDefinitionVersion | string · max 80 | V | 001.05 | Version of the AFD-definition. |
| commonFunctional.default | afdDefinitionName | string · max 80 | V | VBPUO-001.00-Bericht_13._Waarde-informatie_beleggingspool_(00555b) | Name of the AFD-definition. |
| commonFunctional.default | originalMessageId | string · max 70 | O | The messageId of the original message, which is replaced by this message. | |
| commonFunctional.default | function | string | V | ADNFUN | Message function |
| commonTechnical.default | creationDateTime | string · format date-time | V | Date and time (as timestamp) when the message was created. | |
| commonTechnical.default | testMessage | boolean | O | Indication whether the message is a test message. | |
| commonTechnical.default | messageId | string · max 70 | V | Unique identification of the message. (AFD 2.0 only) | |
| party.receiver | refKey | string · max 70 | V | Unique reference key assigned to an entity. | |
| party.receiver | organizationName | string · max 60 | V | Name of professional or branch organization. | |
| party.receiver | rsinNumber | string · max 9 | O | Governmental identification number for legal entities and associations. (AFD 2.0 only) | |
| party.sender | refKey | string · max 70 | V | Unique reference key assigned to an entity. | |
| party.sender | applicationSenderName | string · max 60 | O | Name of the application that sends the data. | |
| party.sender | organizationName | string · max 60 | V | Name of professional or branch organization. | |
| party.sender | rsinNumber | string · max 9 | O | Governmental identification number for legal entities and associations. (AFD 2.0 only) | |
| party.contact | emailWork | string · max 60 | V | Work email address. | |
| party.contact | workPhoneNumber | string · max 60 | V | Work telephone number. | |
| document.default | refKey | string · max 70 | V | Unique reference key assigned to an entity. | |
| document.default | fileName | string · max 60 | V | Name of the file under which the attachment can be saved. | |
| document.default | fileExtension | string | V | pdf | csv | txt | Extension of the file under which the attachment can be saved. For example "pdf", "doc", etc. |
| party.pensionProvider | organizationName | string · max 60 | V | Name of professional or branch organization. | |
| party.pensionProvider | rsinNumber | string · max 9 | O | Governmental identification number for legal entities and associations. (AFD 2.0 only) | |
| party.pensionProvider | puvCode | string | V | AFDIDP | Pension provider |
| pension.scheme | refKey | string · max 70 | V | Unique reference key assigned to an entity. | |
| pension.scheme | pensionSchemeName | string · max 60 | V | Name of the pension scheme. | |
| financialInformation.reportingPeriod | participationValuationDate | string · format date | V | Valuation date of the participation value (per cohort). | |
| investment.pool | refKey | string · max 70 | V | Unique reference key assigned to an entity. | |
| investment.pool | description | string · max 60 | V | Description. | |
| investment.pool | currencyType | string | V | ISOVAL | Currency |
| investment.pool | numberOfUnits | number · multipleOf 0.000001 | O | Number of units. | |
| investment.pool | preliminaryUnitValueAmount | number · multipleOf 0.000001 | O | Preliminary unit value. | |
| investment.pool | unitsSummedValueAmount | number · multipleOf 0.01 | V | Sum of unit values. |
Sample message
Sample source: SIVI voorbeeldbericht (Voorbeeldbericht_13). Values are fictitious.
{
"commonTechnical": [
{
"entityType": "default",
"creationDateTime": "2027-03-01T09:00:00+01:00",
"messageId": "VB-00555B-0001",
"testMessage": true,
"party": [
{
"entityType": "sender",
"refKey": "BA01",
"organizationName": "Beleggingsadministrateur Voorbeeld",
"applicationSenderName": "VoorbeeldApplicatie"
},
{
"entityType": "receiver",
"refKey": "PUO01",
"organizationName": "Pensioenuitvoerder Voorbeeld"
}
]
}
],
"commonFunctional": [
{
"entityType": "default",
"afdDefinitionName": "VBPUO-001.00-Bericht_13._Waarde-informatie_beleggingspool_(00555b)",
"afdDefinitionVersion": "001.05",
"function": "01"
}
],
"party": [
{
"entityType": "pensionProvider",
"puvCode": "U0393",
"organizationName": "Pensioenfonds Metaal en Techniek",
"pension": [
{
"entityType": "scheme",
"refKey": "REG-01",
"pensionSchemeName": "Flexibele regeling Voorbeeld",
"financialInformation": [
{
"entityType": "reportingPeriod",
"participationValuationDate": "2027-02-26"
}
],
"investment": [
{
"entityType": "pool",
"refKey": "POOL-MATCH",
"description": "Matchingpool",
"currencyType": "EUR",
"numberOfUnits": 356968.172112,
"preliminaryUnitValueAmount": 103.7903,
"unitsSummedValueAmount": 37049833.67
},
{
"entityType": "pool",
"refKey": "POOL-REND",
"description": "Rendementspool",
"currencyType": "EUR",
"numberOfUnits": 281186.218314,
"preliminaryUnitValueAmount": 108.1778,
"unitsSummedValueAmount": 30418106.49
},
{
"entityType": "pool",
"refKey": "POOL-RENTE",
"description": "Rentepool",
"currencyType": "EUR",
"numberOfUnits": 1649532.890637,
"preliminaryUnitValueAmount": 120.4195,
"unitsSummedValueAmount": 198635925.92
}
]
}
]
}
]
}Rules and consistency checks
- Two moments in the cycle: a preliminary NAV at T-4 (basis for the orders) and a final NAV at T+3 (basis for valuation and the payment information of message 14).
- Per pool: unitsSummedValueAmount (mandatory), numberOfUnits and preliminaryUnitValueAmount; currencyType in ISO 4217. In SIVI's sample the pool value is the number of units times the unit value.
- Release 2027 simplified the NAV structure; issue #136 (still open) proposes renaming preliminaryUnitValueAmount because the field also carries the final value. In the final Release 2027 the field still has that name.
Pitfalls
- A final NAV sent with the same messageId as the preliminary one is rejected (duplicate messageId after acceptance); use a new messageId and refer with originalMessageId if desired.
Errors and fixes
- messageId missing, empty or longer than 70 charactersSchema error on commonTechnical/0/messageId: 'must have required property' or 'must NOT have more than 70 characters'.
- Duplicate messageId after acceptance (HTTP 400 with feedback)The receiver answers HTTP 400 with a feedback message (statusType 0) to a message that looks correct in content.
- afdDefinitionName incorrect (a fixed value since the final Release 2027)Schema error 'must be equal to constant' on afdDefinitionName; the WTP Data Lab validator names the expected value. Typical of a message built on the July 2026 pre-release: it states the right version 001.05 and still fails.
- afdDefinitionVersion incorrect (001.04 versus 001.05)Schema error 'must be equal to one of the allowed values' on afdDefinitionVersion, or the receiver validates against the wrong schema and reports unknown fields.
- currencyType not an ISO 4217 codeSchema error on currencyType (code list ISOVAL).
- Error discovered after acceptance: the correction protocolAn accepted and processed message turns out to be wrong in content (wrong amount, wrong cohort).
Difference from Release 2026 (001.04 → 001.05)
Attributes removed: investment.pool.marketValueAmount
Frequently asked questions
How do I distinguish the preliminary from the final value?
By the moment (T-4 versus T+3) and by the reporting period; the schema has no separate status flag. Fix the convention in the chain agreements until SIVI has processed issue #136.
Change history
- v1.1.0 (July 2024): marketValueAmount, preliminaryUnitValueAmount and numberOfUnits added.
- v1.4.0 (Release 2027): NAV structure simplified; JSON Schema 2020-12.
Schema file: VBPUO-001.00-Bericht_13._Waarde-informatie_beleggingspool_(00555b).json · JSON-schema (001.05) · GitHub
