Release 2027 (pre-release) · Schema version001.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 | 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 | 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 | messageId | string · max 70 | V | Unique identification of the message. (AFD 2.0 only) | |
| commonTechnical.default | testMessage | boolean | O | Indication whether the message is a test message. | |
| 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 | workPhoneNumber | string · max 60 | V | Work telephone number. | |
| party.contact | emailWork | string · max 60 | V | Work email address. | |
| document.default | refKey | string · max 70 | V | Unique reference key assigned to an entity. | |
| document.default | fileExtension | string | V | pdf | csv | txt | Extension of the file under which the attachment can be saved. For example "pdf", "doc", etc. |
| document.default | fileName | string · max 60 | V | Name of the file under which the attachment can be saved. | |
| 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 | currencyType | string | V | ISOVAL | Currency |
| investment.investmentDetails | description | string · max 60 | V | Description. | |
| 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 | Unique referral to the refKey of one or more financialInformation entities. (AFD 2.0 only) | |
| financialTransaction.trade | tradeDate | string · format date | O | Desired trade date. | |
| financialTransaction.trade | tradeAmount | number · multipleOf 0.01 | V | Trade amount in the currency of the investment. | |
| financialTransaction.trade | tradeQuantity | number · multipleOf 0.000001 | O | Number of trade units. | |
| financialTransaction.trade | tradePrice | number · multipleOf 0.000001 | O | Trade price. | |
| financialTransaction.trade | switchType | string | O | AFDSWI | Switch type |
| 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 | Purchase/sales indicator. |
| 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-sell-switch). 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": "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": "Pension Provider YZ",
"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": "Bond Fund",
"currencyType": "USD",
"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": "Global Equity",
"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.
- 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'.
- 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 broker 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.
Difference from Release 2026(001.04 → 001.05)
Attributesadded: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.
Schema file: VBPUO-001.00-Bericht_6._Orderconfirmation_(00542)_v5.json · JSON-schema (001.05) · GitHub
