Fouten en oplossingen
VB-PUO-fouten en hun oplossing
48 fouten uit schemavalidatie, verbandscontroles en het feedbackprotocol van de SIVI-berichten, elk met symptoom, oorzaak, oplossing en een fout en goed voorbeeld.
Schemafout
- 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'.
- originalMessageId ontbreekt in feedback of herverzendingFeedbackbericht wordt zelf afgewezen: 'must have required property originalMessageId'. Bij een herverzending kan de ontvanger de correctie niet koppelen.
- afdDefinitionName onjuistDe ontvanger routeert het bericht verkeerd of wijst het af; in het feedbackbericht is afdDefinitionName een vaste waarde (const) en levert een afwijking een schemafout op.
- 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.
- Berichtfunctie ongeldig (ADNFUN 01, 02, 09 of 54)Schemafout op commonFunctional/0/function: waarde niet toegestaan.
- creationDateTime geen geldige date-timeSchemafout 'must match format date-time'.
- puvCode onbekend in codelijst AFDIDPSchemafout 'must match exactly one schema in oneOf' op party/0/puvCode.
- rsinNumber niet 9 positiesSchemafout op rsinNumber (lengte) bij sender, receiver of pensionProvider.
- party.sender: refKey of organizationName ontbreektSchemafout 'must have required property' op de verzendende partij.
- party.contact: emailWork of workPhoneNumber ontbreektSchemafout op de contactpersoon onder de verzender.
- pension.scheme: refKey ontbreekt of pensionSchemeName langer dan 60Schemafout op de regeling.
- startAmount niet in twee decimalen (multipleOf 0.01)Schemafout 'must be multiple of 0.01'.
- Percentages met meer dan twaalf decimalenSchemafout 'must be multiple of' op returnPercentage, protectionReturnPercentage of excessReturnPercentage.
- Cohort-cardinaliteit overschreden (minContains / maxContains)Schemafout 'must contain at least 1 valid item' of 'must contain at most 99999 valid items' op pension.
- participationStatus ongeldig (ADNDNS)Schemafout 'must match exactly one schema in oneOf' op pension.cohort.participationStatus.
- reserveType ongeldig (AFDRES)Schemafout 'must match exactly one schema in oneOf' op reserveType.
- switchType ongeldig (AFDSWI)Schemafout op switchType.
- buySellId ongeldigSchemafout 'must be equal to one of the allowed values' op buySellId.
- collectionAccountIban ongeldig of te langSchemafout op de maximale lengte van het IBAN, of een functionele afwijzing door de fiduciair.
- corporateActionType ongeldig (AFDCAE, wordt AFDCOA)Schemafout 'must match exactly one schema in oneOf' op corporateActionType.
- originalMessageType 00557 wordt niet geaccepteerd door feedbackschema 001.02Een feedbackbericht op een corporate action (bericht 15) met originalMessageType = 00557 geeft een schemafout op originalMessageType.
- currencyType geen ISO 4217-codeSchemafout op currencyType (codelijst ISOVAL).
- Onbekend veld (additionalProperties = false)Schemafout 'must NOT have additional properties' met de naam van het extra veld.
- entityType komt niet overeen met de vaste waardeSchemafout 'must be equal to constant' op entityType, vaak gevolgd door 'must contain at least 1 valid item' op de bovenliggende array.
- Bijlage: fileExtension niet pdf, csv of txt, of fileName langer dan 60Schemafout op document.
- Feedback: statusType niet 0 of 8Schemafout op statusType van het feedbackbericht.
- errorCodeExplanation langer dan 1000 tekensHet feedbackbericht zelf wordt afgewezen op lengte.
- Vervallen bericht (7, 8, 9, 11 of 12) verzonden onder Release 2027De ontvanger op Release 2027 kent het berichttype niet: 404 op het endpoint of een afwijzing op afdDefinitionName.
- Schema-draft mismatch: definitions versus $defs, draft 2019-09 versus 2020-12De validator meldt 'can't resolve reference' of 'no schema with key or ref' bij het laden van het schema, nog vóór het bericht wordt getoetst.
Verbandscontrole
- reportingPeriod: endDate ligt vóór startDateHet schema accepteert het bericht; de ontvanger wijst het functioneel af of boekt de stromen in de verkeerde periode.
- reserveIndicator zonder reserveType of reserveDescriptionSchema-valide, maar de ontvanger kan de reserve niet typeren en boekt hem als gewoon cohort.
- endAge kleiner dan startAge, of geen geheel getalBij decimalen een schemafout 'must be integer'; bij verwisselde grenzen accepteert het schema en wijst de ontvanger af.
- Cohortsom wijkt af van het regelingtotaal (verbandscontrole)Schema-valide, maar de fiduciair of beleggingsadministrateur meldt een reconciliatieverschil op regelingniveau.
- Som van gewogen geprojecteerde uitkeringen ongelijk aan de afdekkings-cashflow (bericht 3)De LDI-manager kan de afdekking niet aansluiten; schema-valide.
- contributionAmount/withdrawalAmount én netAmount gevuld (SPR-route en netto tegelijk)Schema-valide; de ontvanger telt de stromen dubbel of weet niet welke leidend is.
- tradeAmount en tradeQuantity beide gevuld of beide leeg (bericht 5)De broker wijst de order functioneel af (feedback statusType 0) of voert een onbedoelde hoeveelheid uit.
- switchfrom zonder switchto, of financialInformationRef ontbreektDe broker kan het switchpaar niet vormen en wijst de order af.
- tradeAmount of tradeQuantity negatiefSchema-valide, maar de ontvanger interpreteert het teken verschillend van de bedoeling.
- collectionAccountBic ongeldigFunctionele afwijzing van de betaalinstructie.
- Chunking: chunkSequenceNumber of totalNumberOfChunks inconsistentDe ontvanger kan de reeks niet sluiten: volgnummer hoger dan het totaal, dubbel volgnummer of wisselend totaal binnen één currentChunkId.
Proces / protocol
- Dubbele messageId na acceptatie (HTTP 400 met feedback)De ontvanger antwoordt HTTP 400 met een feedbackbericht (statusType 0) op een bericht dat inhoudelijk correct lijkt.
- originalMessageId verwijst naar een onbekend berichtDe ontvanger kan de feedback of correctie niet plaatsen en meldt functioneel 'onbekend bericht'.
- testMessage = true in productieHet bericht wordt geaccepteerd maar niet verwerkt, of juist als test genegeerd terwijl het productie was.
- Chunking: ontbrekende chunk bij de ontvangerDe reeks blijft open; de inhoud wordt niet verwerkt en de verzender krijgt alleen feedback per ontvangen chunk.
- HTTP 400 bij synchrone validatie: hoe lees je het feedbackberichtHet endpoint antwoordt 400 Bad Request met een JSON-body.
- HTTP 202 zonder callback: de asynchrone feedback blijft uitNa 202 Accepted volgt geen feedbackbericht met geaccepteerd of afgewezen.
- Panic-scenario: de callback zelf wordt afgewezenDe ontvanger stuurt zijn feedback (geaccepteerd of afgewezen) als callback en krijgt daarop 400 terug.
- Fout ontdekt na acceptatie: het correctieprotocolEen geaccepteerd en verwerkt bericht blijkt inhoudelijk fout (verkeerd bedrag, verkeerd cohort).
