Kennisbank BerichtenEntiteitenAttributenCodelijstenFouten en oplossingenProcessenRollenReleasesBegrippenEcosysteemVergelijk Validator NL EN

Release 2027 · Schemaversie 001.05 · Actief

SIVI-bericht 2 (0001b): Cashflow (VB-PUO)

Bericht 2 geeft de geldstromen van de periode door: premies en inkomende waardeoverdrachten (instroom), uitkeringen en uitgaande overdrachten (uitstroom) en verschuivingen tussen cohorten. Elke cashflow draagt het saldo (netAmount met netDate), desgewenst aangevuld met instroom en uitstroom apart. Het totaal staat direct onder de regeling; de uitsplitsing gaat per cohort (SPR-route) of per beleggingsportefeuille (FPR-route). Ook stortingen in en onttrekkingen aan reserves (solidariteitsreserve, compensatiedepot) lopen via dit bericht.

Verzender
Pensioenuitvoeringsorganisatie (PUO)
Ontvanger
Fiduciair manager (FM) en beleggingsadministrateur (BA)
Moment
Maandelijks (verwacht); prospectief (verwachte stromen) of retrospectief (gerealiseerde stromen), afhankelijk van de ketenafspraak
Regeling
SPR, en in de FPR voor stromen buiten de unit-administratie (FPR-route per beleggingsportefeuille)
afdDefinitionName
VBPUO-001.00-Bericht_2._Cashflow_(0001b)

Berichtstructuur

Entiteiten met cardinaliteit [min..max] en aantal attributen; klik voor de entiteitpagina.

Attributen (56)

EntiteitAttribuutTypeV/OCodelijstOmschrijving
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_2._Cashflow_(0001b) 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 pensionSchemeName string · max 60 V Naam van de pensioenregeling.
financialInformation.reportingPeriod endDate string · format date V Vervaldatum (tot-datum).
financialInformation.reportingPeriod startDate string · format date V Startdatum (vanaf-datum).
financialTransaction.cashflow netAmount number · multipleOf 0.01 V Netto som van inleg en onttrekkingen per regeling. Een negatief bedrag is een (netto) onttrekking.
financialTransaction.cashflow withdrawalDate string · format date O Datum waarop (uiterlijk) de liquiditeiten voor de onttrekking zijn vrijgemaakt.
financialTransaction.cashflow withdrawalAmount number · multipleOf 0.01 O Som van de uitstroom.
financialTransaction.cashflow contributionDate string · format date O Datum van ontvangst van inleg.
financialTransaction.cashflow contributionAmount number · multipleOf 0.01 O Som van de inleg.
financialTransaction.cashflow netDate string · format date V Datum waarop gesaldeerde instroom en uitstroom wordt gefaciliteerd.
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
financialTransaction.cashflow netAmount number · multipleOf 0.01 V Gesaldeerd netto kasstroombedrag per beleggingsportefeuille binnen een regeling. Een negatief bedrag is een netto onttrekking.
financialTransaction.cashflow withdrawalDate string · format date O Datum waarop (uiterlijk) de liquiditeiten ten behoeve van de onttrekking zijn vrijgemaakt
financialTransaction.cashflow withdrawalAmount number · multipleOf 0.01 O Som van de uitstroom
financialTransaction.cashflow contributionDate string · format date O Datum van ontvangst van de inleg
financialTransaction.cashflow contributionAmount number · multipleOf 0.01 O Som van inleg
financialTransaction.cashflow netDate string · format date V De valutadatum waarop het netto kasstroombedrag per beleggingsportefeuille daadwerkelijk door de PUO wordt betaald aan, of ontvangen van, de Vermogensbeheerder
pension.cohort refKey string · max 70 V Entiteitsreferentie is een unieke referentie sleutel die aan een entiteit wordt toegekend.
pension.cohort netAmount number · multipleOf 0.01 V Netto som van inleg en onttrekkingen per regeling. Een negatief bedrag is een (netto) onttrekking.
pension.cohort withdrawalAmount number · multipleOf 0.01 O Som van de uitstroom.
pension.cohort contributionAmount number · multipleOf 0.01 O Som van de inleg.
pension.cohort netDate string · format date V De valutadatum waarop het gesaldeerde netto kasstroombedrag voor het cohort daadwerkelijk door de PUO wordt betaald aan, of ontvangen van, de Vermogensbeheerder
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

