Release 2027 · Schemaversie 001.05 · Actief
SIVI-bericht 6 (00542): Orderconfirmation (VB-PUO)
De orderconfirmation koppelt de uitvoering terug: welke order is tegen welke prijs en in welk aantal uitgevoerd. De structuur spiegelt bericht 5, inclusief de switch-conventie, zodat de PUO de confirmatie één-op-één aan de opdracht kan koppelen en de unit-administratie kan bijwerken.
Berichtstructuur
Entiteiten met cardinaliteit [min..max] en aantal attributen; klik voor de entiteitpagina.
- 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.
Attributen (50)
| Entiteit | Attribuut | Type | V/O | Codelijst | Omschrijving |
|---|---|---|---|---|---|
| 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_6._Orderconfirmation_(00542) | 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 | investmentOrderSettlementDate | string · format date | V | Datum waarop de volledige cyclus van de beleggingsorder afgewikkeld moet zijn. | |
| financialInformation.reportingPeriod | instructionDate | string · format date | O | 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) |
| investment.investmentDetails | numberOfUnits | number · multipleOf 0.000001 | O | Aantal units/eenheden. | |
| 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 | O | Gewenste handelsdatum. | |
| 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 | Aankoopprijs. | |
| financialTransaction.trade | switchType | string | O | AFDSWI | Type switch; one-day of sequential |
| financialTransaction.trade | clearingBroker | string · max 70 | O | Naam van de effectenmakelaar verantwoordelijk voor de administratieve en financiële afwikkeling van de transactie. | |
| financialTransaction.trade | broker | string · max 70 | O | Naam van de effectenmakelaar die (belegging)orders uitvoert op de markt. | |
| financialTransaction.trade | commissionAmount | number · multipleOf 0.01 | O | Vergoedingsbedrag voor het uitvoeren van een transactie. | |
| financialTransaction.trade | clearingBrokerCashAccount | string · max 18 | O | Geldrekening (IBAN) van de clearing broker. | |
| financialTransaction.trade | buySellId | string | V | sell | buy | switchfrom | switchto | Aan-, verkoop- of switchrichtingindicator |
| financialTransaction.trade | counterparty | string · max 70 | O | Tegenpartij, transfer agent die de aan-/verkoop verricht. | |
| financialTransaction.trade | adjustmentIndicator | boolean | V | Indicatie of de huidige instructie gewijzigd is. | |
| financialTransaction.trade | interestAmount | number · multipleOf 0.01 | O | Rentebedrag. |
Voorbeeldbericht
Bron voorbeeld: SIVI voorbeeldbericht (Voorbeeldbericht_6-buy). Waarden zijn fictief.
{
"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": []
}Regels en verbandscontroles
- tradeAmount is verplicht; tradeQuantity, tradePrice, counterparty, broker, interestAmount, commissionAmount, clearingBroker en clearingBrokerCashAccount zijn sinds Release 2027 optioneel.
- Komen tradeQuantity en tradePrice beide voor, dan geldt per trade: tradeQuantity × tradePrice = tradeAmount (handleiding §6.3.2). SIVI's koopvoorbeeld rekent 102 × 98,04 = 10000,08. Bij een switch gaat het bedrag van de switchfrom-order de switchto-order in, behalve tussen producten in verschillende valuta: de berichten bevatten geen wisselkoers.
- Een confirmatie verwijst naar de opdracht via dezelfde refKey en, bij switches, dezelfde financialInformationRef en switchType.
- Een afwijkende uitvoering (deels uitgevoerd, andere prijs) wordt gemeld met adjustmentIndicator.
Valkuilen
- Een confirmatie zonder de refKey van de oorspronkelijke order is voor de PUO niet te matchen; de ontvanger zal het bericht functioneel afwijzen.
Fouten en oplossingen
- messageId ontbreekt, is leeg of langer dan 70 tekensSchemafout op commonTechnical/0/messageId: 'must have required property' of 'must NOT have more than 70 characters'.
- afdDefinitionName onjuist (vaste waarde sinds de definitieve Release 2027)Schemafout 'must be equal to constant' op afdDefinitionName; de validator van WTP Data Lab noemt de verwachte waarde. Typisch voor een bericht dat op de pre-release van juli 2026 is gebouwd: het vermeldt de juiste versie 001.05 en valt toch af.
- afdDefinitionVersion onjuist (001.04 versus 001.05)Schemafout 'must be equal to one of the allowed values' op afdDefinitionVersion, of de ontvanger valideert tegen het verkeerde schema en meldt onbekende velden.
- switchfrom zonder switchto, of financialInformationRef ontbreektDe ontvanger kan het switchpaar niet vormen en wijst de order af.
- switchType ongeldig (AFDSWI)Schemafout op switchType.
- buySellId ongeldigSchemafout 'must be equal to one of the allowed values' op buySellId.
- tradeAmount of tradeQuantity negatiefSchema-valide, maar de ontvanger interpreteert het teken verschillend van de bedoeling.
- tradeQuantity × tradePrice is niet tradeAmount (bericht 6)Schema-valide, maar de PUO kan de bevestiging niet sluitend in de unit-administratie verwerken. De validator van WTP Data Lab meldt een fout bij tradeAmount.
- Schema-draft mismatch: definitions versus $defs, draft 2019-09 versus 2020-12De validator meldt 'can't resolve reference', MissingRefError of 'no schema with key or ref' bij het laden van het schema, nog vóór het bericht wordt getoetst.
Verschil met Release 2026 (001.04 → 001.05)
Attributen toegevoegd: financialTransaction.trade.financialInformationRef, financialTransaction.trade.switchType
Verplichting gewijzigd: 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)
Veelgestelde vragen
Waarom is bericht 6 hernoemd van Orderbevestiging naar Orderconfirmation?
In november 2024 (v1.2.0) koos SIVI de Engelse term die brokers en transfer agents gebruiken; de code 00542 veranderde niet.
Wijzigingsgeschiedenis
- v1.2.0 (november 2024): hernoemd naar Orderconfirmation; numberOfUnits.
- v1.4.0 (Release 2027): velden tradeQuantity, tradePrice, counterparty, broker, interestAmount, commissionAmount, clearingBroker en clearingBrokerCashAccount optioneel; switchfrom/switchto.
- Definitieve Release 2027 (12 oktober 2026): verbandscontroles in §6.3.2 (aantal × koers = bedrag, het bedrag van een switch); afzender de beleggingsadministrateur.
Schema-bestand: VBPUO-001.00-Bericht_6._Orderconfirmation_(00542).json · JSON-schema (001.05) · codelijstbestand bij dit schema · GitHub
