Financial S upp
ly C hai n
SEPA
SEPA formaten inleiding tot XML versie maart 2014
ing.be/sepa
INLEIDING
1
INLEIDING TOT XML
2
Wat is XML?
2
Wat is een “root element”?
2
Wat zijn de specificaties van een element (tag)?
2
Hoe worden tags goed geformatteerd?
2
Hoe worden gegevensvelden correct samengesteld?
3
HET VERPLICHT OF OPTIONEEL KARAKTERS VAN EEN TAG (ELEMENT)
4
Wanneer is een tag verplicht of niet?
4
Wat is een “occurrence”?
4
Wat is een index?
4
BERICHTSTRUCTUUR 5 Wat is de algemene structuur van een XML-document?
5
Wat is het GroupHeader-blok?
6
Wat is het PaymentInformation-blok?
6
Wat is het CreditTransferTransactionInformation-blok?
6
Wat is het DirectDebitTransactionInformation-blok?
6
Voorbeeld voor Europese overschrijvingen SEPA
7
Voorbeeld voor Europese domiciliëringen SEPA
8
FORMAATVALIDATIETOOL 9 Wat is een formaatvalidatietool?
9
Hoe krijg ik toegang tot deze tool?
9
NUTTIGE LINKS 10
Inleiding
Dit document heeft tot doel om je migratieproces naar Europese overschrijvingen SEPA (SCT) en Europese domiciliëringen SEPA (SDD) te vergemakkelijken. Dit document tracht je te helpen om het XML-formaat te begrijpen en voor al je SEPA-transacties te gebruiken. De EPC (European Payments Council) heeft diverse documenten op het gebied van SEPA gepubliceerd, waaronder een Data Model Reference, Rulebooks en implementatierichtlijnen voor zowel overschrijvingen SEPA als domiciliëringen SEPA.
waarmee een correct financieel bericht opgesteld kan worden, menen wij dat er meer informatie noodzakelijk is om tot een efficiëntere en soepelere overgang met een bevredigend eindresultaat te komen. De land- en bankspecifieke gegevens hebben geenszins invloed op de XML-structuur zoals die door ISO20022 en EPC gepresenteerd is.
De Rulebooks van het EPC bevatten eisen voor de bedrijfsvoering en regels voor het gebruik van de SEPAschema’s . De Implementation Guides specificeren de kerneisen van SEPA die van toepassing zijn op UNIFI (ISO20022) XML-standaarden. Zij hebben betrekking op verplichte berichtgeving tussen banken en optionele, aanbevolen berichtgeving van de klant naar de bank. UNIFI ISO20022 vormt voor de European Payments Council de facto de basis voor het opstellen van de richtlijnen voor de Europese overschrijving SEPA (SCT) en de Europese domiciliëring SEPA (SDD). Alle nationale bankorganisaties hebben het EPC Rulebook verwerkt in een landspecifieke implementatierichtlijn en hebben landspecifieke elementen aan het document toegevoegd om dit voor de lokale markt geschikt te maken. Iedere lokale bank vult de implementatierichtlijnen aan door een kleine bijlage met bankspecifieke gegevens toe te voegen.
Een aanvullende succesfactor vormt het gebruik van uw actuele kennis om een correcte SEPA-migratie te kunnen realiseren. In dit document willen wij u informatie geven over hoe u XML-elementen kunt creëren. We sluiten dit document af met informatie over de hulp die ING u bij het testen kan bieden. Wij vestigen graag uw aandacht op het feit dat voor een soepele verwerking van transacties het uiterste aanlevertijdstip van ING (ING cut-off times) in acht genomen dient te worden.
Alhoewel de richtlijnen alle informatie dienen te bevatten
1 Een Rulebook is een verzameling van regels of voorgeschreven standaarden op basis waarvan besluiten worden genomen. 2 Een schema is een verzameling regels, gebruiken en standaarden die door aanbieders van betaaldiensten zijn overeengekomen (SEPA-schema voor overschrijvingen en SEPA-schema voor incasso/domiciliëring)
SEPA formaten - Inleiding tot XML 1
Inleiding tot XML Wat is XML? XML staat voor eXtensible Markup Language: het is een verzameling regels voor het modelleren van documenten in een vorm die machines kunnen lezen. XML verschaft een uniforme methode voor het beschrijven en uitwisselen van gestructureerde gegevens. XML is gebaseerd op een “mark up3”. Het is een taal die gemakkelijker gelezen kan worden dan bestanden met een “vaste bestandsveldlengte”.
Wat zijn de specificaties van een element (tag)? •
XML-tags maken onderscheid tussen hoofdletters en kleine letters.
•
Tags zijn er in drie ’soorten’:
Specificaties: •
Een XML-document bestaat uit een karakterstring.
•
De elementen dienen op de juiste wijze genest te zijn
• Ieder document moet één uniek “root element” bevatten •
De volgorde is van belang
Geen herhaling van attributen in een element
Voor financiële berichtgeving is het van het allergrootste belang dat beide partijen het bericht perfect begrijpen. De verzender en de ontvanger moeten het eens zijn hoe een bericht geïnterpreteerd dient te worden. De ISO20022standaard verbindt aanvullende regels en restricties aan het gebruik van XML-berichtgeving. Om met ISO20022 te kunnen werken, is basiskennis van XML vereist.
Wat is een “root element”? XML-documenten moeten één element bevatten dat de ‘parent’ is van alle andere elementen. Dit element noemen we het “root element”. Ieder XML-bericht moet en kan slechts één “root element” bevatten.
Start-tags: Een start-tag begint met het “<”-karakter en eindigt met het “>”-karakter.
>
bijv. <sectie>.
>
eind-tags: In XML moeten alle elementen een eindtag hebben. Iedere start-tag moet verplicht worden afgesloten met een eind-tag “”.
>
bijv. .
> empty-element tags: Deze tags stellen een programmeur in staat om een vast XML-schema te maken waarin bepaalde velden geen waarde hebben als er geen waarde beschikbaar is. Dit soort tags is in de ISO20022-structuur echter niet toegestaan. Als er een tag wordt gebruikt, mag het corresponderende gegevensveld niet leeg gelaten worden. Er moet minstens één karakter ingevuld worden.
• Waarden van attributen moeten tussen haakjes geplaatst worden •
>
>
bijv. <sectie/>.
•
Tags mogen elkaar niet overlappen
•
Corresponderende start-/eind-tags >
is een start-tag en is een eind- tag. > bijv.
75002
Hoe worden tags goed samengesteld? XML is een taal waarin alleen de gegevens tussen een start-tag en een eind-tag als ‘informatie’ geaccepteerd worden. Dat betekent dat er zonder probleem spaties of blanco’s tussen tags kunnen zijn, zonder overigens rekening te houden met het feit dat dit niet aan het algemene idee van een leesbare tekst voldoet. Daarom wordt aanbevolen om geen spaties of blanco’s tussen tags te plaatsen. Anderzijds is het niet toegestaan om spaties in de tag zelf te plaatsen. Dat leidt zeker tot een fout XML-bestand. Bijv.
3 Tekst die wordt toegevoegd aan de gegevens van een document om informatie daarover mede te delen
SEPA formaten - Inleiding tot XML 2
Hoe worden gegevensvelden correct samengesteld? Een gegevensveld is de ruimte tussen een start-tag en een eind-tag als er geen “child element” is. De karakters in deze ruimte worden als de waarde van het element beschouwd. Deze waarde vormt het feitelijke gegeven dat voor je financiële bericht essentieel is. Bijv. 75002 Voor deze gegevens gelden twee belangrijke voorwaarden: •
Karakterset In het begin van een XML-document wordt de karakterset gedefinieerd. Deze karakterset bepaalt welke karakters in datavelden gebruikt worden. De karakterset die wordt gedefinieerd in de ISO20022standaard is de welbekende UTF-8 set. Dit is een vrij kleine karakterset, waarbinnen de volgende karakters gebruikt mogen worden. abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789 / - ?: ( ) . , ‘ + Spatie
•
Lengte: Ieder gegevensveld heeft een specifieke lengte. Dit kan een vaste lengte zijn, zodat een specifieke code ingevuld kan worden. Maar het kan ook een variabele lengte zijn, waarbij een maximale lengte wordt gedefinieerd. De minimale lengte voor gegevensvelden is altijd 1. Lege velden worden niet aanbevolen.
•
Opmerking: Een spatie is een geldig karakter. Er wordt ten zeerste aanbevolen om te controleren dat de inhoud van een gegevensveld direct volgt na de start-tag en direct wordt gevolgd door een eind-tag. Bijv. 75002
SEPA formaten - Inleiding tot XML 3
Het verplicht of optioneel karakters van een tag (element) Wanneer is een tag verplicht of niet? Sommige elementen in de lay-out van het financiële bericht zijn verplicht. Andere zijn optioneel en kunnen naar wens gebruikt worden. Het is nuttig om deze optionele elementen na te gaan. Zij kunnen bij het “Payment en Cash Management” voordelen bieden. Of een element verplicht of optioneel is, zie je bij het volgende punt. In het hoofdstuk “Berichtstructuur” hebben we de vrijheid genomen om wat optionele velden als “aanbevolen’ aan te duiden, omdat we er sterk van overtuigd zijn dat die voordelen kunnen bieden bij uw betalingsverwerking.
Wat is een “occurrence”? Die geeft aan hoe vaak een element herhaald kan worden. Het aantal aanwezigheden “occurrences” wordt tussen rechte haken weergegeven. • [0..1] geeft aan dat het element 0 of 1 keer kan voorkomen. > Het element is optioneel. • [1..1] geeft aan dat het element slechts 1 keer kan voorkomen. > Het element is verplicht. • [1..n] geeft aan dat het element 1 tot n keer kan voorkomen. > Het element is verplicht. ‘n’ wordt soms aangeduid met ‘∞’, wat staat voor oneindigheid.
SEPA formaten - Inleiding tot XML 4
De indicatie “Or” is van invloed op de interpretatie van de status van gegevens. In dat geval kunnen er twee verschillende “subchildren” gebruikt worden voor één ”child”. Beide zijn correct, maar hebben een andere impact en gevolgen. De twee verschillende “subchildren” worden in de “occurrence” als volgt aangegeven: [0..1] {Or [0..1] Or}
Wat is een index? Elk element in de ISO20022-standaard wordt met behulp van een nummer geïndexeerd. Dat nummer wordt chronologisch toegewezen op basis van twee niveaus. Het eerste niveau geeft aan of het gekoppeld is aan de “header” of aan de betalingsinformatie. Het tweede niveau van het nummer geeft de volgorde aan waarin elk element aangeboden dient te worden. Hoewel diverse elementen optioneel zijn, dient het element in het geval het wordt toegevoegd wel in de juiste volgorde toegevoegd te worden.
Berichtstructuur
Wat is de algemene structuur van een XML-document? De algemene structuur van een Europese overschrijving SEPA kan bijvoorbeeld als volgt weergegeven worden:
Het XML-document kan in 3 onderdelen worden onderverdeeld: Het eerste deel wordt de proloog genoemd en is van zeer groot belang. Het stelt diegene die de file aanmaakt in staat om aan te geven welke XML-versie en karakterset gebruikt worden. ISO20022 ondersteunt uitsluitend de versie 1.0 van XML en de karakterset UTF-8. De proloog van een ISO20022-bestand dient er altijd als volgt uit te zien: Het tweede gedeelte wordt voor de documentdeclaratie gebruikt. De documentdeclaratie geeft aan welk soort document gebruikt wordt en definieert de regels waarmee het document gevalideerd kan worden. De ISO-organisatie heeft een XSD-schema verstrekt waarin de regels voor een specifieke documentsoort gedefinieerd zijn. Indien er een namespace (xmlns) wordt gegeven, kan die in een validator gebruikt worden om te kijken of het document qua structuur valide is.
SEPA formaten - Inleiding tot XML 5
De gebruikte xmlns hangt af van de versie van de ISO20022lay-out die gebruikt wordt. • De volgende documentdeclaratie wordt voor de Europese overschrijving SEPA gebruikt: • De volgende documentdeclaratie wordt voor de Europese domiciliëring SEPA gebruikt: Het derde gedeelte is het hoofdgedeelte en bevat de volledige boomstructuur van een XML-document. Hieronder bespreken we deze structuur in meer detail voor de Europese overschrijving SEPA en de Europese domiciliëring SEPA.
Wat is het GroupHeader-blok? Het groupheader-blok is het eerste blok informatie dat in het document genest is. Dit blok is verplicht en geeft informatie die voor alle daarna volgende informatie geldt. Dit blok geeft de opdrachtgevende financiële instelling de mogelijkheid om bepaalde standaard beveiligingscontroles uit te voeren. Dergelijke informatie is bijvoorbeeld de datum en het tijdstip waarop het bestand is aangemaakt. De indicatie van het totale aantal transacties dat volgt vormt eveneens een belangrijke factor.
Wat is het PaymentInformation-blok? Dat heeft betrekking op het batchniveau. Deze bouwsteen is verplicht en wordt steeds herhaald. Dit blok stelt diegene die het bestand aanmaakt in staat om zijn transacties in een logische volgorde te organiseren. Alle transacties binnen één worden met dezelfde opdrachtgevende rekening en op dezelfde uitvoerdatum verwerkt. Dit blok geeft ook aan of een transactie in het globaal of individueel op de rekening geboekt wordt (BtchBookg). Indien per slechts één transactie aangeleverd wordt, heeft het geen zin om de batchboekingsparameter te gebruiken. Het PaymentInformation-blok kan diverse transacties bevatten en dient alle transacties binnen de XML met dezelfde betalingsinstructies te groeperen. Dit voorkomt dat dezelfde informatie onnodig herhaald wordt (grotere bestanden, kans op fouten …).
SEPA formaten - Inleiding tot XML 6
Wat is het CreditTransferTransactionInformation-blok? Dat heeft betrekking op het transactieniveau van een XML voor een Europese overschrijving SEPA (pain.001.001.03). Deze bouwsteen is verplicht en wordt steeds herhaald. Het blok bevat onder meer elementen die op de creditkant van de transactie betrekking hebben, zoals de ”Creditor” en de “Remittance Information”. Terwijl de informatie over de debetkant voor alle transacties in een batch hetzelfde zal zijn, wordt de informatie over de begunstigden voor iedere transactie afzonderlijk aangegeven.
Wat is het DirectDebitTransaction Information-blok? Dat heeft betrekking op het transactieniveau van een XML voor een Europese domiciliëring SEPA (pain.008.001.02). Deze bouwsteen is verplicht en wordt steeds herhaald. Het blok bevat onder meer elementen die op de debetkant van de transactie betrekking hebben, zoals de ”Debtor”, de “Mandate Related Information” en de”Remittance Information”. Terwijl de informatie over de creditkant voor alle transacties in een batch hetzelfde zal zijn, wordt de informatie over de schuldenaarkant voor iedere invordering afzonderlijk aangegeven.
Example for European credit transfers Voorbeeld voor Europese overschrijvingen SEPA
The GroupHeader Block 1 per xml-file
The PaymentInformation Block (= batch-level) [1…∞] batches per xml-file
Transaction 1
Transaction 2
Transaction 3
SEPA formaten - Inleiding tot XML 7
Transaction Level [1…∞] per batch
Example for European direct debits Voorbeeld voor Europese domiciliëringen SEPA
The GroupHeader Block 1 per xml-file
The PaymentInformation Block (= batch-level) [1…∞] batches per xml-file
Transaction 1
Transaction 2
Transaction 3
SEPA formaten - Inleiding tot XML 8
Transaction Level [1…∞] per batch
Formaatvalidatietool
ING biedt u de mogelijkheid om online een test uit te voeren met een formaatvalidatietool.
Wat is een formaatvalidatietool? De formaatvalidatietool (FVT) is een onlinedienst die gebruikt kan worden voor het valideren van specifieke, voor ING bestemde betaalformaatbestanden. Deze bestanden vormen de ‘enveloppen’ waarin u uw transactie-instructies stopt die door ING verwerkt dienen te worden. Het biedt u een hulpmiddel dat u kan gebruiken om veranderingen in uw huidige formaten door te voeren of testbestanden tijdens de implementatie te valideren. FVT biedt een snelle, geautomatiseerde validatie van bestandsformaten. Met deze tool kunt u het implementatieproces aanzienlijk versnellen en daarmee een snellere ‘time-to-market’ behalen. Deze dienst vormt een aanvulling op het huidige bestaande implementatieproces, maar vormt geen vervanging van een stap in dat proces. De gebruikershandleiding is op de website beschikbaar via de volgende link: http://www.ingsepa.com/formatvalidationtool/en (click op HELP).
Hoe krijg ik toegang tot deze tool? Adress: http://www.ingsepa.com/formatvalidationtool/en Username: ING10 Password: Format10
SEPA formaten - Inleiding tot XML 9
Nuttige links The official document on character set conversion (EPC) http://www.europeanpaymentscouncil.eu/documents/EPC217-08%20Best%20Practices%20-SEPA%20 Requirements%20for%20Character%20Set.pdf European Payments Council (EPC) – Europese domiciliëringen SEPA http://www.europeanpaymentscouncil.eu/content.cfm?page=sepa_direct_debit_(sdd) European Payments Council (EPC) – Europese overschrijvingen SEPA http://www.europeanpaymentscouncil.eu/content.cfm?page=sepa_credit_transfer
ING België nv – Bank – Vennootschapszetel: Marnixlaan 24, B-1000 Brussel – RPR Brussel – Btw: BE 0403.200.393 – BIC: BBRUBEBB – IBAN: BE45 3109 1560 2789. Verantwoordelijke uitgever: Inge Ampe – Sint-Michielswarande 60, B-1040 Brussel – 705117N – 03/14 © Editing Team & Graphic Studio – Marketing ING Belgium