Knowledge base MessagesEntitiesAttributesCode listsErrors and fixesProcessesRolesReleasesGlossaryEcosystemCompare Validator NL EN

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.

Sender
The receiver of the original message
Receiver
The sender of the original message
Timing
Synchronous (HTTP 200 or 400 with feedback in the body) or asynchronous (HTTP 202 and a later callback); turnaround times are not normative
Arrangement
SPR and FPR (all messages)
afdDefinitionName
VBPUO_Feedback_Message-001.02-VBPUO_Feedback_Message

Message structure

Entities with cardinality [min..max] and number of attributes; click for the entity page.

Attributes(23)

EntityAttributeTypeV/OCode listDescription
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

✓ Validated against schema VBPUO-001.02 · 2026-09-05

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

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

Attribution. Source: SIVI – VB-PUO Standard. Schemas, attribute descriptions and code lists are taken unchanged from the VB-PUO Standard (owned by the Pensioenfederatie, managed by SIVI) and shown with their release and version. Explanations, examples, error descriptions and translations are by WTP Data Lab and are not part of the standard. GitHub Stichting-SIVI/VBPUOdsk · Manual · sivi.org