Release 2027 (pre-release) · Schema version001.02 · Active
SIVI feedback message (VB-PUO)
The feedback message confirms that a message can be processed (statusType 8, accepted) or reports why not (statusType 0, rejected, with errorCode and errorCodeExplanation). It always refers to the messageId of the original message and optionally to the message type. The original message is not returned.
Message structure
Entities with cardinality [min..max] and number of attributes; click for the entity page.
- commonFunctional.default[1..1] · 6 attr.
- commonTechnical.default[1..1] · 3 attr.
- party.receiver[0..1] · 3 attr.
- party.sender[0..1] · 4 attr.
- party.contact[0..9] · 2 attr.
- error.default[0..999] · 3 attr.
- party.pensionProvider[1..1] · 2 attr.
Attributes(23)
| Entity | Attribute | Type | V/O | Code list | Description |
|---|---|---|---|---|---|
| commonFunctional.default | afdDefinitionName | string | V | VBPUO_Feedback_Message-001.02-VBPUO_Feedback_Message | Name of the AFD-definition. |
| commonFunctional.default | afdDefinitionVersion | string | V | 001.02 | Version of the AFD-definition. |
| commonFunctional.default | originalMessageId | string · max 70 | V | The messageId of the original message, which is replaced by this message. | |
| commonFunctional.default | function | string | V | ADNFUN | Message function |
| commonFunctional.default | statusType | string | V | ADNSTS | Status |
| commonFunctional.default | originalMessageType | string | O | 0001a | 0001b | 0001c | 00002 | 00541 | 00542 | 00551 | 00552a | 00552b | 00553 | 00554 | 00555a | 00555b | 00556 | Message type of the original request to which this message is a response. |
| commonTechnical.default | creationDateTime | string · format date-time | V | Date and time (as timestamp) when the message was created. | |
| commonTechnical.default | messageId | string | 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 | organizationName | string · max 60 | V | Name of professional or branch organization. | |
| party.receiver | refKey | string · max 70 | V | Unique reference key assigned to an entity. | |
| 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. | |
| error.default | refKey | string | V | Unique reference key assigned to an entity. | |
| error.default | errorCode | string | V | ADNFTM | Error code |
| error.default | errorCodeExplanation | string · max 1000 | V | Explanation of the error message. | |
| party.pensionProvider | organizationName | string | V | Name of professional or branch organization. | |
| party.pensionProvider | puvCode | string | V | AFDIDP | Pension provider |
Sample message
Sample source: SIVI voorbeeld feedbackbericht. Values are fictitious.
{
"commonTechnical": [
{
"entityType": "default",
"creationDateTime": "2024-05-08T12:30:00Z",
"messageId": "msg987654Response",
"testMessage": false
}
],
"commonFunctional": [
{
"entityType": "default",
"afdDefinitionName": "VBPUO_Feedback_Message-001.02-VBPUO_Feedback_Message",
"afdDefinitionVersion": "001.02",
"originalMessageId": "msg987654",
"originalMessageType": "0001a",
"function": "23",
"statusType": "0"
}
],
"error": [
{
"entityType": "default",
"refKey": "error1",
"errorCode": "12",
"errorCodeExplanation": "The following cohort ids are missing from this message: cohort123, cohort 111"
},
{
"entityType": "default",
"refKey": "error2",
"errorCode": "12",
"errorCodeExplanation": "Total start amount is not equal to sum of start amounts of cohorts "
}
],
"party": [
{
"entityType": "pensionProvider",
"organizationName": "Pension Provider XYZ",
"puvCode": "U0003"
}
]
}Rules and consistency checks
- originalMessageId is mandatory; originalMessageType is optional and enumerates the message types (0001a to 00556 in schema 001.02).
- function is fixed at 23; statusType is 8 (accepted) or 0 (rejected); errorCodeExplanation is at most 1000 characters.
- Six interaction patterns: synchronous success (200), synchronous error (400 with feedback), asynchronous success (202 and callback accepted), asynchronous error (202 and callback rejected), and two panic scenarios in which the callback itself is rejected and manual reconciliation is needed.
- Once accepted, messages are not corrected unilaterally: a reused messageId yields HTTP 400 with feedback; after a rejection a corrected message may be sent without consultation.
Pitfalls
- A feedback message without originalMessageId is itself invalid and produces feedback on feedback; avoid the loop by always filling the reference.
- Schema 001.02 lacks 00557 in originalMessageType; see the note at message 15.
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'.
- originalMessageId missing in feedback or resendFeedback message is itself rejected: 'must have required property originalMessageId'. On a resend the receiver cannot link the correction.
- originalMessageId refers to an unknown messageThe receiver cannot place the feedback or correction and reports 'unknown message' functionally.
- afdDefinitionName incorrectThe receiver routes the message incorrectly or rejects it; in the feedback message afdDefinitionName is a fixed value (const) and a deviation yields a schema error.
- Message function invalid (ADNFUN 01, 02, 09 or 54)Schema error on commonFunctional/0/function: value not allowed.
- originalMessageType 00557 not accepted by feedback schema 001.02A feedback message on a corporate action (message 15) with originalMessageType = 00557 gives a schema error on originalMessageType.
- Feedback: statusType not 0 or 8Schema error on statusType of the feedback message.
- errorCodeExplanation longer than 1000 charactersThe feedback message itself is rejected on length.
- HTTP 400 on synchronous validation: how to read the feedback messageThe endpoint answers 400 Bad Request with a JSON body.
- HTTP 202 without callback: the asynchronous feedback does not arriveAfter 202 Accepted no feedback message with accepted or rejected follows.
- Panic scenario: the callback itself is rejectedThe receiver sends its feedback (accepted or rejected) as a callback and gets 400 back on it.
Frequently asked questions
Do I have to send a feedback message for every message?
With synchronous processing the HTTP status (200) suffices on success; on an error or with asynchronous processing the feedback message is the only way the sender learns the outcome.
What do I do if I discover an error after acceptance?
Consult the receiver before sending a correction. The standard forbids unilateral correction of accepted messages; the correction message gets a new messageId and refers to the faulty message with originalMessageId.
Change history
- v1.0.0 (May 2024): feedback message introduced, error block removed from the 14 messages.
- v1.3.0 (Release 2026): originalMessageType added.
- v1.4.0 (Release 2027): duplicate messageId handling, party.sender and party.receiver, schema 001.02.
Schema file: VBPUO_Feedback_Message-002.00-VBPUO_Feedback_Message.json · JSON-schema (001.02) · GitHub
