IMPLEMENTATION INSIGHTS / VALIDATION & EXCEPTIONS
Why can a bank reject a valid pain.001 file?
Passing an XML schema check is a useful result. A working payment workflow also needs the right bank profile, reliable source data and a clear way to handle the response.
Start with the message version and bank guide.
pain.001 identifies the customer credit-transfer initiation message family. It does not, by itself, identify the version your bank accepts. Record the complete message identifier, the required namespace, the exchange channel and the dated bank implementation guide before changing a mapping. The ISO 20022 catalogue publishes versioned definitions and supporting documentation.
For an implementation review, keep these documents together with the source export specification. A file generated for one channel should not silently reuse the configuration of another. Name the profile explicitly in configuration and in the validation result. This makes a later investigation more precise than a generic message saying “ISO validation failed”.
Check the ERP's native export first. An existing feature may already support the required version but need configuration or better source data. Custom generation is useful when a demonstrated gap remains.
Separate the validation layers.
The ISO Registration Authority distinguishes schema validity from message constraints and community requirements in its implementation checklist. Treat those checks as distinct results rather than one green indicator.
- XML and XSD. Parse the document safely, verify its namespace and validate it against the appropriate schema. Report structural errors at the affected element.
- Message rules. Apply the constraints and relevant code values associated with the agreed definition. Do not assume every business rule is encoded in the XSD.
- Bank profile. Apply the documented requirements of the bank and channel: required data, supported options and any agreed restrictions.
- Operating process. Verify that the file can be submitted, authorised and followed through the customer's workflow. Record what was tested and what still requires bank-channel confirmation.
Keep data-quality checks close to the ERP mapping. A missing supplier detail is easier for an operator to fix when the error points to a source record and field, rather than only to a line in a generated document.
Give the operator an actionable validation report.
A useful report connects the rule, source record and next action. It also distinguishes a blocking error from a warning. The following is a synthetic example of reporting design, not a bank specification or a validated payment file.
| Record | Finding | Next action |
|---|---|---|
PAY-DEMO-017 | Required source field is empty for the selected profile. | Complete the source record, then regenerate. |
PAY-DEMO-018 | Source amount uses an unsupported decimal separator. | Correct the export contract or parsing rule. |
PAY-DEMO-019 | Instruction identifier already exists in this test batch. | Resolve the duplicate before submission. |
Use recognisable field names when diagnosing a particular implementation. For example, a mapping may reference EndToEndId, InstdAmt or creditor account data. Exact paths and requirements must come from the selected version and bank guide. A copied XML fragment is not a substitute for that contract.
Keep validation separate from payment outcome.
A local pass describes the checks your software performed. The bank response describes a different stage. Where the channel supplies pain.002, correlate its references with the original instruction and preserve the returned status and reason information. Do not compress all intermediate results into “paid”.
Design explicit handling for a rejected record, a rejected batch, a partial result and a response that has not arrived. A missing or unclear response needs investigation. It should not trigger a blind resubmission, because the original instruction may already have been received.
Keep a traceable sequence from the source record to generated file, submission evidence, received response and later reconciliation. Decide who can resolve an exception and what evidence they must review.
Test the failures that matter to the team.
Build a small, repeatable test set around the agreed profile. Include a valid source record, a missing required value, an invalid amount, an unsupported option, a duplicated identifier and a bank rejection sample where one is available. Retain expected results beside each fixture.
Test the recovery path as carefully as the first run: can an operator correct a record, regenerate the file and identify which output replaced the earlier one? Can a previously imported response be processed again without duplicating workflow actions? Can someone explain why a record remains unresolved?
Agree acceptance criteria with the finance team and the technical owner. A sensible result is evidence that the selected workflow behaves as specified, including its exceptions. It is not a promise that every payment will be accepted or settled.
What to bring to a validation review.
Start with the ERP or source-system version, the bank guide, the complete message identifier and a concise description of the failure. Add anonymised source data, the generated file, the available rejection report and the expected result. Agree a secure way to exchange these materials before sending them.
NICOLLA.AI can scope a focused review and implementation around that workflow. Explore our ISO 20022 implementation service or inspect the illustrative mapping and validation example to see the level of detail a useful integration contract should expose.
Official references.
Technical sources checked on 5 November 2026. This guide presents engineering recommendations; exact versions, usage rules and acceptance criteria must be agreed for the implementation.