sepa_king_codeur 0.12.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (67) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +9 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +37 -0
  5. data/CONTRIBUTING.md +38 -0
  6. data/Gemfile +2 -0
  7. data/LICENSE.txt +22 -0
  8. data/README.md +297 -0
  9. data/Rakefile +6 -0
  10. data/gemfiles/Gemfile-activemodel-3.1.x +5 -0
  11. data/gemfiles/Gemfile-activemodel-3.2.x +5 -0
  12. data/gemfiles/Gemfile-activemodel-4.0.x +5 -0
  13. data/gemfiles/Gemfile-activemodel-4.1.x +5 -0
  14. data/gemfiles/Gemfile-activemodel-4.2.x +5 -0
  15. data/gemfiles/Gemfile-activemodel-5.0.x +5 -0
  16. data/gemfiles/Gemfile-activemodel-5.1.x +5 -0
  17. data/gemfiles/Gemfile-activemodel-5.2.x +5 -0
  18. data/gemfiles/Gemfile-activemodel-6.0.x +5 -0
  19. data/lib/schema/pain.001.001.03.ch.02.xsd +1212 -0
  20. data/lib/schema/pain.001.001.03.xsd +921 -0
  21. data/lib/schema/pain.001.002.03.xsd +450 -0
  22. data/lib/schema/pain.001.003.03.xsd +474 -0
  23. data/lib/schema/pain.008.001.02.xsd +879 -0
  24. data/lib/schema/pain.008.002.02.xsd +597 -0
  25. data/lib/schema/pain.008.003.02.xsd +614 -0
  26. data/lib/sepa_king.rb +19 -0
  27. data/lib/sepa_king/account.rb +19 -0
  28. data/lib/sepa_king/account/creditor_account.rb +8 -0
  29. data/lib/sepa_king/account/creditor_address.rb +37 -0
  30. data/lib/sepa_king/account/debtor_account.rb +5 -0
  31. data/lib/sepa_king/account/debtor_address.rb +37 -0
  32. data/lib/sepa_king/converter.rb +51 -0
  33. data/lib/sepa_king/error.rb +4 -0
  34. data/lib/sepa_king/message.rb +169 -0
  35. data/lib/sepa_king/message/credit_transfer.rb +137 -0
  36. data/lib/sepa_king/message/direct_debit.rb +207 -0
  37. data/lib/sepa_king/transaction.rb +56 -0
  38. data/lib/sepa_king/transaction/credit_transfer_transaction.rb +31 -0
  39. data/lib/sepa_king/transaction/direct_debit_transaction.rb +56 -0
  40. data/lib/sepa_king/validator.rb +57 -0
  41. data/lib/sepa_king/version.rb +3 -0
  42. data/sepa_king.gemspec +33 -0
  43. data/spec/account_spec.rb +42 -0
  44. data/spec/converter_spec.rb +74 -0
  45. data/spec/credit_transfer_spec.rb +520 -0
  46. data/spec/credit_transfer_transaction_spec.rb +74 -0
  47. data/spec/creditor_account_spec.rb +23 -0
  48. data/spec/debtor_account_spec.rb +12 -0
  49. data/spec/debtor_address_spec.rb +12 -0
  50. data/spec/direct_debit_spec.rb +657 -0
  51. data/spec/direct_debit_transaction_spec.rb +69 -0
  52. data/spec/examples/pain.001.001.03.ch.02.xml +172 -0
  53. data/spec/examples/pain.001.001.03.xml +89 -0
  54. data/spec/examples/pain.001.002.03.xml +89 -0
  55. data/spec/examples/pain.001.003.03.xml +89 -0
  56. data/spec/examples/pain.008.002.02.xml +134 -0
  57. data/spec/examples/pain.008.003.02.xml +134 -0
  58. data/spec/message_spec.rb +128 -0
  59. data/spec/spec_helper.rb +33 -0
  60. data/spec/support/active_model.rb +30 -0
  61. data/spec/support/custom_matcher.rb +60 -0
  62. data/spec/support/factories.rb +24 -0
  63. data/spec/support/validations.rb +27 -0
  64. data/spec/transaction_spec.rb +134 -0
  65. data/spec/validation_spec.rb +25 -0
  66. data/spec/validator_spec.rb +99 -0
  67. metadata +250 -0
