Release 2027 · Schema version 001.05 · New in Release 2027
SIVI message 15 (00557): Corporate actions (VB-PUO)
Message 15 is new in Release 2027 and reports corporate actions on investment products that have been processed in the asset administration but are not automatically visible in the PUO's systems: cash dividend, stock dividend, product changes and rebates. This keeps the PUO administration in sync with the asset manager's and ensures cash and unit mutations are processed correctly.
Message structure
Entities with cardinality [min..max] and number of attributes; click for the entity page.
- chunking.default[0..1] · 4 attr.
- commonFunctional.default[1..1] · 4 attr.
- commonTechnical.default[1..1] · 3 attr.
- party.receiver[1..1] · 3 attr.
- party.sender[1..1] · 4 attr.
- party.contact[0..9] · 2 attr.
- document.default[0..99] · 3 attr.
- party.pensionProvider[1..1] · 3 attr.
- pension.scheme[1..999] · 2 attr.
- investment.investmentDetails[1..999] · 2 attr.
- investment.corporateAction[1..99] · 13 attr.
- investment.investmentDetails[1..999] · 2 attr.
- pension.scheme[1..999] · 2 attr.
Attributes (43)
| Entity | Attribute | Type | V/O | Code list | Description |
|---|---|---|---|---|---|
| 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_15._Corporate_Actions_(00557) | 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. | |
| investment.investmentDetails | refKey | string · max 70 | V | Unique reference key assigned to an entity. | |
| investment.investmentDetails | description | string · max 60 | V | Description. | |
| investment.corporateAction | refKey | string · max 70 | V | Sleutel van de Corporate Action. | |
| investment.corporateAction | tradeDate | string · format date | V | Transactiedatum van de Corporate Action. | |
| investment.corporateAction | instructionDate | string · format date | V | Instructiedatum van de Corporate Action. | |
| investment.corporateAction | description | string · max 60 | V | Omschrijving van de Corporate Action. | |
| investment.corporateAction | currencyType | string · max 3 | O | ISOVAL | Valuta van het contante bedrag. |
| investment.corporateAction | paymentDate | string · format date | V | Betaaldatum van de Corporate Action. | |
| investment.corporateAction | corporateActionType | string | V | AFDCOA | Type Corporate Action. |
| investment.corporateAction | stockDividendPerUnitNumber | number · multipleOf 0.01 | O | Aantal stockdividend per eenheid. | |
| investment.corporateAction | cashDividendPerUnitAmount | number · multipleOf 0.01 | O | Contant bedrag per eenheid. | |
| investment.corporateAction | stockDividendTotalNumber | number · multipleOf 0.01 | O | Totaal aantal stockdividend. | |
| investment.corporateAction | newProductName | string · max 60 | O | Naam van het nieuwe product. | |
| investment.corporateAction | cashDividendTotalAmount | number · multipleOf 0.01 | O | Totaal contant bedrag van de Corporate Action. | |
| investment.corporateAction | newProductIdentifier | string · max 60 | O | Identificatie van het nieuwe product. |
Sample message
Sample source: SIVI voorbeeldbericht (Voorbeeldbericht_15). Values are fictitious.
{
"commonTechnical": [
{
"entityType": "default",
"creationDateTime": "2027-03-01T09:00:00+01:00",
"messageId": "VB-00557-0001",
"testMessage": true,
"party": [
{
"entityType": "sender",
"refKey": "BA01",
"organizationName": "Beleggingsadministrateur Voorbeeld",
"applicationSenderName": "VoorbeeldApplicatie"
},
{
"entityType": "receiver",
"refKey": "PUO01",
"organizationName": "Pensioenuitvoerder Voorbeeld"
}
]
}
],
"commonFunctional": [
{
"entityType": "default",
"afdDefinitionName": "VBPUO-001.00-Bericht_15._Corporate_Actions_(00557)",
"afdDefinitionVersion": "001.05",
"function": "01"
}
],
"party": [
{
"entityType": "pensionProvider",
"puvCode": "U0130",
"organizationName": "Bpf. Bouw",
"pension": [
{
"entityType": "scheme",
"refKey": "REG-01",
"pensionSchemeName": "Basisregeling Voorbeeld",
"investment": [
{
"entityType": "investmentDetails",
"refKey": "QZ00000010034",
"description": "Aandelenfonds Wereld Voorbeeld",
"investment": [
{
"entityType": "corporateAction",
"refKey": "CA-0001",
"corporateActionType": "1",
"description": "Cash dividend Q4 2026",
"tradeDate": "2027-03-10",
"instructionDate": "2027-03-08",
"paymentDate": "2027-03-15",
"currencyType": "EUR",
"cashDividendPerUnitAmount": 0.42,
"cashDividendTotalAmount": 525000
},
{
"entityType": "corporateAction",
"refKey": "CA-0002",
"corporateActionType": "2",
"description": "Stockdividend 2026",
"tradeDate": "2027-03-10",
"instructionDate": "2027-03-08",
"paymentDate": "2027-03-15",
"stockDividendPerUnitNumber": 0.02,
"stockDividendTotalNumber": 25000
},
{
"entityType": "corporateAction",
"refKey": "CA-0003",
"corporateActionType": "99",
"description": "Rebate beheervergoeding Q4 2026",
"tradeDate": "2027-03-12",
"instructionDate": "2027-03-11",
"paymentDate": "2027-03-17",
"currencyType": "EUR",
"cashDividendTotalAmount": 18375.4
}
]
},
{
"entityType": "investmentDetails",
"refKey": "QZ00000010117",
"description": "Obligatiefonds Voorbeeld",
"investment": [
{
"entityType": "corporateAction",
"refKey": "CA-0004",
"corporateActionType": "3",
"description": "Naamswijziging en nieuwe identificatie",
"tradeDate": "2027-03-20",
"instructionDate": "2027-03-18",
"paymentDate": "2027-03-20",
"newProductName": "Obligatiefonds Duurzaam Voorbeeld",
"newProductIdentifier": "QZ00000020272"
}
]
}
]
}
]
}
]
}Rules and consistency checks
- corporateActionType comes from code list AFDCOA: 1 cash dividend, 2 stock dividend, 3 product change and 99 other. The schema refers to the code-list file next to the schema for it (issue #137); the list AFDCAE with cashDividend, stockDividend, productChange and rebate only existed in the pre-release.
- A rebate is for now corporateActionType 99 with a description; it uses the cash dividend fields: SIVI's sample puts the amount in cashDividendTotalAmount, with currencyType.
- A product change fills newProductIdentifier and newProductName; a stock dividend fills stockDividendTotalNumber and stockDividendPerUnitNumber.
- instructionDate, tradeDate and paymentDate sit on the corporate action itself and describe the timeline; since the final Release 2027 message 15 has no financialInformation.reportingPeriod any more. investment.investmentDetails identifies the product. Dividend amounts and numbers have two decimals.
Pitfalls
- A message 15 built on the July pre-release is rejected: the codes cashDividend, stockDividend, productChange and rebate no longer exist, and financialInformation is an unknown field. The version number 001.05 stayed the same.
- A validator that does not find the code-list file next to the schema (corporateActionType refers to …-afdCodelists.json, not to sivi.org) cannot compile the schema.
Errors and fixes
- messageId missing, empty or longer than 70 charactersSchema error on commonTechnical/0/messageId: 'must have required property' or 'must NOT have more than 70 characters'.
- Duplicate messageId after acceptance (HTTP 400 with feedback)The receiver answers HTTP 400 with a feedback message (statusType 0) to a message that looks correct in content.
- afdDefinitionName incorrect (a fixed value since the final Release 2027)Schema error 'must be equal to constant' on afdDefinitionName; the WTP Data Lab validator names the expected value. Typical of a message built on the July 2026 pre-release: it states the right version 001.05 and still fails.
- afdDefinitionVersion incorrect (001.04 versus 001.05)Schema error 'must be equal to one of the allowed values' on afdDefinitionVersion, or the receiver validates against the wrong schema and reports unknown fields.
- corporateActionType invalid (AFDCOA)Schema error on corporateActionType: the value is not in the code list. For a message built on the pre-release usually together with an error on the unknown field financialInformation.
- originalMessageType 00557 rejected: feedback checked against the pre-release schemaA feedback message on a corporate action (message 15) with originalMessageType = 00557 gives a schema error on originalMessageType.
- currencyType not an ISO 4217 codeSchema error on currencyType (code list ISOVAL).
- Unknown field (additionalProperties = false)Schema error 'must NOT have additional properties' with the name of the extra field.
- Schema draft mismatch: definitions versus $defs, draft 2019-09 versus 2020-12The validator reports 'can't resolve reference', MissingRefError or 'no schema with key or ref' when loading the schema, before the message is tested.
Frequently asked questions
Why a separate message for corporate actions?
Because dividends, rebates and product changes cause cash and unit mutations that do not follow from orders (5/6) or value information (13); without a notification the PUO administration drifts from the asset manager's.
Change history
- v1.4.0 (Release 2027): new message; the AFD 2.0 release of April 2026 added the entityType corporateAction.
- Final Release 2027 (12 October 2026): code list AFDCOA (1, 2, 3, 99) instead of AFDCAE; financialInformation.reportingPeriod removed; dividend fields two decimals (issue #137).
Schema file: VBPUO-001.00-Bericht_15._Corporate_Actions_(00557).json · JSON-schema (001.05) · code-list file for this schema · GitHub
