sepa_king 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
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>