Knowledge base MessagesEntitiesAttributesCode listsErrors and fixesProcessesRolesReleasesGlossaryEcosystemCompare Validator NL EN

Release 2027 · Schema version 001.05 · Active

SIVI message 10 (00553): Control information investment pools (VB-PUO)

Message 10 tells the fiduciary manager per investment pool what has to be bought or sold net as a result of the mutations in the participant administration: the direction (buySellId) and the net cash effect (tradeValueAmount). It is the steering information with which the fiduciary instructs the operational asset managers and the LDI manager.

Sender
Investment administrator (BA); the PUO only when it fulfils the BA role itself (issue #142)
Receiver
Fiduciary manager (FM)
Timing
T-4 (four business days before the transaction date)
Arrangement
FPR: investment pools (messages 10, 13, 14 and 15)
afdDefinitionName
VBPUO-001.00-Bericht_10._Stuurinformatiebeleggingspools_(00553)

Message structure

Entities with cardinality [min..max] and number of attributes; click for the entity page.

Attributes (35)

EntityAttributeTypeV/OCode listDescription
chunking.default currentChunkId string · max 70 V Unique reference (id) of the current chunk.
chunking.default chunkSequenceNumber integer V Sequence number of the current chunk.
chunking.default totalNumberOfChunks integer V Total number of chunks the message has been split into.
chunking.default chunkFragmentPaths array[string] V Array of JMESPath references to the message fragments used within the current chunk.
commonFunctional.default afdDefinitionVersion string · max 80 V 001.05 Version of the AFD-definition.
commonFunctional.default afdDefinitionName string · max 80 V VBPUO-001.00-Bericht_10._Stuurinformatiebeleggingspools_(00553) Name of the AFD-definition.
commonFunctional.default originalMessageId string · max 70 O The messageId of the original message, which is replaced by this message.
commonFunctional.default function string V ADNFUN Message function
commonTechnical.default creationDateTime string · format date-time V Date and time (as timestamp) when the message was created.
commonTechnical.default testMessage boolean O Indication whether the message is a test message.
commonTechnical.default messageId string · max 70 V Unique identification of the message. (AFD 2.0 only)
party.receiver refKey string · max 70 V Unique reference key assigned to an entity.
party.receiver organizationName string · max 60 V Name of professional or branch organization.
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 Unique reference key assigned to an entity.
party.sender applicationSenderName string · max 60 O Name of the application that sends the data.
party.sender organizationName string · max 60 V Name of professional or branch organization.
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 Work email address.
party.contact workPhoneNumber string · max 60 V Work telephone number.
document.default refKey string · max 70 V Unique reference key assigned to an entity.
document.default fileName string · max 60 V Name of the file under which the attachment can be saved.
document.default fileExtension string V pdf | csv | txt Extension of the file under which the attachment can be saved. For example "pdf", "doc", etc.
party.pensionProvider organizationName string · max 60 V Name of professional or branch organization.
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 Pension provider
pension.scheme refKey string · max 70 V Unique reference key assigned to an entity.
pension.scheme pensionSchemeName string · max 60 V Name of the pension scheme.
financialInformation.reportingPeriod investmentOrderSettlementDate string · format date V Date on which the complete cycle of the investment order must be settled.
financialInformation.reportingPeriod tradeDate string · format date V Desired trade date.
investment.pool refKey string · max 70 V Unique reference key assigned to an entity.
investment.pool description string · max 60 V Description.
investment.pool currencyType string V ISOVAL Currency
investment.pool buySellId string V sell | buy Aan- verkoopindicator; ID voor aan-/verkoop per beleggingspool per regeling
investment.pool tradeValueAmount number · multipleOf 0.01 V Waarde transactie per beleggingspool per regeling

Sample message

✓ Validated against schema VBPUO-001.05 · 2026-10-14

Sample source: SIVI voorbeeldbericht (Voorbeeldbericht_10). Values are fictitious.

{
  "commonTechnical": [
    {
      "entityType": "default",
      "creationDateTime": "2027-03-01T09:00:00+01:00",
      "messageId": "VB-00553-0001",
      "testMessage": true,
      "party": [
        {
          "entityType": "sender",
          "refKey": "BA01",
          "organizationName": "Beleggingsadministrateur Voorbeeld",
          "applicationSenderName": "VoorbeeldApplicatie"
        },
        {
          "entityType": "receiver",
          "refKey": "FM01",
          "organizationName": "Fiduciair Manager Voorbeeld"
        }
      ]
    }
  ],
  "commonFunctional": [
    {
      "entityType": "default",
      "afdDefinitionName": "VBPUO-001.00-Bericht_10._Stuurinformatiebeleggingspools_(00553)",
      "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",
              "tradeDate": "2027-03-26",
              "investmentOrderSettlementDate": "2027-03-30"
            }
          ],
          "investment": [
            {
              "entityType": "pool",
              "refKey": "POOL-REND",
              "description": "Rendementspool",
              "currencyType": "EUR",
              "buySellId": "buy",
              "tradeValueAmount": 1218373.59
            },
            {
              "entityType": "pool",
              "refKey": "POOL-MATCH",
              "description": "Matchingpool",
              "currencyType": "EUR",
              "buySellId": "sell",
              "tradeValueAmount": 1421216.76
            },
            {
              "entityType": "pool",
              "refKey": "POOL-RENTE",
              "description": "Rentepool",
              "currencyType": "EUR",
              "buySellId": "buy",
              "tradeValueAmount": 1054178.85
            }
          ]
        }
      ]
    }
  ]
}

