[tryton-debian-vcs] tryton-modules-account-payment-sepa branch debian updated. debian/3.2.2-1-4-g5add113
Mathias Behrle
tryton-debian-vcs at alioth.debian.org
Thu Oct 23 12:13:58 UTC 2014
The following commit has been merged in the debian branch:
https://alioth.debian.org/plugins/scmgit/cgi-bin/gitweb.cgi/?p=tryton/tryton-modules-account-payment-sepa.git;a=commitdiff;h=debian/3.2.2-1-4-g5add113
commit 5add113cb11e33ae1d514f4a28cc7312d3312b1c
Author: Mathias Behrle <mathiasb at m9s.biz>
Date: Thu Oct 23 13:31:57 2014 +0200
Releasing debian version 3.4.0-1.
Signed-off-by: Mathias Behrle <mathiasb at m9s.biz>
diff --git a/debian/changelog b/debian/changelog
index 277b067..5488c5d 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,11 @@
+tryton-modules-account-payment-sepa (3.4.0-1) unstable; urgency=medium
+
+ * Adding actual upstream signing key.
+ * Updating to Standards-Version: 3.9.6, no changes needed.
+ * Merging upstream version 3.4.0.
+
+ -- Mathias Behrle <mathiasb at m9s.biz> Tue, 21 Oct 2014 20:23:48 +0200
+
tryton-modules-account-payment-sepa (3.2.2-1) unstable; urgency=medium
* Merging upstream version 3.2.2.
commit 535c7ada7c40df790c511618ff2215ca84bb27b3
Author: Mathias Behrle <mathiasb at m9s.biz>
Date: Tue Oct 21 11:29:06 2014 +0200
Merging upstream version 3.4.0.
diff --git a/CHANGELOG b/CHANGELOG
index 5d21a51..74bcdab 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,8 +1,12 @@
-Version 3.2.2 - 2014-08-03
-* Bug fixes (see mercurial logs for details)
-
-Version 3.2.1 - 2014-07-02
+Version 3.4.0 - 2014-10-20
* Bug fixes (see mercurial logs for details)
+* Add mandate report
+* Use FRST sequence type only for the first payment ever processed
+* Handle camt.054
+* Add generic SEPA Message
+* Add sequence for Mandate identification
+* Add unique constraint on Mandate identification
+* Add Direct Debit Business to Business scheme
Version 3.2.0 - 2014-04-21
-* Initial release
\ No newline at end of file
+* Initial release
diff --git a/MANIFEST.in b/MANIFEST.in
index 9d81a05..4b95b36 100644
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -11,3 +11,4 @@ include doc/*
include tests/*.rst
include tests/*.xsd
include template/*.xml
+include *.odt
diff --git a/PKG-INFO b/PKG-INFO
index b11aacc..15fb4aa 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,12 +1,12 @@
Metadata-Version: 1.1
Name: trytond_account_payment_sepa
-Version: 3.2.2
+Version: 3.4.0
Summary: Tryton module for SEPA payment
Home-page: http://www.tryton.org/
Author: Tryton
Author-email: issue_tracker at tryton.org
License: GPL-3
-Download-URL: http://downloads.tryton.org/3.2/
+Download-URL: http://downloads.tryton.org/3.4/
Description: trytond_account_payment_sepa
============================
diff --git a/__init__.py b/__init__.py
index 4f91502..6b0570d 100644
--- a/__init__.py
+++ b/__init__.py
@@ -3,6 +3,7 @@
from trytond.pool import Pool
from .payment import *
from .party import *
+from .account import *
def register():
@@ -11,5 +12,10 @@ def register():
Group,
Mandate,
Payment,
+ Message,
Party,
+ Configuration,
module='account_payment_sepa', type_='model')
+ Pool.register(
+ MandateReport,
+ module='account_payment_sepa', type_='report')
diff --git a/account.py b/account.py
new file mode 100644
index 0000000..5e3f57b
--- /dev/null
+++ b/account.py
@@ -0,0 +1,15 @@
+#This file is part of Tryton. The COPYRIGHT file at the top level of
+#this repository contains the full copyright notices and license terms.
+from trytond.pool import PoolMeta
+from trytond.model import fields
+
+__all__ = ['Configuration']
+__metaclass__ = PoolMeta
+
+
+class Configuration:
+ __name__ = 'account.configuration'
+ sepa_mandate_sequence = fields.Property(fields.Many2One('ir.sequence',
+ 'SEPA Mandate Sequence', domain=[
+ ('code', '=', 'account.payment.sepa.mandate'),
+ ]))
diff --git a/account.xml b/account.xml
index af4a8b8..ec6a1d9 100644
--- a/account.xml
+++ b/account.xml
@@ -12,5 +12,11 @@ this repository contains the full copyright notices and license terms. -->
<field name="act_window" ref="account_payment.act_move_line_form"/>
</record>
+ <record model="ir.ui.view" id="configuration_view_form">
+ <field name="model">account.configuration</field>
+ <field name="inherit" ref="account.configuration_view_form"/>
+ <field name="name">configuration_form</field>
+ </record>
+
</data>
</tryton>
diff --git a/doc/index.rst b/doc/index.rst
index 4f143d5..65d1e7b 100644
--- a/doc/index.rst
+++ b/doc/index.rst
@@ -27,7 +27,7 @@ The Journal has some fields when the process method is SEPA:
Group
*****
-The Group has a field `SEPA Message` containing the XML file.
+The Group has a field `SEPA Messages` containing the XML messages.
Mandate
*******
@@ -40,6 +40,9 @@ The Mandate stores information for the Direct Debit. It is mainly defined by:
- Type:
- Recurrent
- One-off
+- Scheme:
+ - CORE
+ - Business to Business
- Signature Date
The mandate can be in one of this states:
@@ -49,6 +52,25 @@ The mandate can be in one of this states:
* Validated
* Canceled
+Message
+*******
+
+The Message stores the incoming and outgoing XML message.
+
+The message can be in one of this states:
+
+* Draft
+* Waiting
+* Done
+* Canceled
+
+Bank to Customer Debit Credit Notification (camt.054)
+-----------------------------------------------------
+
+For incoming message camt.054, each booked entry will succeed the corresponding
+payment if any return information is found. Otherwise it will fail and the
+return reason will be stored on it.
+
Party
*****
diff --git a/locale/ca_ES.po b/locale/ca_ES.po
index 8ca9fd6..7964207 100644
--- a/locale/ca_ES.po
+++ b/locale/ca_ES.po
@@ -7,6 +7,10 @@ msgid "No valid mandate for payment \"%s\""
msgstr "No s'ha trobat un mandat vàlid pel pagament \"%s\"."
msgctxt "error:account.payment.sepa.mandate:"
+msgid "The identification of the SEPA mandate must be unique in a company."
+msgstr "L'identificador del mandat SEPA ha de ser únic per empresa."
+
+msgctxt "error:account.payment.sepa.mandate:"
msgid ""
"You can not delete mandate \"%s\" because it is not in draft or canceled "
"state."
@@ -14,17 +18,37 @@ msgstr ""
"No podeu eliminar el mandat \"%s\" perquè no està en estat esborrany o "
"cancel·lat."
+msgctxt "field:account.configuration,sepa_mandate_sequence:"
+msgid "SEPA Mandate Sequence"
+msgstr "Seqüència de mandat SEPA"
+
+msgctxt "field:account.payment,sepa_end_to_end_id:"
+msgid "SEPA End To End ID"
+msgstr "ID End-to-End SEPA"
+
+msgctxt "field:account.payment,sepa_instruction_id:"
+msgid "SEPA Instruction ID"
+msgstr "ID instrucció SEPA"
+
msgctxt "field:account.payment,sepa_mandate:"
msgid "Mandate"
msgstr "Mandat"
-msgctxt "field:account.payment.group,sepa_filename:"
-msgid "SEPA Filename"
-msgstr "Nom fitxer SEPA"
+msgctxt "field:account.payment,sepa_mandate_sequence_type:"
+msgid "Mandate Sequence Type"
+msgstr "Tipus de seqüència mandat"
-msgctxt "field:account.payment.group,sepa_message:"
-msgid "SEPA Message"
-msgstr "Missatge SEPA"
+msgctxt "field:account.payment,sepa_return_reason_code:"
+msgid "Return Reason Code"
+msgstr "Codi motiu de devolució"
+
+msgctxt "field:account.payment,sepa_return_reason_information:"
+msgid "Return Reason Information"
+msgstr "Informació motiu de devolució"
+
+msgctxt "field:account.payment.group,sepa_messages:"
+msgid "SEPA Messages"
+msgstr "Missatges SEPA"
msgctxt "field:account.payment.journal,company_party:"
msgid "Company Party"
@@ -74,6 +98,10 @@ msgctxt "field:account.payment.sepa.mandate,identification:"
msgid "Identification"
msgstr "Identificació"
+msgctxt "field:account.payment.sepa.mandate,identification_readonly:"
+msgid "Identification Readonly"
+msgstr "Identificador només lectura"
+
msgctxt "field:account.payment.sepa.mandate,party:"
msgid "Party"
msgstr "Tercer"
@@ -86,6 +114,10 @@ msgctxt "field:account.payment.sepa.mandate,rec_name:"
msgid "Name"
msgstr "Nom"
+msgctxt "field:account.payment.sepa.mandate,scheme:"
+msgid "Scheme"
+msgstr "Esquema"
+
msgctxt "field:account.payment.sepa.mandate,signature_date:"
msgid "Signature Date"
msgstr "Data firma"
@@ -106,6 +138,54 @@ msgctxt "field:account.payment.sepa.mandate,write_uid:"
msgid "Write User"
msgstr "Usuari modificació"
+msgctxt "field:account.payment.sepa.message,company:"
+msgid "Company"
+msgstr "Empresa"
+
+msgctxt "field:account.payment.sepa.message,create_date:"
+msgid "Create Date"
+msgstr "Data creació"
+
+msgctxt "field:account.payment.sepa.message,create_uid:"
+msgid "Create User"
+msgstr "Usuari creació"
+
+msgctxt "field:account.payment.sepa.message,filename:"
+msgid "Filename"
+msgstr "Nom del fitxer"
+
+msgctxt "field:account.payment.sepa.message,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:account.payment.sepa.message,message:"
+msgid "Message"
+msgstr "Missatge"
+
+msgctxt "field:account.payment.sepa.message,origin:"
+msgid "Origin"
+msgstr "Origen"
+
+msgctxt "field:account.payment.sepa.message,rec_name:"
+msgid "Name"
+msgstr "Nom"
+
+msgctxt "field:account.payment.sepa.message,state:"
+msgid "State"
+msgstr "Estat"
+
+msgctxt "field:account.payment.sepa.message,type:"
+msgid "Type"
+msgstr "Tipus"
+
+msgctxt "field:account.payment.sepa.message,write_date:"
+msgid "Write Date"
+msgstr "Data modificació"
+
+msgctxt "field:account.payment.sepa.message,write_uid:"
+msgid "Write User"
+msgstr "Usuari modificació"
+
msgctxt "field:party.party,sepa_creditor_identifier:"
msgid "SEPA Creditor Identifier"
msgstr "Identificador creditor SEPA"
@@ -122,6 +202,10 @@ msgctxt "model:account.payment.sepa.mandate,name:"
msgid "SEPA Mandate"
msgstr "Mandat SEPA"
+msgctxt "model:account.payment.sepa.message,name:"
+msgid "SEPA Message"
+msgstr "Missatge SEPA"
+
msgctxt "model:ir.action,name:act_mandate_form"
msgid "SEPA Mandates"
msgstr "Mandats SEPA"
@@ -130,15 +214,185 @@ msgctxt "model:ir.action,name:act_mandate_form2"
msgid "Mandates"
msgstr "Mandats"
+msgctxt "model:ir.action,name:act_message_form"
+msgid "SEPA Messages"
+msgstr "Missatges SEPA"
+
+msgctxt "model:ir.action,name:report_mandate"
+msgid "Mandate"
+msgstr "Mandat"
+
+msgctxt "model:ir.action.act_window.domain,name:act_message_form_domain_all"
+msgid "All"
+msgstr "Tots"
+
+msgctxt ""
+"model:ir.action.act_window.domain,name:act_message_form_domain_canceled"
+msgid "Canceled"
+msgstr "Cancel·lat"
+
+msgctxt "model:ir.action.act_window.domain,name:act_message_form_domain_done"
+msgid "Done"
+msgstr "Realitzat"
+
+msgctxt "model:ir.action.act_window.domain,name:act_message_form_domain_draft"
+msgid "Draft"
+msgstr "Esborrany"
+
+msgctxt ""
+"model:ir.action.act_window.domain,name:act_message_form_domain_waiting"
+msgid "Waiting"
+msgstr "En espera"
+
msgctxt ""
"model:ir.action.act_window.domain,name:act_move_line_form_domain_receivable_mandate"
msgid "Receivable with Mandate"
msgstr "A cobrar amb mandat"
+msgctxt "model:ir.sequence.type,name:sequence_type_mandate"
+msgid "SEPA Mandate"
+msgstr "Mandat SEPA"
+
msgctxt "model:ir.ui.menu,name:menu_mandate_form"
msgid "SEPA Mandates"
msgstr "Mandats SEPA"
+msgctxt "model:ir.ui.menu,name:menu_message_form"
+msgid "SEPA Messages"
+msgstr "Missatges SEPA"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "."
+msgstr "."
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Account number – IBAN"
+msgstr "Número de compte - IBAN"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid ""
+"As part of your rights, you are entitled to a refund from your bank under "
+"the terms and conditions of your agreement with your bank. A refund must be "
+"claimed within 8 weeks starting from the date on which your account was "
+"debited."
+msgstr ""
+"Entre altres, teniu dret a ser reemborsat per la vostra entitat financera "
+"d’acord amb els termes i condicions del contracte subscrit amb la vostra "
+"entitat financera. En tot cas aquest reemborsament haurà de ser instat per "
+"part vostre en el termini màxim de 8 setmanes a partir de la data en que es "
+"va carregar en el vostre compte. "
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "BIC"
+msgstr "BIC"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "By signing this mandate form, you authorize"
+msgstr ""
+"Mitjançant la signatura d’aquest formulari d’ordre de domiciliació, "
+"autoritzeu a (A)"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "City"
+msgstr "Ciutat"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Country"
+msgstr "País"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Creditor identifier"
+msgstr "Identificador del creditor"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Creditor name"
+msgstr "Nom del creditor"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Creditor's name"
+msgstr "Nom del creditor"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Date"
+msgstr "Data"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Direct Debit MANDATE"
+msgstr "Ordre de domiciliació de dèbit directe"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "E-Mail:"
+msgstr "Correu electrònic:"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Location"
+msgstr "Localitat"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Name of the debtor"
+msgstr "Nom del deutor"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "One-off payment"
+msgstr "Pagament únic"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Phone:"
+msgstr "Telèfon:"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Postal code"
+msgstr "Codi postal"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Recurrent payment"
+msgstr "Pagament periòdic"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "SEPA"
+msgstr "SEPA"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Signature"
+msgstr "Signatura"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Signed at"
+msgstr "Signat el"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Street name and number"
+msgstr "Nom del carrer i número"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Type of payment"
+msgstr "Tipus de pagament"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "VAT Number:"
+msgstr "CIF/NIF:"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Your account number"
+msgstr "El vostre número de compte"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Your address"
+msgstr "La vostra adreça"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Your name"
+msgstr "El vostre nom"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid ""
+"to send instructions to your bank to debit your account and your bank to "
+"debit your account in accordance with the instructions from"
+msgstr ""
+"enviar ordres a la vostra entitat financera per efectuar càrrecs al vostre "
+"compte i (B) a la vostra entitat financera per carregar els imports "
+"corresponents al vostre compte d’acord amb les instruccions de"
+
msgctxt "selection:account.payment.journal,process_method:"
msgid "SEPA"
msgstr "SEPA"
@@ -159,29 +413,13 @@ msgctxt "selection:account.payment.journal,sepa_charge_bearer:"
msgid "Shared"
msgstr "Compartit"
-msgctxt "selection:account.payment.journal,sepa_payable_flavor:"
-msgid ""
-msgstr ""
-
-msgctxt "selection:account.payment.journal,sepa_payable_flavor:"
-msgid "pain.001.001.03"
-msgstr "pain.001.001.03"
-
-msgctxt "selection:account.payment.journal,sepa_payable_flavor:"
-msgid "pain.001.001.05"
-msgstr "pain.001.001.05"
-
-msgctxt "selection:account.payment.journal,sepa_receivable_flavor:"
-msgid ""
-msgstr ""
-
-msgctxt "selection:account.payment.journal,sepa_receivable_flavor:"
-msgid "pain.008.001.02"
-msgstr "pain.001.001.03"
+msgctxt "selection:account.payment.sepa.mandate,scheme:"
+msgid "Business to Business"
+msgstr "Empresa a empresa"
-msgctxt "selection:account.payment.journal,sepa_receivable_flavor:"
-msgid "pain.008.001.04"
-msgstr "pain.008.001.04"
+msgctxt "selection:account.payment.sepa.mandate,scheme:"
+msgid "Core"
+msgstr "Core"
msgctxt "selection:account.payment.sepa.mandate,state:"
msgid "Canceled"
@@ -207,6 +445,30 @@ msgctxt "selection:account.payment.sepa.mandate,type:"
msgid "Recurrent"
msgstr "Recurrent"
+msgctxt "selection:account.payment.sepa.message,state:"
+msgid "Canceled"
+msgstr "Cancel·lat"
+
+msgctxt "selection:account.payment.sepa.message,state:"
+msgid "Done"
+msgstr "Realitzat"
+
+msgctxt "selection:account.payment.sepa.message,state:"
+msgid "Draft"
+msgstr "Esborrany"
+
+msgctxt "selection:account.payment.sepa.message,state:"
+msgid "Waiting"
+msgstr "En espera"
+
+msgctxt "selection:account.payment.sepa.message,type:"
+msgid "IN"
+msgstr "Entrada"
+
+msgctxt "selection:account.payment.sepa.message,type:"
+msgid "OUT"
+msgstr "Sortida"
+
msgctxt "view:account.payment.journal:"
msgid "SEPA"
msgstr "SEPA"
@@ -239,6 +501,30 @@ msgctxt "view:account.payment.sepa.mandate:"
msgid "Validate"
msgstr "Valida"
+msgctxt "view:account.payment.sepa.message:"
+msgid "Cancel"
+msgstr "Cancel·la"
+
+msgctxt "view:account.payment.sepa.message:"
+msgid "Do"
+msgstr "Executa"
+
+msgctxt "view:account.payment.sepa.message:"
+msgid "Draft"
+msgstr "Esborrany"
+
+msgctxt "view:account.payment.sepa.message:"
+msgid "SEPA Message"
+msgstr "Missatge SEPA"
+
+msgctxt "view:account.payment.sepa.message:"
+msgid "SEPA Messages"
+msgstr "Missatges SEPA"
+
+msgctxt "view:account.payment.sepa.message:"
+msgid "Wait"
+msgstr "En espera"
+
msgctxt "view:party.party:"
msgid "SEPA"
msgstr "SEPA"
diff --git a/locale/de_DE.po b/locale/de_DE.po
index b0dbbe4..e3580a5 100644
--- a/locale/de_DE.po
+++ b/locale/de_DE.po
@@ -7,6 +7,12 @@ msgid "No valid mandate for payment \"%s\""
msgstr "Kein gültiges Mandat für Zahlung \"%s\""
msgctxt "error:account.payment.sepa.mandate:"
+msgid "The identification of the SEPA mandate must be unique in a company."
+msgstr ""
+"Die Identifikation für ein SEPA-Mandats kann nur einmal in einem Unternehmen"
+" vergeben werden."
+
+msgctxt "error:account.payment.sepa.mandate:"
msgid ""
"You can not delete mandate \"%s\" because it is not in draft or canceled "
"state."
@@ -14,17 +20,37 @@ msgstr ""
"Mandat \"%s\" kann nicht gelöscht werden, da es nicht in Status 'Entwurf' "
"oder 'Annulliert' ist."
+msgctxt "field:account.configuration,sepa_mandate_sequence:"
+msgid "SEPA Mandate Sequence"
+msgstr "Nummernkreis SEPA-Mandat"
+
+msgctxt "field:account.payment,sepa_end_to_end_id:"
+msgid "SEPA End To End ID"
+msgstr "SEPA End-zu-End-ID"
+
+msgctxt "field:account.payment,sepa_instruction_id:"
+msgid "SEPA Instruction ID"
+msgstr "SEPA Instruktions-ID"
+
msgctxt "field:account.payment,sepa_mandate:"
msgid "Mandate"
msgstr "Mandat"
-msgctxt "field:account.payment.group,sepa_filename:"
-msgid "SEPA Filename"
-msgstr "SEPA Dateiname"
+msgctxt "field:account.payment,sepa_mandate_sequence_type:"
+msgid "Mandate Sequence Type"
+msgstr "Mandat Nummernkreistyp"
-msgctxt "field:account.payment.group,sepa_message:"
-msgid "SEPA Message"
-msgstr "SEPA Nachricht"
+msgctxt "field:account.payment,sepa_return_reason_code:"
+msgid "Return Reason Code"
+msgstr "Rückzahlungscode"
+
+msgctxt "field:account.payment,sepa_return_reason_information:"
+msgid "Return Reason Information"
+msgstr "Rückzahlungsinformation"
+
+msgctxt "field:account.payment.group,sepa_messages:"
+msgid "SEPA Messages"
+msgstr "SEPA-Nachrichten"
msgctxt "field:account.payment.journal,company_party:"
msgid "Company Party"
@@ -74,6 +100,10 @@ msgctxt "field:account.payment.sepa.mandate,identification:"
msgid "Identification"
msgstr "Identifikation"
+msgctxt "field:account.payment.sepa.mandate,identification_readonly:"
+msgid "Identification Readonly"
+msgstr "Identifikation schreibgeschützt"
+
msgctxt "field:account.payment.sepa.mandate,party:"
msgid "Party"
msgstr "Partei"
@@ -86,6 +116,10 @@ msgctxt "field:account.payment.sepa.mandate,rec_name:"
msgid "Name"
msgstr "Name"
+msgctxt "field:account.payment.sepa.mandate,scheme:"
+msgid "Scheme"
+msgstr "Schema"
+
msgctxt "field:account.payment.sepa.mandate,signature_date:"
msgid "Signature Date"
msgstr "Unterschriftsdatum"
@@ -106,6 +140,54 @@ msgctxt "field:account.payment.sepa.mandate,write_uid:"
msgid "Write User"
msgstr "Letzte Änderung durch"
+msgctxt "field:account.payment.sepa.message,company:"
+msgid "Company"
+msgstr "Unternehmen"
+
+msgctxt "field:account.payment.sepa.message,create_date:"
+msgid "Create Date"
+msgstr "Erstellungsdatum"
+
+msgctxt "field:account.payment.sepa.message,create_uid:"
+msgid "Create User"
+msgstr "Erstellt durch"
+
+msgctxt "field:account.payment.sepa.message,filename:"
+msgid "Filename"
+msgstr "Dateiname"
+
+msgctxt "field:account.payment.sepa.message,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:account.payment.sepa.message,message:"
+msgid "Message"
+msgstr "Nachricht"
+
+msgctxt "field:account.payment.sepa.message,origin:"
+msgid "Origin"
+msgstr "Herkunft"
+
+msgctxt "field:account.payment.sepa.message,rec_name:"
+msgid "Name"
+msgstr "Name"
+
+msgctxt "field:account.payment.sepa.message,state:"
+msgid "State"
+msgstr "Status"
+
+msgctxt "field:account.payment.sepa.message,type:"
+msgid "Type"
+msgstr "Typ"
+
+msgctxt "field:account.payment.sepa.message,write_date:"
+msgid "Write Date"
+msgstr "Zuletzt geändert"
+
+msgctxt "field:account.payment.sepa.message,write_uid:"
+msgid "Write User"
+msgstr "Letzte Änderung durch"
+
msgctxt "field:party.party,sepa_creditor_identifier:"
msgid "SEPA Creditor Identifier"
msgstr "SEPA Gläubiger-ID"
@@ -116,28 +198,197 @@ msgstr "Verwendete SEPA Gläubiger-ID"
msgctxt "field:party.party,sepa_mandates:"
msgid "SEPA Mandates"
-msgstr "SEPA Mandate"
+msgstr "SEPA-Mandate"
msgctxt "model:account.payment.sepa.mandate,name:"
msgid "SEPA Mandate"
-msgstr "SEPA Mandat"
+msgstr "SEPA-Mandat"
+
+msgctxt "model:account.payment.sepa.message,name:"
+msgid "SEPA Message"
+msgstr "SEPA-Nachricht"
msgctxt "model:ir.action,name:act_mandate_form"
msgid "SEPA Mandates"
-msgstr "SEPA Mandate"
+msgstr "SEPA-Mandate"
msgctxt "model:ir.action,name:act_mandate_form2"
msgid "Mandates"
msgstr "Mandate"
+msgctxt "model:ir.action,name:act_message_form"
+msgid "SEPA Messages"
+msgstr "SEPA-Nachrichten"
+
+msgctxt "model:ir.action,name:report_mandate"
+msgid "Mandate"
+msgstr "Mandat"
+
+msgctxt "model:ir.action.act_window.domain,name:act_message_form_domain_all"
+msgid "All"
+msgstr "Alle"
+
+msgctxt ""
+"model:ir.action.act_window.domain,name:act_message_form_domain_canceled"
+msgid "Canceled"
+msgstr "Annulliert"
+
+msgctxt "model:ir.action.act_window.domain,name:act_message_form_domain_done"
+msgid "Done"
+msgstr "Erledigt"
+
+msgctxt "model:ir.action.act_window.domain,name:act_message_form_domain_draft"
+msgid "Draft"
+msgstr "Entwurf"
+
+msgctxt ""
+"model:ir.action.act_window.domain,name:act_message_form_domain_waiting"
+msgid "Waiting"
+msgstr "Wartend"
+
msgctxt ""
"model:ir.action.act_window.domain,name:act_move_line_form_domain_receivable_mandate"
msgid "Receivable with Mandate"
msgstr "Forderungen per Mandat (Lastschrift)"
+msgctxt "model:ir.sequence.type,name:sequence_type_mandate"
+msgid "SEPA Mandate"
+msgstr "SEPA-Mandat"
+
msgctxt "model:ir.ui.menu,name:menu_mandate_form"
msgid "SEPA Mandates"
-msgstr "SEPA Mandate"
+msgstr "SEPA-Mandate"
+
+msgctxt "model:ir.ui.menu,name:menu_message_form"
+msgid "SEPA Messages"
+msgstr "SEPA-Nachrichten"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "."
+msgstr ""
+" Zahlungen von meinem Bankkonto mittels Lastschrift einzuziehen und weise B)"
+" mein Kreditinstitut an, diese gezogenen Lastschriften einzulösen."
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Account number – IBAN"
+msgstr "Kontonummer - IBAN"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid ""
+"As part of your rights, you are entitled to a refund from your bank under "
+"the terms and conditions of your agreement with your bank. A refund must be "
+"claimed within 8 weeks starting from the date on which your account was "
+"debited."
+msgstr ""
+"Ich kann innerhalb von acht Wochen, beginnend mit dem Belastungsdatum, die "
+"Erstattung des belasteten Betrags verlangen. Es gelten dabei die mit meiner "
+"Bank vereinbarten Bedingungen."
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "BIC"
+msgstr "BIC"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "By signing this mandate form, you authorize"
+msgstr "Ich erteile"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "City"
+msgstr "Stadt"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Country"
+msgstr "Staat"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Creditor identifier"
+msgstr "Gläubiger-ID"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Creditor name"
+msgstr "Name Gläubiger"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Creditor's name"
+msgstr "Gläubiger"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Date"
+msgstr "Datum"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Direct Debit MANDATE"
+msgstr "Lastschrift Mandat"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "E-Mail:"
+msgstr "E-Mail:"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Location"
+msgstr "Ort"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Name of the debtor"
+msgstr "Name Schuldner"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "One-off payment"
+msgstr "Einmalige Zahlung"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Phone:"
+msgstr "Telefon:"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Postal code"
+msgstr "Postleitzahl"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Recurrent payment"
+msgstr "Wiederkehrende Zahlung"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "SEPA"
+msgstr "SEPA"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Signature"
+msgstr "Unterschrift"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Signed at"
+msgstr "Unterschrieben am"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Street name and number"
+msgstr "Straße"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Type of payment"
+msgstr "Zahlungstyp"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "VAT Number:"
+msgstr "USt-ID-Nr.:"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Your account number"
+msgstr "Meine Kontonummer"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Your address"
+msgstr "Meine Adresse"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Your name"
+msgstr "Mein Name"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid ""
+"to send instructions to your bank to debit your account and your bank to "
+"debit your account in accordance with the instructions from"
+msgstr "ein SEPA-Lastschriftmandat und autorisiere A) "
msgctxt "selection:account.payment.journal,process_method:"
msgid "SEPA"
@@ -159,29 +410,13 @@ msgctxt "selection:account.payment.journal,sepa_charge_bearer:"
msgid "Shared"
msgstr "Geteilt"
-msgctxt "selection:account.payment.journal,sepa_payable_flavor:"
-msgid ""
-msgstr ""
-
-msgctxt "selection:account.payment.journal,sepa_payable_flavor:"
-msgid "pain.001.001.03"
-msgstr "pain.001.001.03"
-
-msgctxt "selection:account.payment.journal,sepa_payable_flavor:"
-msgid "pain.001.001.05"
-msgstr "pain.001.001.05"
-
-msgctxt "selection:account.payment.journal,sepa_receivable_flavor:"
-msgid ""
-msgstr ""
-
-msgctxt "selection:account.payment.journal,sepa_receivable_flavor:"
-msgid "pain.008.001.02"
-msgstr "pain.008.001.02"
+msgctxt "selection:account.payment.sepa.mandate,scheme:"
+msgid "Business to Business"
+msgstr "B2B-Schema (SEPA B2B)"
-msgctxt "selection:account.payment.journal,sepa_receivable_flavor:"
-msgid "pain.008.001.04"
-msgstr "pain.008.001.04"
+msgctxt "selection:account.payment.sepa.mandate,scheme:"
+msgid "Core"
+msgstr "B2C-Schema (SEPA CORE)"
msgctxt "selection:account.payment.sepa.mandate,state:"
msgid "Canceled"
@@ -207,6 +442,30 @@ msgctxt "selection:account.payment.sepa.mandate,type:"
msgid "Recurrent"
msgstr "Wiederkehrend"
+msgctxt "selection:account.payment.sepa.message,state:"
+msgid "Canceled"
+msgstr "Annulliert"
+
+msgctxt "selection:account.payment.sepa.message,state:"
+msgid "Done"
+msgstr "Erledigt"
+
+msgctxt "selection:account.payment.sepa.message,state:"
+msgid "Draft"
+msgstr "Entwurf"
+
+msgctxt "selection:account.payment.sepa.message,state:"
+msgid "Waiting"
+msgstr "Wartend"
+
+msgctxt "selection:account.payment.sepa.message,type:"
+msgid "IN"
+msgstr "IN"
+
+msgctxt "selection:account.payment.sepa.message,type:"
+msgid "OUT"
+msgstr "OUT"
+
msgctxt "view:account.payment.journal:"
msgid "SEPA"
msgstr "SEPA"
@@ -239,6 +498,30 @@ msgctxt "view:account.payment.sepa.mandate:"
msgid "Validate"
msgstr "Prüfen"
+msgctxt "view:account.payment.sepa.message:"
+msgid "Cancel"
+msgstr "Annulliert"
+
+msgctxt "view:account.payment.sepa.message:"
+msgid "Do"
+msgstr "Durchführen"
+
+msgctxt "view:account.payment.sepa.message:"
+msgid "Draft"
+msgstr "Entwurf"
+
+msgctxt "view:account.payment.sepa.message:"
+msgid "SEPA Message"
+msgstr "SEPA-Nachricht"
+
+msgctxt "view:account.payment.sepa.message:"
+msgid "SEPA Messages"
+msgstr "SEPA-Nachrichten"
+
+msgctxt "view:account.payment.sepa.message:"
+msgid "Wait"
+msgstr "Warten"
+
msgctxt "view:party.party:"
msgid "SEPA"
msgstr "SEPA"
diff --git a/locale/es_AR.po b/locale/es_AR.po
index b8fcfae..45c6fd2 100644
--- a/locale/es_AR.po
+++ b/locale/es_AR.po
@@ -7,6 +7,10 @@ msgid "No valid mandate for payment \"%s\""
msgstr "No es válido el mandato para el pago «%s»"
msgctxt "error:account.payment.sepa.mandate:"
+msgid "The identification of the SEPA mandate must be unique in a company."
+msgstr "La identificación del mandato SEPA debe ser único en una empresa."
+
+msgctxt "error:account.payment.sepa.mandate:"
msgid ""
"You can not delete mandate \"%s\" because it is not in draft or canceled "
"state."
@@ -14,17 +18,37 @@ msgstr ""
"No puede eliminar el mandato «%s» porque no está en estado borrador o "
"cancelado."
+msgctxt "field:account.configuration,sepa_mandate_sequence:"
+msgid "SEPA Mandate Sequence"
+msgstr "Secuencia de SEPA Mandato"
+
+msgctxt "field:account.payment,sepa_end_to_end_id:"
+msgid "SEPA End To End ID"
+msgstr "ID de SEPA Extremo a Extremo"
+
+msgctxt "field:account.payment,sepa_instruction_id:"
+msgid "SEPA Instruction ID"
+msgstr "ID de SEPA Instrucción"
+
msgctxt "field:account.payment,sepa_mandate:"
msgid "Mandate"
msgstr "Mandato"
-msgctxt "field:account.payment.group,sepa_filename:"
-msgid "SEPA Filename"
-msgstr "SEPA Archivo"
+msgctxt "field:account.payment,sepa_mandate_sequence_type:"
+msgid "Mandate Sequence Type"
+msgstr "Tipo de secuencia de Mandato"
-msgctxt "field:account.payment.group,sepa_message:"
-msgid "SEPA Message"
-msgstr "SEPA Mensaje"
+msgctxt "field:account.payment,sepa_return_reason_code:"
+msgid "Return Reason Code"
+msgstr "Código del motivo de devolución"
+
+msgctxt "field:account.payment,sepa_return_reason_information:"
+msgid "Return Reason Information"
+msgstr "Información del motivo de devolución"
+
+msgctxt "field:account.payment.group,sepa_messages:"
+msgid "SEPA Messages"
+msgstr "SEPA Mensajes"
msgctxt "field:account.payment.journal,company_party:"
msgid "Company Party"
@@ -74,6 +98,10 @@ msgctxt "field:account.payment.sepa.mandate,identification:"
msgid "Identification"
msgstr "Identificación"
+msgctxt "field:account.payment.sepa.mandate,identification_readonly:"
+msgid "Identification Readonly"
+msgstr "Identificación sólo lectura"
+
msgctxt "field:account.payment.sepa.mandate,party:"
msgid "Party"
msgstr "Entidad"
@@ -86,6 +114,10 @@ msgctxt "field:account.payment.sepa.mandate,rec_name:"
msgid "Name"
msgstr "Nombre"
+msgctxt "field:account.payment.sepa.mandate,scheme:"
+msgid "Scheme"
+msgstr "Esquema"
+
msgctxt "field:account.payment.sepa.mandate,signature_date:"
msgid "Signature Date"
msgstr "Fecha de firma"
@@ -106,6 +138,54 @@ msgctxt "field:account.payment.sepa.mandate,write_uid:"
msgid "Write User"
msgstr "Usuario modificación"
+msgctxt "field:account.payment.sepa.message,company:"
+msgid "Company"
+msgstr "Empresa"
+
+msgctxt "field:account.payment.sepa.message,create_date:"
+msgid "Create Date"
+msgstr "Fecha creación"
+
+msgctxt "field:account.payment.sepa.message,create_uid:"
+msgid "Create User"
+msgstr "Usuario creación"
+
+msgctxt "field:account.payment.sepa.message,filename:"
+msgid "Filename"
+msgstr "Nombre de archivo"
+
+msgctxt "field:account.payment.sepa.message,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:account.payment.sepa.message,message:"
+msgid "Message"
+msgstr "Mensaje"
+
+msgctxt "field:account.payment.sepa.message,origin:"
+msgid "Origin"
+msgstr "Origen"
+
+msgctxt "field:account.payment.sepa.message,rec_name:"
+msgid "Name"
+msgstr "Nombre"
+
+msgctxt "field:account.payment.sepa.message,state:"
+msgid "State"
+msgstr "Estado"
+
+msgctxt "field:account.payment.sepa.message,type:"
+msgid "Type"
+msgstr "Tipo"
+
+msgctxt "field:account.payment.sepa.message,write_date:"
+msgid "Write Date"
+msgstr "Fecha modificación"
+
+msgctxt "field:account.payment.sepa.message,write_uid:"
+msgid "Write User"
+msgstr "Usuario modificación"
+
msgctxt "field:party.party,sepa_creditor_identifier:"
msgid "SEPA Creditor Identifier"
msgstr "SEPA Identificador Acreedor"
@@ -122,6 +202,10 @@ msgctxt "model:account.payment.sepa.mandate,name:"
msgid "SEPA Mandate"
msgstr "SEPA Mandato"
+msgctxt "model:account.payment.sepa.message,name:"
+msgid "SEPA Message"
+msgstr "SEPA Mensaje"
+
msgctxt "model:ir.action,name:act_mandate_form"
msgid "SEPA Mandates"
msgstr "SEPA Mandatos"
@@ -130,15 +214,181 @@ msgctxt "model:ir.action,name:act_mandate_form2"
msgid "Mandates"
msgstr "Mandatos"
+msgctxt "model:ir.action,name:act_message_form"
+msgid "SEPA Messages"
+msgstr "SEPA Mensajes"
+
+msgctxt "model:ir.action,name:report_mandate"
+msgid "Mandate"
+msgstr "Mandato"
+
+msgctxt "model:ir.action.act_window.domain,name:act_message_form_domain_all"
+msgid "All"
+msgstr "Todo"
+
+msgctxt ""
+"model:ir.action.act_window.domain,name:act_message_form_domain_canceled"
+msgid "Canceled"
+msgstr "Cancelado"
+
+msgctxt "model:ir.action.act_window.domain,name:act_message_form_domain_done"
+msgid "Done"
+msgstr "Realizado"
+
+msgctxt "model:ir.action.act_window.domain,name:act_message_form_domain_draft"
+msgid "Draft"
+msgstr "Borrador"
+
+msgctxt ""
+"model:ir.action.act_window.domain,name:act_message_form_domain_waiting"
+msgid "Waiting"
+msgstr "En espera"
+
msgctxt ""
"model:ir.action.act_window.domain,name:act_move_line_form_domain_receivable_mandate"
msgid "Receivable with Mandate"
msgstr "Por cobrar con Mandato"
+msgctxt "model:ir.sequence.type,name:sequence_type_mandate"
+msgid "SEPA Mandate"
+msgstr "SEPA Mandato"
+
msgctxt "model:ir.ui.menu,name:menu_mandate_form"
msgid "SEPA Mandates"
msgstr "SEPA Mandatos"
+msgctxt "model:ir.ui.menu,name:menu_message_form"
+msgid "SEPA Messages"
+msgstr "SEPA Mensajes"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "."
+msgstr "."
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Account number – IBAN"
+msgstr "Número de cuenta - IBAN"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid ""
+"As part of your rights, you are entitled to a refund from your bank under "
+"the terms and conditions of your agreement with your bank. A refund must be "
+"claimed within 8 weeks starting from the date on which your account was "
+"debited."
+msgstr ""
+"Como parte de sus derechos, usted tiene derecho a un reembolso de su banco "
+"en los términos y condiciones de su contrato con el banco. Un reembolso "
+"deberá ser reclamado dentro de 8 semanas a partir de la fecha en que se "
+"hayan cargado a su cuenta."
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "BIC"
+msgstr "CIB"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "By signing this mandate form, you authorize"
+msgstr "Al firmar este formulario de mandato, usted autoriza "
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "City"
+msgstr "Ciudad"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Country"
+msgstr "País"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Creditor identifier"
+msgstr "Identificador acreedor"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Creditor name"
+msgstr "Nombre acreedor"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Creditor's name"
+msgstr "Nombre del acreedor"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Date"
+msgstr "Fecha"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Direct Debit MANDATE"
+msgstr "MANDATO de débito automático"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "E-Mail:"
+msgstr "Correo electrónico:"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Location"
+msgstr "Ubicación"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Name of the debtor"
+msgstr "Nombre del deudor"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "One-off payment"
+msgstr "Pago único"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Phone:"
+msgstr "Teléfono:"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Postal code"
+msgstr "Código postal"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Recurrent payment"
+msgstr "Pago recurrente"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "SEPA"
+msgstr "SEPA"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Signature"
+msgstr "Firma"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Signed at"
+msgstr "Firmado en"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Street name and number"
+msgstr "Calle y número"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Type of payment"
+msgstr "Tipo de pago"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "VAT Number:"
+msgstr "CUIT:"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Your account number"
+msgstr "Su número de cuenta"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Your address"
+msgstr "Su dirección"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Your name"
+msgstr "Su nombre"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid ""
+"to send instructions to your bank to debit your account and your bank to "
+"debit your account in accordance with the instructions from"
+msgstr ""
+"para enviar instrucciones a su banco para debitar de su cuenta y su banco "
+"para debitar de su cuenta conforme a las instrucciones del"
+
msgctxt "selection:account.payment.journal,process_method:"
msgid "SEPA"
msgstr "SEPA"
@@ -159,29 +409,13 @@ msgctxt "selection:account.payment.journal,sepa_charge_bearer:"
msgid "Shared"
msgstr "Compartido"
-msgctxt "selection:account.payment.journal,sepa_payable_flavor:"
-msgid ""
-msgstr ""
-
-msgctxt "selection:account.payment.journal,sepa_payable_flavor:"
-msgid "pain.001.001.03"
-msgstr "pain.001.001.03"
-
-msgctxt "selection:account.payment.journal,sepa_payable_flavor:"
-msgid "pain.001.001.05"
-msgstr "pain.001.001.05"
-
-msgctxt "selection:account.payment.journal,sepa_receivable_flavor:"
-msgid ""
-msgstr ""
-
-msgctxt "selection:account.payment.journal,sepa_receivable_flavor:"
-msgid "pain.008.001.02"
-msgstr "pain.008.001.02"
+msgctxt "selection:account.payment.sepa.mandate,scheme:"
+msgid "Business to Business"
+msgstr "Interempresarial"
-msgctxt "selection:account.payment.journal,sepa_receivable_flavor:"
-msgid "pain.008.001.04"
-msgstr "pain.008.001.04"
+msgctxt "selection:account.payment.sepa.mandate,scheme:"
+msgid "Core"
+msgstr "Central"
msgctxt "selection:account.payment.sepa.mandate,state:"
msgid "Canceled"
@@ -207,6 +441,30 @@ msgctxt "selection:account.payment.sepa.mandate,type:"
msgid "Recurrent"
msgstr "Recurrente"
+msgctxt "selection:account.payment.sepa.message,state:"
+msgid "Canceled"
+msgstr "Cancelado"
+
+msgctxt "selection:account.payment.sepa.message,state:"
+msgid "Done"
+msgstr "Realizado"
+
+msgctxt "selection:account.payment.sepa.message,state:"
+msgid "Draft"
+msgstr "Borrador"
+
+msgctxt "selection:account.payment.sepa.message,state:"
+msgid "Waiting"
+msgstr "En espera"
+
+msgctxt "selection:account.payment.sepa.message,type:"
+msgid "IN"
+msgstr "ENTRADA"
+
+msgctxt "selection:account.payment.sepa.message,type:"
+msgid "OUT"
+msgstr "SALIDA"
+
msgctxt "view:account.payment.journal:"
msgid "SEPA"
msgstr "Área Única de Pagos en Euros (SEPA)"
@@ -239,6 +497,30 @@ msgctxt "view:account.payment.sepa.mandate:"
msgid "Validate"
msgstr "Validar"
+msgctxt "view:account.payment.sepa.message:"
+msgid "Cancel"
+msgstr "Cancelar"
+
+msgctxt "view:account.payment.sepa.message:"
+msgid "Do"
+msgstr "Hacer"
+
+msgctxt "view:account.payment.sepa.message:"
+msgid "Draft"
+msgstr "Borrador"
+
+msgctxt "view:account.payment.sepa.message:"
+msgid "SEPA Message"
+msgstr "SEPA Mensaje"
+
+msgctxt "view:account.payment.sepa.message:"
+msgid "SEPA Messages"
+msgstr "SEPA Mensajes"
+
+msgctxt "view:account.payment.sepa.message:"
+msgid "Wait"
+msgstr "Espera"
+
msgctxt "view:party.party:"
msgid "SEPA"
msgstr "Área Única de Pagos en Euros (SEPA)"
diff --git a/locale/es_CO.po b/locale/es_CO.po
index b80b99b..20fe05c 100644
--- a/locale/es_CO.po
+++ b/locale/es_CO.po
@@ -7,22 +7,46 @@ msgid "No valid mandate for payment \"%s\""
msgstr "No es válido el mandato para el pago \"%s\""
msgctxt "error:account.payment.sepa.mandate:"
+msgid "The identification of the SEPA mandate must be unique in a company."
+msgstr "La identificación del mandato SEPA debe ser único por compañia."
+
+msgctxt "error:account.payment.sepa.mandate:"
msgid ""
"You can not delete mandate \"%s\" because it is not in draft or canceled "
"state."
msgstr "No puede eliminar el mandato \"%s\" porque no esta en borrador o anulado."
+msgctxt "field:account.configuration,sepa_mandate_sequence:"
+msgid "SEPA Mandate Sequence"
+msgstr "Secuencia de Mandato SEPA"
+
+msgctxt "field:account.payment,sepa_end_to_end_id:"
+msgid "SEPA End To End ID"
+msgstr "Último SEPA A ID Final"
+
+msgctxt "field:account.payment,sepa_instruction_id:"
+msgid "SEPA Instruction ID"
+msgstr "Instrucción SEPA ID"
+
msgctxt "field:account.payment,sepa_mandate:"
msgid "Mandate"
msgstr "Mandato"
-msgctxt "field:account.payment.group,sepa_filename:"
-msgid "SEPA Filename"
-msgstr "SEPA Nombre de Archivo"
+msgctxt "field:account.payment,sepa_mandate_sequence_type:"
+msgid "Mandate Sequence Type"
+msgstr "Tipo de Secuencia de Mandato"
-msgctxt "field:account.payment.group,sepa_message:"
-msgid "SEPA Message"
-msgstr "SEPA Mensaje"
+msgctxt "field:account.payment,sepa_return_reason_code:"
+msgid "Return Reason Code"
+msgstr "Código de Motivo de Devolución"
+
+msgctxt "field:account.payment,sepa_return_reason_information:"
+msgid "Return Reason Information"
+msgstr "Información de la Razón Devolución "
+
+msgctxt "field:account.payment.group,sepa_messages:"
+msgid "SEPA Messages"
+msgstr "Mensajes SEPA"
msgctxt "field:account.payment.journal,company_party:"
msgid "Company Party"
@@ -72,6 +96,10 @@ msgctxt "field:account.payment.sepa.mandate,identification:"
msgid "Identification"
msgstr "Identificación"
+msgctxt "field:account.payment.sepa.mandate,identification_readonly:"
+msgid "Identification Readonly"
+msgstr "Identificación de Solo Lectura"
+
msgctxt "field:account.payment.sepa.mandate,party:"
msgid "Party"
msgstr "Terceros"
@@ -84,6 +112,10 @@ msgctxt "field:account.payment.sepa.mandate,rec_name:"
msgid "Name"
msgstr "Nombre"
+msgctxt "field:account.payment.sepa.mandate,scheme:"
+msgid "Scheme"
+msgstr "Esquema"
+
msgctxt "field:account.payment.sepa.mandate,signature_date:"
msgid "Signature Date"
msgstr "Fecha de Firma"
@@ -104,6 +136,54 @@ msgctxt "field:account.payment.sepa.mandate,write_uid:"
msgid "Write User"
msgstr "Modificado por Usuario"
+msgctxt "field:account.payment.sepa.message,company:"
+msgid "Company"
+msgstr "Compañía"
+
+msgctxt "field:account.payment.sepa.message,create_date:"
+msgid "Create Date"
+msgstr "Fecha de Creación"
+
+msgctxt "field:account.payment.sepa.message,create_uid:"
+msgid "Create User"
+msgstr "Creado por Usuario"
+
+msgctxt "field:account.payment.sepa.message,filename:"
+msgid "Filename"
+msgstr "Nombre de Archivo"
+
+msgctxt "field:account.payment.sepa.message,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:account.payment.sepa.message,message:"
+msgid "Message"
+msgstr "Mensaje"
+
+msgctxt "field:account.payment.sepa.message,origin:"
+msgid "Origin"
+msgstr "Origen"
+
+msgctxt "field:account.payment.sepa.message,rec_name:"
+msgid "Name"
+msgstr "Nombre"
+
+msgctxt "field:account.payment.sepa.message,state:"
+msgid "State"
+msgstr "Estado"
+
+msgctxt "field:account.payment.sepa.message,type:"
+msgid "Type"
+msgstr "Tipo"
+
+msgctxt "field:account.payment.sepa.message,write_date:"
+msgid "Write Date"
+msgstr "Modificado por Usuario"
+
+msgctxt "field:account.payment.sepa.message,write_uid:"
+msgid "Write User"
+msgstr "Modificado por Usuario"
+
msgctxt "field:party.party,sepa_creditor_identifier:"
msgid "SEPA Creditor Identifier"
msgstr "SEPA Identificación de Acreedor"
@@ -120,6 +200,10 @@ msgctxt "model:account.payment.sepa.mandate,name:"
msgid "SEPA Mandate"
msgstr "SEPA Mandato"
+msgctxt "model:account.payment.sepa.message,name:"
+msgid "SEPA Message"
+msgstr "Mensaje SEPA"
+
msgctxt "model:ir.action,name:act_mandate_form"
msgid "SEPA Mandates"
msgstr "SEPA Mandatos"
@@ -128,15 +212,181 @@ msgctxt "model:ir.action,name:act_mandate_form2"
msgid "Mandates"
msgstr "Mandatos"
+msgctxt "model:ir.action,name:act_message_form"
+msgid "SEPA Messages"
+msgstr "Mensajes SEPA"
+
+msgctxt "model:ir.action,name:report_mandate"
+msgid "Mandate"
+msgstr "Mandato"
+
+msgctxt "model:ir.action.act_window.domain,name:act_message_form_domain_all"
+msgid "All"
+msgstr "Todo"
+
+msgctxt ""
+"model:ir.action.act_window.domain,name:act_message_form_domain_canceled"
+msgid "Canceled"
+msgstr "Anulado"
+
+msgctxt "model:ir.action.act_window.domain,name:act_message_form_domain_done"
+msgid "Done"
+msgstr "Terminado"
+
+msgctxt "model:ir.action.act_window.domain,name:act_message_form_domain_draft"
+msgid "Draft"
+msgstr "Borrador"
+
+msgctxt ""
+"model:ir.action.act_window.domain,name:act_message_form_domain_waiting"
+msgid "Waiting"
+msgstr "En Espera"
+
msgctxt ""
"model:ir.action.act_window.domain,name:act_move_line_form_domain_receivable_mandate"
msgid "Receivable with Mandate"
msgstr "Por Cobrar con Orden"
+msgctxt "model:ir.sequence.type,name:sequence_type_mandate"
+msgid "SEPA Mandate"
+msgstr "SEPA Mandato"
+
msgctxt "model:ir.ui.menu,name:menu_mandate_form"
msgid "SEPA Mandates"
msgstr "SEPA Mandatos"
+msgctxt "model:ir.ui.menu,name:menu_message_form"
+msgid "SEPA Messages"
+msgstr "Mensajes SEPA"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "."
+msgstr "."
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Account number – IBAN"
+msgstr "Número de cuenta - IBAN"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid ""
+"As part of your rights, you are entitled to a refund from your bank under "
+"the terms and conditions of your agreement with your bank. A refund must be "
+"claimed within 8 weeks starting from the date on which your account was "
+"debited."
+msgstr ""
+"Como parte de sus derechos, usted esta subjeto a recibir un desembolso de su"
+" banco bajo los términos y condiciones de su acuerdo con el mismo. Un "
+"desembolso debe ser declarado dentro de las 8 semanas comenzando desde la "
+"fecha en la cual su cuenta es debitada."
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "BIC"
+msgstr "CIB"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "By signing this mandate form, you authorize"
+msgstr "Frimar este formulario de mandato, usted autoriza"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "City"
+msgstr "Ciudad"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Country"
+msgstr "País"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Creditor identifier"
+msgstr "Identificación del acreedor"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Creditor name"
+msgstr "Nombre del acreedor"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Creditor's name"
+msgstr "El nombre del acreedor"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Date"
+msgstr "Fecha"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Direct Debit MANDATE"
+msgstr "MANDATO Debito Directo"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "E-Mail:"
+msgstr "Correo electrónico:"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Location"
+msgstr "Lugar"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Name of the debtor"
+msgstr "Nombre del Debitante"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "One-off payment"
+msgstr "Pago de Contado"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Phone:"
+msgstr "Teléfono:"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Postal code"
+msgstr "Código postal"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Recurrent payment"
+msgstr "Pago recurrente"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "SEPA"
+msgstr "SEPA"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Signature"
+msgstr "Firma"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Signed at"
+msgstr "Firmado por"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Street name and number"
+msgstr "Dirección y número"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Type of payment"
+msgstr "Tipo de Pago"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "VAT Number:"
+msgstr "Número Identificación:"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Your account number"
+msgstr "Número de cuenta"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Your address"
+msgstr "Su dirección"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Your name"
+msgstr "Su nombre"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid ""
+"to send instructions to your bank to debit your account and your bank to "
+"debit your account in accordance with the instructions from"
+msgstr ""
+"enviar instrucciones a su banco para debitar su cuenta y su banco debitará "
+"su cuenta de acuerdo con las instrucciones de"
+
msgctxt "selection:account.payment.journal,process_method:"
msgid "SEPA"
msgstr "SEPA"
@@ -157,29 +407,13 @@ msgctxt "selection:account.payment.journal,sepa_charge_bearer:"
msgid "Shared"
msgstr "Compartido"
-msgctxt "selection:account.payment.journal,sepa_payable_flavor:"
-msgid ""
-msgstr ""
-
-msgctxt "selection:account.payment.journal,sepa_payable_flavor:"
-msgid "pain.001.001.03"
-msgstr ""
-
-msgctxt "selection:account.payment.journal,sepa_payable_flavor:"
-msgid "pain.001.001.05"
-msgstr ""
-
-msgctxt "selection:account.payment.journal,sepa_receivable_flavor:"
-msgid ""
-msgstr ""
-
-msgctxt "selection:account.payment.journal,sepa_receivable_flavor:"
-msgid "pain.008.001.02"
-msgstr ""
+msgctxt "selection:account.payment.sepa.mandate,scheme:"
+msgid "Business to Business"
+msgstr "Negocio a Negocio"
-msgctxt "selection:account.payment.journal,sepa_receivable_flavor:"
-msgid "pain.008.001.04"
-msgstr ""
+msgctxt "selection:account.payment.sepa.mandate,scheme:"
+msgid "Core"
+msgstr "Núcleo"
msgctxt "selection:account.payment.sepa.mandate,state:"
msgid "Canceled"
@@ -205,6 +439,30 @@ msgctxt "selection:account.payment.sepa.mandate,type:"
msgid "Recurrent"
msgstr "Recurrente"
+msgctxt "selection:account.payment.sepa.message,state:"
+msgid "Canceled"
+msgstr "Anulado"
+
+msgctxt "selection:account.payment.sepa.message,state:"
+msgid "Done"
+msgstr "Hecho"
+
+msgctxt "selection:account.payment.sepa.message,state:"
+msgid "Draft"
+msgstr "Borrador"
+
+msgctxt "selection:account.payment.sepa.message,state:"
+msgid "Waiting"
+msgstr "En Espera"
+
+msgctxt "selection:account.payment.sepa.message,type:"
+msgid "IN"
+msgstr "ENTRADA"
+
+msgctxt "selection:account.payment.sepa.message,type:"
+msgid "OUT"
+msgstr "SALIDA"
+
msgctxt "view:account.payment.journal:"
msgid "SEPA"
msgstr "SEPA"
@@ -237,6 +495,30 @@ msgctxt "view:account.payment.sepa.mandate:"
msgid "Validate"
msgstr "Validar"
+msgctxt "view:account.payment.sepa.message:"
+msgid "Cancel"
+msgstr "Anular"
+
+msgctxt "view:account.payment.sepa.message:"
+msgid "Do"
+msgstr "Hacer"
+
+msgctxt "view:account.payment.sepa.message:"
+msgid "Draft"
+msgstr "Borrador"
+
+msgctxt "view:account.payment.sepa.message:"
+msgid "SEPA Message"
+msgstr "Mensaje SEPA"
+
+msgctxt "view:account.payment.sepa.message:"
+msgid "SEPA Messages"
+msgstr "Mensajes SEPA"
+
+msgctxt "view:account.payment.sepa.message:"
+msgid "Wait"
+msgstr "Espera"
+
msgctxt "view:party.party:"
msgid "SEPA"
msgstr "SEPA"
diff --git a/locale/es_EC.po b/locale/es_EC.po
new file mode 100644
index 0000000..0d938ef
--- /dev/null
+++ b/locale/es_EC.po
@@ -0,0 +1,526 @@
+#
+msgid ""
+msgstr "Content-Type: text/plain; charset=utf-8\n"
+
+msgctxt "error:account.payment.group:"
+msgid "No valid mandate for payment \"%s\""
+msgstr "No es válido el mandato para el pago \"%s\""
+
+msgctxt "error:account.payment.sepa.mandate:"
+msgid "The identification of the SEPA mandate must be unique in a company."
+msgstr "La identificación del mandato SEPA debe ser único en una empresa."
+
+msgctxt "error:account.payment.sepa.mandate:"
+msgid ""
+"You can not delete mandate \"%s\" because it is not in draft or canceled "
+"state."
+msgstr ""
+"No puede eliminar el mandato \"%s\" porque no está en estado borrador o "
+"cancelado."
+
+msgctxt "field:account.configuration,sepa_mandate_sequence:"
+msgid "SEPA Mandate Sequence"
+msgstr "Secuencia del Mandato SEPA"
+
+msgctxt "field:account.payment,sepa_end_to_end_id:"
+msgid "SEPA End To End ID"
+msgstr "ID SEPA de Extremo a Extremo"
+
+msgctxt "field:account.payment,sepa_instruction_id:"
+msgid "SEPA Instruction ID"
+msgstr "ID de instrucción SEPA"
+
+msgctxt "field:account.payment,sepa_mandate:"
+msgid "Mandate"
+msgstr "Mandato"
+
+msgctxt "field:account.payment,sepa_mandate_sequence_type:"
+msgid "Mandate Sequence Type"
+msgstr "Tipo de Secuencia de Mandato"
+
+msgctxt "field:account.payment,sepa_return_reason_code:"
+msgid "Return Reason Code"
+msgstr "Código de Razón de Devolución"
+
+msgctxt "field:account.payment,sepa_return_reason_information:"
+msgid "Return Reason Information"
+msgstr "Información sobre la Razón de la Devolución"
+
+msgctxt "field:account.payment.group,sepa_messages:"
+msgid "SEPA Messages"
+msgstr "Mensajes SEPA"
+
+msgctxt "field:account.payment.journal,company_party:"
+msgid "Company Party"
+msgstr "Tercero de la Empresa"
+
+msgctxt "field:account.payment.journal,sepa_bank_account_number:"
+msgid "Bank Account Number"
+msgstr "Número de Cuenta Bancaria"
+
+msgctxt "field:account.payment.journal,sepa_batch_booking:"
+msgid "Batch Booking"
+msgstr "Reserva por Lotes"
+
+msgctxt "field:account.payment.journal,sepa_charge_bearer:"
+msgid "Charge Bearer"
+msgstr "Cargo de Mensajería"
+
+msgctxt "field:account.payment.journal,sepa_payable_flavor:"
+msgid "Payable Flavor"
+msgstr "Formato para Pagos"
+
+msgctxt "field:account.payment.journal,sepa_receivable_flavor:"
+msgid "Receivable Flavor"
+msgstr "Formato para Cobros"
+
+msgctxt "field:account.payment.sepa.mandate,account_number:"
+msgid "Account Number"
+msgstr "Número de Cuenta"
+
+msgctxt "field:account.payment.sepa.mandate,company:"
+msgid "Company"
+msgstr "Empresa"
+
+msgctxt "field:account.payment.sepa.mandate,create_date:"
+msgid "Create Date"
+msgstr "Fecha de Creación"
+
+msgctxt "field:account.payment.sepa.mandate,create_uid:"
+msgid "Create User"
+msgstr "Creado por Usuario"
+
+msgctxt "field:account.payment.sepa.mandate,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:account.payment.sepa.mandate,identification:"
+msgid "Identification"
+msgstr "Identificación"
+
+msgctxt "field:account.payment.sepa.mandate,identification_readonly:"
+msgid "Identification Readonly"
+msgstr "Identificación de Sólo Lectura"
+
+msgctxt "field:account.payment.sepa.mandate,party:"
+msgid "Party"
+msgstr "Tercero"
+
+msgctxt "field:account.payment.sepa.mandate,payments:"
+msgid "Payments"
+msgstr "Pagos"
+
+msgctxt "field:account.payment.sepa.mandate,rec_name:"
+msgid "Name"
+msgstr "Nombre"
+
+msgctxt "field:account.payment.sepa.mandate,scheme:"
+msgid "Scheme"
+msgstr "Esquema"
+
+msgctxt "field:account.payment.sepa.mandate,signature_date:"
+msgid "Signature Date"
+msgstr "Fecha de Firma"
+
+msgctxt "field:account.payment.sepa.mandate,state:"
+msgid "State"
+msgstr "Estado"
+
+msgctxt "field:account.payment.sepa.mandate,type:"
+msgid "Type"
+msgstr "Tipo"
+
+msgctxt "field:account.payment.sepa.mandate,write_date:"
+msgid "Write Date"
+msgstr "Fecha de Modificación"
+
+msgctxt "field:account.payment.sepa.mandate,write_uid:"
+msgid "Write User"
+msgstr "Modificado por Usuario"
+
+msgctxt "field:account.payment.sepa.message,company:"
+msgid "Company"
+msgstr "Empresa"
+
+msgctxt "field:account.payment.sepa.message,create_date:"
+msgid "Create Date"
+msgstr "Fecha de Creación"
+
+msgctxt "field:account.payment.sepa.message,create_uid:"
+msgid "Create User"
+msgstr "Creado por Usuario"
+
+msgctxt "field:account.payment.sepa.message,filename:"
+msgid "Filename"
+msgstr "Nombre de Archivo"
+
+msgctxt "field:account.payment.sepa.message,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:account.payment.sepa.message,message:"
+msgid "Message"
+msgstr "Mensaje"
+
+msgctxt "field:account.payment.sepa.message,origin:"
+msgid "Origin"
+msgstr "Origen"
+
+msgctxt "field:account.payment.sepa.message,rec_name:"
+msgid "Name"
+msgstr "Nombre"
+
+msgctxt "field:account.payment.sepa.message,state:"
+msgid "State"
+msgstr "Estado"
+
+msgctxt "field:account.payment.sepa.message,type:"
+msgid "Type"
+msgstr "Tipo"
+
+msgctxt "field:account.payment.sepa.message,write_date:"
+msgid "Write Date"
+msgstr "Fecha de Modificación"
+
+msgctxt "field:account.payment.sepa.message,write_uid:"
+msgid "Write User"
+msgstr "Modificado por Usuario"
+
+msgctxt "field:party.party,sepa_creditor_identifier:"
+msgid "SEPA Creditor Identifier"
+msgstr "Identificador Acreedor SEPA"
+
+msgctxt "field:party.party,sepa_creditor_identifier_used:"
+msgid "SEPA Creditor Identifier Used"
+msgstr "Identificador Acreedor SEPA Utilizado"
+
+msgctxt "field:party.party,sepa_mandates:"
+msgid "SEPA Mandates"
+msgstr "Mandatos SEPA"
+
+msgctxt "model:account.payment.sepa.mandate,name:"
+msgid "SEPA Mandate"
+msgstr "Mandato SEPA"
+
+msgctxt "model:account.payment.sepa.message,name:"
+msgid "SEPA Message"
+msgstr "Mensaje SEPA"
+
+msgctxt "model:ir.action,name:act_mandate_form"
+msgid "SEPA Mandates"
+msgstr "Mandatos SEPA"
+
+msgctxt "model:ir.action,name:act_mandate_form2"
+msgid "Mandates"
+msgstr "Mandatos"
+
+msgctxt "model:ir.action,name:act_message_form"
+msgid "SEPA Messages"
+msgstr "Mensajes SEPA"
+
+msgctxt "model:ir.action,name:report_mandate"
+msgid "Mandate"
+msgstr "Mandato"
+
+msgctxt "model:ir.action.act_window.domain,name:act_message_form_domain_all"
+msgid "All"
+msgstr "Todo"
+
+msgctxt ""
+"model:ir.action.act_window.domain,name:act_message_form_domain_canceled"
+msgid "Canceled"
+msgstr "Cancelado"
+
+msgctxt "model:ir.action.act_window.domain,name:act_message_form_domain_done"
+msgid "Done"
+msgstr "Realizado"
+
+msgctxt "model:ir.action.act_window.domain,name:act_message_form_domain_draft"
+msgid "Draft"
+msgstr "Borrador"
+
+msgctxt ""
+"model:ir.action.act_window.domain,name:act_message_form_domain_waiting"
+msgid "Waiting"
+msgstr "En Espera"
+
+msgctxt ""
+"model:ir.action.act_window.domain,name:act_move_line_form_domain_receivable_mandate"
+msgid "Receivable with Mandate"
+msgstr "Por Cobrar con Mandato"
+
+msgctxt "model:ir.sequence.type,name:sequence_type_mandate"
+msgid "SEPA Mandate"
+msgstr "Mandato SEPA"
+
+msgctxt "model:ir.ui.menu,name:menu_mandate_form"
+msgid "SEPA Mandates"
+msgstr "Mandatos SEPA"
+
+msgctxt "model:ir.ui.menu,name:menu_message_form"
+msgid "SEPA Messages"
+msgstr "Mensajes SEPA"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "."
+msgstr "."
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Account number – IBAN"
+msgstr "Número de cuenta - IBAN"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid ""
+"As part of your rights, you are entitled to a refund from your bank under "
+"the terms and conditions of your agreement with your bank. A refund must be "
+"claimed within 8 weeks starting from the date on which your account was "
+"debited."
+msgstr ""
+"Como parte de sus derechos, usted tiene derecho a un reembolso de su banco "
+"en los términos y condiciones de su contrato con el banco. Un reembolso "
+"deberá ser reclamado dentro de 8 semanas a partir de la fecha en que su "
+"cuenta fue debitada."
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "BIC"
+msgstr "BIC / SWIFT"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "By signing this mandate form, you authorize"
+msgstr "Al firmar este formulario de mandato, usted autoriza"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "City"
+msgstr "Ciudad"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Country"
+msgstr "País"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Creditor identifier"
+msgstr "Identificador Acreedor"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Creditor name"
+msgstr "Nombre de Acreedor"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Creditor's name"
+msgstr "Nombre de Acreedor"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Date"
+msgstr "Fecha"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Direct Debit MANDATE"
+msgstr "MANDATO de Débito Directo"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "E-Mail:"
+msgstr "Correo electrónico"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Location"
+msgstr "Ubicación"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Name of the debtor"
+msgstr "Nombre del Deudor"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "One-off payment"
+msgstr "Pago Único"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Phone:"
+msgstr "Teléfono"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Postal code"
+msgstr "Código Postal"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Recurrent payment"
+msgstr "Pago recurrente"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "SEPA"
+msgstr "SEPA"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Signature"
+msgstr "Firma"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Signed at"
+msgstr "Firmado en"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Street name and number"
+msgstr "Nombre y número de calle"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Type of payment"
+msgstr "Tipo de pago"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "VAT Number:"
+msgstr "Número de RUC:"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Your account number"
+msgstr "Su número de cuenta"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Your address"
+msgstr "Su dirección"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Your name"
+msgstr "Su nombre"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid ""
+"to send instructions to your bank to debit your account and your bank to "
+"debit your account in accordance with the instructions from"
+msgstr ""
+"para enviar instrucciones a su banco para debitar de su cuenta y su banco "
+"para debitar de su cuenta, de acuerdo con las instrucciones de"
+
+msgctxt "selection:account.payment.journal,process_method:"
+msgid "SEPA"
+msgstr "SEPA"
+
+msgctxt "selection:account.payment.journal,sepa_charge_bearer:"
+msgid "Creditor"
+msgstr "Acreedor"
+
+msgctxt "selection:account.payment.journal,sepa_charge_bearer:"
+msgid "Debtor"
+msgstr "Deudor"
+
+msgctxt "selection:account.payment.journal,sepa_charge_bearer:"
+msgid "Service Level"
+msgstr "Nivel de Servicio"
+
+msgctxt "selection:account.payment.journal,sepa_charge_bearer:"
+msgid "Shared"
+msgstr "Compartido"
+
+msgctxt "selection:account.payment.sepa.mandate,scheme:"
+msgid "Business to Business"
+msgstr "Business to Business"
+
+msgctxt "selection:account.payment.sepa.mandate,scheme:"
+msgid "Core"
+msgstr "Núcleo"
+
+msgctxt "selection:account.payment.sepa.mandate,state:"
+msgid "Canceled"
+msgstr "Cancelado"
+
+msgctxt "selection:account.payment.sepa.mandate,state:"
+msgid "Draft"
+msgstr "Borrador"
+
+msgctxt "selection:account.payment.sepa.mandate,state:"
+msgid "Requested"
+msgstr "Solicitado"
+
+msgctxt "selection:account.payment.sepa.mandate,state:"
+msgid "Validated"
+msgstr "Validado"
+
+msgctxt "selection:account.payment.sepa.mandate,type:"
+msgid "One-off"
+msgstr "Una sola vez"
+
+msgctxt "selection:account.payment.sepa.mandate,type:"
+msgid "Recurrent"
+msgstr "Recurrente"
+
+msgctxt "selection:account.payment.sepa.message,state:"
+msgid "Canceled"
+msgstr "Cancelado"
+
+msgctxt "selection:account.payment.sepa.message,state:"
+msgid "Done"
+msgstr "Realizado"
+
+msgctxt "selection:account.payment.sepa.message,state:"
+msgid "Draft"
+msgstr "Borrador"
+
+msgctxt "selection:account.payment.sepa.message,state:"
+msgid "Waiting"
+msgstr "En Espera"
+
+msgctxt "selection:account.payment.sepa.message,type:"
+msgid "IN"
+msgstr "Entrada"
+
+msgctxt "selection:account.payment.sepa.message,type:"
+msgid "OUT"
+msgstr "Salida"
+
+msgctxt "view:account.payment.journal:"
+msgid "SEPA"
+msgstr "SEPA"
+
+msgctxt "view:account.payment.sepa.mandate:"
+msgid "Are you sure to cancel the mandate?"
+msgstr "¿Está seguro que desea cancelar el mandato?"
+
+msgctxt "view:account.payment.sepa.mandate:"
+msgid "Cancel"
+msgstr "Cancelar"
+
+msgctxt "view:account.payment.sepa.mandate:"
+msgid "Draft"
+msgstr "Borrador"
+
+msgctxt "view:account.payment.sepa.mandate:"
+msgid "Mandate"
+msgstr "Mandato"
+
+msgctxt "view:account.payment.sepa.mandate:"
+msgid "Mandates"
+msgstr "Mandatos"
+
+msgctxt "view:account.payment.sepa.mandate:"
+msgid "Request"
+msgstr "Solicitud"
+
+msgctxt "view:account.payment.sepa.mandate:"
+msgid "Validate"
+msgstr "Validar"
+
+msgctxt "view:account.payment.sepa.message:"
+msgid "Cancel"
+msgstr "Cancelar"
+
+msgctxt "view:account.payment.sepa.message:"
+msgid "Do"
+msgstr "Hacer"
+
+msgctxt "view:account.payment.sepa.message:"
+msgid "Draft"
+msgstr "Borrador"
+
+msgctxt "view:account.payment.sepa.message:"
+msgid "SEPA Message"
+msgstr "Mensaje SEPA"
+
+msgctxt "view:account.payment.sepa.message:"
+msgid "SEPA Messages"
+msgstr "Mensajes SEPA"
+
+msgctxt "view:account.payment.sepa.message:"
+msgid "Wait"
+msgstr "Esperar"
+
+msgctxt "view:party.party:"
+msgid "SEPA"
+msgstr "SEPA"
diff --git a/locale/es_ES.po b/locale/es_ES.po
index fd89e5e..9313192 100644
--- a/locale/es_ES.po
+++ b/locale/es_ES.po
@@ -7,6 +7,10 @@ msgid "No valid mandate for payment \"%s\""
msgstr "No se ha encontrado un mandato válido para el pago \"%s\"."
msgctxt "error:account.payment.sepa.mandate:"
+msgid "The identification of the SEPA mandate must be unique in a company."
+msgstr "El identificador del mandato SEPA debe ser único por empresa."
+
+msgctxt "error:account.payment.sepa.mandate:"
msgid ""
"You can not delete mandate \"%s\" because it is not in draft or canceled "
"state."
@@ -14,17 +18,37 @@ msgstr ""
"No se puede eliminar el mandato \"%s\" porque no está en estado borrador o "
"cancelado."
+msgctxt "field:account.configuration,sepa_mandate_sequence:"
+msgid "SEPA Mandate Sequence"
+msgstr "Secuencia de mandato SEPA"
+
+msgctxt "field:account.payment,sepa_end_to_end_id:"
+msgid "SEPA End To End ID"
+msgstr "ID End-to-End SEPA"
+
+msgctxt "field:account.payment,sepa_instruction_id:"
+msgid "SEPA Instruction ID"
+msgstr "ID instrucción SEPA"
+
msgctxt "field:account.payment,sepa_mandate:"
msgid "Mandate"
msgstr "Mandato"
-msgctxt "field:account.payment.group,sepa_filename:"
-msgid "SEPA Filename"
-msgstr "Nombre fichero SEPA"
+msgctxt "field:account.payment,sepa_mandate_sequence_type:"
+msgid "Mandate Sequence Type"
+msgstr "Tipo de secuencia mandato"
-msgctxt "field:account.payment.group,sepa_message:"
-msgid "SEPA Message"
-msgstr "Mensaje SEPA"
+msgctxt "field:account.payment,sepa_return_reason_code:"
+msgid "Return Reason Code"
+msgstr "Código motivo de devolución"
+
+msgctxt "field:account.payment,sepa_return_reason_information:"
+msgid "Return Reason Information"
+msgstr "Información motivo de devolución"
+
+msgctxt "field:account.payment.group,sepa_messages:"
+msgid "SEPA Messages"
+msgstr "Mensajes SEPA"
msgctxt "field:account.payment.journal,company_party:"
msgid "Company Party"
@@ -74,6 +98,10 @@ msgctxt "field:account.payment.sepa.mandate,identification:"
msgid "Identification"
msgstr "Identificación"
+msgctxt "field:account.payment.sepa.mandate,identification_readonly:"
+msgid "Identification Readonly"
+msgstr "Identificador sólo lectura"
+
msgctxt "field:account.payment.sepa.mandate,party:"
msgid "Party"
msgstr "Tercero"
@@ -86,6 +114,10 @@ msgctxt "field:account.payment.sepa.mandate,rec_name:"
msgid "Name"
msgstr "Nombre"
+msgctxt "field:account.payment.sepa.mandate,scheme:"
+msgid "Scheme"
+msgstr "Esquema"
+
msgctxt "field:account.payment.sepa.mandate,signature_date:"
msgid "Signature Date"
msgstr "Fecha firma"
@@ -106,6 +138,54 @@ msgctxt "field:account.payment.sepa.mandate,write_uid:"
msgid "Write User"
msgstr "Usuario modificación"
+msgctxt "field:account.payment.sepa.message,company:"
+msgid "Company"
+msgstr "Empresa"
+
+msgctxt "field:account.payment.sepa.message,create_date:"
+msgid "Create Date"
+msgstr "Fecha creación"
+
+msgctxt "field:account.payment.sepa.message,create_uid:"
+msgid "Create User"
+msgstr "Usuario creación"
+
+msgctxt "field:account.payment.sepa.message,filename:"
+msgid "Filename"
+msgstr "Nombre del fichero"
+
+msgctxt "field:account.payment.sepa.message,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:account.payment.sepa.message,message:"
+msgid "Message"
+msgstr "Mensaje"
+
+msgctxt "field:account.payment.sepa.message,origin:"
+msgid "Origin"
+msgstr "Origen"
+
+msgctxt "field:account.payment.sepa.message,rec_name:"
+msgid "Name"
+msgstr "Nombre"
+
+msgctxt "field:account.payment.sepa.message,state:"
+msgid "State"
+msgstr "Estado"
+
+msgctxt "field:account.payment.sepa.message,type:"
+msgid "Type"
+msgstr "Tipo"
+
+msgctxt "field:account.payment.sepa.message,write_date:"
+msgid "Write Date"
+msgstr "Fecha modificación"
+
+msgctxt "field:account.payment.sepa.message,write_uid:"
+msgid "Write User"
+msgstr "Usuario modificación"
+
msgctxt "field:party.party,sepa_creditor_identifier:"
msgid "SEPA Creditor Identifier"
msgstr "Identificador acreedor SEPA"
@@ -122,6 +202,10 @@ msgctxt "model:account.payment.sepa.mandate,name:"
msgid "SEPA Mandate"
msgstr "Mandato SEPA"
+msgctxt "model:account.payment.sepa.message,name:"
+msgid "SEPA Message"
+msgstr "Mensaje SEPA"
+
msgctxt "model:ir.action,name:act_mandate_form"
msgid "SEPA Mandates"
msgstr "Mandatos SEPA"
@@ -130,15 +214,183 @@ msgctxt "model:ir.action,name:act_mandate_form2"
msgid "Mandates"
msgstr "Mandatos"
+msgctxt "model:ir.action,name:act_message_form"
+msgid "SEPA Messages"
+msgstr "Mensajes SEPA"
+
+msgctxt "model:ir.action,name:report_mandate"
+msgid "Mandate"
+msgstr "Mandato"
+
+msgctxt "model:ir.action.act_window.domain,name:act_message_form_domain_all"
+msgid "All"
+msgstr "Todos"
+
+msgctxt ""
+"model:ir.action.act_window.domain,name:act_message_form_domain_canceled"
+msgid "Canceled"
+msgstr "Cancelado"
+
+msgctxt "model:ir.action.act_window.domain,name:act_message_form_domain_done"
+msgid "Done"
+msgstr "Realizado"
+
+msgctxt "model:ir.action.act_window.domain,name:act_message_form_domain_draft"
+msgid "Draft"
+msgstr "Borrador"
+
+msgctxt ""
+"model:ir.action.act_window.domain,name:act_message_form_domain_waiting"
+msgid "Waiting"
+msgstr "En espera"
+
msgctxt ""
"model:ir.action.act_window.domain,name:act_move_line_form_domain_receivable_mandate"
msgid "Receivable with Mandate"
msgstr "A cobrar con mandato"
+msgctxt "model:ir.sequence.type,name:sequence_type_mandate"
+msgid "SEPA Mandate"
+msgstr "Mandato SEPA"
+
msgctxt "model:ir.ui.menu,name:menu_mandate_form"
msgid "SEPA Mandates"
msgstr "Mandatos SEPA"
+msgctxt "model:ir.ui.menu,name:menu_message_form"
+msgid "SEPA Messages"
+msgstr "Mensajes SEPA"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "."
+msgstr "."
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Account number – IBAN"
+msgstr "Número de cuenta - IBAN"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid ""
+"As part of your rights, you are entitled to a refund from your bank under "
+"the terms and conditions of your agreement with your bank. A refund must be "
+"claimed within 8 weeks starting from the date on which your account was "
+"debited."
+msgstr ""
+"Como parte de sus derechos, el deudor está legitimado al reembolso por su "
+"entidad en los términos y condiciones del contrato suscrito con la misma. La"
+" solicitud de reembolso deberá efectuarse dentro de las 8 semanas que siguen"
+" a la fecha de adeudo en cuenta."
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "BIC"
+msgstr "BIC"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "By signing this mandate form, you authorize"
+msgstr ""
+"Mediante la firma de esta orden de domiciliación, el deudor autoriza a (A)"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "City"
+msgstr "Ciudad"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Country"
+msgstr "País"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Creditor identifier"
+msgstr "Identificador del acreedor"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Creditor name"
+msgstr "Nombre del acreedor"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Creditor's name"
+msgstr "Nombre del acreedor"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Date"
+msgstr "Fecha"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Direct Debit MANDATE"
+msgstr "Orden de domiciliación de adeudo directo"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "E-Mail:"
+msgstr "Correo electrónico:"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Location"
+msgstr "Localidad"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Name of the debtor"
+msgstr "Nombre del deudor"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "One-off payment"
+msgstr "Pago único"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Phone:"
+msgstr "Teléfono:"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Postal code"
+msgstr "Código postal"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Recurrent payment"
+msgstr "Pago recurrente"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "SEPA"
+msgstr "SEPA"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Signature"
+msgstr "Firma"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Signed at"
+msgstr "Firmado el"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Street name and number"
+msgstr "Nombre de la calle y número"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Type of payment"
+msgstr "Tipo de pago"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "VAT Number:"
+msgstr "CIF/NIF:"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Your account number"
+msgstr "Su número de cuenta"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Your address"
+msgstr "Su dirección"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Your name"
+msgstr "Su nombre"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid ""
+"to send instructions to your bank to debit your account and your bank to "
+"debit your account in accordance with the instructions from"
+msgstr ""
+"a enviar instrucciones a la entidad del deudor para adeudar su cuenta y (B) "
+"a la entidad para efectuar los adeudos en su cuenta siguiendo las "
+"instrucciones de"
+
msgctxt "selection:account.payment.journal,process_method:"
msgid "SEPA"
msgstr "SEPA"
@@ -159,29 +411,13 @@ msgctxt "selection:account.payment.journal,sepa_charge_bearer:"
msgid "Shared"
msgstr "Compartido"
-msgctxt "selection:account.payment.journal,sepa_payable_flavor:"
-msgid ""
-msgstr ""
-
-msgctxt "selection:account.payment.journal,sepa_payable_flavor:"
-msgid "pain.001.001.03"
-msgstr "pain.001.001.03"
-
-msgctxt "selection:account.payment.journal,sepa_payable_flavor:"
-msgid "pain.001.001.05"
-msgstr "pain.001.001.05"
-
-msgctxt "selection:account.payment.journal,sepa_receivable_flavor:"
-msgid ""
-msgstr ""
-
-msgctxt "selection:account.payment.journal,sepa_receivable_flavor:"
-msgid "pain.008.001.02"
-msgstr "pain.008.001.02"
+msgctxt "selection:account.payment.sepa.mandate,scheme:"
+msgid "Business to Business"
+msgstr "Empresa a empresa"
-msgctxt "selection:account.payment.journal,sepa_receivable_flavor:"
-msgid "pain.008.001.04"
-msgstr "pain.008.001.04"
+msgctxt "selection:account.payment.sepa.mandate,scheme:"
+msgid "Core"
+msgstr "Core"
msgctxt "selection:account.payment.sepa.mandate,state:"
msgid "Canceled"
@@ -207,6 +443,30 @@ msgctxt "selection:account.payment.sepa.mandate,type:"
msgid "Recurrent"
msgstr "Recurrente"
+msgctxt "selection:account.payment.sepa.message,state:"
+msgid "Canceled"
+msgstr "Cancelado"
+
+msgctxt "selection:account.payment.sepa.message,state:"
+msgid "Done"
+msgstr "Realizado"
+
+msgctxt "selection:account.payment.sepa.message,state:"
+msgid "Draft"
+msgstr "Borrador"
+
+msgctxt "selection:account.payment.sepa.message,state:"
+msgid "Waiting"
+msgstr "En espera"
+
+msgctxt "selection:account.payment.sepa.message,type:"
+msgid "IN"
+msgstr "Entrada"
+
+msgctxt "selection:account.payment.sepa.message,type:"
+msgid "OUT"
+msgstr "Salida"
+
msgctxt "view:account.payment.journal:"
msgid "SEPA"
msgstr "SEPA"
@@ -239,6 +499,30 @@ msgctxt "view:account.payment.sepa.mandate:"
msgid "Validate"
msgstr "Validar"
+msgctxt "view:account.payment.sepa.message:"
+msgid "Cancel"
+msgstr "Cancelar"
+
+msgctxt "view:account.payment.sepa.message:"
+msgid "Do"
+msgstr "Ejecuta"
+
+msgctxt "view:account.payment.sepa.message:"
+msgid "Draft"
+msgstr "Borrador"
+
+msgctxt "view:account.payment.sepa.message:"
+msgid "SEPA Message"
+msgstr "Mensaje SEPA"
+
+msgctxt "view:account.payment.sepa.message:"
+msgid "SEPA Messages"
+msgstr "Mensajes SEPA"
+
+msgctxt "view:account.payment.sepa.message:"
+msgid "Wait"
+msgstr "En espera"
+
msgctxt "view:party.party:"
msgid "SEPA"
msgstr "SEPA"
diff --git a/locale/fr_FR.po b/locale/fr_FR.po
index 0bd09a0..6e21205 100644
--- a/locale/fr_FR.po
+++ b/locale/fr_FR.po
@@ -4,27 +4,51 @@ msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "error:account.payment.group:"
msgid "No valid mandate for payment \"%s\""
-msgstr "Pas de mandat valide pour le paiement \"%s\""
+msgstr "Pas de mandat valide pour le paiement « %s »"
+
+msgctxt "error:account.payment.sepa.mandate:"
+msgid "The identification of the SEPA mandate must be unique in a company."
+msgstr "L'identification du mandat SEPA doit être unique dans une société."
msgctxt "error:account.payment.sepa.mandate:"
msgid ""
"You can not delete mandate \"%s\" because it is not in draft or canceled "
"state."
msgstr ""
-"Vous ne pouvez supprimer le mandat \"%s\" car il n'est pas dans l'état "
+"Vous ne pouvez supprimer le mandat « %s » car il n'est pas dans l'état "
"brouillon ou annulé."
+msgctxt "field:account.configuration,sepa_mandate_sequence:"
+msgid "SEPA Mandate Sequence"
+msgstr "Séquence de mandat SEPA"
+
+msgctxt "field:account.payment,sepa_end_to_end_id:"
+msgid "SEPA End To End ID"
+msgstr "End To End ID SEPA"
+
+msgctxt "field:account.payment,sepa_instruction_id:"
+msgid "SEPA Instruction ID"
+msgstr "ID d'instruction SEPA"
+
msgctxt "field:account.payment,sepa_mandate:"
msgid "Mandate"
msgstr "Mandat"
-msgctxt "field:account.payment.group,sepa_filename:"
-msgid "SEPA Filename"
-msgstr "Nom de fichier SEPA"
+msgctxt "field:account.payment,sepa_mandate_sequence_type:"
+msgid "Mandate Sequence Type"
+msgstr "Type de séquence de mandat"
-msgctxt "field:account.payment.group,sepa_message:"
-msgid "SEPA Message"
-msgstr "Message SEPA"
+msgctxt "field:account.payment,sepa_return_reason_code:"
+msgid "Return Reason Code"
+msgstr "Code de raison de retour"
+
+msgctxt "field:account.payment,sepa_return_reason_information:"
+msgid "Return Reason Information"
+msgstr "Information sur la raison de retour"
+
+msgctxt "field:account.payment.group,sepa_messages:"
+msgid "SEPA Messages"
+msgstr "Messages SEPA"
msgctxt "field:account.payment.journal,company_party:"
msgid "Company Party"
@@ -74,6 +98,10 @@ msgctxt "field:account.payment.sepa.mandate,identification:"
msgid "Identification"
msgstr "Identification"
+msgctxt "field:account.payment.sepa.mandate,identification_readonly:"
+msgid "Identification Readonly"
+msgstr "Identification en lecture seule"
+
msgctxt "field:account.payment.sepa.mandate,party:"
msgid "Party"
msgstr "Tiers"
@@ -86,6 +114,10 @@ msgctxt "field:account.payment.sepa.mandate,rec_name:"
msgid "Name"
msgstr "Nom"
+msgctxt "field:account.payment.sepa.mandate,scheme:"
+msgid "Scheme"
+msgstr "Procédure"
+
msgctxt "field:account.payment.sepa.mandate,signature_date:"
msgid "Signature Date"
msgstr "Date de signature"
@@ -106,6 +138,54 @@ msgctxt "field:account.payment.sepa.mandate,write_uid:"
msgid "Write User"
msgstr "Mis à jour par"
+msgctxt "field:account.payment.sepa.message,company:"
+msgid "Company"
+msgstr "Société"
+
+msgctxt "field:account.payment.sepa.message,create_date:"
+msgid "Create Date"
+msgstr "Date de création"
+
+msgctxt "field:account.payment.sepa.message,create_uid:"
+msgid "Create User"
+msgstr "Créé par"
+
+msgctxt "field:account.payment.sepa.message,filename:"
+msgid "Filename"
+msgstr "Nom de fichier"
+
+msgctxt "field:account.payment.sepa.message,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:account.payment.sepa.message,message:"
+msgid "Message"
+msgstr "Message"
+
+msgctxt "field:account.payment.sepa.message,origin:"
+msgid "Origin"
+msgstr "Origine"
+
+msgctxt "field:account.payment.sepa.message,rec_name:"
+msgid "Name"
+msgstr "Nom"
+
+msgctxt "field:account.payment.sepa.message,state:"
+msgid "State"
+msgstr "État"
+
+msgctxt "field:account.payment.sepa.message,type:"
+msgid "Type"
+msgstr "Type"
+
+msgctxt "field:account.payment.sepa.message,write_date:"
+msgid "Write Date"
+msgstr "Date de mise à jour"
+
+msgctxt "field:account.payment.sepa.message,write_uid:"
+msgid "Write User"
+msgstr "Mis à jour par"
+
msgctxt "field:party.party,sepa_creditor_identifier:"
msgid "SEPA Creditor Identifier"
msgstr "Identifiant créditeur SEPA"
@@ -122,6 +202,10 @@ msgctxt "model:account.payment.sepa.mandate,name:"
msgid "SEPA Mandate"
msgstr "Mandat SEPA"
+msgctxt "model:account.payment.sepa.message,name:"
+msgid "SEPA Message"
+msgstr "Message SEPA"
+
msgctxt "model:ir.action,name:act_mandate_form"
msgid "SEPA Mandates"
msgstr "Mandats SEPA"
@@ -130,15 +214,181 @@ msgctxt "model:ir.action,name:act_mandate_form2"
msgid "Mandates"
msgstr "Mandats"
+msgctxt "model:ir.action,name:act_message_form"
+msgid "SEPA Messages"
+msgstr "Messages SEPA"
+
+msgctxt "model:ir.action,name:report_mandate"
+msgid "Mandate"
+msgstr "Mandat"
+
+msgctxt "model:ir.action.act_window.domain,name:act_message_form_domain_all"
+msgid "All"
+msgstr "Tous"
+
+msgctxt ""
+"model:ir.action.act_window.domain,name:act_message_form_domain_canceled"
+msgid "Canceled"
+msgstr "Annulé"
+
+msgctxt "model:ir.action.act_window.domain,name:act_message_form_domain_done"
+msgid "Done"
+msgstr "Fait"
+
+msgctxt "model:ir.action.act_window.domain,name:act_message_form_domain_draft"
+msgid "Draft"
+msgstr "Brouillon"
+
+msgctxt ""
+"model:ir.action.act_window.domain,name:act_message_form_domain_waiting"
+msgid "Waiting"
+msgstr "En attente"
+
msgctxt ""
"model:ir.action.act_window.domain,name:act_move_line_form_domain_receivable_mandate"
msgid "Receivable with Mandate"
msgstr "À recevoir avec mandat"
+msgctxt "model:ir.sequence.type,name:sequence_type_mandate"
+msgid "SEPA Mandate"
+msgstr "Mandat SEPA"
+
msgctxt "model:ir.ui.menu,name:menu_mandate_form"
msgid "SEPA Mandates"
msgstr "Mandats SEPA"
+msgctxt "model:ir.ui.menu,name:menu_message_form"
+msgid "SEPA Messages"
+msgstr "Messages SEPA"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "."
+msgstr ""
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Account number – IBAN"
+msgstr "Numéro de compte - IBAN"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid ""
+"As part of your rights, you are entitled to a refund from your bank under "
+"the terms and conditions of your agreement with your bank. A refund must be "
+"claimed within 8 weeks starting from the date on which your account was "
+"debited."
+msgstr ""
+"Dans le cadre de vos droits, vous êtes autorisé à un remboursement de votre "
+"banque selon les termes et conditions de votre contrat avec votre banque. Un"
+" remboursement doit être demandé dans les 8 semaines à partir de la date à "
+"laquelle votre compte a été débité."
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "BIC"
+msgstr "BIC"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "By signing this mandate form, you authorize"
+msgstr "En signant ce formulaire de mandat, vous autorisez"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "City"
+msgstr "Ville"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Country"
+msgstr "Pays"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Creditor identifier"
+msgstr "Identifiant créditeur"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Creditor name"
+msgstr "Nom du créditeur"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Creditor's name"
+msgstr "Nom du créditeur"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Date"
+msgstr "Date"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Direct Debit MANDATE"
+msgstr "MANDAT de débit direct"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "E-Mail:"
+msgstr "E-Mail:"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Location"
+msgstr "Emplacement"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Name of the debtor"
+msgstr "Nom du débiteur"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "One-off payment"
+msgstr "Paiement unique"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Phone:"
+msgstr "Téléphone :"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Postal code"
+msgstr "Code postal"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Recurrent payment"
+msgstr "Paiement récurrent"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "SEPA"
+msgstr "SEPA"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Signature"
+msgstr "Signature"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Signed at"
+msgstr "Signé à"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Street name and number"
+msgstr "Rue et numéro"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Type of payment"
+msgstr "Type de paiement"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "VAT Number:"
+msgstr "Numéro TVA :"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Your account number"
+msgstr "Votre numéro de compte"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Your address"
+msgstr "Votre adresse"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Your name"
+msgstr "Votre nom"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid ""
+"to send instructions to your bank to debit your account and your bank to "
+"debit your account in accordance with the instructions from"
+msgstr ""
+"d'envoyer des instructions à votre banque pour débiter votre compte et votre"
+" banque de débiter votre compte conformément aux instructions de"
+
msgctxt "selection:account.payment.journal,process_method:"
msgid "SEPA"
msgstr "SEPA"
@@ -159,29 +409,13 @@ msgctxt "selection:account.payment.journal,sepa_charge_bearer:"
msgid "Shared"
msgstr "Partagé"
-msgctxt "selection:account.payment.journal,sepa_payable_flavor:"
-msgid ""
-msgstr ""
-
-msgctxt "selection:account.payment.journal,sepa_payable_flavor:"
-msgid "pain.001.001.03"
-msgstr "pain.001.001.03"
-
-msgctxt "selection:account.payment.journal,sepa_payable_flavor:"
-msgid "pain.001.001.05"
-msgstr "pain.001.001.05"
-
-msgctxt "selection:account.payment.journal,sepa_receivable_flavor:"
-msgid ""
-msgstr ""
-
-msgctxt "selection:account.payment.journal,sepa_receivable_flavor:"
-msgid "pain.008.001.02"
-msgstr "pain.008.001.02"
+msgctxt "selection:account.payment.sepa.mandate,scheme:"
+msgid "Business to Business"
+msgstr "Business to Business"
-msgctxt "selection:account.payment.journal,sepa_receivable_flavor:"
-msgid "pain.008.001.04"
-msgstr "pain.008.001.04"
+msgctxt "selection:account.payment.sepa.mandate,scheme:"
+msgid "Core"
+msgstr "Core"
msgctxt "selection:account.payment.sepa.mandate,state:"
msgid "Canceled"
@@ -207,13 +441,37 @@ msgctxt "selection:account.payment.sepa.mandate,type:"
msgid "Recurrent"
msgstr "Récurrent"
+msgctxt "selection:account.payment.sepa.message,state:"
+msgid "Canceled"
+msgstr "Annulé"
+
+msgctxt "selection:account.payment.sepa.message,state:"
+msgid "Done"
+msgstr "Fait"
+
+msgctxt "selection:account.payment.sepa.message,state:"
+msgid "Draft"
+msgstr "Brouillon"
+
+msgctxt "selection:account.payment.sepa.message,state:"
+msgid "Waiting"
+msgstr "En attente"
+
+msgctxt "selection:account.payment.sepa.message,type:"
+msgid "IN"
+msgstr "Entrant"
+
+msgctxt "selection:account.payment.sepa.message,type:"
+msgid "OUT"
+msgstr "Sortant"
+
msgctxt "view:account.payment.journal:"
msgid "SEPA"
msgstr "SEPA"
msgctxt "view:account.payment.sepa.mandate:"
msgid "Are you sure to cancel the mandate?"
-msgstr "Êtes-vous sûr d'annuler le mandat ?"
+msgstr "Êtes-vous sûr d'annuler le mandat ?"
msgctxt "view:account.payment.sepa.mandate:"
msgid "Cancel"
@@ -239,6 +497,30 @@ msgctxt "view:account.payment.sepa.mandate:"
msgid "Validate"
msgstr "Valider"
+msgctxt "view:account.payment.sepa.message:"
+msgid "Cancel"
+msgstr "Annulé"
+
+msgctxt "view:account.payment.sepa.message:"
+msgid "Do"
+msgstr "Faire"
+
+msgctxt "view:account.payment.sepa.message:"
+msgid "Draft"
+msgstr "Brouillon"
+
+msgctxt "view:account.payment.sepa.message:"
+msgid "SEPA Message"
+msgstr "Message SEPA"
+
+msgctxt "view:account.payment.sepa.message:"
+msgid "SEPA Messages"
+msgstr "Message SEPA"
+
+msgctxt "view:account.payment.sepa.message:"
+msgid "Wait"
+msgstr "Attendre"
+
msgctxt "view:party.party:"
msgid "SEPA"
msgstr "SEPA"
diff --git a/locale/sl_SI.po b/locale/sl_SI.po
index 58a4afd..5db1d7f 100644
--- a/locale/sl_SI.po
+++ b/locale/sl_SI.po
@@ -7,22 +7,46 @@ msgid "No valid mandate for payment \"%s\""
msgstr "Ni veljavnega soglasja za plačilo \"%s\""
msgctxt "error:account.payment.sepa.mandate:"
+msgid "The identification of the SEPA mandate must be unique in a company."
+msgstr "Identifikacija soglasja SEPA mora biti enolična v družbi."
+
+msgctxt "error:account.payment.sepa.mandate:"
msgid ""
"You can not delete mandate \"%s\" because it is not in draft or canceled "
"state."
msgstr "Soglasja \"%s\" ni možno zbrisati, ker ni v pripravi ali preklicano."
+msgctxt "field:account.configuration,sepa_mandate_sequence:"
+msgid "SEPA Mandate Sequence"
+msgstr "Štetje soglasij SEPA"
+
+msgctxt "field:account.payment,sepa_end_to_end_id:"
+msgid "SEPA End To End ID"
+msgstr "ID SEPA End-to-End "
+
+msgctxt "field:account.payment,sepa_instruction_id:"
+msgid "SEPA Instruction ID"
+msgstr "ID navodila SEPA"
+
msgctxt "field:account.payment,sepa_mandate:"
msgid "Mandate"
msgstr "Soglasje"
-msgctxt "field:account.payment.group,sepa_filename:"
-msgid "SEPA Filename"
-msgstr "Datoteka SEPA"
+msgctxt "field:account.payment,sepa_mandate_sequence_type:"
+msgid "Mandate Sequence Type"
+msgstr "Vrsta štetja soglasij"
-msgctxt "field:account.payment.group,sepa_message:"
-msgid "SEPA Message"
-msgstr "Sporočilo SEPA"
+msgctxt "field:account.payment,sepa_return_reason_code:"
+msgid "Return Reason Code"
+msgstr "Šifra razloga zavrnitve"
+
+msgctxt "field:account.payment,sepa_return_reason_information:"
+msgid "Return Reason Information"
+msgstr "Podrobnosti razloga zavrnitve"
+
+msgctxt "field:account.payment.group,sepa_messages:"
+msgid "SEPA Messages"
+msgstr "Sporočila SEPA"
msgctxt "field:account.payment.journal,company_party:"
msgid "Company Party"
@@ -58,11 +82,11 @@ msgstr "Družba"
msgctxt "field:account.payment.sepa.mandate,create_date:"
msgid "Create Date"
-msgstr "Ustvarjeno"
+msgstr "Izdelano"
msgctxt "field:account.payment.sepa.mandate,create_uid:"
msgid "Create User"
-msgstr "Ustvaril"
+msgstr "Izdelal"
msgctxt "field:account.payment.sepa.mandate,id:"
msgid "ID"
@@ -72,6 +96,10 @@ msgctxt "field:account.payment.sepa.mandate,identification:"
msgid "Identification"
msgstr "Identifikacija"
+msgctxt "field:account.payment.sepa.mandate,identification_readonly:"
+msgid "Identification Readonly"
+msgstr "Identifikacija samo za branje"
+
msgctxt "field:account.payment.sepa.mandate,party:"
msgid "Party"
msgstr "Partner"
@@ -84,6 +112,10 @@ msgctxt "field:account.payment.sepa.mandate,rec_name:"
msgid "Name"
msgstr "Ime"
+msgctxt "field:account.payment.sepa.mandate,scheme:"
+msgid "Scheme"
+msgstr "Shema"
+
msgctxt "field:account.payment.sepa.mandate,signature_date:"
msgid "Signature Date"
msgstr "Datum podpisa"
@@ -104,6 +136,54 @@ msgctxt "field:account.payment.sepa.mandate,write_uid:"
msgid "Write User"
msgstr "Zapisal"
+msgctxt "field:account.payment.sepa.message,company:"
+msgid "Company"
+msgstr "Družba"
+
+msgctxt "field:account.payment.sepa.message,create_date:"
+msgid "Create Date"
+msgstr "Izdelano"
+
+msgctxt "field:account.payment.sepa.message,create_uid:"
+msgid "Create User"
+msgstr "Izdelal"
+
+msgctxt "field:account.payment.sepa.message,filename:"
+msgid "Filename"
+msgstr "Datoteka"
+
+msgctxt "field:account.payment.sepa.message,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:account.payment.sepa.message,message:"
+msgid "Message"
+msgstr "Sporočilo"
+
+msgctxt "field:account.payment.sepa.message,origin:"
+msgid "Origin"
+msgstr "Poreklo"
+
+msgctxt "field:account.payment.sepa.message,rec_name:"
+msgid "Name"
+msgstr "Ime"
+
+msgctxt "field:account.payment.sepa.message,state:"
+msgid "State"
+msgstr "Stanje"
+
+msgctxt "field:account.payment.sepa.message,type:"
+msgid "Type"
+msgstr "Vrsta"
+
+msgctxt "field:account.payment.sepa.message,write_date:"
+msgid "Write Date"
+msgstr "Zapisano"
+
+msgctxt "field:account.payment.sepa.message,write_uid:"
+msgid "Write User"
+msgstr "Zapisal"
+
msgctxt "field:party.party,sepa_creditor_identifier:"
msgid "SEPA Creditor Identifier"
msgstr "Identifikacija upnika SEPA"
@@ -120,6 +200,10 @@ msgctxt "model:account.payment.sepa.mandate,name:"
msgid "SEPA Mandate"
msgstr "Soglasje SEPA"
+msgctxt "model:account.payment.sepa.message,name:"
+msgid "SEPA Message"
+msgstr "Sporočilo SEPA"
+
msgctxt "model:ir.action,name:act_mandate_form"
msgid "SEPA Mandates"
msgstr "Soglasja SEPA"
@@ -128,26 +212,191 @@ msgctxt "model:ir.action,name:act_mandate_form2"
msgid "Mandates"
msgstr "Soglasja"
+msgctxt "model:ir.action,name:act_message_form"
+msgid "SEPA Messages"
+msgstr "Sporočila SEPA"
+
+msgctxt "model:ir.action,name:report_mandate"
+msgid "Mandate"
+msgstr "Soglasje"
+
+msgctxt "model:ir.action.act_window.domain,name:act_message_form_domain_all"
+msgid "All"
+msgstr "Vse"
+
+msgctxt ""
+"model:ir.action.act_window.domain,name:act_message_form_domain_canceled"
+msgid "Canceled"
+msgstr "Preklicano"
+
+msgctxt "model:ir.action.act_window.domain,name:act_message_form_domain_done"
+msgid "Done"
+msgstr "Zaključeno"
+
+msgctxt "model:ir.action.act_window.domain,name:act_message_form_domain_draft"
+msgid "Draft"
+msgstr "V pripravi"
+
+msgctxt ""
+"model:ir.action.act_window.domain,name:act_message_form_domain_waiting"
+msgid "Waiting"
+msgstr "Čakajoče"
+
msgctxt ""
"model:ir.action.act_window.domain,name:act_move_line_form_domain_receivable_mandate"
msgid "Receivable with Mandate"
msgstr "Terjatve s soglasjem"
+msgctxt "model:ir.sequence.type,name:sequence_type_mandate"
+msgid "SEPA Mandate"
+msgstr "Soglasje SEPA"
+
msgctxt "model:ir.ui.menu,name:menu_mandate_form"
msgid "SEPA Mandates"
msgstr "Soglasja SEPA"
+msgctxt "model:ir.ui.menu,name:menu_message_form"
+msgid "SEPA Messages"
+msgstr "Sporočila SEPA"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "."
+msgstr "."
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Account number – IBAN"
+msgstr "Bančni račun"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid ""
+"As part of your rights, you are entitled to a refund from your bank under "
+"the terms and conditions of your agreement with your bank. A refund must be "
+"claimed within 8 weeks starting from the date on which your account was "
+"debited."
+msgstr ""
+"Kot del vaših pravic ste upravičeni do povračila s strani vaše banke pod "
+"pogoji dogovora z banko. Povračilo morate zahtevati v roku 8 tednov od "
+"datuma bremenitve vašega računa."
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "BIC"
+msgstr "BIC"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "By signing this mandate form, you authorize"
+msgstr "S podpisom tega obrazca se soglašate"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "City"
+msgstr "Mesto"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Country"
+msgstr "Država"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Creditor identifier"
+msgstr "Identifikator prejemnika plačila"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Creditor name"
+msgstr "Naziv prejemnika plačila"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Creditor's name"
+msgstr "Naziv prejemnika plačila"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Date"
+msgstr "Datum"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Direct Debit MANDATE"
+msgstr "Soglasje direktne obremenitve"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "E-Mail:"
+msgstr "E-pošta:"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Location"
+msgstr "Lokacija"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Name of the debtor"
+msgstr "Naziv plačnika"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "One-off payment"
+msgstr "Enkratno plačilo"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Phone:"
+msgstr "Telefon:"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Postal code"
+msgstr "Pošta"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Recurrent payment"
+msgstr "Periodično plačilo"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "SEPA"
+msgstr "SEPA"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Signature"
+msgstr "Podpis"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Signed at"
+msgstr "Podpisano v/na"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Street name and number"
+msgstr "Ulica"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Type of payment"
+msgstr "Vrsta plačila"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "VAT Number:"
+msgstr "DDV številka:"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Your account number"
+msgstr "Vaš račun"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Your address"
+msgstr "Vaš naslov"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid "Your name"
+msgstr "Vaše ime"
+
+msgctxt "odt:account.payment.sepa.mandate:"
+msgid ""
+"to send instructions to your bank to debit your account and your bank to "
+"debit your account in accordance with the instructions from"
+msgstr ""
+"za pošiljanje navodil vaši banki za bremenitev vašega računa in v skladu z "
+"navodili od"
+
msgctxt "selection:account.payment.journal,process_method:"
msgid "SEPA"
msgstr "SEPA"
msgctxt "selection:account.payment.journal,sepa_charge_bearer:"
msgid "Creditor"
-msgstr "Upnik"
+msgstr "Prejemnik plačila"
msgctxt "selection:account.payment.journal,sepa_charge_bearer:"
msgid "Debtor"
-msgstr "Dolžnik"
+msgstr "Plačnik"
msgctxt "selection:account.payment.journal,sepa_charge_bearer:"
msgid "Service Level"
@@ -157,29 +406,13 @@ msgctxt "selection:account.payment.journal,sepa_charge_bearer:"
msgid "Shared"
msgstr "Deljeno"
-msgctxt "selection:account.payment.journal,sepa_payable_flavor:"
-msgid ""
-msgstr ""
-
-msgctxt "selection:account.payment.journal,sepa_payable_flavor:"
-msgid "pain.001.001.03"
-msgstr "pain.001.001.03"
-
-msgctxt "selection:account.payment.journal,sepa_payable_flavor:"
-msgid "pain.001.001.05"
-msgstr "pain.001.001.05"
-
-msgctxt "selection:account.payment.journal,sepa_receivable_flavor:"
-msgid ""
-msgstr ""
-
-msgctxt "selection:account.payment.journal,sepa_receivable_flavor:"
-msgid "pain.008.001.02"
-msgstr "pain.008.001.02"
+msgctxt "selection:account.payment.sepa.mandate,scheme:"
+msgid "Business to Business"
+msgstr "B2B"
-msgctxt "selection:account.payment.journal,sepa_receivable_flavor:"
-msgid "pain.008.001.04"
-msgstr "pain.008.001.04"
+msgctxt "selection:account.payment.sepa.mandate,scheme:"
+msgid "Core"
+msgstr "Osnovna"
msgctxt "selection:account.payment.sepa.mandate,state:"
msgid "Canceled"
@@ -205,6 +438,30 @@ msgctxt "selection:account.payment.sepa.mandate,type:"
msgid "Recurrent"
msgstr "Periodično"
+msgctxt "selection:account.payment.sepa.message,state:"
+msgid "Canceled"
+msgstr "Preklicano"
+
+msgctxt "selection:account.payment.sepa.message,state:"
+msgid "Done"
+msgstr "Zaključeno"
+
+msgctxt "selection:account.payment.sepa.message,state:"
+msgid "Draft"
+msgstr "V pripravi"
+
+msgctxt "selection:account.payment.sepa.message,state:"
+msgid "Waiting"
+msgstr "Čakajoče"
+
+msgctxt "selection:account.payment.sepa.message,type:"
+msgid "IN"
+msgstr "Vhod"
+
+msgctxt "selection:account.payment.sepa.message,type:"
+msgid "OUT"
+msgstr "Izhod"
+
msgctxt "view:account.payment.journal:"
msgid "SEPA"
msgstr "SEPA"
@@ -237,6 +494,30 @@ msgctxt "view:account.payment.sepa.mandate:"
msgid "Validate"
msgstr "Odobritev"
+msgctxt "view:account.payment.sepa.message:"
+msgid "Cancel"
+msgstr "Prekliči"
+
+msgctxt "view:account.payment.sepa.message:"
+msgid "Do"
+msgstr "Izvedi"
+
+msgctxt "view:account.payment.sepa.message:"
+msgid "Draft"
+msgstr "V pripravi"
+
+msgctxt "view:account.payment.sepa.message:"
+msgid "SEPA Message"
+msgstr "Sporočilo SEPA"
+
+msgctxt "view:account.payment.sepa.message:"
+msgid "SEPA Messages"
+msgstr "Sporočila SEPA"
+
+msgctxt "view:account.payment.sepa.message:"
+msgid "Wait"
+msgstr "Čakanje"
+
msgctxt "view:party.party:"
msgid "SEPA"
msgstr "SEPA"
diff --git a/mandate.odt b/mandate.odt
new file mode 100644
index 0000000..ac7e364
Binary files /dev/null and b/mandate.odt differ
diff --git a/payment.py b/payment.py
index 28af64e..dea5935 100644
--- a/payment.py
+++ b/payment.py
@@ -3,19 +3,26 @@
import datetime
import os
from itertools import groupby
+from io import BytesIO
import genshi
import genshi.template
+from lxml import etree
from sql import Literal
from trytond.pool import PoolMeta, Pool
from trytond.model import ModelSQL, ModelView, Workflow, fields
from trytond.pyson import Eval, If
from trytond.transaction import Transaction
-from trytond.tools import reduce_ids
+from trytond.tools import reduce_ids, grouped_slice
+from trytond import backend
+from trytond.modules.company import CompanyReport
+
+from .sepa_handler import CAMT054
__metaclass__ = PoolMeta
-__all__ = ['Journal', 'Group', 'Payment', 'Mandate']
+__all__ = ['Journal', 'Group', 'Payment', 'Mandate', 'Message',
+ 'MandateReport']
class Journal:
@@ -40,6 +47,7 @@ class Journal:
'required': Eval('process_method') == 'sepa',
'invisible': Eval('process_method') != 'sepa',
},
+ translate=False,
depends=['process_method'])
sepa_receivable_flavor = fields.Selection([
(None, ''),
@@ -49,6 +57,7 @@ class Journal:
'required': Eval('process_method') == 'sepa',
'invisible': Eval('process_method') != 'sepa',
},
+ translate=False,
depends=['process_method'])
sepa_batch_booking = fields.Boolean('Batch Booking', states={
'invisible': Eval('process_method') != 'sepa',
@@ -104,11 +113,13 @@ loader = genshi.template.TemplateLoader(
class Group:
__name__ = 'account.payment.group'
- sepa_message = fields.Text('SEPA Message', readonly=True, states={
- 'invisible': ~Eval('sepa_message'),
- })
- sepa_filename = fields.Function(fields.Char('SEPA Filename'),
- 'get_sepa_filename')
+ sepa_messages = fields.One2Many('account.payment.sepa.message', 'origin',
+ 'SEPA Messages', readonly=True,
+ domain=[('company', '=', Eval('company', -1))],
+ states={
+ 'invisible': ~Eval('sepa_messages'),
+ },
+ depends=['company'])
@classmethod
def __setup__(cls):
@@ -117,9 +128,6 @@ class Group:
'no_mandate': 'No valid mandate for payment "%s"',
})
- def get_sepa_filename(self, name):
- return self.rec_name + '.xml'
-
def get_sepa_template(self):
if self.kind == 'payable':
return loader.load('%s.xml' % self.journal.sepa_payable_flavor)
@@ -129,20 +137,28 @@ class Group:
def process_sepa(self):
pool = Pool()
Payment = pool.get('account.payment')
+ Message = pool.get('account.payment.sepa.message')
if self.kind == 'receivable':
payments = [p for p in self.payments if not p.sepa_mandate]
mandates = Payment.get_sepa_mandates(payments)
for payment, mandate in zip(payments, mandates):
if not mandate:
self.raise_user_error('no_mandate', payment.rec_name)
+ # Write one by one becasue mandate.sequence_type must be
+ # recomputed each time
Payment.write([payment], {
'sepa_mandate': mandate,
+ 'sepa_mandate_sequence_type': mandate.sequence_type,
})
tmpl = self.get_sepa_template()
if not tmpl:
raise NotImplementedError
- self.sepa_message = tmpl.generate(group=self,
+ if not self.sepa_messages:
+ self.sepa_messages = ()
+ message = tmpl.generate(group=self,
datetime=datetime).filter(remove_comment).render()
+ message = Message(message=message, type='in', state='waiting')
+ self.sepa_messages += (message,)
@property
def sepa_initiating_party(self):
@@ -151,7 +167,8 @@ class Group:
def sepa_group_payment_key(self, payment):
key = (('date', payment.date),)
if self.kind == 'receivable':
- key += (('sequence_type', payment.sepa_mandate.sequence_type),)
+ key += (('sequence_type', payment.sepa_mandate_sequence_type),)
+ key += (('scheme', payment.sepa_mandate.scheme),)
return key
def sepa_group_payment_id(self, key):
@@ -177,6 +194,25 @@ class Payment:
('party', '=', Eval('party', -1)),
],
depends=['party'])
+ sepa_mandate_sequence_type = fields.Char('Mandate Sequence Type',
+ readonly=True)
+ sepa_return_reason_code = fields.Char('Return Reason Code', readonly=True,
+ states={
+ 'invisible': (~Eval('sepa_return_reason_code')
+ & (Eval('state') != 'failed')),
+ },
+ depends=['state'])
+ sepa_return_reason_information = fields.Text('Return Reason Information',
+ readonly=True,
+ states={
+ 'invisible': (~Eval('sepa_return_reason_information')
+ & (Eval('state') != 'failed')),
+ },
+ depends=['state'])
+ sepa_end_to_end_id = fields.Function(fields.Char('SEPA End To End ID'),
+ 'get_sepa_end_to_end_id', searcher='search_end_to_end_id')
+ sepa_instruction_id = fields.Function(fields.Char('SEPA Instruction ID'),
+ 'get_sepa_instruction_id', searcher='search_sepa_instruction_id')
@classmethod
def get_sepa_mandates(cls, payments):
@@ -190,11 +226,21 @@ class Payment:
mandates.append(mandate)
return mandates
- @property
- def sepa_end_to_end_id(self):
+ def get_sepa_end_to_end_id(self, name):
return str(self.id)
- sepa_instruction_id = sepa_end_to_end_id
+ @classmethod
+ def search_end_to_end_id(cls, name, domain):
+ table = cls.__table__()
+ _, operator, value = domain
+ cast = cls.sepa_end_to_end_id.sql_type().base
+ Operator = fields.SQL_OPERATORS[operator]
+ query = table.select(table.id,
+ where=Operator(table.id.cast(cast), value))
+ return [('id', 'in', query)]
+
+ get_sepa_instruction_id = get_sepa_end_to_end_id
+ search_sepa_instruction_id = search_end_to_end_id
@property
def sepa_remittance_information(self):
@@ -236,10 +282,12 @@ class Mandate(Workflow, ModelSQL, ModelView):
depends=['state', 'party'])
identification = fields.Char('Identification', size=35,
states={
- 'readonly': Eval('state').in_(['validated', 'canceled']),
+ 'readonly': Eval('identification_readonly', True),
'required': Eval('state') == 'validated',
},
- depends=['state'])
+ depends=['state', 'identification_readonly'])
+ identification_readonly = fields.Function(fields.Boolean(
+ 'Identification Readonly'), 'get_identification_readonly')
company = fields.Many2One('company.company', 'Company', required=True,
select=True,
domain=[
@@ -258,6 +306,11 @@ class Mandate(Workflow, ModelSQL, ModelView):
'readonly': Eval('state').in_(['validated', 'canceled']),
},
depends=['state'])
+ scheme = fields.Selection([
+ ('CORE', 'Core'),
+ ('B2B', 'Business to Business'),
+ ], 'Scheme', required=True)
+ scheme_string = scheme.translated('scheme')
signature_date = fields.Date('Signature Date',
states={
'readonly': Eval('state').in_(['validated', 'canceled']),
@@ -299,6 +352,11 @@ class Mandate(Workflow, ModelSQL, ModelView):
'invisible': Eval('state') != 'requested',
},
})
+ cls._sql_constraints = [
+ ('identification_unique', 'UNIQUE(company, identification)',
+ 'The identification of the SEPA mandate must be unique '
+ 'in a company.'),
+ ]
cls._error_messages.update({
'delete_draft_canceled': ('You can not delete mandate "%s" '
'because it is not in draft or canceled state.'),
@@ -313,9 +371,64 @@ class Mandate(Workflow, ModelSQL, ModelView):
return 'recurrent'
@staticmethod
+ def default_scheme():
+ return 'CORE'
+
+ @staticmethod
def default_state():
return 'draft'
+ @staticmethod
+ def default_identification_readonly():
+ pool = Pool()
+ Configuration = pool.get('account.configuration')
+ config = Configuration(1)
+ return bool(config.sepa_mandate_sequence)
+
+ def get_identification_readonly(self, name):
+ return bool(self.identification)
+
+ @classmethod
+ def create(cls, vlist):
+ pool = Pool()
+ Sequence = pool.get('ir.sequence')
+ Configuration = pool.get('account.configuration')
+
+ config = Configuration(1)
+ vlist = [v.copy() for v in vlist]
+ for values in vlist:
+ if (config.sepa_mandate_sequence
+ and not values.get('identification')):
+ values['identification'] = Sequence.get_id(
+ config.sepa_mandate_sequence.id)
+ # Prevent raising false unique constraint
+ if values.get('identification') == '':
+ values['identification'] = None
+ return super(Mandate, cls).create(vlist)
+
+ @classmethod
+ def write(cls, *args):
+ actions = iter(args)
+ args = []
+ for mandates, values in zip(actions, actions):
+ # Prevent raising false unique constraint
+ if values.get('identification') == '':
+ values = values.copy()
+ values['identification'] = None
+ args.extend((mandates, values))
+ super(Mandate, cls).write(*args)
+
+ @classmethod
+ def copy(cls, mandates, default=None):
+ if default is None:
+ default = {}
+ default = default.copy()
+ default.setdefault('state', 'draft')
+ default.setdefault('payments', [])
+ default.setdefault('signature_date', None)
+ default.setdefault('identification', None)
+ return super(Mandate, cls).copy(mandates, default=default)
+
@property
def is_valid(self):
if self.state == 'validated':
@@ -330,7 +443,7 @@ class Mandate(Workflow, ModelSQL, ModelView):
def sequence_type(self):
if self.type == 'one-off':
return 'OOFF'
- elif len(self.payments) == 1:
+ elif not self.payments:
return 'FRST'
# TODO manage FNAL
else:
@@ -342,11 +455,9 @@ class Mandate(Workflow, ModelSQL, ModelView):
Payment = pool.get('account.payment')
payment = Payment.__table__
cursor = Transaction().cursor
- in_max = cursor.IN_MAX
has_payments = dict.fromkeys([m.id for m in mandates], False)
- for i in range(0, len(mandates), in_max):
- sub_ids = [i.id for i in mandates[i:i + in_max]]
+ for sub_ids in grouped_slice(mandates):
red_sql = reduce_ids(payment.sepa_mandate, sub_ids)
cursor.execute(*payment.select(payment.sepa_mandate, Literal(True),
where=red_sql,
@@ -386,3 +497,186 @@ class Mandate(Workflow, ModelSQL, ModelView):
if mandate.state not in ('draft', 'canceled'):
cls.raise_user_error('delete_draft_canceled', mandate.rec_name)
super(Mandate, cls).delete(mandates)
+
+
+class MandateReport(CompanyReport):
+ __name__ = 'account.payment.sepa.mandate'
+
+
+class Message(Workflow, ModelSQL, ModelView):
+ 'SEPA Message'
+ __name__ = 'account.payment.sepa.message'
+ _states = {
+ 'readonly': Eval('state') != 'draft',
+ }
+ _depends = ['state']
+ message = fields.Text('Message', states=_states, depends=_depends)
+ filename = fields.Function(fields.Char('Filename'), 'get_filename')
+ type = fields.Selection([
+ ('in', 'IN'),
+ ('out', 'OUT'),
+ ], 'Type', required=True, states=_states, depends=_depends)
+ company = fields.Many2One('company.company', 'Company', required=True,
+ select=True,
+ domain=[
+ ('id', If(Eval('context', {}).contains('company'), '=', '!='),
+ Eval('context', {}).get('company', -1)),
+ ],
+ states={
+ 'readonly': Eval('state') != 'draft',
+ },
+ depends=['state'])
+ origin = fields.Reference('Origin', selection='get_origin', select=True,
+ states=_states, depends=_depends)
+ state = fields.Selection([
+ ('draft', 'Draft'),
+ ('waiting', 'Waiting'),
+ ('done', 'Done'),
+ ('canceled', 'Canceled'),
+ ], 'State', readonly=True, select=True)
+
+ @classmethod
+ def __setup__(cls):
+ super(Message, cls).__setup__()
+ cls._transitions |= {
+ ('draft', 'waiting'),
+ ('waiting', 'done'),
+ ('waiting', 'draft'),
+ ('draft', 'canceled'),
+ ('waiting', 'canceled'),
+ }
+ cls._buttons.update({
+ 'cancel': {
+ 'invisible': ~Eval('state').in_(['draft', 'waiting']),
+ },
+ 'draft': {
+ 'invisible': Eval('state') != 'waiting',
+ },
+ 'wait': {
+ 'invisible': Eval('state') != 'draft',
+ },
+ 'do': {
+ 'invisible': Eval('state') != 'waiting',
+ },
+ })
+
+ @classmethod
+ def __register__(cls, module_name):
+ TableHandler = backend.get('TableHandler')
+ cursor = Transaction().cursor
+ pool = Pool()
+ Group = pool.get('account.payment.group')
+
+ super(Message, cls).__register__(module_name)
+
+ # Migration from 3.2
+ if TableHandler.table_exist(cursor, Group._table):
+ group_table = TableHandler(cursor, Group, module_name)
+ if group_table.column_exist('sepa_message'):
+ group = Group.__table__()
+ table = cls.__table__()
+ cursor.execute(*group.select(
+ group.id, group.sepa_message, group.company))
+ for group_id, message, company_id in cursor.fetchall():
+ cursor.execute(*table.insert(
+ [table.message, table.type, table.company,
+ table.origin, table.state],
+ [[message, 'out', company_id,
+ 'account.payment.group,%s' % group_id,
+ 'done']]))
+ group_table.drop_column('sepa_message')
+
+ @staticmethod
+ def default_type():
+ return 'in'
+
+ @staticmethod
+ def default_company():
+ return Transaction().context.get('company')
+
+ @staticmethod
+ def default_state():
+ return 'draft'
+
+ def get_filename(self, name):
+ pool = Pool()
+ Group = pool.get('account.payment.group')
+ if isinstance(self.origin, Group):
+ return self.origin.rec_name + '.xml'
+
+ @staticmethod
+ def _get_origin():
+ 'Return list of Model names for origin Reference'
+ return ['account.payment.group']
+
+ @classmethod
+ def get_origin(cls):
+ IrModel = Pool().get('ir.model')
+ models = cls._get_origin()
+ models = IrModel.search([
+ ('model', 'in', models),
+ ])
+ return [(None, '')] + [(m.model, m.name) for m in models]
+
+ @classmethod
+ @ModelView.button
+ @Workflow.transition('draft')
+ def draft(cls, messages):
+ pass
+
+ @classmethod
+ @ModelView.button
+ @Workflow.transition('waiting')
+ def wait(cls, messages):
+ pass
+
+ @classmethod
+ @ModelView.button
+ @Workflow.transition('done')
+ def do(cls, messages):
+ for message in messages:
+ if message.type == 'in':
+ message.parse()
+ else:
+ message.send()
+
+ @classmethod
+ @ModelView.button
+ @Workflow.transition('canceled')
+ def cancel(cls, messages):
+ pass
+
+ @staticmethod
+ def _get_handlers():
+ pool = Pool()
+ Payment = pool.get('account.payment')
+ return {
+ 'urn:iso:std:iso:20022:tech:xsd:camt.054.001.01':
+ lambda f: CAMT054(f, Payment),
+ 'urn:iso:std:iso:20022:tech:xsd:camt.054.001.02':
+ lambda f: CAMT054(f, Payment),
+ 'urn:iso:std:iso:20022:tech:xsd:camt.054.001.03':
+ lambda f: CAMT054(f, Payment),
+ 'urn:iso:std:iso:20022:tech:xsd:camt.054.001.04':
+ lambda f: CAMT054(f, Payment),
+ }
+
+ @staticmethod
+ def get_namespace(message):
+ f = BytesIO(message)
+ for _, element in etree.iterparse(f, events=('start',)):
+ tag = etree.QName(element)
+ if tag.localname == 'Document':
+ return tag.namespace
+
+ def parse(self):
+ message = self.message.encode('utf-8')
+ f = BytesIO(message)
+ namespace = self.get_namespace(message)
+ handlers = self._get_handlers()
+ if namespace not in handlers:
+ raise # TODO UserError
+ handlers[namespace](f)
+
+ def send(self):
+ pass
diff --git a/payment.xml b/payment.xml
index 7f81251..751007e 100644
--- a/payment.xml
+++ b/payment.xml
@@ -9,18 +9,18 @@ this repository contains the full copyright notices and license terms. -->
<field name="name">payment_journal_form</field>
</record>
- <record model="ir.ui.view" id="group_list">
- <field name="model">account.payment.group</field>
- <field name="inherit" ref="account_payment.payment_group_view_list"/>
- <field name="name">payment_group_list</field>
- </record>
-
<record model="ir.ui.view" id="group_form">
<field name="model">account.payment.group</field>
<field name="inherit" ref="account_payment.payment_group_view_form"/>
<field name="name">payment_group_form</field>
</record>
+ <record model="ir.ui.view" id="payment_view_form">
+ <field name="model">account.payment</field>
+ <field name="inherit" ref="account_payment.payment_view_form"/>
+ <field name="name">payment_form</field>
+ </record>
+
<record model="ir.ui.view" id="mandate_view_form">
<field name="model">account.payment.sepa.mandate</field>
<field name="type">form</field>
@@ -76,5 +76,119 @@ this repository contains the full copyright notices and license terms. -->
<field name="perm_delete" eval="True"/>
</record>
+ <record model="ir.sequence.type" id="sequence_type_mandate">
+ <field name="name">SEPA Mandate</field>
+ <field name="code">account.payment.sepa.mandate</field>
+ </record>
+
+ <record model="ir.sequence.type-res.group"
+ id="sequence_type_mandate_group_admin">
+ <field name="sequence_type" ref="sequence_type_mandate"/>
+ <field name="group" ref="res.group_admin"/>
+ </record>
+ <record model="ir.sequence.type-res.group"
+ id="sequence_type_mandate_group_account_admin">
+ <field name="sequence_type" ref="sequence_type_mandate"/>
+ <field name="group" ref="account.group_account_admin"/>
+ </record>
+
+ <record model="ir.ui.view" id="message_view_form">
+ <field name="model">account.payment.sepa.message</field>
+ <field name="type">form</field>
+ <field name="name">message_form</field>
+ </record>
+
+ <record model="ir.ui.view" id="message_view_list">
+ <field name="model">account.payment.sepa.message</field>
+ <field name="type">tree</field>
+ <field name="name">message_list</field>
+ </record>
+
+ <record model="ir.action.act_window" id="act_message_form">
+ <field name="name">SEPA Messages</field>
+ <field name="res_model">account.payment.sepa.message</field>
+ </record>
+ <record model="ir.action.act_window.view" id="act_message_form_view1">
+ <field name="sequence" eval="10"/>
+ <field name="view" ref="message_view_list"/>
+ <field name="act_window" ref="act_message_form"/>
+ </record>
+ <record model="ir.action.act_window.view" id="act_message_form_view2">
+ <field name="sequence" eval="20"/>
+ <field name="view" ref="message_view_form"/>
+ <field name="act_window" ref="act_message_form"/>
+ </record>
+ <record model="ir.action.act_window.domain" id="act_message_form_domain_draft">
+ <field name="name">Draft</field>
+ <field name="sequence" eval="10"/>
+ <field name="domain">[('state', '=', 'draft')]</field>
+ <field name="act_window" ref="act_message_form"/>
+ </record>
+ <record model="ir.action.act_window.domain" id="act_message_form_domain_waiting">
+ <field name="name">Waiting</field>
+ <field name="sequence" eval="20"/>
+ <field name="domain">[('state', '=', 'waiting')]</field>
+ <field name="act_window" ref="act_message_form"/>
+ </record>
+ <record model="ir.action.act_window.domain" id="act_message_form_domain_done">
+ <field name="name">Done</field>
+ <field name="sequence" eval="30"/>
+ <field name="domain">[('state', '=', 'done')]</field>
+ <field name="act_window" ref="act_message_form"/>
+ </record>
+ <record model="ir.action.act_window.domain" id="act_message_form_domain_canceled">
+ <field name="name">Canceled</field>
+ <field name="sequence" eval="40"/>
+ <field name="domain">[('state', '=', 'canceled')]</field>
+ <field name="act_window" ref="act_message_form"/>
+ </record>
+ <record model="ir.action.act_window.domain" id="act_message_form_domain_all">
+ <field name="name">All</field>
+ <field name="sequence" eval="9999"/>
+ <field name="act_window" ref="act_message_form"/>
+ </record>
+
+ <menuitem parent="account_payment.menu_payments" sequence="40"
+ action="act_message_form" id="menu_message_form"/>
+
+ <record model="ir.rule.group" id="rule_group_message">
+ <field name="model"
+ search="[('model', '=', 'account.payment.sepa.message')]"/>
+ <field name="global_p" eval="True"/>
+ </record>
+ <record model="ir.rule" id="rule_message1">
+ <field name="domain">[('company', '=', user.company.id if user.company else None)]</field>
+ <field name="rule_group" ref="rule_group_message"/>
+ </record>
+
+ <record model="ir.model.access" id="access_message_account_admin">
+ <field name="model" search="[('model', '=', 'account.payment.sepa.message')]"/>
+ <field name="group" ref="account.group_account_admin"/>
+ <field name="perm_read" eval="True"/>
+ <field name="perm_write" eval="True"/>
+ <field name="perm_create" eval="True"/>
+ <field name="perm_delete" eval="True"/>
+ </record>
+ <record model="ir.model.access" id="access_mmessage_account_payment">
+ <field name="model" search="[('model', '=', 'account.payment.sepa.message')]"/>
+ <field name="group" ref="account_payment.group_payment"/>
+ <field name="perm_read" eval="True"/>
+ <field name="perm_write" eval="True"/>
+ <field name="perm_create" eval="True"/>
+ <field name="perm_delete" eval="True"/>
+ </record>
+
+ <record model="ir.action.report" id="report_mandate">
+ <field name="name">Mandate</field>
+ <field name="model">account.payment.sepa.mandate</field>
+ <field name="report_name">account.payment.sepa.mandate</field>
+ <field name="report">account_payment_sepa/mandate.odt</field>
+ <field name="style">company/header_A4.odt</field>
+ </record>
+ <record model="ir.action.keyword" id="report_mandate_keyword">
+ <field name="keyword">form_print</field>
+ <field name="model">account.payment.sepa.mandate,-1</field>
+ <field name="action" ref="report_mandate"/>
+ </record>
</data>
</tryton>
diff --git a/sepa_handler.py b/sepa_handler.py
new file mode 100644
index 0000000..7c4271c
--- /dev/null
+++ b/sepa_handler.py
@@ -0,0 +1,98 @@
+#This file is part of Tryton. The COPYRIGHT file at the top level of
+#this repository contains the full copyright notices and license terms.
+from lxml import etree
+
+__all__ = ['SEPAHandler', 'CAMT054']
+
+
+class SEPAHandler(object):
+
+ def __init__(self, source):
+ for event, element in etree.iterparse(source):
+ self.handle(event, element)
+
+ def handle(self, event, element):
+ raise NotImplementedError
+
+
+class CAMT054(SEPAHandler):
+ msg_id = None
+
+ def __init__(self, source, Payment):
+ self.Payment = Payment
+ super(CAMT054, self).__init__(source)
+
+ def handle(self, event, element):
+ tag = etree.QName(element)
+ if tag.localname == 'GrpHdr':
+ self.msg_id = element.find('./{%s}MsgId' % tag.namespace).text
+ element.clear()
+ elif tag.localname == 'Ntry':
+ self.handle_entry(element)
+ element.clear()
+
+ def handle_entry(self, element):
+ payment = self.get_payment(element)
+ if self.is_returned(element):
+ self.set_return_information(payment, element)
+ payment.save()
+ self.Payment.fail([payment])
+ else:
+ self.Payment.succeed([payment])
+
+ def get_payment_kind(self, element):
+ tag = etree.QName(element)
+ return self._kinds[
+ element.find('./{%s}CdtDbtInd' % tag.namespace).text]
+ _kinds = {
+ 'CRDT': 'payable',
+ 'DBIT': 'receivable',
+ }
+
+ def get_payment(self, element):
+ tag = etree.QName(element)
+ details = element.find('./{%s}NtryDtls' % tag.namespace)
+ if details is None:
+ # Version 1 doesn't have NtryDtls but directly TxDtls
+ details = element.find('./{%s}TxDtls' % tag.namespace)
+ if details is None:
+ return
+ instr_id = details.find('.//{%s}InstrId' % tag.namespace)
+ if instr_id is not None:
+ payment, = self.Payment.search([
+ ('sepa_instuction_id', '=', instr_id.text),
+ ('kind', '=', self.get_payment_kind(element)),
+ ])
+ return payment
+ end_to_end_id = details.find('.//{%s}EndToEndId' % tag.namespace)
+ if end_to_end_id is not None:
+ payment, = self.Payment.search([
+ ('sepa_end_to_end_id', '=', end_to_end_id.text),
+ ('kind', '=', self.get_payment_kind(element)),
+ ])
+ return payment
+
+ def is_returned(self, element):
+ tag = etree.QName(element)
+ details = element.find('./{%s}NtryDtls' % tag.namespace)
+ if details is None:
+ return
+ return_reason = details.find('.//{%s}RtrInf' % tag.namespace)
+ if return_reason is None:
+ return False
+ return True
+
+ def set_return_information(self, payment, element):
+ tag = etree.QName(element)
+
+ reason_code = element.find(
+ './{%(ns)s}NtryDtls//{%(ns)s}RtrInf/{%(ns)s}Rsn/{%(ns)s}Cd'
+ % {'ns': tag.namespace})
+ if reason_code is not None:
+ payment.sepa_return_reason_code = reason_code.text
+
+ reason_information = element.find(
+ './{%(ns)s}NtryDtls//{%(ns)s}RtrInf/{%(ns)s}AddtlInf'
+ % {'ns': tag.namespace})
+ if reason_information is not None:
+ payment.sepa_return_reason_information = reason_information.text
diff --git a/setup.py b/setup.py
index 863416c..545faeb 100644
--- a/setup.py
+++ b/setup.py
@@ -47,6 +47,8 @@ for dep in info.get('depends', []):
requires.append(get_require_version('trytond_%s' % dep))
requires.append(get_require_version('trytond'))
+tests_require = ['mock']
+
setup(name=name,
version=version,
description='Tryton module for SEPA payment',
@@ -98,4 +100,5 @@ setup(name=name,
""",
test_suite='tests',
test_loader='trytond.test_loader:Loader',
+ tests_require=tests_require,
)
diff --git a/template/base.xml b/template/base.xml
index ab9b517..c6830af 100644
--- a/template/base.xml
+++ b/template/base.xml
@@ -2,7 +2,7 @@
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<py:strip xmlns:py="http://genshi.edgewall.org/">
- <py:def function="PartyIdentification(party)">
+ <py:def function="PartyIdentification(party, id=True)">
<!-- EPC limits to 70 instead of 140 -->
<Nm>${party.name[:70]}</Nm>
<py:with vars="address = party.address_get()">
@@ -10,7 +10,7 @@ this repository contains the full copyright notices and license terms. -->
${PostalAddress(address)}
</PstlAdr>
</py:with>
- <Id py:if="party.sepa_creditor_identifier_used">
+ <Id py:if="id and party.sepa_creditor_identifier_used">
<PrvtId>
<Othr>
<Id>${party.sepa_creditor_identifier_used}</Id>
diff --git a/template/pain.008.001.02.xml b/template/pain.008.001.02.xml
index d7a4fea..002db1a 100644
--- a/template/pain.008.001.02.xml
+++ b/template/pain.008.001.02.xml
@@ -53,7 +53,7 @@ this repository contains the full copyright notices and license terms. -->
<!-- Prtry -->
</SvcLvl>
<LclInstrm>
- <Cd>CORE</Cd>
+ <Cd>${key['scheme']}</Cd>
<!-- Prtry -->
</LclInstrm>
<SeqTp>${key['sequence_type']}</SeqTp>
@@ -61,7 +61,7 @@ this repository contains the full copyright notices and license terms. -->
</PmtTpInf>
<ReqdColltnDt>${key['date'].isoformat()}</ReqdColltnDt>
<Cdtr>
- ${PartyIdentification(group.company.party)}
+ ${PartyIdentification(group.company.party, id=False)}
</Cdtr>
<CdtrAcct>
${Account(group.journal.sepa_bank_account_number)}
diff --git a/template/pain.008.001.04.xml b/template/pain.008.001.04.xml
index 3d18e10..2ec8914 100644
--- a/template/pain.008.001.04.xml
+++ b/template/pain.008.001.04.xml
@@ -34,7 +34,7 @@ this repository contains the full copyright notices and license terms. -->
<!-- Prtry -->
</SvcLvl>
<LclInstrm>
- <Cd>CORE</Cd>
+ <Cd>${key['scheme']}</Cd>
<!-- Prtry -->
</LclInstrm>
<SeqTp>${key['sequence_type']}</SeqTp>
@@ -42,7 +42,7 @@ this repository contains the full copyright notices and license terms. -->
</PmtTpInf>
<ReqdColltnDt>${key['date'].isoformat()}</ReqdColltnDt>
<Cdtr>
- ${PartyIdentification(group.company.party)}
+ ${PartyIdentification(group.company.party, id=False)}
</Cdtr>
<CdtrAcct>
${Account(group.journal.sepa_bank_account_number)}
diff --git a/tests/camt.054.001.01.xsd b/tests/camt.054.001.01.xsd
new file mode 100644
index 0000000..e73ea4b
--- /dev/null
+++ b/tests/camt.054.001.01.xsd
@@ -0,0 +1,1111 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--Generated by SWIFTStandards Workstation (build:R6.0.1.1) on 2007 Mar 28 10:37:39-->
+<xs:schema elementFormDefault="qualified"
+ targetNamespace="urn:iso:std:iso:20022:tech:xsd:camt.054.001.01"
+ xmlns="urn:iso:std:iso:20022:tech:xsd:camt.054.001.01" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+ <xs:element name="Document" type="Document"/>
+ <xs:complexType name="AccountIdentification3Choice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="IBAN" type="IBANIdentifier"/>
+ <xs:element name="BBAN" type="BBANIdentifier"/>
+ <xs:element name="UPIC" type="UPICIdentifier"/>
+ <xs:element name="PrtryAcct" type="SimpleIdentificationInformation2"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="AccountNotification1">
+ <xs:sequence>
+ <xs:element name="Id" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="ElctrncSeqNb" type="Number"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="LglSeqNb" type="Number"/>
+ <xs:element name="CreDtTm" type="ISODateTime"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="FrToDt" type="DateTimePeriodDetails"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CpyDplctInd" type="CopyDuplicate1Code"/>
+ <xs:element name="Acct" type="CashAccount13"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RltdAcct" type="CashAccount7"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TxsSummry" type="TotalTransactions1"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Ntry" type="NotificationEntry1"/>
+ <xs:element maxOccurs="1" minOccurs="0"
+ name="AddtlNtfctnInf" type="Max500Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="AddressType2Code">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="ADDR"/>
+ <xs:enumeration value="PBOX"/>
+ <xs:enumeration value="HOME"/>
+ <xs:enumeration value="BIZZ"/>
+ <xs:enumeration value="MLTO"/>
+ <xs:enumeration value="DLVY"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="AlternateSecurityIdentification2">
+ <xs:sequence>
+ <xs:element name="Tp" type="Max35Text"/>
+ <xs:element name="Id" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="AmountAndCurrencyExchange2">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="InstdAmt" type="AmountAndCurrencyExchangeDetails1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TxAmt" type="AmountAndCurrencyExchangeDetails1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CntrValAmt" type="AmountAndCurrencyExchangeDetails1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="AnncdPstngAmt" type="AmountAndCurrencyExchangeDetails1"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0"
+ name="PrtryAmt" type="AmountAndCurrencyExchangeDetails2"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="AmountAndCurrencyExchangeDetails1">
+ <xs:sequence>
+ <xs:element name="Amt" type="CurrencyAndAmount"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CcyXchg" type="CurrencyExchange3"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="AmountAndCurrencyExchangeDetails2">
+ <xs:sequence>
+ <xs:element name="Tp" type="Max35Text"/>
+ <xs:element name="Amt" type="CurrencyAndAmount"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CcyXchg" type="CurrencyExchange3"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="AmountRangeBoundary1">
+ <xs:sequence>
+ <xs:element name="BdryAmt" type="ImpliedCurrencyAndAmount"/>
+ <xs:element name="Incl" type="YesNoIndicator"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="BBANIdentifier">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[a-zA-Z0-9]{1,30}"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="BEIIdentifier">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="BICIdentifier">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="BankToCustomerDebitCreditNotificationV01">
+ <xs:sequence>
+ <xs:element name="GrpHdr" type="GroupHeader23"/>
+ <xs:element maxOccurs="unbounded" minOccurs="1"
+ name="Ntfctn" type="AccountNotification1"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="BankTransactionCodeStructure1">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="Domn" type="BankTransactionCodeStructure2"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Prtry" type="ProprietaryBankTransactionCodeStructure1"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="BankTransactionCodeStructure2">
+ <xs:sequence>
+ <xs:element name="Cd" type="ExternalBankTransactionDomainCode"/>
+ <xs:element name="Fmly" type="BankTransactionCodeStructure3"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="BankTransactionCodeStructure3">
+ <xs:sequence>
+ <xs:element name="Cd" type="ExternalBankTransactionFamilyCode"/>
+ <xs:element name="SubFmlyCd" type="ExternalBankTransactionSubFamilyCode"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="BaseOneRate">
+ <xs:restriction base="xs:decimal">
+ <xs:fractionDigits value="10"/>
+ <xs:totalDigits value="11"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="BatchInformation1">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="MsgId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="PmtInfId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="NbOfTxs" type="Max15NumericText"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="BranchAndFinancialInstitutionIdentification3">
+ <xs:sequence>
+ <xs:element name="FinInstnId" type="FinancialInstitutionIdentification5Choice"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="BrnchId" type="BranchData"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="BranchData">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="Id" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="PstlAdr" type="PostalAddress1"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="CHIPSUniversalIdentifier">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="CH[0-9]{6,6}"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="CashAccount13">
+ <xs:sequence>
+ <xs:element name="Id" type="AccountIdentification3Choice"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="CashAccountType2"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Ccy" type="CurrencyCode"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max70Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Ownr" type="PartyIdentification8"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Svcr" type="BranchAndFinancialInstitutionIdentification3"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="CashAccount7">
+ <xs:sequence>
+ <xs:element name="Id" type="AccountIdentification3Choice"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="CashAccountType2"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Ccy" type="CurrencyCode"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max70Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="CashAccountType2">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="Cd" type="CashAccountType4Code"/>
+ <xs:element name="Prtry" type="Max35Text"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="CashAccountType4Code">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="CASH"/>
+ <xs:enumeration value="CHAR"/>
+ <xs:enumeration value="COMM"/>
+ <xs:enumeration value="TAXE"/>
+ <xs:enumeration value="CISH"/>
+ <xs:enumeration value="TRAS"/>
+ <xs:enumeration value="SACC"/>
+ <xs:enumeration value="CACC"/>
+ <xs:enumeration value="SVGS"/>
+ <xs:enumeration value="ONDP"/>
+ <xs:enumeration value="MGLD"/>
+ <xs:enumeration value="NREX"/>
+ <xs:enumeration value="MOMA"/>
+ <xs:enumeration value="LOAN"/>
+ <xs:enumeration value="SLRY"/>
+ <xs:enumeration value="ODFT"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="CashBalanceAvailability1">
+ <xs:sequence>
+ <xs:element name="Dt" type="CashBalanceAvailabilityDate1"/>
+ <xs:element name="Amt" type="CurrencyAndAmount"/>
+ <xs:element name="CdtDbtInd" type="CreditDebitCode"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="CashBalanceAvailabilityDate1">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="NbOfDays" type="Max15PlusSignedNumericText"/>
+ <xs:element name="ActlDt" type="ISODate"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="ChargeBearerType1Code">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="DEBT"/>
+ <xs:enumeration value="CRED"/>
+ <xs:enumeration value="SHAR"/>
+ <xs:enumeration value="SLEV"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ChargeType1Code">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="BRKF"/>
+ <xs:enumeration value="COMM"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="ChargeTypeChoice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="Cd" type="ChargeType1Code"/>
+ <xs:element name="PrtryCd" type="Max4AlphaNumericText"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ChargesInformation3">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0"
+ name="TtlChrgsAndTaxAmt" type="CurrencyAndAmount"/>
+ <xs:element name="Amt" type="CurrencyAndAmount"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="ChargeTypeChoice"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Rate" type="PercentageRate"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Br" type="ChargeBearerType1Code"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Pty" type="BranchAndFinancialInstitutionIdentification3"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Tax" type="TaxCharges1"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ClearingSystemMemberIdentification3Choice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="Id" type="ExternalClearingSystemMemberCode"/>
+ <xs:element name="Prtry" type="Max35Text"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="CopyDuplicate1Code">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="CODU"/>
+ <xs:enumeration value="COPY"/>
+ <xs:enumeration value="DUPL"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="CorporateAction1">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="Cd" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Nb" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Prtry" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="CountryCode">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[A-Z]{2,2}"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="CreditDebitCode">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="CRDT"/>
+ <xs:enumeration value="DBIT"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="CreditorReferenceInformation1">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="CdtrRefTp" type="CreditorReferenceType1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CdtrRef" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="CreditorReferenceType1">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="Cd" type="DocumentType3Code"/>
+ <xs:element name="Prtry" type="Max35Text"/>
+ </xs:choice>
+ <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="CurrencyAndAmount_SimpleType">
+ <xs:restriction base="xs:decimal">
+ <xs:minInclusive value="0"/>
+ <xs:fractionDigits value="5"/>
+ <xs:totalDigits value="18"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="CurrencyAndAmount">
+ <xs:simpleContent>
+ <xs:extension base="CurrencyAndAmount_SimpleType">
+ <xs:attribute name="Ccy" type="CurrencyCode" use="required"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ <xs:complexType name="CurrencyAndAmountRange">
+ <xs:sequence>
+ <xs:element name="Amt" type="ImpliedCurrencyAmountRangeChoice"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CdtDbtInd" type="CreditDebitCode"/>
+ <xs:element name="Ccy" type="CurrencyCode"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="CurrencyCode">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[A-Z]{3,3}"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="CurrencyExchange3">
+ <xs:sequence>
+ <xs:element name="SrcCcy" type="CurrencyCode"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TrgtCcy" type="CurrencyCode"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="UnitCcy" type="CurrencyCode"/>
+ <xs:element name="XchgRate" type="BaseOneRate"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CtrctId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="QtnDt" type="ISODateTime"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="DateAndDateTimeChoice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="Dt" type="ISODate"/>
+ <xs:element name="DtTm" type="ISODateTime"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="DateAndPlaceOfBirth">
+ <xs:sequence>
+ <xs:element name="BirthDt" type="ISODate"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="PrvcOfBirth" type="Max35Text"/>
+ <xs:element name="CityOfBirth" type="Max35Text"/>
+ <xs:element name="CtryOfBirth" type="CountryCode"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="DateTimePeriodDetails">
+ <xs:sequence>
+ <xs:element name="FrDtTm" type="ISODateTime"/>
+ <xs:element name="ToDtTm" type="ISODateTime"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="DecimalNumber">
+ <xs:restriction base="xs:decimal">
+ <xs:fractionDigits value="17"/>
+ <xs:totalDigits value="18"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="Document">
+ <xs:sequence>
+ <xs:element name="BkToCstmrDbtCdtNtfctnV01" type="BankToCustomerDebitCreditNotificationV01"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="DocumentType2Code">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="MSIN"/>
+ <xs:enumeration value="CNFA"/>
+ <xs:enumeration value="DNFA"/>
+ <xs:enumeration value="CINV"/>
+ <xs:enumeration value="CREN"/>
+ <xs:enumeration value="DEBN"/>
+ <xs:enumeration value="HIRI"/>
+ <xs:enumeration value="SBIN"/>
+ <xs:enumeration value="CMCN"/>
+ <xs:enumeration value="SOAC"/>
+ <xs:enumeration value="DISP"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="DocumentType3Code">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="RADM"/>
+ <xs:enumeration value="RPIN"/>
+ <xs:enumeration value="FXDR"/>
+ <xs:enumeration value="DISP"/>
+ <xs:enumeration value="PUOR"/>
+ <xs:enumeration value="SCOR"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="DunsIdentifier">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[0-9]{9,9}"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="EANGLNIdentifier">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[0-9]{13,13}"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="EntryStatus4Code">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="BOOK"/>
+ <xs:enumeration value="PDNG"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="EntryTransaction1">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="Refs" type="TransactionReferences1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="AmtDtls" type="AmountAndCurrencyExchange2"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0"
+ name="Avlbty" type="CashBalanceAvailability1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="BkTxCd" type="BankTransactionCodeStructure1"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Chrgs" type="ChargesInformation3"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0"
+ name="Intrst" type="TransactionInterest1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RltdPties" type="TransactionParty1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RltdAgts" type="TransactionAgents1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Purp" type="Purpose1Choice"/>
+ <xs:element maxOccurs="10" minOccurs="0" name="RltdRmtInf" type="RemittanceLocation1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RmtInf" type="RemittanceInformation1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RltdDts" type="TransactionDates1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RltdPric" type="TransactionPrice1Choice"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0"
+ name="RltdQties" type="TransactionQuantities1Choice"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="FinInstrmId" type="SecurityIdentification4Choice"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Tax" type="TaxInformation2"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RtrInf" type="ReturnReasonInformation5"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CorpActn" type="CorporateAction1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="SfkpgAcct" type="CashAccount7"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="AddtlTxInf" type="Max500Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="ExternalBankTransactionDomainCode">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="4"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ExternalBankTransactionFamilyCode">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="4"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ExternalBankTransactionSubFamilyCode">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="4"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ExternalClearingSystemMemberCode">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="35"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ExternalPurposeCode">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="35"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="FinancialInstitutionIdentification3">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="BIC" type="BICIdentifier"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="ClrSysMmbId" type="ClearingSystemMemberIdentification3Choice"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max70Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="PstlAdr" type="PostalAddress1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="PrtryId" type="GenericIdentification3"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="FinancialInstitutionIdentification5Choice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="BIC" type="BICIdentifier"/>
+ <xs:element name="ClrSysMmbId" type="ClearingSystemMemberIdentification3Choice"/>
+ <xs:element name="NmAndAdr" type="NameAndAddress7"/>
+ <xs:element name="PrtryId" type="GenericIdentification3"/>
+ <xs:element name="CmbndId" type="FinancialInstitutionIdentification3"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="FinancialInstrumentQuantityChoice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="Unit" type="DecimalNumber"/>
+ <xs:element name="FaceAmt" type="ImpliedCurrencyAndAmount"/>
+ <xs:element name="AmtsdVal" type="ImpliedCurrencyAndAmount"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="FromToAmountRange">
+ <xs:sequence>
+ <xs:element name="FrAmt" type="AmountRangeBoundary1"/>
+ <xs:element name="ToAmt" type="AmountRangeBoundary1"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="GenericIdentification3">
+ <xs:sequence>
+ <xs:element name="Id" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="GenericIdentification4">
+ <xs:sequence>
+ <xs:element name="Id" type="Max35Text"/>
+ <xs:element name="IdTp" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="GroupHeader23">
+ <xs:sequence>
+ <xs:element name="MsgId" type="Max35Text"/>
+ <xs:element name="CreDtTm" type="ISODateTime"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="MsgRcpt" type="PartyIdentification8"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="MsgPgntn" type="Pagination"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="AddtlInf" type="Max500Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="IBANIdentifier">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[a-zA-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="IBEIIdentifier">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[A-Z]{2,2}[B-DF-HJ-NP-TV-XZ0-9]{7,7}[0-9]{1,1}"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ISINIdentifier">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[A-Z0-9]{12,12}"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ISODate">
+ <xs:restriction base="xs:date"/>
+ </xs:simpleType>
+ <xs:simpleType name="ISODateTime">
+ <xs:restriction base="xs:dateTime"/>
+ </xs:simpleType>
+ <xs:complexType name="ImpliedCurrencyAmountRangeChoice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="FrAmt" type="AmountRangeBoundary1"/>
+ <xs:element name="ToAmt" type="AmountRangeBoundary1"/>
+ <xs:element name="FrToAmt" type="FromToAmountRange"/>
+ <xs:element name="EQAmt" type="ImpliedCurrencyAndAmount"/>
+ <xs:element name="NEQAmt" type="ImpliedCurrencyAndAmount"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="ImpliedCurrencyAndAmount">
+ <xs:restriction base="xs:decimal">
+ <xs:minInclusive value="0"/>
+ <xs:fractionDigits value="5"/>
+ <xs:totalDigits value="18"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="InterestType1Choice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="Cd" type="InterestType1Code"/>
+ <xs:element name="Prtry" type="Max35Text"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="InterestType1Code">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="INDY"/>
+ <xs:enumeration value="OVRN"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Max105Text">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="105"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Max140Text">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="140"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Max15NumericText">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[0-9]{1,15}"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Max15PlusSignedNumericText">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[+]{0,1}[0-9]{1,15}"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Max16Text">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="16"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Max256Text">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="256"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Max34Text">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="34"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Max35Text">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="35"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Max4AlphaNumericText">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[a-zA-Z0-9]{1,4}"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Max500Text">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="500"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Max5NumericText">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[0-9]{1,5}"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Max70Text">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="70"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="MessageIdentification2">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="MsgNmId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="MsgId" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="NameAndAddress3">
+ <xs:sequence>
+ <xs:element name="Nm" type="Max70Text"/>
+ <xs:element name="Adr" type="PostalAddress1"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="NameAndAddress7">
+ <xs:sequence>
+ <xs:element name="Nm" type="Max70Text"/>
+ <xs:element name="PstlAdr" type="PostalAddress1"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="NotificationEntry1">
+ <xs:sequence>
+ <xs:element name="Amt" type="CurrencyAndAmount"/>
+ <xs:element name="CdtDbtInd" type="CreditDebitCode"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RvslInd" type="TrueFalseIndicator"/>
+ <xs:element name="Sts" type="EntryStatus4Code"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="BookgDt" type="DateAndDateTimeChoice"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="ValDt" type="DateAndDateTimeChoice"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="AcctSvcrRef" type="Max35Text"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0"
+ name="Avlbty" type="CashBalanceAvailability1"/>
+ <xs:element name="BkTxCd" type="BankTransactionCodeStructure1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="ComssnWvrInd" type="YesNoIndicator"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="AddtlInfInd" type="MessageIdentification2"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Btch" type="BatchInformation1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="AmtDtls" type="AmountAndCurrencyExchange2"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Chrgs" type="ChargesInformation3"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0"
+ name="Intrst" type="TransactionInterest1"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0"
+ name="TxDtls" type="EntryTransaction1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="AddtlNtryInf" type="Max500Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="Number">
+ <xs:restriction base="xs:decimal">
+ <xs:fractionDigits value="0"/>
+ <xs:totalDigits value="18"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="NumberAndSumOfTransactions1">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="NbOfNtries" type="Max15NumericText"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Sum" type="DecimalNumber"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="NumberAndSumOfTransactions2">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="NbOfNtries" type="Max15NumericText"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Sum" type="DecimalNumber"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TtlNetNtryAmt" type="DecimalNumber"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CdtDbtInd" type="CreditDebitCode"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="NumberAndSumOfTransactionsPerBankTransactionCode1">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="NbOfNtries" type="Max15NumericText"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Sum" type="DecimalNumber"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TtlNetNtryAmt" type="DecimalNumber"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CdtDbtInd" type="CreditDebitCode"/>
+ <xs:element name="BkTxCd" type="BankTransactionCodeStructure1"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0"
+ name="Avlbty" type="CashBalanceAvailability1"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="OrganisationIdentification2">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="BIC" type="BICIdentifier"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="IBEI" type="IBEIIdentifier"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="BEI" type="BEIIdentifier"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="EANGLN" type="EANGLNIdentifier"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="USCHU" type="CHIPSUniversalIdentifier"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="DUNS" type="DunsIdentifier"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="BkPtyId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TaxIdNb" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="PrtryId" type="GenericIdentification3"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="Pagination">
+ <xs:sequence>
+ <xs:element name="PgNb" type="Max5NumericText"/>
+ <xs:element name="LastPgInd" type="YesNoIndicator"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="Party2Choice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="OrgId" type="OrganisationIdentification2"/>
+ <xs:element maxOccurs="4" minOccurs="1" name="PrvtId" type="PersonIdentification3"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="PartyIdentification8">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max70Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="PstlAdr" type="PostalAddress1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Id" type="Party2Choice"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CtryOfRes" type="CountryCode"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="PercentageRate">
+ <xs:restriction base="xs:decimal">
+ <xs:fractionDigits value="10"/>
+ <xs:totalDigits value="11"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="PersonIdentification3">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="DrvrsLicNb" type="Max35Text"/>
+ <xs:element name="CstmrNb" type="Max35Text"/>
+ <xs:element name="SclSctyNb" type="Max35Text"/>
+ <xs:element name="AlnRegnNb" type="Max35Text"/>
+ <xs:element name="PsptNb" type="Max35Text"/>
+ <xs:element name="TaxIdNb" type="Max35Text"/>
+ <xs:element name="IdntyCardNb" type="Max35Text"/>
+ <xs:element name="MplyrIdNb" type="Max35Text"/>
+ <xs:element name="DtAndPlcOfBirth" type="DateAndPlaceOfBirth"/>
+ <xs:element name="OthrId" type="GenericIdentification4"/>
+ </xs:choice>
+ <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="PostalAddress1">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="AdrTp" type="AddressType2Code"/>
+ <xs:element maxOccurs="5" minOccurs="0" name="AdrLine" type="Max70Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="StrtNm" type="Max70Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="BldgNb" type="Max16Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="PstCd" type="Max16Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TwnNm" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CtrySubDvsn" type="Max35Text"/>
+ <xs:element name="Ctry" type="CountryCode"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ProprietaryAgent1">
+ <xs:sequence>
+ <xs:element name="Tp" type="Max35Text"/>
+ <xs:element name="Agt" type="BranchAndFinancialInstitutionIdentification3"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ProprietaryBankTransactionCodeStructure1">
+ <xs:sequence>
+ <xs:element name="Cd" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ProprietaryDate1">
+ <xs:sequence>
+ <xs:element name="Tp" type="Max35Text"/>
+ <xs:choice>
+ <xs:element name="Dt" type="ISODate"/>
+ <xs:element name="DtTm" type="ISODateTime"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ProprietaryParty1">
+ <xs:sequence>
+ <xs:element name="Tp" type="Max35Text"/>
+ <xs:element name="Pty" type="PartyIdentification8"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ProprietaryPrice1">
+ <xs:sequence>
+ <xs:element name="Tp" type="Max35Text"/>
+ <xs:element name="Pric" type="CurrencyAndAmount"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ProprietaryQuantity1">
+ <xs:sequence>
+ <xs:element name="Tp" type="Max35Text"/>
+ <xs:element name="Qty" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ProprietaryReference1">
+ <xs:sequence>
+ <xs:element name="Tp" type="Max35Text"/>
+ <xs:element name="Ref" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="Purpose1Choice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="Cd" type="ExternalPurposeCode"/>
+ <xs:element name="Prtry" type="Max35Text"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="Rate1">
+ <xs:sequence>
+ <xs:element name="Rate" type="RateTypeChoice"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="VldtyRg" type="CurrencyAndAmountRange"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="RateTypeChoice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="PctgRate" type="PercentageRate"/>
+ <xs:element name="TxtlRate" type="Max35Text"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ReferredDocumentAmount1Choice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="DuePyblAmt" type="CurrencyAndAmount"/>
+ <xs:element name="DscntApldAmt" type="CurrencyAndAmount"/>
+ <xs:element name="RmtdAmt" type="CurrencyAndAmount"/>
+ <xs:element name="CdtNoteAmt" type="CurrencyAndAmount"/>
+ <xs:element name="TaxAmt" type="CurrencyAndAmount"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ReferredDocumentInformation1">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="RfrdDocTp" type="ReferredDocumentType1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RfrdDocNb" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ReferredDocumentType1">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="Cd" type="DocumentType2Code"/>
+ <xs:element name="Prtry" type="Max35Text"/>
+ </xs:choice>
+ <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="RemittanceInformation1">
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Ustrd" type="Max140Text"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Strd" type="StructuredRemittanceInformation6"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="RemittanceLocation1">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="RmtId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RmtLctnMtd" type="RemittanceLocationMethod1Code"/>
+ <xs:element maxOccurs="1" minOccurs="0"
+ name="RmtLctnElctrncAdr" type="Max256Text"/>
+ <xs:element maxOccurs="1" minOccurs="0"
+ name="RmtLctnPstlAdr" type="NameAndAddress3"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="RemittanceLocationMethod1Code">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="FAXI"/>
+ <xs:enumeration value="EDIC"/>
+ <xs:enumeration value="URID"/>
+ <xs:enumeration value="EMAL"/>
+ <xs:enumeration value="POST"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="ReturnReason1Choice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="Cd" type="TransactionRejectReason2Code"/>
+ <xs:element name="Prtry" type="Max35Text"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ReturnReasonInformation5">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="OrgnlBkTxCd" type="BankTransactionCodeStructure1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RtrOrgtr" type="PartyIdentification8"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RtrRsn" type="ReturnReason1Choice"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0"
+ name="AddtlRtrRsnInf" type="Max105Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="SecurityIdentification4Choice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="ISIN" type="ISINIdentifier"/>
+ <xs:element name="Prtry" type="AlternateSecurityIdentification2"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="SimpleIdentificationInformation2">
+ <xs:sequence>
+ <xs:element name="Id" type="Max34Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="StructuredRemittanceInformation6">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="RfrdDocInf" type="ReferredDocumentInformation1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RfrdDocRltdDt" type="ISODate"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0"
+ name="RfrdDocAmt" type="ReferredDocumentAmount1Choice"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CdtrRefInf" type="CreditorReferenceInformation1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Invcr" type="PartyIdentification8"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Invcee" type="PartyIdentification8"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="AddtlRmtInf" type="Max140Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TaxCharges1">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="Id" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Rate" type="PercentageRate"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Amt" type="CurrencyAndAmount"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TaxDetails">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="CertId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TaxTp" type="TaxType"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TaxInformation2">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="CdtrTaxId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CdtrTaxTp" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="DbtrTaxId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TaxRefNb" type="Max140Text"/>
+ <xs:element maxOccurs="1" minOccurs="0"
+ name="TtlTaxblBaseAmt" type="CurrencyAndAmount"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TtlTaxAmt" type="CurrencyAndAmount"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TaxDt" type="ISODate"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0"
+ name="TaxTpInf" type="TaxDetails"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TaxType">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="CtgyDesc" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Rate" type="PercentageRate"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TaxblBaseAmt" type="CurrencyAndAmount"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Amt" type="CurrencyAndAmount"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TotalTransactions1">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="TtlNtries" type="NumberAndSumOfTransactions2"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TtlCdtNtries" type="NumberAndSumOfTransactions1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TtlDbtNtries" type="NumberAndSumOfTransactions1"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0"
+ name="TtlNtriesPerBkTxCd" type="NumberAndSumOfTransactionsPerBankTransactionCode1"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TransactionAgents1">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="DbtrAgt" type="BranchAndFinancialInstitutionIdentification3"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CdtrAgt" type="BranchAndFinancialInstitutionIdentification3"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="IntrmyAgt1" type="BranchAndFinancialInstitutionIdentification3"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="IntrmyAgt2" type="BranchAndFinancialInstitutionIdentification3"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="IntrmyAgt3" type="BranchAndFinancialInstitutionIdentification3"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RcvgAgt" type="BranchAndFinancialInstitutionIdentification3"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="DlvrgAgt" type="BranchAndFinancialInstitutionIdentification3"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="IssgAgt" type="BranchAndFinancialInstitutionIdentification3"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="SttlmPlc" type="BranchAndFinancialInstitutionIdentification3"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Prtry" type="ProprietaryAgent1"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TransactionDates1">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="AccptncDtTm" type="ISODateTime"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TradDt" type="ISODate"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="IntrBkSttlmDt" type="ISODate"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="StartDt" type="ISODate"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="EndDt" type="ISODate"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TxDtTm" type="ISODateTime"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Prtry" type="ProprietaryDate1"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TransactionInterest1">
+ <xs:sequence>
+ <xs:element name="Amt" type="CurrencyAndAmount"/>
+ <xs:element name="CdtDbtInd" type="CreditDebitCode"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="InterestType1Choice"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Rate" type="Rate1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="FrToDt" type="DateTimePeriodDetails"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Rsn" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TransactionParty1">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="InitgPty" type="PartyIdentification8"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Dbtr" type="PartyIdentification8"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="DbtrAcct" type="CashAccount7"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="UltmtDbtr" type="PartyIdentification8"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Cdtr" type="PartyIdentification8"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CdtrAcct" type="CashAccount7"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="UltmtCdtr" type="PartyIdentification8"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TradgPty" type="PartyIdentification8"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Prtry" type="ProprietaryParty1"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TransactionPrice1Choice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="DealPric" type="CurrencyAndAmount"/>
+ <xs:element maxOccurs="unbounded" minOccurs="1"
+ name="Prtry" type="ProprietaryPrice1"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TransactionQuantities1Choice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="Qty" type="FinancialInstrumentQuantityChoice"/>
+ <xs:element name="Prtry" type="ProprietaryQuantity1"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TransactionReferences1">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="MsgId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="AcctSvcrRef" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="InstrId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="EndToEndId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TxId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="MndtId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="ChqNb" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="ClrSysRef" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Prtry" type="ProprietaryReference1"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="TransactionRejectReason2Code">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="AC01"/>
+ <xs:enumeration value="AC04"/>
+ <xs:enumeration value="AC06"/>
+ <xs:enumeration value="AM01"/>
+ <xs:enumeration value="AM02"/>
+ <xs:enumeration value="AM03"/>
+ <xs:enumeration value="AM04"/>
+ <xs:enumeration value="AM05"/>
+ <xs:enumeration value="AM06"/>
+ <xs:enumeration value="AM07"/>
+ <xs:enumeration value="BE01"/>
+ <xs:enumeration value="BE04"/>
+ <xs:enumeration value="BE05"/>
+ <xs:enumeration value="AG01"/>
+ <xs:enumeration value="AG02"/>
+ <xs:enumeration value="DT01"/>
+ <xs:enumeration value="RF01"/>
+ <xs:enumeration value="RC01"/>
+ <xs:enumeration value="TM01"/>
+ <xs:enumeration value="ED01"/>
+ <xs:enumeration value="ED03"/>
+ <xs:enumeration value="MS03"/>
+ <xs:enumeration value="MS02"/>
+ <xs:enumeration value="BE06"/>
+ <xs:enumeration value="BE07"/>
+ <xs:enumeration value="AM09"/>
+ <xs:enumeration value="AM10"/>
+ <xs:enumeration value="MD01"/>
+ <xs:enumeration value="MD02"/>
+ <xs:enumeration value="MD03"/>
+ <xs:enumeration value="MD04"/>
+ <xs:enumeration value="MD06"/>
+ <xs:enumeration value="MD07"/>
+ <xs:enumeration value="ED05"/>
+ <xs:enumeration value="NARR"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="TrueFalseIndicator">
+ <xs:restriction base="xs:boolean"/>
+ </xs:simpleType>
+ <xs:simpleType name="UPICIdentifier">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[0-9]{8,17}"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="YesNoIndicator">
+ <xs:restriction base="xs:boolean"/>
+ </xs:simpleType>
+</xs:schema>
diff --git a/tests/camt.054.001.02.xsd b/tests/camt.054.001.02.xsd
new file mode 100644
index 0000000..d73101e
--- /dev/null
+++ b/tests/camt.054.001.02.xsd
@@ -0,0 +1,1239 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--Generated by SWIFTStandards Workstation (build:R6.1.0.2) on 2009 Jan 08 17:30:53-->
+<xs:schema xmlns="urn:iso:std:iso:20022:tech:xsd:camt.054.001.02" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="urn:iso:std:iso:20022:tech:xsd:camt.054.001.02">
+ <xs:element name="Document" type="Document"/>
+ <xs:complexType name="AccountIdentification4Choice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="IBAN" type="IBAN2007Identifier"/>
+ <xs:element name="Othr" type="GenericAccountIdentification1"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="AccountInterest2">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="InterestType1Choice"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Rate" type="Rate3"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="FrToDt" type="DateTimePeriodDetails"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Rsn" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="AccountNotification2">
+ <xs:sequence>
+ <xs:element name="Id" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="ElctrncSeqNb" type="Number"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="LglSeqNb" type="Number"/>
+ <xs:element name="CreDtTm" type="ISODateTime"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="FrToDt" type="DateTimePeriodDetails"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CpyDplctInd" type="CopyDuplicate1Code"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RptgSrc" type="ReportingSource1Choice"/>
+ <xs:element name="Acct" type="CashAccount20"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RltdAcct" type="CashAccount16"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Intrst" type="AccountInterest2"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TxsSummry" type="TotalTransactions2"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Ntry" type="ReportEntry2"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="AddtlNtfctnInf" type="Max500Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="AccountSchemeName1Choice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="Cd" type="ExternalAccountIdentification1Code"/>
+ <xs:element name="Prtry" type="Max35Text"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="ActiveOrHistoricCurrencyAndAmount_SimpleType">
+ <xs:restriction base="xs:decimal">
+ <xs:minInclusive value="0"/>
+ <xs:fractionDigits value="5"/>
+ <xs:totalDigits value="18"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="ActiveOrHistoricCurrencyAndAmount">
+ <xs:simpleContent>
+ <xs:extension base="ActiveOrHistoricCurrencyAndAmount_SimpleType">
+ <xs:attribute name="Ccy" type="ActiveOrHistoricCurrencyCode" use="required"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ <xs:simpleType name="ActiveOrHistoricCurrencyCode">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[A-Z]{3,3}"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="AddressType2Code">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="ADDR"/>
+ <xs:enumeration value="PBOX"/>
+ <xs:enumeration value="HOME"/>
+ <xs:enumeration value="BIZZ"/>
+ <xs:enumeration value="MLTO"/>
+ <xs:enumeration value="DLVY"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="AlternateSecurityIdentification2">
+ <xs:sequence>
+ <xs:element name="Tp" type="Max35Text"/>
+ <xs:element name="Id" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="AmountAndCurrencyExchange3">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="InstdAmt" type="AmountAndCurrencyExchangeDetails3"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TxAmt" type="AmountAndCurrencyExchangeDetails3"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CntrValAmt" type="AmountAndCurrencyExchangeDetails3"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="AnncdPstngAmt" type="AmountAndCurrencyExchangeDetails3"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="PrtryAmt" type="AmountAndCurrencyExchangeDetails4"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="AmountAndCurrencyExchangeDetails3">
+ <xs:sequence>
+ <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CcyXchg" type="CurrencyExchange5"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="AmountAndCurrencyExchangeDetails4">
+ <xs:sequence>
+ <xs:element name="Tp" type="Max35Text"/>
+ <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CcyXchg" type="CurrencyExchange5"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="AmountRangeBoundary1">
+ <xs:sequence>
+ <xs:element name="BdryAmt" type="ImpliedCurrencyAndAmount"/>
+ <xs:element name="Incl" type="YesNoIndicator"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="AnyBICIdentifier">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="BICIdentifier">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="BankToCustomerDebitCreditNotificationV02">
+ <xs:sequence>
+ <xs:element name="GrpHdr" type="GroupHeader42"/>
+ <xs:element maxOccurs="unbounded" minOccurs="1" name="Ntfctn" type="AccountNotification2"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="BankTransactionCodeStructure4">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="Domn" type="BankTransactionCodeStructure5"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Prtry" type="ProprietaryBankTransactionCodeStructure1"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="BankTransactionCodeStructure5">
+ <xs:sequence>
+ <xs:element name="Cd" type="ExternalBankTransactionDomain1Code"/>
+ <xs:element name="Fmly" type="BankTransactionCodeStructure6"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="BankTransactionCodeStructure6">
+ <xs:sequence>
+ <xs:element name="Cd" type="ExternalBankTransactionFamily1Code"/>
+ <xs:element name="SubFmlyCd" type="ExternalBankTransactionSubFamily1Code"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="BaseOneRate">
+ <xs:restriction base="xs:decimal">
+ <xs:fractionDigits value="10"/>
+ <xs:totalDigits value="11"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="BatchInformation2">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="MsgId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="PmtInfId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="NbOfTxs" type="Max15NumericText"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TtlAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CdtDbtInd" type="CreditDebitCode"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="BranchAndFinancialInstitutionIdentification4">
+ <xs:sequence>
+ <xs:element name="FinInstnId" type="FinancialInstitutionIdentification7"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="BrnchId" type="BranchData2"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="BranchData2">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="Id" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max140Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="PstlAdr" type="PostalAddress6"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="CashAccount16">
+ <xs:sequence>
+ <xs:element name="Id" type="AccountIdentification4Choice"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="CashAccountType2"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Ccy" type="ActiveOrHistoricCurrencyCode"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max70Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="CashAccount20">
+ <xs:sequence>
+ <xs:element name="Id" type="AccountIdentification4Choice"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="CashAccountType2"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Ccy" type="ActiveOrHistoricCurrencyCode"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max70Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Ownr" type="PartyIdentification32"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Svcr" type="BranchAndFinancialInstitutionIdentification4"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="CashAccountType2">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="Cd" type="CashAccountType4Code"/>
+ <xs:element name="Prtry" type="Max35Text"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="CashAccountType4Code">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="CASH"/>
+ <xs:enumeration value="CHAR"/>
+ <xs:enumeration value="COMM"/>
+ <xs:enumeration value="TAXE"/>
+ <xs:enumeration value="CISH"/>
+ <xs:enumeration value="TRAS"/>
+ <xs:enumeration value="SACC"/>
+ <xs:enumeration value="CACC"/>
+ <xs:enumeration value="SVGS"/>
+ <xs:enumeration value="ONDP"/>
+ <xs:enumeration value="MGLD"/>
+ <xs:enumeration value="NREX"/>
+ <xs:enumeration value="MOMA"/>
+ <xs:enumeration value="LOAN"/>
+ <xs:enumeration value="SLRY"/>
+ <xs:enumeration value="ODFT"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="CashBalanceAvailability2">
+ <xs:sequence>
+ <xs:element name="Dt" type="CashBalanceAvailabilityDate1"/>
+ <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
+ <xs:element name="CdtDbtInd" type="CreditDebitCode"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="CashBalanceAvailabilityDate1">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="NbOfDays" type="Max15PlusSignedNumericText"/>
+ <xs:element name="ActlDt" type="ISODate"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="ChargeBearerType1Code">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="DEBT"/>
+ <xs:enumeration value="CRED"/>
+ <xs:enumeration value="SHAR"/>
+ <xs:enumeration value="SLEV"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ChargeType1Code">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="BRKF"/>
+ <xs:enumeration value="COMM"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="ChargeType2Choice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="Cd" type="ChargeType1Code"/>
+ <xs:element name="Prtry" type="GenericIdentification3"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ChargesInformation6">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="TtlChrgsAndTaxAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
+ <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CdtDbtInd" type="CreditDebitCode"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="ChargeType2Choice"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Rate" type="PercentageRate"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Br" type="ChargeBearerType1Code"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Pty" type="BranchAndFinancialInstitutionIdentification4"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Tax" type="TaxCharges2"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ClearingSystemIdentification2Choice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="Cd" type="ExternalClearingSystemIdentification1Code"/>
+ <xs:element name="Prtry" type="Max35Text"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ClearingSystemMemberIdentification2">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="ClrSysId" type="ClearingSystemIdentification2Choice"/>
+ <xs:element name="MmbId" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ContactDetails2">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="NmPrfx" type="NamePrefix1Code"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max140Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="PhneNb" type="PhoneNumber"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="MobNb" type="PhoneNumber"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="FaxNb" type="PhoneNumber"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="EmailAdr" type="Max2048Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Othr" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="CopyDuplicate1Code">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="CODU"/>
+ <xs:enumeration value="COPY"/>
+ <xs:enumeration value="DUPL"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="CorporateAction1">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="Cd" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Nb" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Prtry" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="CountryCode">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[A-Z]{2,2}"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="CreditDebitCode">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="CRDT"/>
+ <xs:enumeration value="DBIT"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="CreditorReferenceInformation2">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="CreditorReferenceType2"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Ref" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="CreditorReferenceType1Choice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="Cd" type="DocumentType3Code"/>
+ <xs:element name="Prtry" type="Max35Text"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="CreditorReferenceType2">
+ <xs:sequence>
+ <xs:element name="CdOrPrtry" type="CreditorReferenceType1Choice"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="CurrencyAndAmountRange2">
+ <xs:sequence>
+ <xs:element name="Amt" type="ImpliedCurrencyAmountRangeChoice"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CdtDbtInd" type="CreditDebitCode"/>
+ <xs:element name="Ccy" type="ActiveOrHistoricCurrencyCode"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="CurrencyExchange5">
+ <xs:sequence>
+ <xs:element name="SrcCcy" type="ActiveOrHistoricCurrencyCode"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TrgtCcy" type="ActiveOrHistoricCurrencyCode"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="UnitCcy" type="ActiveOrHistoricCurrencyCode"/>
+ <xs:element name="XchgRate" type="BaseOneRate"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CtrctId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="QtnDt" type="ISODateTime"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="DateAndDateTimeChoice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="Dt" type="ISODate"/>
+ <xs:element name="DtTm" type="ISODateTime"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="DateAndPlaceOfBirth">
+ <xs:sequence>
+ <xs:element name="BirthDt" type="ISODate"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="PrvcOfBirth" type="Max35Text"/>
+ <xs:element name="CityOfBirth" type="Max35Text"/>
+ <xs:element name="CtryOfBirth" type="CountryCode"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="DatePeriodDetails">
+ <xs:sequence>
+ <xs:element name="FrDt" type="ISODate"/>
+ <xs:element name="ToDt" type="ISODate"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="DateTimePeriodDetails">
+ <xs:sequence>
+ <xs:element name="FrDtTm" type="ISODateTime"/>
+ <xs:element name="ToDtTm" type="ISODateTime"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="DecimalNumber">
+ <xs:restriction base="xs:decimal">
+ <xs:fractionDigits value="17"/>
+ <xs:totalDigits value="18"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="Document">
+ <xs:sequence>
+ <xs:element name="BkToCstmrDbtCdtNtfctn" type="BankToCustomerDebitCreditNotificationV02"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="DocumentAdjustment1">
+ <xs:sequence>
+ <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CdtDbtInd" type="CreditDebitCode"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Rsn" type="Max4Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="AddtlInf" type="Max140Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="DocumentType3Code">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="RADM"/>
+ <xs:enumeration value="RPIN"/>
+ <xs:enumeration value="FXDR"/>
+ <xs:enumeration value="DISP"/>
+ <xs:enumeration value="PUOR"/>
+ <xs:enumeration value="SCOR"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="DocumentType5Code">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="MSIN"/>
+ <xs:enumeration value="CNFA"/>
+ <xs:enumeration value="DNFA"/>
+ <xs:enumeration value="CINV"/>
+ <xs:enumeration value="CREN"/>
+ <xs:enumeration value="DEBN"/>
+ <xs:enumeration value="HIRI"/>
+ <xs:enumeration value="SBIN"/>
+ <xs:enumeration value="CMCN"/>
+ <xs:enumeration value="SOAC"/>
+ <xs:enumeration value="DISP"/>
+ <xs:enumeration value="BOLD"/>
+ <xs:enumeration value="VCHR"/>
+ <xs:enumeration value="AROI"/>
+ <xs:enumeration value="TSUT"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="EntryDetails1">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="Btch" type="BatchInformation2"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="TxDtls" type="EntryTransaction2"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="EntryStatus2Code">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="BOOK"/>
+ <xs:enumeration value="PDNG"/>
+ <xs:enumeration value="INFO"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="EntryTransaction2">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="Refs" type="TransactionReferences2"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="AmtDtls" type="AmountAndCurrencyExchange3"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Avlbty" type="CashBalanceAvailability2"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="BkTxCd" type="BankTransactionCodeStructure4"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Chrgs" type="ChargesInformation6"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Intrst" type="TransactionInterest2"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RltdPties" type="TransactionParty2"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RltdAgts" type="TransactionAgents2"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Purp" type="Purpose2Choice"/>
+ <xs:element maxOccurs="10" minOccurs="0" name="RltdRmtInf" type="RemittanceLocation2"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RmtInf" type="RemittanceInformation5"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RltdDts" type="TransactionDates2"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RltdPric" type="TransactionPrice2Choice"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="RltdQties" type="TransactionQuantities1Choice"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="FinInstrmId" type="SecurityIdentification4Choice"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Tax" type="TaxInformation3"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RtrInf" type="ReturnReasonInformation10"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CorpActn" type="CorporateAction1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="SfkpgAcct" type="CashAccount16"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="AddtlTxInf" type="Max500Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="ExternalAccountIdentification1Code">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="4"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ExternalBankTransactionDomain1Code">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="4"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ExternalBankTransactionFamily1Code">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="4"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ExternalBankTransactionSubFamily1Code">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="4"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ExternalClearingSystemIdentification1Code">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="5"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ExternalFinancialInstitutionIdentification1Code">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="4"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ExternalOrganisationIdentification1Code">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="4"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ExternalPersonIdentification1Code">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="4"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ExternalPurpose1Code">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="4"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ExternalReportingSource1Code">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="4"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ExternalReturnReason1Code">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="4"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ExternalTechnicalInputChannel1Code">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="4"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="FinancialIdentificationSchemeName1Choice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="Cd" type="ExternalFinancialInstitutionIdentification1Code"/>
+ <xs:element name="Prtry" type="Max35Text"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="FinancialInstitutionIdentification7">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="BIC" type="BICIdentifier"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="ClrSysMmbId" type="ClearingSystemMemberIdentification2"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max140Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="PstlAdr" type="PostalAddress6"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Othr" type="GenericFinancialIdentification1"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="FinancialInstrumentQuantityChoice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="Unit" type="DecimalNumber"/>
+ <xs:element name="FaceAmt" type="ImpliedCurrencyAndAmount"/>
+ <xs:element name="AmtsdVal" type="ImpliedCurrencyAndAmount"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="FromToAmountRange">
+ <xs:sequence>
+ <xs:element name="FrAmt" type="AmountRangeBoundary1"/>
+ <xs:element name="ToAmt" type="AmountRangeBoundary1"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="GenericAccountIdentification1">
+ <xs:sequence>
+ <xs:element name="Id" type="Max34Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="SchmeNm" type="AccountSchemeName1Choice"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="GenericFinancialIdentification1">
+ <xs:sequence>
+ <xs:element name="Id" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="SchmeNm" type="FinancialIdentificationSchemeName1Choice"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="GenericIdentification3">
+ <xs:sequence>
+ <xs:element name="Id" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="GenericOrganisationIdentification1">
+ <xs:sequence>
+ <xs:element name="Id" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="SchmeNm" type="OrganisationIdentificationSchemeName1Choice"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="GenericPersonIdentification1">
+ <xs:sequence>
+ <xs:element name="Id" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="SchmeNm" type="PersonIdentificationSchemeName1Choice"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="GroupHeader42">
+ <xs:sequence>
+ <xs:element name="MsgId" type="Max35Text"/>
+ <xs:element name="CreDtTm" type="ISODateTime"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="MsgRcpt" type="PartyIdentification32"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="MsgPgntn" type="Pagination"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="AddtlInf" type="Max500Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="IBAN2007Identifier">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ISINIdentifier">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[A-Z0-9]{12,12}"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ISODate">
+ <xs:restriction base="xs:date"/>
+ </xs:simpleType>
+ <xs:simpleType name="ISODateTime">
+ <xs:restriction base="xs:dateTime"/>
+ </xs:simpleType>
+ <xs:complexType name="ImpliedCurrencyAmountRangeChoice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="FrAmt" type="AmountRangeBoundary1"/>
+ <xs:element name="ToAmt" type="AmountRangeBoundary1"/>
+ <xs:element name="FrToAmt" type="FromToAmountRange"/>
+ <xs:element name="EQAmt" type="ImpliedCurrencyAndAmount"/>
+ <xs:element name="NEQAmt" type="ImpliedCurrencyAndAmount"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="ImpliedCurrencyAndAmount">
+ <xs:restriction base="xs:decimal">
+ <xs:minInclusive value="0"/>
+ <xs:fractionDigits value="5"/>
+ <xs:totalDigits value="18"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="InterestType1Choice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="Cd" type="InterestType1Code"/>
+ <xs:element name="Prtry" type="Max35Text"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="InterestType1Code">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="INDY"/>
+ <xs:enumeration value="OVRN"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Max105Text">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="105"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Max140Text">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="140"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Max15NumericText">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[0-9]{1,15}"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Max15PlusSignedNumericText">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[+]{0,1}[0-9]{1,15}"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Max16Text">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="16"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Max2048Text">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="2048"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Max34Text">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="34"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Max35Text">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="35"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Max4Text">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="4"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Max500Text">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="500"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Max5NumericText">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[0-9]{1,5}"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Max70Text">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="70"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="MessageIdentification2">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="MsgNmId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="MsgId" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="NameAndAddress10">
+ <xs:sequence>
+ <xs:element name="Nm" type="Max140Text"/>
+ <xs:element name="Adr" type="PostalAddress6"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="NamePrefix1Code">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="DOCT"/>
+ <xs:enumeration value="MIST"/>
+ <xs:enumeration value="MISS"/>
+ <xs:enumeration value="MADM"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Number">
+ <xs:restriction base="xs:decimal">
+ <xs:fractionDigits value="0"/>
+ <xs:totalDigits value="18"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="NumberAndSumOfTransactions1">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="NbOfNtries" type="Max15NumericText"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Sum" type="DecimalNumber"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="NumberAndSumOfTransactions2">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="NbOfNtries" type="Max15NumericText"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Sum" type="DecimalNumber"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TtlNetNtryAmt" type="DecimalNumber"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CdtDbtInd" type="CreditDebitCode"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="OrganisationIdentification4">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="BICOrBEI" type="AnyBICIdentifier"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Othr" type="GenericOrganisationIdentification1"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="OrganisationIdentificationSchemeName1Choice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="Cd" type="ExternalOrganisationIdentification1Code"/>
+ <xs:element name="Prtry" type="Max35Text"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="Pagination">
+ <xs:sequence>
+ <xs:element name="PgNb" type="Max5NumericText"/>
+ <xs:element name="LastPgInd" type="YesNoIndicator"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="Party6Choice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="OrgId" type="OrganisationIdentification4"/>
+ <xs:element name="PrvtId" type="PersonIdentification5"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="PartyIdentification32">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max140Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="PstlAdr" type="PostalAddress6"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Id" type="Party6Choice"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CtryOfRes" type="CountryCode"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CtctDtls" type="ContactDetails2"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="PercentageRate">
+ <xs:restriction base="xs:decimal">
+ <xs:fractionDigits value="10"/>
+ <xs:totalDigits value="11"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="PersonIdentification5">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="DtAndPlcOfBirth" type="DateAndPlaceOfBirth"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Othr" type="GenericPersonIdentification1"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="PersonIdentificationSchemeName1Choice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="Cd" type="ExternalPersonIdentification1Code"/>
+ <xs:element name="Prtry" type="Max35Text"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="PhoneNumber">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="\+[0-9]{1,3}-[0-9()+\-]{1,30}"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="PostalAddress6">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="AdrTp" type="AddressType2Code"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Dept" type="Max70Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="SubDept" type="Max70Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="StrtNm" type="Max70Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="BldgNb" type="Max16Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="PstCd" type="Max16Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TwnNm" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CtrySubDvsn" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Ctry" type="CountryCode"/>
+ <xs:element maxOccurs="7" minOccurs="0" name="AdrLine" type="Max70Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ProprietaryAgent2">
+ <xs:sequence>
+ <xs:element name="Tp" type="Max35Text"/>
+ <xs:element name="Agt" type="BranchAndFinancialInstitutionIdentification4"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ProprietaryBankTransactionCodeStructure1">
+ <xs:sequence>
+ <xs:element name="Cd" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ProprietaryDate2">
+ <xs:sequence>
+ <xs:element name="Tp" type="Max35Text"/>
+ <xs:element name="Dt" type="DateAndDateTimeChoice"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ProprietaryParty2">
+ <xs:sequence>
+ <xs:element name="Tp" type="Max35Text"/>
+ <xs:element name="Pty" type="PartyIdentification32"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ProprietaryPrice2">
+ <xs:sequence>
+ <xs:element name="Tp" type="Max35Text"/>
+ <xs:element name="Pric" type="ActiveOrHistoricCurrencyAndAmount"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ProprietaryQuantity1">
+ <xs:sequence>
+ <xs:element name="Tp" type="Max35Text"/>
+ <xs:element name="Qty" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ProprietaryReference1">
+ <xs:sequence>
+ <xs:element name="Tp" type="Max35Text"/>
+ <xs:element name="Ref" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="Purpose2Choice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="Cd" type="ExternalPurpose1Code"/>
+ <xs:element name="Prtry" type="Max35Text"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="Rate3">
+ <xs:sequence>
+ <xs:element name="Tp" type="RateType4Choice"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="VldtyRg" type="CurrencyAndAmountRange2"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="RateType4Choice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="Pctg" type="PercentageRate"/>
+ <xs:element name="Othr" type="Max35Text"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ReferredDocumentInformation3">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="ReferredDocumentType2"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Nb" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RltdDt" type="ISODate"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ReferredDocumentType1Choice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="Cd" type="DocumentType5Code"/>
+ <xs:element name="Prtry" type="Max35Text"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ReferredDocumentType2">
+ <xs:sequence>
+ <xs:element name="CdOrPrtry" type="ReferredDocumentType1Choice"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="RemittanceAmount1">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="DuePyblAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="DscntApldAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CdtNoteAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TaxAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="AdjstmntAmtAndRsn" type="DocumentAdjustment1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RmtdAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="RemittanceInformation5">
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Ustrd" type="Max140Text"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Strd" type="StructuredRemittanceInformation7"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="RemittanceLocation2">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="RmtId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RmtLctnMtd" type="RemittanceLocationMethod2Code"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RmtLctnElctrncAdr" type="Max2048Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RmtLctnPstlAdr" type="NameAndAddress10"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="RemittanceLocationMethod2Code">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="FAXI"/>
+ <xs:enumeration value="EDIC"/>
+ <xs:enumeration value="URID"/>
+ <xs:enumeration value="EMAL"/>
+ <xs:enumeration value="POST"/>
+ <xs:enumeration value="SMSM"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="ReportEntry2">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="NtryRef" type="Max35Text"/>
+ <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
+ <xs:element name="CdtDbtInd" type="CreditDebitCode"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RvslInd" type="TrueFalseIndicator"/>
+ <xs:element name="Sts" type="EntryStatus2Code"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="BookgDt" type="DateAndDateTimeChoice"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="ValDt" type="DateAndDateTimeChoice"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="AcctSvcrRef" type="Max35Text"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Avlbty" type="CashBalanceAvailability2"/>
+ <xs:element name="BkTxCd" type="BankTransactionCodeStructure4"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="ComssnWvrInd" type="YesNoIndicator"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="AddtlInfInd" type="MessageIdentification2"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="AmtDtls" type="AmountAndCurrencyExchange3"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Chrgs" type="ChargesInformation6"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TechInptChanl" type="TechnicalInputChannel1Choice"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Intrst" type="TransactionInterest2"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="NtryDtls" type="EntryDetails1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="AddtlNtryInf" type="Max500Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ReportingSource1Choice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="Cd" type="ExternalReportingSource1Code"/>
+ <xs:element name="Prtry" type="Max35Text"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ReturnReason5Choice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="Cd" type="ExternalReturnReason1Code"/>
+ <xs:element name="Prtry" type="Max35Text"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ReturnReasonInformation10">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="OrgnlBkTxCd" type="BankTransactionCodeStructure4"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Orgtr" type="PartyIdentification32"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Rsn" type="ReturnReason5Choice"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="AddtlInf" type="Max105Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="SecurityIdentification4Choice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="ISIN" type="ISINIdentifier"/>
+ <xs:element name="Prtry" type="AlternateSecurityIdentification2"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="StructuredRemittanceInformation7">
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="RfrdDocInf" type="ReferredDocumentInformation3"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RfrdDocAmt" type="RemittanceAmount1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CdtrRefInf" type="CreditorReferenceInformation2"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Invcr" type="PartyIdentification32"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Invcee" type="PartyIdentification32"/>
+ <xs:element maxOccurs="3" minOccurs="0" name="AddtlRmtInf" type="Max140Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TaxAmount1">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="Rate" type="PercentageRate"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TaxblBaseAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TtlAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Dtls" type="TaxRecordDetails1"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TaxAuthorisation1">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="Titl" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max140Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TaxCharges2">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="Id" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Rate" type="PercentageRate"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TaxInformation3">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="Cdtr" type="TaxParty1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Dbtr" type="TaxParty2"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="AdmstnZn" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RefNb" type="Max140Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Mtd" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TtlTaxblBaseAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TtlTaxAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Dt" type="ISODate"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="SeqNb" type="Number"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Rcrd" type="TaxRecord1"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TaxParty1">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="TaxId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RegnId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TaxTp" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TaxParty2">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="TaxId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RegnId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TaxTp" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Authstn" type="TaxAuthorisation1"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TaxPeriod1">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="Yr" type="ISODate"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="TaxRecordPeriod1Code"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="FrToDt" type="DatePeriodDetails"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TaxRecord1">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Ctgy" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CtgyDtls" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="DbtrSts" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CertId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="FrmsCd" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Prd" type="TaxPeriod1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TaxAmt" type="TaxAmount1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="AddtlInf" type="Max140Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TaxRecordDetails1">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="Prd" type="TaxPeriod1"/>
+ <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="TaxRecordPeriod1Code">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="MM01"/>
+ <xs:enumeration value="MM02"/>
+ <xs:enumeration value="MM03"/>
+ <xs:enumeration value="MM04"/>
+ <xs:enumeration value="MM05"/>
+ <xs:enumeration value="MM06"/>
+ <xs:enumeration value="MM07"/>
+ <xs:enumeration value="MM08"/>
+ <xs:enumeration value="MM09"/>
+ <xs:enumeration value="MM10"/>
+ <xs:enumeration value="MM11"/>
+ <xs:enumeration value="MM12"/>
+ <xs:enumeration value="QTR1"/>
+ <xs:enumeration value="QTR2"/>
+ <xs:enumeration value="QTR3"/>
+ <xs:enumeration value="QTR4"/>
+ <xs:enumeration value="HLF1"/>
+ <xs:enumeration value="HLF2"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="TechnicalInputChannel1Choice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="Cd" type="ExternalTechnicalInputChannel1Code"/>
+ <xs:element name="Prtry" type="Max35Text"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TotalTransactions2">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="TtlNtries" type="NumberAndSumOfTransactions2"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TtlCdtNtries" type="NumberAndSumOfTransactions1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TtlDbtNtries" type="NumberAndSumOfTransactions1"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="TtlNtriesPerBkTxCd" type="TotalsPerBankTransactionCode2"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TotalsPerBankTransactionCode2">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="NbOfNtries" type="Max15NumericText"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Sum" type="DecimalNumber"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TtlNetNtryAmt" type="DecimalNumber"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CdtDbtInd" type="CreditDebitCode"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="FcstInd" type="TrueFalseIndicator"/>
+ <xs:element name="BkTxCd" type="BankTransactionCodeStructure4"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Avlbty" type="CashBalanceAvailability2"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TransactionAgents2">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="DbtrAgt" type="BranchAndFinancialInstitutionIdentification4"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CdtrAgt" type="BranchAndFinancialInstitutionIdentification4"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="IntrmyAgt1" type="BranchAndFinancialInstitutionIdentification4"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="IntrmyAgt2" type="BranchAndFinancialInstitutionIdentification4"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="IntrmyAgt3" type="BranchAndFinancialInstitutionIdentification4"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RcvgAgt" type="BranchAndFinancialInstitutionIdentification4"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="DlvrgAgt" type="BranchAndFinancialInstitutionIdentification4"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="IssgAgt" type="BranchAndFinancialInstitutionIdentification4"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="SttlmPlc" type="BranchAndFinancialInstitutionIdentification4"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Prtry" type="ProprietaryAgent2"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TransactionDates2">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="AccptncDtTm" type="ISODateTime"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TradActvtyCtrctlSttlmDt" type="ISODate"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TradDt" type="ISODate"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="IntrBkSttlmDt" type="ISODate"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="StartDt" type="ISODate"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="EndDt" type="ISODate"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TxDtTm" type="ISODateTime"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Prtry" type="ProprietaryDate2"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TransactionInterest2">
+ <xs:sequence>
+ <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
+ <xs:element name="CdtDbtInd" type="CreditDebitCode"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="InterestType1Choice"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Rate" type="Rate3"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="FrToDt" type="DateTimePeriodDetails"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Rsn" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TransactionParty2">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="InitgPty" type="PartyIdentification32"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Dbtr" type="PartyIdentification32"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="DbtrAcct" type="CashAccount16"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="UltmtDbtr" type="PartyIdentification32"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Cdtr" type="PartyIdentification32"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CdtrAcct" type="CashAccount16"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="UltmtCdtr" type="PartyIdentification32"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TradgPty" type="PartyIdentification32"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Prtry" type="ProprietaryParty2"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TransactionPrice2Choice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="DealPric" type="ActiveOrHistoricCurrencyAndAmount"/>
+ <xs:element maxOccurs="unbounded" minOccurs="1" name="Prtry" type="ProprietaryPrice2"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TransactionQuantities1Choice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="Qty" type="FinancialInstrumentQuantityChoice"/>
+ <xs:element name="Prtry" type="ProprietaryQuantity1"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TransactionReferences2">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="MsgId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="AcctSvcrRef" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="PmtInfId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="InstrId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="EndToEndId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TxId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="MndtId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="ChqNb" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="ClrSysRef" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Prtry" type="ProprietaryReference1"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="TrueFalseIndicator">
+ <xs:restriction base="xs:boolean"/>
+ </xs:simpleType>
+ <xs:simpleType name="YesNoIndicator">
+ <xs:restriction base="xs:boolean"/>
+ </xs:simpleType>
+</xs:schema>
diff --git a/tests/camt.054.001.03.xsd b/tests/camt.054.001.03.xsd
new file mode 100644
index 0000000..940a2f2
--- /dev/null
+++ b/tests/camt.054.001.03.xsd
@@ -0,0 +1,1751 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--Generated by SWIFTStandards Workstation (build:R7.1.30.4) on 2012 Jun 07 20:47:19-->
+<xs:schema elementFormDefault="qualified" targetNamespace="urn:iso:std:iso:20022:tech:xsd:camt.054.001.03" xmlns="urn:iso:std:iso:20022:tech:xsd:camt.054.001.03" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+ <xs:element name="Document" type="Document"/>
+ <xs:complexType name="AccountIdentification4Choice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="IBAN" type="IBAN2007Identifier"/>
+ <xs:element name="Othr" type="GenericAccountIdentification1"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="AccountInterest2">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="InterestType1Choice"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Rate" type="Rate3"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="FrToDt" type="DateTimePeriodDetails"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Rsn" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="AccountNotification5">
+ <xs:sequence>
+ <xs:element name="Id" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="NtfctnPgntn" type="Pagination"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="ElctrncSeqNb" type="Number"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="LglSeqNb" type="Number"/>
+ <xs:element name="CreDtTm" type="ISODateTime"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="FrToDt" type="DateTimePeriodDetails"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CpyDplctInd" type="CopyDuplicate1Code"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RptgSrc" type="ReportingSource1Choice"/>
+ <xs:element name="Acct" type="CashAccount25"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RltdAcct" type="CashAccount24"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Intrst" type="AccountInterest2"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TxsSummry" type="TotalTransactions2"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Ntry" type="ReportEntry3"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="AddtlNtfctnInf" type="Max500Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="AccountSchemeName1Choice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="Cd" type="ExternalAccountIdentification1Code"/>
+ <xs:element name="Prtry" type="Max35Text"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="ActiveCurrencyAndAmount_SimpleType">
+ <xs:restriction base="xs:decimal">
+ <xs:fractionDigits value="5"/>
+ <xs:totalDigits value="18"/>
+ <xs:minInclusive value="0"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="ActiveCurrencyAndAmount">
+ <xs:simpleContent>
+ <xs:extension base="ActiveCurrencyAndAmount_SimpleType">
+ <xs:attribute name="Ccy" type="ActiveCurrencyCode" use="required"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ <xs:simpleType name="ActiveCurrencyCode">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[A-Z]{3,3}"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ActiveOrHistoricCurrencyAnd13DecimalAmount_SimpleType">
+ <xs:restriction base="xs:decimal">
+ <xs:fractionDigits value="13"/>
+ <xs:totalDigits value="18"/>
+ <xs:minInclusive value="0"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="ActiveOrHistoricCurrencyAnd13DecimalAmount">
+ <xs:simpleContent>
+ <xs:extension base="ActiveOrHistoricCurrencyAnd13DecimalAmount_SimpleType">
+ <xs:attribute name="Ccy" type="ActiveOrHistoricCurrencyCode" use="required"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ <xs:simpleType name="ActiveOrHistoricCurrencyAndAmount_SimpleType">
+ <xs:restriction base="xs:decimal">
+ <xs:fractionDigits value="5"/>
+ <xs:totalDigits value="18"/>
+ <xs:minInclusive value="0"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="ActiveOrHistoricCurrencyAndAmount">
+ <xs:simpleContent>
+ <xs:extension base="ActiveOrHistoricCurrencyAndAmount_SimpleType">
+ <xs:attribute name="Ccy" type="ActiveOrHistoricCurrencyCode" use="required"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ <xs:simpleType name="ActiveOrHistoricCurrencyCode">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[A-Z]{3,3}"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="AddressType2Code">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="ADDR"/>
+ <xs:enumeration value="PBOX"/>
+ <xs:enumeration value="HOME"/>
+ <xs:enumeration value="BIZZ"/>
+ <xs:enumeration value="MLTO"/>
+ <xs:enumeration value="DLVY"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="AmountAndCurrencyExchange3">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="InstdAmt" type="AmountAndCurrencyExchangeDetails3"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TxAmt" type="AmountAndCurrencyExchangeDetails3"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CntrValAmt" type="AmountAndCurrencyExchangeDetails3"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="AnncdPstngAmt" type="AmountAndCurrencyExchangeDetails3"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="PrtryAmt" type="AmountAndCurrencyExchangeDetails4"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="AmountAndCurrencyExchangeDetails3">
+ <xs:sequence>
+ <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CcyXchg" type="CurrencyExchange5"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="AmountAndCurrencyExchangeDetails4">
+ <xs:sequence>
+ <xs:element name="Tp" type="Max35Text"/>
+ <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CcyXchg" type="CurrencyExchange5"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="AmountRangeBoundary1">
+ <xs:sequence>
+ <xs:element name="BdryAmt" type="ImpliedCurrencyAndAmount"/>
+ <xs:element name="Incl" type="YesNoIndicator"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="AnyBICIdentifier">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="BICFIIdentifier">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="BankToCustomerDebitCreditNotificationV03">
+ <xs:sequence>
+ <xs:element name="GrpHdr" type="GroupHeader58"/>
+ <xs:element maxOccurs="unbounded" minOccurs="1" name="Ntfctn" type="AccountNotification5"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="SplmtryData" type="SupplementaryData1"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="BankTransactionCodeStructure4">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="Domn" type="BankTransactionCodeStructure5"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Prtry" type="ProprietaryBankTransactionCodeStructure1"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="BankTransactionCodeStructure5">
+ <xs:sequence>
+ <xs:element name="Cd" type="ExternalBankTransactionDomain1Code"/>
+ <xs:element name="Fmly" type="BankTransactionCodeStructure6"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="BankTransactionCodeStructure6">
+ <xs:sequence>
+ <xs:element name="Cd" type="ExternalBankTransactionFamily1Code"/>
+ <xs:element name="SubFmlyCd" type="ExternalBankTransactionSubFamily1Code"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="BaseOneRate">
+ <xs:restriction base="xs:decimal">
+ <xs:fractionDigits value="10"/>
+ <xs:totalDigits value="11"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="BatchInformation2">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="MsgId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="PmtInfId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="NbOfTxs" type="Max15NumericText"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TtlAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CdtDbtInd" type="CreditDebitCode"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="BranchAndFinancialInstitutionIdentification5">
+ <xs:sequence>
+ <xs:element name="FinInstnId" type="FinancialInstitutionIdentification8"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="BrnchId" type="BranchData2"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="BranchData2">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="Id" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max140Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="PstlAdr" type="PostalAddress6"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="CSCManagement1Code">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="PRST"/>
+ <xs:enumeration value="BYPS"/>
+ <xs:enumeration value="UNRD"/>
+ <xs:enumeration value="NCSC"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="CardAggregated1">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="AddtlSvc" type="CardPaymentServiceType2Code"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TxCtgy" type="ExternalCardTransactionCategory1Code"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="SaleRcncltnId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="SeqNbRg" type="CardSequenceNumberRange1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TxDtRg" type="DateOrDateTimePeriodChoice"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="CardDataReading1Code">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="TAGC"/>
+ <xs:enumeration value="PHYS"/>
+ <xs:enumeration value="BRCD"/>
+ <xs:enumeration value="MGST"/>
+ <xs:enumeration value="CICC"/>
+ <xs:enumeration value="DFLE"/>
+ <xs:enumeration value="CTLS"/>
+ <xs:enumeration value="ECTL"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="CardEntry1">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="Card" type="PaymentCard4"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="POI" type="PointOfInteraction1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="AggtdNtry" type="CardAggregated1"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="CardIndividualTransaction1">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="AddtlSvc" type="CardPaymentServiceType2Code"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TxCtgy" type="ExternalCardTransactionCategory1Code"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="SaleRcncltnId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="SaleRefNb" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="SeqNb" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TxId" type="TransactionIdentifier1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Pdct" type="Product2"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="VldtnDt" type="ISODate"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="VldtnSeqNb" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="CardPaymentServiceType2Code">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="AGGR"/>
+ <xs:enumeration value="DCCV"/>
+ <xs:enumeration value="GRTT"/>
+ <xs:enumeration value="INSP"/>
+ <xs:enumeration value="LOYT"/>
+ <xs:enumeration value="NRES"/>
+ <xs:enumeration value="PUCO"/>
+ <xs:enumeration value="RECP"/>
+ <xs:enumeration value="SOAF"/>
+ <xs:enumeration value="UNAF"/>
+ <xs:enumeration value="VCAU"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="CardSecurityInformation1">
+ <xs:sequence>
+ <xs:element name="CSCMgmt" type="CSCManagement1Code"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CSCVal" type="Min3Max4NumericText"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="CardSequenceNumberRange1">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="FrstTx" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="LastTx" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="CardTransaction1">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="Card" type="PaymentCard4"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="POI" type="PointOfInteraction1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Tx" type="CardTransaction1Choice"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="CardTransaction1Choice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="Aggtd" type="CardAggregated1"/>
+ <xs:element name="Indv" type="CardIndividualTransaction1"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="CardholderVerificationCapability1Code">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="MNSG"/>
+ <xs:enumeration value="NPIN"/>
+ <xs:enumeration value="FCPN"/>
+ <xs:enumeration value="FEPN"/>
+ <xs:enumeration value="FDSG"/>
+ <xs:enumeration value="FBIO"/>
+ <xs:enumeration value="MNVR"/>
+ <xs:enumeration value="FBIG"/>
+ <xs:enumeration value="APKI"/>
+ <xs:enumeration value="PKIS"/>
+ <xs:enumeration value="CHDT"/>
+ <xs:enumeration value="SCEC"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="CashAccount24">
+ <xs:sequence>
+ <xs:element name="Id" type="AccountIdentification4Choice"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="CashAccountType2Choice"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Ccy" type="ActiveOrHistoricCurrencyCode"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max70Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="CashAccount25">
+ <xs:sequence>
+ <xs:element name="Id" type="AccountIdentification4Choice"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="CashAccountType2Choice"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Ccy" type="ActiveOrHistoricCurrencyCode"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max70Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Ownr" type="PartyIdentification43"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Svcr" type="BranchAndFinancialInstitutionIdentification5"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="CashAccountType2Choice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="Cd" type="ExternalCashAccountType1Code"/>
+ <xs:element name="Prtry" type="Max35Text"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="CashBalanceAvailability2">
+ <xs:sequence>
+ <xs:element name="Dt" type="CashBalanceAvailabilityDate1"/>
+ <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
+ <xs:element name="CdtDbtInd" type="CreditDebitCode"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="CashBalanceAvailabilityDate1">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="NbOfDays" type="Max15PlusSignedNumericText"/>
+ <xs:element name="ActlDt" type="ISODate"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="CashDeposit1">
+ <xs:sequence>
+ <xs:element name="NoteDnmtn" type="ActiveCurrencyAndAmount"/>
+ <xs:element name="NbOfNotes" type="Max15NumericText"/>
+ <xs:element name="Amt" type="ActiveCurrencyAndAmount"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="ChargeBearerType1Code">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="DEBT"/>
+ <xs:enumeration value="CRED"/>
+ <xs:enumeration value="SHAR"/>
+ <xs:enumeration value="SLEV"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="ChargeType3Choice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="Cd" type="ExternalChargeType1Code"/>
+ <xs:element name="Prtry" type="GenericIdentification3"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="Charges3">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="TtlChrgsAndTaxAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Rcrd" type="ChargesRecord1"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ChargesRecord1">
+ <xs:sequence>
+ <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CdtDbtInd" type="CreditDebitCode"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="ChargeType3Choice"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Rate" type="PercentageRate"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Br" type="ChargeBearerType1Code"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Agt" type="BranchAndFinancialInstitutionIdentification5"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Tax" type="TaxCharges2"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ClearingSystemIdentification2Choice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="Cd" type="ExternalClearingSystemIdentification1Code"/>
+ <xs:element name="Prtry" type="Max35Text"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ClearingSystemMemberIdentification2">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="ClrSysId" type="ClearingSystemIdentification2Choice"/>
+ <xs:element name="MmbId" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ContactDetails2">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="NmPrfx" type="NamePrefix1Code"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max140Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="PhneNb" type="PhoneNumber"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="MobNb" type="PhoneNumber"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="FaxNb" type="PhoneNumber"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="EmailAdr" type="Max2048Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Othr" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="CopyDuplicate1Code">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="CODU"/>
+ <xs:enumeration value="COPY"/>
+ <xs:enumeration value="DUPL"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="CorporateAction9">
+ <xs:sequence>
+ <xs:element name="EvtTp" type="Max35Text"/>
+ <xs:element name="EvtId" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="CountryCode">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[A-Z]{2,2}"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="CreditDebitCode">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="CRDT"/>
+ <xs:enumeration value="DBIT"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="CreditorReferenceInformation2">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="CreditorReferenceType2"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Ref" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="CreditorReferenceType1Choice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="Cd" type="DocumentType3Code"/>
+ <xs:element name="Prtry" type="Max35Text"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="CreditorReferenceType2">
+ <xs:sequence>
+ <xs:element name="CdOrPrtry" type="CreditorReferenceType1Choice"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="CurrencyAndAmountRange2">
+ <xs:sequence>
+ <xs:element name="Amt" type="ImpliedCurrencyAmountRangeChoice"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CdtDbtInd" type="CreditDebitCode"/>
+ <xs:element name="Ccy" type="ActiveOrHistoricCurrencyCode"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="CurrencyExchange5">
+ <xs:sequence>
+ <xs:element name="SrcCcy" type="ActiveOrHistoricCurrencyCode"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TrgtCcy" type="ActiveOrHistoricCurrencyCode"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="UnitCcy" type="ActiveOrHistoricCurrencyCode"/>
+ <xs:element name="XchgRate" type="BaseOneRate"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CtrctId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="QtnDt" type="ISODateTime"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="DateAndDateTimeChoice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="Dt" type="ISODate"/>
+ <xs:element name="DtTm" type="ISODateTime"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="DateAndPlaceOfBirth">
+ <xs:sequence>
+ <xs:element name="BirthDt" type="ISODate"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="PrvcOfBirth" type="Max35Text"/>
+ <xs:element name="CityOfBirth" type="Max35Text"/>
+ <xs:element name="CtryOfBirth" type="CountryCode"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="DateOrDateTimePeriodChoice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="Dt" type="DatePeriodDetails"/>
+ <xs:element name="DtTm" type="DateTimePeriodDetails"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="DatePeriodDetails">
+ <xs:sequence>
+ <xs:element name="FrDt" type="ISODate"/>
+ <xs:element name="ToDt" type="ISODate"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="DateTimePeriodDetails">
+ <xs:sequence>
+ <xs:element name="FrDtTm" type="ISODateTime"/>
+ <xs:element name="ToDtTm" type="ISODateTime"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="DecimalNumber">
+ <xs:restriction base="xs:decimal">
+ <xs:fractionDigits value="17"/>
+ <xs:totalDigits value="18"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="DiscountAmountAndType1">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="DiscountAmountType1Choice"/>
+ <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="DiscountAmountType1Choice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="Cd" type="ExternalDiscountAmountType1Code"/>
+ <xs:element name="Prtry" type="Max35Text"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="DisplayCapabilities1">
+ <xs:sequence>
+ <xs:element name="DispTp" type="UserInterface2Code"/>
+ <xs:element name="NbOfLines" type="Max3NumericText"/>
+ <xs:element name="LineWidth" type="Max3NumericText"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="Document">
+ <xs:sequence>
+ <xs:element name="BkToCstmrDbtCdtNtfctn" type="BankToCustomerDebitCreditNotificationV03"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="DocumentAdjustment1">
+ <xs:sequence>
+ <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CdtDbtInd" type="CreditDebitCode"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Rsn" type="Max4Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="AddtlInf" type="Max140Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="DocumentType3Code">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="RADM"/>
+ <xs:enumeration value="RPIN"/>
+ <xs:enumeration value="FXDR"/>
+ <xs:enumeration value="DISP"/>
+ <xs:enumeration value="PUOR"/>
+ <xs:enumeration value="SCOR"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="DocumentType5Code">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="MSIN"/>
+ <xs:enumeration value="CNFA"/>
+ <xs:enumeration value="DNFA"/>
+ <xs:enumeration value="CINV"/>
+ <xs:enumeration value="CREN"/>
+ <xs:enumeration value="DEBN"/>
+ <xs:enumeration value="HIRI"/>
+ <xs:enumeration value="SBIN"/>
+ <xs:enumeration value="CMCN"/>
+ <xs:enumeration value="SOAC"/>
+ <xs:enumeration value="DISP"/>
+ <xs:enumeration value="BOLD"/>
+ <xs:enumeration value="VCHR"/>
+ <xs:enumeration value="AROI"/>
+ <xs:enumeration value="TSUT"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="EntryDetails2">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="Btch" type="BatchInformation2"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="TxDtls" type="EntryTransaction3"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="EntryStatus2Code">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="BOOK"/>
+ <xs:enumeration value="PDNG"/>
+ <xs:enumeration value="INFO"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="EntryTransaction3">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="Refs" type="TransactionReferences3"/>
+ <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
+ <xs:element name="CdtDbtInd" type="CreditDebitCode"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="AmtDtls" type="AmountAndCurrencyExchange3"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Avlbty" type="CashBalanceAvailability2"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="BkTxCd" type="BankTransactionCodeStructure4"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Chrgs" type="Charges3"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Intrst" type="TransactionInterest3"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RltdPties" type="TransactionParties3"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RltdAgts" type="TransactionAgents3"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Purp" type="Purpose2Choice"/>
+ <xs:element maxOccurs="10" minOccurs="0" name="RltdRmtInf" type="RemittanceLocation2"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RmtInf" type="RemittanceInformation7"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RltdDts" type="TransactionDates2"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RltdPric" type="TransactionPrice3Choice"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="RltdQties" type="TransactionQuantities2Choice"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="FinInstrmId" type="SecurityIdentification14"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Tax" type="TaxInformation3"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RtrInf" type="PaymentReturnReason2"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CorpActn" type="CorporateAction9"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="SfkpgAcct" type="SecuritiesAccount13"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="CshDpst" type="CashDeposit1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CardTx" type="CardTransaction1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="AddtlTxInf" type="Max500Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="Exact1NumericText">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[0-9]"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Exact3NumericText">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[0-9]{3}"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Exact4AlphaNumericText">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[a-zA-Z0-9]{4}"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ExternalAccountIdentification1Code">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="4"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ExternalBankTransactionDomain1Code">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="4"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ExternalBankTransactionFamily1Code">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="4"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ExternalBankTransactionSubFamily1Code">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="4"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ExternalCardTransactionCategory1Code">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="4"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ExternalCashAccountType1Code">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="4"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ExternalChargeType1Code">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="4"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ExternalClearingSystemIdentification1Code">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="5"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ExternalDiscountAmountType1Code">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="4"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ExternalFinancialInstitutionIdentification1Code">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="4"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ExternalFinancialInstrumentIdentificationType1Code">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="4"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ExternalOrganisationIdentification1Code">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="4"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ExternalPersonIdentification1Code">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="4"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ExternalPurpose1Code">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="4"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ExternalReportingSource1Code">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="4"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ExternalReturnReason1Code">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="4"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ExternalTaxAmountType1Code">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="4"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ExternalTechnicalInputChannel1Code">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="4"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="FinancialIdentificationSchemeName1Choice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="Cd" type="ExternalFinancialInstitutionIdentification1Code"/>
+ <xs:element name="Prtry" type="Max35Text"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="FinancialInstitutionIdentification8">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="BICFI" type="BICFIIdentifier"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="ClrSysMmbId" type="ClearingSystemMemberIdentification2"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max140Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="PstlAdr" type="PostalAddress6"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Othr" type="GenericFinancialIdentification1"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="FinancialInstrumentQuantityChoice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="Unit" type="DecimalNumber"/>
+ <xs:element name="FaceAmt" type="ImpliedCurrencyAndAmount"/>
+ <xs:element name="AmtsdVal" type="ImpliedCurrencyAndAmount"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="FromToAmountRange">
+ <xs:sequence>
+ <xs:element name="FrAmt" type="AmountRangeBoundary1"/>
+ <xs:element name="ToAmt" type="AmountRangeBoundary1"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="GenericAccountIdentification1">
+ <xs:sequence>
+ <xs:element name="Id" type="Max34Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="SchmeNm" type="AccountSchemeName1Choice"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="GenericFinancialIdentification1">
+ <xs:sequence>
+ <xs:element name="Id" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="SchmeNm" type="FinancialIdentificationSchemeName1Choice"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="GenericIdentification1">
+ <xs:sequence>
+ <xs:element name="Id" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="SchmeNm" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="GenericIdentification20">
+ <xs:sequence>
+ <xs:element name="Id" type="Exact4AlphaNumericText"/>
+ <xs:element name="Issr" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="SchmeNm" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="GenericIdentification3">
+ <xs:sequence>
+ <xs:element name="Id" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="GenericIdentification32">
+ <xs:sequence>
+ <xs:element name="Id" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="PartyType3Code"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="PartyType4Code"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="ShrtNm" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="GenericOrganisationIdentification1">
+ <xs:sequence>
+ <xs:element name="Id" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="SchmeNm" type="OrganisationIdentificationSchemeName1Choice"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="GenericPersonIdentification1">
+ <xs:sequence>
+ <xs:element name="Id" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="SchmeNm" type="PersonIdentificationSchemeName1Choice"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="GroupHeader58">
+ <xs:sequence>
+ <xs:element name="MsgId" type="Max35Text"/>
+ <xs:element name="CreDtTm" type="ISODateTime"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="MsgRcpt" type="PartyIdentification43"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="MsgPgntn" type="Pagination"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="OrgnlBizQry" type="OriginalBusinessQuery1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="AddtlInf" type="Max500Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="IBAN2007Identifier">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ISINIdentifier">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[A-Z0-9]{12,12}"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ISODate">
+ <xs:restriction base="xs:date"/>
+ </xs:simpleType>
+ <xs:simpleType name="ISODateTime">
+ <xs:restriction base="xs:dateTime"/>
+ </xs:simpleType>
+ <xs:simpleType name="ISOYearMonth">
+ <xs:restriction base="xs:gYearMonth"/>
+ </xs:simpleType>
+ <xs:complexType name="IdentificationSource3Choice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="Cd" type="ExternalFinancialInstrumentIdentificationType1Code"/>
+ <xs:element name="Prtry" type="Max35Text"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ImpliedCurrencyAmountRangeChoice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="FrAmt" type="AmountRangeBoundary1"/>
+ <xs:element name="ToAmt" type="AmountRangeBoundary1"/>
+ <xs:element name="FrToAmt" type="FromToAmountRange"/>
+ <xs:element name="EQAmt" type="ImpliedCurrencyAndAmount"/>
+ <xs:element name="NEQAmt" type="ImpliedCurrencyAndAmount"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="ImpliedCurrencyAndAmount">
+ <xs:restriction base="xs:decimal">
+ <xs:fractionDigits value="5"/>
+ <xs:totalDigits value="18"/>
+ <xs:minInclusive value="0"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="InterestRecord1">
+ <xs:sequence>
+ <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
+ <xs:element name="CdtDbtInd" type="CreditDebitCode"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="InterestType1Choice"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Rate" type="Rate3"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="FrToDt" type="DateTimePeriodDetails"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Rsn" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Tax" type="TaxCharges2"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="InterestType1Choice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="Cd" type="InterestType1Code"/>
+ <xs:element name="Prtry" type="Max35Text"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="InterestType1Code">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="INDY"/>
+ <xs:enumeration value="OVRN"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Max105Text">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="105"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Max140Text">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="140"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Max15NumericText">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[0-9]{1,15}"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Max15PlusSignedNumericText">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[\+]{0,1}[0-9]{1,15}"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Max16Text">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="16"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Max2048Text">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="2048"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Max34Text">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="34"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Max350Text">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="350"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Max35Text">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="35"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Max3NumericText">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[0-9]{1,3}"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Max4Text">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="4"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Max500Text">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="500"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Max5NumericText">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[0-9]{1,5}"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Max70Text">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="70"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="MessageIdentification2">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="MsgNmId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="MsgId" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="Min2Max3NumericText">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[0-9]{2,3}"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Min3Max4NumericText">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[0-9]{3,4}"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Min8Max28NumericText">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[0-9]{8,28}"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="NameAndAddress10">
+ <xs:sequence>
+ <xs:element name="Nm" type="Max140Text"/>
+ <xs:element name="Adr" type="PostalAddress6"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="NamePrefix1Code">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="DOCT"/>
+ <xs:enumeration value="MIST"/>
+ <xs:enumeration value="MISS"/>
+ <xs:enumeration value="MADM"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Number">
+ <xs:restriction base="xs:decimal">
+ <xs:fractionDigits value="0"/>
+ <xs:totalDigits value="18"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="NumberAndSumOfTransactions1">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="NbOfNtries" type="Max15NumericText"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Sum" type="DecimalNumber"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="NumberAndSumOfTransactions2">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="NbOfNtries" type="Max15NumericText"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Sum" type="DecimalNumber"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TtlNetNtryAmt" type="DecimalNumber"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CdtDbtInd" type="CreditDebitCode"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="OnLineCapability1Code">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="OFLN"/>
+ <xs:enumeration value="ONLN"/>
+ <xs:enumeration value="SMON"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="OrganisationIdentification8">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="AnyBIC" type="AnyBICIdentifier"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Othr" type="GenericOrganisationIdentification1"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="OrganisationIdentificationSchemeName1Choice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="Cd" type="ExternalOrganisationIdentification1Code"/>
+ <xs:element name="Prtry" type="Max35Text"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="OriginalAndCurrentQuantities1">
+ <xs:sequence>
+ <xs:element name="FaceAmt" type="ImpliedCurrencyAndAmount"/>
+ <xs:element name="AmtsdVal" type="ImpliedCurrencyAndAmount"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="OriginalBusinessQuery1">
+ <xs:sequence>
+ <xs:element name="MsgId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="MsgNmId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CreDtTm" type="ISODateTime"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="OtherIdentification1">
+ <xs:sequence>
+ <xs:element name="Id" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Sfx" type="Max16Text"/>
+ <xs:element name="Tp" type="IdentificationSource3Choice"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="POIComponentType1Code">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="SOFT"/>
+ <xs:enumeration value="EMVK"/>
+ <xs:enumeration value="EMVO"/>
+ <xs:enumeration value="MRIT"/>
+ <xs:enumeration value="CHIT"/>
+ <xs:enumeration value="SECM"/>
+ <xs:enumeration value="PEDV"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="Pagination">
+ <xs:sequence>
+ <xs:element name="PgNb" type="Max5NumericText"/>
+ <xs:element name="LastPgInd" type="YesNoIndicator"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="Party11Choice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="OrgId" type="OrganisationIdentification8"/>
+ <xs:element name="PrvtId" type="PersonIdentification5"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="PartyIdentification43">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max140Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="PstlAdr" type="PostalAddress6"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Id" type="Party11Choice"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CtryOfRes" type="CountryCode"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CtctDtls" type="ContactDetails2"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="PartyType3Code">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="OPOI"/>
+ <xs:enumeration value="MERC"/>
+ <xs:enumeration value="ACCP"/>
+ <xs:enumeration value="ITAG"/>
+ <xs:enumeration value="ACQR"/>
+ <xs:enumeration value="CISS"/>
+ <xs:enumeration value="DLIS"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="PartyType4Code">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="MERC"/>
+ <xs:enumeration value="ACCP"/>
+ <xs:enumeration value="ITAG"/>
+ <xs:enumeration value="ACQR"/>
+ <xs:enumeration value="CISS"/>
+ <xs:enumeration value="TAXH"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="PaymentCard4">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="PlainCardData" type="PlainCardData1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CardCtryCd" type="Exact3NumericText"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CardBrnd" type="GenericIdentification1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="AddtlCardData" type="Max70Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="PaymentReturnReason2">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="OrgnlBkTxCd" type="BankTransactionCodeStructure4"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Orgtr" type="PartyIdentification43"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Rsn" type="ReturnReason5Choice"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="AddtlInf" type="Max105Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="PercentageRate">
+ <xs:restriction base="xs:decimal">
+ <xs:fractionDigits value="10"/>
+ <xs:totalDigits value="11"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="PersonIdentification5">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="DtAndPlcOfBirth" type="DateAndPlaceOfBirth"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Othr" type="GenericPersonIdentification1"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="PersonIdentificationSchemeName1Choice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="Cd" type="ExternalPersonIdentification1Code"/>
+ <xs:element name="Prtry" type="Max35Text"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="PhoneNumber">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="\+[0-9]{1,3}-[0-9()+\-]{1,30}"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="PlainCardData1">
+ <xs:sequence>
+ <xs:element name="PAN" type="Min8Max28NumericText"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CardSeqNb" type="Min2Max3NumericText"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="FctvDt" type="ISOYearMonth"/>
+ <xs:element name="XpryDt" type="ISOYearMonth"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="SvcCd" type="Exact3NumericText"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="TrckData" type="TrackData1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CardSctyCd" type="CardSecurityInformation1"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="PointOfInteraction1">
+ <xs:sequence>
+ <xs:element name="Id" type="GenericIdentification32"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="SysNm" type="Max70Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="GrpId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Cpblties" type="PointOfInteractionCapabilities1"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Cmpnt" type="PointOfInteractionComponent1"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="PointOfInteractionCapabilities1">
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="CardRdngCpblties" type="CardDataReading1Code"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="CrdhldrVrfctnCpblties" type="CardholderVerificationCapability1Code"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="OnLineCpblties" type="OnLineCapability1Code"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="DispCpblties" type="DisplayCapabilities1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="PrtLineWidth" type="Max3NumericText"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="PointOfInteractionComponent1">
+ <xs:sequence>
+ <xs:element name="POICmpntTp" type="POIComponentType1Code"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="ManfctrId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Mdl" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="VrsnNb" type="Max16Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="SrlNb" type="Max35Text"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="ApprvlNb" type="Max70Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="PostalAddress6">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="AdrTp" type="AddressType2Code"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Dept" type="Max70Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="SubDept" type="Max70Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="StrtNm" type="Max70Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="BldgNb" type="Max16Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="PstCd" type="Max16Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TwnNm" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CtrySubDvsn" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Ctry" type="CountryCode"/>
+ <xs:element maxOccurs="7" minOccurs="0" name="AdrLine" type="Max70Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="Price2">
+ <xs:sequence>
+ <xs:element name="Tp" type="YieldedOrValueType1Choice"/>
+ <xs:element name="Val" type="PriceRateOrAmountChoice"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="PriceRateOrAmountChoice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="Rate" type="PercentageRate"/>
+ <xs:element name="Amt" type="ActiveOrHistoricCurrencyAnd13DecimalAmount"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="PriceValueType1Code">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="DISC"/>
+ <xs:enumeration value="PREM"/>
+ <xs:enumeration value="PARV"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="Product2">
+ <xs:sequence>
+ <xs:element name="PdctCd" type="Max70Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="UnitOfMeasr" type="UnitOfMeasure1Code"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="PdctQty" type="DecimalNumber"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="UnitPric" type="ImpliedCurrencyAndAmount"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="PdctAmt" type="ImpliedCurrencyAndAmount"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TaxTp" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="AddtlPdctInf" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ProprietaryAgent3">
+ <xs:sequence>
+ <xs:element name="Tp" type="Max35Text"/>
+ <xs:element name="Agt" type="BranchAndFinancialInstitutionIdentification5"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ProprietaryBankTransactionCodeStructure1">
+ <xs:sequence>
+ <xs:element name="Cd" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ProprietaryDate2">
+ <xs:sequence>
+ <xs:element name="Tp" type="Max35Text"/>
+ <xs:element name="Dt" type="DateAndDateTimeChoice"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ProprietaryParty3">
+ <xs:sequence>
+ <xs:element name="Tp" type="Max35Text"/>
+ <xs:element name="Pty" type="PartyIdentification43"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ProprietaryPrice2">
+ <xs:sequence>
+ <xs:element name="Tp" type="Max35Text"/>
+ <xs:element name="Pric" type="ActiveOrHistoricCurrencyAndAmount"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ProprietaryQuantity1">
+ <xs:sequence>
+ <xs:element name="Tp" type="Max35Text"/>
+ <xs:element name="Qty" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ProprietaryReference1">
+ <xs:sequence>
+ <xs:element name="Tp" type="Max35Text"/>
+ <xs:element name="Ref" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="Purpose2Choice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="Cd" type="ExternalPurpose1Code"/>
+ <xs:element name="Prtry" type="Max35Text"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="Rate3">
+ <xs:sequence>
+ <xs:element name="Tp" type="RateType4Choice"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="VldtyRg" type="CurrencyAndAmountRange2"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="RateType4Choice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="Pctg" type="PercentageRate"/>
+ <xs:element name="Othr" type="Max35Text"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ReferredDocumentInformation3">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="ReferredDocumentType2"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Nb" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RltdDt" type="ISODate"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ReferredDocumentType1Choice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="Cd" type="DocumentType5Code"/>
+ <xs:element name="Prtry" type="Max35Text"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ReferredDocumentType2">
+ <xs:sequence>
+ <xs:element name="CdOrPrtry" type="ReferredDocumentType1Choice"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="RemittanceAmount2">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="DuePyblAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="DscntApldAmt" type="DiscountAmountAndType1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CdtNoteAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="TaxAmt" type="TaxAmountAndType1"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="AdjstmntAmtAndRsn" type="DocumentAdjustment1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RmtdAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="RemittanceInformation7">
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Ustrd" type="Max140Text"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Strd" type="StructuredRemittanceInformation9"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="RemittanceLocation2">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="RmtId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RmtLctnMtd" type="RemittanceLocationMethod2Code"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RmtLctnElctrncAdr" type="Max2048Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RmtLctnPstlAdr" type="NameAndAddress10"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="RemittanceLocationMethod2Code">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="FAXI"/>
+ <xs:enumeration value="EDIC"/>
+ <xs:enumeration value="URID"/>
+ <xs:enumeration value="EMAL"/>
+ <xs:enumeration value="POST"/>
+ <xs:enumeration value="SMSM"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="ReportEntry3">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="NtryRef" type="Max35Text"/>
+ <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
+ <xs:element name="CdtDbtInd" type="CreditDebitCode"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RvslInd" type="TrueFalseIndicator"/>
+ <xs:element name="Sts" type="EntryStatus2Code"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="BookgDt" type="DateAndDateTimeChoice"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="ValDt" type="DateAndDateTimeChoice"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="AcctSvcrRef" type="Max35Text"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Avlbty" type="CashBalanceAvailability2"/>
+ <xs:element name="BkTxCd" type="BankTransactionCodeStructure4"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="ComssnWvrInd" type="YesNoIndicator"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="AddtlInfInd" type="MessageIdentification2"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="AmtDtls" type="AmountAndCurrencyExchange3"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Chrgs" type="Charges3"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TechInptChanl" type="TechnicalInputChannel1Choice"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Intrst" type="TransactionInterest3"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CardTx" type="CardEntry1"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="NtryDtls" type="EntryDetails2"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="AddtlNtryInf" type="Max500Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ReportingSource1Choice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="Cd" type="ExternalReportingSource1Code"/>
+ <xs:element name="Prtry" type="Max35Text"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ReturnReason5Choice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="Cd" type="ExternalReturnReason1Code"/>
+ <xs:element name="Prtry" type="Max35Text"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="SecuritiesAccount13">
+ <xs:sequence>
+ <xs:element name="Id" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="GenericIdentification20"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max70Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="SecurityIdentification14">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="ISIN" type="ISINIdentifier"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="OthrId" type="OtherIdentification1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Desc" type="Max140Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="StructuredRemittanceInformation9">
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="RfrdDocInf" type="ReferredDocumentInformation3"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RfrdDocAmt" type="RemittanceAmount2"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CdtrRefInf" type="CreditorReferenceInformation2"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Invcr" type="PartyIdentification43"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Invcee" type="PartyIdentification43"/>
+ <xs:element maxOccurs="3" minOccurs="0" name="AddtlRmtInf" type="Max140Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="SupplementaryData1">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="PlcAndNm" type="Max350Text"/>
+ <xs:element name="Envlp" type="SupplementaryDataEnvelope1"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="SupplementaryDataEnvelope1">
+ <xs:sequence>
+ <xs:any namespace="##any" processContents="lax"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TaxAmount1">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="Rate" type="PercentageRate"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TaxblBaseAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TtlAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Dtls" type="TaxRecordDetails1"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TaxAmountAndType1">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="TaxAmountType1Choice"/>
+ <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TaxAmountType1Choice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="Cd" type="ExternalTaxAmountType1Code"/>
+ <xs:element name="Prtry" type="Max35Text"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TaxAuthorisation1">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="Titl" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max140Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TaxCharges2">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="Id" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Rate" type="PercentageRate"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TaxInformation3">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="Cdtr" type="TaxParty1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Dbtr" type="TaxParty2"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="AdmstnZn" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RefNb" type="Max140Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Mtd" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TtlTaxblBaseAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TtlTaxAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Dt" type="ISODate"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="SeqNb" type="Number"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Rcrd" type="TaxRecord1"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TaxParty1">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="TaxId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RegnId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TaxTp" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TaxParty2">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="TaxId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RegnId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TaxTp" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Authstn" type="TaxAuthorisation1"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TaxPeriod1">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="Yr" type="ISODate"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="TaxRecordPeriod1Code"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="FrToDt" type="DatePeriodDetails"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TaxRecord1">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Ctgy" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CtgyDtls" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="DbtrSts" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CertId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="FrmsCd" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Prd" type="TaxPeriod1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TaxAmt" type="TaxAmount1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="AddtlInf" type="Max140Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TaxRecordDetails1">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="Prd" type="TaxPeriod1"/>
+ <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="TaxRecordPeriod1Code">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="MM01"/>
+ <xs:enumeration value="MM02"/>
+ <xs:enumeration value="MM03"/>
+ <xs:enumeration value="MM04"/>
+ <xs:enumeration value="MM05"/>
+ <xs:enumeration value="MM06"/>
+ <xs:enumeration value="MM07"/>
+ <xs:enumeration value="MM08"/>
+ <xs:enumeration value="MM09"/>
+ <xs:enumeration value="MM10"/>
+ <xs:enumeration value="MM11"/>
+ <xs:enumeration value="MM12"/>
+ <xs:enumeration value="QTR1"/>
+ <xs:enumeration value="QTR2"/>
+ <xs:enumeration value="QTR3"/>
+ <xs:enumeration value="QTR4"/>
+ <xs:enumeration value="HLF1"/>
+ <xs:enumeration value="HLF2"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="TechnicalInputChannel1Choice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="Cd" type="ExternalTechnicalInputChannel1Code"/>
+ <xs:element name="Prtry" type="Max35Text"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TotalTransactions2">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="TtlNtries" type="NumberAndSumOfTransactions2"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TtlCdtNtries" type="NumberAndSumOfTransactions1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TtlDbtNtries" type="NumberAndSumOfTransactions1"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="TtlNtriesPerBkTxCd" type="TotalsPerBankTransactionCode2"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TotalsPerBankTransactionCode2">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="NbOfNtries" type="Max15NumericText"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Sum" type="DecimalNumber"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TtlNetNtryAmt" type="DecimalNumber"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CdtDbtInd" type="CreditDebitCode"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="FcstInd" type="TrueFalseIndicator"/>
+ <xs:element name="BkTxCd" type="BankTransactionCodeStructure4"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Avlbty" type="CashBalanceAvailability2"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TrackData1">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="TrckNb" type="Exact1NumericText"/>
+ <xs:element name="TrckVal" type="Max140Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TransactionAgents3">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="DbtrAgt" type="BranchAndFinancialInstitutionIdentification5"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CdtrAgt" type="BranchAndFinancialInstitutionIdentification5"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="IntrmyAgt1" type="BranchAndFinancialInstitutionIdentification5"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="IntrmyAgt2" type="BranchAndFinancialInstitutionIdentification5"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="IntrmyAgt3" type="BranchAndFinancialInstitutionIdentification5"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RcvgAgt" type="BranchAndFinancialInstitutionIdentification5"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="DlvrgAgt" type="BranchAndFinancialInstitutionIdentification5"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="IssgAgt" type="BranchAndFinancialInstitutionIdentification5"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="SttlmPlc" type="BranchAndFinancialInstitutionIdentification5"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Prtry" type="ProprietaryAgent3"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TransactionDates2">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="AccptncDtTm" type="ISODateTime"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TradActvtyCtrctlSttlmDt" type="ISODate"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TradDt" type="ISODate"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="IntrBkSttlmDt" type="ISODate"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="StartDt" type="ISODate"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="EndDt" type="ISODate"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TxDtTm" type="ISODateTime"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Prtry" type="ProprietaryDate2"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TransactionIdentifier1">
+ <xs:sequence>
+ <xs:element name="TxDtTm" type="ISODateTime"/>
+ <xs:element name="TxRef" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TransactionInterest3">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="TtlIntrstAndTaxAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Rcrd" type="InterestRecord1"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TransactionParties3">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="InitgPty" type="PartyIdentification43"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Dbtr" type="PartyIdentification43"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="DbtrAcct" type="CashAccount24"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="UltmtDbtr" type="PartyIdentification43"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Cdtr" type="PartyIdentification43"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CdtrAcct" type="CashAccount24"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="UltmtCdtr" type="PartyIdentification43"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TradgPty" type="PartyIdentification43"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Prtry" type="ProprietaryParty3"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TransactionPrice3Choice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="DealPric" type="Price2"/>
+ <xs:element maxOccurs="unbounded" minOccurs="1" name="Prtry" type="ProprietaryPrice2"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TransactionQuantities2Choice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="Qty" type="FinancialInstrumentQuantityChoice"/>
+ <xs:element name="OrgnlAndCurFaceAmt" type="OriginalAndCurrentQuantities1"/>
+ <xs:element name="Prtry" type="ProprietaryQuantity1"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TransactionReferences3">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="MsgId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="AcctSvcrRef" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="PmtInfId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="InstrId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="EndToEndId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TxId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="MndtId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="ChqNb" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="ClrSysRef" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="AcctOwnrTxId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="AcctSvcrTxId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="MktInfrstrctrTxId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="PrcgId" type="Max35Text"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Prtry" type="ProprietaryReference1"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="TrueFalseIndicator">
+ <xs:restriction base="xs:boolean"/>
+ </xs:simpleType>
+ <xs:simpleType name="UnitOfMeasure1Code">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="PIEC"/>
+ <xs:enumeration value="TONS"/>
+ <xs:enumeration value="FOOT"/>
+ <xs:enumeration value="GBGA"/>
+ <xs:enumeration value="USGA"/>
+ <xs:enumeration value="GRAM"/>
+ <xs:enumeration value="INCH"/>
+ <xs:enumeration value="KILO"/>
+ <xs:enumeration value="PUND"/>
+ <xs:enumeration value="METR"/>
+ <xs:enumeration value="CMET"/>
+ <xs:enumeration value="MMET"/>
+ <xs:enumeration value="LITR"/>
+ <xs:enumeration value="CELI"/>
+ <xs:enumeration value="MILI"/>
+ <xs:enumeration value="GBOU"/>
+ <xs:enumeration value="USOU"/>
+ <xs:enumeration value="GBQA"/>
+ <xs:enumeration value="USQA"/>
+ <xs:enumeration value="GBPI"/>
+ <xs:enumeration value="USPI"/>
+ <xs:enumeration value="MILE"/>
+ <xs:enumeration value="KMET"/>
+ <xs:enumeration value="YARD"/>
+ <xs:enumeration value="SQKI"/>
+ <xs:enumeration value="HECT"/>
+ <xs:enumeration value="ARES"/>
+ <xs:enumeration value="SMET"/>
+ <xs:enumeration value="SCMT"/>
+ <xs:enumeration value="SMIL"/>
+ <xs:enumeration value="SQMI"/>
+ <xs:enumeration value="SQYA"/>
+ <xs:enumeration value="SQFO"/>
+ <xs:enumeration value="SQIN"/>
+ <xs:enumeration value="ACRE"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="UserInterface2Code">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="MDSP"/>
+ <xs:enumeration value="CDSP"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="YesNoIndicator">
+ <xs:restriction base="xs:boolean"/>
+ </xs:simpleType>
+ <xs:complexType name="YieldedOrValueType1Choice">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="Yldd" type="YesNoIndicator"/>
+ <xs:element name="ValTp" type="PriceValueType1Code"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+</xs:schema>
\ No newline at end of file
diff --git a/tests/camt.054.001.04.xsd b/tests/camt.054.001.04.xsd
new file mode 100644
index 0000000..cfd5026
--- /dev/null
+++ b/tests/camt.054.001.04.xsd
@@ -0,0 +1,1709 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--Generated by Standards Editor (build:R1.0.41.3) on 2013 Mar 05 13:39:37, ISO 20022 version : 2013-->
+<xs:schema xmlns="urn:iso:std:iso:20022:tech:xsd:camt.054.001.04" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="urn:iso:std:iso:20022:tech:xsd:camt.054.001.04">
+ <xs:element name="Document" type="Document"/>
+ <xs:complexType name="AccountIdentification4Choice">
+ <xs:choice>
+ <xs:element name="IBAN" type="IBAN2007Identifier"/>
+ <xs:element name="Othr" type="GenericAccountIdentification1"/>
+ </xs:choice>
+ </xs:complexType>
+ <xs:complexType name="AccountInterest2">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="InterestType1Choice"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Rate" type="Rate3"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="FrToDt" type="DateTimePeriodDetails"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Rsn" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="AccountNotification7">
+ <xs:sequence>
+ <xs:element name="Id" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="NtfctnPgntn" type="Pagination"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="ElctrncSeqNb" type="Number"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="LglSeqNb" type="Number"/>
+ <xs:element name="CreDtTm" type="ISODateTime"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="FrToDt" type="DateTimePeriodDetails"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CpyDplctInd" type="CopyDuplicate1Code"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RptgSrc" type="ReportingSource1Choice"/>
+ <xs:element name="Acct" type="CashAccount25"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RltdAcct" type="CashAccount24"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Intrst" type="AccountInterest2"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TxsSummry" type="TotalTransactions4"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Ntry" type="ReportEntry4"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="AddtlNtfctnInf" type="Max500Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="AccountSchemeName1Choice">
+ <xs:choice>
+ <xs:element name="Cd" type="ExternalAccountIdentification1Code"/>
+ <xs:element name="Prtry" type="Max35Text"/>
+ </xs:choice>
+ </xs:complexType>
+ <xs:simpleType name="ActiveCurrencyAndAmount_SimpleType">
+ <xs:restriction base="xs:decimal">
+ <xs:fractionDigits value="5"/>
+ <xs:totalDigits value="18"/>
+ <xs:minInclusive value="0"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="ActiveCurrencyAndAmount">
+ <xs:simpleContent>
+ <xs:extension base="ActiveCurrencyAndAmount_SimpleType">
+ <xs:attribute name="Ccy" type="ActiveCurrencyCode" use="required"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ <xs:simpleType name="ActiveCurrencyCode">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[A-Z]{3,3}"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ActiveOrHistoricCurrencyAnd13DecimalAmount_SimpleType">
+ <xs:restriction base="xs:decimal">
+ <xs:fractionDigits value="13"/>
+ <xs:totalDigits value="18"/>
+ <xs:minInclusive value="0"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="ActiveOrHistoricCurrencyAnd13DecimalAmount">
+ <xs:simpleContent>
+ <xs:extension base="ActiveOrHistoricCurrencyAnd13DecimalAmount_SimpleType">
+ <xs:attribute name="Ccy" type="ActiveOrHistoricCurrencyCode" use="required"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ <xs:simpleType name="ActiveOrHistoricCurrencyAndAmount_SimpleType">
+ <xs:restriction base="xs:decimal">
+ <xs:fractionDigits value="5"/>
+ <xs:totalDigits value="18"/>
+ <xs:minInclusive value="0"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="ActiveOrHistoricCurrencyAndAmount">
+ <xs:simpleContent>
+ <xs:extension base="ActiveOrHistoricCurrencyAndAmount_SimpleType">
+ <xs:attribute name="Ccy" type="ActiveOrHistoricCurrencyCode" use="required"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ <xs:simpleType name="ActiveOrHistoricCurrencyCode">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[A-Z]{3,3}"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="AddressType2Code">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="ADDR"/>
+ <xs:enumeration value="PBOX"/>
+ <xs:enumeration value="HOME"/>
+ <xs:enumeration value="BIZZ"/>
+ <xs:enumeration value="MLTO"/>
+ <xs:enumeration value="DLVY"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="AmountAndCurrencyExchange3">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="InstdAmt" type="AmountAndCurrencyExchangeDetails3"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TxAmt" type="AmountAndCurrencyExchangeDetails3"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CntrValAmt" type="AmountAndCurrencyExchangeDetails3"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="AnncdPstngAmt" type="AmountAndCurrencyExchangeDetails3"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="PrtryAmt" type="AmountAndCurrencyExchangeDetails4"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="AmountAndCurrencyExchangeDetails3">
+ <xs:sequence>
+ <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CcyXchg" type="CurrencyExchange5"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="AmountAndCurrencyExchangeDetails4">
+ <xs:sequence>
+ <xs:element name="Tp" type="Max35Text"/>
+ <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CcyXchg" type="CurrencyExchange5"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="AmountAndDirection35">
+ <xs:sequence>
+ <xs:element name="Amt" type="NonNegativeDecimalNumber"/>
+ <xs:element name="CdtDbtInd" type="CreditDebitCode"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="AmountRangeBoundary1">
+ <xs:sequence>
+ <xs:element name="BdryAmt" type="ImpliedCurrencyAndAmount"/>
+ <xs:element name="Incl" type="YesNoIndicator"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="AnyBICIdentifier">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="BICFIIdentifier">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="BankToCustomerDebitCreditNotificationV04">
+ <xs:sequence>
+ <xs:element name="GrpHdr" type="GroupHeader58"/>
+ <xs:element maxOccurs="unbounded" minOccurs="1" name="Ntfctn" type="AccountNotification7"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="SplmtryData" type="SupplementaryData1"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="BankTransactionCodeStructure4">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="Domn" type="BankTransactionCodeStructure5"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Prtry" type="ProprietaryBankTransactionCodeStructure1"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="BankTransactionCodeStructure5">
+ <xs:sequence>
+ <xs:element name="Cd" type="ExternalBankTransactionDomain1Code"/>
+ <xs:element name="Fmly" type="BankTransactionCodeStructure6"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="BankTransactionCodeStructure6">
+ <xs:sequence>
+ <xs:element name="Cd" type="ExternalBankTransactionFamily1Code"/>
+ <xs:element name="SubFmlyCd" type="ExternalBankTransactionSubFamily1Code"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="BaseOneRate">
+ <xs:restriction base="xs:decimal">
+ <xs:fractionDigits value="10"/>
+ <xs:totalDigits value="11"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="BatchInformation2">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="MsgId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="PmtInfId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="NbOfTxs" type="Max15NumericText"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TtlAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CdtDbtInd" type="CreditDebitCode"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="BranchAndFinancialInstitutionIdentification5">
+ <xs:sequence>
+ <xs:element name="FinInstnId" type="FinancialInstitutionIdentification8"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="BrnchId" type="BranchData2"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="BranchData2">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="Id" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max140Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="PstlAdr" type="PostalAddress6"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="CSCManagement1Code">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="PRST"/>
+ <xs:enumeration value="BYPS"/>
+ <xs:enumeration value="UNRD"/>
+ <xs:enumeration value="NCSC"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="CardAggregated1">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="AddtlSvc" type="CardPaymentServiceType2Code"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TxCtgy" type="ExternalCardTransactionCategory1Code"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="SaleRcncltnId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="SeqNbRg" type="CardSequenceNumberRange1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TxDtRg" type="DateOrDateTimePeriodChoice"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="CardDataReading1Code">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="TAGC"/>
+ <xs:enumeration value="PHYS"/>
+ <xs:enumeration value="BRCD"/>
+ <xs:enumeration value="MGST"/>
+ <xs:enumeration value="CICC"/>
+ <xs:enumeration value="DFLE"/>
+ <xs:enumeration value="CTLS"/>
+ <xs:enumeration value="ECTL"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="CardEntry1">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="Card" type="PaymentCard4"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="POI" type="PointOfInteraction1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="AggtdNtry" type="CardAggregated1"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="CardIndividualTransaction1">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="AddtlSvc" type="CardPaymentServiceType2Code"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TxCtgy" type="ExternalCardTransactionCategory1Code"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="SaleRcncltnId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="SaleRefNb" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="SeqNb" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TxId" type="TransactionIdentifier1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Pdct" type="Product2"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="VldtnDt" type="ISODate"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="VldtnSeqNb" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="CardPaymentServiceType2Code">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="AGGR"/>
+ <xs:enumeration value="DCCV"/>
+ <xs:enumeration value="GRTT"/>
+ <xs:enumeration value="INSP"/>
+ <xs:enumeration value="LOYT"/>
+ <xs:enumeration value="NRES"/>
+ <xs:enumeration value="PUCO"/>
+ <xs:enumeration value="RECP"/>
+ <xs:enumeration value="SOAF"/>
+ <xs:enumeration value="UNAF"/>
+ <xs:enumeration value="VCAU"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="CardSecurityInformation1">
+ <xs:sequence>
+ <xs:element name="CSCMgmt" type="CSCManagement1Code"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CSCVal" type="Min3Max4NumericText"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="CardSequenceNumberRange1">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="FrstTx" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="LastTx" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="CardTransaction1">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="Card" type="PaymentCard4"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="POI" type="PointOfInteraction1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Tx" type="CardTransaction1Choice"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="CardTransaction1Choice">
+ <xs:choice>
+ <xs:element name="Aggtd" type="CardAggregated1"/>
+ <xs:element name="Indv" type="CardIndividualTransaction1"/>
+ </xs:choice>
+ </xs:complexType>
+ <xs:simpleType name="CardholderVerificationCapability1Code">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="MNSG"/>
+ <xs:enumeration value="NPIN"/>
+ <xs:enumeration value="FCPN"/>
+ <xs:enumeration value="FEPN"/>
+ <xs:enumeration value="FDSG"/>
+ <xs:enumeration value="FBIO"/>
+ <xs:enumeration value="MNVR"/>
+ <xs:enumeration value="FBIG"/>
+ <xs:enumeration value="APKI"/>
+ <xs:enumeration value="PKIS"/>
+ <xs:enumeration value="CHDT"/>
+ <xs:enumeration value="SCEC"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="CashAccount24">
+ <xs:sequence>
+ <xs:element name="Id" type="AccountIdentification4Choice"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="CashAccountType2Choice"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Ccy" type="ActiveOrHistoricCurrencyCode"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max70Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="CashAccount25">
+ <xs:sequence>
+ <xs:element name="Id" type="AccountIdentification4Choice"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="CashAccountType2Choice"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Ccy" type="ActiveOrHistoricCurrencyCode"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max70Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Ownr" type="PartyIdentification43"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Svcr" type="BranchAndFinancialInstitutionIdentification5"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="CashAccountType2Choice">
+ <xs:choice>
+ <xs:element name="Cd" type="ExternalCashAccountType1Code"/>
+ <xs:element name="Prtry" type="Max35Text"/>
+ </xs:choice>
+ </xs:complexType>
+ <xs:complexType name="CashBalanceAvailability2">
+ <xs:sequence>
+ <xs:element name="Dt" type="CashBalanceAvailabilityDate1"/>
+ <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
+ <xs:element name="CdtDbtInd" type="CreditDebitCode"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="CashBalanceAvailabilityDate1">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="NbOfDays" type="Max15PlusSignedNumericText"/>
+ <xs:element name="ActlDt" type="ISODate"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="CashDeposit1">
+ <xs:sequence>
+ <xs:element name="NoteDnmtn" type="ActiveCurrencyAndAmount"/>
+ <xs:element name="NbOfNotes" type="Max15NumericText"/>
+ <xs:element name="Amt" type="ActiveCurrencyAndAmount"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="ChargeBearerType1Code">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="DEBT"/>
+ <xs:enumeration value="CRED"/>
+ <xs:enumeration value="SHAR"/>
+ <xs:enumeration value="SLEV"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ChargeIncludedIndicator">
+ <xs:restriction base="xs:boolean"/>
+ </xs:simpleType>
+ <xs:complexType name="ChargeType3Choice">
+ <xs:choice>
+ <xs:element name="Cd" type="ExternalChargeType1Code"/>
+ <xs:element name="Prtry" type="GenericIdentification3"/>
+ </xs:choice>
+ </xs:complexType>
+ <xs:complexType name="Charges4">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="TtlChrgsAndTaxAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Rcrd" type="ChargesRecord2"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ChargesRecord2">
+ <xs:sequence>
+ <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CdtDbtInd" type="CreditDebitCode"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="ChrgInclInd" type="ChargeIncludedIndicator"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="ChargeType3Choice"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Rate" type="PercentageRate"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Br" type="ChargeBearerType1Code"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Agt" type="BranchAndFinancialInstitutionIdentification5"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Tax" type="TaxCharges2"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ClearingSystemIdentification2Choice">
+ <xs:choice>
+ <xs:element name="Cd" type="ExternalClearingSystemIdentification1Code"/>
+ <xs:element name="Prtry" type="Max35Text"/>
+ </xs:choice>
+ </xs:complexType>
+ <xs:complexType name="ClearingSystemMemberIdentification2">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="ClrSysId" type="ClearingSystemIdentification2Choice"/>
+ <xs:element name="MmbId" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ContactDetails2">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="NmPrfx" type="NamePrefix1Code"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max140Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="PhneNb" type="PhoneNumber"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="MobNb" type="PhoneNumber"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="FaxNb" type="PhoneNumber"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="EmailAdr" type="Max2048Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Othr" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="CopyDuplicate1Code">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="CODU"/>
+ <xs:enumeration value="COPY"/>
+ <xs:enumeration value="DUPL"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="CorporateAction9">
+ <xs:sequence>
+ <xs:element name="EvtTp" type="Max35Text"/>
+ <xs:element name="EvtId" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="CountryCode">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[A-Z]{2,2}"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="CreditDebitCode">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="CRDT"/>
+ <xs:enumeration value="DBIT"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="CreditorReferenceInformation2">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="CreditorReferenceType2"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Ref" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="CreditorReferenceType1Choice">
+ <xs:choice>
+ <xs:element name="Cd" type="DocumentType3Code"/>
+ <xs:element name="Prtry" type="Max35Text"/>
+ </xs:choice>
+ </xs:complexType>
+ <xs:complexType name="CreditorReferenceType2">
+ <xs:sequence>
+ <xs:element name="CdOrPrtry" type="CreditorReferenceType1Choice"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="CurrencyAndAmountRange2">
+ <xs:sequence>
+ <xs:element name="Amt" type="ImpliedCurrencyAmountRangeChoice"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CdtDbtInd" type="CreditDebitCode"/>
+ <xs:element name="Ccy" type="ActiveOrHistoricCurrencyCode"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="CurrencyExchange5">
+ <xs:sequence>
+ <xs:element name="SrcCcy" type="ActiveOrHistoricCurrencyCode"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TrgtCcy" type="ActiveOrHistoricCurrencyCode"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="UnitCcy" type="ActiveOrHistoricCurrencyCode"/>
+ <xs:element name="XchgRate" type="BaseOneRate"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CtrctId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="QtnDt" type="ISODateTime"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="DateAndDateTimeChoice">
+ <xs:choice>
+ <xs:element name="Dt" type="ISODate"/>
+ <xs:element name="DtTm" type="ISODateTime"/>
+ </xs:choice>
+ </xs:complexType>
+ <xs:complexType name="DateAndPlaceOfBirth">
+ <xs:sequence>
+ <xs:element name="BirthDt" type="ISODate"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="PrvcOfBirth" type="Max35Text"/>
+ <xs:element name="CityOfBirth" type="Max35Text"/>
+ <xs:element name="CtryOfBirth" type="CountryCode"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="DateOrDateTimePeriodChoice">
+ <xs:choice>
+ <xs:element name="Dt" type="DatePeriodDetails"/>
+ <xs:element name="DtTm" type="DateTimePeriodDetails"/>
+ </xs:choice>
+ </xs:complexType>
+ <xs:complexType name="DatePeriodDetails">
+ <xs:sequence>
+ <xs:element name="FrDt" type="ISODate"/>
+ <xs:element name="ToDt" type="ISODate"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="DateTimePeriodDetails">
+ <xs:sequence>
+ <xs:element name="FrDtTm" type="ISODateTime"/>
+ <xs:element name="ToDtTm" type="ISODateTime"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="DecimalNumber">
+ <xs:restriction base="xs:decimal">
+ <xs:fractionDigits value="17"/>
+ <xs:totalDigits value="18"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="DiscountAmountAndType1">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="DiscountAmountType1Choice"/>
+ <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="DiscountAmountType1Choice">
+ <xs:choice>
+ <xs:element name="Cd" type="ExternalDiscountAmountType1Code"/>
+ <xs:element name="Prtry" type="Max35Text"/>
+ </xs:choice>
+ </xs:complexType>
+ <xs:complexType name="DisplayCapabilities1">
+ <xs:sequence>
+ <xs:element name="DispTp" type="UserInterface2Code"/>
+ <xs:element name="NbOfLines" type="Max3NumericText"/>
+ <xs:element name="LineWidth" type="Max3NumericText"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="Document">
+ <xs:sequence>
+ <xs:element name="BkToCstmrDbtCdtNtfctn" type="BankToCustomerDebitCreditNotificationV04"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="DocumentAdjustment1">
+ <xs:sequence>
+ <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CdtDbtInd" type="CreditDebitCode"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Rsn" type="Max4Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="AddtlInf" type="Max140Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="DocumentType3Code">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="RADM"/>
+ <xs:enumeration value="RPIN"/>
+ <xs:enumeration value="FXDR"/>
+ <xs:enumeration value="DISP"/>
+ <xs:enumeration value="PUOR"/>
+ <xs:enumeration value="SCOR"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="DocumentType5Code">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="MSIN"/>
+ <xs:enumeration value="CNFA"/>
+ <xs:enumeration value="DNFA"/>
+ <xs:enumeration value="CINV"/>
+ <xs:enumeration value="CREN"/>
+ <xs:enumeration value="DEBN"/>
+ <xs:enumeration value="HIRI"/>
+ <xs:enumeration value="SBIN"/>
+ <xs:enumeration value="CMCN"/>
+ <xs:enumeration value="SOAC"/>
+ <xs:enumeration value="DISP"/>
+ <xs:enumeration value="BOLD"/>
+ <xs:enumeration value="VCHR"/>
+ <xs:enumeration value="AROI"/>
+ <xs:enumeration value="TSUT"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="EntryDetails3">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="Btch" type="BatchInformation2"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="TxDtls" type="EntryTransaction4"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="EntryStatus2Code">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="BOOK"/>
+ <xs:enumeration value="PDNG"/>
+ <xs:enumeration value="INFO"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="EntryTransaction4">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="Refs" type="TransactionReferences3"/>
+ <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
+ <xs:element name="CdtDbtInd" type="CreditDebitCode"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="AmtDtls" type="AmountAndCurrencyExchange3"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Avlbty" type="CashBalanceAvailability2"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="BkTxCd" type="BankTransactionCodeStructure4"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Chrgs" type="Charges4"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Intrst" type="TransactionInterest3"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RltdPties" type="TransactionParties3"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RltdAgts" type="TransactionAgents3"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Purp" type="Purpose2Choice"/>
+ <xs:element maxOccurs="10" minOccurs="0" name="RltdRmtInf" type="RemittanceLocation2"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RmtInf" type="RemittanceInformation7"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RltdDts" type="TransactionDates2"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RltdPric" type="TransactionPrice3Choice"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="RltdQties" type="TransactionQuantities2Choice"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="FinInstrmId" type="SecurityIdentification14"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Tax" type="TaxInformation3"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RtrInf" type="PaymentReturnReason2"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CorpActn" type="CorporateAction9"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="SfkpgAcct" type="SecuritiesAccount13"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="CshDpst" type="CashDeposit1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CardTx" type="CardTransaction1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="AddtlTxInf" type="Max500Text"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="SplmtryData" type="SupplementaryData1"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="Exact1NumericText">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[0-9]"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Exact3NumericText">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[0-9]{3}"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Exact4AlphaNumericText">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[a-zA-Z0-9]{4}"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ExternalAccountIdentification1Code">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="4"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ExternalBankTransactionDomain1Code">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="4"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ExternalBankTransactionFamily1Code">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="4"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ExternalBankTransactionSubFamily1Code">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="4"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ExternalCardTransactionCategory1Code">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="4"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ExternalCashAccountType1Code">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="4"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ExternalChargeType1Code">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="4"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ExternalClearingSystemIdentification1Code">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="5"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ExternalDiscountAmountType1Code">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="4"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ExternalFinancialInstitutionIdentification1Code">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="4"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ExternalFinancialInstrumentIdentificationType1Code">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="4"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ExternalOrganisationIdentification1Code">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="4"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ExternalPersonIdentification1Code">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="4"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ExternalPurpose1Code">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="4"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ExternalReportingSource1Code">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="4"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ExternalReturnReason1Code">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="4"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ExternalTaxAmountType1Code">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="4"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ExternalTechnicalInputChannel1Code">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="4"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="FinancialIdentificationSchemeName1Choice">
+ <xs:choice>
+ <xs:element name="Cd" type="ExternalFinancialInstitutionIdentification1Code"/>
+ <xs:element name="Prtry" type="Max35Text"/>
+ </xs:choice>
+ </xs:complexType>
+ <xs:complexType name="FinancialInstitutionIdentification8">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="BICFI" type="BICFIIdentifier"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="ClrSysMmbId" type="ClearingSystemMemberIdentification2"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max140Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="PstlAdr" type="PostalAddress6"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Othr" type="GenericFinancialIdentification1"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="FinancialInstrumentQuantityChoice">
+ <xs:choice>
+ <xs:element name="Unit" type="DecimalNumber"/>
+ <xs:element name="FaceAmt" type="ImpliedCurrencyAndAmount"/>
+ <xs:element name="AmtsdVal" type="ImpliedCurrencyAndAmount"/>
+ </xs:choice>
+ </xs:complexType>
+ <xs:complexType name="FromToAmountRange">
+ <xs:sequence>
+ <xs:element name="FrAmt" type="AmountRangeBoundary1"/>
+ <xs:element name="ToAmt" type="AmountRangeBoundary1"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="GenericAccountIdentification1">
+ <xs:sequence>
+ <xs:element name="Id" type="Max34Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="SchmeNm" type="AccountSchemeName1Choice"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="GenericFinancialIdentification1">
+ <xs:sequence>
+ <xs:element name="Id" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="SchmeNm" type="FinancialIdentificationSchemeName1Choice"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="GenericIdentification1">
+ <xs:sequence>
+ <xs:element name="Id" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="SchmeNm" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="GenericIdentification20">
+ <xs:sequence>
+ <xs:element name="Id" type="Exact4AlphaNumericText"/>
+ <xs:element name="Issr" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="SchmeNm" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="GenericIdentification3">
+ <xs:sequence>
+ <xs:element name="Id" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="GenericIdentification32">
+ <xs:sequence>
+ <xs:element name="Id" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="PartyType3Code"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="PartyType4Code"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="ShrtNm" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="GenericOrganisationIdentification1">
+ <xs:sequence>
+ <xs:element name="Id" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="SchmeNm" type="OrganisationIdentificationSchemeName1Choice"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="GenericPersonIdentification1">
+ <xs:sequence>
+ <xs:element name="Id" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="SchmeNm" type="PersonIdentificationSchemeName1Choice"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="GroupHeader58">
+ <xs:sequence>
+ <xs:element name="MsgId" type="Max35Text"/>
+ <xs:element name="CreDtTm" type="ISODateTime"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="MsgRcpt" type="PartyIdentification43"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="MsgPgntn" type="Pagination"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="OrgnlBizQry" type="OriginalBusinessQuery1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="AddtlInf" type="Max500Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="IBAN2007Identifier">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ISINIdentifier">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[A-Z0-9]{12,12}"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ISODate">
+ <xs:restriction base="xs:date"/>
+ </xs:simpleType>
+ <xs:simpleType name="ISODateTime">
+ <xs:restriction base="xs:dateTime"/>
+ </xs:simpleType>
+ <xs:simpleType name="ISOYearMonth">
+ <xs:restriction base="xs:gYearMonth"/>
+ </xs:simpleType>
+ <xs:complexType name="IdentificationSource3Choice">
+ <xs:choice>
+ <xs:element name="Cd" type="ExternalFinancialInstrumentIdentificationType1Code"/>
+ <xs:element name="Prtry" type="Max35Text"/>
+ </xs:choice>
+ </xs:complexType>
+ <xs:complexType name="ImpliedCurrencyAmountRangeChoice">
+ <xs:choice>
+ <xs:element name="FrAmt" type="AmountRangeBoundary1"/>
+ <xs:element name="ToAmt" type="AmountRangeBoundary1"/>
+ <xs:element name="FrToAmt" type="FromToAmountRange"/>
+ <xs:element name="EQAmt" type="ImpliedCurrencyAndAmount"/>
+ <xs:element name="NEQAmt" type="ImpliedCurrencyAndAmount"/>
+ </xs:choice>
+ </xs:complexType>
+ <xs:simpleType name="ImpliedCurrencyAndAmount">
+ <xs:restriction base="xs:decimal">
+ <xs:fractionDigits value="5"/>
+ <xs:totalDigits value="18"/>
+ <xs:minInclusive value="0"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="InterestRecord1">
+ <xs:sequence>
+ <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
+ <xs:element name="CdtDbtInd" type="CreditDebitCode"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="InterestType1Choice"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Rate" type="Rate3"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="FrToDt" type="DateTimePeriodDetails"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Rsn" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Tax" type="TaxCharges2"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="InterestType1Choice">
+ <xs:choice>
+ <xs:element name="Cd" type="InterestType1Code"/>
+ <xs:element name="Prtry" type="Max35Text"/>
+ </xs:choice>
+ </xs:complexType>
+ <xs:simpleType name="InterestType1Code">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="INDY"/>
+ <xs:enumeration value="OVRN"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Max105Text">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="105"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Max140Text">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="140"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Max15NumericText">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[0-9]{1,15}"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Max15PlusSignedNumericText">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[\+]{0,1}[0-9]{1,15}"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Max16Text">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="16"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Max2048Text">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="2048"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Max34Text">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="34"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Max350Text">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="350"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Max35Text">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="35"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Max3NumericText">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[0-9]{1,3}"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Max4Text">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="4"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Max500Text">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="500"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Max5NumericText">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[0-9]{1,5}"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Max70Text">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:maxLength value="70"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="MessageIdentification2">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="MsgNmId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="MsgId" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="Min2Max3NumericText">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[0-9]{2,3}"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Min3Max4NumericText">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[0-9]{3,4}"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Min8Max28NumericText">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[0-9]{8,28}"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="NameAndAddress10">
+ <xs:sequence>
+ <xs:element name="Nm" type="Max140Text"/>
+ <xs:element name="Adr" type="PostalAddress6"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="NamePrefix1Code">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="DOCT"/>
+ <xs:enumeration value="MIST"/>
+ <xs:enumeration value="MISS"/>
+ <xs:enumeration value="MADM"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="NonNegativeDecimalNumber">
+ <xs:restriction base="xs:decimal">
+ <xs:fractionDigits value="17"/>
+ <xs:totalDigits value="18"/>
+ <xs:minInclusive value="0"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Number">
+ <xs:restriction base="xs:decimal">
+ <xs:fractionDigits value="0"/>
+ <xs:totalDigits value="18"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="NumberAndSumOfTransactions1">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="NbOfNtries" type="Max15NumericText"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Sum" type="DecimalNumber"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="NumberAndSumOfTransactions4">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="NbOfNtries" type="Max15NumericText"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Sum" type="DecimalNumber"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TtlNetNtry" type="AmountAndDirection35"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="OnLineCapability1Code">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="OFLN"/>
+ <xs:enumeration value="ONLN"/>
+ <xs:enumeration value="SMON"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="OrganisationIdentification8">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="AnyBIC" type="AnyBICIdentifier"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Othr" type="GenericOrganisationIdentification1"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="OrganisationIdentificationSchemeName1Choice">
+ <xs:choice>
+ <xs:element name="Cd" type="ExternalOrganisationIdentification1Code"/>
+ <xs:element name="Prtry" type="Max35Text"/>
+ </xs:choice>
+ </xs:complexType>
+ <xs:complexType name="OriginalAndCurrentQuantities1">
+ <xs:sequence>
+ <xs:element name="FaceAmt" type="ImpliedCurrencyAndAmount"/>
+ <xs:element name="AmtsdVal" type="ImpliedCurrencyAndAmount"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="OriginalBusinessQuery1">
+ <xs:sequence>
+ <xs:element name="MsgId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="MsgNmId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CreDtTm" type="ISODateTime"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="OtherIdentification1">
+ <xs:sequence>
+ <xs:element name="Id" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Sfx" type="Max16Text"/>
+ <xs:element name="Tp" type="IdentificationSource3Choice"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="POIComponentType1Code">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="SOFT"/>
+ <xs:enumeration value="EMVK"/>
+ <xs:enumeration value="EMVO"/>
+ <xs:enumeration value="MRIT"/>
+ <xs:enumeration value="CHIT"/>
+ <xs:enumeration value="SECM"/>
+ <xs:enumeration value="PEDV"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="Pagination">
+ <xs:sequence>
+ <xs:element name="PgNb" type="Max5NumericText"/>
+ <xs:element name="LastPgInd" type="YesNoIndicator"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="Party11Choice">
+ <xs:choice>
+ <xs:element name="OrgId" type="OrganisationIdentification8"/>
+ <xs:element name="PrvtId" type="PersonIdentification5"/>
+ </xs:choice>
+ </xs:complexType>
+ <xs:complexType name="PartyIdentification43">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max140Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="PstlAdr" type="PostalAddress6"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Id" type="Party11Choice"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CtryOfRes" type="CountryCode"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CtctDtls" type="ContactDetails2"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="PartyType3Code">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="OPOI"/>
+ <xs:enumeration value="MERC"/>
+ <xs:enumeration value="ACCP"/>
+ <xs:enumeration value="ITAG"/>
+ <xs:enumeration value="ACQR"/>
+ <xs:enumeration value="CISS"/>
+ <xs:enumeration value="DLIS"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="PartyType4Code">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="MERC"/>
+ <xs:enumeration value="ACCP"/>
+ <xs:enumeration value="ITAG"/>
+ <xs:enumeration value="ACQR"/>
+ <xs:enumeration value="CISS"/>
+ <xs:enumeration value="TAXH"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="PaymentCard4">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="PlainCardData" type="PlainCardData1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CardCtryCd" type="Exact3NumericText"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CardBrnd" type="GenericIdentification1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="AddtlCardData" type="Max70Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="PaymentReturnReason2">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="OrgnlBkTxCd" type="BankTransactionCodeStructure4"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Orgtr" type="PartyIdentification43"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Rsn" type="ReturnReason5Choice"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="AddtlInf" type="Max105Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="PercentageRate">
+ <xs:restriction base="xs:decimal">
+ <xs:fractionDigits value="10"/>
+ <xs:totalDigits value="11"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="PersonIdentification5">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="DtAndPlcOfBirth" type="DateAndPlaceOfBirth"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Othr" type="GenericPersonIdentification1"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="PersonIdentificationSchemeName1Choice">
+ <xs:choice>
+ <xs:element name="Cd" type="ExternalPersonIdentification1Code"/>
+ <xs:element name="Prtry" type="Max35Text"/>
+ </xs:choice>
+ </xs:complexType>
+ <xs:simpleType name="PhoneNumber">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="\+[0-9]{1,3}-[0-9()+\-]{1,30}"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="PlainCardData1">
+ <xs:sequence>
+ <xs:element name="PAN" type="Min8Max28NumericText"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CardSeqNb" type="Min2Max3NumericText"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="FctvDt" type="ISOYearMonth"/>
+ <xs:element name="XpryDt" type="ISOYearMonth"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="SvcCd" type="Exact3NumericText"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="TrckData" type="TrackData1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CardSctyCd" type="CardSecurityInformation1"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="PointOfInteraction1">
+ <xs:sequence>
+ <xs:element name="Id" type="GenericIdentification32"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="SysNm" type="Max70Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="GrpId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Cpblties" type="PointOfInteractionCapabilities1"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Cmpnt" type="PointOfInteractionComponent1"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="PointOfInteractionCapabilities1">
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="CardRdngCpblties" type="CardDataReading1Code"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="CrdhldrVrfctnCpblties" type="CardholderVerificationCapability1Code"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="OnLineCpblties" type="OnLineCapability1Code"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="DispCpblties" type="DisplayCapabilities1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="PrtLineWidth" type="Max3NumericText"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="PointOfInteractionComponent1">
+ <xs:sequence>
+ <xs:element name="POICmpntTp" type="POIComponentType1Code"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="ManfctrId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Mdl" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="VrsnNb" type="Max16Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="SrlNb" type="Max35Text"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="ApprvlNb" type="Max70Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="PostalAddress6">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="AdrTp" type="AddressType2Code"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Dept" type="Max70Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="SubDept" type="Max70Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="StrtNm" type="Max70Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="BldgNb" type="Max16Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="PstCd" type="Max16Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TwnNm" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CtrySubDvsn" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Ctry" type="CountryCode"/>
+ <xs:element maxOccurs="7" minOccurs="0" name="AdrLine" type="Max70Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="Price2">
+ <xs:sequence>
+ <xs:element name="Tp" type="YieldedOrValueType1Choice"/>
+ <xs:element name="Val" type="PriceRateOrAmountChoice"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="PriceRateOrAmountChoice">
+ <xs:choice>
+ <xs:element name="Rate" type="PercentageRate"/>
+ <xs:element name="Amt" type="ActiveOrHistoricCurrencyAnd13DecimalAmount"/>
+ </xs:choice>
+ </xs:complexType>
+ <xs:simpleType name="PriceValueType1Code">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="DISC"/>
+ <xs:enumeration value="PREM"/>
+ <xs:enumeration value="PARV"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="Product2">
+ <xs:sequence>
+ <xs:element name="PdctCd" type="Max70Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="UnitOfMeasr" type="UnitOfMeasure1Code"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="PdctQty" type="DecimalNumber"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="UnitPric" type="ImpliedCurrencyAndAmount"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="PdctAmt" type="ImpliedCurrencyAndAmount"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TaxTp" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="AddtlPdctInf" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ProprietaryAgent3">
+ <xs:sequence>
+ <xs:element name="Tp" type="Max35Text"/>
+ <xs:element name="Agt" type="BranchAndFinancialInstitutionIdentification5"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ProprietaryBankTransactionCodeStructure1">
+ <xs:sequence>
+ <xs:element name="Cd" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ProprietaryDate2">
+ <xs:sequence>
+ <xs:element name="Tp" type="Max35Text"/>
+ <xs:element name="Dt" type="DateAndDateTimeChoice"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ProprietaryParty3">
+ <xs:sequence>
+ <xs:element name="Tp" type="Max35Text"/>
+ <xs:element name="Pty" type="PartyIdentification43"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ProprietaryPrice2">
+ <xs:sequence>
+ <xs:element name="Tp" type="Max35Text"/>
+ <xs:element name="Pric" type="ActiveOrHistoricCurrencyAndAmount"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ProprietaryQuantity1">
+ <xs:sequence>
+ <xs:element name="Tp" type="Max35Text"/>
+ <xs:element name="Qty" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ProprietaryReference1">
+ <xs:sequence>
+ <xs:element name="Tp" type="Max35Text"/>
+ <xs:element name="Ref" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="Purpose2Choice">
+ <xs:choice>
+ <xs:element name="Cd" type="ExternalPurpose1Code"/>
+ <xs:element name="Prtry" type="Max35Text"/>
+ </xs:choice>
+ </xs:complexType>
+ <xs:complexType name="Rate3">
+ <xs:sequence>
+ <xs:element name="Tp" type="RateType4Choice"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="VldtyRg" type="CurrencyAndAmountRange2"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="RateType4Choice">
+ <xs:choice>
+ <xs:element name="Pctg" type="PercentageRate"/>
+ <xs:element name="Othr" type="Max35Text"/>
+ </xs:choice>
+ </xs:complexType>
+ <xs:complexType name="ReferredDocumentInformation3">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="ReferredDocumentType2"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Nb" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RltdDt" type="ISODate"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ReferredDocumentType1Choice">
+ <xs:choice>
+ <xs:element name="Cd" type="DocumentType5Code"/>
+ <xs:element name="Prtry" type="Max35Text"/>
+ </xs:choice>
+ </xs:complexType>
+ <xs:complexType name="ReferredDocumentType2">
+ <xs:sequence>
+ <xs:element name="CdOrPrtry" type="ReferredDocumentType1Choice"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="RemittanceAmount2">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="DuePyblAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="DscntApldAmt" type="DiscountAmountAndType1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CdtNoteAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="TaxAmt" type="TaxAmountAndType1"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="AdjstmntAmtAndRsn" type="DocumentAdjustment1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RmtdAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="RemittanceInformation7">
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Ustrd" type="Max140Text"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Strd" type="StructuredRemittanceInformation9"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="RemittanceLocation2">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="RmtId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RmtLctnMtd" type="RemittanceLocationMethod2Code"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RmtLctnElctrncAdr" type="Max2048Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RmtLctnPstlAdr" type="NameAndAddress10"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="RemittanceLocationMethod2Code">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="FAXI"/>
+ <xs:enumeration value="EDIC"/>
+ <xs:enumeration value="URID"/>
+ <xs:enumeration value="EMAL"/>
+ <xs:enumeration value="POST"/>
+ <xs:enumeration value="SMSM"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="ReportEntry4">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="NtryRef" type="Max35Text"/>
+ <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
+ <xs:element name="CdtDbtInd" type="CreditDebitCode"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RvslInd" type="TrueFalseIndicator"/>
+ <xs:element name="Sts" type="EntryStatus2Code"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="BookgDt" type="DateAndDateTimeChoice"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="ValDt" type="DateAndDateTimeChoice"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="AcctSvcrRef" type="Max35Text"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Avlbty" type="CashBalanceAvailability2"/>
+ <xs:element name="BkTxCd" type="BankTransactionCodeStructure4"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="ComssnWvrInd" type="YesNoIndicator"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="AddtlInfInd" type="MessageIdentification2"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="AmtDtls" type="AmountAndCurrencyExchange3"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Chrgs" type="Charges4"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TechInptChanl" type="TechnicalInputChannel1Choice"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Intrst" type="TransactionInterest3"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CardTx" type="CardEntry1"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="NtryDtls" type="EntryDetails3"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="AddtlNtryInf" type="Max500Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ReportingSource1Choice">
+ <xs:choice>
+ <xs:element name="Cd" type="ExternalReportingSource1Code"/>
+ <xs:element name="Prtry" type="Max35Text"/>
+ </xs:choice>
+ </xs:complexType>
+ <xs:complexType name="ReturnReason5Choice">
+ <xs:choice>
+ <xs:element name="Cd" type="ExternalReturnReason1Code"/>
+ <xs:element name="Prtry" type="Max35Text"/>
+ </xs:choice>
+ </xs:complexType>
+ <xs:complexType name="SecuritiesAccount13">
+ <xs:sequence>
+ <xs:element name="Id" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="GenericIdentification20"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max70Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="SecurityIdentification14">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="ISIN" type="ISINIdentifier"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="OthrId" type="OtherIdentification1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Desc" type="Max140Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="StructuredRemittanceInformation9">
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="RfrdDocInf" type="ReferredDocumentInformation3"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RfrdDocAmt" type="RemittanceAmount2"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CdtrRefInf" type="CreditorReferenceInformation2"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Invcr" type="PartyIdentification43"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Invcee" type="PartyIdentification43"/>
+ <xs:element maxOccurs="3" minOccurs="0" name="AddtlRmtInf" type="Max140Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="SupplementaryData1">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="PlcAndNm" type="Max350Text"/>
+ <xs:element name="Envlp" type="SupplementaryDataEnvelope1"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="SupplementaryDataEnvelope1">
+ <xs:sequence>
+ <xs:any namespace="##any" processContents="lax"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TaxAmount1">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="Rate" type="PercentageRate"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TaxblBaseAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TtlAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Dtls" type="TaxRecordDetails1"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TaxAmountAndType1">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="TaxAmountType1Choice"/>
+ <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TaxAmountType1Choice">
+ <xs:choice>
+ <xs:element name="Cd" type="ExternalTaxAmountType1Code"/>
+ <xs:element name="Prtry" type="Max35Text"/>
+ </xs:choice>
+ </xs:complexType>
+ <xs:complexType name="TaxAuthorisation1">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="Titl" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max140Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TaxCharges2">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="Id" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Rate" type="PercentageRate"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TaxInformation3">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="Cdtr" type="TaxParty1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Dbtr" type="TaxParty2"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="AdmstnZn" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RefNb" type="Max140Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Mtd" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TtlTaxblBaseAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TtlTaxAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Dt" type="ISODate"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="SeqNb" type="Number"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Rcrd" type="TaxRecord1"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TaxParty1">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="TaxId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RegnId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TaxTp" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TaxParty2">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="TaxId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RegnId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TaxTp" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Authstn" type="TaxAuthorisation1"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TaxPeriod1">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="Yr" type="ISODate"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="TaxRecordPeriod1Code"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="FrToDt" type="DatePeriodDetails"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TaxRecord1">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Ctgy" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CtgyDtls" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="DbtrSts" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CertId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="FrmsCd" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Prd" type="TaxPeriod1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TaxAmt" type="TaxAmount1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="AddtlInf" type="Max140Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TaxRecordDetails1">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="Prd" type="TaxPeriod1"/>
+ <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="TaxRecordPeriod1Code">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="MM01"/>
+ <xs:enumeration value="MM02"/>
+ <xs:enumeration value="MM03"/>
+ <xs:enumeration value="MM04"/>
+ <xs:enumeration value="MM05"/>
+ <xs:enumeration value="MM06"/>
+ <xs:enumeration value="MM07"/>
+ <xs:enumeration value="MM08"/>
+ <xs:enumeration value="MM09"/>
+ <xs:enumeration value="MM10"/>
+ <xs:enumeration value="MM11"/>
+ <xs:enumeration value="MM12"/>
+ <xs:enumeration value="QTR1"/>
+ <xs:enumeration value="QTR2"/>
+ <xs:enumeration value="QTR3"/>
+ <xs:enumeration value="QTR4"/>
+ <xs:enumeration value="HLF1"/>
+ <xs:enumeration value="HLF2"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="TechnicalInputChannel1Choice">
+ <xs:choice>
+ <xs:element name="Cd" type="ExternalTechnicalInputChannel1Code"/>
+ <xs:element name="Prtry" type="Max35Text"/>
+ </xs:choice>
+ </xs:complexType>
+ <xs:complexType name="TotalTransactions4">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="TtlNtries" type="NumberAndSumOfTransactions4"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TtlCdtNtries" type="NumberAndSumOfTransactions1"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TtlDbtNtries" type="NumberAndSumOfTransactions1"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="TtlNtriesPerBkTxCd" type="TotalsPerBankTransactionCode3"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TotalsPerBankTransactionCode3">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="NbOfNtries" type="Max15NumericText"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Sum" type="DecimalNumber"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TtlNetNtry" type="AmountAndDirection35"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="FcstInd" type="TrueFalseIndicator"/>
+ <xs:element name="BkTxCd" type="BankTransactionCodeStructure4"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Avlbty" type="CashBalanceAvailability2"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TrackData1">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="TrckNb" type="Exact1NumericText"/>
+ <xs:element name="TrckVal" type="Max140Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TransactionAgents3">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="DbtrAgt" type="BranchAndFinancialInstitutionIdentification5"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CdtrAgt" type="BranchAndFinancialInstitutionIdentification5"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="IntrmyAgt1" type="BranchAndFinancialInstitutionIdentification5"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="IntrmyAgt2" type="BranchAndFinancialInstitutionIdentification5"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="IntrmyAgt3" type="BranchAndFinancialInstitutionIdentification5"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="RcvgAgt" type="BranchAndFinancialInstitutionIdentification5"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="DlvrgAgt" type="BranchAndFinancialInstitutionIdentification5"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="IssgAgt" type="BranchAndFinancialInstitutionIdentification5"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="SttlmPlc" type="BranchAndFinancialInstitutionIdentification5"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Prtry" type="ProprietaryAgent3"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TransactionDates2">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="AccptncDtTm" type="ISODateTime"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TradActvtyCtrctlSttlmDt" type="ISODate"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TradDt" type="ISODate"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="IntrBkSttlmDt" type="ISODate"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="StartDt" type="ISODate"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="EndDt" type="ISODate"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TxDtTm" type="ISODateTime"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Prtry" type="ProprietaryDate2"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TransactionIdentifier1">
+ <xs:sequence>
+ <xs:element name="TxDtTm" type="ISODateTime"/>
+ <xs:element name="TxRef" type="Max35Text"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TransactionInterest3">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="TtlIntrstAndTaxAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Rcrd" type="InterestRecord1"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TransactionParties3">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="InitgPty" type="PartyIdentification43"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Dbtr" type="PartyIdentification43"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="DbtrAcct" type="CashAccount24"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="UltmtDbtr" type="PartyIdentification43"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="Cdtr" type="PartyIdentification43"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="CdtrAcct" type="CashAccount24"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="UltmtCdtr" type="PartyIdentification43"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TradgPty" type="PartyIdentification43"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Prtry" type="ProprietaryParty3"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TransactionPrice3Choice">
+ <xs:choice>
+ <xs:element name="DealPric" type="Price2"/>
+ <xs:element maxOccurs="unbounded" minOccurs="1" name="Prtry" type="ProprietaryPrice2"/>
+ </xs:choice>
+ </xs:complexType>
+ <xs:complexType name="TransactionQuantities2Choice">
+ <xs:choice>
+ <xs:element name="Qty" type="FinancialInstrumentQuantityChoice"/>
+ <xs:element name="OrgnlAndCurFaceAmt" type="OriginalAndCurrentQuantities1"/>
+ <xs:element name="Prtry" type="ProprietaryQuantity1"/>
+ </xs:choice>
+ </xs:complexType>
+ <xs:complexType name="TransactionReferences3">
+ <xs:sequence>
+ <xs:element maxOccurs="1" minOccurs="0" name="MsgId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="AcctSvcrRef" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="PmtInfId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="InstrId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="EndToEndId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="TxId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="MndtId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="ChqNb" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="ClrSysRef" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="AcctOwnrTxId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="AcctSvcrTxId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="MktInfrstrctrTxId" type="Max35Text"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="PrcgId" type="Max35Text"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="Prtry" type="ProprietaryReference1"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="TrueFalseIndicator">
+ <xs:restriction base="xs:boolean"/>
+ </xs:simpleType>
+ <xs:simpleType name="UnitOfMeasure1Code">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="PIEC"/>
+ <xs:enumeration value="TONS"/>
+ <xs:enumeration value="FOOT"/>
+ <xs:enumeration value="GBGA"/>
+ <xs:enumeration value="USGA"/>
+ <xs:enumeration value="GRAM"/>
+ <xs:enumeration value="INCH"/>
+ <xs:enumeration value="KILO"/>
+ <xs:enumeration value="PUND"/>
+ <xs:enumeration value="METR"/>
+ <xs:enumeration value="CMET"/>
+ <xs:enumeration value="MMET"/>
+ <xs:enumeration value="LITR"/>
+ <xs:enumeration value="CELI"/>
+ <xs:enumeration value="MILI"/>
+ <xs:enumeration value="GBOU"/>
+ <xs:enumeration value="USOU"/>
+ <xs:enumeration value="GBQA"/>
+ <xs:enumeration value="USQA"/>
+ <xs:enumeration value="GBPI"/>
+ <xs:enumeration value="USPI"/>
+ <xs:enumeration value="MILE"/>
+ <xs:enumeration value="KMET"/>
+ <xs:enumeration value="YARD"/>
+ <xs:enumeration value="SQKI"/>
+ <xs:enumeration value="HECT"/>
+ <xs:enumeration value="ARES"/>
+ <xs:enumeration value="SMET"/>
+ <xs:enumeration value="SCMT"/>
+ <xs:enumeration value="SMIL"/>
+ <xs:enumeration value="SQMI"/>
+ <xs:enumeration value="SQYA"/>
+ <xs:enumeration value="SQFO"/>
+ <xs:enumeration value="SQIN"/>
+ <xs:enumeration value="ACRE"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="UserInterface2Code">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="MDSP"/>
+ <xs:enumeration value="CDSP"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="YesNoIndicator">
+ <xs:restriction base="xs:boolean"/>
+ </xs:simpleType>
+ <xs:complexType name="YieldedOrValueType1Choice">
+ <xs:choice>
+ <xs:element name="Yldd" type="YesNoIndicator"/>
+ <xs:element name="ValTp" type="PriceValueType1Code"/>
+ </xs:choice>
+ </xs:complexType>
+</xs:schema>
diff --git a/tests/test_account_payment_sepa.py b/tests/test_account_payment_sepa.py
index 8f481c2..9b1658a 100644
--- a/tests/test_account_payment_sepa.py
+++ b/tests/test_account_payment_sepa.py
@@ -6,10 +6,16 @@ import doctest
from itertools import chain
from lxml import etree
from decimal import Decimal
+from io import BytesIO
+
+from mock import Mock, patch
+
import trytond.tests.test_tryton
from trytond.tests.test_tryton import test_view, test_depends
from trytond.tests.test_tryton import POOL, DB_NAME, USER, CONTEXT
from trytond.transaction import Transaction
+from trytond.exceptions import UserError
+from trytond.modules.account_payment_sepa.payment import CAMT054
class AccountPaymentSepaTestCase(unittest.TestCase):
@@ -40,62 +46,82 @@ class AccountPaymentSepaTestCase(unittest.TestCase):
'Test depends'
test_depends()
+ def setup_environment(self):
+ company, = self.company.search([
+ ('rec_name', '=', 'Dunder Mifflin'),
+ ])
+ euro, = self.currency.create([{
+ 'name': 'Euro',
+ 'symbol': 'EUR',
+ 'code': 'EUR',
+ }])
+ company.currency = euro
+ company.party.sepa_creditor_identifier = 'BE68539007547034'
+ company.party.save()
+ company.save()
+ bank_party = self.party(name='European Bank')
+ bank_party.save()
+ bank = self.bank(party=bank_party, bic='BICODEBBXXX')
+ bank.save()
+ customer = self.party(name='Customer')
+ customer.save()
+ return {
+ 'company': company,
+ 'bank': bank,
+ 'customer': customer,
+ }
+
+ def setup_accounts(self, bank, company, customer):
+ return self.bank_account.create([{
+ 'bank': bank,
+ 'owners': [('add', [company.party])],
+ 'numbers': [('create', [{
+ 'type': 'iban',
+ 'number': 'ES8200000000000000000000',
+ }])]}, {
+ 'bank': bank,
+ 'owners': [('add', [customer])],
+ 'numbers': [('create', [{
+ 'type': 'iban',
+ 'number': 'ES3600000000050000000001',
+ }])]}])
+
+ def setup_mandate(self, company, customer, account):
+ return self.mandate.create([{
+ 'company': company,
+ 'party': customer,
+ 'account_number': account.numbers[0],
+ 'identification': 'MANDATE',
+ 'type': 'recurrent',
+ 'signature_date': self.date.today(),
+ 'state': 'validated',
+ }])[0]
+
+ def setup_journal(self, flavor, kind, company, account):
+ journal = self.payment_journal()
+ journal.name = flavor
+ journal.company = company
+ journal.currency = company.currency
+ journal.process_method = 'sepa'
+ journal.sepa_bank_account_number = account.numbers[0]
+ journal.sepa_payable_flavor = 'pain.001.001.03'
+ journal.sepa_receivable_flavor = 'pain.008.001.02'
+ setattr(journal, 'sepa_%s_flavor' % kind, flavor)
+ journal.save()
+ return journal
+
def validate_file(self, flavor, kind):
'Test generated files are valid'
with Transaction().start(DB_NAME, USER, context=CONTEXT):
- company, = self.company.search([
- ('rec_name', '=', 'Dunder Mifflin'),
- ])
- euro, = self.currency.create([{
- 'name': 'Euro',
- 'symbol': 'EUR',
- 'code': 'EUR',
- }])
- company.currency = euro
- company.party.sepa_creditor_identifier = 'BE68539007547034'
- company.party.save()
- company.save()
- bank_party = self.party(name='European Bank')
- bank_party.save()
- bank = self.bank(party=bank_party, bic='BICODEBBXXX')
- bank.save()
- customer = self.party(name='Customer')
- customer.save()
- company_account, customer_account = self.bank_account.create([{
- 'bank': bank,
- 'owners': [('add', [company.party])],
- 'numbers': [('create', [{
- 'type': 'iban',
- 'number': 'ES8200000000000000000000',
- }])]}, {
- 'bank': bank,
- 'owners': [('add', [customer])],
- 'numbers': [('create', [{
- 'type': 'iban',
- 'number': 'ES3600000000050000000001',
- }])]}])
- customer_account_number, = customer_account.numbers
- self.mandate.create([{
- 'company': company,
- 'party': customer,
- 'account_number': customer_account_number,
- 'identification': 'MANDATE',
- 'type': 'recurrent',
- 'signature_date': self.date.today(),
- 'state': 'validated',
- }])
-
- company_bank_number, = company_account.numbers
- journal = self.payment_journal()
- journal.name = flavor
- journal.company = company
- journal.currency = company.currency
- journal.process_method = 'sepa'
- journal.sepa_bank_account_number = company_bank_number
- journal.sepa_payable_flavor = 'pain.001.001.03'
- journal.sepa_receivable_flavor = 'pain.008.001.02'
- setattr(journal, 'sepa_%s_flavor' % kind, flavor)
- journal.save()
+ environment = self.setup_environment()
+ company = environment['company']
+ bank = environment['bank']
+ customer = environment['customer']
+ company_account, customer_account = self.setup_accounts(bank,
+ company, customer)
+ self.setup_mandate(company, customer, customer_account)
+ journal = self.setup_journal(flavor, kind, company,
+ company_account)
payment, = self.payment.create([{
'company': company,
@@ -113,12 +139,13 @@ class AccountPaymentSepaTestCase(unittest.TestCase):
with Transaction().set_context(active_ids=[payment.id]):
_, data = process_payment.do_process(None)
group, = self.payment_group.browse(data['res_id'])
- sepa_string = group.sepa_message.encode('utf-8')
- sepa_file = etree.fromstring(sepa_string)
+ message, = group.sepa_messages
+ sepa_string = message.message.encode('utf-8')
+ sepa_xml = etree.fromstring(sepa_string)
schema_file = os.path.join(os.path.dirname(__file__),
'%s.xsd' % flavor)
schema = etree.XMLSchema(etree.parse(schema_file))
- schema.assertValid(sepa_file)
+ schema.assertValid(sepa_xml)
def test_pain001_001_03(self):
'Test pain001.001.03 xsd validation'
@@ -136,6 +163,197 @@ class AccountPaymentSepaTestCase(unittest.TestCase):
'Test pain008.001.04 xsd validation'
self.validate_file('pain.008.001.04', 'receivable')
+ def test_sepa_mandate_sequence(self):
+ 'Test SEPA mandate sequence'
+ Configuration = POOL.get('account.configuration')
+ Sequence = POOL.get('ir.sequence')
+ Party = POOL.get('party.party')
+ Mandate = POOL.get('account.payment.sepa.mandate')
+ with Transaction().start(DB_NAME, USER, context=CONTEXT):
+ party = Party(name='Test')
+ party.save()
+ mandate = Mandate(party=party)
+ mandate.save()
+ self.assertFalse(mandate.identification)
+
+ sequence = Sequence(name='Test',
+ code='account.payment.sepa.mandate')
+ sequence.save()
+ config = Configuration(1)
+ config.sepa_mandate_sequence = sequence
+ config.save()
+
+ mandate = Mandate(party=party)
+ mandate.save()
+ self.assertTrue(mandate.identification)
+
+ def test_identification_unique(self):
+ 'Test unique identification constraint'
+ Party = POOL.get('party.party')
+ Mandate = POOL.get('account.payment.sepa.mandate')
+ same_id = '1'
+ with Transaction().start(DB_NAME, USER, context=CONTEXT):
+ party = Party(name='Test')
+ party.save()
+ mandate = Mandate(party=party, identification=same_id)
+ mandate.save()
+
+ for i in range(2):
+ mandate = Mandate(party=party)
+ mandate.save()
+
+ mandate = Mandate(party=party, identification='')
+ mandate.save()
+ self.assertEqual(mandate.identification, None)
+
+ Mandate.write([mandate], {
+ 'identification': '',
+ })
+ self.assertEqual(mandate.identification, None)
+
+ self.assertRaises(UserError, Mandate.create, [{
+ 'party': party.id,
+ 'identification': same_id,
+ }])
+
+ def test_payment_sepa_bank_account_number(self):
+ 'Test Payment.sepa_bank_account_number'
+ with Transaction().start(DB_NAME, USER, context=CONTEXT):
+ Payment = POOL.get('account.payment')
+ Mandate = POOL.get('account.payment.sepa.mandate')
+ AccountNumber = POOL.get('bank.account.number')
+ Party = POOL.get('party.party')
+ BankAccount = POOL.get('bank.account')
+
+ account_number = AccountNumber()
+ mandate = Mandate(account_number=account_number)
+ payment = Payment(kind='receivable', sepa_mandate=mandate)
+
+ self.assertEqual(id(payment.sepa_bank_account_number),
+ id(account_number))
+
+ other_account_number = AccountNumber(type='other')
+ iban_account_number = AccountNumber(type='iban')
+ bank_account = BankAccount(
+ numbers=[other_account_number, iban_account_number])
+ party = Party(
+ bank_accounts=[bank_account])
+ payment = Payment(kind='payable', party=party)
+
+ self.assertEqual(id(payment.sepa_bank_account_number),
+ id(iban_account_number))
+
+ def test_payment_sequence_type(self):
+ 'Test payment sequence type'
+ with Transaction().start(DB_NAME, USER, context=CONTEXT):
+ environment = self.setup_environment()
+ company = environment['company']
+ bank = environment['bank']
+ customer = environment['customer']
+ company_account, customer_account = self.setup_accounts(bank,
+ company, customer)
+ self.setup_mandate(company, customer, customer_account)
+ journal = self.setup_journal('pain.008.001.02', 'receivable',
+ company, company_account)
+
+ payment, = self.payment.create([{
+ 'company': company,
+ 'party': customer,
+ 'journal': journal,
+ 'kind': 'receivable',
+ 'amount': Decimal('1000.0'),
+ 'state': 'approved',
+ 'description': 'PAYMENT',
+ 'date': self.date.today(),
+ }])
+
+ session_id, _, _ = self.process_payment.create()
+ process_payment = self.process_payment(session_id)
+ with Transaction().set_context(active_ids=[payment.id]):
+ _, data = process_payment.do_process(None)
+
+ self.assertEqual(payment.sepa_mandate_sequence_type, 'FRST')
+
+ payments = self.payment.create([{
+ 'company': company,
+ 'party': customer,
+ 'journal': journal,
+ 'kind': 'receivable',
+ 'amount': Decimal('2000.0'),
+ 'state': 'approved',
+ 'description': 'PAYMENT',
+ 'date': self.date.today(),
+ }, {
+ 'company': company,
+ 'party': customer,
+ 'journal': journal,
+ 'kind': 'receivable',
+ 'amount': Decimal('3000.0'),
+ 'state': 'approved',
+ 'description': 'PAYMENT',
+ 'date': self.date.today(),
+ },
+ ])
+
+ session_id, _, _ = self.process_payment.create()
+ process_payment = self.process_payment(session_id)
+ payment_ids = [p.id for p in payments]
+ with Transaction().set_context(active_ids=payment_ids):
+ _, data = process_payment.do_process(None)
+
+ for payment in payments:
+ self.assertEqual(payment.sepa_mandate_sequence_type, 'RCUR')
+
+ def handle_camt054(self, flavor):
+ 'Handle camt.054'
+ with Transaction().start(DB_NAME, USER, context=CONTEXT):
+ Message = POOL.get('account.payment.sepa.message')
+
+ message_file = os.path.join(os.path.dirname(__file__),
+ '%s.xml' % flavor)
+ message = open(message_file).read()
+ namespace = Message.get_namespace(message)
+ self.assertEqual(namespace,
+ 'urn:iso:std:iso:20022:tech:xsd:%s' % flavor)
+
+ payment = Mock()
+ Payment = Mock()
+ Payment.search.return_value = [payment]
+
+ handler = CAMT054(BytesIO(message), Payment)
+
+ self.assertEqual(handler.msg_id, 'AAAASESS-FP-00001')
+ Payment.search.assert_called_with([
+ ('sepa_end_to_end_id', '=', 'MUELL/FINP/RA12345'),
+ ('kind', '=', 'payable'),
+ ])
+ Payment.succeed.assert_called_with([payment])
+
+ payment.reset_mock()
+ Payment.reset_mock()
+ with patch.object(CAMT054, 'is_returned') as is_returned:
+ is_returned.return_value = True
+ handler = CAMT054(BytesIO(message), Payment)
+
+ payment.save.assert_called_with()
+ Payment.fail.assert_called_with([payment])
+
+ def test_camt054_001_01(self):
+ 'Test camt.054.001.01 handling'
+ self.handle_camt054('camt.054.001.01')
+
+ def test_camt054_001_02(self):
+ 'Test camt.054.001.02 handling'
+ self.handle_camt054('camt.054.001.02')
+
+ def test_camt054_001_03(self):
+ 'Test camt.054.001.03 handling'
+ self.handle_camt054('camt.054.001.03')
+
+ def test_camt054_001_04(self):
+ 'Test camt.054.001.04 handling'
+ self.handle_camt054('camt.054.001.04')
+
def suite():
suite = trytond.tests.test_tryton.suite()
diff --git a/tryton.cfg b/tryton.cfg
index eecb6bf..ec0ab00 100644
--- a/tryton.cfg
+++ b/tryton.cfg
@@ -1,5 +1,5 @@
[tryton]
-version=3.2.2
+version=3.4.0
depends:
account_payment
company
diff --git a/trytond_account_payment_sepa.egg-info/PKG-INFO b/trytond_account_payment_sepa.egg-info/PKG-INFO
index 5b580eb..e2c168c 100644
--- a/trytond_account_payment_sepa.egg-info/PKG-INFO
+++ b/trytond_account_payment_sepa.egg-info/PKG-INFO
@@ -1,12 +1,12 @@
Metadata-Version: 1.1
Name: trytond-account-payment-sepa
-Version: 3.2.2
+Version: 3.4.0
Summary: Tryton module for SEPA payment
Home-page: http://www.tryton.org/
Author: Tryton
Author-email: issue_tracker at tryton.org
License: GPL-3
-Download-URL: http://downloads.tryton.org/3.2/
+Download-URL: http://downloads.tryton.org/3.4/
Description: trytond_account_payment_sepa
============================
diff --git a/trytond_account_payment_sepa.egg-info/SOURCES.txt b/trytond_account_payment_sepa.egg-info/SOURCES.txt
index 0f395f0..317be22 100644
--- a/trytond_account_payment_sepa.egg-info/SOURCES.txt
+++ b/trytond_account_payment_sepa.egg-info/SOURCES.txt
@@ -5,20 +5,59 @@ LICENSE
MANIFEST.in
README
account.xml
+mandate.odt
party.xml
payment.xml
setup.py
tryton.cfg
./__init__.py
+./account.py
+./account.xml
+./mandate.odt
./party.py
+./party.xml
./payment.py
+./payment.xml
+./sepa_handler.py
+./tryton.cfg
+./locale/ca_ES.po
+./locale/de_DE.po
+./locale/es_AR.po
+./locale/es_CO.po
+./locale/es_EC.po
+./locale/es_ES.po
+./locale/fr_FR.po
+./locale/sl_SI.po
+./template/base.xml
+./template/pain.001.001.03.xml
+./template/pain.001.001.05.xml
+./template/pain.008.001.02.xml
+./template/pain.008.001.04.xml
./tests/__init__.py
+./tests/camt.054.001.01.xsd
+./tests/camt.054.001.02.xsd
+./tests/camt.054.001.03.xsd
+./tests/camt.054.001.04.xsd
+./tests/pain.001.001.03.xsd
+./tests/pain.001.001.05.xsd
+./tests/pain.008.001.02.xsd
+./tests/pain.008.001.04.xsd
./tests/test_account_payment_sepa.py
+./view/configuration_form.xml
+./view/mandate_form.xml
+./view/mandate_list.xml
+./view/message_form.xml
+./view/message_list.xml
+./view/party_form.xml
+./view/payment_form.xml
+./view/payment_group_form.xml
+./view/payment_journal_form.xml
doc/index.rst
locale/ca_ES.po
locale/de_DE.po
locale/es_AR.po
locale/es_CO.po
+locale/es_EC.po
locale/es_ES.po
locale/fr_FR.po
locale/sl_SI.po
@@ -27,6 +66,10 @@ template/pain.001.001.03.xml
template/pain.001.001.05.xml
template/pain.008.001.02.xml
template/pain.008.001.04.xml
+tests/camt.054.001.01.xsd
+tests/camt.054.001.02.xsd
+tests/camt.054.001.03.xsd
+tests/camt.054.001.04.xsd
tests/pain.001.001.03.xsd
tests/pain.001.001.05.xsd
tests/pain.008.001.02.xsd
@@ -38,9 +81,12 @@ trytond_account_payment_sepa.egg-info/entry_points.txt
trytond_account_payment_sepa.egg-info/not-zip-safe
trytond_account_payment_sepa.egg-info/requires.txt
trytond_account_payment_sepa.egg-info/top_level.txt
+view/configuration_form.xml
view/mandate_form.xml
view/mandate_list.xml
+view/message_form.xml
+view/message_list.xml
view/party_form.xml
+view/payment_form.xml
view/payment_group_form.xml
-view/payment_group_list.xml
view/payment_journal_form.xml
\ No newline at end of file
diff --git a/trytond_account_payment_sepa.egg-info/requires.txt b/trytond_account_payment_sepa.egg-info/requires.txt
index 50e074c..d610120 100644
--- a/trytond_account_payment_sepa.egg-info/requires.txt
+++ b/trytond_account_payment_sepa.egg-info/requires.txt
@@ -1,7 +1,7 @@
Genshi
lxml
-trytond_account_payment >= 3.2, < 3.3
-trytond_company >= 3.2, < 3.3
-trytond_bank >= 3.2, < 3.3
-trytond_party >= 3.2, < 3.3
-trytond >= 3.2, < 3.3
\ No newline at end of file
+trytond_account_payment >= 3.4, < 3.5
+trytond_company >= 3.4, < 3.5
+trytond_bank >= 3.4, < 3.5
+trytond_party >= 3.4, < 3.5
+trytond >= 3.4, < 3.5
\ No newline at end of file
diff --git a/view/payment_group_list.xml b/view/configuration_form.xml
similarity index 50%
rename from view/payment_group_list.xml
rename to view/configuration_form.xml
index d12cda5..24a365b 100644
--- a/view/payment_group_list.xml
+++ b/view/configuration_form.xml
@@ -2,8 +2,9 @@
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<data>
- <xpath expr="/tree/field[@name='kind']" position="after">
- <field name="sepa_message" widget="binary" filename="sepa_filename"/>
- <field name="sepa_filename" tree_invisible="1"/>
+ <xpath expr="/form/field[@name='default_account_payable']"
+ position="after">
+ <label name="sepa_mandate_sequence"/>
+ <field name="sepa_mandate_sequence"/>
</xpath>
</data>
diff --git a/view/mandate_form.xml b/view/mandate_form.xml
index b71ce56..70686d6 100644
--- a/view/mandate_form.xml
+++ b/view/mandate_form.xml
@@ -11,10 +11,12 @@ this repository contains the full copyright notices and license terms. -->
<newline/>
<label name="identification"/>
<field name="identification"/>
- <label name="type"/>
- <field name="type"/>
<label name="signature_date"/>
<field name="signature_date"/>
+ <label name="type"/>
+ <field name="type"/>
+ <label name="scheme"/>
+ <field name="scheme"/>
<newline/>
<label name="state"/>
<field name="state"/>
diff --git a/view/message_form.xml b/view/message_form.xml
new file mode 100644
index 0000000..6c483e1
--- /dev/null
+++ b/view/message_form.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
+this repository contains the full copyright notices and license terms. -->
+<form string="SEPA Message" col="6">
+ <label name="type"/>
+ <field name="type"/>
+ <label name="company"/>
+ <field name="company"/>
+ <label name="origin"/>
+ <field name="origin"/>
+ <label name="message"/>
+ <field name="message" widget="binary" filename="filename"/>
+ <field name="message" colspan="6"/>
+ <label name="state"/>
+ <field name="state"/>
+ <group col="4" colspan="4" id="buttons">
+ <button name="cancel" string="Cancel" icon="tryton-cancel"/>
+ <button name="draft" string="Draft" icon="tryton-go-previous"/>
+ <button name="wait" string="Wait" icon="tryton-go-next"/>
+ <button name="do" string="Do" icon="tryton-ok"/>
+ </group>
+ <field name="filename" invisible="1" colspan="6"/>
+</form>
diff --git a/view/message_list.xml b/view/message_list.xml
new file mode 100644
index 0000000..7576d5d
--- /dev/null
+++ b/view/message_list.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
+this repository contains the full copyright notices and license terms. -->
+<tree string="SEPA Messages">
+ <field name="type"/>
+ <field name="message" widget="binary" filename="filename"/>
+ <field name="state"/>
+ <button name="cancel" string="Cancel"/>
+ <button name="do" string="Do"/>
+ <field name="filename" tree_invisible="1"/>
+</tree>
diff --git a/view/payment_form.xml b/view/payment_form.xml
new file mode 100644
index 0000000..d525881
--- /dev/null
+++ b/view/payment_form.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
+this repository contains the full copyright notices and license terms. -->
+<data>
+ <xpath expr="//notebook/page[@id='info']" position="inside">
+ <newline/>
+ <label name="sepa_return_reason_code"/>
+ <field name="sepa_return_reason_code"/>
+ <newline/>
+ <label name="sepa_return_reason_information"/>
+ <field name="sepa_return_reason_information" yexpand="0" colspan="3"/>
+ </xpath>
+</data>
diff --git a/view/payment_group_form.xml b/view/payment_group_form.xml
index 06c9dfb..2a2a169 100644
--- a/view/payment_group_form.xml
+++ b/view/payment_group_form.xml
@@ -3,6 +3,6 @@
this repository contains the full copyright notices and license terms. -->
<data>
<xpath expr="/form/field[@name='kind']" position="after">
- <field name="sepa_message" colspan="4"/>
+ <field name="sepa_messages" colspan="4"/>
</xpath>
</data>
--
tryton-modules-account-payment-sepa
More information about the tryton-debian-vcs
mailing list