The intention of this post is to give you an understanding of what XML is, how it relates to SEPA and items to take note of. It will not give you the A-Z of XML, consult your technical resources for that and the EPC website.
Lets start with the basics, what is XML?
eXtensible Markup Language (XML) is a mark up language that is both human readable and machine readable. Oh right, so what does that mean? In short, if you look at a XML document you will have a good idea of the information within it. You’ll be able to see your payment batch information, your supplier name, their IBAN information and so on…. Using traditional file formats this information was included within the format, but it wasn’t obvious what was what, and where that information resided.
So, how does SEPA fit into this?
Well ISO 20022, the International Organisation for Standardisation, have used XML as the international standard format for their payment messages. This has been adopted by many banks and other financial institutions to simplify global business communication. The SEPA Credit Transfer and SEPA Direct Debit file formats are based on this ISO 20022 format.
If you visit the ISO 20022 website, go to the catalogue of messages and there you’ll see Payments. The Payments Initiation (PAIN… no jokes please..!) messages are the ones we’re interested in from a SEPA perspective.
You’ll see there that the current ISO version of PAIN for payment is PAIN.001.001.05. From experience, many corporates are using version 2 (PAIN.001.001.02) and most extensively version 3 (PAIN.001.001.03). For collections, the current ISO version is PAIN.008.001.04. For SEPA PAIN.008.001.02 is being widely used.
For further information about supported formats, refer to the SEPA rulebooks and your bank.
Supported ISO20022 Characters:
The following characters can be used:
a b c d e f g h i j k l m n o p q r s t u v w x y z
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
0 1 2 3 4 5 6 7 8 9 / – ?: ( ) . , ‘ +
Space
If your ERP allows other characters, you need to ensure they are replaced with one of the above permitted characters. Your file will fail / not be processed if a ‘local’ language character (e.g. ú, é) is used.
Empty Tags
Ensure mandatory tags are populated. For example, IBAN is a mandatory tag, if it is missing the bank will not be able to process your sent payment / collection. Equally, if the tag is included but empty, it will also cause your file to fail at the bank.
<IBAN></IBAN> is bad since there is no information between ><
<IBAN>SEPAFORCORPORATES</IBAN> is better, apart from the obvious 😉
Message Structure:
There are 4 mandatory parts to the SEPA Credit Transfer Format (PAIN.001) and the SEPA Direct Debits (PAIN.008) XML file.
- The definition of the file – here you state the file type and the version
- The GroupHeader block:
- This is identified by the tag <GrpHdr>
- Here you tell the bank high level information about the file such as the date / time the file was created, the number of transactions and the total value of those transactions
- There should only be 1 GroupHeader block
- The PaymentInformation block:
- This is identified by the tag <PmtInf>
- Here you give the bank details of the batch, information such as the debit account (SEPA Credit Transfers) or credit account (SEPA Direct Debits), the value/execution date.
- Your essentially defining how you would like the payments/collections within the batch to be processed
- A file can contain multiple PaymentInformation blocks
- The Transaction Information block:
- Depending on the type of file and version, this identified by the tag:
- < CreditTransferTransaction> for SEPA Credit Transfers (PAIN.001.001.03)
- <DirectDebitTransactionInformation> for SEPA Direct Debits (PAIN.008.001.02)
- Here you define the details of the particular transaction. For:
- Credit Transfer – Payment Files
- The Supplier/Creditor, the amount, Remittance information
- Direct Debit – Collection Files
- The customer/debtor, the amount, remittance information, mandate information
- Credit Transfer – Payment Files
- Each PaymentInformation block must contain corresponding Transaction Information block(s)
- A file can contain multiple Transaction Information blocks
- Depending on the type of file and version, this identified by the tag:
Just in case its not obvious from the above, a file can only contain either SEPA Credit Transfer or SEPA Direct Debit information. A file cannot contain a combination of both SEPA Credit Transfer or SEPA Direct Debit transactions.
There you have it, SEPA XML in a nutshell. Please do share any information you’ve picked up along the way….
Pingback: 10 Reasons Why SEPA is like Sitting High School Exams
Pingback: Why SEPA Batch Booking Is Important - SEPA for Corporates
Pingback: SEPA Compliance, Tick. What Next?
Pingback: What Is A Payment Factory? Payment Factory Defintion - SEPA
Pingback: ISO 20022 XML In Less Than 2 Minutes - SEPA for Corporates
Pingback: Benefits of SEPA According to PWC - SEPA for Corporates
Pingback: 3 Things You Ought To Know About SEPA BIC - SEPA for Corporates
Pingback: Immediate Payments Not Available Anytime Soon
Pingback: Corporate to Bank Connectivity - 10 Questions To Ask
Pingback: The SALA in SEPA Salary Payments
Pingback: SEPA Deadline: 1st February 2016 - The Countdown Begins ← SEPA for Corporates
Pingback: CitiDirect - The Good, The Bad and The Ugly ← SEPA for Corporates
Pingback: 7 Common XML Payments Errors You Need To Know
Pingback: 7 Themes From the SWIFT Business Forum in London
Pingback: 9 Challenges Posed by Legacy ERP Systems
Pingback: 5 Ingredients for a Successful Regional Payments Scheme
Pingback: I've Got 99 Problems But SWIFT Connectivity Ain't 1
Pingback: 10 Key Benefits of XML Payments for Corporates
Pingback: EU Euro Payments Must be SEPA Compliant by 31 Oct 2016
What is the ratio of banks using pain.001.001.03 and pain.008.001.02?