Release 2027 · Schemaversie 001.05 · Actief
SIVI-bericht 1 (0001a): Vermogen (VB-PUO)
Met bericht 1 geeft de PUO het totale pensioenvermogen bij aanvang van de periode door: per pensioenregeling en per cohort (leeftijdscohort of reservecohort). De fiduciair manager gebruikt het als startpunt voor het collectieve beleggingsbeleid; de beleggingsadministrateur gebruikt het om onafhankelijk te kunnen reconciliëren. Optioneel bevat het bericht de gewenste verdeling over beleggingsportefeuilles (absoluut of als percentage).
Berichtstructuur
Entiteiten met cardinaliteit [min..max] en aantal attributen; klik voor de entiteitpagina.
- 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] · 3 attr.
- financialInformation.reportingPeriod[1..1] · 1 attr.
- investment.portfolio[0..99] · 4 attr.
- pension.cohort[1..99999] · 9 attr.
- investment.portfolio[0..99] · 4 attr.
- pension.scheme[1..999] · 3 attr.
Attributen (47)
| Entiteit | Attribuut | Type | V/O | Codelijst | Omschrijving |
|---|---|---|---|---|---|
| chunking.default | currentChunkId | string · max 70 | V | Unieke referentie van de huidige chunk. | |
| chunking.default | chunkSequenceNumber | integer | V | Volgnummer van de huidige chunk. | |
| chunking.default | totalNumberOfChunks | integer | V | Totale aantal chunks waarin het bericht is opgesplitst. | |
| chunking.default | chunkFragmentPaths | array[string] | V | Array van JMESPath-verwijzingen naar de berichtdelen die gebruikt zijn binnen deze chunk. | |
| commonFunctional.default | afdDefinitionVersion | string · max 80 | V | 001.05 | Met AFD definitieversienummer wordt aangegeven over welke versie van de (product)definitie wordt gecommuniceerd. |
| commonFunctional.default | afdDefinitionName | string · max 80 | V | VBPUO-001.00-Bericht_1._Vermogen_(0001a) | De AFD definitienaam van o.a. webservices en verzekeringsproducten. |
| commonFunctional.default | originalMessageId | string · max 70 | O | MessageId van het oorspronkelijke bericht, dat wordt vervangen door dit bericht. | |
| commonFunctional.default | function | string | V | ADNFUN | Berichtfunctie |
| commonTechnical.default | creationDateTime | string · format date-time | V | Datum en tijd van het aanmaken van het bericht. | |
| commonTechnical.default | testMessage | boolean | O | Indicatie of sprake is van een testbericht. | |
| commonTechnical.default | messageId | string · max 70 | V | Unique identification of the message. (AFD 2.0 only) | |
| party.receiver | refKey | string · max 70 | V | Entiteitsreferentie is een unieke referentie sleutel die aan een entiteit wordt toegekend. | |
| party.receiver | organizationName | string · max 60 | V | Naam beroeps of branche organisatie. | |
| 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 | Entiteitsreferentie is een unieke referentie sleutel die aan een entiteit wordt toegekend. | |
| party.sender | applicationSenderName | string · max 60 | O | Naam van de applicatie die de gegevens verzendt. | |
| party.sender | organizationName | string · max 60 | V | Naam beroeps of branche organisatie. | |
| 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 | E-mail adres werk | |
| party.contact | workPhoneNumber | string · max 60 | V | Telefoonnummer werk | |
| document.default | refKey | string · max 70 | V | Entiteitsreferentie is een unieke referentie sleutel die aan een entiteit wordt toegekend. | |
| document.default | fileName | string · max 60 | V | Naam van het bestand waaronder de bijlage kan worden opgeslagen. | |
| document.default | fileExtension | string | V | pdf | csv | txt | Extensienaam van het bestand waaronder de bijlage kan worden opgeslagen. Bijvoorbeeld "PDF", "DOC", etc. |
| party.pensionProvider | organizationName | string · max 60 | V | Naam beroeps of branche organisatie. | |
| 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 | Pensioenuitvoerder |
| pension.scheme | refKey | string · max 70 | V | Entiteitsreferentie is een unieke referentie sleutel die aan een entiteit wordt toegekend. | |
| pension.scheme | startAmount | number · multipleOf 0.01 | V | Bedrag (bijvoorbeeld van opgebouwd kapitaal) bij aanvang van een periode. | |
| pension.scheme | pensionSchemeName | string · max 60 | V | Naam van de pensioenregeling. | |
| financialInformation.reportingPeriod | startDate | string · format date | V | Startdatum (vanaf-datum). | |
| investment.portfolio | refKey | string · max 70 | V | Entiteitsreferentie is een unieke referentie sleutel die aan een entiteit wordt toegekend. | |
| investment.portfolio | description | string · max 60 | V | Omschrijving | |
| investment.portfolio | startExposurePercentage | number · multipleOf 0.01 | O | Het relatieve aandeel van startExposureAmount ten opzichte van het totale pensioenvermogen per datum. | |
| investment.portfolio | startExposureAmount | number · multipleOf 0.01 | O | De toedeling van het pensioenvermogen per cohort aan een specifieke investmentportfolio, berekend op basis van de toedelingsregels zoals door de PUO gehanteerd. | |
| pension.cohort | refKey | string · max 70 | V | Entiteitsreferentie is een unieke referentie sleutel die aan een entiteit wordt toegekend. | |
| pension.cohort | startAmount | number · multipleOf 0.01 | V | Bedrag (bijvoorbeeld van opgebouwd kapitaal) bij aanvang van een periode. | |
| pension.cohort | description | string · max 60 | V | Omschrijving | |
| pension.cohort | reserveType | string | O | AFDRES | Type reserve |
| pension.cohort | reserveDescription | string · max 60 | O | Omschrijving van het reserve. | |
| pension.cohort | reserveIndicator | boolean | V | Indicatie of een reserve aanwezig is / van toepassing is. | |
| pension.cohort | startAge | number · multipleOf 1 | O | Beginleeftijd. | |
| pension.cohort | endAge | number · multipleOf 1 | O | Eindleeftijd. | |
| pension.cohort | participationStatus | string | O | ADNDNS | Deelname status |
| investment.portfolio | refKey | string · max 70 | V | Entiteitsreferentie is een unieke referentie sleutel die aan een entiteit wordt toegekend. | |
| investment.portfolio | description | string · max 60 | V | Omschrijving | |
| investment.portfolio | startExposurePercentage | number · multipleOf 0.01 | O | Het relatieve aandeel van startExposureAmount ten opzichte van het totale pensioenvermogen per datum. | |
| investment.portfolio | startExposureAmount | number · multipleOf 0.01 | O | De toedeling van het pensioenvermogen per cohort aan een specifieke investmentportfolio, berekend op basis van de toedelingsregels zoals door de PUO gehanteerd. |
Voorbeeldbericht
Bron voorbeeld: SIVI voorbeeldbericht (Voorbeeldbericht_1). Waarden zijn fictief.
{
"commonTechnical": [
{
"entityType": "default",
"creationDateTime": "2023-10-27T10:00:00Z",
"messageId": "1234567890123456789012",
"testMessage": false,
"party": [
{
"entityType": "sender",
"refKey": "ABC123",
"rsinNumber": "123456789",
"organizationName": "VoorbeeldBedrijf B.V.",
"applicationSenderName": "ApplicatieNaam",
"party": [
{
"entityType": "contact",
"emailWork": "[email protected]",
"workPhoneNumber": "+31678717607"
}
]
},
{
"entityType": "receiver",
"refKey": "XYZ789",
"rsinNumber": "987654321",
"organizationName": "OntvangerCorp1"
}
]
}
],
"commonFunctional": [
{
"entityType": "default",
"afdDefinitionName": "VBPUO-001.00-Bericht_1._Vermogen_(0001a)",
"afdDefinitionVersion": "001.05",
"function": "01",
"originalMessageId": "987654321"
}
],
"party": [
{
"entityType": "pensionProvider",
"puvCode": "U0003",
"rsinNumber": "222333449",
"organizationName": "St. Pf. Openbare Bibliotheken",
"pension": [
{
"entityType": "scheme",
"refKey": "SCHEME456",
"pensionSchemeName": "BasisPensioen",
"startAmount": 100000,
"financialInformation": [
{
"entityType": "reportingPeriod",
"startDate": "2023-01-01"
}
],
"pension": [
{
"entityType": "cohort",
"refKey": "COHORT101",
"startAmount": 60000,
"description": "Beschrijving van cohort 101",
"reserveIndicator": false,
"startAge": 300,
"endAge": 780,
"participationStatus": "16"
},
{
"entityType": "cohort",
"refKey": "COHORT202",
"startAmount": 75000,
"description": "Beschrijving van cohort 202",
"reserveIndicator": false,
"startAge": 540,
"endAge": 780,
"participationStatus": "20"
}
]
},
{
"entityType": "scheme",
"refKey": "SCHEME457",
"pensionSchemeName": "PlusPensioen",
"startAmount": 200000,
"financialInformation": [
{
"entityType": "reportingPeriod",
"startDate": "2023-01-01"
}
],
"pension": [
{
"entityType": "cohort",
"refKey": "COHORTRES1",
"startAmount": 85000,
"description": "Solidariteitsreserve",
"reserveIndicator": true,
"reserveType": "1"
},
{
"entityType": "cohort",
"refKey": "COHORTRES2",
"startAmount": 85000,
"description": "Overige reserve",
"reserveIndicator": true,
"reserveType": "99",
"reserveDescription": "specifieke reserve voor slapers"
}
]
}
]
}
]
}Variant: Voorbeeldbericht_2
{
"commonTechnical": [
{
"entityType": "default",
"creationDateTime": "2023-10-27T10:00:00Z",
"messageId": "1234567890123456789012",
"testMessage": false,
"party": [
{
"entityType": "sender",
"refKey": "ABC123",
"rsinNumber": "123456789",
"organizationName": "VoorbeeldBedrijf B.V.",
"applicationSenderName": "ApplicatieNaam",
"party": [
{
"entityType": "contact",
"emailWork": "[email protected]",
"workPhoneNumber": "+31678717607"
}
]
},
{
"entityType": "receiver",
"refKey": "XYZ789",
"rsinNumber": "987654321",
"organizationName": "OntvangerCorp1"
}
]
}
],
"commonFunctional": [
{
"entityType": "default",
"afdDefinitionName": "VBPUO-001.00-Bericht_1._Vermogen_(0001a)",
"afdDefinitionVersion": "001.05",
"function": "01",
"originalMessageId": "987654321"
}
],
"party": [
{
"entityType": "pensionProvider",
"puvCode": "U0003",
"rsinNumber": "222333449",
"organizationName": "St. Pf. Openbare Bibliotheken",
"pension": [
{
"entityType": "scheme",
"refKey": "SCHEME456",
"pensionSchemeName": "BasisPensioen",
"startAmount": 100000,
"financialInformation": [
{
"entityType": "reportingPeriod",
"startDate": "2023-01-01"
}
],
"pension": [
{
"entityType": "cohort",
"refKey": "COHORT101",
"startAmount": 60000,
"description": "Beschrijving van cohort 101",
"reserveIndicator": false,
"startAge": 300,
"endAge": 780,
"participationStatus": "16",
"investment": [
{
"entityType": "portfolio",
"refKey": "PF_MIX_NEUTRAL_01",
"description": "Neutraal Mixfonds Beleggingen Standaard",
"startExposureAmount": 60000
}
]
},
{
"entityType": "cohort",
"refKey": "COHORT202",
"startAmount": 75000,
"description": "Beschrijving van cohort 202",
"reserveIndicator": false,
"startAge": 540,
"endAge": 780,
"participationStatus": "20",
"investment": [
{
"entityType": "portfolio",
"refKey": "PF_STOCK_GLOBAL_02",
"description": "Wereldwijde Aandelenportefeuille Dynamisch",
"startExposureAmount": 45000
},
{
"entityType": "portfolio",
"refKey": "PF_BOND_EURO_02",
"description": "Europese Obligatieportefeuille Defensief",
"startExposurePercentage": 0.4
}
]
}
]
},
{
"entityType": "scheme",
"refKey": "SCHEME457",
"pensionSchemeName": "PlusPensioen",
"startAmount": 200000,
"financialInformation": [
{
"entityType": "reportingPeriod",
"startDate": "2023-01-01"
}
],
"pension": [
{
"entityType": "cohort",
"refKey": "COHORTRES1",
"startAmount": 85000,
"description": "Beschrijving van cohort RES1",
"reserveIndicator": true,
"reserveType": "1",
"startAge": 45,
"endAge": 65,
"participationStatus": "16",
"investment": [
{
"entityType": "portfolio",
"refKey": "PF_RESERVE_LOWRISK_03",
"description": "Lage Risico Reserveportefeuille Solide",
"startExposurePercentage": 1
}
]
},
{
"entityType": "cohort",
"refKey": "COHORTRES2",
"startAmount": 85000,
"description": "Beschrijving van cohort RES2",
"reserveIndicator": true,
"reserveType": "99",
"reserveDescription": "specifieke reserve voor slapers",
"startAge": 45,
"endAge": 65,
"participationStatus": "40",
"investment": []
}
]
}
]
}
]
}Variant: Voorbeeldbericht_1-reserves
{
"commonTechnical": [
{
"entityType": "default",
"creationDateTime": "2027-03-01T09:00:00+01:00",
"messageId": "VB-0001A-RES-0001",
"testMessage": true,
"party": [
{
"entityType": "sender",
"refKey": "PUO01",
"organizationName": "Pensioenuitvoerder Voorbeeld",
"applicationSenderName": "VoorbeeldApplicatie"
},
{
"entityType": "receiver",
"refKey": "FM01",
"organizationName": "Fiduciair Manager Voorbeeld"
}
]
}
],
"commonFunctional": [
{
"entityType": "default",
"afdDefinitionName": "VBPUO-001.00-Bericht_1._Vermogen_(0001a)",
"afdDefinitionVersion": "001.05",
"function": "01"
}
],
"party": [
{
"entityType": "pensionProvider",
"puvCode": "U0536",
"organizationName": "Pensioenfonds Zorg en Welzijn",
"pension": [
{
"entityType": "scheme",
"refKey": "REG-01",
"pensionSchemeName": "Basisregeling Voorbeeld",
"startAmount": 34089489.28,
"financialInformation": [
{
"entityType": "reportingPeriod",
"startDate": "2027-02-01"
}
],
"pension": [
{
"entityType": "cohort",
"refKey": "C-16-300",
"startAmount": 2312498.83,
"description": "Actief 25 jaar",
"reserveIndicator": false,
"startAge": 300,
"endAge": 300,
"participationStatus": "16"
},
{
"entityType": "cohort",
"refKey": "C-80-300",
"startAmount": 1743136.62,
"description": "Slaper 25 jaar",
"reserveIndicator": false,
"startAge": 300,
"endAge": 300,
"participationStatus": "80"
},
{
"entityType": "cohort",
"refKey": "C-16-420",
"startAmount": 1601733.54,
"description": "Actief 35 jaar",
"reserveIndicator": false,
"startAge": 420,
"endAge": 420,
"participationStatus": "16"
},
{
"entityType": "cohort",
"refKey": "C-80-420",
"startAmount": 1371514.14,
"description": "Slaper 35 jaar",
"reserveIndicator": false,
"startAge": 420,
"endAge": 420,
"participationStatus": "80"
},
{
"entityType": "cohort",
"refKey": "C-16-540",
"startAmount": 4545636.64,
"description": "Actief 45 jaar",
"reserveIndicator": false,
"startAge": 540,
"endAge": 540,
"participationStatus": "16"
},
{
"entityType": "cohort",
"refKey": "C-80-540",
"startAmount": 2898917.9,
"description": "Slaper 45 jaar",
"reserveIndicator": false,
"startAge": 540,
"endAge": 540,
"participationStatus": "80"
},
{
"entityType": "cohort",
"refKey": "C-16-660",
"startAmount": 2876220.79,
"description": "Actief 55 jaar",
"reserveIndicator": false,
"startAge": 660,
"endAge": 660,
"participationStatus": "16"
},
{
"entityType": "cohort",
"refKey": "C-80-660",
"startAmount": 997670.06,
"description": "Slaper 55 jaar",
"reserveIndicator": false,
"startAge": 660,
"endAge": 660,
"participationStatus": "80"
},
{
"entityType": "cohort",
"refKey": "C-16-780",
"startAmount": 5965026.7,
"description": "Actief 65 jaar",
"reserveIndicator": false,
"startAge": 780,
"endAge": 780,
"participationStatus": "16"
},
{
"entityType": "cohort",
"refKey": "C-80-780",
"startAmount": 1251288.8,
"description": "Slaper 65 jaar",
"reserveIndicator": false,
"startAge": 780,
"endAge": 780,
"participationStatus": "80"
},
{
"entityType": "cohort",
"refKey": "R-01",
"startAmount": 2809748.75,
"description": "Solidariteitsreserve",
"reserveIndicator": true,
"reserveType": "1"
},
{
"entityType": "cohort",
"refKey": "R-02",
"startAmount": 491160.94,
"description": "Operationele reserve",
"reserveIndicator": true,
"reserveType": "3"
},
{
"entityType": "cohort",
"refKey": "R-03",
"startAmount": 2708836.85,
"description": "Compensatiedepot",
"reserveIndicator": true,
"reserveType": "4"
},
{
"entityType": "cohort",
"refKey": "R-04",
"startAmount": 1348217.95,
"description": "Overige reserve",
"reserveIndicator": true,
"reserveType": "99",
"reserveDescription": "Reserve premiekorting"
},
{
"entityType": "cohort",
"refKey": "R-05",
"startAmount": 1167880.77,
"description": "Overige reserve",
"reserveIndicator": true,
"reserveType": "99",
"reserveDescription": "Reserve uitvoeringskosten"
}
]
}
]
}
]
}Regels en verbandscontroles
- Het regelingtotaal (pension.scheme.startAmount) en de cohortbedragen (pension.cohort.startAmount) worden naast elkaar aangeleverd. De standaard schrijft niet voor dat de cohorten optellen tot het regelingtotaal: volgens de handleiding kan de ontvanger desgewenst een totaalberekening maken en de aansluiting toetsen, afhankelijk van de afspraken tussen partijen. In SIVI's eigen voorbeeldbericht staat 100.000 naast een cohortsom van 135.000.
- Elk cohort heeft een unieke refKey en wordt beschreven met startAge en endAge (gehele getallen sinds Release 2026) en een deelnemerstatus uit codelijst ADNDNS.
- Reservecohorten (solidariteitsreserve, risicodelingsreserve, compensatiedepot) worden gemarkeerd met reserveIndicator en getypeerd met reserveType uit codelijst AFDRES. Sinds de definitieve Release 2027 is reserveType verplicht zodra reserveIndicator true is (handleiding §6.3), al laat het schema beide velden optioneel; reserveDescription is gewenst bij code 99 (Overige).
- Een cohort met waarde 0 mag met bedrag 0 worden meegestuurd of worden weggelaten, ook als het een reserve is; partijen moeten beide kunnen verwerken en leggen in hun afspraken vast wat een ontbrekend cohort betekent. Een veld zonder waarde (null) kent de standaard niet (handleiding §6.3, issue #100).
- financialInformation.reportingPeriod.startDate is de peildatum van het vermogen; de ontvanger toetst of die aansluit op de vorige periode.
- Bedragen hebben maximaal twee decimalen (multipleOf 0.01); percentages maximaal twaalf.
Valkuilen
- Een cohort dat in bericht 2 (cashflow) voorkomt maar niet in bericht 1: de ontvanger kan de mutatie dan niet plaatsen. Houd de cohortindeling over berichten 1, 2 en 3 identiek.
- Meer dan enkele duizenden cohorten of jaarcohorten maken het bericht groot: gebruik het chunking-protocol van Release 2026 in plaats van meerdere losse berichten.
- Het veld investment.portfolio is optioneel en nieuw sinds Release 2026; een ontvanger op een oudere release negeert het of wijst het bericht af.
Fouten en oplossingen
- messageId ontbreekt, is leeg of langer dan 70 tekensSchemafout op commonTechnical/0/messageId: 'must have required property' of 'must NOT have more than 70 characters'.
- Dubbele messageId na acceptatie (HTTP 400 met feedback)De ontvanger antwoordt HTTP 400 met een feedbackbericht (statusType 0) op een bericht dat inhoudelijk correct lijkt.
- afdDefinitionName onjuist (vaste waarde sinds de definitieve Release 2027)Schemafout 'must be equal to constant' op afdDefinitionName; de validator van WTP Data Lab noemt de verwachte waarde. Typisch voor een bericht dat op de pre-release van juli 2026 is gebouwd: het vermeldt de juiste versie 001.05 en valt toch af.
- afdDefinitionVersion onjuist (001.04 versus 001.05)Schemafout 'must be equal to one of the allowed values' op afdDefinitionVersion, of de ontvanger valideert tegen het verkeerde schema en meldt onbekende velden.
- Berichtfunctie ongeldig (ADNFUN 01, 02, 09 of 54)Schemafout op commonFunctional/0/function: waarde niet toegestaan.
- testMessage = true in productieHet bericht wordt geaccepteerd maar niet verwerkt, of juist als test genegeerd terwijl het productie was.
- creationDateTime geen geldige date-timeSchemafout 'must match format date-time'.
- puvCode onbekend in codelijst AFDIDPSchemafout 'must match exactly one schema in oneOf' op party/0/puvCode.
- rsinNumber niet 9 positiesSchemafout op rsinNumber (lengte) bij sender, receiver of pensionProvider.
- party.sender: refKey of organizationName ontbreektSchemafout 'must have required property' op de verzendende partij.
- party.contact: emailWork of workPhoneNumber ontbreektSchemafout op de contactpersoon onder de verzender.
- pension.scheme: refKey ontbreekt of pensionSchemeName langer dan 60Schemafout op de regeling.
- startAmount niet in twee decimalen (multipleOf 0.01)Schemafout 'must be multiple of 0.01'.
- reportingPeriod: endDate ligt vóór startDateHet schema accepteert het bericht; de ontvanger wijst het functioneel af of boekt de stromen in de verkeerde periode.
- Cohort-cardinaliteit overschreden (minContains / maxContains)Schemafout 'must contain at least 1 valid item' of 'must contain at most 99999 valid items' op pension.
- participationStatus ongeldig (ADNDNS)Schemafout 'must match exactly one schema in oneOf' op pension.cohort.participationStatus.
- reserveType ongeldig (AFDRES)Schemafout 'must match exactly one schema in oneOf' op reserveType.
- reserveIndicator zonder reserveType, of reserveType 99 zonder reserveDescriptionOnder Release 2027 een fout van de verbandscontrole bij reserveType. Onder Release 2026 schema-valide, maar de ontvanger kan de reserve niet typeren en boekt hem als gewoon cohort; bij reserveType 99 zonder omschrijving weet hij niet welke reserve is bedoeld.
- endAge kleiner dan startAge, of geen geheel getalBij decimalen een schemafout 'must be integer'; bij verwisselde grenzen accepteert het schema en wijst de ontvanger af.
- Cohortsom wijkt af van het regelingtotaalSchema-valide, maar de fiduciair of beleggingsadministrateur meldt een reconciliatieverschil op regelingniveau.
- Onbekend veld (additionalProperties = false)Schemafout 'must NOT have additional properties' met de naam van het extra veld.
- entityType komt niet overeen met de vaste waardeSchemafout 'must be equal to constant' op entityType, vaak gevolgd door 'must contain at least 1 valid item' op de bovenliggende array.
- Chunking: chunkSequenceNumber of totalNumberOfChunks inconsistentDe ontvanger kan de reeks niet sluiten: volgnummer hoger dan het totaal, dubbel volgnummer of wisselend totaal binnen één currentChunkId.
- Bijlage: fileExtension niet pdf, csv of txt, of fileName langer dan 60Schemafout op document.
- Fout ontdekt na acceptatie: het correctieprotocolEen geaccepteerd en verwerkt bericht blijkt inhoudelijk fout (verkeerd bedrag, verkeerd cohort).
- Schema-draft mismatch: definitions versus $defs, draft 2019-09 versus 2020-12De validator meldt 'can't resolve reference', MissingRefError of 'no schema with key or ref' bij het laden van het schema, nog vóór het bericht wordt getoetst.
Veelgestelde vragen
Wat is het verschil tussen bericht 1 (Vermogen) en bericht 2 (Cashflow)?
Bericht 1 is een stand: het vermogen bij aanvang van de periode. Bericht 2 is een stroom: de in- en uitstroom in de periode. Samen met bericht 4 (rendement) sluit de keten de periode: beginstand + cashflow + rendement = eindstand.
Wie ontvangt bericht 1: de fiduciair manager of de beleggingsadministrateur?
Beiden, rechtstreeks van de PUO. Een uitgangspunt van de standaard is dat een onafhankelijke asset serviceprovider dezelfde informatie ontvangt als de fiduciair manager, zodat hij zelfstandig kan rapporteren en reconciliëren.
Wordt bericht 1 ook in de flexibele premieregeling gebruikt?
Ja. De FPR-berichten 5 tot en met 15 dekken alleen de geunitiseerde stromen. Collectieve stromen zoals risicopremies, reservestortingen en onttrekkingen aan collectieve pools lopen via de SPR-berichten 1 tot en met 4 (handleiding §4.1).
Zijn startAge en endAge in jaren of in maanden?
Het schema schrijft gehele getallen voor en legt de eenheid niet vast; het officiële voorbeeldbericht gebruikt maanden (300 en 780). Leg de eenheid vast in de ketenafspraken en houd die in alle berichten gelijk.
Wijzigingsgeschiedenis
- v0.2.0 (april 2024): puvCode toegevoegd, refKey verplicht.
- v1.3.0 (Release 2026): investment.portfolio toegevoegd, startAge en endAge gehele getallen, chunking.
- v1.4.0 (Release 2027): JSON Schema 2020-12, codelijsten via $defs.
- Definitieve Release 2027 (12 oktober 2026): afdDefinitionName weer een vaste waarde; refKey van de portefeuille onder het cohort maximaal 70 tekens; toelichting van SIVI per attribuut; reserveType verplicht bij reserveIndicator = true.
Schema-bestand: VBPUO-001.00-Bericht_1._Vermogen_(0001a).json · JSON-schema (001.05) · GitHub
