Differences between pain.001.001.02 and pain.001.001.03
© 2009 Architome BV
Differences between pain.001.001.02 and pain.001.001.03 This document provides an overview of the most important changes between pain.001.001.02 and pain.001.001.03. At the moment of writing the EPC did not publish implementation guideline how to deal with pain.001.001.03. 70%-80% is changed in the layout. Types and tag names are changed causing the XML interpretation at banks, clearing houses and customers to be adapted. Because the changes are on any level, from top to bottom, code changes are always needed when start using pain.001.001.03. It can be anticipated that both versions have to be supported concurrently for some time. Furthermore, due to changes in the format organizations that mapped the XML to another (relational) structure has to redo this mapping, and might migrate the current stored transactions to the new format to avoid data management problems. Please contact
[email protected] in case of any questions.
Reference 1 2 3
EPC RECOMMENDATION ON CUSTOMER REPORTING OF SEPA CREDIT TRANSFERS AND SEPA DIRECT DEBITS, EPC,DOC 188-09, 27 October 2009 (Version 1.01 Approved) SEPA CREDIT TRANSFER SCHEME CUSTOMER-TO-BANK IMPLEMENTATION GUIDELINES, EPC, DOC EPC132-08, 30 October 2009, (Version 3.3 Approved) Catalogue of ISO 20022 messages at http://www.iso20022.org/catalogue_of_unifi_messages.page
Changes Date
Author
Description
11-11-2009
P. Droppert
Initial version
06-02-2010
P. Droppert
Corrections in CtgyPurp, Purp and SvcLvl
08-02-2010
P. Droppert
Add management summary (thanks to R. Kilg)
_______________________________________________________________________________________________________________ Architome B.V. Version 20100206 Mennonietenbuurt 39 1427 AZ Amstelhoek
Page | 1
Differences between pain.001.001.02 and pain.001.001.03
© 2009 Architome BV
1 Management summary Summary of relevant XML structure changes •
Names of tags changed (example pain.001.001.02->CstmrCdtTrfInitn)
•
BtchBooking moved to PmtInf level, Grpg removed
•
NbOfTxs and CtrlSum added at PmtInf level
•
CrdtrSchemeId added at PmtInf Level
•
Length of the values increased (example: Nm from 70->140, EPC IG rule 70)
•
Order of elements changed (example: PstlAdr - Ctry, AdrLine)
•
Mandatory fields have become optional (example: PstlAdr - Ctry)
•
Structure of Id’s (debtor, creditor, ultimates) changed
•
Structure of Strd (structured remittance info) changed
•
Structure of RgltryRptg (regulatory reporting) changed
•
List of codes externalized (example: SvcLvl, CtgyPurp, maximum length changed from 4 to 35)
•
BBAN removed
Summary of changes introduced by EPC •
SDD: Creditor Scheme Id. available at payment level
•
Reference ISO 11649 Structured Creditor reference to Remittance Information
•
SCT: Local Instrument code changed to yellow
•
SCT: New messages (camt.056.001.01 & camt.029.001.03)
2 Overall Structure Pain.001.001.02
pain.001.001.03
Both XML structures have as top level tag ‘Document’ Tag level below document is: ‘pain.001.001.02’ with type pain.001.001.02.
Tag level below document level is: ‘CstmrCdtTrfInitn’. Type is CustomerCreditTransferInitiationV03. The next tag levels are the same as pain..02
3 Group Header pain.001.001.02
pain.001.001.03
_______________________________________________________________________________________________________________ Architome B.V. Version 20100206 Mennonietenbuurt 39 1427 AZ Amstelhoek
Page | 2
Differences between pain.001.001.02 and pain.001.001.03
© 2009 Architome BV
Authstn has type Max128Text
Authstn is of type Authorisation1Choice. This type has two tags: Cd (type Authorisation1Code) and Prtry (type=Max128Text)
BtchBookg with type BatchBookingIndicator
BtchBookg tag is removed and brought to the transaction level. This allows a combination of grouped and single transaction in a single file.
Grpg with type Grouping1Code
Grpg is removed. Allowing MIXED files only did not add much value to this element any longer.
4 Person and organization identification In pain.001.001.02 the PartyIdentification8 allows multiple ids. This was complex and did not allow identification types. In pain.001.001.03 the PartyIdentification32 allows more information but this information is simpler and allows additional type. The identification type can be based on external tables. pain.001.001.02
pain.001.001.03
PartyIdentification8
PartyIdentification32 is derived from PartyIdentification8.
Nm type=Max70Text
Nm type Max140Text
PstlAdr type=PostalAddress1
PstlAdr" type="PostalAddress6. Most important change is additional department information.
Id" type="Party2Choice
Id" type="Party6Choice. This is probably the change with the most impact. Both the organization and person identification levels are changes. The organization identification is either ‘BICorBEI’, or other. This other is a set of identifications which can be named, or linked to an external organization identification scheme name. This allows a maximum on flexibility with a minimal impact on the code to be used to handle this kind of identification. The same principle is used for person identification. This is ‘DtAndPlcOfBirth’, of identification with the same concept as described above. CtctDtls (type=ContactDetails2) is added.
_______________________________________________________________________________________________________________ Architome B.V. Version 20100206 Mennonietenbuurt 39 1427 AZ Amstelhoek
Page | 3
Differences between pain.001.001.02 and pain.001.001.03
© 2009 Architome BV
5 Debtor transaction information The type of the transaction is changed from PaymentInstructionInformation1 to PaymentInstructionInformation3. This section describes the changes on this level of tags only. pain.001.001.02
pain.001.001.03
PmtInfId type=Max35Text
Unchanged
PmtMtd type=PaymentMethod3Code
Unchanged
Not available
BtchBookg type=BatchBookingIndicator, moved from the header to debtor transaction level
Not available
NbOfTxs type=Max15NumericText. Added on debtor transaction level. This element is now available here, as well as on header level.
Not available
CtrlSum type=DecimalNumber. Added on debtor transaction level. This element is now available here, as well as on header level.
PmtTpInf type=PaymentTypeInformation1
PmtTpInf type= PaymentTypeInformation19. Type changed described below.
ReqdExctnDt type=ISODate
Unchanged
PoolgAdjstmntDt type=ISODate
Unchanged
Dbtr type=PartyIdentification8
Dbtr type=PartyIdentification32. Type change described in a seciton above.
DbtrAcct type=CashAccount7
DbtrAcct type=CashAccount16. Type changed described below.
DbtrAgt type= BranchAndFinancialInstitutionIdentification3
DbtrAgt type= BranchAndFinancialInstitutionIdentification4
DbtrAgtAcct type=CashAccount7
DbtrAgtAcct type=CashAccount16. Type changed described below.
UltmtDbtr type=PartyIdentification8
UltmtDbtr type=PartyIdentification32. Type change described in a section above.
ChrgBr type=ChargeBearerType1Code
Unchanged
ChrgsAcct type=CashAccount7
ChrgsAcct type=CashAccount16. Type changed described below.
ChrgsAcctAgt type=BranchAndFinancialInstitutionIdentificat ion3
ChrgsAcctAgt type= BranchAndFinancialInstitutionIdentification4. Type changed described below.
_______________________________________________________________________________________________________________ Architome B.V. Version 20100206 Mennonietenbuurt 39 1427 AZ Amstelhoek
Page | 4
Differences between pain.001.001.02 and pain.001.001.03
CdtTrfTxInf type= CreditTransferTransactionInformation1
© 2009 Architome BV
CdtTrfTxInf type= CreditTransferTransactionInformation10. Type changed described below.
5.1 PaymentTypeInformation1 versus PaymentTypeInformation19 pain.001.001.02
pain.001.001.03
InstrPrty type=Priority2Code
Unchanged
SvcLvl type=ServiceLevel2Choice
SvcLvl type=ServiceLevel8Choice. Instead of 3 fixed values of 4 characters, the code defining the service level is linked with an external 4 character code table. This allows any code to be filled in (following the externalized table). The Prtry field continues to have 35 characters. Removed
ClrChanl type=ClearingChannel2Code LclInstrm type=LocalInstrument1Choice
CtgyPurp type=PaymentCategoryPurpose1Code
LclInstrm type=LocalInstrument2Choice. The type of the ‘Cd” is changed from ExternalLocalInstrumentCode to ExternalLocalInstrument1Code. These type are constructed the same. CtgyPurp type= CategoryPurpose1Choice. The defined set is externalized.
5.2 CashAccount7 versus CashAccount16 pain.001.001.02
pain.001.001.03
Id type=AccountIdentification3Choice
Id type=AccountIdentification4Choice. Type changed described below. Unchanged
Tp type=CashAccountType2 Ccy type=CurrencyCode
Nm type=Max70Text
Ccy type=ActiveOrHistoricCurrencyCode. The name and type is changed, but the structure of the type is the same. Unchanged
5.3 AccountIdentification3Choice versus AccountIdentification4Choice The pain.001.001.02 element allowed four different types of account identification. With the pain.001.001.03 the account identification is by default IBAN, and when this is not applicable it can be any type. This is defined by the tag ‘Othr’. pain.001.001.02
pain.001.001.03
IBAN type=IBANIdentifier
IBAN type=IBAN2007Identifier. Almost the same as the previous type, but allows upper case characters in the first 2 positions only. This allows the first 2 characters to be the
_______________________________________________________________________________________________________________ Architome B.V. Version 20100206 Mennonietenbuurt 39 1427 AZ Amstelhoek
Page | 5
Differences between pain.001.001.02 and pain.001.001.03
© 2009 Architome BV
BBAN type=BBANIdentifier
same as ISO 3166-1-alpha-2 code, defining the country code. Removed
UPIC type=UPICIdentifier
Removed
PrtryAcct type=SimpleIdentificationInformation2
Removed Othr type=GenericAccountIdentification1. Added, Can be used when another identification is necessary then IBAN. The type links to an external table defining the type of the identification.
5.4 BranchAndFinancialInstitutionIdentification3 versus BranchAndFinancialInstitutionIdentification4 Type FinancialInstitutionIdentification5Choice is changed into FinancialInstitutionIdentification7. The most used identification for a financial institution, BIC, is kept the same. The other elements are changed. Name and address are split, and the ‘other’ identification possibility links to an externalized table. The change in branch identification is according to the other changes. The name is increased to 140 characters. The address is changed as described in section Person and organization identification. pain.001.001.02
pain.001.001.03
FinInstnId type= FinancialInstitutionIdentification5Choice
FinInstnId type=FinancialInstitutionIdentification7
BrnchId type=BranchData
BrnchId type=BranchData2
6 Creditor transaction information Each debtor transaction has one or more creditor transactions. The type of the creditor transaction is changed from CreditTransferTransactionInformation1 to CreditTransferTransactionInformation10. Some types are changed according the changes described above, like organization and person identification and address. The elements are the same in both versions. pain.001.001.02
pain.001.001.03
PmtId type=PaymentIdentification1
Unchanged
PmtTpInf type=PaymentTypeInformation1
PmtTpInf type=PaymentTypeInformation19. The difference is described above. Amt type=AmountType3Choice. The type is change but the content is the same.
Amt type=AmountType2Choice
_______________________________________________________________________________________________________________ Architome B.V. Version 20100206 Mennonietenbuurt 39 1427 AZ Amstelhoek
Page | 6
Differences between pain.001.001.02 and pain.001.001.03
XchgRateInf type=ExchangeRateInformation1 ChrgBr type=ChargeBearerType1Code ChqInstr type=Cheque5
UltmtDbtr type=PartyIdentification8 IntrmyAgt1 type= BranchAndFinancialInstitutionIdentificatio n3 IntrmyAgt1Acct type=CashAccount7 IntrmyAgt2 type= BranchAndFinancialInstitutionIdentificatio n3 IntrmyAgt2Acct type=CashAccount7 IntrmyAgt3 type= BranchAndFinancialInstitutionIdentificatio n3 IntrmyAgt3Acct type=CashAccount7 CdtrAgt type= BranchAndFinancialInstitutionIdentificatio n3 CdtrAgtAcct type=CashAccount7 Cdtr type=PartyIdentification8 CdtrAcct type=CashAccount7 UltmtCdtr type=PartyIdentification8 InstrForCdtrAgt type= InstructionForCreditorAgent1 InstrForDbtrAgt Purp type=Purpose1Choice
RgltryRptg type=RegulatoryReporting2
© 2009 Architome BV
Unchanged Unchanged ChqInstr type=Cheque6. The addresses in this element are changed from NameAndAddress3 to NameAndAddress10. UltmtDbtr type=PartyIdentification32. The difference is described above. IntrmyAgt1 type=BranchAndFinancialInstitutionIdentificatio n4. The difference is described above. IntrmyAgt1Acct type=CashAccount16. The difference is described above. IntrmyAgt2 type=BranchAndFinancialInstitutionIdentificatio n4. The difference is described above. IntrmyAgt2Acct type=CashAccount16. The difference is described above. IntrmyAgt3 type=BranchAndFinancialInstitutionIdentificatio n4. The difference is described above. IntrmyAgt3Acct type=CashAccount16. The difference is described above. CdtrAgt type=BranchAndFinancialInstitutionIdentificatio n4. The difference is described above. CdtrAgtAcct type=CashAccount16. The difference is described above. Cdtr type=PartyIdentification32. The difference is described above. CdtrAcct type=CashAccount16. The difference is described above. UltmtCdtr type=PartyIdentification32. The difference is described above. Unchanged Unchanged Purp type=Purpose2Choice. The length of the code is brought back from 35 to 4. The Prtry continues to be the same. RgltryRptg type=RegulatoryReporting3. The element had only a single regulatory reporting structure. The new type has n element. The structure is extended with more elements.
_______________________________________________________________________________________________________________ Architome B.V. Version 20100206 Mennonietenbuurt 39 1427 AZ Amstelhoek
Page | 7
Differences between pain.001.001.02 and pain.001.001.03
Tax type=TaxInformation2
RltdRmtInf type=RemittanceLocation1
RmtInf type=RemittanceInformation1
© 2009 Architome BV
Tax type=TaxInformation3. The type is changes a lot, allowing more and more detailed information. RltdRmtInf type=RemittanceLocation2. The types within this element allows more characters. RmtInf type=RemittanceInformation5. The unstructured information is kept the same. The structured remittance information is described below.
6.1 Structured Remittance information The structured remittance information type StructuredRemittanceInformation6 type is changed into StructuredRemittanceInformation7. pain.001.001.02
pain.001.001.03
RfrdDocInf type=ReferredDocumentInformation1
RfrdDocInf type=ReferredDocumentInformation3. The types and names of the tags in the element are changed. Date is added to the element. Removed
RfrdDocRltdDt type=ISODate RfrdDocAmt type=ReferredDocumentAmount1Choice
CdtrRefInf type=CreditorReferenceInformation1 Invcr type=PartyIdentification8 Invcee type=PartyIdentification8 AddtlRmtInf type=Max140Text
RfrdDocAmt type=RemittanceAmount1. The amount types are changed into ActiveOrHistoricCurrencyAnd Amount., as other changes as well. CdtrRefInf type=CreditorReferenceInformation2. Small changes in naming and type of tags. Invcr type=PartyIdentification32. The difference is described above. Invcee type=PartyIdentification32. The difference is described above. AddtlRmtInf type=Max140Text
_______________________________________________________________________________________________________________ Architome B.V. Version 20100206 Mennonietenbuurt 39 1427 AZ Amstelhoek
Page | 8