Merge lp:~akretion-team/banking-addons/trunk-banking-addons-sepa into lp:banking-addons/6.1

Proposed by Alexis de Lattre
Status: Merged
Merged at revision: 176
Proposed branch: lp:~akretion-team/banking-addons/trunk-banking-addons-sepa
Merge into: lp:banking-addons/6.1
Diff against target: 3937 lines (+3862/-0)
14 files modified
account_banking_sepa_credit_transfer/__init__.py (+25/-0)
account_banking_sepa_credit_transfer/__openerp__.py (+50/-0)
account_banking_sepa_credit_transfer/account_banking_sepa.py (+80/-0)
account_banking_sepa_credit_transfer/account_banking_sepa_view.xml (+85/-0)
account_banking_sepa_credit_transfer/data/pain.001.001.02.xsd (+784/-0)
account_banking_sepa_credit_transfer/data/pain.001.001.03.xsd (+921/-0)
account_banking_sepa_credit_transfer/data/pain.001.001.04.xsd (+968/-0)
account_banking_sepa_credit_transfer/data/payment_type_sepa_sct.xml (+33/-0)
account_banking_sepa_credit_transfer/i18n/account_banking_sepa_credit_transfer.pot (+251/-0)
account_banking_sepa_credit_transfer/i18n/fr.po (+251/-0)
account_banking_sepa_credit_transfer/security/ir.model.access.csv (+2/-0)
account_banking_sepa_credit_transfer/wizard/__init__.py (+23/-0)
account_banking_sepa_credit_transfer/wizard/export_sepa.py (+341/-0)
account_banking_sepa_credit_transfer/wizard/export_sepa_view.xml (+48/-0)
To merge this branch: bzr merge lp:~akretion-team/banking-addons/trunk-banking-addons-sepa
Reviewer Review Type Date Requested Status
Stéphane Bidoul (Acsone) (community) test Approve
Stefan Rijnhart (Opener) Approve
Review via email: mp+167514@code.launchpad.net

Description of the change

Ready for merge !

Supports PAIN 001.001.02 + PAIN 001.001.03 + PAIN 001.001.04 ! Conforms to the implementation guidelines of the European Payments Council.

Tested with BNP-Paribas and Banque Populaire Atlantique in PAIN 001.001.02.
Tested with CIC in PAIN 001.001.03.
It seems that most banks don't support PAIN 001.001.04 yet.

To post a comment you must log in.
Revision history for this message
Stefan Rijnhart (Opener) (stefan-opener) wrote :

Hi Alexis,

your proposal has been eagerly awaited! Thank you for your work. We are currently testing this version, and it looks pretty good so far.

We have not got the validation back from the bank, but you may be aware that the specs leave room enough for their own dialect of the standard. I am afraid we will hit the requirement to allow for such dialects sooner or later. Have you considered a more flexible approach so that some dialect module can define their own processing for specific nodes only?

Code looks pretty good on the whole. One question:

At line 3101 there starts a pretty weird translation string, containing the good part of a python code file. The translation string that triggered that is commented out, so that may be the problem. The fact that the iban check is disabled looks dubious in itself. Is that something that can be resolved?

review: Needs Information
Revision history for this message
Stéphane Bidoul (Acsone) (sbi) wrote :

Hello Alexis,

I just made a quick test on 6.1. Working nice and looking good; I'll test with the bank ASAP.

It conflicts on the 7.0 branch. Is it supposed to work on 7.0 too? Sorry if this is a dump question, I'm new to banking addons and don't know the state of affairs here.

-sbi

Revision history for this message
Stefan Rijnhart (Opener) (stefan-opener) wrote :

Valid question, Stéphane!

the module can be easily merged with 7.0 too upon approval by means of cherrypicking. Banking addons 7.0 are ready and under review. If you want to try now, you could give this completely unstable and unsupported 'preview' branch a try: https://code.launchpad.net/~therp-nl/banking-addons/ba7.0-future.

Simply copy over the module from a 6.1 branch and change its dependency in __openerp__.py from 'account_banking' to 'account_banking_payment'.

Revision history for this message
Alexis de Lattre (alexis-via) wrote :

Dear Stéfan,

> but you may be aware that the specs leave room enough for their own dialect of the standard

