Kennisbank BerichtenEntiteitenAttributenCodelijstenFouten en oplossingenProcessenRollenReleasesBegrippenEcosysteemVergelijk Validator NL EN

Release 2027 · Schemaversie 001.05 · Actief

SIVI-bericht 5 (00541): Orderopdracht (VB-PUO)

Met de orderopdracht plaatst de PUO netto koop- en verkooporders op het hoogste fondsniveau: de mutaties van deelnemers zijn al vertaald naar nettotransacties per beleggingsfonds. Switches tussen fondsen worden als twee gekoppelde orders aangeleverd. Het bericht bevat alleen wat de uitvoerende partij nodig heeft; het onderliggende suborderen doet de fondsaanbieder.

Verzender
Pensioenuitvoeringsorganisatie (PUO)
Ontvanger
Beleggingsadministrateur (BA). De partij die de order verwerkt, kan een broker, transfer agent of orderdesk zijn; dat verandert de gegevensuitwisseling niet (handleiding §4.2, §4.3.5)
Moment
In de maandcyclus van de FPR op T-4; verder ad hoc
Regeling
FPR: orders (berichten 5 en 6)
afdDefinitionName
VBPUO-001.00-Bericht_5._Orderopdracht_(00541)

Berichtstructuur

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

Attributen (40)

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_5._Orderopdracht_(00541) 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.
pension.scheme tradingPortfolioId string · max 10 V Portefeuille ID van de custodian (bewaren en beheren van financiële activa).
financialInformation.reportingPeriod instructionDate string · format date V Instructiedatum (datum van de bestelling verzonden door de PUO.
investment.investmentDetails refKey string · max 70 V Entiteitsreferentie is een unieke referentie sleutel die aan een entiteit wordt toegekend.
investment.investmentDetails description string · max 60 V Omschrijving
investment.investmentDetails currencyType string V ISOVAL ISO valutacodetabel (ISO 4217)
financialTransaction.trade refKey string · max 70 V Entiteitsreferentie is een unieke referentie sleutel die aan een entiteit wordt toegekend.
financialTransaction.trade financialInformationRef array[string] O Verwijs hier bij switchfrom/switchto naar de refKey van de andere switch-leg ten behoeve van verbandscontrole.
financialTransaction.trade tradeDate string · format date V Gewenste handelsdatum.
financialTransaction.trade tradeAmount number · multipleOf 0.01 O Positief bedrag van de transactie in de valuta waarin de belegging luidt; richting volgt uit buySellId
financialTransaction.trade tradeQuantity number · multipleOf 0.000001 O Positief aantal te verhandelen stukken (units) van de transactie; richting volgt uit buySellId
financialTransaction.trade switchType string O AFDSWI Type switch; one-day of sequential
financialTransaction.trade buySellId string V sell | buy | switchfrom | switchto Aan-, verkoop- of switchrichtingindicator

Voorbeeldbericht

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

Bron voorbeeld: SIVI voorbeeldbericht (Voorbeeldbericht_5-buy). Waarden zijn fictief.

{
  "commonFunctional": [
    {
      "entityType": "default",
      "function": "01",
      "afdDefinitionName": "VBPUO-001.00-Bericht_5._Orderopdracht_(00541)",
      "afdDefinitionVersion": "001.05",
      "originalMessageId": "20240529 1532"
    }
  ],
  "commonTechnical": [
    {
      "entityType": "default",
      "messageId": "67890",
      "creationDateTime": "2024-10-07T10:00:00Z",
      "testMessage": false,
      "party": [
        {
          "entityType": "receiver",
          "refKey": "recv001",
          "rsinNumber": "123456789",
          "organizationName": "Pension Fund A"
        },
        {
          "entityType": "sender",
          "rsinNumber": "876543219",
          "organizationName": "Investment Firm B",
          "refKey": "send001",
          "applicationSenderName": "InvestAppV1"
        }
      ]
    }
  ],
  "party": [
    {
      "entityType": "pensionProvider",
      "puvCode": "U0003",
      "rsinNumber": "112233449",
      "organizationName": "St. Pf. Openbare Bibliotheken",
      "pension": [
        {
          "entityType": "scheme",
          "refKey": "schemeXYZ",
          "pensionSchemeName": "Investment Scheme A",
          "tradingPortfolioId": "Trade123",
          "financialInformation": [
            {
              "entityType": "reportingPeriod",
              "instructionDate": "2024-01-02"
            }
          ],
          "investment": [
            {
              "entityType": "investmentDetails",
              "refKey": "inv001",
              "description": "Equity Fund",
              "currencyType": "EUR",
              "financialTransaction": [
                {
                  "entityType": "trade",
                  "refKey": "trade123",
                  "buySellId": "buy",
                  "tradeDate": "2024-01-03",
                  "tradeAmount": 10000
                }
              ]
            }
          ]
        }
      ]
    }
  ],
  "document": []
}
Variant: Voorbeeldbericht_5-buy-sell
{
  "commonFunctional": [
    {
      "entityType": "default",
      "function": "01",
      "afdDefinitionName": "VBPUO-001.00-Bericht_5._Orderopdracht_(00541)",
      "afdDefinitionVersion": "001.05",
      "originalMessageId": "20240529 1532"
    }
  ],
  "commonTechnical": [
    {
      "entityType": "default",
      "messageId": "67890",
      "creationDateTime": "2023-12-30T12:00:00Z",
      "testMessage": false,
      "party": [
        {
          "entityType": "receiver",
          "refKey": "recv001",
          "rsinNumber": "123456789",
          "organizationName": "Pension Fund A"
        },
        {
          "entityType": "sender",
          "rsinNumber": "876543219",
          "organizationName": "Investment Firm B",
          "refKey": "send001",
          "applicationSenderName": "InvestAppV1"
        }
      ]
    }
  ],
  "party": [
    {
      "entityType": "pensionProvider",
      "rsinNumber": "112233449",
      "puvCode": "U0003",
      "organizationName": "St. Pf. Openbare Bibliotheken",
      "pension": [
        {
          "entityType": "scheme",
          "refKey": "schemeXYZ",
          "pensionSchemeName": "Investment Scheme A",
          "tradingPortfolioId": "Trade123",
          "financialInformation": [
            {
              "entityType": "reportingPeriod",
              "instructionDate": "2024-01-02"
            }
          ],
          "investment": [
            {
              "entityType": "investmentDetails",
              "refKey": "inv001",
              "description": "Equity Fund",
              "currencyType": "EUR",
              "financialTransaction": [
                {
                  "entityType": "trade",
                  "refKey": "trade123",
                  "buySellId": "buy",
                  "tradeDate": "2024-01-03",
                  "tradeAmount": 10000
                },
                {
                  "entityType": "trade",
                  "refKey": "trade124",
                  "buySellId": "sell",
                  "tradeDate": "2024-01-04",
                  "tradeQuantity": 50
                }
              ]
            }
          ]
        }
      ]
    }
  ],
  "document": []
}
Variant: Voorbeeldbericht_5-buy-sell-switch
{
  "commonFunctional": [
    {
      "entityType": "default",
      "function": "01",
      "afdDefinitionName": "VBPUO-001.00-Bericht_5._Orderopdracht_(00541)",
      "afdDefinitionVersion": "001.05",
      "originalMessageId": "20240529 1532"
    }
  ],
  "commonTechnical": [
    {
      "entityType": "default",
      "messageId": "67890",
      "creationDateTime": "2024-10-07T10:00:00Z",
      "testMessage": false,
      "party": [
        {
          "entityType": "receiver",
          "refKey": "recv001",
          "rsinNumber": "123456789",
          "organizationName": "Pension Fund A"
        },
        {
          "entityType": "sender",
          "rsinNumber": "876543219",
          "organizationName": "Investment Firm B",
          "refKey": "send001",
          "applicationSenderName": "InvestAppV1"
        }
      ]
    }
  ],
  "party": [
    {
      "entityType": "pensionProvider",
      "puvCode": "U0003",
      "rsinNumber": "112233449",
      "organizationName": "St. Pf. Openbare Bibliotheken",
      "pension": [
        {
          "entityType": "scheme",
          "refKey": "schemeXYZ",
          "pensionSchemeName": "Investment Scheme A",
          "tradingPortfolioId": "Trade123",
          "financialInformation": [
            {
              "entityType": "reportingPeriod",
              "instructionDate": "2024-01-02"
            }
          ],
          "investment": [
            {
              "entityType": "investmentDetails",
              "refKey": "inv001",
              "description": "Equity Fund",
              "currencyType": "EUR",
              "financialTransaction": [
                {
                  "entityType": "trade",
                  "refKey": "trade123",
                  "buySellId": "buy",
                  "tradeDate": "2024-01-03",
                  "tradeAmount": 10000
                },
                {
                  "entityType": "trade",
                  "refKey": "trade124",
                  "buySellId": "sell",
                  "tradeDate": "2024-01-04",
                  "tradeQuantity": 50
                }
              ]
            }
          ]
        },
        {
          "entityType": "scheme",
          "refKey": "schemeABC",
          "pensionSchemeName": "Retirement Plan B",
          "tradingPortfolioId": "Trade456",
          "financialInformation": [
            {
              "entityType": "reportingPeriod",
              "instructionDate": "2024-01-05"
            }
          ],
          "investment": [
            {
              "entityType": "investmentDetails",
              "refKey": "inv002",
              "description": "Accumulation phase fund",
              "currencyType": "EUR",
              "financialTransaction": [
                {
                  "entityType": "trade",
                  "refKey": "trade125",
                  "buySellId": "switchfrom",
                  "tradeDate": "2024-01-06",
                  "switchType": "1",
                  "financialInformationRef": [
                    "trade126",
                    "inv003"
                  ],
                  "tradeQuantity": 20
                }
              ]
            },
            {
              "entityType": "investmentDetails",
              "refKey": "inv003",
              "description": "CVP fund",
              "currencyType": "EUR",
              "financialTransaction": [
                {
                  "entityType": "trade",
                  "refKey": "trade126",
                  "buySellId": "switchto",
                  "tradeDate": "2024-01-06",
                  "financialInformationRef": [
                    "trade125",
                    "inv002"
                  ]
                }
              ]
            }
          ]
        }
      ]
    }
  ],
  "document": []
}

Regels en verbandscontroles

  • Sinds Release 2027 is per order precies één van tradeAmount (bedrag) en tradeQuantity (aantal) gevuld; beide vullen is niet toegestaan (handleiding §6.3.2, issue #116). Heeft een instructie een bedrag- én een hoeveelheidcomponent, dan worden dat twee afzonderlijke trade-records. Beide leeg mag alleen bij de order van een switch die niet stuurt; dat kan de switchfrom- of de switchto-order zijn.
  • Een switch bestaat uit twee orders: buySellId = switchfrom en buySellId = switchto. Ze verwijzen naar elkaar via financialInformationRef, dat de refKey van de andere order bevat. Per switchpaar draagt precies één order een bedrag of een aantal; de andere draagt geen van beide (handleiding §6.3.2). tradeAmount en tradeQuantity zijn altijd positief (§4.3.5).
  • switchType (codelijst AFDSWI) geeft aan of de switch volgtijdelijk (code 1) of op één dag (code 2) wordt uitgevoerd. Het schema verwijst daarvoor naar het codelijstbestand naast het schema, niet naar sivi.org.
  • investment.investmentDetails identificeert het fonds (refKey, description, currencyType); de identifier-conventie (bijvoorbeeld ISIN) wordt bilateraal afgesproken.

Valkuilen

  • Oudere implementaties gebruiken nog buySellId = switch (Release 2026); Release 2027 kent alleen switchfrom en switchto. Een ontvanger op 2027 wijst een oude switch af.
  • Een negatief bedrag om een verkoop aan te duiden is fout: richting zit in buySellId, niet in het teken.
  • Een validator die het codelijstbestand naast het schema niet vindt (switchType verwijst naar …-afdCodelists.json, niet naar sivi.org), kan het schema van de definitieve Release 2027 niet compileren. Registreer dat bestand naast de codelijsten van sivi.org.

Fouten en oplossingen

Veelgestelde vragen

Wat gebeurt er als een order niet uitvoerbaar is (onbekend fonds, ongeldige combinatie)?

De ontvanger stuurt een feedbackbericht met statusType 0 (afgewezen) en een geclassificeerde errorCode. De PUO stuurt daarna een gecorrigeerde order met een nieuwe messageId.

Kan ik in één bericht meerdere fondsen bedienen?

Ja: het bericht bevat per transactie de investmentDetails van het fonds; meerdere transacties in één bericht zijn toegestaan.

Wijzigingsgeschiedenis

  • v1.2.0 (november 2024): numberOfUnits toegevoegd.
  • v1.4.0 (Release 2027): switch vervangen door switchfrom/switchto met positieve bedragen; JSON Schema 2020-12.
  • Definitieve Release 2027 (12 oktober 2026): orderregels in de nieuwe §6.3.2, per switchpaar stuurt één order; switchType met de codes 1 en 2 via het codelijstbestand. SIVI's voorbeelden van de pre-release vulden bedrag en aantal samen, de definitieve volgen de regel (issue #116).

Schema-bestand: VBPUO-001.00-Bericht_5._Orderopdracht_(00541).json · JSON-schema (001.05) · codelijstbestand bij dit schema · 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