sepa_king 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 391b0d4ce9c4d0434d03029eb79fa5b0b1af5a23
4
+ data.tar.gz: 074a2dc047bff99730971b7a0983d12d27b410bf
5
+ SHA512:
6
+ metadata.gz: 60bb85edff741f012b1afb206ebfed7f0130cf8d7fd319e7070e65157c4dc9455075e30e4123c7ae374beabccbb9145faa1fbf3d7868ba912b6b0f11337788c7
7
+ data.tar.gz: 430946f453b1d5876c41597e164c0aa284c34eeb371472a26719679c02acf7259b0c9387caca3dbd406781bc1eb806612660af4044e7f5d30e209dea505c87ee
data/.gitignore ADDED
@@ -0,0 +1,9 @@
1
+ nbproject/*
2
+ .rvmrc
3
+ coverage/*
4
+ rdoc/*
5
+ pkg/*
6
+ .DS_Store
7
+ Gemfile.lock
8
+ # tmp disable
9
+ docs/
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --format progress
data/.travis.yml ADDED
@@ -0,0 +1,3 @@
1
+ rvm:
2
+ - 1.9.3
3
+ - 2.0.0
data/Gemfile ADDED
@@ -0,0 +1,2 @@
1
+ source 'https://rubygems.org'
2
+ gemspec
data/MIT-LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2013 Georg Leciejewski (Sales King GmbH) & Georg Ledermann
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.markdown ADDED
@@ -0,0 +1,60 @@
1
+ # Handle SEPA like a king
2
+
3
+ [![Build Status](https://secure.travis-ci.org/salesking/sepa_king.png)](http://travis-ci.org/salesking/sepa_king)
4
+
5
+ We love building payment applications! So after developing the best [DTAUS](https://github.com/salesking/king_dtaus) library for Ruby we move on with SEPA!
6
+
7
+ This is just the beginning. There is still a lot to do. Please stay tuned...
8
+
9
+
10
+ ## Features
11
+
12
+ * Credit transfer (pain.001.002.03)
13
+ * Debit transfer (pain.008.002.02)
14
+ * 100% test coverage to ensure software quality
15
+ * Tested with Ruby 1.9.3 and 2.0.0
16
+
17
+
18
+ ## Installation
19
+
20
+ gem install sepa_king
21
+
22
+
23
+ ## Examples
24
+
25
+ How to create a SEPA File:
26
+
27
+ ```ruby
28
+ # Build a new SEPA file for Direct Debit (Lastschrift)
29
+ ddi = SEPA::DirectDebitInitiation.new :name => 'Gläubiger GmbH',
30
+ :bic => 'BANKDEFFXXX',
31
+ :iban => 'DE87200500001234567890',
32
+ :identifier => 'DE98ZZZ09999999999'
33
+
34
+ # Add transactions
35
+ ddi.add_transaction :name => 'Zahlemann & Söhne GbR',
36
+ :iban => 'DE21500500009876543210',
37
+ :bic => 'SPUEDE2UXXX',
38
+ :amount => 39.99,
39
+ :mandate_id => 'K-02-2011-12345',
40
+ :mandate_date_of_signature => Date.new(2011,01,25)
41
+ ddi.add_transaction ...
42
+
43
+ # create XML string and do with it whatever fits your workflow
44
+ xml_string = ddi.to_xml
45
+ ```
46
+
47
+ Make sure to read the code and the specs!
48
+
49
+
50
+ ## Resources
51
+
52
+ * http://www.ebics.de/index.php?id=77
53
+ * SalesKing: http://salesking.eu
54
+
55
+
56
+ ## License
57
+
58
+ Released under the MIT license
59
+
60
+ Copyright (c) 2013 Georg Leciejewski (SalesKing), Georg Ledermann (https://github.com/ledermann)
data/Rakefile ADDED
@@ -0,0 +1,6 @@
1
+ require 'bundler/gem_tasks'
2
+ require 'rspec/core/rake_task'
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task :default => :spec
@@ -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>