In fact, from my experience, if all banks respect the guidelines of the European Payments Council (http://www.europeanpaymentscouncil.eu/), we shouldn't have several dialects to implement, because these guidelines are pretty accurate. We'll see if we are confronted to such problems ; in this case, we will modularise the code in order to be able to inherit the generation of the XML file.

I'll try to find some time in the coming days to clean-up the function _validate_iban which should avoid the big block of code in the POT file. By the way, do you think that it's necessary the validate the IBAN in the generation of the XML file ? The IBAN is already validated when we enter it in OpenERP, so it may not be necessary to validate a second time ? Or should be consider it better to validate it a second time ? If don't remember what y commented out this code. I must say that I spend most of my time reading specs, checking the XML and doing tests with the bank... and probably not enough time on the code itself.

152. By Alexis de Lattre

Activate validation of IBAN numbers (it's a double-validation, because the IBAN is already validated when it is written in OpenERP).
Remove code in i18n files.

Revision history for this message
Stefan Rijnhart (Opener) (stefan-opener) wrote :

Hi Alexis,
> In fact, from my experience, if all banks respect the guidelines of the European Payments Council (http://www.europeanpaymentscouncil.eu/), we shouldn't have several dialects to implement, because these guidelines are pretty accurate. We'll see if we are confronted to such problems ; in this case, we will modularise the code in order to be able to inherit the generation of the XML file.

Well, all Dutch banks have published addendums with requirements that
say 'Leave this element out' or 'Always fill this element with
NOTIMPLEMENTED'... But I have not yet gotten the feedback from the
bank's validation service so I will keep you updated on this.

>
> I'll try to find some time in the coming days to clean-up the function _validate_iban which should avoid the big block of code in the POT file. By the way, do you think that it's necessary the validate the IBAN in the generation of the XML file ? The IBAN is already validated when we enter it in OpenERP, so it may not be necessary to validate a second time ?

I think you are correct. In fact, what is missing is a generic function
in the payment order to check whether there is a bank account of the
allowed type for every payment order line. I will add one soon. So you
could perhaps remove the validation method entirely.

Revision history for this message
Stefan Rijnhart (Opener) (stefan-opener) wrote :

Output has been validated by Dutch bank ABN-AMRO, in spite of its additional dialectal guidelines!

Revision history for this message
Alexis de Lattre (alexis-via) wrote :

@Stefan

Great news ! Which version of PAIN did you use for the validation with ABN-AMRO ? 001.001.03 ?

Revision history for this message
Stefan Rijnhart (Opener) (stefan-opener) wrote :

Yes, Dutch banks support 001.001.03 only for now.

Revision history for this message
Stéphane Bidoul (Acsone) (sbi) wrote :

Hi,

I just validated PAIN.001.001.03 with ING's validation service.

I've noticed a couple of minor usability issues:
- the role of the Validate button in the last step of the "Make payment" wizard is unclear (it closes the window before you have a chance to save the xml file)
- if by mistake you select payments without a bank account (stupid, but allowed by the payment order wizard), you get a stack trace
- I quickly adapted the code to avoid the stack trace when the bank account is missing, which oviously lead to a non compliant xml file, but the XSD validation step did not raise the error; I've not had time to dig deeper yet.

Great job, Alexis!

-sbi

Revision history for this message
Stéphane Bidoul (Acsone) (sbi) wrote :

> Valid question, Stéphane!
>
> the module can be easily merged with 7.0 too upon approval by means of
> cherrypicking. Banking addons 7.0 are ready and under review. If you want to
> try now, you could give this completely unstable and unsupported 'preview'
> branch a try: https://code.launchpad.net/~therp-nl/banking-
> addons/ba7.0-future.
>
> Simply copy over the module from a 6.1 branch and change its dependency in
> __openerp__.py from 'account_banking' to 'account_banking_payment'.

Hello Stefan,

I just made a quick test with your branch ba7.0-future, and it works indeed.

What are the main differences between your ba7.0-future branch and the banking-addons-7.0 series?

-sbi

Revision history for this message
Stefan Rijnhart (Opener) (stefan-opener) wrote :

> What are the main differences between your ba7.0-future branch and the banking-addons-7.0 series?

The future branch is our working branch that includes pending merge
requests on the banking-addons-7.0 series. It will soon be deprecated
when we finish the last reviews of the 7.0 code sprint.

Revision history for this message
Stefan Rijnhart (Opener) (stefan-opener) wrote :

Sorry for noticing your latest changes only now. Approved and thanks again!

review: Approve
Revision history for this message
Holger Brunn (Therp) (hbrunn) wrote :

I see only one formal approval but a lot of approving comments. Is this ready to merge?

Revision history for this message
Stefan Rijnhart (Opener) (stefan-opener) wrote :

Stéphane, can you approve this MP? As I have indicated, the lack of a valid bank account should be solved on a higher level so that only leaves the usability issue of the validation button that closes the screen. The idea should indeed be that the user downloads the file, keeps the wizard screen open while uploading the file to the online banking environment and clicks 'Validate' in the wizard screen when the bank accepts the file. This pushes on the payment order workflow.

We have the same usability issue with the legacy Dutch payment export module. As long as the banking addons do not provide a boiler plate export wizard this does need to be solved in each export module. So maybe Alexis could provide a label text that explains this procedure. I would not personally consider it blocking but again Stéphane let us hear your view.

Revision history for this message
Stéphane Bidoul (Acsone) (sbi) wrote :

Nothing blocking on my side, so I approve.

I understand the philosophy behind the validate button. A help text would clarify for new users.

Regarding the lack of a bank account, it's not blocking either, but I had the impression it revealed an issue with the XSD validation, since I could generate an XML without the bank account which is invalid according to the schema. Let me know if that rings a bell, otherwise I'll dig deeper.

review: Approve (test)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== added directory 'account_banking_sepa_credit_transfer'
2=== added file 'account_banking_sepa_credit_transfer/__init__.py'
3--- account_banking_sepa_credit_transfer/__init__.py 1970-01-01 00:00:00 +0000
4+++ account_banking_sepa_credit_transfer/__init__.py 2013-06-06 08:07:29 +0000
5@@ -0,0 +1,25 @@
6+# -*- encoding: utf-8 -*-
7+##############################################################################
8+#
9+# SEPA Credit Transfer module for OpenERP
10+# Copyright (C) 2010-2013 Akretion (http://www.akretion.com)
11+# @author: Alexis de Lattre <alexis.delattre@akretion.com>
12+#
13+# This program is free software: you can redistribute it and/or modify
14+# it under the terms of the GNU Affero General Public License as
15+# published by the Free Software Foundation, either version 3 of the
16+# License, or (at your option) any later version.
17+#
18+# This program is distributed in the hope that it will be useful,
19+# but WITHOUT ANY WARRANTY; without even the implied warranty of
20+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21+# GNU Affero General Public License for more details.
22+#
23+# You should have received a copy of the GNU Affero General Public License
24+# along with this program. If not, see <http://www.gnu.org/licenses/>.
25+#
26+##############################################################################
27+
28+import wizard
29+import account_banking_sepa
30+
31
32=== added file 'account_banking_sepa_credit_transfer/__openerp__.py'
33--- account_banking_sepa_credit_transfer/__openerp__.py 1970-01-01 00:00:00 +0000
34+++ account_banking_sepa_credit_transfer/__openerp__.py 2013-06-06 08:07:29 +0000
35@@ -0,0 +1,50 @@
36+##############################################################################
37+#
38+# SEPA Credit Transfer module for OpenERP
39+# Copyright (C) 2010-2013 Akretion (http://www.akretion.com)
40+# @author: Alexis de Lattre <alexis.delattre@akretion.com>
41+#
42+# This program is free software: you can redistribute it and/or modify
43+# it under the terms of the GNU Affero General Public License as
44+# published by the Free Software Foundation, either version 3 of the
45+# License, or (at your option) any later version.
46+#
47+# This program is distributed in the hope that it will be useful,
48+# but WITHOUT ANY WARRANTY; without even the implied warranty of
49+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
50+# GNU Affero General Public License for more details.
51+#
52+# You should have received a copy of the GNU Affero General Public License
53+# along with this program. If not, see <http://www.gnu.org/licenses/>.
54+#
55+##############################################################################
56+{
57+ 'name': 'Account Banking SEPA Credit Transfer',
58+ 'version': '0.1',
59+ 'license': 'AGPL-3',
60+ 'author': 'Akretion',
61+ 'website': 'http://www.akretion.com',
62+ 'category': 'Banking addons',
63+ 'depends': ['account_banking'],
64+ 'init_xml': [],
65+ 'update_xml': [
66+ 'account_banking_sepa_view.xml',
67+ 'wizard/export_sepa_view.xml',
68+ 'data/payment_type_sepa_sct.xml',
69+ 'security/ir.model.access.csv',
70+ ],
71+ 'demo_xml': [],
72+ 'description': '''
73+Module to export payment orders in SEPA XML file format.
74+
75+SEPA PAIN (PAyment INitiation) is the new european standard for Customer-to-Bank payment instructions. This module implements SEPA Credit Transfer (SCT), more specifically PAIN versions 001.001.02, 001.001.03 and 001.001.04. It is part of the ISO 20022 standard, available on http://www.iso20022.org.
76+
77+The Implementation Guidelines for SEPA Credit Transfer published by the European Payments Council (http://http://www.europeanpaymentscouncil.eu) use PAIN version 001.001.03, so it's probably the version of PAIN that you should try first.
78+
79+This module uses the framework provided by the banking addons, cf https://launchpad.net/banking-addons
80+
81+Please contact Alexis de Lattre from Akretion <alexis.delattre@akretion.com> for any help or question about this module.
82+ ''',
83+ 'active': False,
84+ 'installable': True,
85+}
86
87=== added file 'account_banking_sepa_credit_transfer/account_banking_sepa.py'
88--- account_banking_sepa_credit_transfer/account_banking_sepa.py 1970-01-01 00:00:00 +0000
89+++ account_banking_sepa_credit_transfer/account_banking_sepa.py 2013-06-06 08:07:29 +0000
90@@ -0,0 +1,80 @@
91+##############################################################################
92+#
93+# SEPA Credit Transfer module for OpenERP
94+# Copyright (C) 2010-2013 Akretion (http://www.akretion.com)
95+# @author: Alexis de Lattre <alexis.delattre@akretion.com>
96+#
97+# This program is free software: you can redistribute it and/or modify
98+# it under the terms of the GNU Affero General Public License as
99+# published by the Free Software Foundation, either version 3 of the
100+# License, or (at your option) any later version.
101+#
102+# This program is distributed in the hope that it will be useful,
103+# but WITHOUT ANY WARRANTY; without even the implied warranty of
104+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
105+# GNU Affero General Public License for more details.
106+#
107+# You should have received a copy of the GNU Affero General Public License
108+# along with this program. If not, see <http://www.gnu.org/licenses/>.
109+#
110+##############################################################################
111+
112+from osv import osv, fields
113+import time
114+from tools.translate import _
115+import decimal_precision as dp
116+
117+
118+class banking_export_sepa(osv.osv):
119+ '''SEPA export'''
120+ _name = 'banking.export.sepa'
121+ _description = __doc__
122+ _rec_name = 'msg_identification'
123+
124+ def _generate_filename(self, cr, uid, ids, name, arg, context=None):
125+ res = {}
126+ for sepa_file in self.browse(cr, uid, ids, context=context):
127+ res[sepa_file.id] = 'sepa_' + (sepa_file.msg_identification or '') + '.xml'
128+ return res
129+
130+ _columns = {
131+ 'payment_order_ids': fields.many2many(
132+ 'payment.order',
133+ 'account_payment_order_sepa_rel',
134+ 'banking_export_sepa_id', 'account_order_id',
135+ 'Payment orders',
136+ readonly=True),
137+ 'prefered_exec_date': fields.date('Prefered execution date', readonly=True),
138+ 'nb_transactions': fields.integer('Number of transactions', readonly=True),
139+ 'total_amount': fields.float('Total amount',
140+ digits_compute=dp.get_precision('Account'), readonly=True),
141+ 'msg_identification': fields.char('Message identification', size=35,
142+ readonly=True),
143+ 'batch_booking': fields.boolean('Batch booking', readonly=True,
144+ help="If true, the bank statement will display only one debit line for all the wire transfers of the SEPA XML file ; if false, the bank statement will display one debit line per wire transfer of the SEPA XML file."),
145+ 'charge_bearer': fields.selection([
146+ ('SHAR', 'Shared'),
147+ ('CRED', 'Borne by creditor'),
148+ ('DEBT', 'Borne by debtor'),
149+ ('SLEV', 'Following service level'),
150+ ], 'Charge bearer', readonly=True,
151+ help='Shared : transaction charges on the sender side are to be borne by the debtor, transaction charges on the receiver side are to be borne by the creditor (most transfers use this). Borne by creditor : all transaction charges are to be borne by the creditor. Borne by debtor : all transaction charges are to be borne by the debtor. Following service level : transaction charges are to be applied following the rules agreed in the service level and/or scheme.'),
152+ 'generation_date': fields.datetime('Generation date',
153+ readonly=True),
154+ 'file': fields.binary('SEPA XML file', readonly=True),
155+ 'filename': fields.function(_generate_filename, type='char', size=256,
156+ method=True, string='Filename', readonly=True),
157+ 'state': fields.selection([
158+ ('draft', 'Draft'),
159+ ('sent', 'Sent'),
160+ ('done', 'Reconciled'),
161+ ], 'State', readonly=True),
162+ }
163+
164+ _defaults = {
165+ 'generation_date': lambda *a: time.strftime('%Y-%m-%d %H:%M:%S'),
166+ 'state': 'draft',
167+ }
168+
169+banking_export_sepa()
170+
171
172=== added file 'account_banking_sepa_credit_transfer/account_banking_sepa_view.xml'
173--- account_banking_sepa_credit_transfer/account_banking_sepa_view.xml 1970-01-01 00:00:00 +0000
174+++ account_banking_sepa_credit_transfer/account_banking_sepa_view.xml 2013-06-06 08:07:29 +0000
175@@ -0,0 +1,85 @@
176+<?xml version="1.0" encoding="utf-8"?>
177+<!--
178+ Copyright (C) 2010-2013 Akretion (http://www.akretion.com)
179+ @author: Alexis de Lattre <alexis.delattre@akretion.com>
180+ The licence is in the file __openerp__.py
181+-->
182+<openerp>
183+<data>
184+
185+<record id="view_banking_export_sepa_form" model="ir.ui.view">
186+ <field name="name">account.banking.export.sepa.form</field>
187+ <field name="model">banking.export.sepa</field>
188+ <field name="type">form</field>
189+ <field name="arch" type="xml">
190+ <form string="SEPA Credit Transfer">
191+ <notebook>
192+ <page string="General information">
193+ <field name="msg_identification" select="1" />
194+ <field name="total_amount" />
195+ <field name="nb_transactions" />
196+ <field name="prefered_exec_date" />
197+ <field name="batch_booking" />
198+ <field name="charge_bearer"/>
199+ <field name="generation_date" />
200+ <newline />
201+ <field name="file" filename="filename"/>
202+ <field name="filename" invisible="True"/>
203+ </page>
204+ <page string="Payment orders">
205+ <field name="payment_order_ids" colspan="4" nolabel="1">
206+ <tree colors="blue:state in ('draft');gray:state in ('cancel','done');black:state in ('open')" string="Payment order">
207+ <field name="reference"/>
208+ <field name="date_created"/>
209+ <field name="date_done"/>
210+ <field name="total"/>
211+ <field name="state"/>
212+ </tree>
213+ </field>
214+ </page>
215+ </notebook>
216+ </form>
217+ </field>
218+</record>
219+
220+
221+<record id="view_banking_export_sepa_tree" model="ir.ui.view">
222+ <field name="name">account.banking.export.sepa.tree</field>
223+ <field name="model">banking.export.sepa</field>
224+ <field name="type">tree</field>
225+ <field name="arch" type="xml">
226+ <tree string="SEPA Credit Transfer">
227+ <field name="msg_identification"/>
228+ <field name="prefered_exec_date"/>
229+ <field name="generation_date"/>
230+ <field name="nb_transactions"/>
231+ </tree>
232+ </field>
233+</record>
234+
235+
236+<record id="action_account_banking_sepa" model="ir.actions.act_window">
237+ <field name="name">Generated SEPA XML files</field>
238+ <field name="res_model">banking.export.sepa</field>
239+ <field name="view_type">form</field>
240+ <field name="view_mode">tree,form</field>
241+</record>
242+
243+
244+<menuitem id="menu_account_banking_sepa"
245+ parent="account_banking.menu_finance_banking_actions"
246+ action="action_account_banking_sepa"
247+ sequence="15"
248+ />
249+
250+<act_window id="act_banking_export_sepa_payment_order"
251+ name="Generated SEPA files"
252+ domain="[('payment_order_ids', '=', active_id)]"
253+ res_model="banking.export.sepa"
254+ src_model="payment.order"
255+ view_type="form"
256+ view_mode="tree,form"
257+/>
258+
259+</data>
260+</openerp>
261
262=== added directory 'account_banking_sepa_credit_transfer/data'
263=== added file 'account_banking_sepa_credit_transfer/data/pain.001.001.02.xsd'
264--- account_banking_sepa_credit_transfer/data/pain.001.001.02.xsd 1970-01-01 00:00:00 +0000
265+++ account_banking_sepa_credit_transfer/data/pain.001.001.02.xsd 2013-06-06 08:07:29 +0000
266@@ -0,0 +1,784 @@
267+<?xml version="1.0" encoding="UTF-8"?>
268+<!--Generated by SWIFTStandards Workstation (build:R5.1.0.4) on 2006 Sep 08 11:58:39-->
269+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.001.02" elementFormDefault="qualified" targetNamespace="urn:iso:std:iso:20022:tech:xsd:pain.001.001.02">
270+<xs:element name="Document" type="Document"/>
271+<xs:complexType name="AccountIdentification3Choice">
272+<xs:sequence>
273+<xs:choice>
274+<xs:element name="IBAN" type="IBANIdentifier"/>
275+<xs:element name="BBAN" type="BBANIdentifier"/>
276+<xs:element name="UPIC" type="UPICIdentifier"/>
277+<xs:element name="PrtryAcct" type="SimpleIdentificationInformation2"/>
278+</xs:choice>
279+</xs:sequence>
280+</xs:complexType>
281+<xs:simpleType name="AddressType2Code">
282+<xs:restriction base="xs:string">
283+<xs:enumeration value="ADDR"/>
284+<xs:enumeration value="PBOX"/>
285+<xs:enumeration value="HOME"/>
286+<xs:enumeration value="BIZZ"/>
287+<xs:enumeration value="MLTO"/>
288+<xs:enumeration value="DLVY"/>
289+</xs:restriction>
290+</xs:simpleType>
291+<xs:complexType name="AmountType2Choice">
292+<xs:sequence>
293+<xs:choice>
294+<xs:element name="InstdAmt" type="CurrencyAndAmount"/>
295+<xs:element name="EqvtAmt" type="EquivalentAmount"/>
296+</xs:choice>
297+</xs:sequence>
298+</xs:complexType>
299+<xs:simpleType name="BBANIdentifier">
300+<xs:restriction base="xs:string">
301+<xs:pattern value="[a-zA-Z0-9]{1,30}"/>
302+</xs:restriction>
303+</xs:simpleType>
304+<xs:simpleType name="BEIIdentifier">
305+<xs:restriction base="xs:string">
306+<xs:pattern value="[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}"/>
307+</xs:restriction>
308+</xs:simpleType>
309+<xs:simpleType name="BICIdentifier">
310+<xs:restriction base="xs:string">
311+<xs:pattern value="[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}"/>
312+</xs:restriction>
313+</xs:simpleType>
314+<xs:simpleType name="BaseOneRate">
315+<xs:restriction base="xs:decimal">
316+<xs:fractionDigits value="10"/>
317+<xs:totalDigits value="11"/>
318+</xs:restriction>
319+</xs:simpleType>
320+<xs:simpleType name="BatchBookingIndicator">
321+<xs:restriction base="xs:boolean"/>
322+</xs:simpleType>
323+<xs:complexType name="BranchAndFinancialInstitutionIdentification3">
324+<xs:sequence>
325+<xs:element name="FinInstnId" type="FinancialInstitutionIdentification5Choice"/>
326+<xs:element name="BrnchId" type="BranchData" minOccurs="0" maxOccurs="1"/>
327+</xs:sequence>
328+</xs:complexType>
329+<xs:complexType name="BranchData">
330+<xs:sequence>
331+<xs:element name="Id" type="Max35Text" minOccurs="0" maxOccurs="1"/>
332+<xs:element name="Nm" type="Max35Text" minOccurs="0" maxOccurs="1"/>
333+<xs:element name="PstlAdr" type="PostalAddress1" minOccurs="0" maxOccurs="1"/>
334+</xs:sequence>
335+</xs:complexType>
336+<xs:simpleType name="CHIPSUniversalIdentifier">
337+<xs:restriction base="xs:string">
338+<xs:pattern value="CH[0-9]{6,6}"/>
339+</xs:restriction>
340+</xs:simpleType>
341+<xs:complexType name="CashAccount7">
342+<xs:sequence>
343+<xs:element name="Id" type="AccountIdentification3Choice"/>
344+<xs:element name="Tp" type="CashAccountType2" minOccurs="0" maxOccurs="1"/>
345+<xs:element name="Ccy" type="CurrencyCode" minOccurs="0" maxOccurs="1"/>
346+<xs:element name="Nm" type="Max70Text" minOccurs="0" maxOccurs="1"/>
347+</xs:sequence>
348+</xs:complexType>
349+<xs:complexType name="CashAccountType2">
350+<xs:sequence>
351+<xs:choice>
352+<xs:element name="Cd" type="CashAccountType4Code"/>
353+<xs:element name="Prtry" type="Max35Text"/>
354+</xs:choice>
355+</xs:sequence>
356+</xs:complexType>
357+<xs:simpleType name="CashAccountType4Code">
358+<xs:restriction base="xs:string">
359+<xs:enumeration value="CASH"/>
360+<xs:enumeration value="CHAR"/>
361+<xs:enumeration value="COMM"/>
362+<xs:enumeration value="TAXE"/>
363+<xs:enumeration value="CISH"/>
364+<xs:enumeration value="TRAS"/>
365+<xs:enumeration value="SACC"/>
366+<xs:enumeration value="CACC"/>
367+<xs:enumeration value="SVGS"/>
368+<xs:enumeration value="ONDP"/>
369+<xs:enumeration value="MGLD"/>
370+<xs:enumeration value="NREX"/>
371+<xs:enumeration value="MOMA"/>
372+<xs:enumeration value="LOAN"/>
373+<xs:enumeration value="SLRY"/>
374+<xs:enumeration value="ODFT"/>
375+</xs:restriction>
376+</xs:simpleType>
377+<xs:simpleType name="ChargeBearerType1Code">
378+<xs:restriction base="xs:string">
379+<xs:enumeration value="DEBT"/>
380+<xs:enumeration value="CRED"/>
381+<xs:enumeration value="SHAR"/>
382+<xs:enumeration value="SLEV"/>
383+</xs:restriction>
384+</xs:simpleType>
385+<xs:complexType name="Cheque5">
386+<xs:sequence>
387+<xs:element name="ChqTp" type="ChequeType2Code" minOccurs="0" maxOccurs="1"/>
388+<xs:element name="ChqNb" type="Max35Text" minOccurs="0" maxOccurs="1"/>
389+<xs:element name="ChqFr" type="NameAndAddress3" minOccurs="0" maxOccurs="1"/>
390+<xs:element name="DlvryMtd" type="ChequeDeliveryMethod1Choice" minOccurs="0" maxOccurs="1"/>
391+<xs:element name="DlvrTo" type="NameAndAddress3" minOccurs="0" maxOccurs="1"/>
392+<xs:element name="InstrPrty" type="Priority2Code" minOccurs="0" maxOccurs="1"/>
393+<xs:element name="ChqMtrtyDt" type="ISODate" minOccurs="0" maxOccurs="1"/>
394+<xs:element name="FrmsCd" type="Max35Text" minOccurs="0" maxOccurs="1"/>
395+<xs:element name="MemoFld" type="Max35Text" minOccurs="0" maxOccurs="1"/>
396+<xs:element name="RgnlClrZone" type="Max35Text" minOccurs="0" maxOccurs="1"/>
397+<xs:element name="PrtLctn" type="Max35Text" minOccurs="0" maxOccurs="1"/>
398+</xs:sequence>
399+</xs:complexType>
400+<xs:simpleType name="ChequeDelivery1Code">
401+<xs:restriction base="xs:string">
402+<xs:enumeration value="MLDB"/>
403+<xs:enumeration value="MLCD"/>
404+<xs:enumeration value="MLFA"/>
405+<xs:enumeration value="CRDB"/>
406+<xs:enumeration value="CRCD"/>
407+<xs:enumeration value="CRFA"/>
408+<xs:enumeration value="PUDB"/>
409+<xs:enumeration value="PUCD"/>
410+<xs:enumeration value="PUFA"/>
411+<xs:enumeration value="RGDB"/>
412+<xs:enumeration value="RGCD"/>
413+<xs:enumeration value="RGFA"/>
414+</xs:restriction>
415+</xs:simpleType>
416+<xs:complexType name="ChequeDeliveryMethod1Choice">
417+<xs:sequence>
418+<xs:choice>
419+<xs:element name="Cd" type="ChequeDelivery1Code"/>
420+<xs:element name="Prtry" type="Max35Text"/>
421+</xs:choice>
422+</xs:sequence>
423+</xs:complexType>
424+<xs:simpleType name="ChequeType2Code">
425+<xs:restriction base="xs:string">
426+<xs:enumeration value="CCHQ"/>
427+<xs:enumeration value="CCCH"/>
428+<xs:enumeration value="BCHQ"/>
429+<xs:enumeration value="DRFT"/>
430+<xs:enumeration value="ELDR"/>
431+</xs:restriction>
432+</xs:simpleType>
433+<xs:simpleType name="ClearingChannel2Code">
434+<xs:restriction base="xs:string">
435+<xs:enumeration value="RTGS"/>
436+<xs:enumeration value="RTNS"/>
437+<xs:enumeration value="MPNS"/>
438+<xs:enumeration value="BOOK"/>
439+</xs:restriction>
440+</xs:simpleType>
441+<xs:complexType name="ClearingSystemMemberIdentification3Choice">
442+<xs:sequence>
443+<xs:choice>
444+<xs:element name="Id" type="ExternalClearingSystemMemberCode"/>
445+<xs:element name="Prtry" type="Max35Text"/>
446+</xs:choice>
447+</xs:sequence>
448+</xs:complexType>
449+<xs:simpleType name="CountryCode">
450+<xs:restriction base="xs:string">
451+<xs:pattern value="[A-Z]{2,2}"/>
452+</xs:restriction>
453+</xs:simpleType>
454+<xs:complexType name="CreditTransferTransactionInformation1">
455+<xs:sequence>
456+<xs:element name="PmtId" type="PaymentIdentification1"/>
457+<xs:element name="PmtTpInf" type="PaymentTypeInformation1" minOccurs="0" maxOccurs="1"/>
458+<xs:element name="Amt" type="AmountType2Choice"/>
459+<xs:element name="XchgRateInf" type="ExchangeRateInformation1" minOccurs="0" maxOccurs="1"/>
460+<xs:element name="ChrgBr" type="ChargeBearerType1Code" minOccurs="0" maxOccurs="1"/>
461+<xs:element name="ChqInstr" type="Cheque5" minOccurs="0" maxOccurs="1"/>
462+<xs:element name="UltmtDbtr" type="PartyIdentification8" minOccurs="0" maxOccurs="1"/>
463+<xs:element name="IntrmyAgt1" type="BranchAndFinancialInstitutionIdentification3" minOccurs="0" maxOccurs="1"/>
464+<xs:element name="IntrmyAgt1Acct" type="CashAccount7" minOccurs="0" maxOccurs="1"/>
465+<xs:element name="IntrmyAgt2" type="BranchAndFinancialInstitutionIdentification3" minOccurs="0" maxOccurs="1"/>
466+<xs:element name="IntrmyAgt2Acct" type="CashAccount7" minOccurs="0" maxOccurs="1"/>
467+<xs:element name="IntrmyAgt3" type="BranchAndFinancialInstitutionIdentification3" minOccurs="0" maxOccurs="1"/>
468+<xs:element name="IntrmyAgt3Acct" type="CashAccount7" minOccurs="0" maxOccurs="1"/>
469+<xs:element name="CdtrAgt" type="BranchAndFinancialInstitutionIdentification3" minOccurs="0" maxOccurs="1"/>
470+<xs:element name="CdtrAgtAcct" type="CashAccount7" minOccurs="0" maxOccurs="1"/>
471+<xs:element name="Cdtr" type="PartyIdentification8" minOccurs="0" maxOccurs="1"/>
472+<xs:element name="CdtrAcct" type="CashAccount7" minOccurs="0" maxOccurs="1"/>
473+<xs:element name="UltmtCdtr" type="PartyIdentification8" minOccurs="0" maxOccurs="1"/>
474+<xs:element name="InstrForCdtrAgt" type="InstructionForCreditorAgent1" minOccurs="0" maxOccurs="unbounded"/>
475+<xs:element name="InstrForDbtrAgt" type="Max140Text" minOccurs="0" maxOccurs="1"/>
476+<xs:element name="Purp" type="Purpose1Choice" minOccurs="0" maxOccurs="1"/>
477+<xs:element name="RgltryRptg" type="RegulatoryReporting2" minOccurs="0" maxOccurs="10"/>
478+<xs:element name="Tax" type="TaxInformation2" minOccurs="0" maxOccurs="1"/>
479+<xs:element name="RltdRmtInf" type="RemittanceLocation1" minOccurs="0" maxOccurs="10"/>
480+<xs:element name="RmtInf" type="RemittanceInformation1" minOccurs="0" maxOccurs="1"/>
481+</xs:sequence>
482+</xs:complexType>
483+<xs:complexType name="CreditorReferenceInformation1">
484+<xs:sequence>
485+<xs:element name="CdtrRefTp" type="CreditorReferenceType1" minOccurs="0" maxOccurs="1"/>
486+<xs:element name="CdtrRef" type="Max35Text" minOccurs="0" maxOccurs="1"/>
487+</xs:sequence>
488+</xs:complexType>
489+<xs:complexType name="CreditorReferenceType1">
490+<xs:sequence>
491+<xs:choice>
492+<xs:element name="Cd" type="DocumentType3Code"/>
493+<xs:element name="Prtry" type="Max35Text"/>
494+</xs:choice>
495+<xs:element name="Issr" type="Max35Text" minOccurs="0" maxOccurs="1"/>
496+</xs:sequence>
497+</xs:complexType>
498+<xs:simpleType name="CurrencyAndAmount_SimpleType">
499+<xs:restriction base="xs:decimal">
500+<xs:minInclusive value="0"/>
501+<xs:fractionDigits value="5"/>
502+<xs:totalDigits value="18"/>
503+</xs:restriction>
504+</xs:simpleType>
505+<xs:complexType name="CurrencyAndAmount">
506+<xs:simpleContent>
507+<xs:extension base="CurrencyAndAmount_SimpleType">
508+<xs:attribute name="Ccy" type="CurrencyCode" use="required"/>
509+</xs:extension>
510+</xs:simpleContent>
511+</xs:complexType>
512+<xs:simpleType name="CurrencyCode">
513+<xs:restriction base="xs:string">
514+<xs:pattern value="[A-Z]{3,3}"/>
515+</xs:restriction>
516+</xs:simpleType>
517+<xs:complexType name="DateAndPlaceOfBirth">
518+<xs:sequence>
519+<xs:element name="BirthDt" type="ISODate"/>
520+<xs:element name="PrvcOfBirth" type="Max35Text" minOccurs="0" maxOccurs="1"/>
521+<xs:element name="CityOfBirth" type="Max35Text"/>
522+<xs:element name="CtryOfBirth" type="CountryCode"/>
523+</xs:sequence>
524+</xs:complexType>
525+<xs:simpleType name="DecimalNumber">
526+<xs:restriction base="xs:decimal">
527+<xs:fractionDigits value="17"/>
528+<xs:totalDigits value="18"/>
529+</xs:restriction>
530+</xs:simpleType>
531+<xs:complexType name="Document">
532+<xs:sequence>
533+<xs:element name="pain.001.001.02" type="pain.001.001.02"/>
534+</xs:sequence>
535+</xs:complexType>
536+<xs:simpleType name="DocumentType2Code">
537+<xs:restriction base="xs:string">
538+<xs:enumeration value="MSIN"/>
539+<xs:enumeration value="CNFA"/>
540+<xs:enumeration value="DNFA"/>
541+<xs:enumeration value="CINV"/>
542+<xs:enumeration value="CREN"/>
543+<xs:enumeration value="DEBN"/>
544+<xs:enumeration value="HIRI"/>
545+<xs:enumeration value="SBIN"/>
546+<xs:enumeration value="CMCN"/>
547+<xs:enumeration value="SOAC"/>
548+<xs:enumeration value="DISP"/>
549+</xs:restriction>
550+</xs:simpleType>
551+<xs:simpleType name="DocumentType3Code">
552+<xs:restriction base="xs:string">
553+<xs:enumeration value="RADM"/>
554+<xs:enumeration value="RPIN"/>
555+<xs:enumeration value="FXDR"/>
556+<xs:enumeration value="DISP"/>
557+<xs:enumeration value="PUOR"/>
558+<xs:enumeration value="SCOR"/>
559+</xs:restriction>
560+</xs:simpleType>
561+<xs:simpleType name="DunsIdentifier">
562+<xs:restriction base="xs:string">
563+<xs:pattern value="[0-9]{9,9}"/>
564+</xs:restriction>
565+</xs:simpleType>
566+<xs:simpleType name="EANGLNIdentifier">
567+<xs:restriction base="xs:string">
568+<xs:pattern value="[0-9]{13,13}"/>
569+</xs:restriction>
570+</xs:simpleType>
571+<xs:complexType name="EquivalentAmount">
572+<xs:sequence>
573+<xs:element name="Amt" type="CurrencyAndAmount"/>
574+<xs:element name="CcyOfTrf" type="CurrencyCode"/>
575+</xs:sequence>
576+</xs:complexType>
577+<xs:complexType name="ExchangeRateInformation1">
578+<xs:sequence>
579+<xs:element name="XchgRate" type="BaseOneRate" minOccurs="0" maxOccurs="1"/>
580+<xs:element name="RateTp" type="ExchangeRateType1Code" minOccurs="0" maxOccurs="1"/>
581+<xs:element name="CtrctId" type="Max35Text" minOccurs="0" maxOccurs="1"/>
582+</xs:sequence>
583+</xs:complexType>
584+<xs:simpleType name="ExchangeRateType1Code">
585+<xs:restriction base="xs:string">
586+<xs:enumeration value="SPOT"/>
587+<xs:enumeration value="SALE"/>
588+<xs:enumeration value="AGRD"/>
589+</xs:restriction>
590+</xs:simpleType>
591+<xs:simpleType name="ExternalClearingSystemMemberCode">
592+<xs:restriction base="xs:string">
593+<xs:minLength value="1"/>
594+<xs:maxLength value="35"/>
595+</xs:restriction>
596+</xs:simpleType>
597+<xs:simpleType name="ExternalLocalInstrumentCode">
598+<xs:restriction base="xs:string">
599+<xs:minLength value="1"/>
600+<xs:maxLength value="35"/>
601+</xs:restriction>
602+</xs:simpleType>
603+<xs:simpleType name="ExternalPurposeCode">
604+<xs:restriction base="xs:string">
605+<xs:minLength value="1"/>
606+<xs:maxLength value="35"/>
607+</xs:restriction>
608+</xs:simpleType>
609+<xs:complexType name="FinancialInstitutionIdentification3">
610+<xs:sequence>
611+<xs:element name="BIC" type="BICIdentifier" minOccurs="0" maxOccurs="1"/>
612+<xs:element name="ClrSysMmbId" type="ClearingSystemMemberIdentification3Choice" minOccurs="0" maxOccurs="1"/>
613+<xs:element name="Nm" type="Max70Text" minOccurs="0" maxOccurs="1"/>
614+<xs:element name="PstlAdr" type="PostalAddress1" minOccurs="0" maxOccurs="1"/>
615+<xs:element name="PrtryId" type="GenericIdentification3" minOccurs="0" maxOccurs="1"/>
616+</xs:sequence>
617+</xs:complexType>
618+<xs:complexType name="FinancialInstitutionIdentification5Choice">
619+<xs:sequence>
620+<xs:choice>
621+<xs:element name="BIC" type="BICIdentifier"/>
622+<xs:element name="ClrSysMmbId" type="ClearingSystemMemberIdentification3Choice"/>
623+<xs:element name="NmAndAdr" type="NameAndAddress7"/>
624+<xs:element name="PrtryId" type="GenericIdentification3"/>
625+<xs:element name="CmbndId" type="FinancialInstitutionIdentification3"/>
626+</xs:choice>
627+</xs:sequence>
628+</xs:complexType>
629+<xs:complexType name="GenericIdentification3">
630+<xs:sequence>
631+<xs:element name="Id" type="Max35Text"/>
632+<xs:element name="Issr" type="Max35Text" minOccurs="0" maxOccurs="1"/>
633+</xs:sequence>
634+</xs:complexType>
635+<xs:complexType name="GenericIdentification4">
636+<xs:sequence>
637+<xs:element name="Id" type="Max35Text"/>
638+<xs:element name="IdTp" type="Max35Text"/>
639+</xs:sequence>
640+</xs:complexType>
641+<xs:complexType name="GroupHeader1">
642+<xs:sequence>
643+<xs:element name="MsgId" type="Max35Text"/>
644+<xs:element name="CreDtTm" type="ISODateTime"/>
645+<xs:element name="Authstn" type="Max128Text" minOccurs="0" maxOccurs="2"/>
646+<xs:element name="BtchBookg" type="BatchBookingIndicator" minOccurs="0" maxOccurs="1"/>
647+<xs:element name="NbOfTxs" type="Max15NumericText"/>
648+<xs:element name="CtrlSum" type="DecimalNumber" minOccurs="0" maxOccurs="1"/>
649+<xs:element name="Grpg" type="Grouping1Code"/>
650+<xs:element name="InitgPty" type="PartyIdentification8"/>
651+<xs:element name="FwdgAgt" type="BranchAndFinancialInstitutionIdentification3" minOccurs="0" maxOccurs="1"/>
652+</xs:sequence>
653+</xs:complexType>
654+<xs:simpleType name="Grouping1Code">
655+<xs:restriction base="xs:string">
656+<xs:enumeration value="SNGL"/>
657+<xs:enumeration value="GRPD"/>
658+<xs:enumeration value="MIXD"/>
659+</xs:restriction>
660+</xs:simpleType>
661+<xs:simpleType name="IBANIdentifier">
662+<xs:restriction base="xs:string">
663+<xs:pattern value="[a-zA-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}"/>
664+</xs:restriction>
665+</xs:simpleType>
666+<xs:simpleType name="IBEIIdentifier">
667+<xs:restriction base="xs:string">
668+<xs:pattern value="[A-Z]{2,2}[B-DF-HJ-NP-TV-XZ0-9]{7,7}[0-9]{1,1}"/>
669+</xs:restriction>
670+</xs:simpleType>
671+<xs:simpleType name="ISODate">
672+<xs:restriction base="xs:date"/>
673+</xs:simpleType>
674+<xs:simpleType name="ISODateTime">
675+<xs:restriction base="xs:dateTime"/>
676+</xs:simpleType>
677+<xs:simpleType name="Instruction3Code">
678+<xs:restriction base="xs:string">
679+<xs:enumeration value="CHQB"/>
680+<xs:enumeration value="HOLD"/>
681+<xs:enumeration value="PHOB"/>
682+<xs:enumeration value="TELB"/>
683+</xs:restriction>
684+</xs:simpleType>
685+<xs:complexType name="InstructionForCreditorAgent1">
686+<xs:sequence>
687+<xs:element name="Cd" type="Instruction3Code" minOccurs="0" maxOccurs="1"/>
688+<xs:element name="InstrInf" type="Max140Text" minOccurs="0" maxOccurs="1"/>
689+</xs:sequence>
690+</xs:complexType>
691+<xs:complexType name="LocalInstrument1Choice">
692+<xs:sequence>
693+<xs:choice>
694+<xs:element name="Cd" type="ExternalLocalInstrumentCode"/>
695+<xs:element name="Prtry" type="Max35Text"/>
696+</xs:choice>
697+</xs:sequence>
698+</xs:complexType>
699+<xs:simpleType name="Max128Text">
700+<xs:restriction base="xs:string">
701+<xs:minLength value="1"/>
702+<xs:maxLength value="128"/>
703+</xs:restriction>
704+</xs:simpleType>
705+<xs:simpleType name="Max140Text">
706+<xs:restriction base="xs:string">
707+<xs:minLength value="1"/>
708+<xs:maxLength value="140"/>
709+</xs:restriction>
710+</xs:simpleType>
711+<xs:simpleType name="Max15NumericText">
712+<xs:restriction base="xs:string">
713+<xs:pattern value="[0-9]{1,15}"/>
714+</xs:restriction>
715+</xs:simpleType>
716+<xs:simpleType name="Max16Text">
717+<xs:restriction base="xs:string">
718+<xs:minLength value="1"/>
719+<xs:maxLength value="16"/>
720+</xs:restriction>
721+</xs:simpleType>
722+<xs:simpleType name="Max256Text">
723+<xs:restriction base="xs:string">
724+<xs:minLength value="1"/>
725+<xs:maxLength value="256"/>
726+</xs:restriction>
727+</xs:simpleType>
728+<xs:simpleType name="Max34Text">
729+<xs:restriction base="xs:string">
730+<xs:minLength value="1"/>
731+<xs:maxLength value="34"/>
732+</xs:restriction>
733+</xs:simpleType>
734+<xs:simpleType name="Max35Text">
735+<xs:restriction base="xs:string">
736+<xs:minLength value="1"/>
737+<xs:maxLength value="35"/>
738+</xs:restriction>
739+</xs:simpleType>
740+<xs:simpleType name="Max3Text">
741+<xs:restriction base="xs:string">
742+<xs:minLength value="1"/>
743+<xs:maxLength value="3"/>
744+</xs:restriction>
745+</xs:simpleType>
746+<xs:simpleType name="Max70Text">
747+<xs:restriction base="xs:string">
748+<xs:minLength value="1"/>
749+<xs:maxLength value="70"/>
750+</xs:restriction>
751+</xs:simpleType>
752+<xs:complexType name="NameAndAddress3">
753+<xs:sequence>
754+<xs:element name="Nm" type="Max70Text"/>
755+<xs:element name="Adr" type="PostalAddress1"/>
756+</xs:sequence>
757+</xs:complexType>
758+<xs:complexType name="NameAndAddress7">
759+<xs:sequence>
760+<xs:element name="Nm" type="Max70Text"/>
761+<xs:element name="PstlAdr" type="PostalAddress1"/>
762+</xs:sequence>
763+</xs:complexType>
764+<xs:complexType name="OrganisationIdentification2">
765+<xs:sequence>
766+<xs:element name="BIC" type="BICIdentifier" minOccurs="0" maxOccurs="1"/>
767+<xs:element name="IBEI" type="IBEIIdentifier" minOccurs="0" maxOccurs="1"/>
768+<xs:element name="BEI" type="BEIIdentifier" minOccurs="0" maxOccurs="1"/>
769+<xs:element name="EANGLN" type="EANGLNIdentifier" minOccurs="0" maxOccurs="1"/>
770+<xs:element name="USCHU" type="CHIPSUniversalIdentifier" minOccurs="0" maxOccurs="1"/>
771+<xs:element name="DUNS" type="DunsIdentifier" minOccurs="0" maxOccurs="1"/>
772+<xs:element name="BkPtyId" type="Max35Text" minOccurs="0" maxOccurs="1"/>
773+<xs:element name="TaxIdNb" type="Max35Text" minOccurs="0" maxOccurs="1"/>
774+<xs:element name="PrtryId" type="GenericIdentification3" minOccurs="0" maxOccurs="1"/>
775+</xs:sequence>
776+</xs:complexType>
777+<xs:complexType name="Party2Choice">
778+<xs:sequence>
779+<xs:choice>
780+<xs:element name="OrgId" type="OrganisationIdentification2"/>
781+<xs:element name="PrvtId" type="PersonIdentification3" minOccurs="1" maxOccurs="4"/>
782+</xs:choice>
783+</xs:sequence>
784+</xs:complexType>
785+<xs:complexType name="PartyIdentification8">
786+<xs:sequence>
787+<xs:element name="Nm" type="Max70Text" minOccurs="0" maxOccurs="1"/>
788+<xs:element name="PstlAdr" type="PostalAddress1" minOccurs="0" maxOccurs="1"/>
789+<xs:element name="Id" type="Party2Choice" minOccurs="0" maxOccurs="1"/>
790+<xs:element name="CtryOfRes" type="CountryCode" minOccurs="0" maxOccurs="1"/>
791+</xs:sequence>
792+</xs:complexType>
793+<xs:simpleType name="PaymentCategoryPurpose1Code">
794+<xs:restriction base="xs:string">
795+<xs:enumeration value="CORT"/>
796+<xs:enumeration value="SALA"/>
797+<xs:enumeration value="TREA"/>
798+<xs:enumeration value="CASH"/>
799+<xs:enumeration value="DIVI"/>
800+<xs:enumeration value="GOVT"/>
801+<xs:enumeration value="INTE"/>
802+<xs:enumeration value="LOAN"/>
803+<xs:enumeration value="PENS"/>
804+<xs:enumeration value="SECU"/>
805+<xs:enumeration value="SSBE"/>
806+<xs:enumeration value="SUPP"/>
807+<xs:enumeration value="TAXS"/>
808+<xs:enumeration value="TRAD"/>
809+<xs:enumeration value="VATX"/>
810+<xs:enumeration value="HEDG"/>
811+<xs:enumeration value="INTC"/>
812+<xs:enumeration value="WHLD"/>
813+</xs:restriction>
814+</xs:simpleType>
815+<xs:complexType name="PaymentIdentification1">
816+<xs:sequence>
817+<xs:element name="InstrId" type="Max35Text" minOccurs="0" maxOccurs="1"/>
818+<xs:element name="EndToEndId" type="Max35Text"/>
819+</xs:sequence>
820+</xs:complexType>
821+<xs:complexType name="PaymentInstructionInformation1">
822+<xs:sequence>
823+<xs:element name="PmtInfId" type="Max35Text" minOccurs="0" maxOccurs="1"/>
824+<xs:element name="PmtMtd" type="PaymentMethod3Code"/>
825+<xs:element name="PmtTpInf" type="PaymentTypeInformation1" minOccurs="0" maxOccurs="1"/>
826+<xs:element name="ReqdExctnDt" type="ISODate"/>
827+<xs:element name="PoolgAdjstmntDt" type="ISODate" minOccurs="0" maxOccurs="1"/>
828+<xs:element name="Dbtr" type="PartyIdentification8"/>
829+<xs:element name="DbtrAcct" type="CashAccount7"/>
830+<xs:element name="DbtrAgt" type="BranchAndFinancialInstitutionIdentification3"/>
831+<xs:element name="DbtrAgtAcct" type="CashAccount7" minOccurs="0" maxOccurs="1"/>
832+<xs:element name="UltmtDbtr" type="PartyIdentification8" minOccurs="0" maxOccurs="1"/>
833+<xs:element name="ChrgBr" type="ChargeBearerType1Code" minOccurs="0" maxOccurs="1"/>
834+<xs:element name="ChrgsAcct" type="CashAccount7" minOccurs="0" maxOccurs="1"/>
835+<xs:element name="ChrgsAcctAgt" type="BranchAndFinancialInstitutionIdentification3" minOccurs="0" maxOccurs="1"/>
836+<xs:element name="CdtTrfTxInf" type="CreditTransferTransactionInformation1" minOccurs="1" maxOccurs="unbounded"/>
837+</xs:sequence>
838+</xs:complexType>
839+<xs:simpleType name="PaymentMethod3Code">
840+<xs:restriction base="xs:string">
841+<xs:enumeration value="CHK"/>
842+<xs:enumeration value="TRF"/>
843+<xs:enumeration value="TRA"/>
844+</xs:restriction>
845+</xs:simpleType>
846+<xs:complexType name="PaymentTypeInformation1">
847+<xs:sequence>
848+<xs:element name="InstrPrty" type="Priority2Code" minOccurs="0" maxOccurs="1"/>
849+<xs:choice>
850+<xs:element name="SvcLvl" type="ServiceLevel2Choice" minOccurs="0" maxOccurs="1"/>
851+<xs:element name="ClrChanl" type="ClearingChannel2Code" minOccurs="0" maxOccurs="1"/>
852+</xs:choice>
853+<xs:element name="LclInstrm" type="LocalInstrument1Choice" minOccurs="0" maxOccurs="1"/>
854+<xs:element name="CtgyPurp" type="PaymentCategoryPurpose1Code" minOccurs="0" maxOccurs="1"/>
855+</xs:sequence>
856+</xs:complexType>
857+<xs:simpleType name="PercentageRate">
858+<xs:restriction base="xs:decimal">
859+<xs:fractionDigits value="10"/>
860+<xs:totalDigits value="11"/>
861+</xs:restriction>
862+</xs:simpleType>
863+<xs:complexType name="PersonIdentification3">
864+<xs:sequence>
865+<xs:choice>
866+<xs:element name="DrvrsLicNb" type="Max35Text"/>
867+<xs:element name="CstmrNb" type="Max35Text"/>
868+<xs:element name="SclSctyNb" type="Max35Text"/>
869+<xs:element name="AlnRegnNb" type="Max35Text"/>
870+<xs:element name="PsptNb" type="Max35Text"/>
871+<xs:element name="TaxIdNb" type="Max35Text"/>
872+<xs:element name="IdntyCardNb" type="Max35Text"/>
873+<xs:element name="MplyrIdNb" type="Max35Text"/>
874+<xs:element name="DtAndPlcOfBirth" type="DateAndPlaceOfBirth"/>
875+<xs:element name="OthrId" type="GenericIdentification4"/>
876+</xs:choice>
877+<xs:element name="Issr" type="Max35Text" minOccurs="0" maxOccurs="1"/>
878+</xs:sequence>
879+</xs:complexType>
880+<xs:complexType name="PostalAddress1">
881+<xs:sequence>
882+<xs:element name="AdrTp" type="AddressType2Code" minOccurs="0" maxOccurs="1"/>
883+<xs:element name="AdrLine" type="Max70Text" minOccurs="0" maxOccurs="5"/>
884+<xs:element name="StrtNm" type="Max70Text" minOccurs="0" maxOccurs="1"/>
885+<xs:element name="BldgNb" type="Max16Text" minOccurs="0" maxOccurs="1"/>
886+<xs:element name="PstCd" type="Max16Text" minOccurs="0" maxOccurs="1"/>
887+<xs:element name="TwnNm" type="Max35Text" minOccurs="0" maxOccurs="1"/>
888+<xs:element name="CtrySubDvsn" type="Max35Text" minOccurs="0" maxOccurs="1"/>
889+<xs:element name="Ctry" type="CountryCode"/>
890+</xs:sequence>
891+</xs:complexType>
892+<xs:simpleType name="Priority2Code">
893+<xs:restriction base="xs:string">
894+<xs:enumeration value="HIGH"/>
895+<xs:enumeration value="NORM"/>
896+</xs:restriction>
897+</xs:simpleType>
898+<xs:complexType name="Purpose1Choice">
899+<xs:sequence>
900+<xs:choice>
901+<xs:element name="Cd" type="ExternalPurposeCode"/>
902+<xs:element name="Prtry" type="Max35Text"/>
903+</xs:choice>
904+</xs:sequence>
905+</xs:complexType>
906+<xs:complexType name="ReferredDocumentAmount1Choice">
907+<xs:sequence>
908+<xs:choice>
909+<xs:element name="DuePyblAmt" type="CurrencyAndAmount"/>
910+<xs:element name="DscntApldAmt" type="CurrencyAndAmount"/>
911+<xs:element name="RmtdAmt" type="CurrencyAndAmount"/>
912+<xs:element name="CdtNoteAmt" type="CurrencyAndAmount"/>
913+<xs:element name="TaxAmt" type="CurrencyAndAmount"/>
914+</xs:choice>
915+</xs:sequence>
916+</xs:complexType>
917+<xs:complexType name="ReferredDocumentInformation1">
918+<xs:sequence>
919+<xs:element name="RfrdDocTp" type="ReferredDocumentType1" minOccurs="0" maxOccurs="1"/>
920+<xs:element name="RfrdDocNb" type="Max35Text" minOccurs="0" maxOccurs="1"/>
921+</xs:sequence>
922+</xs:complexType>
923+<xs:complexType name="ReferredDocumentType1">
924+<xs:sequence>
925+<xs:choice>
926+<xs:element name="Cd" type="DocumentType2Code"/>
927+<xs:element name="Prtry" type="Max35Text"/>
928+</xs:choice>
929+<xs:element name="Issr" type="Max35Text" minOccurs="0" maxOccurs="1"/>
930+</xs:sequence>
931+</xs:complexType>
932+<xs:complexType name="RegulatoryAuthority">
933+<xs:sequence>
934+<xs:element name="AuthrtyNm" type="Max70Text" minOccurs="0" maxOccurs="1"/>
935+<xs:element name="AuthrtyCtry" type="CountryCode" minOccurs="0" maxOccurs="1"/>
936+</xs:sequence>
937+</xs:complexType>
938+<xs:complexType name="RegulatoryReporting2">
939+<xs:sequence>
940+<xs:element name="DbtCdtRptgInd" type="RegulatoryReportingType1Code" minOccurs="0" maxOccurs="1"/>
941+<xs:element name="Authrty" type="RegulatoryAuthority" minOccurs="0" maxOccurs="1"/>
942+<xs:element name="RgltryDtls" type="StructuredRegulatoryReporting2" minOccurs="0" maxOccurs="1"/>
943+</xs:sequence>
944+</xs:complexType>
945+<xs:simpleType name="RegulatoryReportingType1Code">
946+<xs:restriction base="xs:string">
947+<xs:enumeration value="CRED"/>
948+<xs:enumeration value="DEBT"/>
949+<xs:enumeration value="BOTH"/>
950+</xs:restriction>
951+</xs:simpleType>
952+<xs:complexType name="RemittanceInformation1">
953+<xs:sequence>
954+<xs:element name="Ustrd" type="Max140Text" minOccurs="0" maxOccurs="unbounded"/>
955+<xs:element name="Strd" type="StructuredRemittanceInformation6" minOccurs="0" maxOccurs="unbounded"/>
956+</xs:sequence>
957+</xs:complexType>
958+<xs:complexType name="RemittanceLocation1">
959+<xs:sequence>
960+<xs:element name="RmtId" type="Max35Text" minOccurs="0" maxOccurs="1"/>
961+<xs:element name="RmtLctnMtd" type="RemittanceLocationMethod1Code" minOccurs="0" maxOccurs="1"/>
962+<xs:element name="RmtLctnElctrncAdr" type="Max256Text" minOccurs="0" maxOccurs="1"/>
963+<xs:element name="RmtLctnPstlAdr" type="NameAndAddress3" minOccurs="0" maxOccurs="1"/>
964+</xs:sequence>
965+</xs:complexType>
966+<xs:simpleType name="RemittanceLocationMethod1Code">
967+<xs:restriction base="xs:string">
968+<xs:enumeration value="FAXI"/>
969+<xs:enumeration value="EDIC"/>
970+<xs:enumeration value="URID"/>
971+<xs:enumeration value="EMAL"/>
972+<xs:enumeration value="POST"/>
973+</xs:restriction>
974+</xs:simpleType>
975+<xs:simpleType name="ServiceLevel1Code">
976+<xs:restriction base="xs:string">
977+<xs:enumeration value="SEPA"/>
978+<xs:enumeration value="SDVA"/>
979+<xs:enumeration value="PRPT"/>
980+</xs:restriction>
981+</xs:simpleType>
982+<xs:complexType name="ServiceLevel2Choice">
983+<xs:sequence>
984+<xs:choice>
985+<xs:element name="Cd" type="ServiceLevel1Code"/>
986+<xs:element name="Prtry" type="Max35Text"/>
987+</xs:choice>
988+</xs:sequence>
989+</xs:complexType>
990+<xs:complexType name="SimpleIdentificationInformation2">
991+<xs:sequence>
992+<xs:element name="Id" type="Max34Text"/>
993+</xs:sequence>
994+</xs:complexType>
995+<xs:complexType name="StructuredRegulatoryReporting2">
996+<xs:sequence>
997+<xs:element name="Cd" type="Max3Text" minOccurs="0" maxOccurs="1"/>
998+<xs:element name="Amt" type="CurrencyAndAmount" minOccurs="0" maxOccurs="1"/>
999+<xs:element name="Inf" type="Max35Text" minOccurs="0" maxOccurs="1"/>
1000+</xs:sequence>
1001+</xs:complexType>
1002+<xs:complexType name="StructuredRemittanceInformation6">
1003+<xs:sequence>
1004+<xs:element name="RfrdDocInf" type="ReferredDocumentInformation1" minOccurs="0" maxOccurs="1"/>
1005+<xs:element name="RfrdDocRltdDt" type="ISODate" minOccurs="0" maxOccurs="1"/>
1006+<xs:element name="RfrdDocAmt" type="ReferredDocumentAmount1Choice" minOccurs="0" maxOccurs="unbounded"/>
1007+<xs:element name="CdtrRefInf" type="CreditorReferenceInformation1" minOccurs="0" maxOccurs="1"/>
1008+<xs:element name="Invcr" type="PartyIdentification8" minOccurs="0" maxOccurs="1"/>
1009+<xs:element name="Invcee" type="PartyIdentification8" minOccurs="0" maxOccurs="1"/>
1010+<xs:element name="AddtlRmtInf" type="Max140Text" minOccurs="0" maxOccurs="1"/>
1011+</xs:sequence>
1012+</xs:complexType>
1013+<xs:complexType name="TaxDetails">
1014+<xs:sequence>
1015+<xs:element name="CertId" type="Max35Text" minOccurs="0" maxOccurs="1"/>
1016+<xs:element name="TaxTp" type="TaxType" minOccurs="0" maxOccurs="1"/>
1017+</xs:sequence>
1018+</xs:complexType>
1019+<xs:complexType name="TaxInformation2">
1020+<xs:sequence>
1021+<xs:element name="CdtrTaxId" type="Max35Text" minOccurs="0" maxOccurs="1"/>
1022+<xs:element name="CdtrTaxTp" type="Max35Text" minOccurs="0" maxOccurs="1"/>
1023+<xs:element name="DbtrTaxId" type="Max35Text" minOccurs="0" maxOccurs="1"/>
1024+<xs:element name="TaxRefNb" type="Max140Text" minOccurs="0" maxOccurs="1"/>
1025+<xs:element name="TtlTaxblBaseAmt" type="CurrencyAndAmount" minOccurs="0" maxOccurs="1"/>
1026+<xs:element name="TtlTaxAmt" type="CurrencyAndAmount" minOccurs="0" maxOccurs="1"/>
1027+<xs:element name="TaxDt" type="ISODate" minOccurs="0" maxOccurs="1"/>
1028+<xs:element name="TaxTpInf" type="TaxDetails" minOccurs="0" maxOccurs="unbounded"/>
1029+</xs:sequence>
1030+</xs:complexType>
1031+<xs:complexType name="TaxType">
1032+<xs:sequence>
1033+<xs:element name="CtgyDesc" type="Max35Text" minOccurs="0" maxOccurs="1"/>
1034+<xs:element name="Rate" type="PercentageRate" minOccurs="0" maxOccurs="1"/>
1035+<xs:element name="TaxblBaseAmt" type="CurrencyAndAmount" minOccurs="0" maxOccurs="1"/>
1036+<xs:element name="Amt" type="CurrencyAndAmount" minOccurs="0" maxOccurs="1"/>
1037+</xs:sequence>
1038+</xs:complexType>
1039+<xs:simpleType name="UPICIdentifier">
1040+<xs:restriction base="xs:string">
1041+<xs:pattern value="[0-9]{8,17}"/>
1042+</xs:restriction>
1043+</xs:simpleType>
1044+<xs:complexType name="pain.001.001.02">
1045+<xs:sequence>
1046+<xs:element name="GrpHdr" type="GroupHeader1"/>
1047+<xs:element name="PmtInf" type="PaymentInstructionInformation1" minOccurs="1" maxOccurs="unbounded"/>
1048+</xs:sequence>
1049+</xs:complexType>
1050+</xs:schema>
1051
1052=== added file 'account_banking_sepa_credit_transfer/data/pain.001.001.03.xsd'
1053--- account_banking_sepa_credit_transfer/data/pain.001.001.03.xsd 1970-01-01 00:00:00 +0000
1054+++ account_banking_sepa_credit_transfer/data/pain.001.001.03.xsd 2013-06-06 08:07:29 +0000
1055@@ -0,0 +1,921 @@
1056+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1057+<!--Generated by SWIFTStandards Workstation (build:R6.1.0.2) on 2009 Jan 08 17:30:53-->
1058+<xs:schema xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.001.03" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="urn:iso:std:iso:20022:tech:xsd:pain.001.001.03">
1059+ <xs:element name="Document" type="Document"/>
1060+ <xs:complexType name="AccountIdentification4Choice">
1061+ <xs:sequence>
1062+ <xs:choice>
1063+ <xs:element name="IBAN" type="IBAN2007Identifier"/>
1064+ <xs:element name="Othr" type="GenericAccountIdentification1"/>
1065+ </xs:choice>
1066+ </xs:sequence>
1067+ </xs:complexType>
1068+ <xs:complexType name="AccountSchemeName1Choice">
1069+ <xs:sequence>
1070+ <xs:choice>
1071+ <xs:element name="Cd" type="ExternalAccountIdentification1Code"/>
1072+ <xs:element name="Prtry" type="Max35Text"/>
1073+ </xs:choice>
1074+ </xs:sequence>
1075+ </xs:complexType>
1076+ <xs:simpleType name="ActiveOrHistoricCurrencyAndAmount_SimpleType">
1077+ <xs:restriction base="xs:decimal">
1078+ <xs:minInclusive value="0"/>
1079+ <xs:fractionDigits value="5"/>
1080+ <xs:totalDigits value="18"/>
1081+ </xs:restriction>
1082+ </xs:simpleType>
1083+ <xs:complexType name="ActiveOrHistoricCurrencyAndAmount">
1084+ <xs:simpleContent>
1085+ <xs:extension base="ActiveOrHistoricCurrencyAndAmount_SimpleType">
1086+ <xs:attribute name="Ccy" type="ActiveOrHistoricCurrencyCode" use="required"/>
1087+ </xs:extension>
1088+ </xs:simpleContent>
1089+ </xs:complexType>
1090+ <xs:simpleType name="ActiveOrHistoricCurrencyCode">
1091+ <xs:restriction base="xs:string">
1092+ <xs:pattern value="[A-Z]{3,3}"/>
1093+ </xs:restriction>
1094+ </xs:simpleType>
1095+ <xs:simpleType name="AddressType2Code">
1096+ <xs:restriction base="xs:string">
1097+ <xs:enumeration value="ADDR"/>
1098+ <xs:enumeration value="PBOX"/>
1099+ <xs:enumeration value="HOME"/>
1100+ <xs:enumeration value="BIZZ"/>
1101+ <xs:enumeration value="MLTO"/>
1102+ <xs:enumeration value="DLVY"/>
1103+ </xs:restriction>
1104+ </xs:simpleType>
1105+ <xs:complexType name="AmountType3Choice">
1106+ <xs:sequence>
1107+ <xs:choice>
1108+ <xs:element name="InstdAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
1109+ <xs:element name="EqvtAmt" type="EquivalentAmount2"/>
1110+ </xs:choice>
1111+ </xs:sequence>
1112+ </xs:complexType>
1113+ <xs:simpleType name="AnyBICIdentifier">
1114+ <xs:restriction base="xs:string">
1115+ <xs:pattern value="[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}"/>
1116+ </xs:restriction>
1117+ </xs:simpleType>
1118+ <xs:complexType name="Authorisation1Choice">
1119+ <xs:sequence>
1120+ <xs:choice>
1121+ <xs:element name="Cd" type="Authorisation1Code"/>
1122+ <xs:element name="Prtry" type="Max128Text"/>
1123+ </xs:choice>
1124+ </xs:sequence>
1125+ </xs:complexType>
1126+ <xs:simpleType name="Authorisation1Code">
1127+ <xs:restriction base="xs:string">
1128+ <xs:enumeration value="AUTH"/>
1129+ <xs:enumeration value="FDET"/>
1130+ <xs:enumeration value="FSUM"/>
1131+ <xs:enumeration value="ILEV"/>
1132+ </xs:restriction>
1133+ </xs:simpleType>
1134+ <xs:simpleType name="BICIdentifier">
1135+ <xs:restriction base="xs:string">
1136+ <xs:pattern value="[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}"/>
1137+ </xs:restriction>
1138+ </xs:simpleType>
1139+ <xs:simpleType name="BaseOneRate">
1140+ <xs:restriction base="xs:decimal">
1141+ <xs:fractionDigits value="10"/>
1142+ <xs:totalDigits value="11"/>
1143+ </xs:restriction>
1144+ </xs:simpleType>
1145+ <xs:simpleType name="BatchBookingIndicator">
1146+ <xs:restriction base="xs:boolean"/>
1147+ </xs:simpleType>
1148+ <xs:complexType name="BranchAndFinancialInstitutionIdentification4">
1149+ <xs:sequence>
1150+ <xs:element name="FinInstnId" type="FinancialInstitutionIdentification7"/>
1151+ <xs:element maxOccurs="1" minOccurs="0" name="BrnchId" type="BranchData2"/>
1152+ </xs:sequence>
1153+ </xs:complexType>
1154+ <xs:complexType name="BranchData2">
1155+ <xs:sequence>
1156+ <xs:element maxOccurs="1" minOccurs="0" name="Id" type="Max35Text"/>
1157+ <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max140Text"/>
1158+ <xs:element maxOccurs="1" minOccurs="0" name="PstlAdr" type="PostalAddress6"/>
1159+ </xs:sequence>
1160+ </xs:complexType>
1161+ <xs:complexType name="CashAccount16">
1162+ <xs:sequence>
1163+ <xs:element name="Id" type="AccountIdentification4Choice"/>
1164+ <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="CashAccountType2"/>
1165+ <xs:element maxOccurs="1" minOccurs="0" name="Ccy" type="ActiveOrHistoricCurrencyCode"/>
1166+ <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max70Text"/>
1167+ </xs:sequence>
1168+ </xs:complexType>
1169+ <xs:complexType name="CashAccountType2">
1170+ <xs:sequence>
1171+ <xs:choice>
1172+ <xs:element name="Cd" type="CashAccountType4Code"/>
1173+ <xs:element name="Prtry" type="Max35Text"/>
1174+ </xs:choice>
1175+ </xs:sequence>
1176+ </xs:complexType>
1177+ <xs:simpleType name="CashAccountType4Code">
1178+ <xs:restriction base="xs:string">
1179+ <xs:enumeration value="CASH"/>
1180+ <xs:enumeration value="CHAR"/>
1181+ <xs:enumeration value="COMM"/>
1182+ <xs:enumeration value="TAXE"/>
1183+ <xs:enumeration value="CISH"/>
1184+ <xs:enumeration value="TRAS"/>
1185+ <xs:enumeration value="SACC"/>
1186+ <xs:enumeration value="CACC"/>
1187+ <xs:enumeration value="SVGS"/>
1188+ <xs:enumeration value="ONDP"/>
1189+ <xs:enumeration value="MGLD"/>
1190+ <xs:enumeration value="NREX"/>
1191+ <xs:enumeration value="MOMA"/>
1192+ <xs:enumeration value="LOAN"/>
1193+ <xs:enumeration value="SLRY"/>
1194+ <xs:enumeration value="ODFT"/>
1195+ </xs:restriction>
1196+ </xs:simpleType>
1197+ <xs:complexType name="CategoryPurpose1Choice">
1198+ <xs:sequence>
1199+ <xs:choice>
1200+ <xs:element name="Cd" type="ExternalCategoryPurpose1Code"/>
1201+ <xs:element name="Prtry" type="Max35Text"/>
1202+ </xs:choice>
1203+ </xs:sequence>
1204+ </xs:complexType>
1205+ <xs:simpleType name="ChargeBearerType1Code">
1206+ <xs:restriction base="xs:string">
1207+ <xs:enumeration value="DEBT"/>
1208+ <xs:enumeration value="CRED"/>
1209+ <xs:enumeration value="SHAR"/>
1210+ <xs:enumeration value="SLEV"/>
1211+ </xs:restriction>
1212+ </xs:simpleType>
1213+ <xs:complexType name="Cheque6">
1214+ <xs:sequence>
1215+ <xs:element maxOccurs="1" minOccurs="0" name="ChqTp" type="ChequeType2Code"/>
1216+ <xs:element maxOccurs="1" minOccurs="0" name="ChqNb" type="Max35Text"/>
1217+ <xs:element maxOccurs="1" minOccurs="0" name="ChqFr" type="NameAndAddress10"/>
1218+ <xs:element maxOccurs="1" minOccurs="0" name="DlvryMtd" type="ChequeDeliveryMethod1Choice"/>
1219+ <xs:element maxOccurs="1" minOccurs="0" name="DlvrTo" type="NameAndAddress10"/>
1220+ <xs:element maxOccurs="1" minOccurs="0" name="InstrPrty" type="Priority2Code"/>
1221+ <xs:element maxOccurs="1" minOccurs="0" name="ChqMtrtyDt" type="ISODate"/>
1222+ <xs:element maxOccurs="1" minOccurs="0" name="FrmsCd" type="Max35Text"/>
1223+ <xs:element maxOccurs="2" minOccurs="0" name="MemoFld" type="Max35Text"/>
1224+ <xs:element maxOccurs="1" minOccurs="0" name="RgnlClrZone" type="Max35Text"/>
1225+ <xs:element maxOccurs="1" minOccurs="0" name="PrtLctn" type="Max35Text"/>
1226+ </xs:sequence>
1227+ </xs:complexType>
1228+ <xs:simpleType name="ChequeDelivery1Code">
1229+ <xs:restriction base="xs:string">
1230+ <xs:enumeration value="MLDB"/>
1231+ <xs:enumeration value="MLCD"/>
1232+ <xs:enumeration value="MLFA"/>
1233+ <xs:enumeration value="CRDB"/>
1234+ <xs:enumeration value="CRCD"/>
1235+ <xs:enumeration value="CRFA"/>
1236+ <xs:enumeration value="PUDB"/>
1237+ <xs:enumeration value="PUCD"/>
1238+ <xs:enumeration value="PUFA"/>
1239+ <xs:enumeration value="RGDB"/>
1240+ <xs:enumeration value="RGCD"/>
1241+ <xs:enumeration value="RGFA"/>
1242+ </xs:restriction>
1243+ </xs:simpleType>
1244+ <xs:complexType name="ChequeDeliveryMethod1Choice">
1245+ <xs:sequence>
1246+ <xs:choice>
1247+ <xs:element name="Cd" type="ChequeDelivery1Code"/>
1248+ <xs:element name="Prtry" type="Max35Text"/>
1249+ </xs:choice>
1250+ </xs:sequence>
1251+ </xs:complexType>
1252+ <xs:simpleType name="ChequeType2Code">
1253+ <xs:restriction base="xs:string">
1254+ <xs:enumeration value="CCHQ"/>
1255+ <xs:enumeration value="CCCH"/>
1256+ <xs:enumeration value="BCHQ"/>
1257+ <xs:enumeration value="DRFT"/>
1258+ <xs:enumeration value="ELDR"/>
1259+ </xs:restriction>
1260+ </xs:simpleType>
1261+ <xs:complexType name="ClearingSystemIdentification2Choice">
1262+ <xs:sequence>
1263+ <xs:choice>
1264+ <xs:element name="Cd" type="ExternalClearingSystemIdentification1Code"/>
1265+ <xs:element name="Prtry" type="Max35Text"/>
1266+ </xs:choice>
1267+ </xs:sequence>
1268+ </xs:complexType>
1269+ <xs:complexType name="ClearingSystemMemberIdentification2">
1270+ <xs:sequence>
1271+ <xs:element maxOccurs="1" minOccurs="0" name="ClrSysId" type="ClearingSystemIdentification2Choice"/>
1272+ <xs:element name="MmbId" type="Max35Text"/>
1273+ </xs:sequence>
1274+ </xs:complexType>
1275+ <xs:complexType name="ContactDetails2">
1276+ <xs:sequence>
1277+ <xs:element maxOccurs="1" minOccurs="0" name="NmPrfx" type="NamePrefix1Code"/>
1278+ <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max140Text"/>
1279+ <xs:element maxOccurs="1" minOccurs="0" name="PhneNb" type="PhoneNumber"/>
1280+ <xs:element maxOccurs="1" minOccurs="0" name="MobNb" type="PhoneNumber"/>
1281+ <xs:element maxOccurs="1" minOccurs="0" name="FaxNb" type="PhoneNumber"/>
1282+ <xs:element maxOccurs="1" minOccurs="0" name="EmailAdr" type="Max2048Text"/>
1283+ <xs:element maxOccurs="1" minOccurs="0" name="Othr" type="Max35Text"/>
1284+ </xs:sequence>
1285+ </xs:complexType>
1286+ <xs:simpleType name="CountryCode">
1287+ <xs:restriction base="xs:string">
1288+ <xs:pattern value="[A-Z]{2,2}"/>
1289+ </xs:restriction>
1290+ </xs:simpleType>
1291+ <xs:simpleType name="CreditDebitCode">
1292+ <xs:restriction base="xs:string">
1293+ <xs:enumeration value="CRDT"/>
1294+ <xs:enumeration value="DBIT"/>
1295+ </xs:restriction>
1296+ </xs:simpleType>
1297+ <xs:complexType name="CreditTransferTransactionInformation10">
1298+ <xs:sequence>
1299+ <xs:element name="PmtId" type="PaymentIdentification1"/>
1300+ <xs:element maxOccurs="1" minOccurs="0" name="PmtTpInf" type="PaymentTypeInformation19"/>
1301+ <xs:element name="Amt" type="AmountType3Choice"/>
1302+ <xs:element maxOccurs="1" minOccurs="0" name="XchgRateInf" type="ExchangeRateInformation1"/>
1303+ <xs:element maxOccurs="1" minOccurs="0" name="ChrgBr" type="ChargeBearerType1Code"/>
1304+ <xs:element maxOccurs="1" minOccurs="0" name="ChqInstr" type="Cheque6"/>
1305+ <xs:element maxOccurs="1" minOccurs="0" name="UltmtDbtr" type="PartyIdentification32"/>
1306+ <xs:element maxOccurs="1" minOccurs="0" name="IntrmyAgt1" type="BranchAndFinancialInstitutionIdentification4"/>
1307+ <xs:element maxOccurs="1" minOccurs="0" name="IntrmyAgt1Acct" type="CashAccount16"/>
1308+ <xs:element maxOccurs="1" minOccurs="0" name="IntrmyAgt2" type="BranchAndFinancialInstitutionIdentification4"/>
1309+ <xs:element maxOccurs="1" minOccurs="0" name="IntrmyAgt2Acct" type="CashAccount16"/>
1310+ <xs:element maxOccurs="1" minOccurs="0" name="IntrmyAgt3" type="BranchAndFinancialInstitutionIdentification4"/>
1311+ <xs:element maxOccurs="1" minOccurs="0" name="IntrmyAgt3Acct" type="CashAccount16"/>
1312+ <xs:element maxOccurs="1" minOccurs="0" name="CdtrAgt" type="BranchAndFinancialInstitutionIdentification4"/>
1313+ <xs:element maxOccurs="1" minOccurs="0" name="CdtrAgtAcct" type="CashAccount16"/>
1314+ <xs:element maxOccurs="1" minOccurs="0" name="Cdtr" type="PartyIdentification32"/>
1315+ <xs:element maxOccurs="1" minOccurs="0" name="CdtrAcct" type="CashAccount16"/>
1316+ <xs:element maxOccurs="1" minOccurs="0" name="UltmtCdtr" type="PartyIdentification32"/>
1317+ <xs:element maxOccurs="unbounded" minOccurs="0" name="InstrForCdtrAgt" type="InstructionForCreditorAgent1"/>
1318+ <xs:element maxOccurs="1" minOccurs="0" name="InstrForDbtrAgt" type="Max140Text"/>
1319+ <xs:element maxOccurs="1" minOccurs="0" name="Purp" type="Purpose2Choice"/>
1320+ <xs:element maxOccurs="10" minOccurs="0" name="RgltryRptg" type="RegulatoryReporting3"/>
1321+ <xs:element maxOccurs="1" minOccurs="0" name="Tax" type="TaxInformation3"/>
1322+ <xs:element maxOccurs="10" minOccurs="0" name="RltdRmtInf" type="RemittanceLocation2"/>
1323+ <xs:element maxOccurs="1" minOccurs="0" name="RmtInf" type="RemittanceInformation5"/>
1324+ </xs:sequence>
1325+ </xs:complexType>
1326+ <xs:complexType name="CreditorReferenceInformation2">
1327+ <xs:sequence>
1328+ <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="CreditorReferenceType2"/>
1329+ <xs:element maxOccurs="1" minOccurs="0" name="Ref" type="Max35Text"/>
1330+ </xs:sequence>
1331+ </xs:complexType>
1332+ <xs:complexType name="CreditorReferenceType1Choice">
1333+ <xs:sequence>
1334+ <xs:choice>
1335+ <xs:element name="Cd" type="DocumentType3Code"/>
1336+ <xs:element name="Prtry" type="Max35Text"/>
1337+ </xs:choice>
1338+ </xs:sequence>
1339+ </xs:complexType>
1340+ <xs:complexType name="CreditorReferenceType2">
1341+ <xs:sequence>
1342+ <xs:element name="CdOrPrtry" type="CreditorReferenceType1Choice"/>
1343+ <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
1344+ </xs:sequence>
1345+ </xs:complexType>
1346+ <xs:complexType name="CustomerCreditTransferInitiationV03">
1347+ <xs:sequence>
1348+ <xs:element name="GrpHdr" type="GroupHeader32"/>
1349+ <xs:element maxOccurs="unbounded" minOccurs="1" name="PmtInf" type="PaymentInstructionInformation3"/>
1350+ </xs:sequence>
1351+ </xs:complexType>
1352+ <xs:complexType name="DateAndPlaceOfBirth">
1353+ <xs:sequence>
1354+ <xs:element name="BirthDt" type="ISODate"/>
1355+ <xs:element maxOccurs="1" minOccurs="0" name="PrvcOfBirth" type="Max35Text"/>
1356+ <xs:element name="CityOfBirth" type="Max35Text"/>
1357+ <xs:element name="CtryOfBirth" type="CountryCode"/>
1358+ </xs:sequence>
1359+ </xs:complexType>
1360+ <xs:complexType name="DatePeriodDetails">
1361+ <xs:sequence>
1362+ <xs:element name="FrDt" type="ISODate"/>
1363+ <xs:element name="ToDt" type="ISODate"/>
1364+ </xs:sequence>
1365+ </xs:complexType>
1366+ <xs:simpleType name="DecimalNumber">
1367+ <xs:restriction base="xs:decimal">
1368+ <xs:fractionDigits value="17"/>
1369+ <xs:totalDigits value="18"/>
1370+ </xs:restriction>
1371+ </xs:simpleType>
1372+ <xs:complexType name="Document">
1373+ <xs:sequence>
1374+ <xs:element name="CstmrCdtTrfInitn" type="CustomerCreditTransferInitiationV03"/>
1375+ </xs:sequence>
1376+ </xs:complexType>
1377+ <xs:complexType name="DocumentAdjustment1">
1378+ <xs:sequence>
1379+ <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
1380+ <xs:element maxOccurs="1" minOccurs="0" name="CdtDbtInd" type="CreditDebitCode"/>
1381+ <xs:element maxOccurs="1" minOccurs="0" name="Rsn" type="Max4Text"/>
1382+ <xs:element maxOccurs="1" minOccurs="0" name="AddtlInf" type="Max140Text"/>
1383+ </xs:sequence>
1384+ </xs:complexType>
1385+ <xs:simpleType name="DocumentType3Code">
1386+ <xs:restriction base="xs:string">
1387+ <xs:enumeration value="RADM"/>
1388+ <xs:enumeration value="RPIN"/>
1389+ <xs:enumeration value="FXDR"/>
1390+ <xs:enumeration value="DISP"/>
1391+ <xs:enumeration value="PUOR"/>
1392+ <xs:enumeration value="SCOR"/>
1393+ </xs:restriction>
1394+ </xs:simpleType>
1395+ <xs:simpleType name="DocumentType5Code">
1396+ <xs:restriction base="xs:string">
1397+ <xs:enumeration value="MSIN"/>
1398+ <xs:enumeration value="CNFA"/>
1399+ <xs:enumeration value="DNFA"/>
1400+ <xs:enumeration value="CINV"/>
1401+ <xs:enumeration value="CREN"/>
1402+ <xs:enumeration value="DEBN"/>
1403+ <xs:enumeration value="HIRI"/>
1404+ <xs:enumeration value="SBIN"/>
1405+ <xs:enumeration value="CMCN"/>
1406+ <xs:enumeration value="SOAC"/>
1407+ <xs:enumeration value="DISP"/>
1408+ <xs:enumeration value="BOLD"/>
1409+ <xs:enumeration value="VCHR"/>
1410+ <xs:enumeration value="AROI"/>
1411+ <xs:enumeration value="TSUT"/>
1412+ </xs:restriction>
1413+ </xs:simpleType>
1414+ <xs:complexType name="EquivalentAmount2">
1415+ <xs:sequence>
1416+ <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
1417+ <xs:element name="CcyOfTrf" type="ActiveOrHistoricCurrencyCode"/>
1418+ </xs:sequence>
1419+ </xs:complexType>
1420+ <xs:complexType name="ExchangeRateInformation1">
1421+ <xs:sequence>
1422+ <xs:element maxOccurs="1" minOccurs="0" name="XchgRate" type="BaseOneRate"/>
1423+ <xs:element maxOccurs="1" minOccurs="0" name="RateTp" type="ExchangeRateType1Code"/>
1424+ <xs:element maxOccurs="1" minOccurs="0" name="CtrctId" type="Max35Text"/>
1425+ </xs:sequence>
1426+ </xs:complexType>
1427+ <xs:simpleType name="ExchangeRateType1Code">
1428+ <xs:restriction base="xs:string">
1429+ <xs:enumeration value="SPOT"/>
1430+ <xs:enumeration value="SALE"/>
1431+ <xs:enumeration value="AGRD"/>
1432+ </xs:restriction>
1433+ </xs:simpleType>
1434+ <xs:simpleType name="ExternalAccountIdentification1Code">
1435+ <xs:restriction base="xs:string">
1436+ <xs:minLength value="1"/>
1437+ <xs:maxLength value="4"/>
1438+ </xs:restriction>
1439+ </xs:simpleType>
1440+ <xs:simpleType name="ExternalCategoryPurpose1Code">
1441+ <xs:restriction base="xs:string">
1442+ <xs:minLength value="1"/>
1443+ <xs:maxLength value="4"/>
1444+ </xs:restriction>
1445+ </xs:simpleType>
1446+ <xs:simpleType name="ExternalClearingSystemIdentification1Code">
1447+ <xs:restriction base="xs:string">
1448+ <xs:minLength value="1"/>
1449+ <xs:maxLength value="5"/>
1450+ </xs:restriction>
1451+ </xs:simpleType>
1452+ <xs:simpleType name="ExternalFinancialInstitutionIdentification1Code">
1453+ <xs:restriction base="xs:string">
1454+ <xs:minLength value="1"/>
1455+ <xs:maxLength value="4"/>
1456+ </xs:restriction>
1457+ </xs:simpleType>
1458+ <xs:simpleType name="ExternalLocalInstrument1Code">
1459+ <xs:restriction base="xs:string">
1460+ <xs:minLength value="1"/>
1461+ <xs:maxLength value="35"/>
1462+ </xs:restriction>
1463+ </xs:simpleType>
1464+ <xs:simpleType name="ExternalOrganisationIdentification1Code">
1465+ <xs:restriction base="xs:string">
1466+ <xs:minLength value="1"/>
1467+ <xs:maxLength value="4"/>
1468+ </xs:restriction>
1469+ </xs:simpleType>
1470+ <xs:simpleType name="ExternalPersonIdentification1Code">
1471+ <xs:restriction base="xs:string">
1472+ <xs:minLength value="1"/>
1473+ <xs:maxLength value="4"/>
1474+ </xs:restriction>
1475+ </xs:simpleType>
1476+ <xs:simpleType name="ExternalPurpose1Code">
1477+ <xs:restriction base="xs:string">
1478+ <xs:minLength value="1"/>
1479+ <xs:maxLength value="4"/>
1480+ </xs:restriction>
1481+ </xs:simpleType>
1482+ <xs:simpleType name="ExternalServiceLevel1Code">
1483+ <xs:restriction base="xs:string">
1484+ <xs:minLength value="1"/>
1485+ <xs:maxLength value="4"/>
1486+ </xs:restriction>
1487+ </xs:simpleType>
1488+ <xs:complexType name="FinancialIdentificationSchemeName1Choice">
1489+ <xs:sequence>
1490+ <xs:choice>
1491+ <xs:element name="Cd" type="ExternalFinancialInstitutionIdentification1Code"/>
1492+ <xs:element name="Prtry" type="Max35Text"/>
1493+ </xs:choice>
1494+ </xs:sequence>
1495+ </xs:complexType>
1496+ <xs:complexType name="FinancialInstitutionIdentification7">
1497+ <xs:sequence>
1498+ <xs:element maxOccurs="1" minOccurs="0" name="BIC" type="BICIdentifier"/>
1499+ <xs:element maxOccurs="1" minOccurs="0" name="ClrSysMmbId" type="ClearingSystemMemberIdentification2"/>
1500+ <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max140Text"/>
1501+ <xs:element maxOccurs="1" minOccurs="0" name="PstlAdr" type="PostalAddress6"/>
1502+ <xs:element maxOccurs="1" minOccurs="0" name="Othr" type="GenericFinancialIdentification1"/>
1503+ </xs:sequence>
1504+ </xs:complexType>
1505+ <xs:complexType name="GenericAccountIdentification1">
1506+ <xs:sequence>
1507+ <xs:element name="Id" type="Max34Text"/>
1508+ <xs:element maxOccurs="1" minOccurs="0" name="SchmeNm" type="AccountSchemeName1Choice"/>
1509+ <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
1510+ </xs:sequence>
1511+ </xs:complexType>
1512+ <xs:complexType name="GenericFinancialIdentification1">
1513+ <xs:sequence>
1514+ <xs:element name="Id" type="Max35Text"/>
1515+ <xs:element maxOccurs="1" minOccurs="0" name="SchmeNm" type="FinancialIdentificationSchemeName1Choice"/>
1516+ <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
1517+ </xs:sequence>
1518+ </xs:complexType>
1519+ <xs:complexType name="GenericOrganisationIdentification1">
1520+ <xs:sequence>
1521+ <xs:element name="Id" type="Max35Text"/>
1522+ <xs:element maxOccurs="1" minOccurs="0" name="SchmeNm" type="OrganisationIdentificationSchemeName1Choice"/>
1523+ <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
1524+ </xs:sequence>
1525+ </xs:complexType>
1526+ <xs:complexType name="GenericPersonIdentification1">
1527+ <xs:sequence>
1528+ <xs:element name="Id" type="Max35Text"/>
1529+ <xs:element maxOccurs="1" minOccurs="0" name="SchmeNm" type="PersonIdentificationSchemeName1Choice"/>
1530+ <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
1531+ </xs:sequence>
1532+ </xs:complexType>
1533+ <xs:complexType name="GroupHeader32">
1534+ <xs:sequence>
1535+ <xs:element name="MsgId" type="Max35Text"/>
1536+ <xs:element name="CreDtTm" type="ISODateTime"/>
1537+ <xs:element maxOccurs="2" minOccurs="0" name="Authstn" type="Authorisation1Choice"/>
1538+ <xs:element name="NbOfTxs" type="Max15NumericText"/>
1539+ <xs:element maxOccurs="1" minOccurs="0" name="CtrlSum" type="DecimalNumber"/>
1540+ <xs:element name="InitgPty" type="PartyIdentification32"/>
1541+ <xs:element maxOccurs="1" minOccurs="0" name="FwdgAgt" type="BranchAndFinancialInstitutionIdentification4"/>
1542+ </xs:sequence>
1543+ </xs:complexType>
1544+ <xs:simpleType name="IBAN2007Identifier">
1545+ <xs:restriction base="xs:string">
1546+ <xs:pattern value="[A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}"/>
1547+ </xs:restriction>
1548+ </xs:simpleType>
1549+ <xs:simpleType name="ISODate">
1550+ <xs:restriction base="xs:date"/>
1551+ </xs:simpleType>
1552+ <xs:simpleType name="ISODateTime">
1553+ <xs:restriction base="xs:dateTime"/>
1554+ </xs:simpleType>
1555+ <xs:simpleType name="Instruction3Code">
1556+ <xs:restriction base="xs:string">
1557+ <xs:enumeration value="CHQB"/>
1558+ <xs:enumeration value="HOLD"/>
1559+ <xs:enumeration value="PHOB"/>
1560+ <xs:enumeration value="TELB"/>
1561+ </xs:restriction>
1562+ </xs:simpleType>
1563+ <xs:complexType name="InstructionForCreditorAgent1">
1564+ <xs:sequence>
1565+ <xs:element maxOccurs="1" minOccurs="0" name="Cd" type="Instruction3Code"/>
1566+ <xs:element maxOccurs="1" minOccurs="0" name="InstrInf" type="Max140Text"/>
1567+ </xs:sequence>
1568+ </xs:complexType>
1569+ <xs:complexType name="LocalInstrument2Choice">
1570+ <xs:sequence>
1571+ <xs:choice>
1572+ <xs:element name="Cd" type="ExternalLocalInstrument1Code"/>
1573+ <xs:element name="Prtry" type="Max35Text"/>
1574+ </xs:choice>
1575+ </xs:sequence>
1576+ </xs:complexType>
1577+ <xs:simpleType name="Max10Text">
1578+ <xs:restriction base="xs:string">
1579+ <xs:minLength value="1"/>
1580+ <xs:maxLength value="10"/>
1581+ </xs:restriction>
1582+ </xs:simpleType>
1583+ <xs:simpleType name="Max128Text">
1584+ <xs:restriction base="xs:string">
1585+ <xs:minLength value="1"/>
1586+ <xs:maxLength value="128"/>
1587+ </xs:restriction>
1588+ </xs:simpleType>
1589+ <xs:simpleType name="Max140Text">
1590+ <xs:restriction base="xs:string">
1591+ <xs:minLength value="1"/>
1592+ <xs:maxLength value="140"/>
1593+ </xs:restriction>
1594+ </xs:simpleType>
1595+ <xs:simpleType name="Max15NumericText">
1596+ <xs:restriction base="xs:string">
1597+ <xs:pattern value="[0-9]{1,15}"/>
1598+ </xs:restriction>
1599+ </xs:simpleType>
1600+ <xs:simpleType name="Max16Text">
1601+ <xs:restriction base="xs:string">
1602+ <xs:minLength value="1"/>
1603+ <xs:maxLength value="16"/>
1604+ </xs:restriction>
1605+ </xs:simpleType>
1606+ <xs:simpleType name="Max2048Text">
1607+ <xs:restriction base="xs:string">
1608+ <xs:minLength value="1"/>
1609+ <xs:maxLength value="2048"/>
1610+ </xs:restriction>
1611+ </xs:simpleType>
1612+ <xs:simpleType name="Max34Text">
1613+ <xs:restriction base="xs:string">
1614+ <xs:minLength value="1"/>
1615+ <xs:maxLength value="34"/>
1616+ </xs:restriction>
1617+ </xs:simpleType>
1618+ <xs:simpleType name="Max35Text">
1619+ <xs:restriction base="xs:string">
1620+ <xs:minLength value="1"/>
1621+ <xs:maxLength value="35"/>
1622+ </xs:restriction>
1623+ </xs:simpleType>
1624+ <xs:simpleType name="Max4Text">
1625+ <xs:restriction base="xs:string">
1626+ <xs:minLength value="1"/>
1627+ <xs:maxLength value="4"/>
1628+ </xs:restriction>
1629+ </xs:simpleType>
1630+ <xs:simpleType name="Max70Text">
1631+ <xs:restriction base="xs:string">
1632+ <xs:minLength value="1"/>
1633+ <xs:maxLength value="70"/>
1634+ </xs:restriction>
1635+ </xs:simpleType>
1636+ <xs:complexType name="NameAndAddress10">
1637+ <xs:sequence>
1638+ <xs:element name="Nm" type="Max140Text"/>
1639+ <xs:element name="Adr" type="PostalAddress6"/>
1640+ </xs:sequence>
1641+ </xs:complexType>
1642+ <xs:simpleType name="NamePrefix1Code">
1643+ <xs:restriction base="xs:string">
1644+ <xs:enumeration value="DOCT"/>
1645+ <xs:enumeration value="MIST"/>
1646+ <xs:enumeration value="MISS"/>
1647+ <xs:enumeration value="MADM"/>
1648+ </xs:restriction>
1649+ </xs:simpleType>
1650+ <xs:simpleType name="Number">
1651+ <xs:restriction base="xs:decimal">
1652+ <xs:fractionDigits value="0"/>
1653+ <xs:totalDigits value="18"/>
1654+ </xs:restriction>
1655+ </xs:simpleType>
1656+ <xs:complexType name="OrganisationIdentification4">
1657+ <xs:sequence>
1658+ <xs:element maxOccurs="1" minOccurs="0" name="BICOrBEI" type="AnyBICIdentifier"/>
1659+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Othr" type="GenericOrganisationIdentification1"/>
1660+ </xs:sequence>
1661+ </xs:complexType>
1662+ <xs:complexType name="OrganisationIdentificationSchemeName1Choice">
1663+ <xs:sequence>
1664+ <xs:choice>
1665+ <xs:element name="Cd" type="ExternalOrganisationIdentification1Code"/>
1666+ <xs:element name="Prtry" type="Max35Text"/>
1667+ </xs:choice>
1668+ </xs:sequence>
1669+ </xs:complexType>
1670+ <xs:complexType name="Party6Choice">
1671+ <xs:sequence>
1672+ <xs:choice>
1673+ <xs:element name="OrgId" type="OrganisationIdentification4"/>
1674+ <xs:element name="PrvtId" type="PersonIdentification5"/>
1675+ </xs:choice>
1676+ </xs:sequence>
1677+ </xs:complexType>
1678+ <xs:complexType name="PartyIdentification32">
1679+ <xs:sequence>
1680+ <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max140Text"/>
1681+ <xs:element maxOccurs="1" minOccurs="0" name="PstlAdr" type="PostalAddress6"/>
1682+ <xs:element maxOccurs="1" minOccurs="0" name="Id" type="Party6Choice"/>
1683+ <xs:element maxOccurs="1" minOccurs="0" name="CtryOfRes" type="CountryCode"/>
1684+ <xs:element maxOccurs="1" minOccurs="0" name="CtctDtls" type="ContactDetails2"/>
1685+ </xs:sequence>
1686+ </xs:complexType>
1687+ <xs:complexType name="PaymentIdentification1">
1688+ <xs:sequence>
1689+ <xs:element maxOccurs="1" minOccurs="0" name="InstrId" type="Max35Text"/>
1690+ <xs:element name="EndToEndId" type="Max35Text"/>
1691+ </xs:sequence>
1692+ </xs:complexType>
1693+ <xs:complexType name="PaymentInstructionInformation3">
1694+ <xs:sequence>
1695+ <xs:element name="PmtInfId" type="Max35Text"/>
1696+ <xs:element name="PmtMtd" type="PaymentMethod3Code"/>
1697+ <xs:element maxOccurs="1" minOccurs="0" name="BtchBookg" type="BatchBookingIndicator"/>
1698+ <xs:element maxOccurs="1" minOccurs="0" name="NbOfTxs" type="Max15NumericText"/>
1699+ <xs:element maxOccurs="1" minOccurs="0" name="CtrlSum" type="DecimalNumber"/>
1700+ <xs:element maxOccurs="1" minOccurs="0" name="PmtTpInf" type="PaymentTypeInformation19"/>
1701+ <xs:element name="ReqdExctnDt" type="ISODate"/>
1702+ <xs:element maxOccurs="1" minOccurs="0" name="PoolgAdjstmntDt" type="ISODate"/>
1703+ <xs:element name="Dbtr" type="PartyIdentification32"/>
1704+ <xs:element name="DbtrAcct" type="CashAccount16"/>
1705+ <xs:element name="DbtrAgt" type="BranchAndFinancialInstitutionIdentification4"/>
1706+ <xs:element maxOccurs="1" minOccurs="0" name="DbtrAgtAcct" type="CashAccount16"/>
1707+ <xs:element maxOccurs="1" minOccurs="0" name="UltmtDbtr" type="PartyIdentification32"/>
1708+ <xs:element maxOccurs="1" minOccurs="0" name="ChrgBr" type="ChargeBearerType1Code"/>
1709+ <xs:element maxOccurs="1" minOccurs="0" name="ChrgsAcct" type="CashAccount16"/>
1710+ <xs:element maxOccurs="1" minOccurs="0" name="ChrgsAcctAgt" type="BranchAndFinancialInstitutionIdentification4"/>
1711+ <xs:element maxOccurs="unbounded" minOccurs="1" name="CdtTrfTxInf" type="CreditTransferTransactionInformation10"/>
1712+ </xs:sequence>
1713+ </xs:complexType>
1714+ <xs:simpleType name="PaymentMethod3Code">
1715+ <xs:restriction base="xs:string">
1716+ <xs:enumeration value="CHK"/>
1717+ <xs:enumeration value="TRF"/>
1718+ <xs:enumeration value="TRA"/>
1719+ </xs:restriction>
1720+ </xs:simpleType>
1721+ <xs:complexType name="PaymentTypeInformation19">
1722+ <xs:sequence>
1723+ <xs:element maxOccurs="1" minOccurs="0" name="InstrPrty" type="Priority2Code"/>
1724+ <xs:element maxOccurs="1" minOccurs="0" name="SvcLvl" type="ServiceLevel8Choice"/>
1725+ <xs:element maxOccurs="1" minOccurs="0" name="LclInstrm" type="LocalInstrument2Choice"/>
1726+ <xs:element maxOccurs="1" minOccurs="0" name="CtgyPurp" type="CategoryPurpose1Choice"/>
1727+ </xs:sequence>
1728+ </xs:complexType>
1729+ <xs:simpleType name="PercentageRate">
1730+ <xs:restriction base="xs:decimal">
1731+ <xs:fractionDigits value="10"/>
1732+ <xs:totalDigits value="11"/>
1733+ </xs:restriction>
1734+ </xs:simpleType>
1735+ <xs:complexType name="PersonIdentification5">
1736+ <xs:sequence>
1737+ <xs:element maxOccurs="1" minOccurs="0" name="DtAndPlcOfBirth" type="DateAndPlaceOfBirth"/>
1738+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Othr" type="GenericPersonIdentification1"/>
1739+ </xs:sequence>
1740+ </xs:complexType>
1741+ <xs:complexType name="PersonIdentificationSchemeName1Choice">
1742+ <xs:sequence>
1743+ <xs:choice>
1744+ <xs:element name="Cd" type="ExternalPersonIdentification1Code"/>
1745+ <xs:element name="Prtry" type="Max35Text"/>
1746+ </xs:choice>
1747+ </xs:sequence>
1748+ </xs:complexType>
1749+ <xs:simpleType name="PhoneNumber">
1750+ <xs:restriction base="xs:string">
1751+ <xs:pattern value="\+[0-9]{1,3}-[0-9()+\-]{1,30}"/>
1752+ </xs:restriction>
1753+ </xs:simpleType>
1754+ <xs:complexType name="PostalAddress6">
1755+ <xs:sequence>
1756+ <xs:element maxOccurs="1" minOccurs="0" name="AdrTp" type="AddressType2Code"/>
1757+ <xs:element maxOccurs="1" minOccurs="0" name="Dept" type="Max70Text"/>
1758+ <xs:element maxOccurs="1" minOccurs="0" name="SubDept" type="Max70Text"/>
1759+ <xs:element maxOccurs="1" minOccurs="0" name="StrtNm" type="Max70Text"/>
1760+ <xs:element maxOccurs="1" minOccurs="0" name="BldgNb" type="Max16Text"/>
1761+ <xs:element maxOccurs="1" minOccurs="0" name="PstCd" type="Max16Text"/>
1762+ <xs:element maxOccurs="1" minOccurs="0" name="TwnNm" type="Max35Text"/>
1763+ <xs:element maxOccurs="1" minOccurs="0" name="CtrySubDvsn" type="Max35Text"/>
1764+ <xs:element maxOccurs="1" minOccurs="0" name="Ctry" type="CountryCode"/>
1765+ <xs:element maxOccurs="7" minOccurs="0" name="AdrLine" type="Max70Text"/>
1766+ </xs:sequence>
1767+ </xs:complexType>
1768+ <xs:simpleType name="Priority2Code">
1769+ <xs:restriction base="xs:string">
1770+ <xs:enumeration value="HIGH"/>
1771+ <xs:enumeration value="NORM"/>
1772+ </xs:restriction>
1773+ </xs:simpleType>
1774+ <xs:complexType name="Purpose2Choice">
1775+ <xs:sequence>
1776+ <xs:choice>
1777+ <xs:element name="Cd" type="ExternalPurpose1Code"/>
1778+ <xs:element name="Prtry" type="Max35Text"/>
1779+ </xs:choice>
1780+ </xs:sequence>
1781+ </xs:complexType>
1782+ <xs:complexType name="ReferredDocumentInformation3">
1783+ <xs:sequence>
1784+ <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="ReferredDocumentType2"/>
1785+ <xs:element maxOccurs="1" minOccurs="0" name="Nb" type="Max35Text"/>
1786+ <xs:element maxOccurs="1" minOccurs="0" name="RltdDt" type="ISODate"/>
1787+ </xs:sequence>
1788+ </xs:complexType>
1789+ <xs:complexType name="ReferredDocumentType1Choice">
1790+ <xs:sequence>
1791+ <xs:choice>
1792+ <xs:element name="Cd" type="DocumentType5Code"/>
1793+ <xs:element name="Prtry" type="Max35Text"/>
1794+ </xs:choice>
1795+ </xs:sequence>
1796+ </xs:complexType>
1797+ <xs:complexType name="ReferredDocumentType2">
1798+ <xs:sequence>
1799+ <xs:element name="CdOrPrtry" type="ReferredDocumentType1Choice"/>
1800+ <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
1801+ </xs:sequence>
1802+ </xs:complexType>
1803+ <xs:complexType name="RegulatoryAuthority2">
1804+ <xs:sequence>
1805+ <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max140Text"/>
1806+ <xs:element maxOccurs="1" minOccurs="0" name="Ctry" type="CountryCode"/>
1807+ </xs:sequence>
1808+ </xs:complexType>
1809+ <xs:complexType name="RegulatoryReporting3">
1810+ <xs:sequence>
1811+ <xs:element maxOccurs="1" minOccurs="0" name="DbtCdtRptgInd" type="RegulatoryReportingType1Code"/>
1812+ <xs:element maxOccurs="1" minOccurs="0" name="Authrty" type="RegulatoryAuthority2"/>
1813+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Dtls" type="StructuredRegulatoryReporting3"/>
1814+ </xs:sequence>
1815+ </xs:complexType>
1816+ <xs:simpleType name="RegulatoryReportingType1Code">
1817+ <xs:restriction base="xs:string">
1818+ <xs:enumeration value="CRED"/>
1819+ <xs:enumeration value="DEBT"/>
1820+ <xs:enumeration value="BOTH"/>
1821+ </xs:restriction>
1822+ </xs:simpleType>
1823+ <xs:complexType name="RemittanceAmount1">
1824+ <xs:sequence>
1825+ <xs:element maxOccurs="1" minOccurs="0" name="DuePyblAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
1826+ <xs:element maxOccurs="1" minOccurs="0" name="DscntApldAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
1827+ <xs:element maxOccurs="1" minOccurs="0" name="CdtNoteAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
1828+ <xs:element maxOccurs="1" minOccurs="0" name="TaxAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
1829+ <xs:element maxOccurs="unbounded" minOccurs="0" name="AdjstmntAmtAndRsn" type="DocumentAdjustment1"/>
1830+ <xs:element maxOccurs="1" minOccurs="0" name="RmtdAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
1831+ </xs:sequence>
1832+ </xs:complexType>
1833+ <xs:complexType name="RemittanceInformation5">
1834+ <xs:sequence>
1835+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Ustrd" type="Max140Text"/>
1836+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Strd" type="StructuredRemittanceInformation7"/>
1837+ </xs:sequence>
1838+ </xs:complexType>
1839+ <xs:complexType name="RemittanceLocation2">
1840+ <xs:sequence>
1841+ <xs:element maxOccurs="1" minOccurs="0" name="RmtId" type="Max35Text"/>
1842+ <xs:element maxOccurs="1" minOccurs="0" name="RmtLctnMtd" type="RemittanceLocationMethod2Code"/>
1843+ <xs:element maxOccurs="1" minOccurs="0" name="RmtLctnElctrncAdr" type="Max2048Text"/>
1844+ <xs:element maxOccurs="1" minOccurs="0" name="RmtLctnPstlAdr" type="NameAndAddress10"/>
1845+ </xs:sequence>
1846+ </xs:complexType>
1847+ <xs:simpleType name="RemittanceLocationMethod2Code">
1848+ <xs:restriction base="xs:string">
1849+ <xs:enumeration value="FAXI"/>
1850+ <xs:enumeration value="EDIC"/>
1851+ <xs:enumeration value="URID"/>
1852+ <xs:enumeration value="EMAL"/>
1853+ <xs:enumeration value="POST"/>
1854+ <xs:enumeration value="SMSM"/>
1855+ </xs:restriction>
1856+ </xs:simpleType>
1857+ <xs:complexType name="ServiceLevel8Choice">
1858+ <xs:sequence>
1859+ <xs:choice>
1860+ <xs:element name="Cd" type="ExternalServiceLevel1Code"/>
1861+ <xs:element name="Prtry" type="Max35Text"/>
1862+ </xs:choice>
1863+ </xs:sequence>
1864+ </xs:complexType>
1865+ <xs:complexType name="StructuredRegulatoryReporting3">
1866+ <xs:sequence>
1867+ <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="Max35Text"/>
1868+ <xs:element maxOccurs="1" minOccurs="0" name="Dt" type="ISODate"/>
1869+ <xs:element maxOccurs="1" minOccurs="0" name="Ctry" type="CountryCode"/>
1870+ <xs:element maxOccurs="1" minOccurs="0" name="Cd" type="Max10Text"/>
1871+ <xs:element maxOccurs="1" minOccurs="0" name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
1872+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Inf" type="Max35Text"/>
1873+ </xs:sequence>
1874+ </xs:complexType>
1875+ <xs:complexType name="StructuredRemittanceInformation7">
1876+ <xs:sequence>
1877+ <xs:element maxOccurs="unbounded" minOccurs="0" name="RfrdDocInf" type="ReferredDocumentInformation3"/>
1878+ <xs:element maxOccurs="1" minOccurs="0" name="RfrdDocAmt" type="RemittanceAmount1"/>
1879+ <xs:element maxOccurs="1" minOccurs="0" name="CdtrRefInf" type="CreditorReferenceInformation2"/>
1880+ <xs:element maxOccurs="1" minOccurs="0" name="Invcr" type="PartyIdentification32"/>
1881+ <xs:element maxOccurs="1" minOccurs="0" name="Invcee" type="PartyIdentification32"/>
1882+ <xs:element maxOccurs="3" minOccurs="0" name="AddtlRmtInf" type="Max140Text"/>
1883+ </xs:sequence>
1884+ </xs:complexType>
1885+ <xs:complexType name="TaxAmount1">
1886+ <xs:sequence>
1887+ <xs:element maxOccurs="1" minOccurs="0" name="Rate" type="PercentageRate"/>
1888+ <xs:element maxOccurs="1" minOccurs="0" name="TaxblBaseAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
1889+ <xs:element maxOccurs="1" minOccurs="0" name="TtlAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
1890+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Dtls" type="TaxRecordDetails1"/>
1891+ </xs:sequence>
1892+ </xs:complexType>
1893+ <xs:complexType name="TaxAuthorisation1">
1894+ <xs:sequence>
1895+ <xs:element maxOccurs="1" minOccurs="0" name="Titl" type="Max35Text"/>
1896+ <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max140Text"/>
1897+ </xs:sequence>
1898+ </xs:complexType>
1899+ <xs:complexType name="TaxInformation3">
1900+ <xs:sequence>
1901+ <xs:element maxOccurs="1" minOccurs="0" name="Cdtr" type="TaxParty1"/>
1902+ <xs:element maxOccurs="1" minOccurs="0" name="Dbtr" type="TaxParty2"/>
1903+ <xs:element maxOccurs="1" minOccurs="0" name="AdmstnZn" type="Max35Text"/>
1904+ <xs:element maxOccurs="1" minOccurs="0" name="RefNb" type="Max140Text"/>
1905+ <xs:element maxOccurs="1" minOccurs="0" name="Mtd" type="Max35Text"/>
1906+ <xs:element maxOccurs="1" minOccurs="0" name="TtlTaxblBaseAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
1907+ <xs:element maxOccurs="1" minOccurs="0" name="TtlTaxAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
1908+ <xs:element maxOccurs="1" minOccurs="0" name="Dt" type="ISODate"/>
1909+ <xs:element maxOccurs="1" minOccurs="0" name="SeqNb" type="Number"/>
1910+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Rcrd" type="TaxRecord1"/>
1911+ </xs:sequence>
1912+ </xs:complexType>
1913+ <xs:complexType name="TaxParty1">
1914+ <xs:sequence>
1915+ <xs:element maxOccurs="1" minOccurs="0" name="TaxId" type="Max35Text"/>
1916+ <xs:element maxOccurs="1" minOccurs="0" name="RegnId" type="Max35Text"/>
1917+ <xs:element maxOccurs="1" minOccurs="0" name="TaxTp" type="Max35Text"/>
1918+ </xs:sequence>
1919+ </xs:complexType>
1920+ <xs:complexType name="TaxParty2">
1921+ <xs:sequence>
1922+ <xs:element maxOccurs="1" minOccurs="0" name="TaxId" type="Max35Text"/>
1923+ <xs:element maxOccurs="1" minOccurs="0" name="RegnId" type="Max35Text"/>
1924+ <xs:element maxOccurs="1" minOccurs="0" name="TaxTp" type="Max35Text"/>
1925+ <xs:element maxOccurs="1" minOccurs="0" name="Authstn" type="TaxAuthorisation1"/>
1926+ </xs:sequence>
1927+ </xs:complexType>
1928+ <xs:complexType name="TaxPeriod1">
1929+ <xs:sequence>
1930+ <xs:element maxOccurs="1" minOccurs="0" name="Yr" type="ISODate"/>
1931+ <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="TaxRecordPeriod1Code"/>
1932+ <xs:element maxOccurs="1" minOccurs="0" name="FrToDt" type="DatePeriodDetails"/>
1933+ </xs:sequence>
1934+ </xs:complexType>
1935+ <xs:complexType name="TaxRecord1">
1936+ <xs:sequence>
1937+ <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="Max35Text"/>
1938+ <xs:element maxOccurs="1" minOccurs="0" name="Ctgy" type="Max35Text"/>
1939+ <xs:element maxOccurs="1" minOccurs="0" name="CtgyDtls" type="Max35Text"/>
1940+ <xs:element maxOccurs="1" minOccurs="0" name="DbtrSts" type="Max35Text"/>
1941+ <xs:element maxOccurs="1" minOccurs="0" name="CertId" type="Max35Text"/>
1942+ <xs:element maxOccurs="1" minOccurs="0" name="FrmsCd" type="Max35Text"/>
1943+ <xs:element maxOccurs="1" minOccurs="0" name="Prd" type="TaxPeriod1"/>
1944+ <xs:element maxOccurs="1" minOccurs="0" name="TaxAmt" type="TaxAmount1"/>
1945+ <xs:element maxOccurs="1" minOccurs="0" name="AddtlInf" type="Max140Text"/>
1946+ </xs:sequence>
1947+ </xs:complexType>
1948+ <xs:complexType name="TaxRecordDetails1">
1949+ <xs:sequence>
1950+ <xs:element maxOccurs="1" minOccurs="0" name="Prd" type="TaxPeriod1"/>
1951+ <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
1952+ </xs:sequence>
1953+ </xs:complexType>
1954+ <xs:simpleType name="TaxRecordPeriod1Code">
1955+ <xs:restriction base="xs:string">
1956+ <xs:enumeration value="MM01"/>
1957+ <xs:enumeration value="MM02"/>
1958+ <xs:enumeration value="MM03"/>
1959+ <xs:enumeration value="MM04"/>
1960+ <xs:enumeration value="MM05"/>
1961+ <xs:enumeration value="MM06"/>
1962+ <xs:enumeration value="MM07"/>
1963+ <xs:enumeration value="MM08"/>
1964+ <xs:enumeration value="MM09"/>
1965+ <xs:enumeration value="MM10"/>
1966+ <xs:enumeration value="MM11"/>
1967+ <xs:enumeration value="MM12"/>
1968+ <xs:enumeration value="QTR1"/>
1969+ <xs:enumeration value="QTR2"/>
1970+ <xs:enumeration value="QTR3"/>
1971+ <xs:enumeration value="QTR4"/>
1972+ <xs:enumeration value="HLF1"/>
1973+ <xs:enumeration value="HLF2"/>
1974+ </xs:restriction>
1975+ </xs:simpleType>
1976+</xs:schema>
1977
1978=== added file 'account_banking_sepa_credit_transfer/data/pain.001.001.04.xsd'
1979--- account_banking_sepa_credit_transfer/data/pain.001.001.04.xsd 1970-01-01 00:00:00 +0000
1980+++ account_banking_sepa_credit_transfer/data/pain.001.001.04.xsd 2013-06-06 08:07:29 +0000
1981@@ -0,0 +1,968 @@
1982+<?xml version="1.0" encoding="UTF-8"?>
1983+<!--Generated by SWIFTStandards Workstation (build:R7.1.30.4) on 2012 Jun 07 20:47:19-->
1984+<xs:schema elementFormDefault="qualified" targetNamespace="urn:iso:std:iso:20022:tech:xsd:pain.001.001.04" xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.001.04" xmlns:xs="http://www.w3.org/2001/XMLSchema">
1985+ <xs:element name="Document" type="Document"/>
1986+ <xs:complexType name="AccountIdentification4Choice">
1987+ <xs:sequence>
1988+ <xs:choice>
1989+ <xs:element name="IBAN" type="IBAN2007Identifier"/>
1990+ <xs:element name="Othr" type="GenericAccountIdentification1"/>
1991+ </xs:choice>
1992+ </xs:sequence>
1993+ </xs:complexType>
1994+ <xs:complexType name="AccountSchemeName1Choice">
1995+ <xs:sequence>
1996+ <xs:choice>
1997+ <xs:element name="Cd" type="ExternalAccountIdentification1Code"/>
1998+ <xs:element name="Prtry" type="Max35Text"/>
1999+ </xs:choice>
2000+ </xs:sequence>
2001+ </xs:complexType>
2002+ <xs:simpleType name="ActiveOrHistoricCurrencyAndAmount_SimpleType">
2003+ <xs:restriction base="xs:decimal">
2004+ <xs:fractionDigits value="5"/>
2005+ <xs:totalDigits value="18"/>
2006+ <xs:minInclusive value="0"/>
2007+ </xs:restriction>
2008+ </xs:simpleType>
2009+ <xs:complexType name="ActiveOrHistoricCurrencyAndAmount">
2010+ <xs:simpleContent>
2011+ <xs:extension base="ActiveOrHistoricCurrencyAndAmount_SimpleType">
2012+ <xs:attribute name="Ccy" type="ActiveOrHistoricCurrencyCode" use="required"/>
2013+ </xs:extension>
2014+ </xs:simpleContent>
2015+ </xs:complexType>
2016+ <xs:simpleType name="ActiveOrHistoricCurrencyCode">
2017+ <xs:restriction base="xs:string">
2018+ <xs:pattern value="[A-Z]{3,3}"/>
2019+ </xs:restriction>
2020+ </xs:simpleType>
2021+ <xs:simpleType name="AddressType2Code">
2022+ <xs:restriction base="xs:string">
2023+ <xs:enumeration value="ADDR"/>
2024+ <xs:enumeration value="PBOX"/>
2025+ <xs:enumeration value="HOME"/>
2026+ <xs:enumeration value="BIZZ"/>
2027+ <xs:enumeration value="MLTO"/>
2028+ <xs:enumeration value="DLVY"/>
2029+ </xs:restriction>
2030+ </xs:simpleType>
2031+ <xs:complexType name="AmountType3Choice">
2032+ <xs:sequence>
2033+ <xs:choice>
2034+ <xs:element name="InstdAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
2035+ <xs:element name="EqvtAmt" type="EquivalentAmount2"/>
2036+ </xs:choice>
2037+ </xs:sequence>
2038+ </xs:complexType>
2039+ <xs:simpleType name="AnyBICIdentifier">
2040+ <xs:restriction base="xs:string">
2041+ <xs:pattern value="[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}"/>
2042+ </xs:restriction>
2043+ </xs:simpleType>
2044+ <xs:complexType name="Authorisation1Choice">
2045+ <xs:sequence>
2046+ <xs:choice>
2047+ <xs:element name="Cd" type="Authorisation1Code"/>
2048+ <xs:element name="Prtry" type="Max128Text"/>
2049+ </xs:choice>
2050+ </xs:sequence>
2051+ </xs:complexType>
2052+ <xs:simpleType name="Authorisation1Code">
2053+ <xs:restriction base="xs:string">
2054+ <xs:enumeration value="AUTH"/>
2055+ <xs:enumeration value="FDET"/>
2056+ <xs:enumeration value="FSUM"/>
2057+ <xs:enumeration value="ILEV"/>
2058+ </xs:restriction>
2059+ </xs:simpleType>
2060+ <xs:simpleType name="BICFIIdentifier">
2061+ <xs:restriction base="xs:string">
2062+ <xs:pattern value="[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}"/>
2063+ </xs:restriction>
2064+ </xs:simpleType>
2065+ <xs:simpleType name="BaseOneRate">
2066+ <xs:restriction base="xs:decimal">
2067+ <xs:fractionDigits value="10"/>
2068+ <xs:totalDigits value="11"/>
2069+ </xs:restriction>
2070+ </xs:simpleType>
2071+ <xs:simpleType name="BatchBookingIndicator">
2072+ <xs:restriction base="xs:boolean"/>
2073+ </xs:simpleType>
2074+ <xs:complexType name="BranchAndFinancialInstitutionIdentification5">
2075+ <xs:sequence>
2076+ <xs:element name="FinInstnId" type="FinancialInstitutionIdentification8"/>
2077+ <xs:element maxOccurs="1" minOccurs="0" name="BrnchId" type="BranchData2"/>
2078+ </xs:sequence>
2079+ </xs:complexType>
2080+ <xs:complexType name="BranchData2">
2081+ <xs:sequence>
2082+ <xs:element maxOccurs="1" minOccurs="0" name="Id" type="Max35Text"/>
2083+ <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max140Text"/>
2084+ <xs:element maxOccurs="1" minOccurs="0" name="PstlAdr" type="PostalAddress6"/>
2085+ </xs:sequence>
2086+ </xs:complexType>
2087+ <xs:complexType name="CashAccount24">
2088+ <xs:sequence>
2089+ <xs:element name="Id" type="AccountIdentification4Choice"/>
2090+ <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="CashAccountType2Choice"/>
2091+ <xs:element maxOccurs="1" minOccurs="0" name="Ccy" type="ActiveOrHistoricCurrencyCode"/>
2092+ <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max70Text"/>
2093+ </xs:sequence>
2094+ </xs:complexType>
2095+ <xs:complexType name="CashAccountType2Choice">
2096+ <xs:sequence>
2097+ <xs:choice>
2098+ <xs:element name="Cd" type="ExternalCashAccountType1Code"/>
2099+ <xs:element name="Prtry" type="Max35Text"/>
2100+ </xs:choice>
2101+ </xs:sequence>
2102+ </xs:complexType>
2103+ <xs:complexType name="CategoryPurpose1Choice">
2104+ <xs:sequence>
2105+ <xs:choice>
2106+ <xs:element name="Cd" type="ExternalCategoryPurpose1Code"/>
2107+ <xs:element name="Prtry" type="Max35Text"/>
2108+ </xs:choice>
2109+ </xs:sequence>
2110+ </xs:complexType>
2111+ <xs:simpleType name="ChargeBearerType1Code">
2112+ <xs:restriction base="xs:string">
2113+ <xs:enumeration value="DEBT"/>
2114+ <xs:enumeration value="CRED"/>
2115+ <xs:enumeration value="SHAR"/>
2116+ <xs:enumeration value="SLEV"/>
2117+ </xs:restriction>
2118+ </xs:simpleType>
2119+ <xs:complexType name="Cheque7">
2120+ <xs:sequence>
2121+ <xs:element maxOccurs="1" minOccurs="0" name="ChqTp" type="ChequeType2Code"/>
2122+ <xs:element maxOccurs="1" minOccurs="0" name="ChqNb" type="Max35Text"/>
2123+ <xs:element maxOccurs="1" minOccurs="0" name="ChqFr" type="NameAndAddress10"/>
2124+ <xs:element maxOccurs="1" minOccurs="0" name="DlvryMtd" type="ChequeDeliveryMethod1Choice"/>
2125+ <xs:element maxOccurs="1" minOccurs="0" name="DlvrTo" type="NameAndAddress10"/>
2126+ <xs:element maxOccurs="1" minOccurs="0" name="InstrPrty" type="Priority2Code"/>
2127+ <xs:element maxOccurs="1" minOccurs="0" name="ChqMtrtyDt" type="ISODate"/>
2128+ <xs:element maxOccurs="1" minOccurs="0" name="FrmsCd" type="Max35Text"/>
2129+ <xs:element maxOccurs="2" minOccurs="0" name="MemoFld" type="Max35Text"/>
2130+ <xs:element maxOccurs="1" minOccurs="0" name="RgnlClrZone" type="Max35Text"/>
2131+ <xs:element maxOccurs="1" minOccurs="0" name="PrtLctn" type="Max35Text"/>
2132+ <xs:element maxOccurs="5" minOccurs="0" name="Sgntr" type="Max70Text"/>
2133+ </xs:sequence>
2134+ </xs:complexType>
2135+ <xs:simpleType name="ChequeDelivery1Code">
2136+ <xs:restriction base="xs:string">
2137+ <xs:enumeration value="MLDB"/>
2138+ <xs:enumeration value="MLCD"/>
2139+ <xs:enumeration value="MLFA"/>
2140+ <xs:enumeration value="CRDB"/>
2141+ <xs:enumeration value="CRCD"/>
2142+ <xs:enumeration value="CRFA"/>
2143+ <xs:enumeration value="PUDB"/>
2144+ <xs:enumeration value="PUCD"/>
2145+ <xs:enumeration value="PUFA"/>
2146+ <xs:enumeration value="RGDB"/>
2147+ <xs:enumeration value="RGCD"/>
2148+ <xs:enumeration value="RGFA"/>
2149+ </xs:restriction>
2150+ </xs:simpleType>
2151+ <xs:complexType name="ChequeDeliveryMethod1Choice">
2152+ <xs:sequence>
2153+ <xs:choice>
2154+ <xs:element name="Cd" type="ChequeDelivery1Code"/>
2155+ <xs:element name="Prtry" type="Max35Text"/>
2156+ </xs:choice>
2157+ </xs:sequence>
2158+ </xs:complexType>
2159+ <xs:simpleType name="ChequeType2Code">
2160+ <xs:restriction base="xs:string">
2161+ <xs:enumeration value="CCHQ"/>
2162+ <xs:enumeration value="CCCH"/>
2163+ <xs:enumeration value="BCHQ"/>
2164+ <xs:enumeration value="DRFT"/>
2165+ <xs:enumeration value="ELDR"/>
2166+ </xs:restriction>
2167+ </xs:simpleType>
2168+ <xs:complexType name="ClearingSystemIdentification2Choice">
2169+ <xs:sequence>
2170+ <xs:choice>
2171+ <xs:element name="Cd" type="ExternalClearingSystemIdentification1Code"/>
2172+ <xs:element name="Prtry" type="Max35Text"/>
2173+ </xs:choice>
2174+ </xs:sequence>
2175+ </xs:complexType>
2176+ <xs:complexType name="ClearingSystemMemberIdentification2">
2177+ <xs:sequence>
2178+ <xs:element maxOccurs="1" minOccurs="0" name="ClrSysId" type="ClearingSystemIdentification2Choice"/>
2179+ <xs:element name="MmbId" type="Max35Text"/>
2180+ </xs:sequence>
2181+ </xs:complexType>
2182+ <xs:complexType name="ContactDetails2">
2183+ <xs:sequence>
2184+ <xs:element maxOccurs="1" minOccurs="0" name="NmPrfx" type="NamePrefix1Code"/>
2185+ <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max140Text"/>
2186+ <xs:element maxOccurs="1" minOccurs="0" name="PhneNb" type="PhoneNumber"/>
2187+ <xs:element maxOccurs="1" minOccurs="0" name="MobNb" type="PhoneNumber"/>
2188+ <xs:element maxOccurs="1" minOccurs="0" name="FaxNb" type="PhoneNumber"/>
2189+ <xs:element maxOccurs="1" minOccurs="0" name="EmailAdr" type="Max2048Text"/>
2190+ <xs:element maxOccurs="1" minOccurs="0" name="Othr" type="Max35Text"/>
2191+ </xs:sequence>
2192+ </xs:complexType>
2193+ <xs:simpleType name="CountryCode">
2194+ <xs:restriction base="xs:string">
2195+ <xs:pattern value="[A-Z]{2,2}"/>
2196+ </xs:restriction>
2197+ </xs:simpleType>
2198+ <xs:simpleType name="CreditDebitCode">
2199+ <xs:restriction base="xs:string">
2200+ <xs:enumeration value="CRDT"/>
2201+ <xs:enumeration value="DBIT"/>
2202+ </xs:restriction>
2203+ </xs:simpleType>
2204+ <xs:complexType name="CreditTransferTransaction1">
2205+ <xs:sequence>
2206+ <xs:element name="PmtId" type="PaymentIdentification1"/>
2207+ <xs:element maxOccurs="1" minOccurs="0" name="PmtTpInf" type="PaymentTypeInformation19"/>
2208+ <xs:element name="Amt" type="AmountType3Choice"/>
2209+ <xs:element maxOccurs="1" minOccurs="0" name="XchgRateInf" type="ExchangeRate1"/>
2210+ <xs:element maxOccurs="1" minOccurs="0" name="ChrgBr" type="ChargeBearerType1Code"/>
2211+ <xs:element maxOccurs="1" minOccurs="0" name="ChqInstr" type="Cheque7"/>
2212+ <xs:element maxOccurs="1" minOccurs="0" name="UltmtDbtr" type="PartyIdentification43"/>
2213+ <xs:element maxOccurs="1" minOccurs="0" name="IntrmyAgt1" type="BranchAndFinancialInstitutionIdentification5"/>
2214+ <xs:element maxOccurs="1" minOccurs="0" name="IntrmyAgt1Acct" type="CashAccount24"/>
2215+ <xs:element maxOccurs="1" minOccurs="0" name="IntrmyAgt2" type="BranchAndFinancialInstitutionIdentification5"/>
2216+ <xs:element maxOccurs="1" minOccurs="0" name="IntrmyAgt2Acct" type="CashAccount24"/>
2217+ <xs:element maxOccurs="1" minOccurs="0" name="IntrmyAgt3" type="BranchAndFinancialInstitutionIdentification5"/>
2218+ <xs:element maxOccurs="1" minOccurs="0" name="IntrmyAgt3Acct" type="CashAccount24"/>
2219+ <xs:element maxOccurs="1" minOccurs="0" name="CdtrAgt" type="BranchAndFinancialInstitutionIdentification5"/>
2220+ <xs:element maxOccurs="1" minOccurs="0" name="CdtrAgtAcct" type="CashAccount24"/>
2221+ <xs:element maxOccurs="1" minOccurs="0" name="Cdtr" type="PartyIdentification43"/>
2222+ <xs:element maxOccurs="1" minOccurs="0" name="CdtrAcct" type="CashAccount24"/>
2223+ <xs:element maxOccurs="1" minOccurs="0" name="UltmtCdtr" type="PartyIdentification43"/>
2224+ <xs:element maxOccurs="unbounded" minOccurs="0" name="InstrForCdtrAgt" type="InstructionForCreditorAgent1"/>
2225+ <xs:element maxOccurs="1" minOccurs="0" name="InstrForDbtrAgt" type="Max140Text"/>
2226+ <xs:element maxOccurs="1" minOccurs="0" name="Purp" type="Purpose2Choice"/>
2227+ <xs:element maxOccurs="10" minOccurs="0" name="RgltryRptg" type="RegulatoryReporting3"/>
2228+ <xs:element maxOccurs="1" minOccurs="0" name="Tax" type="TaxInformation3"/>
2229+ <xs:element maxOccurs="10" minOccurs="0" name="RltdRmtInf" type="RemittanceLocation2"/>
2230+ <xs:element maxOccurs="1" minOccurs="0" name="RmtInf" type="RemittanceInformation7"/>
2231+ </xs:sequence>
2232+ </xs:complexType>
2233+ <xs:complexType name="CreditorReferenceInformation2">
2234+ <xs:sequence>
2235+ <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="CreditorReferenceType2"/>
2236+ <xs:element maxOccurs="1" minOccurs="0" name="Ref" type="Max35Text"/>
2237+ </xs:sequence>
2238+ </xs:complexType>
2239+ <xs:complexType name="CreditorReferenceType1Choice">
2240+ <xs:sequence>
2241+ <xs:choice>
2242+ <xs:element name="Cd" type="DocumentType3Code"/>
2243+ <xs:element name="Prtry" type="Max35Text"/>
2244+ </xs:choice>
2245+ </xs:sequence>
2246+ </xs:complexType>
2247+ <xs:complexType name="CreditorReferenceType2">
2248+ <xs:sequence>
2249+ <xs:element name="CdOrPrtry" type="CreditorReferenceType1Choice"/>
2250+ <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
2251+ </xs:sequence>
2252+ </xs:complexType>
2253+ <xs:complexType name="CustomerCreditTransferInitiationV04">
2254+ <xs:sequence>
2255+ <xs:element name="GrpHdr" type="GroupHeader48"/>
2256+ <xs:element maxOccurs="unbounded" minOccurs="1" name="PmtInf" type="PaymentInstruction6"/>
2257+ <xs:element maxOccurs="unbounded" minOccurs="0" name="SplmtryData" type="SupplementaryData1"/>
2258+ </xs:sequence>
2259+ </xs:complexType>
2260+ <xs:complexType name="DateAndPlaceOfBirth">
2261+ <xs:sequence>
2262+ <xs:element name="BirthDt" type="ISODate"/>
2263+ <xs:element maxOccurs="1" minOccurs="0" name="PrvcOfBirth" type="Max35Text"/>
2264+ <xs:element name="CityOfBirth" type="Max35Text"/>
2265+ <xs:element name="CtryOfBirth" type="CountryCode"/>
2266+ </xs:sequence>
2267+ </xs:complexType>
2268+ <xs:complexType name="DatePeriodDetails">
2269+ <xs:sequence>
2270+ <xs:element name="FrDt" type="ISODate"/>
2271+ <xs:element name="ToDt" type="ISODate"/>
2272+ </xs:sequence>
2273+ </xs:complexType>
2274+ <xs:simpleType name="DecimalNumber">
2275+ <xs:restriction base="xs:decimal">
2276+ <xs:fractionDigits value="17"/>
2277+ <xs:totalDigits value="18"/>
2278+ </xs:restriction>
2279+ </xs:simpleType>
2280+ <xs:complexType name="DiscountAmountAndType1">
2281+ <xs:sequence>
2282+ <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="DiscountAmountType1Choice"/>
2283+ <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
2284+ </xs:sequence>
2285+ </xs:complexType>
2286+ <xs:complexType name="DiscountAmountType1Choice">
2287+ <xs:sequence>
2288+ <xs:choice>
2289+ <xs:element name="Cd" type="ExternalDiscountAmountType1Code"/>
2290+ <xs:element name="Prtry" type="Max35Text"/>
2291+ </xs:choice>
2292+ </xs:sequence>
2293+ </xs:complexType>
2294+ <xs:complexType name="Document">
2295+ <xs:sequence>
2296+ <xs:element name="CstmrCdtTrfInitn" type="CustomerCreditTransferInitiationV04"/>
2297+ </xs:sequence>
2298+ </xs:complexType>
2299+ <xs:complexType name="DocumentAdjustment1">
2300+ <xs:sequence>
2301+ <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
2302+ <xs:element maxOccurs="1" minOccurs="0" name="CdtDbtInd" type="CreditDebitCode"/>
2303+ <xs:element maxOccurs="1" minOccurs="0" name="Rsn" type="Max4Text"/>
2304+ <xs:element maxOccurs="1" minOccurs="0" name="AddtlInf" type="Max140Text"/>
2305+ </xs:sequence>
2306+ </xs:complexType>
2307+ <xs:simpleType name="DocumentType3Code">
2308+ <xs:restriction base="xs:string">
2309+ <xs:enumeration value="RADM"/>
2310+ <xs:enumeration value="RPIN"/>
2311+ <xs:enumeration value="FXDR"/>
2312+ <xs:enumeration value="DISP"/>
2313+ <xs:enumeration value="PUOR"/>
2314+ <xs:enumeration value="SCOR"/>
2315+ </xs:restriction>
2316+ </xs:simpleType>
2317+ <xs:simpleType name="DocumentType5Code">
2318+ <xs:restriction base="xs:string">
2319+ <xs:enumeration value="MSIN"/>
2320+ <xs:enumeration value="CNFA"/>
2321+ <xs:enumeration value="DNFA"/>
2322+ <xs:enumeration value="CINV"/>
2323+ <xs:enumeration value="CREN"/>
2324+ <xs:enumeration value="DEBN"/>
2325+ <xs:enumeration value="HIRI"/>
2326+ <xs:enumeration value="SBIN"/>
2327+ <xs:enumeration value="CMCN"/>
2328+ <xs:enumeration value="SOAC"/>
2329+ <xs:enumeration value="DISP"/>
2330+ <xs:enumeration value="BOLD"/>
2331+ <xs:enumeration value="VCHR"/>
2332+ <xs:enumeration value="AROI"/>
2333+ <xs:enumeration value="TSUT"/>
2334+ </xs:restriction>
2335+ </xs:simpleType>
2336+ <xs:complexType name="EquivalentAmount2">
2337+ <xs:sequence>
2338+ <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
2339+ <xs:element name="CcyOfTrf" type="ActiveOrHistoricCurrencyCode"/>
2340+ </xs:sequence>
2341+ </xs:complexType>
2342+ <xs:complexType name="ExchangeRate1">
2343+ <xs:sequence>
2344+ <xs:element maxOccurs="1" minOccurs="0" name="UnitCcy" type="ActiveOrHistoricCurrencyCode"/>
2345+ <xs:element maxOccurs="1" minOccurs="0" name="XchgRate" type="BaseOneRate"/>
2346+ <xs:element maxOccurs="1" minOccurs="0" name="RateTp" type="ExchangeRateType1Code"/>
2347+ <xs:element maxOccurs="1" minOccurs="0" name="CtrctId" type="Max35Text"/>
2348+ </xs:sequence>
2349+ </xs:complexType>
2350+ <xs:simpleType name="ExchangeRateType1Code">
2351+ <xs:restriction base="xs:string">
2352+ <xs:enumeration value="SPOT"/>
2353+ <xs:enumeration value="SALE"/>
2354+ <xs:enumeration value="AGRD"/>
2355+ </xs:restriction>
2356+ </xs:simpleType>
2357+ <xs:simpleType name="ExternalAccountIdentification1Code">
2358+ <xs:restriction base="xs:string">
2359+ <xs:minLength value="1"/>
2360+ <xs:maxLength value="4"/>
2361+ </xs:restriction>
2362+ </xs:simpleType>
2363+ <xs:simpleType name="ExternalCashAccountType1Code">
2364+ <xs:restriction base="xs:string">
2365+ <xs:minLength value="1"/>
2366+ <xs:maxLength value="4"/>
2367+ </xs:restriction>
2368+ </xs:simpleType>
2369+ <xs:simpleType name="ExternalCategoryPurpose1Code">
2370+ <xs:restriction base="xs:string">
2371+ <xs:minLength value="1"/>
2372+ <xs:maxLength value="4"/>
2373+ </xs:restriction>
2374+ </xs:simpleType>
2375+ <xs:simpleType name="ExternalClearingSystemIdentification1Code">
2376+ <xs:restriction base="xs:string">
2377+ <xs:minLength value="1"/>
2378+ <xs:maxLength value="5"/>
2379+ </xs:restriction>
2380+ </xs:simpleType>
2381+ <xs:simpleType name="ExternalDiscountAmountType1Code">
2382+ <xs:restriction base="xs:string">
2383+ <xs:minLength value="1"/>
2384+ <xs:maxLength value="4"/>
2385+ </xs:restriction>
2386+ </xs:simpleType>
2387+ <xs:simpleType name="ExternalFinancialInstitutionIdentification1Code">
2388+ <xs:restriction base="xs:string">
2389+ <xs:minLength value="1"/>
2390+ <xs:maxLength value="4"/>
2391+ </xs:restriction>
2392+ </xs:simpleType>
2393+ <xs:simpleType name="ExternalLocalInstrument1Code">
2394+ <xs:restriction base="xs:string">
2395+ <xs:minLength value="1"/>
2396+ <xs:maxLength value="35"/>
2397+ </xs:restriction>
2398+ </xs:simpleType>
2399+ <xs:simpleType name="ExternalOrganisationIdentification1Code">
2400+ <xs:restriction base="xs:string">
2401+ <xs:minLength value="1"/>
2402+ <xs:maxLength value="4"/>
2403+ </xs:restriction>
2404+ </xs:simpleType>
2405+ <xs:simpleType name="ExternalPersonIdentification1Code">
2406+ <xs:restriction base="xs:string">
2407+ <xs:minLength value="1"/>
2408+ <xs:maxLength value="4"/>
2409+ </xs:restriction>
2410+ </xs:simpleType>
2411+ <xs:simpleType name="ExternalPurpose1Code">
2412+ <xs:restriction base="xs:string">
2413+ <xs:minLength value="1"/>
2414+ <xs:maxLength value="4"/>
2415+ </xs:restriction>
2416+ </xs:simpleType>
2417+ <xs:simpleType name="ExternalServiceLevel1Code">
2418+ <xs:restriction base="xs:string">
2419+ <xs:minLength value="1"/>
2420+ <xs:maxLength value="4"/>
2421+ </xs:restriction>
2422+ </xs:simpleType>
2423+ <xs:simpleType name="ExternalTaxAmountType1Code">
2424+ <xs:restriction base="xs:string">
2425+ <xs:minLength value="1"/>
2426+ <xs:maxLength value="4"/>
2427+ </xs:restriction>
2428+ </xs:simpleType>
2429+ <xs:complexType name="FinancialIdentificationSchemeName1Choice">
2430+ <xs:sequence>
2431+ <xs:choice>
2432+ <xs:element name="Cd" type="ExternalFinancialInstitutionIdentification1Code"/>
2433+ <xs:element name="Prtry" type="Max35Text"/>
2434+ </xs:choice>
2435+ </xs:sequence>
2436+ </xs:complexType>
2437+ <xs:complexType name="FinancialInstitutionIdentification8">
2438+ <xs:sequence>
2439+ <xs:element maxOccurs="1" minOccurs="0" name="BICFI" type="BICFIIdentifier"/>
2440+ <xs:element maxOccurs="1" minOccurs="0" name="ClrSysMmbId" type="ClearingSystemMemberIdentification2"/>
2441+ <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max140Text"/>
2442+ <xs:element maxOccurs="1" minOccurs="0" name="PstlAdr" type="PostalAddress6"/>
2443+ <xs:element maxOccurs="1" minOccurs="0" name="Othr" type="GenericFinancialIdentification1"/>
2444+ </xs:sequence>
2445+ </xs:complexType>
2446+ <xs:complexType name="GenericAccountIdentification1">
2447+ <xs:sequence>
2448+ <xs:element name="Id" type="Max34Text"/>
2449+ <xs:element maxOccurs="1" minOccurs="0" name="SchmeNm" type="AccountSchemeName1Choice"/>
2450+ <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
2451+ </xs:sequence>
2452+ </xs:complexType>
2453+ <xs:complexType name="GenericFinancialIdentification1">
2454+ <xs:sequence>
2455+ <xs:element name="Id" type="Max35Text"/>
2456+ <xs:element maxOccurs="1" minOccurs="0" name="SchmeNm" type="FinancialIdentificationSchemeName1Choice"/>
2457+ <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
2458+ </xs:sequence>
2459+ </xs:complexType>
2460+ <xs:complexType name="GenericOrganisationIdentification1">
2461+ <xs:sequence>
2462+ <xs:element name="Id" type="Max35Text"/>
2463+ <xs:element maxOccurs="1" minOccurs="0" name="SchmeNm" type="OrganisationIdentificationSchemeName1Choice"/>
2464+ <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
2465+ </xs:sequence>
2466+ </xs:complexType>
2467+ <xs:complexType name="GenericPersonIdentification1">
2468+ <xs:sequence>
2469+ <xs:element name="Id" type="Max35Text"/>
2470+ <xs:element maxOccurs="1" minOccurs="0" name="SchmeNm" type="PersonIdentificationSchemeName1Choice"/>
2471+ <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
2472+ </xs:sequence>
2473+ </xs:complexType>
2474+ <xs:complexType name="GroupHeader48">
2475+ <xs:sequence>
2476+ <xs:element name="MsgId" type="Max35Text"/>
2477+ <xs:element name="CreDtTm" type="ISODateTime"/>
2478+ <xs:element maxOccurs="2" minOccurs="0" name="Authstn" type="Authorisation1Choice"/>
2479+ <xs:element name="NbOfTxs" type="Max15NumericText"/>
2480+ <xs:element maxOccurs="1" minOccurs="0" name="CtrlSum" type="DecimalNumber"/>
2481+ <xs:element name="InitgPty" type="PartyIdentification43"/>
2482+ <xs:element maxOccurs="1" minOccurs="0" name="FwdgAgt" type="BranchAndFinancialInstitutionIdentification5"/>
2483+ </xs:sequence>
2484+ </xs:complexType>
2485+ <xs:simpleType name="IBAN2007Identifier">
2486+ <xs:restriction base="xs:string">
2487+ <xs:pattern value="[A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}"/>
2488+ </xs:restriction>
2489+ </xs:simpleType>
2490+ <xs:simpleType name="ISODate">
2491+ <xs:restriction base="xs:date"/>
2492+ </xs:simpleType>
2493+ <xs:simpleType name="ISODateTime">
2494+ <xs:restriction base="xs:dateTime"/>
2495+ </xs:simpleType>
2496+ <xs:simpleType name="Instruction3Code">
2497+ <xs:restriction base="xs:string">
2498+ <xs:enumeration value="CHQB"/>
2499+ <xs:enumeration value="HOLD"/>
2500+ <xs:enumeration value="PHOB"/>
2501+ <xs:enumeration value="TELB"/>
2502+ </xs:restriction>
2503+ </xs:simpleType>
2504+ <xs:complexType name="InstructionForCreditorAgent1">
2505+ <xs:sequence>
2506+ <xs:element maxOccurs="1" minOccurs="0" name="Cd" type="Instruction3Code"/>
2507+ <xs:element maxOccurs="1" minOccurs="0" name="InstrInf" type="Max140Text"/>
2508+ </xs:sequence>
2509+ </xs:complexType>
2510+ <xs:complexType name="LocalInstrument2Choice">
2511+ <xs:sequence>
2512+ <xs:choice>
2513+ <xs:element name="Cd" type="ExternalLocalInstrument1Code"/>
2514+ <xs:element name="Prtry" type="Max35Text"/>
2515+ </xs:choice>
2516+ </xs:sequence>
2517+ </xs:complexType>
2518+ <xs:simpleType name="Max10Text">
2519+ <xs:restriction base="xs:string">
2520+ <xs:minLength value="1"/>
2521+ <xs:maxLength value="10"/>
2522+ </xs:restriction>
2523+ </xs:simpleType>
2524+ <xs:simpleType name="Max128Text">
2525+ <xs:restriction base="xs:string">
2526+ <xs:minLength value="1"/>
2527+ <xs:maxLength value="128"/>
2528+ </xs:restriction>
2529+ </xs:simpleType>
2530+ <xs:simpleType name="Max140Text">
2531+ <xs:restriction base="xs:string">
2532+ <xs:minLength value="1"/>
2533+ <xs:maxLength value="140"/>
2534+ </xs:restriction>
2535+ </xs:simpleType>
2536+ <xs:simpleType name="Max15NumericText">
2537+ <xs:restriction base="xs:string">
2538+ <xs:pattern value="[0-9]{1,15}"/>
2539+ </xs:restriction>
2540+ </xs:simpleType>
2541+ <xs:simpleType name="Max16Text">
2542+ <xs:restriction base="xs:string">
2543+ <xs:minLength value="1"/>
2544+ <xs:maxLength value="16"/>
2545+ </xs:restriction>
2546+ </xs:simpleType>
2547+ <xs:simpleType name="Max2048Text">
2548+ <xs:restriction base="xs:string">
2549+ <xs:minLength value="1"/>
2550+ <xs:maxLength value="2048"/>
2551+ </xs:restriction>
2552+ </xs:simpleType>
2553+ <xs:simpleType name="Max34Text">
2554+ <xs:restriction base="xs:string">
2555+ <xs:minLength value="1"/>
2556+ <xs:maxLength value="34"/>
2557+ </xs:restriction>
2558+ </xs:simpleType>
2559+ <xs:simpleType name="Max350Text">
2560+ <xs:restriction base="xs:string">
2561+ <xs:minLength value="1"/>
2562+ <xs:maxLength value="350"/>
2563+ </xs:restriction>
2564+ </xs:simpleType>
2565+ <xs:simpleType name="Max35Text">
2566+ <xs:restriction base="xs:string">
2567+ <xs:minLength value="1"/>
2568+ <xs:maxLength value="35"/>
2569+ </xs:restriction>
2570+ </xs:simpleType>
2571+ <xs:simpleType name="Max4Text">
2572+ <xs:restriction base="xs:string">
2573+ <xs:minLength value="1"/>
2574+ <xs:maxLength value="4"/>
2575+ </xs:restriction>
2576+ </xs:simpleType>
2577+ <xs:simpleType name="Max70Text">
2578+ <xs:restriction base="xs:string">
2579+ <xs:minLength value="1"/>
2580+ <xs:maxLength value="70"/>
2581+ </xs:restriction>
2582+ </xs:simpleType>
2583+ <xs:complexType name="NameAndAddress10">
2584+ <xs:sequence>
2585+ <xs:element name="Nm" type="Max140Text"/>
2586+ <xs:element name="Adr" type="PostalAddress6"/>
2587+ </xs:sequence>
2588+ </xs:complexType>
2589+ <xs:simpleType name="NamePrefix1Code">
2590+ <xs:restriction base="xs:string">
2591+ <xs:enumeration value="DOCT"/>
2592+ <xs:enumeration value="MIST"/>
2593+ <xs:enumeration value="MISS"/>
2594+ <xs:enumeration value="MADM"/>
2595+ </xs:restriction>
2596+ </xs:simpleType>
2597+ <xs:simpleType name="Number">
2598+ <xs:restriction base="xs:decimal">
2599+ <xs:fractionDigits value="0"/>
2600+ <xs:totalDigits value="18"/>
2601+ </xs:restriction>
2602+ </xs:simpleType>
2603+ <xs:complexType name="OrganisationIdentification8">
2604+ <xs:sequence>
2605+ <xs:element maxOccurs="1" minOccurs="0" name="AnyBIC" type="AnyBICIdentifier"/>
2606+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Othr" type="GenericOrganisationIdentification1"/>
2607+ </xs:sequence>
2608+ </xs:complexType>
2609+ <xs:complexType name="OrganisationIdentificationSchemeName1Choice">
2610+ <xs:sequence>
2611+ <xs:choice>
2612+ <xs:element name="Cd" type="ExternalOrganisationIdentification1Code"/>
2613+ <xs:element name="Prtry" type="Max35Text"/>
2614+ </xs:choice>
2615+ </xs:sequence>
2616+ </xs:complexType>
2617+ <xs:complexType name="Party11Choice">
2618+ <xs:sequence>
2619+ <xs:choice>
2620+ <xs:element name="OrgId" type="OrganisationIdentification8"/>
2621+ <xs:element name="PrvtId" type="PersonIdentification5"/>
2622+ </xs:choice>
2623+ </xs:sequence>
2624+ </xs:complexType>
2625+ <xs:complexType name="PartyIdentification43">
2626+ <xs:sequence>
2627+ <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max140Text"/>
2628+ <xs:element maxOccurs="1" minOccurs="0" name="PstlAdr" type="PostalAddress6"/>
2629+ <xs:element maxOccurs="1" minOccurs="0" name="Id" type="Party11Choice"/>
2630+ <xs:element maxOccurs="1" minOccurs="0" name="CtryOfRes" type="CountryCode"/>
2631+ <xs:element maxOccurs="1" minOccurs="0" name="CtctDtls" type="ContactDetails2"/>
2632+ </xs:sequence>
2633+ </xs:complexType>
2634+ <xs:complexType name="PaymentIdentification1">
2635+ <xs:sequence>
2636+ <xs:element maxOccurs="1" minOccurs="0" name="InstrId" type="Max35Text"/>
2637+ <xs:element name="EndToEndId" type="Max35Text"/>
2638+ </xs:sequence>
2639+ </xs:complexType>
2640+ <xs:complexType name="PaymentInstruction6">
2641+ <xs:sequence>
2642+ <xs:element name="PmtInfId" type="Max35Text"/>
2643+ <xs:element name="PmtMtd" type="PaymentMethod3Code"/>
2644+ <xs:element maxOccurs="1" minOccurs="0" name="BtchBookg" type="BatchBookingIndicator"/>
2645+ <xs:element maxOccurs="1" minOccurs="0" name="NbOfTxs" type="Max15NumericText"/>
2646+ <xs:element maxOccurs="1" minOccurs="0" name="CtrlSum" type="DecimalNumber"/>
2647+ <xs:element maxOccurs="1" minOccurs="0" name="PmtTpInf" type="PaymentTypeInformation19"/>
2648+ <xs:element name="ReqdExctnDt" type="ISODate"/>
2649+ <xs:element maxOccurs="1" minOccurs="0" name="PoolgAdjstmntDt" type="ISODate"/>
2650+ <xs:element name="Dbtr" type="PartyIdentification43"/>
2651+ <xs:element name="DbtrAcct" type="CashAccount24"/>
2652+ <xs:element name="DbtrAgt" type="BranchAndFinancialInstitutionIdentification5"/>
2653+ <xs:element maxOccurs="1" minOccurs="0" name="DbtrAgtAcct" type="CashAccount24"/>
2654+ <xs:element maxOccurs="1" minOccurs="0" name="InstrForDbtrAgt" type="Max140Text"/>
2655+ <xs:element maxOccurs="1" minOccurs="0" name="UltmtDbtr" type="PartyIdentification43"/>
2656+ <xs:element maxOccurs="1" minOccurs="0" name="ChrgBr" type="ChargeBearerType1Code"/>
2657+ <xs:element maxOccurs="1" minOccurs="0" name="ChrgsAcct" type="CashAccount24"/>
2658+ <xs:element maxOccurs="1" minOccurs="0" name="ChrgsAcctAgt" type="BranchAndFinancialInstitutionIdentification5"/>
2659+ <xs:element maxOccurs="unbounded" minOccurs="1" name="CdtTrfTxInf" type="CreditTransferTransaction1"/>
2660+ </xs:sequence>
2661+ </xs:complexType>
2662+ <xs:simpleType name="PaymentMethod3Code">
2663+ <xs:restriction base="xs:string">
2664+ <xs:enumeration value="CHK"/>
2665+ <xs:enumeration value="TRF"/>
2666+ <xs:enumeration value="TRA"/>
2667+ </xs:restriction>
2668+ </xs:simpleType>
2669+ <xs:complexType name="PaymentTypeInformation19">
2670+ <xs:sequence>
2671+ <xs:element maxOccurs="1" minOccurs="0" name="InstrPrty" type="Priority2Code"/>
2672+ <xs:element maxOccurs="1" minOccurs="0" name="SvcLvl" type="ServiceLevel8Choice"/>
2673+ <xs:element maxOccurs="1" minOccurs="0" name="LclInstrm" type="LocalInstrument2Choice"/>
2674+ <xs:element maxOccurs="1" minOccurs="0" name="CtgyPurp" type="CategoryPurpose1Choice"/>
2675+ </xs:sequence>
2676+ </xs:complexType>
2677+ <xs:simpleType name="PercentageRate">
2678+ <xs:restriction base="xs:decimal">
2679+ <xs:fractionDigits value="10"/>
2680+ <xs:totalDigits value="11"/>
2681+ </xs:restriction>
2682+ </xs:simpleType>
2683+ <xs:complexType name="PersonIdentification5">
2684+ <xs:sequence>
2685+ <xs:element maxOccurs="1" minOccurs="0" name="DtAndPlcOfBirth" type="DateAndPlaceOfBirth"/>
2686+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Othr" type="GenericPersonIdentification1"/>
2687+ </xs:sequence>
2688+ </xs:complexType>
2689+ <xs:complexType name="PersonIdentificationSchemeName1Choice">
2690+ <xs:sequence>
2691+ <xs:choice>
2692+ <xs:element name="Cd" type="ExternalPersonIdentification1Code"/>
2693+ <xs:element name="Prtry" type="Max35Text"/>
2694+ </xs:choice>
2695+ </xs:sequence>
2696+ </xs:complexType>
2697+ <xs:simpleType name="PhoneNumber">
2698+ <xs:restriction base="xs:string">
2699+ <xs:pattern value="\+[0-9]{1,3}-[0-9()+\-]{1,30}"/>
2700+ </xs:restriction>
2701+ </xs:simpleType>
2702+ <xs:complexType name="PostalAddress6">
2703+ <xs:sequence>
2704+ <xs:element maxOccurs="1" minOccurs="0" name="AdrTp" type="AddressType2Code"/>
2705+ <xs:element maxOccurs="1" minOccurs="0" name="Dept" type="Max70Text"/>
2706+ <xs:element maxOccurs="1" minOccurs="0" name="SubDept" type="Max70Text"/>
2707+ <xs:element maxOccurs="1" minOccurs="0" name="StrtNm" type="Max70Text"/>
2708+ <xs:element maxOccurs="1" minOccurs="0" name="BldgNb" type="Max16Text"/>
2709+ <xs:element maxOccurs="1" minOccurs="0" name="PstCd" type="Max16Text"/>
2710+ <xs:element maxOccurs="1" minOccurs="0" name="TwnNm" type="Max35Text"/>
2711+ <xs:element maxOccurs="1" minOccurs="0" name="CtrySubDvsn" type="Max35Text"/>
2712+ <xs:element maxOccurs="1" minOccurs="0" name="Ctry" type="CountryCode"/>
2713+ <xs:element maxOccurs="7" minOccurs="0" name="AdrLine" type="Max70Text"/>
2714+ </xs:sequence>
2715+ </xs:complexType>
2716+ <xs:simpleType name="Priority2Code">
2717+ <xs:restriction base="xs:string">
2718+ <xs:enumeration value="HIGH"/>
2719+ <xs:enumeration value="NORM"/>
2720+ </xs:restriction>
2721+ </xs:simpleType>
2722+ <xs:complexType name="Purpose2Choice">
2723+ <xs:sequence>
2724+ <xs:choice>
2725+ <xs:element name="Cd" type="ExternalPurpose1Code"/>
2726+ <xs:element name="Prtry" type="Max35Text"/>
2727+ </xs:choice>
2728+ </xs:sequence>
2729+ </xs:complexType>
2730+ <xs:complexType name="ReferredDocumentInformation3">
2731+ <xs:sequence>
2732+ <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="ReferredDocumentType2"/>
2733+ <xs:element maxOccurs="1" minOccurs="0" name="Nb" type="Max35Text"/>
2734+ <xs:element maxOccurs="1" minOccurs="0" name="RltdDt" type="ISODate"/>
2735+ </xs:sequence>
2736+ </xs:complexType>
2737+ <xs:complexType name="ReferredDocumentType1Choice">
2738+ <xs:sequence>
2739+ <xs:choice>
2740+ <xs:element name="Cd" type="DocumentType5Code"/>
2741+ <xs:element name="Prtry" type="Max35Text"/>
2742+ </xs:choice>
2743+ </xs:sequence>
2744+ </xs:complexType>
2745+ <xs:complexType name="ReferredDocumentType2">
2746+ <xs:sequence>
2747+ <xs:element name="CdOrPrtry" type="ReferredDocumentType1Choice"/>
2748+ <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
2749+ </xs:sequence>
2750+ </xs:complexType>
2751+ <xs:complexType name="RegulatoryAuthority2">
2752+ <xs:sequence>
2753+ <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max140Text"/>
2754+ <xs:element maxOccurs="1" minOccurs="0" name="Ctry" type="CountryCode"/>
2755+ </xs:sequence>
2756+ </xs:complexType>
2757+ <xs:complexType name="RegulatoryReporting3">
2758+ <xs:sequence>
2759+ <xs:element maxOccurs="1" minOccurs="0" name="DbtCdtRptgInd" type="RegulatoryReportingType1Code"/>
2760+ <xs:element maxOccurs="1" minOccurs="0" name="Authrty" type="RegulatoryAuthority2"/>
2761+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Dtls" type="StructuredRegulatoryReporting3"/>
2762+ </xs:sequence>
2763+ </xs:complexType>
2764+ <xs:simpleType name="RegulatoryReportingType1Code">
2765+ <xs:restriction base="xs:string">
2766+ <xs:enumeration value="CRED"/>
2767+ <xs:enumeration value="DEBT"/>
2768+ <xs:enumeration value="BOTH"/>
2769+ </xs:restriction>
2770+ </xs:simpleType>
2771+ <xs:complexType name="RemittanceAmount2">
2772+ <xs:sequence>
2773+ <xs:element maxOccurs="1" minOccurs="0" name="DuePyblAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
2774+ <xs:element maxOccurs="unbounded" minOccurs="0" name="DscntApldAmt" type="DiscountAmountAndType1"/>
2775+ <xs:element maxOccurs="1" minOccurs="0" name="CdtNoteAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
2776+ <xs:element maxOccurs="unbounded" minOccurs="0" name="TaxAmt" type="TaxAmountAndType1"/>
2777+ <xs:element maxOccurs="unbounded" minOccurs="0" name="AdjstmntAmtAndRsn" type="DocumentAdjustment1"/>
2778+ <xs:element maxOccurs="1" minOccurs="0" name="RmtdAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
2779+ </xs:sequence>
2780+ </xs:complexType>
2781+ <xs:complexType name="RemittanceInformation7">
2782+ <xs:sequence>
2783+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Ustrd" type="Max140Text"/>
2784+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Strd" type="StructuredRemittanceInformation9"/>
2785+ </xs:sequence>
2786+ </xs:complexType>
2787+ <xs:complexType name="RemittanceLocation2">
2788+ <xs:sequence>
2789+ <xs:element maxOccurs="1" minOccurs="0" name="RmtId" type="Max35Text"/>
2790+ <xs:element maxOccurs="1" minOccurs="0" name="RmtLctnMtd" type="RemittanceLocationMethod2Code"/>
2791+ <xs:element maxOccurs="1" minOccurs="0" name="RmtLctnElctrncAdr" type="Max2048Text"/>
2792+ <xs:element maxOccurs="1" minOccurs="0" name="RmtLctnPstlAdr" type="NameAndAddress10"/>
2793+ </xs:sequence>
2794+ </xs:complexType>
2795+ <xs:simpleType name="RemittanceLocationMethod2Code">
2796+ <xs:restriction base="xs:string">
2797+ <xs:enumeration value="FAXI"/>
2798+ <xs:enumeration value="EDIC"/>
2799+ <xs:enumeration value="URID"/>
2800+ <xs:enumeration value="EMAL"/>
2801+ <xs:enumeration value="POST"/>
2802+ <xs:enumeration value="SMSM"/>
2803+ </xs:restriction>
2804+ </xs:simpleType>
2805+ <xs:complexType name="ServiceLevel8Choice">
2806+ <xs:sequence>
2807+ <xs:choice>
2808+ <xs:element name="Cd" type="ExternalServiceLevel1Code"/>
2809+ <xs:element name="Prtry" type="Max35Text"/>
2810+ </xs:choice>
2811+ </xs:sequence>
2812+ </xs:complexType>
2813+ <xs:complexType name="StructuredRegulatoryReporting3">
2814+ <xs:sequence>
2815+ <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="Max35Text"/>
2816+ <xs:element maxOccurs="1" minOccurs="0" name="Dt" type="ISODate"/>
2817+ <xs:element maxOccurs="1" minOccurs="0" name="Ctry" type="CountryCode"/>
2818+ <xs:element maxOccurs="1" minOccurs="0" name="Cd" type="Max10Text"/>
2819+ <xs:element maxOccurs="1" minOccurs="0" name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
2820+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Inf" type="Max35Text"/>
2821+ </xs:sequence>
2822+ </xs:complexType>
2823+ <xs:complexType name="StructuredRemittanceInformation9">
2824+ <xs:sequence>
2825+ <xs:element maxOccurs="unbounded" minOccurs="0" name="RfrdDocInf" type="ReferredDocumentInformation3"/>
2826+ <xs:element maxOccurs="1" minOccurs="0" name="RfrdDocAmt" type="RemittanceAmount2"/>
2827+ <xs:element maxOccurs="1" minOccurs="0" name="CdtrRefInf" type="CreditorReferenceInformation2"/>
2828+ <xs:element maxOccurs="1" minOccurs="0" name="Invcr" type="PartyIdentification43"/>
2829+ <xs:element maxOccurs="1" minOccurs="0" name="Invcee" type="PartyIdentification43"/>
2830+ <xs:element maxOccurs="3" minOccurs="0" name="AddtlRmtInf" type="Max140Text"/>
2831+ </xs:sequence>
2832+ </xs:complexType>
2833+ <xs:complexType name="SupplementaryData1">
2834+ <xs:sequence>
2835+ <xs:element maxOccurs="1" minOccurs="0" name="PlcAndNm" type="Max350Text"/>
2836+ <xs:element name="Envlp" type="SupplementaryDataEnvelope1"/>
2837+ </xs:sequence>
2838+ </xs:complexType>
2839+ <xs:complexType name="SupplementaryDataEnvelope1">
2840+ <xs:sequence>
2841+ <xs:any namespace="##any" processContents="lax"/>
2842+ </xs:sequence>
2843+ </xs:complexType>
2844+ <xs:complexType name="TaxAmount1">
2845+ <xs:sequence>
2846+ <xs:element maxOccurs="1" minOccurs="0" name="Rate" type="PercentageRate"/>
2847+ <xs:element maxOccurs="1" minOccurs="0" name="TaxblBaseAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
2848+ <xs:element maxOccurs="1" minOccurs="0" name="TtlAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
2849+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Dtls" type="TaxRecordDetails1"/>
2850+ </xs:sequence>
2851+ </xs:complexType>
2852+ <xs:complexType name="TaxAmountAndType1">
2853+ <xs:sequence>
2854+ <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="TaxAmountType1Choice"/>
2855+ <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
2856+ </xs:sequence>
2857+ </xs:complexType>
2858+ <xs:complexType name="TaxAmountType1Choice">
2859+ <xs:sequence>
2860+ <xs:choice>
2861+ <xs:element name="Cd" type="ExternalTaxAmountType1Code"/>
2862+ <xs:element name="Prtry" type="Max35Text"/>
2863+ </xs:choice>
2864+ </xs:sequence>
2865+ </xs:complexType>
2866+ <xs:complexType name="TaxAuthorisation1">
2867+ <xs:sequence>
2868+ <xs:element maxOccurs="1" minOccurs="0" name="Titl" type="Max35Text"/>
2869+ <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max140Text"/>
2870+ </xs:sequence>
2871+ </xs:complexType>
2872+ <xs:complexType name="TaxInformation3">
2873+ <xs:sequence>
2874+ <xs:element maxOccurs="1" minOccurs="0" name="Cdtr" type="TaxParty1"/>
2875+ <xs:element maxOccurs="1" minOccurs="0" name="Dbtr" type="TaxParty2"/>
2876+ <xs:element maxOccurs="1" minOccurs="0" name="AdmstnZn" type="Max35Text"/>
2877+ <xs:element maxOccurs="1" minOccurs="0" name="RefNb" type="Max140Text"/>
2878+ <xs:element maxOccurs="1" minOccurs="0" name="Mtd" type="Max35Text"/>
2879+ <xs:element maxOccurs="1" minOccurs="0" name="TtlTaxblBaseAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
2880+ <xs:element maxOccurs="1" minOccurs="0" name="TtlTaxAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
2881+ <xs:element maxOccurs="1" minOccurs="0" name="Dt" type="ISODate"/>
2882+ <xs:element maxOccurs="1" minOccurs="0" name="SeqNb" type="Number"/>
2883+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Rcrd" type="TaxRecord1"/>
2884+ </xs:sequence>
2885+ </xs:complexType>
2886+ <xs:complexType name="TaxParty1">
2887+ <xs:sequence>
2888+ <xs:element maxOccurs="1" minOccurs="0" name="TaxId" type="Max35Text"/>
2889+ <xs:element maxOccurs="1" minOccurs="0" name="RegnId" type="Max35Text"/>
2890+ <xs:element maxOccurs="1" minOccurs="0" name="TaxTp" type="Max35Text"/>
2891+ </xs:sequence>
2892+ </xs:complexType>
2893+ <xs:complexType name="TaxParty2">
2894+ <xs:sequence>
2895+ <xs:element maxOccurs="1" minOccurs="0" name="TaxId" type="Max35Text"/>
2896+ <xs:element maxOccurs="1" minOccurs="0" name="RegnId" type="Max35Text"/>
2897+ <xs:element maxOccurs="1" minOccurs="0" name="TaxTp" type="Max35Text"/>
2898+ <xs:element maxOccurs="1" minOccurs="0" name="Authstn" type="TaxAuthorisation1"/>
2899+ </xs:sequence>
2900+ </xs:complexType>
2901+ <xs:complexType name="TaxPeriod1">
2902+ <xs:sequence>
2903+ <xs:element maxOccurs="1" minOccurs="0" name="Yr" type="ISODate"/>
2904+ <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="TaxRecordPeriod1Code"/>
2905+ <xs:element maxOccurs="1" minOccurs="0" name="FrToDt" type="DatePeriodDetails"/>
2906+ </xs:sequence>
2907+ </xs:complexType>
2908+ <xs:complexType name="TaxRecord1">
2909+ <xs:sequence>
2910+ <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="Max35Text"/>
2911+ <xs:element maxOccurs="1" minOccurs="0" name="Ctgy" type="Max35Text"/>
2912+ <xs:element maxOccurs="1" minOccurs="0" name="CtgyDtls" type="Max35Text"/>
2913+ <xs:element maxOccurs="1" minOccurs="0" name="DbtrSts" type="Max35Text"/>
2914+ <xs:element maxOccurs="1" minOccurs="0" name="CertId" type="Max35Text"/>
2915+ <xs:element maxOccurs="1" minOccurs="0" name="FrmsCd" type="Max35Text"/>
2916+ <xs:element maxOccurs="1" minOccurs="0" name="Prd" type="TaxPeriod1"/>
2917+ <xs:element maxOccurs="1" minOccurs="0" name="TaxAmt" type="TaxAmount1"/>
2918+ <xs:element maxOccurs="1" minOccurs="0" name="AddtlInf" type="Max140Text"/>
2919+ </xs:sequence>
2920+ </xs:complexType>
2921+ <xs:complexType name="TaxRecordDetails1">
2922+ <xs:sequence>
2923+ <xs:element maxOccurs="1" minOccurs="0" name="Prd" type="TaxPeriod1"/>
2924+ <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
2925+ </xs:sequence>
2926+ </xs:complexType>
2927+ <xs:simpleType name="TaxRecordPeriod1Code">
2928+ <xs:restriction base="xs:string">
2929+ <xs:enumeration value="MM01"/>
2930+ <xs:enumeration value="MM02"/>
2931+ <xs:enumeration value="MM03"/>
2932+ <xs:enumeration value="MM04"/>
2933+ <xs:enumeration value="MM05"/>
2934+ <xs:enumeration value="MM06"/>
2935+ <xs:enumeration value="MM07"/>
2936+ <xs:enumeration value="MM08"/>
2937+ <xs:enumeration value="MM09"/>
2938+ <xs:enumeration value="MM10"/>
2939+ <xs:enumeration value="MM11"/>
2940+ <xs:enumeration value="MM12"/>
2941+ <xs:enumeration value="QTR1"/>
2942+ <xs:enumeration value="QTR2"/>
2943+ <xs:enumeration value="QTR3"/>
2944+ <xs:enumeration value="QTR4"/>
2945+ <xs:enumeration value="HLF1"/>
2946+ <xs:enumeration value="HLF2"/>
2947+ </xs:restriction>
2948+ </xs:simpleType>
2949+</xs:schema>
2950\ No newline at end of file
2951
2952=== added file 'account_banking_sepa_credit_transfer/data/payment_type_sepa_sct.xml'
2953--- account_banking_sepa_credit_transfer/data/payment_type_sepa_sct.xml 1970-01-01 00:00:00 +0000
2954+++ account_banking_sepa_credit_transfer/data/payment_type_sepa_sct.xml 2013-06-06 08:07:29 +0000
2955@@ -0,0 +1,33 @@
2956+<?xml version="1.0" encoding="utf-8"?>
2957+<openerp>
2958+<data noupdate="1">
2959+
2960+
2961+<!-- TODO In the suitable_bank_types field, we should restrict to IBAN type and Rib+IBAN of l10n_fr_rib ? -->
2962+<record id="export_sepa_sct_001_001_04" model="payment.mode.type">
2963+ <field name="name">SEPA Credit Transfer v04</field>
2964+ <field name="code">pain.001.001.04</field>
2965+ <field name="suitable_bank_types"></field>
2966+ <field name="ir_model_id" ref="model_banking_export_sepa_wizard"/>
2967+ <field name="payment_order_type">payment</field>
2968+</record>
2969+
2970+<record id="export_sepa_sct_001_001_03" model="payment.mode.type">
2971+ <field name="name">SEPA Credit Transfer v03</field>
2972+ <field name="code">pain.001.001.03</field>
2973+ <field name="suitable_bank_types"></field>
2974+ <field name="ir_model_id" ref="model_banking_export_sepa_wizard"/>
2975+ <field name="payment_order_type">payment</field>
2976+</record>
2977+
2978+<record id="export_sepa_sct_001_001_02" model="payment.mode.type">
2979+ <field name="name">SEPA Credit Transfer v02</field>
2980+ <field name="code">pain.001.001.02</field>
2981+ <field name="suitable_bank_types"></field>
2982+ <field name="ir_model_id" ref="model_banking_export_sepa_wizard"/>
2983+ <field name="payment_order_type">payment</field>
2984+</record>
2985+
2986+
2987+</data>
2988+</openerp>
2989
2990=== added directory 'account_banking_sepa_credit_transfer/i18n'
2991=== added file 'account_banking_sepa_credit_transfer/i18n/account_banking_sepa_credit_transfer.pot'
2992--- account_banking_sepa_credit_transfer/i18n/account_banking_sepa_credit_transfer.pot 1970-01-01 00:00:00 +0000
2993+++ account_banking_sepa_credit_transfer/i18n/account_banking_sepa_credit_transfer.pot 2013-06-06 08:07:29 +0000
2994@@ -0,0 +1,251 @@
2995+# Translation of OpenERP Server.
2996+# This file contains the translation of the following modules:
2997+# * account_banking_sepa_credit_transfer
2998+#
2999+msgid ""
3000+msgstr ""
3001+"Project-Id-Version: OpenERP Server 6.1\n"
3002+"Report-Msgid-Bugs-To: \n"
3003+"POT-Creation-Date: 2013-06-06 08:01+0000\n"
3004+"PO-Revision-Date: 2013-06-06 08:01+0000\n"
3005+"Last-Translator: <>\n"
3006+"Language-Team: \n"
3007+"MIME-Version: 1.0\n"
3008+"Content-Type: text/plain; charset=UTF-8\n"
3009+"Content-Transfer-Encoding: \n"
3010+"Plural-Forms: \n"
3011+
3012+#. module: account_banking_sepa_credit_transfer
3013+#: field:banking.export.sepa,file:0
3014+#: field:banking.export.sepa.wizard,file_id:0
3015+msgid "SEPA XML file"
3016+msgstr ""
3017+
3018+#. module: account_banking_sepa_credit_transfer
3019+#: view:banking.export.sepa:0
3020+msgid "Payment order"
3021+msgstr ""
3022+
3023+#. module: account_banking_sepa_credit_transfer
3024+#: selection:banking.export.sepa.wizard,state:0
3025+msgid "Create"
3026+msgstr ""
3027+
3028+#. module: account_banking_sepa_credit_transfer
3029+#: help:banking.export.sepa.wizard,msg_identification:0
3030+msgid "This is the message identification of the entire SEPA XML file. 35 characters max."
3031+msgstr ""
3032+
3033+#. module: account_banking_sepa_credit_transfer
3034+#: field:banking.export.sepa,filename:0
3035+#: field:banking.export.sepa.wizard,filename:0
3036+msgid "Filename"
3037+msgstr ""
3038+
3039+#. module: account_banking_sepa_credit_transfer
3040+#: view:banking.export.sepa:0
3041+msgid "General information"
3042+msgstr ""
3043+
3044+#. module: account_banking_sepa_credit_transfer
3045+#: field:banking.export.sepa,state:0
3046+#: field:banking.export.sepa.wizard,state:0
3047+msgid "State"
3048+msgstr ""
3049+
3050+#. module: account_banking_sepa_credit_transfer
3051+#: selection:banking.export.sepa,state:0
3052+msgid "Draft"
3053+msgstr ""
3054+
3055+#. module: account_banking_sepa_credit_transfer
3056+#: field:banking.export.sepa,prefered_exec_date:0
3057+#: field:banking.export.sepa.wizard,prefered_exec_date:0
3058+msgid "Prefered execution date"
3059+msgstr ""
3060+
3061+#. module: account_banking_sepa_credit_transfer
3062+#: selection:banking.export.sepa,charge_bearer:0
3063+#: selection:banking.export.sepa.wizard,charge_bearer:0
3064+msgid "Shared"
3065+msgstr ""
3066+
3067+#. module: account_banking_sepa_credit_transfer
3068+#: field:banking.export.sepa,generation_date:0
3069+msgid "Generation date"
3070+msgstr ""
3071+
3072+#. module: account_banking_sepa_credit_transfer
3073+#: model:ir.model,name:account_banking_sepa_credit_transfer.model_banking_export_sepa_wizard
3074+msgid "Export SEPA Credit Transfer XML file"
3075+msgstr ""
3076+
3077+#. module: account_banking_sepa_credit_transfer
3078+#: view:banking.export.sepa:0
3079+msgid "SEPA Credit Transfer"
3080+msgstr ""
3081+
3082+#. module: account_banking_sepa_credit_transfer
3083+#: selection:banking.export.sepa.wizard,state:0
3084+msgid "Finish"
3085+msgstr ""
3086+
3087+#. module: account_banking_sepa_credit_transfer
3088+#: selection:banking.export.sepa,state:0
3089+msgid "Reconciled"
3090+msgstr ""
3091+
3092+#. module: account_banking_sepa_credit_transfer
3093+#: model:ir.actions.act_window,name:account_banking_sepa_credit_transfer.act_banking_export_sepa_payment_order
3094+msgid "Generated SEPA files"
3095+msgstr ""
3096+
3097+#. module: account_banking_sepa_credit_transfer
3098+#: model:ir.actions.act_window,name:account_banking_sepa_credit_transfer.action_account_banking_sepa
3099+#: model:ir.ui.menu,name:account_banking_sepa_credit_transfer.menu_account_banking_sepa
3100+msgid "Generated SEPA XML files"
3101+msgstr ""
3102+
3103+#. module: account_banking_sepa_credit_transfer
3104+#: selection:banking.export.sepa,state:0
3105+msgid "Sent"
3106+msgstr ""
3107+
3108+#. module: account_banking_sepa_credit_transfer
3109+#: view:banking.export.sepa.wizard:0
3110+msgid "Validate"
3111+msgstr ""
3112+
3113+#. module: account_banking_sepa_credit_transfer
3114+#: view:banking.export.sepa.wizard:0
3115+msgid "Generate"
3116+msgstr ""
3117+
3118+#. module: account_banking_sepa_credit_transfer
3119+#: field:banking.export.sepa,msg_identification:0
3120+#: field:banking.export.sepa.wizard,msg_identification:0
3121+msgid "Message identification"
3122+msgstr ""
3123+
3124+#. module: account_banking_sepa_credit_transfer
3125+#: code:addons/account_banking_sepa_credit_transfer/wizard/export_sepa.py:284
3126+#, python-format
3127+msgid "The generated XML file is not valid against the official XML Schema Definition. The generated XML file and the full error have been written in the server logs. Here is the error, which may give you an idea on the cause of the problem : %s"
3128+msgstr ""
3129+
3130+#. module: account_banking_sepa_credit_transfer
3131+#: field:banking.export.sepa,total_amount:0
3132+#: field:banking.export.sepa.wizard,total_amount:0
3133+msgid "Total amount"
3134+msgstr ""
3135+
3136+#. module: account_banking_sepa_credit_transfer
3137+#: help:banking.export.sepa,charge_bearer:0
3138+#: help:banking.export.sepa.wizard,charge_bearer:0
3139+msgid "Shared : transaction charges on the sender side are to be borne by the debtor, transaction charges on the receiver side are to be borne by the creditor (most transfers use this). Borne by creditor : all transaction charges are to be borne by the creditor. Borne by debtor : all transaction charges are to be borne by the debtor. Following service level : transaction charges are to be applied following the rules agreed in the service level and/or scheme."
3140+msgstr ""
3141+
3142+#. module: account_banking_sepa_credit_transfer
3143+#: selection:banking.export.sepa,charge_bearer:0
3144+#: selection:banking.export.sepa.wizard,charge_bearer:0
3145+msgid "Borne by creditor"
3146+msgstr ""
3147+
3148+#. module: account_banking_sepa_credit_transfer
3149+#: view:banking.export.sepa:0
3150+#: field:banking.export.sepa,payment_order_ids:0
3151+#: field:banking.export.sepa.wizard,payment_order_ids:0
3152+msgid "Payment orders"
3153+msgstr ""
3154+
3155+#. module: account_banking_sepa_credit_transfer
3156+#: code:addons/account_banking_sepa_credit_transfer/wizard/export_sepa.py:90
3157+#, python-format
3158+msgid "This IBAN is not valid : %s"
3159+msgstr ""
3160+
3161+#. module: account_banking_sepa_credit_transfer
3162+#: view:banking.export.sepa.wizard:0
3163+msgid "SEPA XML file generation"
3164+msgstr ""
3165+
3166+#. module: account_banking_sepa_credit_transfer
3167+#: view:banking.export.sepa.wizard:0
3168+msgid "Reference for further communication"
3169+msgstr ""
3170+
3171+#. module: account_banking_sepa_credit_transfer
3172+#: view:banking.export.sepa.wizard:0
3173+msgid "Processing details"
3174+msgstr ""
3175+
3176+#. module: account_banking_sepa_credit_transfer
3177+#: model:ir.model,name:account_banking_sepa_credit_transfer.model_banking_export_sepa
3178+msgid "SEPA export"
3179+msgstr ""
3180+
3181+#. module: account_banking_sepa_credit_transfer
3182+#: selection:banking.export.sepa,charge_bearer:0
3183+#: selection:banking.export.sepa.wizard,charge_bearer:0
3184+msgid "Borne by debtor"
3185+msgstr ""
3186+
3187+#. module: account_banking_sepa_credit_transfer
3188+#: field:banking.export.sepa,nb_transactions:0
3189+#: field:banking.export.sepa.wizard,nb_transactions:0
3190+msgid "Number of transactions"
3191+msgstr ""
3192+
3193+#. module: account_banking_sepa_credit_transfer
3194+#: selection:banking.export.sepa,charge_bearer:0
3195+#: selection:banking.export.sepa.wizard,charge_bearer:0
3196+msgid "Following service level"
3197+msgstr ""
3198+
3199+#. module: account_banking_sepa_credit_transfer
3200+#: field:banking.export.sepa,charge_bearer:0
3201+#: field:banking.export.sepa.wizard,charge_bearer:0
3202+msgid "Charge bearer"
3203+msgstr ""
3204+
3205+#. module: account_banking_sepa_credit_transfer
3206+#: help:banking.export.sepa,batch_booking:0
3207+#: help:banking.export.sepa.wizard,batch_booking:0
3208+msgid "If true, the bank statement will display only one debit line for all the wire transfers of the SEPA XML file ; if false, the bank statement will display one debit line per wire transfer of the SEPA XML file."
3209+msgstr ""
3210+
3211+#. module: account_banking_sepa_credit_transfer
3212+#: help:banking.export.sepa.wizard,prefered_exec_date:0
3213+msgid "This is the date on which the file should be processed by the bank. Please keep in mind that banks only execute on working days and typically use a delay of two days between execution date and effective transfer date."
3214+msgstr ""
3215+
3216+#. module: account_banking_sepa_credit_transfer
3217+#: field:banking.export.sepa.wizard,file:0
3218+msgid "File"
3219+msgstr ""
3220+
3221+#. module: account_banking_sepa_credit_transfer
3222+#: view:banking.export.sepa.wizard:0
3223+msgid "Cancel"
3224+msgstr ""
3225+
3226+#. module: account_banking_sepa_credit_transfer
3227+#: code:addons/account_banking_sepa_credit_transfer/wizard/export_sepa.py:135
3228+#, python-format
3229+msgid "Payment Type Code '%s' is not supported. The only Payment Type Codes supported for SEPA Credit Transfers are 'pain.001.001.02', 'pain.001.001.03' and 'pain.001.001.04'."
3230+msgstr ""
3231+
3232+#. module: account_banking_sepa_credit_transfer
3233+#: code:addons/account_banking_sepa_credit_transfer/wizard/export_sepa.py:90
3234+#: code:addons/account_banking_sepa_credit_transfer/wizard/export_sepa.py:135
3235+#: code:addons/account_banking_sepa_credit_transfer/wizard/export_sepa.py:284
3236+#, python-format
3237+msgid "Error :"
3238+msgstr ""
3239+
3240+#. module: account_banking_sepa_credit_transfer
3241+#: field:banking.export.sepa,batch_booking:0
3242+#: field:banking.export.sepa.wizard,batch_booking:0
3243+msgid "Batch booking"
3244+msgstr ""
3245+
3246
3247=== added file 'account_banking_sepa_credit_transfer/i18n/fr.po'
3248--- account_banking_sepa_credit_transfer/i18n/fr.po 1970-01-01 00:00:00 +0000
3249+++ account_banking_sepa_credit_transfer/i18n/fr.po 2013-06-06 08:07:29 +0000
3250@@ -0,0 +1,251 @@
3251+# Translation of OpenERP Server.
3252+# This file contains the translation of the following modules:
3253+# * account_banking_sepa_credit_transfer
3254+#
3255+msgid ""
3256+msgstr ""
3257+"Project-Id-Version: OpenERP Server 6.1\n"
3258+"Report-Msgid-Bugs-To: \n"
3259+"POT-Creation-Date: 2013-06-06 08:01+0000\n"
3260+"PO-Revision-Date: 2013-06-06 08:01+0000\n"
3261+"Last-Translator: <>\n"
3262+"Language-Team: \n"
3263+"MIME-Version: 1.0\n"
3264+"Content-Type: text/plain; charset=UTF-8\n"
3265+"Content-Transfer-Encoding: \n"
3266+"Plural-Forms: \n"
3267+
3268+#. module: account_banking_sepa_credit_transfer
3269+#: field:banking.export.sepa,file:0
3270+#: field:banking.export.sepa.wizard,file_id:0
3271+msgid "SEPA XML file"
3272+msgstr "Fichier SEPA XML"
3273+
3274+#. module: account_banking_sepa_credit_transfer
3275+#: view:banking.export.sepa:0
3276+msgid "Payment order"
3277+msgstr "Ordre de paiement"
3278+
3279+#. module: account_banking_sepa_credit_transfer
3280+#: selection:banking.export.sepa.wizard,state:0
3281+msgid "Create"
3282+msgstr "Créer"
3283+
3284+#. module: account_banking_sepa_credit_transfer
3285+#: help:banking.export.sepa.wizard,msg_identification:0
3286+msgid "This is the message identification of the entire SEPA XML file. 35 characters max."
3287+msgstr "Ceci est le libellé d'identification du fichier SEPA XML. 35 caractères maximum."
3288+
3289+#. module: account_banking_sepa_credit_transfer
3290+#: field:banking.export.sepa,filename:0
3291+#: field:banking.export.sepa.wizard,filename:0
3292+msgid "Filename"
3293+msgstr "Nom du fichier"
3294+
3295+#. module: account_banking_sepa_credit_transfer
3296+#: view:banking.export.sepa:0
3297+msgid "General information"
3298+msgstr "Informations générales"
3299+
3300+#. module: account_banking_sepa_credit_transfer
3301+#: field:banking.export.sepa,state:0
3302+#: field:banking.export.sepa.wizard,state:0
3303+msgid "State"
3304+msgstr "État"
3305+
3306+#. module: account_banking_sepa_credit_transfer
3307+#: selection:banking.export.sepa,state:0
3308+msgid "Draft"
3309+msgstr "Brouillon"
3310+
3311+#. module: account_banking_sepa_credit_transfer
3312+#: field:banking.export.sepa,prefered_exec_date:0
3313+#: field:banking.export.sepa.wizard,prefered_exec_date:0
3314+msgid "Prefered execution date"
3315+msgstr "Date d'exécution demandée"
3316+
3317+#. module: account_banking_sepa_credit_transfer
3318+#: selection:banking.export.sepa,charge_bearer:0
3319+#: selection:banking.export.sepa.wizard,charge_bearer:0
3320+msgid "Shared"
3321+msgstr "Partagé"
3322+
3323+#. module: account_banking_sepa_credit_transfer
3324+#: field:banking.export.sepa,generation_date:0
3325+msgid "Generation date"
3326+msgstr "Date de génération"
3327+
3328+#. module: account_banking_sepa_credit_transfer
3329+#: model:ir.model,name:account_banking_sepa_credit_transfer.model_banking_export_sepa_wizard
3330+msgid "Export SEPA Credit Transfer XML file"
3331+msgstr "Exporte the fichier de virement SEPA XML"
3332+
3333+#. module: account_banking_sepa_credit_transfer
3334+#: view:banking.export.sepa:0
3335+msgid "SEPA Credit Transfer"
3336+msgstr "Virement SEPA"
3337+
3338+#. module: account_banking_sepa_credit_transfer
3339+#: selection:banking.export.sepa.wizard,state:0
3340+msgid "Finish"
3341+msgstr "Finir"
3342+
3343+#. module: account_banking_sepa_credit_transfer
3344+#: selection:banking.export.sepa,state:0
3345+msgid "Reconciled"
3346+msgstr "Réconcilié"
3347+
3348+#. module: account_banking_sepa_credit_transfer
3349+#: model:ir.actions.act_window,name:account_banking_sepa_credit_transfer.act_banking_export_sepa_payment_order
3350+msgid "Generated SEPA files"
3351+msgstr "Fichiers SEPA générés"
3352+
3353+#. module: account_banking_sepa_credit_transfer
3354+#: model:ir.actions.act_window,name:account_banking_sepa_credit_transfer.action_account_banking_sepa
3355+#: model:ir.ui.menu,name:account_banking_sepa_credit_transfer.menu_account_banking_sepa
3356+msgid "Generated SEPA XML files"
3357+msgstr "Fichiers SEPA XML générés"
3358+
3359+#. module: account_banking_sepa_credit_transfer
3360+#: selection:banking.export.sepa,state:0
3361+msgid "Sent"
3362+msgstr "Envoyé"
3363+
3364+#. module: account_banking_sepa_credit_transfer
3365+#: view:banking.export.sepa.wizard:0
3366+msgid "Validate"
3367+msgstr "Valider"
3368+
3369+#. module: account_banking_sepa_credit_transfer
3370+#: view:banking.export.sepa.wizard:0
3371+msgid "Generate"
3372+msgstr "Générer"
3373+
3374+#. module: account_banking_sepa_credit_transfer
3375+#: field:banking.export.sepa,msg_identification:0
3376+#: field:banking.export.sepa.wizard,msg_identification:0
3377+msgid "Message identification"
3378+msgstr "Libellé d'identification"
3379+
3380+#. module: account_banking_sepa_credit_transfer
3381+#: code:addons/account_banking_sepa_credit_transfer/wizard/export_sepa.py:284
3382+#, python-format
3383+msgid "The generated XML file is not valid against the official XML Schema Definition. The generated XML file and the full error have been written in the server logs. Here is the error, which may give you an idea on the cause of the problem : %s"
3384+msgstr "Le fichier XML généré n'est pas valide par rapport à la Définition du Schéma XML officiel. Le fichier XML généré et le message d'erreur complet ont été écrits dans les logs du serveur. Voici l'erreur, qui vous donnera peut-être une idée sur la cause du problème : %s"
3385+
3386+#. module: account_banking_sepa_credit_transfer
3387+#: field:banking.export.sepa,total_amount:0
3388+#: field:banking.export.sepa.wizard,total_amount:0
3389+msgid "Total amount"
3390+msgstr "Montant total"
3391+
3392+#. module: account_banking_sepa_credit_transfer
3393+#: help:banking.export.sepa,charge_bearer:0
3394+#: help:banking.export.sepa.wizard,charge_bearer:0
3395+msgid "Shared : transaction charges on the sender side are to be borne by the debtor, transaction charges on the receiver side are to be borne by the creditor (most transfers use this). Borne by creditor : all transaction charges are to be borne by the creditor. Borne by debtor : all transaction charges are to be borne by the debtor. Following service level : transaction charges are to be applied following the rules agreed in the service level and/or scheme."
3396+msgstr "Partagés : les frais bancaires côté émetteur sont à la charge de l'émetteur et les frais bancaires côté destinataire sont à la charge du destinataire (la plupart des virements utilisent cette répartition). Supportés par le destinataire : tous les frais bancaires sont à la charge du destinataire. Supportés par l'émetteur : tous les frais bancaires sont à la charge de l'émetteur. Suivant le niveau de service : la répartition des frais bancaires suit les règles pré-établies dans le contrat avec la banque."
3397+
3398+#. module: account_banking_sepa_credit_transfer
3399+#: selection:banking.export.sepa,charge_bearer:0
3400+#: selection:banking.export.sepa.wizard,charge_bearer:0
3401+msgid "Borne by creditor"
3402+msgstr "Supportés par le destinataire"
3403+
3404+#. module: account_banking_sepa_credit_transfer
3405+#: view:banking.export.sepa:0
3406+#: field:banking.export.sepa,payment_order_ids:0
3407+#: field:banking.export.sepa.wizard,payment_order_ids:0
3408+msgid "Payment orders"
3409+msgstr "Ordres de paiement"
3410+
3411+#. module: account_banking_sepa_credit_transfer
3412+#: code:addons/account_banking_sepa_credit_transfer/wizard/export_sepa.py:90
3413+#, python-format
3414+msgid "This IBAN is not valid : %s"
3415+msgstr "Cet IBAN n'est pas valide : %s"
3416+
3417+#. module: account_banking_sepa_credit_transfer
3418+#: view:banking.export.sepa.wizard:0
3419+msgid "SEPA XML file generation"
3420+msgstr "Génération du fichier SEPA XML"
3421+
3422+#. module: account_banking_sepa_credit_transfer
3423+#: view:banking.export.sepa.wizard:0
3424+msgid "Reference for further communication"
3425+msgstr "Référence pour communication ultérieure"
3426+
3427+#. module: account_banking_sepa_credit_transfer
3428+#: view:banking.export.sepa.wizard:0
3429+msgid "Processing details"
3430+msgstr "Paramètres"
3431+
3432+#. module: account_banking_sepa_credit_transfer
3433+#: model:ir.model,name:account_banking_sepa_credit_transfer.model_banking_export_sepa
3434+msgid "SEPA export"
3435+msgstr "Export SEPA"
3436+
3437+#. module: account_banking_sepa_credit_transfer
3438+#: selection:banking.export.sepa,charge_bearer:0
3439+#: selection:banking.export.sepa.wizard,charge_bearer:0
3440+msgid "Borne by debtor"
3441+msgstr "Supportés par l'émetteur"
3442+
3443+#. module: account_banking_sepa_credit_transfer
3444+#: field:banking.export.sepa,nb_transactions:0
3445+#: field:banking.export.sepa.wizard,nb_transactions:0
3446+msgid "Number of transactions"
3447+msgstr "Nombre de transactions"
3448+
3449+#. module: account_banking_sepa_credit_transfer
3450+#: selection:banking.export.sepa,charge_bearer:0
3451+#: selection:banking.export.sepa.wizard,charge_bearer:0
3452+msgid "Following service level"
3453+msgstr "Suivant le niveau de service"
3454+
3455+#. module: account_banking_sepa_credit_transfer
3456+#: field:banking.export.sepa,charge_bearer:0
3457+#: field:banking.export.sepa.wizard,charge_bearer:0
3458+msgid "Charge bearer"
3459+msgstr "Répartition des frais"
3460+
3461+#. module: account_banking_sepa_credit_transfer
3462+#: help:banking.export.sepa,batch_booking:0
3463+#: help:banking.export.sepa.wizard,batch_booking:0
3464+msgid "If true, the bank statement will display only one debit line for all the wire transfers of the SEPA XML file ; if false, the bank statement will display one debit line per wire transfer of the SEPA XML file."
3465+msgstr "Si coché, le relevé de compte ne comportera qu'une ligne de débit pour tous les virements du fichier SEPA XML ; si non coché, le relevé de compte comportera une ligne de débit pour chaque virement du fichier SEPA XML."
3466+
3467+#. module: account_banking_sepa_credit_transfer
3468+#: help:banking.export.sepa.wizard,prefered_exec_date:0
3469+msgid "This is the date on which the file should be processed by the bank. Please keep in mind that banks only execute on working days and typically use a delay of two days between execution date and effective transfer date."
3470+msgstr "C'est la date à laquelle le fichier doit être traité par la banque. Gardez en tête que les banques réalisent des traitements seulement les jours ouvrés et ont habituellement un délai de 2 jours entre la date de traitement et la date du transfert effectif."
3471+
3472+#. module: account_banking_sepa_credit_transfer
3473+#: field:banking.export.sepa.wizard,file:0
3474+msgid "File"
3475+msgstr "Fichier"
3476+
3477+#. module: account_banking_sepa_credit_transfer
3478+#: view:banking.export.sepa.wizard:0
3479+msgid "Cancel"
3480+msgstr "Annuler"
3481+
3482+#. module: account_banking_sepa_credit_transfer
3483+#: code:addons/account_banking_sepa_credit_transfer/wizard/export_sepa.py:135
3484+#, python-format
3485+msgid "Payment Type Code '%s' is not supported. The only Payment Type Codes supported for SEPA Credit Transfers are 'pain.001.001.02', 'pain.001.001.03' and 'pain.001.001.04'."
3486+msgstr "Le code '%s' pour le Type de Paiment n'est pas supporté. Les seuls codes de Types de Paiement supportés pour les virements SEPA sont 'pain.001.001.02', 'pain.001.001.03' et 'pain.001.001.04'."
3487+
3488+#. module: account_banking_sepa_credit_transfer
3489+#: code:addons/account_banking_sepa_credit_transfer/wizard/export_sepa.py:90
3490+#: code:addons/account_banking_sepa_credit_transfer/wizard/export_sepa.py:135
3491+#: code:addons/account_banking_sepa_credit_transfer/wizard/export_sepa.py:284
3492+#, python-format
3493+msgid "Error :"
3494+msgstr "Erreur :"
3495+
3496+#. module: account_banking_sepa_credit_transfer
3497+#: field:banking.export.sepa,batch_booking:0
3498+#: field:banking.export.sepa.wizard,batch_booking:0
3499+msgid "Batch booking"
3500+msgstr "Débit groupé"
3501+
3502
3503=== added directory 'account_banking_sepa_credit_transfer/security'
3504=== added file 'account_banking_sepa_credit_transfer/security/ir.model.access.csv'
3505--- account_banking_sepa_credit_transfer/security/ir.model.access.csv 1970-01-01 00:00:00 +0000
3506+++ account_banking_sepa_credit_transfer/security/ir.model.access.csv 2013-06-06 08:07:29 +0000
3507@@ -0,0 +1,2 @@
3508+"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
3509+"access_banking_export_sepa","Full access on banking.export.sepa","model_banking_export_sepa","account_payment.group_account_payment",1,1,1,1
3510
3511=== added directory 'account_banking_sepa_credit_transfer/wizard'
3512=== added file 'account_banking_sepa_credit_transfer/wizard/__init__.py'
3513--- account_banking_sepa_credit_transfer/wizard/__init__.py 1970-01-01 00:00:00 +0000
3514+++ account_banking_sepa_credit_transfer/wizard/__init__.py 2013-06-06 08:07:29 +0000
3515@@ -0,0 +1,23 @@
3516+# -*- encoding: utf-8 -*-
3517+##############################################################################
3518+#
3519+# SEPA Credit Transfer module for OpenERP
3520+# Copyright (C) 2010-2013 Akretion (http://www.akretion.com)
3521+# @author: Alexis de Lattre <alexis.delattre@akretion.com>
3522+#
3523+# This program is free software: you can redistribute it and/or modify
3524+# it under the terms of the GNU Affero General Public License as
3525+# published by the Free Software Foundation, either version 3 of the
3526+# License, or (at your option) any later version.
3527+#
3528+# This program is distributed in the hope that it will be useful,
3529+# but WITHOUT ANY WARRANTY; without even the implied warranty of
3530+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3531+# GNU Affero General Public License for more details.
3532+#
3533+# You should have received a copy of the GNU Affero General Public License
3534+# along with this program. If not, see <http://www.gnu.org/licenses/>.
3535+#
3536+##############################################################################
3537+
3538+import export_sepa
3539
3540=== added file 'account_banking_sepa_credit_transfer/wizard/export_sepa.py'
3541--- account_banking_sepa_credit_transfer/wizard/export_sepa.py 1970-01-01 00:00:00 +0000
3542+++ account_banking_sepa_credit_transfer/wizard/export_sepa.py 2013-06-06 08:07:29 +0000
3543@@ -0,0 +1,341 @@
3544+# -*- encoding: utf-8 -*-
3545+##############################################################################
3546+#
3547+# SEPA Credit Transfer module for OpenERP
3548+# Copyright (C) 2010-2013 Akretion (http://www.akretion.com)
3549+# @author: Alexis de Lattre <alexis.delattre@akretion.com>
3550+#
3551+# This program is free software: you can redistribute it and/or modify
3552+# it under the terms of the GNU Affero General Public License as
3553+# published by the Free Software Foundation, either version 3 of the
3554+# License, or (at your option) any later version.
3555+#
3556+# This program is distributed in the hope that it will be useful,
3557+# but WITHOUT ANY WARRANTY; without even the implied warranty of
3558+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3559+# GNU Affero General Public License for more details.
3560+#
3561+# You should have received a copy of the GNU Affero General Public License
3562+# along with this program. If not, see <http://www.gnu.org/licenses/>.
3563+#
3564+##############################################################################
3565+
3566+
3567+from osv import osv, fields
3568+import base64
3569+from datetime import datetime, timedelta
3570+from tools.translate import _
3571+import tools
3572+from lxml import etree
3573+import logging
3574+import netsvc
3575+
3576+_logger = logging.getLogger(__name__)
3577+
3578+
3579+class banking_export_sepa_wizard(osv.osv_memory):
3580+ _name = 'banking.export.sepa.wizard'
3581+ _description = 'Export SEPA Credit Transfer XML file'
3582+ _columns = {
3583+ 'state': fields.selection([('create', 'Create'), ('finish', 'Finish')],
3584+ 'State', readonly=True),
3585+ 'msg_identification': fields.char('Message identification', size=35,
3586+ # Can't set required=True on the field because it blocks
3587+ # the launch of the wizard -> I set it as required in the view
3588+ help='This is the message identification of the entire SEPA XML file. 35 characters max.'),
3589+ 'batch_booking': fields.boolean('Batch booking',
3590+ help="If true, the bank statement will display only one debit line for all the wire transfers of the SEPA XML file ; if false, the bank statement will display one debit line per wire transfer of the SEPA XML file."),
3591+ 'prefered_exec_date': fields.date('Prefered execution date',
3592+ help='This is the date on which the file should be processed by the bank. Please keep in mind that banks only execute on working days and typically use a delay of two days between execution date and effective transfer date.'),
3593+ 'charge_bearer': fields.selection([
3594+ ('SHAR', 'Shared'),
3595+ ('CRED', 'Borne by creditor'),
3596+ ('DEBT', 'Borne by debtor'),
3597+ ('SLEV', 'Following service level'),
3598+ ], 'Charge bearer', required=True,
3599+ help='Shared : transaction charges on the sender side are to be borne by the debtor, transaction charges on the receiver side are to be borne by the creditor (most transfers use this). Borne by creditor : all transaction charges are to be borne by the creditor. Borne by debtor : all transaction charges are to be borne by the debtor. Following service level : transaction charges are to be applied following the rules agreed in the service level and/or scheme.'),
3600+ 'nb_transactions': fields.related('file_id', 'nb_transactions',
3601+ type='integer', string='Number of transactions', readonly=True),
3602+ 'total_amount': fields.related('file_id', 'total_amount', type='float',
3603+ string='Total amount', readonly=True),
3604+ 'file_id': fields.many2one('banking.export.sepa', 'SEPA XML file', readonly=True),
3605+ 'file': fields.related('file_id', 'file', string="File", type='binary',
3606+ readonly=True),
3607+ 'filename': fields.related('file_id', 'filename', string="Filename",
3608+ type='char', size=256, readonly=True),
3609+ 'payment_order_ids': fields.many2many('payment.order',
3610+ 'wiz_sepa_payorders_rel', 'wizard_id', 'payment_order_id',
3611+ 'Payment orders', readonly=True),
3612+ }
3613+
3614+ _defaults = {
3615+ 'charge_bearer': 'SLEV',
3616+ 'state': 'create',
3617+ }
3618+
3619+
3620+ def _limit_size(self, cr, uid, field, max_size, context=None):
3621+ '''Limit size of strings to respect the PAIN standard'''
3622+ max_size = int(max_size)
3623+ return field[0:max_size]
3624+
3625+
3626+ def _validate_iban(self, cr, uid, iban, context=None):
3627+ '''if IBAN is valid, returns IBAN
3628+ if IBAN is NOT valid, raises an error message'''
3629+ partner_bank_obj = self.pool.get('res.partner.bank')
3630+ if partner_bank_obj.is_iban_valid(cr, uid, iban, context=context):
3631+ return iban.replace(' ', '')
3632+ else:
3633+ raise osv.except_osv(_('Error :'), _("This IBAN is not valid : %s") % iban)
3634+
3635+ def create(self, cr, uid, vals, context=None):
3636+ payment_order_ids = context.get('active_ids', [])
3637+ vals.update({
3638+ 'payment_order_ids': [[6, 0, payment_order_ids]],
3639+ })
3640+ return super(banking_export_sepa_wizard, self).create(cr, uid,
3641+ vals, context=context)
3642+
3643+
3644+ def create_sepa(self, cr, uid, ids, context=None):
3645+ '''
3646+ Creates the SEPA Credit Transfer file. That's the important code !
3647+ '''
3648+ payment_order_obj = self.pool.get('payment.order')
3649+
3650+ sepa_export = self.browse(cr, uid, ids[0], context=context)
3651+
3652+ my_company_name = sepa_export.payment_order_ids[0].mode.bank_id.partner_id.name
3653+ my_company_iban = self._validate_iban(cr, uid, sepa_export.payment_order_ids[0].mode.bank_id.iban, context=context)
3654+ my_company_bic = sepa_export.payment_order_ids[0].mode.bank_id.bank.bic
3655+ #my_company_country_code = sepa_export.payment_order_ids[0].mode.bank_id.partner_id.address[0].country_id.code
3656+ #my_company_city = sepa_export.payment_order_ids[0].mode.bank_id.partner_id.address[0].city
3657+ #my_company_street1 = sepa_export.payment_order_ids[0].mode.bank_id.partner_id.address[0].street
3658+ pain_flavor = sepa_export.payment_order_ids[0].mode.type.code
3659+ if pain_flavor == 'pain.001.001.02':
3660+ bic_xml_tag = 'BIC'
3661+ name_maxsize = 70
3662+ root_xml_tag = 'pain.001.001.02'
3663+ elif pain_flavor == 'pain.001.001.03':
3664+ bic_xml_tag = 'BIC'
3665+ # size 70 -> 140 for <Nm> with pain.001.001.03
3666+ # BUT the European Payment Council, in the document
3667+ # "SEPA Credit Transfer Scheme Customer-to-bank Implementation guidelines" v6.0
3668+ # available on http://www.europeanpaymentscouncil.eu/knowledge_bank.cfm
3669+ # says that 'Nm' should be limited to 70
3670+ # so we follow the "European Payment Council" and we put 70 and not 140
3671+ name_maxsize = 70
3672+ root_xml_tag = 'CstmrCdtTrfInitn'
3673+ elif pain_flavor == 'pain.001.001.04':
3674+ bic_xml_tag = 'BICFI'
3675+ name_maxsize = 140
3676+ root_xml_tag = 'CstmrCdtTrfInitn'
3677+ else:
3678+ raise osv.except_osv(_('Error :'), _("Payment Type Code '%s' is not supported. The only Payment Type Codes supported for SEPA Credit Transfers are 'pain.001.001.02', 'pain.001.001.03' and 'pain.001.001.04'.") % pain_flavor)
3679+ if sepa_export.batch_booking:
3680+ my_batch_booking = 'true'
3681+ else:
3682+ my_batch_booking = 'false'
3683+ my_msg_identification = sepa_export.msg_identification
3684+ if sepa_export.prefered_exec_date:
3685+ my_requested_exec_date = sepa_export.prefered_exec_date
3686+ else:
3687+ my_requested_exec_date = datetime.strftime(datetime.today() + timedelta(days=1), '%Y-%m-%d')
3688+
3689+ pain_ns = {
3690+ 'xsi': 'http://www.w3.org/2001/XMLSchema-instance',
3691+ None: 'urn:iso:std:iso:20022:tech:xsd:%s' % pain_flavor,
3692+ }
3693+
3694+ root = etree.Element('Document', nsmap=pain_ns)
3695+ pain_root = etree.SubElement(root, root_xml_tag)
3696+ # A. Group header
3697+ group_header = etree.SubElement(pain_root, 'GrpHdr')
3698+ message_identification = etree.SubElement(group_header, 'MsgId')
3699+ message_identification.text = self._limit_size(cr, uid, my_msg_identification, 35, context=context)
3700+ creation_date_time = etree.SubElement(group_header, 'CreDtTm')
3701+ creation_date_time.text = datetime.strftime(datetime.today(), '%Y-%m-%dT%H:%M:%S')
3702+ if pain_flavor == 'pain.001.001.02':
3703+ # batch_booking is in "Group header" with pain.001.001.02
3704+ # and in "Payment info" in pain.001.001.03/04
3705+ batch_booking = etree.SubElement(group_header, 'BtchBookg')
3706+ batch_booking.text = my_batch_booking
3707+ nb_of_transactions_grphdr = etree.SubElement(group_header, 'NbOfTxs')
3708+ control_sum_grphdr = etree.SubElement(group_header, 'CtrlSum')
3709+ # Grpg removed in pain.001.001.03
3710+ if pain_flavor == 'pain.001.001.02':
3711+ grouping = etree.SubElement(group_header, 'Grpg')
3712+ grouping.text = 'GRPD'
3713+ initiating_party = etree.SubElement(group_header, 'InitgPty')
3714+ initiating_party_name = etree.SubElement(initiating_party, 'Nm')
3715+ initiating_party_name.text = self._limit_size(cr, uid, my_company_name, name_maxsize, context=context)
3716+ # B. Payment info
3717+ payment_info = etree.SubElement(pain_root, 'PmtInf')
3718+ payment_info_identification = etree.SubElement(payment_info, 'PmtInfId')
3719+ payment_info_identification.text = self._limit_size(cr, uid, my_msg_identification, 35, context=context)
3720+ payment_method = etree.SubElement(payment_info, 'PmtMtd')
3721+ payment_method.text = 'TRF'
3722+ if pain_flavor in ['pain.001.001.03', 'pain.001.001.04']:
3723+ # batch_booking is in "Group header" with pain.001.001.02
3724+ # and in "Payment info" in pain.001.001.03/04
3725+ batch_booking = etree.SubElement(payment_info, 'BtchBookg')
3726+ batch_booking.text = my_batch_booking
3727+ # It may seem surprising, but the
3728+ # "SEPA Credit Transfer Scheme Customer-to-bank Implementation guidelines"
3729+ # v6.0 says that control sum and nb_of_transactions should be present
3730+ # at both "group header" level and "payment info" level
3731+ # This seems to be confirmed by the tests carried out at
3732+ # BNP Paribas in PAIN v001.001.03
3733+ if pain_flavor in ['pain.001.001.03', 'pain.001.001.04']:
3734+ nb_of_transactions_pmtinf = etree.SubElement(payment_info, 'NbOfTxs')
3735+ control_sum_pmtinf = etree.SubElement(payment_info, 'CtrlSum')
3736+ payment_type_info = etree.SubElement(payment_info, 'PmtTpInf')
3737+ service_level = etree.SubElement(payment_type_info, 'SvcLvl')
3738+ service_level_code = etree.SubElement(service_level, 'Cd')
3739+ service_level_code.text = 'SEPA'
3740+ requested_exec_date = etree.SubElement(payment_info, 'ReqdExctnDt')
3741+ requested_exec_date.text = my_requested_exec_date
3742+ debtor = etree.SubElement(payment_info, 'Dbtr')
3743+ debtor_name = etree.SubElement(debtor, 'Nm')
3744+ debtor_name.text = self._limit_size(cr, uid, my_company_name, name_maxsize, context=context)
3745+# debtor_address = etree.SubElement(debtor, 'PstlAdr')
3746+# debtor_street = etree.SubElement(debtor_address, 'AdrLine')
3747+# debtor_street.text = my_company_street1
3748+# debtor_city = etree.SubElement(debtor_address, 'AdrLine')
3749+# debtor_city.text = my_company_city
3750+# debtor_country = etree.SubElement(debtor_address, 'Ctry')
3751+# debtor_country.text = my_company_country_code
3752+ debtor_account = etree.SubElement(payment_info, 'DbtrAcct')
3753+ debtor_account_id = etree.SubElement(debtor_account, 'Id')
3754+ debtor_account_iban = etree.SubElement(debtor_account_id, 'IBAN')
3755+ debtor_account_iban.text = my_company_iban
3756+ debtor_agent = etree.SubElement(payment_info, 'DbtrAgt')
3757+ debtor_agent_institution = etree.SubElement(debtor_agent, 'FinInstnId')
3758+ debtor_agent_bic = etree.SubElement(debtor_agent_institution, bic_xml_tag)
3759+ debtor_agent_bic.text = my_company_bic
3760+ charge_bearer = etree.SubElement(payment_info, 'ChrgBr')
3761+ charge_bearer.text = sepa_export.charge_bearer
3762+
3763+ transactions_count = 0
3764+ total_amount = 0.0
3765+ amount_control_sum = 0.0
3766+ # Iterate on payment orders
3767+ for payment_order in sepa_export.payment_order_ids:
3768+ total_amount = total_amount + payment_order.total
3769+ # Iterate each payment lines
3770+ for line in payment_order.line_ids:
3771+ transactions_count += 1
3772+ # C. Credit Transfer Transaction Info
3773+ credit_transfer_transaction_info = etree.SubElement(payment_info, 'CdtTrfTxInf')
3774+ payment_identification = etree.SubElement(credit_transfer_transaction_info, 'PmtId')
3775+ instruction_identification = etree.SubElement(payment_identification, 'InstrId')
3776+ instruction_identification.text = self._limit_size(cr, uid, line.communication, 35, context=context) #otherwise, we can reach the invoice fields via ml_inv_ref
3777+ end2end_identification = etree.SubElement(payment_identification, 'EndToEndId')
3778+ end2end_identification.text = self._limit_size(cr, uid, line.communication, 35, context=context)
3779+ amount = etree.SubElement(credit_transfer_transaction_info, 'Amt')
3780+ instructed_amount = etree.SubElement(amount, 'InstdAmt', Ccy=line.currency.name)
3781+ instructed_amount.text = '%.2f' % line.amount_currency
3782+ amount_control_sum += line.amount_currency
3783+ creditor_agent = etree.SubElement(credit_transfer_transaction_info, 'CdtrAgt')
3784+ creditor_agent_institution = etree.SubElement(creditor_agent, 'FinInstnId')
3785+ creditor_agent_bic = etree.SubElement(creditor_agent_institution, bic_xml_tag)
3786+ creditor_agent_bic.text = line.bank_id.bank.bic
3787+ creditor = etree.SubElement(credit_transfer_transaction_info, 'Cdtr')
3788+ creditor_name = etree.SubElement(creditor, 'Nm')
3789+ creditor_name.text = self._limit_size(cr, uid, line.partner_id.name, name_maxsize, context=context)
3790+# I don't think they want it
3791+# If they want it, we need to implement full spec p26 appendix
3792+# creditor_address = etree.SubElement(creditor, 'PstlAdr')
3793+# creditor_street = etree.SubElement(creditor_address, 'AdrLine')
3794+# creditor_street.text = line.partner_id.address[0].street
3795+# creditor_city = etree.SubElement(creditor_address, 'AdrLine')
3796+# creditor_city.text = line.partner_id.address[0].city
3797+# creditor_country = etree.SubElement(creditor_address, 'Ctry')
3798+# creditor_country.text = line.partner_id.address[0].country_id.code
3799+ creditor_account = etree.SubElement(credit_transfer_transaction_info, 'CdtrAcct')
3800+ creditor_account_id = etree.SubElement(creditor_account, 'Id')
3801+ creditor_account_iban = etree.SubElement(creditor_account_id, 'IBAN')
3802+ creditor_account_iban.text = self._validate_iban(cr, uid, line.bank_id.iban, context=context)
3803+ remittance_info = etree.SubElement(credit_transfer_transaction_info, 'RmtInf')
3804+ # switch to Structured (Strdr) ? If we do it, beware that the format is not the same between pain 02 and pain 03
3805+ remittance_info_unstructured = etree.SubElement(remittance_info, 'Ustrd')
3806+ remittance_info_unstructured.text = self._limit_size(cr, uid, line.communication, 140, context=context)
3807+
3808+ if pain_flavor in ['pain.001.001.03', 'pain.001.001.04']:
3809+ nb_of_transactions_grphdr.text = nb_of_transactions_pmtinf.text = str(transactions_count)
3810+ control_sum_grphdr.text = control_sum_pmtinf.text = '%.2f' % amount_control_sum
3811+ else:
3812+ nb_of_transactions_grphdr.text = str(transactions_count)
3813+ control_sum_grphdr.text = '%.2f' % amount_control_sum
3814+
3815+
3816+ xml_string = etree.tostring(root, pretty_print=True, encoding='UTF-8', xml_declaration=True)
3817+ _logger.debug("Generated SEPA XML file below")
3818+ _logger.debug(xml_string)
3819+ official_pain_schema = etree.XMLSchema(etree.parse(tools.file_open('account_banking_sepa_credit_transfer/data/%s.xsd' % pain_flavor)))
3820+
3821+ try:
3822+ official_pain_schema.validate(root)
3823+ except Exception, e:
3824+ _logger.warning("The XML file is invalid against the XML Schema Definition")
3825+ _logger.warning(xml_string)
3826+ _logger.warning(e)
3827+ raise osv.except_osv(_('Error :'), _('The generated XML file is not valid against the official XML Schema Definition. The generated XML file and the full error have been written in the server logs. Here is the error, which may give you an idea on the cause of the problem : %s') % str(e))
3828+
3829+ # CREATE the banking.export.sepa record
3830+ file_id = self.pool.get('banking.export.sepa').create(cr, uid,
3831+ {
3832+ 'msg_identification': my_msg_identification,
3833+ 'batch_booking': sepa_export.batch_booking,
3834+ 'charge_bearer': sepa_export.charge_bearer,
3835+ 'prefered_exec_date': sepa_export.prefered_exec_date,
3836+ 'total_amount': total_amount,
3837+ 'nb_transactions': transactions_count,
3838+ 'file': base64.encodestring(xml_string),
3839+ 'payment_order_ids': [
3840+ (6, 0, [x.id for x in sepa_export.payment_order_ids])
3841+ ],
3842+ }, context=context)
3843+
3844+ self.write(cr, uid, ids, {
3845+ 'file_id': file_id,
3846+ 'state': 'finish',
3847+ }, context=context)
3848+
3849+ action = {
3850+ 'name': 'SEPA XML',
3851+ 'type': 'ir.actions.act_window',
3852+ 'view_type': 'form',
3853+ 'view_mode': 'form,tree',
3854+ 'res_model': self._name,
3855+ 'res_id': ids[0],
3856+ 'target': 'new',
3857+ }
3858+ return action
3859+
3860+
3861+ def cancel_sepa(self, cr, uid, ids, context=None):
3862+ '''
3863+ Cancel the SEPA PAIN: just drop the file
3864+ '''
3865+ sepa_export = self.browse(cr, uid, ids[0], context=context)
3866+ self.pool.get('banking.export.sepa').unlink(cr, uid, sepa_export.file_id.id, context=context)
3867+ return {'type': 'ir.actions.act_window_close'}
3868+
3869+
3870+ def save_sepa(self, cr, uid, ids, context=None):
3871+ '''
3872+ Save the SEPA PAIN: mark all payments in the file as 'sent'.
3873+ '''
3874+ sepa_export = self.browse(cr, uid, ids[0], context=context)
3875+ sepa_file = self.pool.get('banking.export.sepa').write(cr, uid,
3876+ sepa_export.file_id.id, {'state': 'sent'}, context=context)
3877+ wf_service = netsvc.LocalService('workflow')
3878+ for order in sepa_export.payment_order_ids:
3879+ wf_service.trg_validate(uid, 'payment.order', order.id, 'sent', cr)
3880+ return {'type': 'ir.actions.act_window_close'}
3881+
3882+
3883+banking_export_sepa_wizard()
3884+
3885
3886=== added file 'account_banking_sepa_credit_transfer/wizard/export_sepa_view.xml'
3887--- account_banking_sepa_credit_transfer/wizard/export_sepa_view.xml 1970-01-01 00:00:00 +0000
3888+++ account_banking_sepa_credit_transfer/wizard/export_sepa_view.xml 2013-06-06 08:07:29 +0000
3889@@ -0,0 +1,48 @@
3890+<?xml version="1.0" encoding="utf-8"?>
3891+<!--
3892+ Copyright (C) 2010-2012 Akretion (http://www.akretion.com)
3893+ @author: Alexis de Lattre <alexis.delattre@akretion.com>
3894+ The licence is in the file __openerp__.py
3895+-->
3896+<openerp>
3897+<data>
3898+
3899+<record id="banking_export_sepa_wizard_view" model="ir.ui.view">
3900+ <field name="name">banking.export.sepa.wizard.view</field>
3901+ <field name="model">banking.export.sepa.wizard</field>
3902+ <field name="type">form</field>
3903+ <field name="arch" type="xml">
3904+ <form string="SEPA XML file generation">
3905+ <field name="state" invisible="True"/>
3906+ <group states="create">
3907+ <separator colspan="4" string="Processing details" />
3908+ <field name="batch_booking" />
3909+ <field name="prefered_exec_date" />
3910+ <field name="charge_bearer" />
3911+ <separator colspan="4" string="Reference for further communication" />
3912+ <field name="msg_identification" required="True" />
3913+ <newline />
3914+ <button icon="gtk-close" special="cancel" string="Cancel" colspan="2"/>
3915+ <button icon="gtk-ok" string="Generate" name="create_sepa" type="object" colspan="2"/>
3916+ </group>
3917+ <group states="finish">
3918+ <field name="total_amount" />
3919+ <!-- Don't display this field, to avoid this bug :
3920+ https://bugs.launchpad.net/openobject-client-web/+bug/718989
3921+ Bug desc : in the Gtk client, you have to clic twice on the
3922+ "Create" button.
3923+ <field name="nb_transactions" /> -->
3924+ <newline />
3925+ <field name="file_id" />
3926+ <field name="file" filename="filename" />
3927+ <field name="filename" invisible="True"/>
3928+ <newline />
3929+ <button icon="gtk-cancel" string="Cancel" name="cancel_sepa" type="object" colspan="2"/>
3930+ <button icon="gtk-ok" string="Validate" name="save_sepa" type="object" colspan="2"/>
3931+ </group>
3932+ </form>
3933+ </field>
3934+</record>
3935+
3936+</data>
3937+</openerp>

Subscribers

People subscribed via source and target branches