Voorbeeldbericht

✓ Gevalideerd tegen schema VBPUO-001.05 · 2026-10-14

Bron voorbeeld: SIVI voorbeeldbericht (Voorbeeldbericht_2). Waarden zijn fictief.

{
  "commonTechnical": [
    {
      "entityType": "default",
      "creationDateTime": "2023-12-28T12:00:00Z",
      "messageId": "msg123456",
      "testMessage": false,
      "party": [
        {
          "entityType": "sender",
          "refKey": "SEND123",
          "organizationName": "Zender Organisatie",
          "applicationSenderName": "ApplicatieNaam",
          "party": [
            {
              "entityType": "contact",
              "emailWork": "[email protected]",
              "workPhoneNumber": "+31678717607"
            }
          ]
        },
        {
          "entityType": "receiver",
          "refKey": "REC123",
          "rsinNumber": "987654321",
          "organizationName": "Ontvanger Organisatie"
        }
      ]
    }
  ],
  "commonFunctional": [
    {
      "entityType": "default",
      "afdDefinitionName": "VBPUO-001.00-Bericht_2._Cashflow_(0001b)",
      "afdDefinitionVersion": "001.05",
      "function": "01",
      "originalMessageId": "987654321"
    }
  ],
  "party": [
    {
      "entityType": "pensionProvider",
      "rsinNumber": "123456789",
      "organizationName": "St. Pf. Openbare Bibliotheken",
      "puvCode": "U0003",
      "pension": [
        {
          "entityType": "scheme",
          "refKey": "SCH456",
          "pensionSchemeName": "Standaard Pensioen",
          "financialInformation": [
            {
              "entityType": "reportingPeriod",
              "startDate": "2023-01-01",
              "endDate": "2023-12-31"
            }
          ],
          "financialTransaction": [
            {
              "entityType": "cashflow",
              "contributionAmount": 15000,
              "contributionDate": "2023-01-01",
              "withdrawalAmount": 4000,
              "withdrawalDate": "2023-01-15",
              "netAmount": 11000,
              "netDate": "2023-01-31"
            }
          ],
          "pension": [
            {
              "entityType": "cohort",
              "refKey": "COH789",
              "description": "Cohort 2023",
              "netAmount": 5000,
              "contributionAmount": 7000,
              "withdrawalAmount": 2000,
              "participationStatus": "16",
              "reserveIndicator": false,
              "startAge": 300,
              "endAge": 540,
              "netDate": "2023-01-31"
            },
            {
              "entityType": "cohort",
              "refKey": "COH790",
              "description": "Cohort 2024",
              "netAmount": 6000,
              "contributionAmount": 8000,
              "withdrawalAmount": 2000,
              "participationStatus": "16",
              "reserveIndicator": false,
              "startAge": 540,
              "endAge": 780,
              "netDate": "2023-01-31"
            }
          ]
        },
        {
          "entityType": "scheme",
          "refKey": "SCH457",
          "pensionSchemeName": "Geavanceerd Pensioen",
          "financialInformation": [
            {
              "entityType": "reportingPeriod",
              "startDate": "2023-03-01",
              "endDate": "2023-12-31"
            }
          ],
          "financialTransaction": [
            {
              "entityType": "cashflow",
              "contributionAmount": 16000,
              "contributionDate": "2023-03-01",
              "withdrawalAmount": 4000,
              "withdrawalDate": "2023-03-15",
              "netAmount": 12000,
              "netDate": "2023-03-31"
            }
          ],
          "pension": [
            {
              "entityType": "cohort",
              "refKey": "COH791",
              "description": "Cohort 2025",
              "netAmount": 5500,
              "contributionAmount": 7500,
              "withdrawalAmount": 2000,
              "participationStatus": "16",
              "reserveIndicator": false,
              "startAge": 400,
              "endAge": 520,
              "netDate": "2023-03-31"
            },
            {
              "entityType": "cohort",
              "refKey": "COH792",
              "description": "Cohort 2026",
              "netAmount": 6500,
              "contributionAmount": 8500,
              "withdrawalAmount": 2000,
              "participationStatus": "16",
              "reserveIndicator": false,
              "startAge": 520,
              "endAge": 900,
              "netDate": "2023-03-31"
            }
          ]
        }
      ]
    }
  ],
  "document": []
}
Variant: Voorbeeldbericht_2-fpr
{
  "commonTechnical": [
    {
      "entityType": "default",
      "creationDateTime": "2027-03-01T09:00:00+01:00",
      "messageId": "VB-0001B-FPR-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_2._Cashflow_(0001b)",
      "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",
              "startDate": "2027-02-01",
              "endDate": "2027-02-28"
            }
          ],
          "financialTransaction": [
            {
              "entityType": "cashflow",
              "netAmount": 2453092.12,
              "netDate": "2027-03-05"
            }
          ],
          "investment": [
            {
              "entityType": "portfolio",
              "refKey": "PF-01",
              "description": "Matchingportefeuille",
              "financialTransaction": [
                {
                  "entityType": "cashflow",
                  "contributionAmount": 1977728.18,
                  "contributionDate": "2027-02-28",
                  "withdrawalAmount": 1129773.18,
                  "withdrawalDate": "2027-03-01",
                  "netAmount": 847955,
                  "netDate": "2027-03-05"
                }
              ]
            },
            {
              "entityType": "portfolio",
              "refKey": "PF-02",
              "description": "Rendementsportefeuille",
              "financialTransaction": [
                {
                  "entityType": "cashflow",
                  "contributionAmount": 2200605.01,
                  "contributionDate": "2027-02-28",
                  "withdrawalAmount": 567819.01,
                  "withdrawalDate": "2027-03-01",
                  "netAmount": 1632786,
                  "netDate": "2027-03-05"
                }
              ]
            },
            {
              "entityType": "portfolio",
              "refKey": "PF-03",
              "description": "Liquiditeitenportefeuille",
              "financialTransaction": [
                {
                  "entityType": "cashflow",
                  "contributionAmount": 879827.97,
                  "contributionDate": "2027-02-28",
                  "withdrawalAmount": 907476.85,
                  "withdrawalDate": "2027-03-01",
                  "netAmount": -27648.88,
                  "netDate": "2027-03-04"
                }
              ]
            }
          ]
        }
      ]
    }
  ]
}