@@ -0,0 +1,450 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <!-- Mit XMLSpy v2008 rel. 2 sp2 (http://www.altova.com) von benutzerservice benutzerservice (SIZ GmbH) bearbeitet -->
3
+ <!--Generated by SWIFTStandards Workstation (build:R6.1.0.2) on 2009 Jan 08 17:30:53-->
4
+ <xs:schema xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.002.03" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:iso:std:iso:20022:tech:xsd:pain.001.002.03" elementFormDefault="qualified">
5
+ <xs:element name="Document" type="Document"/>
6
+ <xs:complexType name="AccountIdentificationSEPA">
7
+ <xs:sequence>
8
+ <xs:element name="IBAN" type="IBAN2007Identifier"/>
9
+ </xs:sequence>
10
+ </xs:complexType>
11
+ <xs:simpleType name="ActiveOrHistoricCurrencyAndAmount_SimpleTypeSEPA">
12
+ <xs:restriction base="xs:decimal">
13
+ <xs:minInclusive value="0.01"/>
14
+ <xs:maxInclusive value="999999999.99"/>
15
+ <xs:fractionDigits value="2"/>
16
+ <xs:totalDigits value="11"/>
17
+ </xs:restriction>
18
+ </xs:simpleType>
19
+ <xs:simpleType name="ActiveOrHistoricCurrencyCode">
20
+ <xs:restriction base="xs:string">
21
+ <xs:pattern value="[A-Z]{3,3}"/>
22
+ </xs:restriction>
23
+ </xs:simpleType>
24
+ <xs:complexType name="ActiveOrHistoricCurrencyAndAmountSEPA">
25
+ <xs:simpleContent>
26
+ <xs:extension base="ActiveOrHistoricCurrencyAndAmount_SimpleTypeSEPA">
27
+ <xs:attribute name="Ccy" type="ActiveOrHistoricCurrencyCodeEUR" use="required"/>
28
+ </xs:extension>
29
+ </xs:simpleContent>
30
+ </xs:complexType>
31
+ <xs:simpleType name="ActiveOrHistoricCurrencyCodeEUR">
32
+ <xs:restriction base="xs:string">
33
+ <xs:enumeration value="EUR"/>
34
+ </xs:restriction>
35
+ </xs:simpleType>
36
+ <xs:complexType name="AmountTypeSEPA">
37
+ <xs:sequence>
38
+ <xs:element name="InstdAmt" type="ActiveOrHistoricCurrencyAndAmountSEPA"/>
39
+ </xs:sequence>
40
+ </xs:complexType>
41
+ <xs:simpleType name="AnyBICIdentifier">
42
+ <xs:restriction base="xs:string">
43
+ <xs:pattern value="[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}"/>
44
+ </xs:restriction>
45
+ </xs:simpleType>
46
+ <xs:simpleType name="BICIdentifier">
47
+ <xs:restriction base="xs:string">
48
+ <xs:pattern value="[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}"/>
49
+ </xs:restriction>
50
+ </xs:simpleType>
51
+ <xs:simpleType name="BatchBookingIndicator">
52
+ <xs:restriction base="xs:boolean"/>
53
+ </xs:simpleType>
54
+ <xs:complexType name="BranchAndFinancialInstitutionIdentificationSEPA1">
55
+ <xs:sequence>
56
+ <xs:element name="FinInstnId" type="FinancialInstitutionIdentificationSEPA1"/>
57
+ </xs:sequence>
58
+ </xs:complexType>
59
+ <xs:complexType name="CashAccountSEPA1">
60
+ <xs:sequence>
61
+ <xs:element name="Id" type="AccountIdentificationSEPA"/>
62
+ <xs:element name="Ccy" type="ActiveOrHistoricCurrencyCode" minOccurs="0"/>
63
+ </xs:sequence>
64
+ </xs:complexType>
65
+ <xs:complexType name="CashAccountSEPA2">
66
+ <xs:sequence>
67
+ <xs:element name="Id" type="AccountIdentificationSEPA"/>
68
+ </xs:sequence>
69
+ </xs:complexType>
70
+ <xs:complexType name="CategoryPurposeSEPA">
71
+ <xs:sequence>
72
+ <xs:element name="Cd" type="ExternalCategoryPurpose1Code"/>
73
+ </xs:sequence>
74
+ </xs:complexType>
75
+ <xs:simpleType name="ChargeBearerTypeSEPACode">
76
+ <xs:restriction base="xs:string">
77
+ <xs:enumeration value="SLEV"/>
78
+ </xs:restriction>
79
+ </xs:simpleType>
80
+ <xs:simpleType name="CountryCode">
81
+ <xs:restriction base="xs:string">
82
+ <xs:pattern value="[A-Z]{2,2}"/>
83
+ </xs:restriction>
84
+ </xs:simpleType>
85
+ <xs:complexType name="CreditTransferTransactionInformationSCT">
86
+ <xs:sequence>
87
+ <xs:element name="PmtId" type="PaymentIdentificationSEPA"/>
88
+ <xs:element name="PmtTpInf" type="PaymentTypeInformationSCT2" minOccurs="0">
89
+ <xs:annotation>
90
+ <xs:documentation>If used, it is recommended to be used at ‘Payment Information’ level and not at ‘Credit Transfer Transaction Information’ level.</xs:documentation>
91
+ </xs:annotation>
92
+ </xs:element>
93
+ <xs:element name="Amt" type="AmountTypeSEPA"/>
94
+ <xs:element name="ChrgBr" type="ChargeBearerTypeSEPACode" minOccurs="0">
95
+ <xs:annotation>
96
+ <xs:documentation>It is recommended that this element be specified at ‘Payment Information’ level.</xs:documentation>
97
+ </xs:annotation>
98
+ </xs:element>
99
+ <xs:element name="UltmtDbtr" type="PartyIdentificationSEPA1" minOccurs="0">
100
+ <xs:annotation>
101
+ <xs:documentation>This data element may be present either at ‘Payment Information’ or at ‘Credit Transfer Transaction Information’ level.</xs:documentation>
102
+ </xs:annotation>
103
+ </xs:element>
104
+ <xs:element name="CdtrAgt" type="BranchAndFinancialInstitutionIdentificationSEPA1"/>
105
+ <xs:element name="Cdtr" type="PartyIdentificationSEPA2"/>
106
+ <xs:element name="CdtrAcct" type="CashAccountSEPA2"/>
107
+ <xs:element name="UltmtCdtr" type="PartyIdentificationSEPA1" minOccurs="0"/>
108
+ <xs:element name="Purp" type="PurposeSEPA" minOccurs="0"/>
109
+ <xs:element name="RmtInf" type="RemittanceInformationSEPA1Choice" minOccurs="0"/>
110
+ </xs:sequence>
111
+ </xs:complexType>
112
+ <xs:complexType name="CreditorReferenceInformationSEPA1">
113
+ <xs:sequence>
114
+ <xs:element name="Tp" type="CreditorReferenceTypeSEPA"/>
115
+ <xs:element name="Ref" type="Max35Text">
116
+ <xs:annotation>
117
+ <xs:documentation>If a Creditor Reference contains a check digit, the receiving bank is not required to validate this.
118
+ If the receiving bank validates the check digit and if this validation fails, the bank may continue its processing and send the transaction to the next party in the chain.
119
+ RF Creditor Reference may be used (ISO 11649).</xs:documentation>
120
+ </xs:annotation>
121
+ </xs:element>
122
+ </xs:sequence>
123
+ </xs:complexType>
124
+ <xs:complexType name="CreditorReferenceTypeSEPA">
125
+ <xs:sequence>
126
+ <xs:element name="CdOrPrtry" type="CreditorReferenceTypeCodeSEPA"/>
127
+ <xs:element name="Issr" type="Max35Text" minOccurs="0"/>
128
+ </xs:sequence>
129
+ </xs:complexType>
130
+ <xs:complexType name="CreditorReferenceTypeCodeSEPA">
131
+ <xs:sequence>
132
+ <xs:element name="Cd" type="DocumentType3CodeSEPA"/>
133
+ </xs:sequence>
134
+ </xs:complexType>
135
+ <xs:complexType name="CustomerCreditTransferInitiationV03">
136
+ <xs:sequence>
137
+ <xs:element name="GrpHdr" type="GroupHeaderSCT"/>
138
+ <xs:element name="PmtInf" type="PaymentInstructionInformationSCT" maxOccurs="unbounded"/>
139
+ </xs:sequence>
140
+ </xs:complexType>
141
+ <xs:complexType name="DateAndPlaceOfBirth">
142
+ <xs:sequence>
143
+ <xs:element name="BirthDt" type="ISODate"/>
144
+ <xs:element name="PrvcOfBirth" type="Max35Text" minOccurs="0"/>
145
+ <xs:element name="CityOfBirth" type="Max35Text"/>
146
+ <xs:element name="CtryOfBirth" type="CountryCode"/>
147
+ </xs:sequence>
148
+ </xs:complexType>
149
+ <xs:simpleType name="DecimalNumber">
150
+ <xs:restriction base="xs:decimal">
151
+ <xs:fractionDigits value="17"/>
152
+ <xs:totalDigits value="18"/>
153
+ </xs:restriction>
154
+ </xs:simpleType>
155
+ <xs:complexType name="Document">
156
+ <xs:sequence>
157
+ <xs:element name="CstmrCdtTrfInitn" type="CustomerCreditTransferInitiationV03"/>
158
+ </xs:sequence>
159
+ </xs:complexType>
160
+ <xs:simpleType name="DocumentType3CodeSEPA">
161
+ <xs:restriction base="xs:string">
162
+ <xs:enumeration value="SCOR"/>
163
+ </xs:restriction>
164
+ </xs:simpleType>
165
+ <xs:simpleType name="ExternalCategoryPurpose1Code">
166
+ <xs:restriction base="xs:string">
167
+ <xs:minLength value="1"/>
168
+ <xs:maxLength value="4"/>
169
+ </xs:restriction>
170
+ </xs:simpleType>
171
+ <xs:simpleType name="ExternalOrganisationIdentification1Code">
172
+ <xs:restriction base="xs:string">
173
+ <xs:minLength value="1"/>
174
+ <xs:maxLength value="4"/>
175
+ </xs:restriction>
176
+ </xs:simpleType>
177
+ <xs:simpleType name="ExternalPersonIdentification1Code">
178
+ <xs:restriction base="xs:string">
179
+ <xs:minLength value="1"/>
180
+ <xs:maxLength value="4"/>
181
+ </xs:restriction>
182
+ </xs:simpleType>
183
+ <xs:simpleType name="ExternalPurpose1Code">
184
+ <xs:restriction base="xs:string">
185
+ <xs:minLength value="1"/>
186
+ <xs:maxLength value="4"/>
187
+ </xs:restriction>
188
+ </xs:simpleType>
189
+ <xs:simpleType name="ServiceLevelSEPACode">
190
+ <xs:restriction base="xs:string">
191
+ <xs:enumeration value="SEPA"/>
192
+ </xs:restriction>
193
+ </xs:simpleType>
194
+ <xs:complexType name="FinancialInstitutionIdentificationSEPA1">
195
+ <xs:sequence>
196
+ <xs:element name="BIC" type="BICIdentifier"/>
197
+ </xs:sequence>
198
+ </xs:complexType>
199
+ <xs:complexType name="GenericOrganisationIdentification1">
200
+ <xs:sequence>
201
+ <xs:element name="Id" type="Max35Text"/>
202
+ <xs:element name="SchmeNm" type="OrganisationIdentificationSchemeName1Choice" minOccurs="0"/>
203
+ <xs:element name="Issr" type="Max35Text" minOccurs="0"/>
204
+ </xs:sequence>
205
+ </xs:complexType>
206
+ <xs:complexType name="GenericPersonIdentification1">
207
+ <xs:sequence>
208
+ <xs:element name="Id" type="Max35Text"/>
209
+ <xs:element name="SchmeNm" type="PersonIdentificationSchemeName1Choice" minOccurs="0"/>
210
+ <xs:element name="Issr" type="Max35Text" minOccurs="0"/>
211
+ </xs:sequence>
212
+ </xs:complexType>
213
+ <xs:complexType name="GroupHeaderSCT">
214
+ <xs:sequence>
215
+ <xs:element name="MsgId" type="RestrictedIdentificationSEPA1"/>
216
+ <xs:element name="CreDtTm" type="ISODateTime"/>
217
+ <xs:element name="NbOfTxs" type="Max15NumericText"/>
218
+ <xs:element name="CtrlSum" type="DecimalNumber" minOccurs="0"/>
219
+ <xs:element name="InitgPty" type="PartyIdentificationSEPA1"/>
220
+ </xs:sequence>
221
+ </xs:complexType>
222
+ <xs:simpleType name="IBAN2007Identifier">
223
+ <xs:restriction base="xs:string">
224
+ <xs:pattern value="[A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}"/>
225
+ </xs:restriction>
226
+ </xs:simpleType>
227
+ <xs:simpleType name="ISODate">
228
+ <xs:restriction base="xs:date"/>
229
+ </xs:simpleType>
230
+ <xs:simpleType name="ISODateTime">
231
+ <xs:restriction base="xs:dateTime"/>
232
+ </xs:simpleType>
233
+ <xs:simpleType name="Max140Text">
234
+ <xs:restriction base="xs:string">
235
+ <xs:minLength value="1"/>
236
+ <xs:maxLength value="140"/>
237
+ </xs:restriction>
238
+ </xs:simpleType>
239
+ <xs:simpleType name="Max15NumericText">
240
+ <xs:restriction base="xs:string">
241
+ <xs:pattern value="[0-9]{1,15}"/>
242
+ </xs:restriction>
243
+ </xs:simpleType>
244
+ <xs:simpleType name="Max35Text">
245
+ <xs:restriction base="xs:string">
246
+ <xs:minLength value="1"/>
247
+ <xs:maxLength value="35"/>
248
+ </xs:restriction>
249
+ </xs:simpleType>
250
+ <xs:simpleType name="Max70Text">
251
+ <xs:restriction base="xs:string">
252
+ <xs:minLength value="1"/>
253
+ <xs:maxLength value="70"/>
254
+ </xs:restriction>
255
+ </xs:simpleType>
256
+ <xs:complexType name="OrganisationIdentificationSEPAChoice">
257
+ <xs:sequence>
258
+ <xs:choice>
259
+ <xs:element name="BICOrBEI" type="AnyBICIdentifier"/>
260
+ <xs:element name="Othr" type="GenericOrganisationIdentification1"/>
261
+ </xs:choice>
262
+ </xs:sequence>
263
+ </xs:complexType>
264
+ <xs:complexType name="OrganisationIdentificationSchemeName1Choice">
265
+ <xs:sequence>
266
+ <xs:choice>
267
+ <xs:element name="Cd" type="ExternalOrganisationIdentification1Code"/>
268
+ <xs:element name="Prtry" type="Max35Text"/>
269
+ </xs:choice>
270
+ </xs:sequence>
271
+ </xs:complexType>
272
+ <xs:complexType name="PartySEPAChoice">
273
+ <xs:sequence>
274
+ <xs:choice>
275
+ <xs:element name="OrgId" type="OrganisationIdentificationSEPAChoice">
276
+ <xs:annotation>
277
+ <xs:documentation>Either ‘BIC or BEI’ or one
278
+ occurrence of ‘Other’ is allowed.</xs:documentation>
279
+ </xs:annotation>
280
+ </xs:element>
281
+ <xs:element name="PrvtId" type="PersonIdentificationSEPA1Choice">
282
+ <xs:annotation>
283
+ <xs:documentation>Either ‘Date and Place of Birth’ or one occurrence of ‘Other’ is allowed.</xs:documentation>
284
+ </xs:annotation>
285
+ </xs:element>
286
+ </xs:choice>
287
+ </xs:sequence>
288
+ </xs:complexType>
289
+ <xs:complexType name="PartyIdentificationSEPA1">
290
+ <xs:sequence>
291
+ <xs:element name="Nm" type="Max70Text" minOccurs="0">
292
+ <xs:annotation>
293
+ <xs:documentation>‘Name’ is limited to 70 characters
294
+ in length.</xs:documentation>
295
+ </xs:annotation>
296
+ </xs:element>
297
+ <xs:element name="Id" type="PartySEPAChoice" minOccurs="0"/>
298
+ </xs:sequence>
299
+ </xs:complexType>
300
+ <xs:complexType name="PartyIdentificationSEPA2">
301
+ <xs:sequence>
302
+ <xs:element name="Nm" type="Max70Text">
303
+ <xs:annotation>
304
+ <xs:documentation>‘Name’ is limited to 70 characters
305
+ in length.</xs:documentation>
306
+ </xs:annotation>
307
+ </xs:element>
308
+ <xs:element name="PstlAdr" type="PostalAddressSEPA" minOccurs="0"/>
309
+ <xs:element name="Id" type="PartySEPAChoice" minOccurs="0"/>
310
+ </xs:sequence>
311
+ </xs:complexType>
312
+ <xs:complexType name="PaymentIdentificationSEPA">
313
+ <xs:sequence>
314
+ <xs:element name="InstrId" type="RestrictedIdentificationSEPA1" minOccurs="0"/>
315
+ <xs:element name="EndToEndId" type="RestrictedIdentificationSEPA1"/>
316
+ </xs:sequence>
317
+ </xs:complexType>
318
+ <xs:complexType name="PaymentInstructionInformationSCT">
319
+ <xs:sequence>
320
+ <xs:element name="PmtInfId" type="RestrictedIdentificationSEPA1"/>
321
+ <xs:element name="PmtMtd" type="PaymentMethodSCTCode">
322
+ <xs:annotation>
323
+ <xs:documentation>Only ‘TRF’ is allowed.</xs:documentation>
324
+ </xs:annotation>
325
+ </xs:element>
326
+ <xs:element name="BtchBookg" type="BatchBookingIndicator" minOccurs="0">
327
+ <xs:annotation>
328
+ <xs:documentation>If present and contains ‘true’, batch booking is requested. If present and contains ‘false’, booking per transaction is requested. If element is not present, pre-agreed customer-to-bank conditions apply.</xs:documentation>
329
+ </xs:annotation>
330
+ </xs:element>
331
+ <xs:element name="NbOfTxs" type="Max15NumericText" minOccurs="0"/>
332
+ <xs:element name="CtrlSum" type="DecimalNumber" minOccurs="0"/>
333
+ <xs:element name="PmtTpInf" type="PaymentTypeInformationSCT1" minOccurs="0">
334
+ <xs:annotation>
335
+ <xs:documentation>If used, it is recommended to be used only at ‘Payment Information’ level and not at Credit Transfer Transaction Information’ level.
336
+ When Instruction Priority is to be used, ‘Payment Type Information’ must be present at ‘Payment Information’ level. </xs:documentation>
337
+ </xs:annotation>
338
+ </xs:element>
339
+ <xs:element name="ReqdExctnDt" type="ISODate"/>
340
+ <xs:element name="Dbtr" type="PartyIdentificationSEPA2"/>
341
+ <xs:element name="DbtrAcct" type="CashAccountSEPA1"/>
342
+ <xs:element name="DbtrAgt" type="BranchAndFinancialInstitutionIdentificationSEPA1"/>
343
+ <xs:element name="UltmtDbtr" type="PartyIdentificationSEPA1" minOccurs="0">
344
+ <xs:annotation>
345
+ <xs:documentation>This data element may be present either at ‘Payment Information’ or at ‘Credit Transfer Transaction Information’ level.</xs:documentation>
346
+ </xs:annotation>
347
+ </xs:element>
348
+ <xs:element name="ChrgBr" type="ChargeBearerTypeSEPACode" minOccurs="0">
349
+ <xs:annotation>
350
+ <xs:documentation>It is recommended that this element be specified at ‘Payment Information’ level.</xs:documentation>
351
+ </xs:annotation>
352
+ </xs:element>
353
+ <xs:element name="CdtTrfTxInf" type="CreditTransferTransactionInformationSCT" maxOccurs="unbounded"/>
354
+ </xs:sequence>
355
+ </xs:complexType>
356
+ <xs:simpleType name="PaymentMethodSCTCode">
357
+ <xs:restriction base="xs:string">
358
+ <xs:enumeration value="TRF"/>
359
+ </xs:restriction>
360
+ </xs:simpleType>
361
+ <xs:complexType name="PaymentTypeInformationSCT1">
362
+ <xs:sequence>
363
+ <xs:element name="InstrPrty" type="Priority2Code" minOccurs="0">
364
+ <xs:annotation>
365
+ <xs:documentation>If present, pre-agreed customer-to-bank conditions apply.</xs:documentation>
366
+ </xs:annotation>
367
+ </xs:element>
368
+ <xs:element name="SvcLvl" type="ServiceLevelSEPA"/>
369
+ <xs:element name="CtgyPurp" type="CategoryPurposeSEPA" minOccurs="0">
370
+ <xs:annotation>
371
+ <xs:documentation>Depending on the agreement between the Originator and the Originator Bank, ‘Category Purpose’ may be forwarded to the Beneficiary Bank.</xs:documentation>
372
+ </xs:annotation>
373
+ </xs:element>
374
+ </xs:sequence>
375
+ </xs:complexType>
376
+ <xs:complexType name="PaymentTypeInformationSCT2">
377
+ <xs:sequence>
378
+ <xs:element name="SvcLvl" type="ServiceLevelSEPA"/>
379
+ <xs:element name="CtgyPurp" type="CategoryPurposeSEPA" minOccurs="0">
380
+ <xs:annotation>
381
+ <xs:documentation>Depending on the agreement between the Originator and the Originator Bank, ‘Category Purpose’ may be forwarded to the Beneficiary Bank.</xs:documentation>
382
+ </xs:annotation>
383
+ </xs:element>
384
+ </xs:sequence>
385
+ </xs:complexType>
386
+ <xs:complexType name="PersonIdentificationSEPA1Choice">
387
+ <xs:sequence>
388
+ <xs:choice>
389
+ <xs:element name="DtAndPlcOfBirth" type="DateAndPlaceOfBirth"/>
390
+ <xs:element name="Othr" type="GenericPersonIdentification1"/>
391
+ </xs:choice>
392
+ </xs:sequence>
393
+ </xs:complexType>
394
+ <xs:complexType name="PersonIdentificationSchemeName1Choice">
395
+ <xs:sequence>
396
+ <xs:choice>
397
+ <xs:element name="Cd" type="ExternalPersonIdentification1Code"/>
398
+ <xs:element name="Prtry" type="Max35Text"/>
399
+ </xs:choice>
400
+ </xs:sequence>
401
+ </xs:complexType>
402
+ <xs:complexType name="PostalAddressSEPA">
403
+ <xs:sequence>
404
+ <xs:element name="Ctry" type="CountryCode" minOccurs="0"/>
405
+ <xs:element name="AdrLine" type="Max70Text" minOccurs="0" maxOccurs="2"/>
406
+ </xs:sequence>
407
+ </xs:complexType>
408
+ <xs:simpleType name="Priority2Code">
409
+ <xs:restriction base="xs:string">
410
+ <xs:enumeration value="HIGH"/>
411
+ <xs:enumeration value="NORM"/>
412
+ </xs:restriction>
413
+ </xs:simpleType>
414
+ <xs:complexType name="PurposeSEPA">
415
+ <xs:sequence>
416
+ <xs:element name="Cd" type="ExternalPurpose1Code">
417
+ <xs:annotation>
418
+ <xs:documentation>Only codes from the ISO 20022 ExternalPurposeCode list are allowed.</xs:documentation>
419
+ </xs:annotation>
420
+ </xs:element>
421
+ </xs:sequence>
422
+ </xs:complexType>
423
+ <xs:complexType name="RemittanceInformationSEPA1Choice">
424
+ <xs:sequence>
425
+ <xs:choice>
426
+ <xs:element name="Ustrd" type="Max140Text"/>
427
+ <xs:element name="Strd" type="StructuredRemittanceInformationSEPA1"/>
428
+ </xs:choice>
429
+ </xs:sequence>
430
+ </xs:complexType>
431
+ <xs:complexType name="ServiceLevelSEPA">
432
+ <xs:sequence>
433
+ <xs:element name="Cd" type="ServiceLevelSEPACode"/>
434
+ </xs:sequence>
435
+ </xs:complexType>
436
+ <xs:complexType name="StructuredRemittanceInformationSEPA1">
437
+ <xs:sequence>
438
+ <xs:element name="CdtrRefInf" type="CreditorReferenceInformationSEPA1" minOccurs="0">
439
+ <xs:annotation>
440
+ <xs:documentation>When present, the receiving bank is not obliged to validate the the reference information. </xs:documentation>
441
+ </xs:annotation>
442
+ </xs:element>
443
+ </xs:sequence>
444
+ </xs:complexType>
445
+ <xs:simpleType name="RestrictedIdentificationSEPA1">
446
+ <xs:restriction base="xs:string">
447
+ <xs:pattern value="([A-Za-z0-9]|[\+|\?|/|\-|:|\(|\)|\.|,|'| ]){1,35}"/>
448
+ </xs:restriction>
449
+ </xs:simpleType>
450
+ </xs:schema>
@@ -0,0 +1,474 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <!-- Version gemäß DFÜ-Abkommen Anlage 3, Version 2.7, gültig ab November 2013 mit Umsetzung von IBAN Only gemäß EPC SCT 7.0, zudem Erweiterung Service Level auf Externe Codeliste-->
3
+ <!-- Mit XMLSpy v2008 am 29.11.2012 von der SIZ GmbH bearbeitet -->
4
+ <xs:schema xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.003.03" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:iso:std:iso:20022:tech:xsd:pain.001.003.03" elementFormDefault="qualified">
5
+ <xs:element name="Document" type="Document"/>
6
+ <xs:complexType name="AccountIdentificationSEPA">
7
+ <xs:sequence>
8
+ <xs:element name="IBAN" type="IBAN2007Identifier"/>
9
+ </xs:sequence>
10
+ </xs:complexType>
11
+ <xs:simpleType name="ActiveOrHistoricCurrencyAndAmount_SimpleTypeSEPA">
12
+ <xs:restriction base="xs:decimal">
13
+ <xs:minInclusive value="0.01"/>
14
+ <xs:maxInclusive value="999999999.99"/>
15
+ <xs:fractionDigits value="2"/>
16
+ <xs:totalDigits value="11"/>
17
+ </xs:restriction>
18
+ </xs:simpleType>
19
+ <xs:simpleType name="ActiveOrHistoricCurrencyCode">
20
+ <xs:restriction base="xs:string">
21
+ <xs:pattern value="[A-Z]{3,3}"/>
22
+ </xs:restriction>
23
+ </xs:simpleType>
24
+ <xs:complexType name="ActiveOrHistoricCurrencyAndAmountSEPA">
25
+ <xs:simpleContent>
26
+ <xs:extension base="ActiveOrHistoricCurrencyAndAmount_SimpleTypeSEPA">
27
+ <xs:attribute name="Ccy" type="ActiveOrHistoricCurrencyCodeEUR" use="required"/>
28
+ </xs:extension>
29
+ </xs:simpleContent>
30
+ </xs:complexType>
31
+ <xs:simpleType name="ActiveOrHistoricCurrencyCodeEUR">
32
+ <xs:restriction base="xs:string">
33
+ <xs:enumeration value="EUR"/>
34
+ </xs:restriction>
35
+ </xs:simpleType>
36
+ <xs:complexType name="AmountTypeSEPA">
37
+ <xs:sequence>
38
+ <xs:element name="InstdAmt" type="ActiveOrHistoricCurrencyAndAmountSEPA"/>
39
+ </xs:sequence>
40
+ </xs:complexType>
41
+ <xs:simpleType name="AnyBICIdentifier">
42
+ <xs:restriction base="xs:string">
43
+ <xs:pattern value="[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}"/>
44
+ </xs:restriction>
45
+ </xs:simpleType>
46
+ <xs:simpleType name="BICIdentifier">
47
+ <xs:restriction base="xs:string">
48
+ <xs:pattern value="[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}"/>
49
+ </xs:restriction>
50
+ </xs:simpleType>
51
+ <xs:simpleType name="BatchBookingIndicator">
52
+ <xs:restriction base="xs:boolean"/>
53
+ </xs:simpleType>
54
+ <xs:complexType name="BranchAndFinancialInstitutionIdentificationSEPA1">
55
+ <xs:sequence>
56
+ <xs:element name="FinInstnId" type="FinancialInstitutionIdentificationSEPA1"/>
57
+ </xs:sequence>
58
+ </xs:complexType>
59
+ <xs:complexType name="BranchAndFinancialInstitutionIdentificationSEPA3">
60
+ <xs:sequence>
61
+ <xs:element name="FinInstnId" type="FinancialInstitutionIdentificationSEPA3"/>
62
+ </xs:sequence>
63
+ </xs:complexType>
64
+ <xs:complexType name="CashAccountSEPA1">
65
+ <xs:sequence>
66
+ <xs:element name="Id" type="AccountIdentificationSEPA"/>
67
+ <xs:element name="Ccy" type="ActiveOrHistoricCurrencyCode" minOccurs="0"/>
68
+ </xs:sequence>
69
+ </xs:complexType>
70
+ <xs:complexType name="CashAccountSEPA2">
71
+ <xs:sequence>
72
+ <xs:element name="Id" type="AccountIdentificationSEPA"/>
73
+ </xs:sequence>
74
+ </xs:complexType>
75
+ <xs:complexType name="CategoryPurposeSEPA">
76
+ <xs:sequence>
77
+ <xs:element name="Cd" type="ExternalCategoryPurpose1Code"/>
78
+ </xs:sequence>
79
+ </xs:complexType>
80
+ <xs:simpleType name="ChargeBearerTypeSEPACode">
81
+ <xs:restriction base="xs:string">
82
+ <xs:enumeration value="SLEV"/>
83
+ </xs:restriction>
84
+ </xs:simpleType>
85
+ <xs:simpleType name="CountryCode">
86
+ <xs:restriction base="xs:string">
87
+ <xs:pattern value="[A-Z]{2,2}"/>
88
+ </xs:restriction>
89
+ </xs:simpleType>
90
+ <xs:complexType name="CreditTransferTransactionInformationSCT">
91
+ <xs:sequence>
92
+ <xs:element name="PmtId" type="PaymentIdentificationSEPA"/>
93
+ <xs:element name="PmtTpInf" type="PaymentTypeInformationSCT2" minOccurs="0">
94
+ <xs:annotation>
95
+ <xs:documentation>If used, it is recommended to be used at ‘Payment Information’ level and not at ‘Credit Transfer Transaction Information’ level.</xs:documentation>
96
+ </xs:annotation>
97
+ </xs:element>
98
+ <xs:element name="Amt" type="AmountTypeSEPA"/>
99
+ <xs:element name="ChrgBr" type="ChargeBearerTypeSEPACode" minOccurs="0">
100
+ <xs:annotation>
101
+ <xs:documentation>It is recommended that this element be specified at ‘Payment Information’ level.</xs:documentation>
102
+ </xs:annotation>
103
+ </xs:element>
104
+ <xs:element name="UltmtDbtr" type="PartyIdentificationSEPA1" minOccurs="0">
105
+ <xs:annotation>
106
+ <xs:documentation>This data element may be present either at ‘Payment Information’ or at ‘Credit Transfer Transaction Information’ level.</xs:documentation>
107
+ </xs:annotation>
108
+ </xs:element>
109
+ <xs:element name="CdtrAgt" type="BranchAndFinancialInstitutionIdentificationSEPA1" minOccurs="0"/>
110
+ <xs:element name="Cdtr" type="PartyIdentificationSEPA2"/>
111
+ <xs:element name="CdtrAcct" type="CashAccountSEPA2"/>
112
+ <xs:element name="UltmtCdtr" type="PartyIdentificationSEPA1" minOccurs="0"/>
113
+ <xs:element name="Purp" type="PurposeSEPA" minOccurs="0"/>
114
+ <xs:element name="RmtInf" type="RemittanceInformationSEPA1Choice" minOccurs="0"/>
115
+ </xs:sequence>
116
+ </xs:complexType>
117
+ <xs:complexType name="CreditorReferenceInformationSEPA1">
118
+ <xs:sequence>
119
+ <xs:element name="Tp" type="CreditorReferenceTypeSEPA"/>
120
+ <xs:element name="Ref" type="Max35Text">
121
+ <xs:annotation>
122
+ <xs:documentation>If a Creditor Reference contains a check digit, the receiving bank is not required to validate this.
123
+ If the receiving bank validates the check digit and if this validation fails, the bank may continue its processing and send the transaction to the next party in the chain.
124
+ RF Creditor Reference may be used (ISO 11649).</xs:documentation>
125
+ </xs:annotation>
126
+ </xs:element>
127
+ </xs:sequence>
128
+ </xs:complexType>
129
+ <xs:complexType name="CreditorReferenceTypeSEPA">
130
+ <xs:sequence>
131
+ <xs:element name="CdOrPrtry" type="CreditorReferenceTypeCodeSEPA"/>
132
+ <xs:element name="Issr" type="Max35Text" minOccurs="0"/>
133
+ </xs:sequence>
134
+ </xs:complexType>
135
+ <xs:complexType name="CreditorReferenceTypeCodeSEPA">
136
+ <xs:sequence>
137
+ <xs:element name="Cd" type="DocumentType3CodeSEPA"/>
138
+ </xs:sequence>
139
+ </xs:complexType>
140
+ <xs:complexType name="CustomerCreditTransferInitiationV03">
141
+ <xs:sequence>
142
+ <xs:element name="GrpHdr" type="GroupHeaderSCT"/>
143
+ <xs:element name="PmtInf" type="PaymentInstructionInformationSCT" maxOccurs="unbounded"/>
144
+ </xs:sequence>
145
+ </xs:complexType>
146
+ <xs:complexType name="DateAndPlaceOfBirth">
147
+ <xs:sequence>
148
+ <xs:element name="BirthDt" type="ISODate"/>
149
+ <xs:element name="PrvcOfBirth" type="Max35Text" minOccurs="0"/>
150
+ <xs:element name="CityOfBirth" type="Max35Text"/>
151
+ <xs:element name="CtryOfBirth" type="CountryCode"/>
152
+ </xs:sequence>
153
+ </xs:complexType>
154
+ <xs:simpleType name="DecimalNumber">
155
+ <xs:restriction base="xs:decimal">
156
+ <xs:fractionDigits value="17"/>
157
+ <xs:totalDigits value="18"/>
158
+ </xs:restriction>
159
+ </xs:simpleType>
160
+ <xs:complexType name="Document">
161
+ <xs:sequence>
162
+ <xs:element name="CstmrCdtTrfInitn" type="CustomerCreditTransferInitiationV03"/>
163
+ </xs:sequence>
164
+ </xs:complexType>
165
+ <xs:simpleType name="DocumentType3CodeSEPA">
166
+ <xs:restriction base="xs:string">
167
+ <xs:enumeration value="SCOR"/>
168
+ </xs:restriction>
169
+ </xs:simpleType>
170
+ <xs:simpleType name="ExternalCategoryPurpose1Code">
171
+ <xs:restriction base="xs:string">
172
+ <xs:minLength value="1"/>
173
+ <xs:maxLength value="4"/>
174
+ </xs:restriction>
175
+ </xs:simpleType>
176
+ <xs:simpleType name="ExternalOrganisationIdentification1Code">
177
+ <xs:restriction base="xs:string">
178
+ <xs:minLength value="1"/>
179
+ <xs:maxLength value="4"/>
180
+ </xs:restriction>
181
+ </xs:simpleType>
182
+ <xs:simpleType name="ExternalPersonIdentification1Code">
183
+ <xs:restriction base="xs:string">
184
+ <xs:minLength value="1"/>
185
+ <xs:maxLength value="4"/>
186
+ </xs:restriction>
187
+ </xs:simpleType>
188
+ <xs:simpleType name="ExternalPurpose1Code">
189
+ <xs:restriction base="xs:string">
190
+ <xs:minLength value="1"/>
191
+ <xs:maxLength value="4"/>
192
+ </xs:restriction>
193
+ </xs:simpleType>
194
+ <xs:simpleType name="ExternalServiceLevel1Code">
195
+ <xs:restriction base="xs:string">
196
+ <xs:minLength value="1"/>
197
+ <xs:maxLength value="4"/>
198
+ </xs:restriction>
199
+ </xs:simpleType>
200
+ <xs:complexType name="FinancialInstitutionIdentificationSEPA1">
201
+ <xs:sequence>
202
+ <xs:element name="BIC" type="BICIdentifier"/>
203
+ </xs:sequence>
204
+ </xs:complexType>
205
+ <xs:complexType name="FinancialInstitutionIdentificationSEPA3">
206
+ <xs:sequence>
207
+ <xs:choice>
208
+ <xs:element name="BIC" type="BICIdentifier"/>
209
+ <xs:element name="Othr" type="OthrIdentification"/>
210
+ </xs:choice>
211
+ </xs:sequence>
212
+ </xs:complexType>
213
+ <xs:complexType name="OthrIdentification">
214
+ <xs:sequence>
215
+ <xs:element name="Id" type="OthrIdentificationCode"/>
216
+ </xs:sequence>
217
+ </xs:complexType>
218
+ <xs:simpleType name="OthrIdentificationCode">
219
+ <xs:restriction base="xs:string">
220
+ <xs:enumeration value="NOTPROVIDED"/>
221
+ </xs:restriction>
222
+ </xs:simpleType>
223
+ <xs:complexType name="GenericOrganisationIdentification1">
224
+ <xs:sequence>
225
+ <xs:element name="Id" type="Max35Text"/>
226
+ <xs:element name="SchmeNm" type="OrganisationIdentificationSchemeName1Choice" minOccurs="0"/>
227
+ <xs:element name="Issr" type="Max35Text" minOccurs="0"/>
228
+ </xs:sequence>
229
+ </xs:complexType>
230
+ <xs:complexType name="GenericPersonIdentification1">
231
+ <xs:sequence>
232
+ <xs:element name="Id" type="Max35Text"/>
233
+ <xs:element name="SchmeNm" type="PersonIdentificationSchemeName1Choice" minOccurs="0"/>
234
+ <xs:element name="Issr" type="Max35Text" minOccurs="0"/>
235
+ </xs:sequence>
236
+ </xs:complexType>
237
+ <xs:complexType name="GroupHeaderSCT">
238
+ <xs:sequence>
239
+ <xs:element name="MsgId" type="RestrictedIdentificationSEPA1"/>
240
+ <xs:element name="CreDtTm" type="ISODateTime"/>
241
+ <xs:element name="NbOfTxs" type="Max15NumericText"/>
242
+ <xs:element name="CtrlSum" type="DecimalNumber" minOccurs="0"/>
243
+ <xs:element name="InitgPty" type="PartyIdentificationSEPA1"/>
244
+ </xs:sequence>
245
+ </xs:complexType>
246
+ <xs:simpleType name="IBAN2007Identifier">
247
+ <xs:restriction base="xs:string">
248
+ <xs:pattern value="[A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}"/>
249
+ </xs:restriction>
250
+ </xs:simpleType>
251
+ <xs:simpleType name="ISODate">
252
+ <xs:restriction base="xs:date"/>
253
+ </xs:simpleType>
254
+ <xs:simpleType name="ISODateTime">
255
+ <xs:restriction base="xs:dateTime"/>
256
+ </xs:simpleType>
257
+ <xs:simpleType name="Max140Text">
258
+ <xs:restriction base="xs:string">
259
+ <xs:minLength value="1"/>
260
+ <xs:maxLength value="140"/>
261
+ </xs:restriction>
262
+ </xs:simpleType>
263
+ <xs:simpleType name="Max15NumericText">
264
+ <xs:restriction base="xs:string">
265
+ <xs:pattern value="[0-9]{1,15}"/>
266
+ </xs:restriction>
267
+ </xs:simpleType>
268
+ <xs:simpleType name="Max35Text">
269
+ <xs:restriction base="xs:string">
270
+ <xs:minLength value="1"/>
271
+ <xs:maxLength value="35"/>
272
+ </xs:restriction>
273
+ </xs:simpleType>
274
+ <xs:simpleType name="Max70Text">
275
+ <xs:restriction base="xs:string">
276
+ <xs:minLength value="1"/>
277
+ <xs:maxLength value="70"/>
278
+ </xs:restriction>
279
+ </xs:simpleType>
280
+ <xs:complexType name="OrganisationIdentificationSEPAChoice">
281
+ <xs:sequence>
282
+ <xs:choice>
283
+ <xs:element name="BICOrBEI" type="AnyBICIdentifier"/>
284
+ <xs:element name="Othr" type="GenericOrganisationIdentification1"/>
285
+ </xs:choice>
286
+ </xs:sequence>
287
+ </xs:complexType>
288
+ <xs:complexType name="OrganisationIdentificationSchemeName1Choice">
289
+ <xs:sequence>
290
+ <xs:choice>
291
+ <xs:element name="Cd" type="ExternalOrganisationIdentification1Code"/>
292
+ <xs:element name="Prtry" type="Max35Text"/>
293
+ </xs:choice>
294
+ </xs:sequence>
295
+ </xs:complexType>
296
+ <xs:complexType name="PartySEPAChoice">
297
+ <xs:sequence>
298
+ <xs:choice>
299
+ <xs:element name="OrgId" type="OrganisationIdentificationSEPAChoice">
300
+ <xs:annotation>
301
+ <xs:documentation>Either ‘BIC or BEI’ or one
302
+ occurrence of ‘Other’ is allowed.</xs:documentation>
303
+ </xs:annotation>
304
+ </xs:element>
305
+ <xs:element name="PrvtId" type="PersonIdentificationSEPA1Choice">
306
+ <xs:annotation>
307
+ <xs:documentation>Either ‘Date and Place of Birth’ or one occurrence of ‘Other’ is allowed.</xs:documentation>
308
+ </xs:annotation>
309
+ </xs:element>
310
+ </xs:choice>
311
+ </xs:sequence>
312
+ </xs:complexType>
313
+ <xs:complexType name="PartyIdentificationSEPA1">
314
+ <xs:sequence>
315
+ <xs:element name="Nm" type="Max70Text" minOccurs="0">
316
+ <xs:annotation>
317
+ <xs:documentation>‘Name’ is limited to 70 characters
318
+ in length.</xs:documentation>
319
+ </xs:annotation>
320
+ </xs:element>
321
+ <xs:element name="Id" type="PartySEPAChoice" minOccurs="0"/>
322
+ </xs:sequence>
323
+ </xs:complexType>
324
+ <xs:complexType name="PartyIdentificationSEPA2">
325
+ <xs:sequence>
326
+ <xs:element name="Nm" type="Max70Text">
327
+ <xs:annotation>
328
+ <xs:documentation>‘Name’ is limited to 70 characters
329
+ in length.</xs:documentation>
330
+ </xs:annotation>
331
+ </xs:element>
332
+ <xs:element name="PstlAdr" type="PostalAddressSEPA" minOccurs="0"/>
333
+ <xs:element name="Id" type="PartySEPAChoice" minOccurs="0"/>
334
+ </xs:sequence>
335
+ </xs:complexType>
336
+ <xs:complexType name="PaymentIdentificationSEPA">
337
+ <xs:sequence>
338
+ <xs:element name="InstrId" type="RestrictedIdentificationSEPA1" minOccurs="0"/>
339
+ <xs:element name="EndToEndId" type="RestrictedIdentificationSEPA1"/>
340
+ </xs:sequence>
341
+ </xs:complexType>
342
+ <xs:complexType name="PaymentInstructionInformationSCT">
343
+ <xs:sequence>
344
+ <xs:element name="PmtInfId" type="RestrictedIdentificationSEPA1"/>
345
+ <xs:element name="PmtMtd" type="PaymentMethodSCTCode">
346
+ <xs:annotation>
347
+ <xs:documentation>Only ‘TRF’ is allowed.</xs:documentation>
348
+ </xs:annotation>
349
+ </xs:element>
350
+ <xs:element name="BtchBookg" type="BatchBookingIndicator" minOccurs="0">
351
+ <xs:annotation>
352
+ <xs:documentation>If present and contains ‘true’, batch booking is requested. If present and contains ‘false’, booking per transaction is requested. If element is not present, pre-agreed customer-to-bank conditions apply.</xs:documentation>
353
+ </xs:annotation>
354
+ </xs:element>
355
+ <xs:element name="NbOfTxs" type="Max15NumericText" minOccurs="0"/>
356
+ <xs:element name="CtrlSum" type="DecimalNumber" minOccurs="0"/>
357
+ <xs:element name="PmtTpInf" type="PaymentTypeInformationSCT1" minOccurs="0">
358
+ <xs:annotation>
359
+ <xs:documentation>If used, it is recommended to be used only at ‘Payment Information’ level and not at Credit Transfer Transaction Information’ level.
360
+ When Instruction Priority is to be used, ‘Payment Type Information’ must be present at ‘Payment Information’ level. </xs:documentation>
361
+ </xs:annotation>
362
+ </xs:element>
363
+ <xs:element name="ReqdExctnDt" type="ISODate"/>
364
+ <xs:element name="Dbtr" type="PartyIdentificationSEPA2"/>
365
+ <xs:element name="DbtrAcct" type="CashAccountSEPA1"/>
366
+ <xs:element name="DbtrAgt" type="BranchAndFinancialInstitutionIdentificationSEPA3"/>
367
+ <xs:element name="UltmtDbtr" type="PartyIdentificationSEPA1" minOccurs="0">
368
+ <xs:annotation>
369
+ <xs:documentation>This data element may be present either at ‘Payment Information’ or at ‘Credit Transfer Transaction Information’ level.</xs:documentation>
370
+ </xs:annotation>
371
+ </xs:element>
372
+ <xs:element name="ChrgBr" type="ChargeBearerTypeSEPACode" minOccurs="0">
373
+ <xs:annotation>
374
+ <xs:documentation>It is recommended that this element be specified at ‘Payment Information’ level.</xs:documentation>
375
+ </xs:annotation>
376
+ </xs:element>
377
+ <xs:element name="CdtTrfTxInf" type="CreditTransferTransactionInformationSCT" maxOccurs="unbounded"/>
378
+ </xs:sequence>
379
+ </xs:complexType>
380
+ <xs:simpleType name="PaymentMethodSCTCode">
381
+ <xs:restriction base="xs:string">
382
+ <xs:enumeration value="TRF"/>
383
+ </xs:restriction>
384
+ </xs:simpleType>
385
+ <xs:complexType name="PaymentTypeInformationSCT1">
386
+ <xs:sequence>
387
+ <xs:element name="InstrPrty" type="Priority2Code" minOccurs="0">
388
+ <xs:annotation>
389
+ <xs:documentation>If present, pre-agreed customer-to-bank conditions apply.</xs:documentation>
390
+ </xs:annotation>
391
+ </xs:element>
392
+ <xs:element name="SvcLvl" type="ServiceLevelSEPA"/>
393
+ <xs:element name="CtgyPurp" type="CategoryPurposeSEPA" minOccurs="0">
394
+ <xs:annotation>
395
+ <xs:documentation>Depending on the agreement between the Originator and the Originator Bank, ‘Category Purpose’ may be forwarded to the Beneficiary Bank.</xs:documentation>
396
+ </xs:annotation>
397
+ </xs:element>
398
+ </xs:sequence>
399
+ </xs:complexType>
400
+ <xs:complexType name="PaymentTypeInformationSCT2">
401
+ <xs:sequence>
402
+ <xs:element name="SvcLvl" type="ServiceLevelSEPA"/>
403
+ <xs:element name="CtgyPurp" type="CategoryPurposeSEPA" minOccurs="0">
404
+ <xs:annotation>
405
+ <xs:documentation>Depending on the agreement between the Originator and the Originator Bank, ‘Category Purpose’ may be forwarded to the Beneficiary Bank.</xs:documentation>
406
+ </xs:annotation>
407
+ </xs:element>
408
+ </xs:sequence>
409
+ </xs:complexType>
410
+ <xs:complexType name="PersonIdentificationSEPA1Choice">
411
+ <xs:sequence>
412
+ <xs:choice>
413
+ <xs:element name="DtAndPlcOfBirth" type="DateAndPlaceOfBirth"/>
414
+ <xs:element name="Othr" type="GenericPersonIdentification1"/>
415
+ </xs:choice>
416
+ </xs:sequence>
417
+ </xs:complexType>
418
+ <xs:complexType name="PersonIdentificationSchemeName1Choice">
419
+ <xs:sequence>
420
+ <xs:choice>
421
+ <xs:element name="Cd" type="ExternalPersonIdentification1Code"/>
422
+ <xs:element name="Prtry" type="Max35Text"/>
423
+ </xs:choice>
424
+ </xs:sequence>
425
+ </xs:complexType>
426
+ <xs:complexType name="PostalAddressSEPA">
427
+ <xs:sequence>
428
+ <xs:element name="Ctry" type="CountryCode" minOccurs="0"/>
429
+ <xs:element name="AdrLine" type="Max70Text" minOccurs="0" maxOccurs="2"/>
430
+ </xs:sequence>
431
+ </xs:complexType>
432
+ <xs:simpleType name="Priority2Code">
433
+ <xs:restriction base="xs:string">
434
+ <xs:enumeration value="HIGH"/>
435
+ <xs:enumeration value="NORM"/>
436
+ </xs:restriction>
437
+ </xs:simpleType>
438
+ <xs:complexType name="PurposeSEPA">
439
+ <xs:sequence>
440
+ <xs:element name="Cd" type="ExternalPurpose1Code">
441
+ <xs:annotation>
442
+ <xs:documentation>Only codes from the ISO 20022 ExternalPurposeCode list are allowed.</xs:documentation>
443
+ </xs:annotation>
444
+ </xs:element>
445
+ </xs:sequence>
446
+ </xs:complexType>
447
+ <xs:complexType name="RemittanceInformationSEPA1Choice">
448
+ <xs:sequence>
449
+ <xs:choice>
450
+ <xs:element name="Ustrd" type="Max140Text"/>
451
+ <xs:element name="Strd" type="StructuredRemittanceInformationSEPA1"/>
452
+ </xs:choice>
453
+ </xs:sequence>
454
+ </xs:complexType>
455
+ <xs:complexType name="ServiceLevelSEPA">
456
+ <xs:sequence>
457
+ <xs:element name="Cd" type="ExternalServiceLevel1Code"/>
458
+ </xs:sequence>
459
+ </xs:complexType>
460
+ <xs:complexType name="StructuredRemittanceInformationSEPA1">
461
+ <xs:sequence>
462
+ <xs:element name="CdtrRefInf" type="CreditorReferenceInformationSEPA1" minOccurs="0">
463
+ <xs:annotation>
464
+ <xs:documentation>When present, the receiving bank is not obliged to validate the the reference information. </xs:documentation>
465
+ </xs:annotation>
466
+ </xs:element>
467
+ </xs:sequence>
468
+ </xs:complexType>
469
+ <xs:simpleType name="RestrictedIdentificationSEPA1">
470
+ <xs:restriction base="xs:string">
471
+ <xs:pattern value="([A-Za-z0-9]|[\+|\?|/|\-|:|\(|\)|\.|,|'| ]){1,35}"/>
472
+ </xs:restriction>
473
+ </xs:simpleType>
474
+ </xs:schema>