Rules and consistency checks

  • Per investment pool (investment.pool): refKey, description, currencyType, buySellId (buy or sell) and tradeValueAmount, the net cash effect. Numbers of units and unit values are not in message 10 but in message 13.
  • Release 2027 removed the cohort-pool layer; the data lands directly on investment.pool. The fields dummyCashId, tradeQuantity, unitPrice and currencyExchangeRate have been dropped (issue #133).
  • The message must reach the fiduciary at T-4; late means the execution window (T to T+3) is missed.

Pitfalls

  • Messages built with the Release 2026 schema contain the pensionCohortPool layer and are rejected by a Release 2027 receiver (unknown field).
  • Issue #92 ('SIVI 10 sell units'): a sale is expressed with buySellId = sell and positive quantities, not with a negative quantity.

Errors and fixes

Difference from Release 2026 (001.04 → 001.05)

Entities removed: pension.cohortPool

Attributes removed: pension.cohortPool.refKey, pension.cohortPool.description, pension.cohortPool.currencyType, pension.cohortPool.cohortRef, investment.pool.currencyExchangeRate, investment.pool.dummyCashId, investment.pool.unitPrice, investment.pool.tradeQuantity

Frequently asked questions

Who sends message 10: the PUO or the investment administrator?

The investment administrator. The final manual of Release 2027 (12 October 2026) lays down that the BA role sends messages 10 and 14; a PUO does so only when it fulfils the BA role itself (issue #142).

Change history

  • v1.4.0 (Release 2027): cohort-pool layer removed; fields dummyCashId, tradeQuantity, unitPrice and currencyExchangeRate dropped; JSON Schema 2020-12.
  • Final Release 2027 (12 October 2026): sender the investment administrator (issue #142).

Schema file: VBPUO-001.00-Bericht_10._Stuurinformatiebeleggingspools_(00553).json · JSON-schema (001.05) · GitHub

Attribution. Source: SIVI – VB-PUO Standard. Schemas, attribute descriptions and code lists are taken unchanged from the VB-PUO Standard (owned by the Pensioenfederatie, managed by SIVI) and shown with their release and version. Explanations, examples, error descriptions and translations are by WTP Data Lab and are not part of the standard. GitHub Stichting-SIVI/VBPUOdsk · Manual · sivi.org