Regels en verbandscontroles

  • Sinds de definitieve Release 2027 draagt elk cashflowblok netAmount en netDate: direct onder de regeling, per cohort en per beleggingsportefeuille. contributionAmount en withdrawalAmount zijn een optionele aanvulling, onder de regeling en per portefeuille met contributionDate en withdrawalDate; SIVI's eigen voorbeeldbericht vult ze alle drie. netAmount is het saldo van inleg en onttrekking, dus drie bedragen die niet op elkaar aansluiten spreken elkaar tegen. In Release 2026 mag het saldo, de aparte stromen of allebei.
  • Het totaal staat in beide routes direct onder de regeling (financialTransaction.cashflow). Wat elkaar per regeling uitsluit, is de uitsplitsing: per cohort (SPR-route; de bedragen staan op het cohort zelf) óf per beleggingsportefeuille (FPR-route; elke gebruikte portefeuille heeft precies één cashflow). Een bericht dat binnen één regeling beide uitsplitsingen gebruikt, is "niet geldig". De uitsplitsing zelf is in bericht 2 optioneel, maar elke regeling bevat minstens één cashflow (handleiding §6.3.1 en §3.2.5).
  • Wordt de cashflow per cohort uitgesplitst, dan tellen de cohortbedragen op tot het bedrag op regelingniveau. Release 2027 legt dat vast als verbandscontrole (handleiding §6.3.1 en §3.2.5: scheme.netAmount is de som van cohort.netAmount, en hetzelfde voor contributionAmount en withdrawalAmount); in Release 2026 is het een aansluiting die de ontvanger kan toetsen. In de FPR-route draagt het totaal in de regel de som van de portefeuilles, maar of die moet aansluiten, is "niet vastgelegd". Let op bij contributionAmount en withdrawalAmount: de in- en uitstroom per cohort bevat ook de verschuivingen tussen cohorten (§3.2.2); die vallen weg in netAmount, niet in de in- en uitstroom afzonderlijk. Houd de cohortindeling gelijk aan die van bericht 1.
  • Alle datums vallen binnen de rapportageperiode (financialInformation.reportingPeriod.startDate tot endDate).

