{"$schema":"https://json-schema.org/draft/2020-12/schema","description":"JSON Schema SIVI 2.0","//comment":{"functionDescription":"Bericht_3._Pensioenprojectie_(0001c)","afdDefinitionChangeLog":"20260715 concept uitlevering (AOS 001.05) - release 2027"},"$defs":{"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"},"afdDefinitionVersion":{"const":"001.05","description":"Version of the AFD-definition. (NL: Met AFD definitieversienummer wordt aangegeven over welke versie van de (product)definitie wordt gecommuniceerd.)","type":"string","maxLength":80},"afdDefinitionName":{"description":"Name of the AFD-definition. (NL: De AFD definitienaam van o.a. webservices en verzekeringsproducten.)","type":"string","maxLength":80},"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.)","type":"string","maxLength":70},"function":{"description":"Message function (NL: Berichtfunctie)","codelistName":"ADNFUN","type":"string","oneOf":[{"const":"01"},{"const":"02"},{"const":"09"},{"const":"54"}]}},"required":["entityType","afdDefinitionVersion","afdDefinitionName","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":"Date and time (as timestamp) when the message was created. (NL: Datum en tijd van het aanmaken van het bericht.)","type":"string","format":"date-time"},"messageId":{"description":"Unique identification of the message. (AFD 2.0 only)","type":"string","maxLength":70},"testMessage":{"description":"Indication whether the message is a test message. (NL: Indicatie of sprake is van een testbericht.)","type":"boolean"},"party":{"type":"array","uniqueItems":true,"allOf":[{"minContains":1,"maxContains":1,"contains":{"$ref":"#/$defs/partyReceiver"}},{"minContains":1,"maxContains":1,"contains":{"$ref":"#/$defs/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.)","type":"string","maxLength":70},"organizationName":{"description":"Name of professional or branch organization. (NL: Naam beroeps of branche organisatie.)","type":"string","maxLength":60},"rsinNumber":{"description":"Governmental identification number for legal entities and associations. (AFD 2.0 only)","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.)","type":"string","maxLength":70},"applicationSenderName":{"description":"Name of the application that sends the data. (NL: Naam van de applicatie die de gegevens verzendt.)","type":"string","maxLength":60},"organizationName":{"description":"Name of professional or branch organization. (NL: Naam beroeps of branche organisatie.)","type":"string","maxLength":60},"rsinNumber":{"description":"Governmental identification number for legal entities and associations. (AFD 2.0 only)","type":"string","maxLength":9},"party":{"type":"array","uniqueItems":true,"allOf":[{"minContains":0,"maxContains":9,"contains":{"$ref":"#/$defs/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)","type":"string","maxLength":60},"emailWork":{"description":"Work email address. (NL: E-mail adres werk)","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.)","type":"string","maxLength":70},"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.)","type":"string","oneOf":[{"const":"pdf"},{"const":"csv"},{"const":"txt"}]},"fileName":{"description":"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}},"required":["entityType","refKey","fileExtension","fileName"]},"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.)","type":"string","maxLength":60},"rsinNumber":{"description":"Governmental identification number for legal entities and associations. (AFD 2.0 only)","type":"string","maxLength":9},"puvCode":{"description":"Pension provider (NL: Pensioenuitvoerder)","codelistName":"AFDIDP","$ref":"https://www.sivi.org/afd-online-tool/json/2020-12/AFDIDP.json#/$defs/AFDIDP","type":"string"},"pension":{"type":"array","uniqueItems":true,"allOf":[{"minContains":1,"maxContains":999,"contains":{"$ref":"#/$defs/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.)","type":"string","maxLength":70},"pensionSchemeName":{"description":"Name of the pension scheme. (NL: Naam van de pensioenregeling.)","type":"string","maxLength":60},"financialInformation":{"type":"array","uniqueItems":true,"allOf":[{"minContains":1,"maxContains":1,"contains":{"$ref":"#/$defs/financialInformationReportingPeriod"}}]},"financialTransaction":{"type":"array","uniqueItems":true,"allOf":[{"minContains":1,"maxContains":99999,"contains":{"$ref":"#/$defs/financialTransactionPayment"}}]},"pension":{"type":"array","uniqueItems":true,"allOf":[{"minContains":0,"maxContains":99999,"contains":{"$ref":"#/$defs/pensionCohort"}}]}},"required":["entityType","refKey","pensionSchemeName","financialInformation","financialTransaction"]},"financialInformationReportingPeriod":{"type":"object","additionalProperties":false,"properties":{"entityType":{"description":"Unique identification of an entity. (NL: De unieke identificatie van een entiteit.)","type":"string","const":"reportingPeriod"},"projectionDate":{"description":"Date of projection of pension benefits. (NL: Datum van projectie van pensioenuitkeringen.)","type":"string","format":"date"}},"required":["entityType","projectionDate"]},"financialTransactionPayment":{"type":"object","additionalProperties":false,"properties":{"entityType":{"description":"Unique identification of an entity. (NL: De unieke identificatie van een entiteit.)","type":"string","const":"payment"},"refKey":{"description":"Unique reference key assigned to an entity. (NL: Entiteitsreferentie is een unieke referentie sleutel die aan een entiteit wordt toegekend.)","type":"string","maxLength":70},"hedgedExpectedPensionPaymentAmount":{"description":"Amount of cash flows to be hedged per period. (NL: Af te dekken kasstromen per periode.)","type":"number","multipleOf":0.01},"expectedPensionPaymentDate":{"description":"Expected pension payment date (possibly per scheme). (NL: Pensioenuitkeringsmoment (eventueel per regeling).)","type":"string","format":"date"},"amount":{"description":"An amount. (NL: Bedrag)","type":"number","multipleOf":0.01}},"required":["entityType","refKey","hedgedExpectedPensionPaymentAmount","expectedPensionPaymentDate","amount"]},"pensionCohort":{"type":"object","additionalProperties":false,"properties":{"entityType":{"description":"Unique identification of an entity. (NL: De unieke identificatie van een entiteit.)","type":"string","const":"cohort"},"refKey":{"description":"Unique reference key assigned to an entity. (NL: Entiteitsreferentie is een unieke referentie sleutel die aan een entiteit wordt toegekend.)","type":"string","maxLength":70},"description":{"description":"Description. (NL: Omschrijving)","type":"string","maxLength":60},"reserveDescription":{"description":"Description of the reserve. (NL: Omschrijving van het reserve.)","type":"string","maxLength":60},"reserveType":{"description":"Reserve type (NL: Type reserve)","codelistName":"AFDRES","$ref":"https://www.sivi.org/afd-online-tool/json/2020-12/AFDRES.json#/$defs/AFDRES","type":"string"},"reserveIndicator":{"description":"Indication whether a reserve is available / applies. (NL: Indicatie of een reserve aanwezig is / van toepassing is.)","type":"boolean"},"startAge":{"description":"Start age. (NL: Beginleeftijd.)","type":"number","multipleOf":1},"endAge":{"description":"End age. (NL: Eindleeftijd.)","type":"number","multipleOf":1},"participationStatus":{"description":"Participation type (NL: Deelname status)","codelistName":"ADNDNS","type":"string","oneOf":[{"const":"16"},{"const":"20"},{"const":"35"},{"const":"40"},{"const":"80"},{"const":"70"}]},"financialTransaction":{"type":"array","uniqueItems":true,"allOf":[{"minContains":0,"maxContains":9999,"contains":{"$ref":"#/$defs/financialTransactionPayment_1"}}]}},"required":["entityType","refKey","description","reserveIndicator"]},"financialTransactionPayment_1":{"type":"object","additionalProperties":false,"properties":{"entityType":{"description":"Unique identification of an entity. (NL: De unieke identificatie van een entiteit.)","type":"string","const":"payment"},"refKey":{"description":"Unique reference key assigned to an entity. (NL: Entiteitsreferentie is een unieke referentie sleutel die aan een entiteit wordt toegekend.)","type":"string","maxLength":70},"hedgedExpectedPensionPaymentAmount":{"description":"Amount of cash flows to be hedged per period. (NL: Af te dekken kasstromen per periode.)","type":"number","multipleOf":0.01},"expectedPensionPaymentDate":{"description":"Expected pension payment date (possibly per scheme). (NL: Pensioenuitkeringsmoment (eventueel per regeling).)","type":"string","format":"date"},"amount":{"description":"An amount. (NL: Bedrag)","type":"number","multipleOf":0.01}},"required":["entityType","refKey","expectedPensionPaymentDate","amount"]}},"type":"object","additionalProperties":false,"properties":{"chunking":{"type":"array","uniqueItems":true,"allOf":[{"minContains":0,"maxContains":1,"contains":{"$ref":"#/$defs/chunking"}}]},"commonFunctional":{"type":"array","uniqueItems":true,"allOf":[{"minContains":1,"maxContains":1,"contains":{"$ref":"#/$defs/commonFunctional"}}]},"commonTechnical":{"type":"array","uniqueItems":true,"allOf":[{"minContains":1,"maxContains":1,"contains":{"$ref":"#/$defs/commonTechnical"}}]},"document":{"type":"array","uniqueItems":true,"allOf":[{"minContains":0,"maxContains":99,"contains":{"$ref":"#/$defs/document"}}]},"party":{"type":"array","uniqueItems":true,"allOf":[{"minContains":1,"maxContains":1,"contains":{"$ref":"#/$defs/partyPensionProvider"}}]}},"required":["commonFunctional","commonTechnical","party"]}