Release 2027 · Schema version 001.05 · Active
SIVI message 6 (00542): Order confirmation (VB-PUO)
The order confirmation reports execution back: which order was executed at what price and in what quantity. The structure mirrors message 5, including the switch convention, so the PUO can match the confirmation one-to-one to the instruction and update the unit administration.
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] · 3 attr.
- financialInformation.reportingPeriod[1..1] · 2 attr.
- investment.investmentDetails[1..999] · 4 attr.
- financialTransaction.trade[1..99] · 15 attr.
- pension.scheme[1..999] · 3 attr.
Attributes (50)
| 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_6._Orderconfirmation_(00542) | 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. | |
| pension.scheme | tradingPortfolioId | string · max 10 | V | Custodian's trading portfolio ID (custody and management of financial assets). | |
| financialInformation.reportingPeriod | investmentOrderSettlementDate | string · format date | V | Date on which the complete cycle of the investment order must be settled. | |
| financialInformation.reportingPeriod | instructionDate | string · format date | O | Instruction date (date of the order sent by the pension administration organization). | |
| investment.investmentDetails | refKey | string · max 70 | V | Unique reference key assigned to an entity. | |
| investment.investmentDetails | description | string · max 60 | V | Description. | |
| investment.investmentDetails | currencyType | string | V | ISOVAL | Currency |
| investment.investmentDetails | numberOfUnits | number · multipleOf 0.000001 | O | Number of units. | |
| financialTransaction.trade | refKey | string · max 70 | V | Unique reference key assigned to an entity. | |
| 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 | O | Desired trade date. | |
| financialTransaction.trade | tradeAmount | number · multipleOf 0.01 | V | 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 | tradePrice | number · multipleOf 0.000001 | O | Trade price. | |
| financialTransaction.trade | switchType | string | O | AFDSWI | Type switch; one-day of sequential |
| financialTransaction.trade | clearingBroker | string · max 70 | O | Name of the clearing broker, responsible for the administrative and financial settlement of a transaction. | |
| financialTransaction.trade | broker | string · max 70 | O | Name of the broker performing (investment) orders. | |
| financialTransaction.trade | commissionAmount | number · multipleOf 0.01 | O | Amount of commission for performing a transaction. | |
| financialTransaction.trade | clearingBrokerCashAccount | string · max 18 | O | Cash account (IBAN) of the clearing broker. | |
| financialTransaction.trade | buySellId | string | V | sell | buy | switchfrom | switchto | Aan-, verkoop- of switchrichtingindicator |
| financialTransaction.trade | counterparty | string · max 70 | O | Counterparty of the trade, transfer agent performing the trade. | |
| financialTransaction.trade | adjustmentIndicator | boolean | V | Indication whether the instruction was adjusted. | |
| financialTransaction.trade | interestAmount | number · multipleOf 0.01 | O | The interest amount. |
Sample message
Sample source: SIVI voorbeeldbericht (Voorbeeldbericht_6-buy). Values are fictitious.
{
"commonFunctional": [
{
"entityType": "default",
"function": "02",
"afdDefinitionName": "VBPUO-001.00-Bericht_6._Orderconfirmation_(00542)",
"afdDefinitionVersion": "001.05",
"originalMessageId": "20240529 1532"
}
],
"commonTechnical": [
{
"entityType": "default",
"messageId": "67891",
"creationDateTime": "2023-10-28T10:00:00Z",
"testMessage": false,
"party": [
{
"entityType": "sender",
"refKey": "recv001",
"rsinNumber": "123456789",
"organizationName": "Pension Fund A",
"applicationSenderName": "OurApp"
},
{
"entityType": "receiver",
"rsinNumber": "876543219",
"organizationName": "Investment Firm B",
"refKey": "send001"
}
]
}
],
"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",
"investmentOrderSettlementDate": "2024-01-04",
"instructionDate": "2024-01-02"
}
],
"investment": [
{
"entityType": "investmentDetails",
"refKey": "inv001",
"description": "Equity Fund",
"currencyType": "EUR",
"financialTransaction": [
{
"entityType": "trade",
"refKey": "trade123",
"adjustmentIndicator": false,
"buySellId": "buy",
"tradeAmount": 10000.08,
"tradeQuantity": 102,
"tradePrice": 98.04,
"commissionAmount": 50,
"interestAmount": 0.5,
"counterparty": "Counterparty XYZ",
"broker": "Broker ABC",
"clearingBroker": "Clearing Broker DEF",
"clearingBrokerCashAccount": "CBA123456"
}
]
}
]
}
]
}
],
"document": []
}Variant: Voorbeeldbericht_6-buy-sell-switch
{
"commonFunctional": [
{
"entityType": "default",
"function": "02",
"afdDefinitionName": "VBPUO-001.00-Bericht_6._Orderconfirmation_(00542)",
"afdDefinitionVersion": "001.05",
"originalMessageId": "20240529 1532"
}
],
"commonTechnical": [
{
"entityType": "default",
"messageId": "77891",
"creationDateTime": "2024-10-07T10:00:00Z",
"testMessage": false,
"party": [
{
"entityType": "sender",
"refKey": "recv001",
"rsinNumber": "123456789",
"organizationName": "Pension Fund A",
"applicationSenderName": "OurApp"
},
{
"entityType": "receiver",
"rsinNumber": "876543219",
"organizationName": "Investment Firm B",
"refKey": "send001"
}
]
}
],
"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",
"investmentOrderSettlementDate": "2024-01-07",
"instructionDate": "2024-01-02"
}
],
"investment": [
{
"entityType": "investmentDetails",
"refKey": "inv001",
"description": "Equity Fund",
"currencyType": "EUR",
"financialTransaction": [
{
"entityType": "trade",
"refKey": "trade123",
"adjustmentIndicator": false,
"buySellId": "buy",
"tradeAmount": 10000,
"tradeQuantity": 100,
"tradePrice": 100,
"commissionAmount": 50,
"interestAmount": 0.5,
"counterparty": "Counterparty XYZ",
"broker": "Broker ABC",
"clearingBroker": "Clearing Broker DEF",
"clearingBrokerCashAccount": "CBA123456"
},
{
"entityType": "trade",
"refKey": "trade124",
"adjustmentIndicator": false,
"buySellId": "sell",
"tradeDate": "2024-01-04",
"tradeAmount": 5000,
"tradeQuantity": 50,
"tradePrice": 100,
"commissionAmount": 25,
"interestAmount": 0.25,
"counterparty": "Counterparty XYZ",
"broker": "Broker ABC",
"clearingBroker": "Clearing Broker DEF",
"clearingBrokerCashAccount": "CBA123456"
}
]
}
]
},
{
"entityType": "scheme",
"refKey": "schemeABC",
"pensionSchemeName": "Retirement Plan B",
"tradingPortfolioId": "Trade456",
"financialInformation": [
{
"entityType": "reportingPeriod",
"investmentOrderSettlementDate": "2024-01-07",
"instructionDate": "2024-01-05"
}
],
"investment": [
{
"entityType": "investmentDetails",
"refKey": "inv002",
"description": "Accumulation phase fund",
"currencyType": "EUR",
"financialTransaction": [
{
"entityType": "trade",
"refKey": "trade125",
"adjustmentIndicator": false,
"buySellId": "switchfrom",
"tradeDate": "2024-01-06",
"tradeAmount": 2000,
"tradeQuantity": 20,
"tradePrice": 100,
"switchType": "1",
"financialInformationRef": [
"trade126",
"inv003"
],
"commissionAmount": 20,
"interestAmount": 0.2,
"counterparty": "Counterparty XYZ",
"broker": "Broker ABC",
"clearingBroker": "Clearing Broker DEF",
"clearingBrokerCashAccount": "CBA123456"
}
]
},
{
"entityType": "investmentDetails",
"refKey": "inv003",
"description": "CVP fund",
"currencyType": "EUR",
"financialTransaction": [
{
"entityType": "trade",
"refKey": "trade126",
"adjustmentIndicator": false,
"buySellId": "switchto",
"tradeDate": "2024-01-06",
"tradeAmount": 2000,
"tradeQuantity": 50,
"tradePrice": 40,
"switchType": "1",
"financialInformationRef": [
"trade125",
"inv002"
],
"commissionAmount": 20,
"interestAmount": 0.2,
"counterparty": "Counterparty XYZ",
"broker": "Broker ABC",
"clearingBroker": "Clearing Broker DEF",
"clearingBrokerCashAccount": "CBA123456"
}
]
}
]
}
]
}
],
"document": []
}Rules and consistency checks
- tradeAmount is mandatory; tradeQuantity, tradePrice, counterparty, broker, interestAmount, commissionAmount, clearingBroker and clearingBrokerCashAccount are optional since Release 2027.
- If tradeQuantity and tradePrice are both present, then per trade tradeQuantity × tradePrice = tradeAmount (manual section 6.3.2). SIVI's buy sample computes 102 × 98.04 = 10000.08. In a switch the amount of the switchfrom order goes into the switchto order, except between products in different currencies: the messages carry no exchange rate.
- A confirmation refers to the instruction via the same refKey and, for switches, the same financialInformationRef and switchType.
- A deviating execution (partially executed, different price) is flagged with adjustmentIndicator.
Pitfalls
- A confirmation without the refKey of the original order cannot be matched by the PUO; the receiver will reject the message functionally.
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'.
- 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.
- switchfrom without switchto, or financialInformationRef missingThe receiver cannot form the switch pair and rejects the order.
- switchType invalid (AFDSWI)Schema error on switchType.
- buySellId invalidSchema error 'must be equal to one of the allowed values' on buySellId.
- tradeAmount or tradeQuantity negativeSchema-valid, but the receiver interprets the sign differently from the intention.
- tradeQuantity × tradePrice is not tradeAmount (message 6)Schema-valid, but the PUO cannot process the confirmation consistently in the unit administration. The WTP Data Lab validator reports an error at tradeAmount.
- 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.
Difference from Release 2026 (001.04 → 001.05)
Attributes added: financialTransaction.trade.financialInformationRef, financialTransaction.trade.switchType
Obligation changed: financialTransaction.trade.tradeQuantity (V → O), financialTransaction.trade.tradePrice (V → O), financialTransaction.trade.clearingBroker (V → O), financialTransaction.trade.broker (V → O), financialTransaction.trade.commissionAmount (V → O), financialTransaction.trade.clearingBrokerCashAccount (V → O), financialTransaction.trade.counterparty (V → O), financialTransaction.trade.interestAmount (V → O)
Frequently asked questions
Why was message 6 renamed from Orderbevestiging to Orderconfirmation?
In November 2024 (v1.2.0) SIVI adopted the English term used by brokers and transfer agents; the code 00542 did not change.
Change history
- v1.2.0 (November 2024): renamed to Orderconfirmation; numberOfUnits.
- v1.4.0 (Release 2027): fields tradeQuantity, tradePrice, counterparty, broker, interestAmount, commissionAmount, clearingBroker and clearingBrokerCashAccount optional; switchfrom/switchto.
- Final Release 2027 (12 October 2026): consistency checks in section 6.3.2 (quantity × price = amount, the amount of a switch); sender the investment administrator.
Schema file: VBPUO-001.00-Bericht_6._Orderconfirmation_(00542).json · JSON-schema (001.05) · code-list file for this schema · GitHub
