{"$schema":"https://json-schema.org/draft/2020-12/schema","description":"JSON Schema SIVI 2.0","//comment":{"functionDescription":"Bericht_2._Cashflow_(0001b)","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":0,"maxContains":1,"contains":{"$ref":"#/$defs/financialTransactionCashflow"}}]},"investment":{"type":"array","uniqueItems":true,"allOf":[{"minContains":0,"maxContains":99,"contains":{"$ref":"#/$defs/investmentPortfolio"}}]},"pension":{"type":"array","uniqueItems":true,"allOf":[{"minContains":0,"maxContains":99999,"contains":{"$ref":"#/$defs/pensionCohort"}}]}},"required":["entityType","refKey","pensionSchemeName","financialInformation"]},"financialInformationReportingPeriod":{"type":"object","additionalProperties":false,"properties":{"entityType":{"description":"Unique identification of an entity. (NL: De unieke identificatie van een entiteit.)","type":"string","const":"reportingPeriod"},"endDate":{"description":"Expiration date (to date). (NL: Vervaldatum (tot-datum).)","type":"string","format":"date"},"startDate":{"description":"Start date (from date). (NL: Startdatum (vanaf-datum).)","type":"string","format":"date"}},"required":["entityType","endDate","startDate"]},"financialTransactionCashflow":{"type":"object","additionalProperties":false,"properties":{"entityType":{"description":"Unique identification of an entity. (NL: De unieke identificatie van een entiteit.)","type":"string","const":"cashflow"},"netAmount":{"description":"Net sum of contributions and withdrawals per scheme. A negative amount is a (net) withdrawal. (NL: Netto som van inleg en onttrekkingen per regeling. Een negatief bedrag is een (netto) onttrekking.)","type":"number","multipleOf":0.01},"withdrawalDate":{"description":"Date on which (at the latest) the liquidity for the withdrawal has been released. (NL: Datum waarop (uiterlijk) de liquiditeiten voor de onttrekking zijn vrijgemaakt.)","type":"string","format":"date"},"withdrawalAmount":{"description":"Withdrawal amount. (NL: Som van de uitstroom.)","type":"number","multipleOf":0.01},"contributionDate":{"description":"Date of (receipt of) the contribution. (NL: Datum van ontvangst van inleg.)","type":"string","format":"date"},"contributionAmount":{"description":"Amount of contribution. (NL: Som van de inleg.)","type":"number","multipleOf":0.01},"netDate":{"description":"Date on which netted inflow and outflow is facilitated. (NL: Datum waarop gesaldeerde instroom en uitstroom wordt gefaciliteerd.)","type":"string","format":"date"}},"required":["entityType"]},"investmentPortfolio":{"type":"object","additionalProperties":false,"properties":{"entityType":{"description":"Unique identification of an entity. (NL: De unieke identificatie van een entiteit.)","type":"string","const":"portfolio"},"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},"financialTransaction":{"type":"array","uniqueItems":true,"allOf":[{"minContains":1,"maxContains":1,"contains":{"$ref":"#/$defs/financialTransactionCashflow_1"}}]}},"required":["entityType","refKey","description","financialTransaction"]},"financialTransactionCashflow_1":{"type":"object","additionalProperties":false,"properties":{"entityType":{"description":"Unique identification of an entity. (NL: De unieke identificatie van een entiteit.)","type":"string","const":"cashflow"},"netAmount":{"description":"Net sum of contributions and withdrawals per scheme. A negative amount is a (net) withdrawal. (NL: Netto som van inleg en onttrekkingen per regeling. Een negatief bedrag is een (netto) onttrekking.)","type":"number","multipleOf":0.01},"netDate":{"description":"Date on which netted inflow and outflow is facilitated. (NL: Datum waarop gesaldeerde instroom en uitstroom wordt gefaciliteerd.)","type":"string","format":"date"}},"required":["entityType","netAmount","netDate"]},"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},"netAmount":{"description":"Net sum of contributions and withdrawals per scheme. A negative amount is a (net) withdrawal. (NL: Netto som van inleg en onttrekkingen per regeling. Een negatief bedrag is een (netto) onttrekking.)","type":"number","multipleOf":0.01},"withdrawalAmount":{"description":"Withdrawal amount. (NL: Som van de uitstroom.)","type":"number","multipleOf":0.01},"contributionAmount":{"description":"Amount of contribution. (NL: Som van de inleg.)","type":"number","multipleOf":0.01},"netDate":{"description":"Date on which netted inflow and outflow is facilitated. (NL: Datum waarop gesaldeerde instroom en uitstroom wordt gefaciliteerd.)","type":"string","format":"date"},"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"}]}},"required":["entityType","refKey","description","reserveIndicator"]}},"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"]}