{"$schema":"http://json-schema.org/draft/2019-09/schema#","description":"JSON Schema SIVI 2.0","//comment":{"functionDescription":"Bericht_9._PUO-reconciliatie-informatie_(00552b)","afdDefinitionChangeLog":"20250701 uitlevering (AOS 001.04) - prerelease 2026"},"definitions":{"chunking":{"type":"object","additionalProperties":false,"properties":{"entityType":{"description":"Unique identification of an entity. (NL: De unieke identificatie van een entiteit.)","type":"string","const":"default"},"currentChunkId":{"description":"Unique reference (id) of the current chunk. (NL: Unieke referentie van de huidige chunk.)","type":"string"},"chunkSequenceNumber":{"description":"Sequence number of the current chunk. (NL: Volgnummer van de huidige chunk.)","type":"integer"},"totalNumberOfChunks":{"description":"Total number of chunks the message has been split into. (NL: Totale aantal chunks waarin het bericht is opgesplitst.)","type":"integer"},"chunkFragmentPaths":{"description":"Array of JMESPath references to the message fragments used within the current chunk. (NL: Array van JMESPath-verwijzingen naar de berichtdelen die gebruikt zijn binnen deze chunk.)","type":"array","items":{"type":"string"}}},"required":["entityType","currentChunkId","chunkSequenceNumber","totalNumberOfChunks","chunkFragmentPaths"]},"commonFunctional":{"type":"object","additionalProperties":false,"properties":{"entityType":{"description":"Unique identification of an entity. (NL: De unieke identificatie van een entiteit.)","type":"string","const":"default"},"afdDefinitionName":{"description":"Name of the AFD-definition. (NL: De AFD definitienaam van o.a. webservices en verzekeringsproducten.)","customDescription":"Soort bericht","type":"string","maxLength":80},"afdDefinitionVersion":{"description":"Version of the AFD-definition. (NL: Met AFD definitieversienummer wordt aangegeven over welke versie van de (product)definitie wordt gecommuniceerd.)","customDescription":"Versie van het JSON schema","type":"string","maxLength":80,"const":"001.04"},"originalMessageId":{"description":"The messageId of the original message, which is replaced by this message. (NL: MessageId van het oorspronkelijke bericht, dat wordt vervangen door dit bericht.)","customDescription":"Het oorspronkelijke messageId van het bericht dat wordt vervangen door dit bericht","type":"string","maxLength":70},"function":{"description":"Message function (NL: Berichtfunctie)","customDescription":"Message function code. (NL: Code waarmee de functie van het bericht wordt aangegeven.)","codelistName":"ADNFUN","type":"string","oneOf":[{"const":"01"},{"const":"02"},{"const":"09"},{"const":"54"}]}},"required":["entityType","afdDefinitionName","afdDefinitionVersion","function"]},"commonTechnical":{"type":"object","additionalProperties":false,"properties":{"entityType":{"description":"Unique identification of an entity. (NL: De unieke identificatie van een entiteit.)","type":"string","const":"default"},"creationDateTime":{"description":"Creation date and time (as timestamp) of the (for example) message, system or file. (AFD 2.0 only)","customDescription":"Aanmaakdatum en tijd Date","type":"string","format":"date-time"},"messageId":{"description":"Unique identification of the message. (AFD 2.0 only)","customDescription":"Unieke berichtidentificatie","type":"string","maxLength":70},"testMessage":{"description":"Indication whether the message is a test message. (NL: Indicatie of sprake is van een testbericht.)","customDescription":"Indicatie testbericht","type":"boolean"},"party":{"type":"array","uniqueItems":true,"allOf":[{"minContains":1,"maxContains":1,"contains":{"$ref":"#/definitions/partyReceiver"}},{"minContains":1,"maxContains":1,"contains":{"$ref":"#/definitions/partySender"}}]}},"required":["entityType","creationDateTime","messageId","party"]},"partyReceiver":{"type":"object","additionalProperties":false,"properties":{"entityType":{"description":"Unique identification of an entity. (NL: De unieke identificatie van een entiteit.)","type":"string","const":"receiver"},"refKey":{"description":"Unique reference key assigned to an entity. (NL: Entiteitsreferentie is een unieke referentie sleutel die aan een entiteit wordt toegekend.)","customDescription":"Unique reference key assigned to an entity. (NL: Entiteitsreferentie is een unieke referentie sleutel die aan een entiteit wordt toegekend.)","type":"string","maxLength":70},"organizationName":{"description":"Name of professional or branch organization. (NL: Naam beroeps of branche organisatie.)","customDescription":"Naam van de ontvanger(s) (organisatie (s))","type":"string","maxLength":60},"rsinNumber":{"description":"Governmental identification number for legal entities and associations. (AFD 2.0 only)","customDescription":"Governmental identification number for legal entities and associations (RSIN)","type":"string","maxLength":9}},"required":["entityType","refKey","organizationName"]},"partySender":{"type":"object","additionalProperties":false,"properties":{"entityType":{"description":"Unique identification of an entity. (NL: De unieke identificatie van een entiteit.)","type":"string","const":"sender"},"refKey":{"description":"Unique reference key assigned to an entity. (NL: Entiteitsreferentie is een unieke referentie sleutel die aan een entiteit wordt toegekend.)","customDescription":"Unique reference key assigned to an entity. (NL: Entiteitsreferentie is een unieke referentie sleutel die aan een entiteit wordt toegekend.)","type":"string","maxLength":70},"applicationSenderName":{"description":"Name of the application that sends the data. (NL: Naam van de applicatie die de gegevens verzendt.)","customDescription":"Naam van de applicatie die het bericht heeft aangemaakt","type":"string","maxLength":60},"organizationName":{"description":"Name of professional or branch organization. (NL: Naam beroeps of branche organisatie.)","customDescription":"Organisatie naam van de afzender","type":"string","maxLength":60},"rsinNumber":{"description":"Governmental identification number for legal entities and associations. (AFD 2.0 only)","customDescription":"Governmental identification number for legal entities and associations (RSIN)","type":"string","maxLength":9},"party":{"type":"array","uniqueItems":true,"allOf":[{"minContains":0,"maxContains":9,"contains":{"$ref":"#/definitions/partyContact"}}]}},"required":["entityType","refKey","organizationName"]},"partyContact":{"type":"object","additionalProperties":false,"properties":{"entityType":{"description":"Unique identification of an entity. (NL: De unieke identificatie van een entiteit.)","type":"string","const":"contact"},"workPhoneNumber":{"description":"Work telephone number. (NL: Telefoonnummer werk)","customDescription":"Werk telefoonnummer ","type":"string","maxLength":60},"emailWork":{"description":"Work email address. (NL: E-mail adres werk)","customDescription":"Werk emailadres ","type":"string","maxLength":60}},"required":["entityType","workPhoneNumber","emailWork"]},"document":{"type":"object","additionalProperties":false,"properties":{"entityType":{"description":"Unique identification of an entity. (NL: De unieke identificatie van een entiteit.)","type":"string","const":"default"},"refKey":{"description":"Unique reference key assigned to an entity. (NL: Entiteitsreferentie is een unieke referentie sleutel die aan een entiteit wordt toegekend.)","customDescription":"Unique reference key assigned to an entity. (NL: Entiteitsreferentie is een unieke referentie sleutel die aan een entiteit wordt toegekend.)","type":"string","maxLength":70},"fileName":{"description":"Name of the file under which the attachment can be saved. (NL: Naam van het bestand waaronder de bijlage kan worden opgeslagen.)","customDescription":"Name of the file under which the attachment can be saved. (NL: Naam van het bestand waaronder de bijlage kan worden opgeslagen.)","type":"string","maxLength":60},"fileExtension":{"description":"Extension of the file under which the attachment can be saved. For example &quot;pdf&quot;, &quot;doc&quot;, etc. (NL: Extensienaam van het bestand waaronder de bijlage kan worden opgeslagen. Bijvoorbeeld &quot;PDF&quot;, &quot;DOC&quot;, etc.)","customDescription":"Extension of the file under which the attachment can be saved. For example \"pdf\", \"doc\", etc. (NL: Extensienaam van het bestand waaronder de bijlage kan worden opgeslagen. Bijvoorbeeld \"PDF\", \"DOC\", etc.)","type":"string","oneOf":[{"const":"pdf"},{"const":"csv"},{"const":"txt"}]}},"required":["entityType","refKey","fileName","fileExtension"]},"partyPensionProvider":{"type":"object","additionalProperties":false,"properties":{"entityType":{"description":"Unique identification of an entity. (NL: De unieke identificatie van een entiteit.)","type":"string","const":"pensionProvider"},"organizationName":{"description":"Name of professional or branch organization. (NL: Naam beroeps of branche organisatie.)","customDescription":"Naam van de pensioenuitvoerder","type":"string","maxLength":60},"rsinNumber":{"description":"Governmental identification number for legal entities and associations. (AFD 2.0 only)","customDescription":"Governmental identification number for legal entities and associations (RSIN)","type":"string","maxLength":9},"puvCode":{"description":"Pension provider (NL: Pensioenuitvoerder)","codelistName":"AFDIDP","$ref":"https://www.sivi.org/afd-online-tool/json/AFDIDP.json#/definitions/AFDIDP","type":"string"},"pension":{"type":"array","uniqueItems":true,"allOf":[{"minContains":1,"maxContains":999,"contains":{"$ref":"#/definitions/pensionScheme"}}]}},"required":["entityType","organizationName","puvCode","pension"]},"pensionScheme":{"type":"object","additionalProperties":false,"properties":{"entityType":{"description":"Unique identification of an entity. (NL: De unieke identificatie van een entiteit.)","type":"string","const":"scheme"},"refKey":{"description":"Unique reference key assigned to an entity. (NL: Entiteitsreferentie is een unieke referentie sleutel die aan een entiteit wordt toegekend.)","customDescription":"ID van de pensioenregeling / (Unique reference key assigned to an entity. (NL: Entiteitsreferentie is een unieke referentie sleutel die aan een entiteit wordt toegekend.))","type":"string","maxLength":70},"pensionSchemeName":{"description":"Name of the pension scheme. (NL: Naam van de pensioenregeling.)","customDescription":"Naam van de pensioenregeling","type":"string","maxLength":60},"financialInformation":{"type":"array","uniqueItems":true,"allOf":[{"minContains":1,"maxContains":1,"contains":{"$ref":"#/definitions/financialInformationReportingPeriod"}}]},"investment":{"type":"array","uniqueItems":true,"allOf":[{"minContains":1,"maxContains":99,"contains":{"$ref":"#/definitions/investmentPool"}}]}},"required":["entityType","refKey","pensionSchemeName","financialInformation","investment"]},"financialInformationReportingPeriod":{"type":"object","additionalProperties":false,"properties":{"entityType":{"description":"Unique identification of an entity. (NL: De unieke identificatie van een entiteit.)","type":"string","const":"reportingPeriod"},"unitValueEstimationDate":{"description":"Indicates the date on which the preliminary unit value (investment pool) was determined. (NL: Geeft de datum aan waarop de voorlopige unitwaarde (beleggingspool) is bepaald.)","customDescription":"Geeft de datum aan waarop de voorlopige unitwaarde (belegginspool) is bepaald","type":"string","format":"date"}},"required":["entityType","unitValueEstimationDate"]},"investmentPool":{"type":"object","additionalProperties":false,"properties":{"entityType":{"description":"Unique identification of an entity. (NL: De unieke identificatie van een entiteit.)","type":"string","const":"pool"},"refKey":{"description":"Unique reference key assigned to an entity. (NL: Entiteitsreferentie is een unieke referentie sleutel die aan een entiteit wordt toegekend.)","customDescription":"ID van de beleggingspool per regeling","type":"string","maxLength":70},"description":{"description":"Description. (NL: Omschrijving)","customDescription":"Beschrijving","type":"string","maxLength":60},"currencyType":{"description":"Currency (NL: ISO valutacodetabel (ISO 4217))","customDescription":"Valuta van de pool","codelistName":"ISOVAL","$ref":"https://www.sivi.org/afd-online-tool/json/ISOVAL.json#/definitions/ISOVAL","type":"string"},"preliminaryMarketValueAmount":{"description":"Preliminary markt value. (NL: Voorlopige marktwaarde.)","customDescription":"Voorlopige Marktwaarde per portefeuille per regeling in currencyType van de pool","type":"number","multipleOf":0.01},"preliminaryUnitValueAmount":{"description":"Preliminary unit value. (NL: Voorlopige unitwaarde.)","customDescription":"Voorlopige unitwaarde in currencyType van de pool","type":"number","multipleOf":0.000001},"numberOfUnits":{"description":"Number of units. (NL: Aantal units/eenheden.)","type":"number","multipleOf":0.000001}},"required":["entityType","refKey","description","currencyType","preliminaryUnitValueAmount"]}},"type":"object","additionalProperties":false,"properties":{"chunking":{"type":"array","uniqueItems":true,"allOf":[{"minContains":0,"maxContains":1,"contains":{"$ref":"#/definitions/chunking"}}]},"commonFunctional":{"type":"array","uniqueItems":true,"allOf":[{"minContains":1,"maxContains":1,"contains":{"$ref":"#/definitions/commonFunctional"}}]},"commonTechnical":{"type":"array","uniqueItems":true,"allOf":[{"minContains":1,"maxContains":1,"contains":{"$ref":"#/definitions/commonTechnical"}}]},"document":{"type":"array","uniqueItems":true,"allOf":[{"minContains":0,"maxContains":99,"contains":{"$ref":"#/definitions/document"}}]},"party":{"type":"array","uniqueItems":true,"allOf":[{"minContains":1,"maxContains":1,"contains":{"$ref":"#/definitions/partyPensionProvider"}}]}},"required":["commonFunctional","commonTechnical","party"]}