Valkuilen

  • Een prospectief bericht (verwachte stromen) dat later niet wordt gevolgd door de gerealiseerde stromen laat de beleggingsadministratie met een schatting achter; spreek af welke variant leidend is.
  • netDate ontbreekt vaak, vooral per cohort. Sinds de definitieve Release 2027 is dat een schemafout: netAmount en netDate zijn verplicht in elk cashflowblok. Het gepubliceerde schema telt alleen de geldige cohorten (issue #63), dus een generieke validator laat het door; een ontvanger die elk cohort toetst niet. SIVI's eigen voorbeeld van de pre-release had dit gebrek.

Fouten en oplossingen

Verschil met Release 2026 (001.04 → 001.05)

Entiteiten toegevoegd: investment.portfolio

Attributen toegevoegd: investment.portfolio.refKey, investment.portfolio.description, pension.cohort.netDate

Verplichting gewijzigd: financialTransaction.cashflow.netAmount (O → V), financialTransaction.cashflow.netDate (O → V), pension.cohort.netAmount (O → V)

Veelgestelde vragen

Moet ik instroom en uitstroom apart aanleveren?

Dat mag, maar het hoeft niet. In Release 2027 zijn netAmount en netDate altijd verplicht; instroom en uitstroom apart zijn een aanvulling daarop. Fiduciair managers geven vaak de voorkeur aan aparte stromen omdat die de liquiditeitsplanning ondersteunen.

Mag een beleggingsportefeuille naast de cashflow direct onder de regeling?

Ja. In de FPR-route staat het totaal direct onder de regeling en volgt de uitsplitsing per portefeuille; SIVI's voorbeeld Voorbeeldbericht_2-fpr doet precies dat. Alleen cohorten én portefeuilles in één regeling is niet geldig. In de pre-release van juli was ook de combinatie met de cashflow onder de regeling verboden.

Hoe geef ik een verschuiving tussen cohorten door?

Als uitstroom bij het ene cohort en instroom bij het andere, in dezelfde periode. Het regelingtotaal verandert dan niet.

Waar horen reservestortingen thuis?

Bij het reservecohort (reserveIndicator = true, reserveType uit AFDRES) als instroom of uitstroom, net als bij een gewoon cohort.

Wijzigingsgeschiedenis

  • v1.3.0 (Release 2026): documentatie netDate (issue #82); chunking.
  • v1.4.0 (Release 2027): SPR-route en FPR-route; JSON Schema 2020-12.
  • Definitieve Release 2027 (12 oktober 2026): netAmount en netDate verplicht in elk cashflowblok, ook per cohort; de cashflow per portefeuille mag ook in- en uitstroom dragen; de routes in §6.3.1 en de nieuwe §3.2.5.

Schema-bestand: VBPUO-001.00-Bericht_2._Cashflow_(0001b).json · JSON-schema (001.05) · GitHub

Bronvermelding. Bron: SIVI – VB-PUO Standaard. Schema's, attribuutomschrijvingen en codelijsten zijn ontleend aan de VB-PUO Standaard (eigendom Pensioenfederatie, beheer SIVI) en hier onveranderd weergegeven met vermelding van release en versie. Toelichtingen, voorbeelden, foutbeschrijvingen en vertalingen zijn van WTP Data Lab en maken geen deel uit van de standaard. GitHub Stichting-SIVI/VBPUOdsk · Handleiding · sivi.org