diff --git a/account_banking_sepa_credit_transfer/data/pain.001.003.03.xsd b/account_banking_sepa_credit_transfer/data/pain.001.003.03.xsd
new file mode 100644
index 000000000..0c3b51e32
--- /dev/null
+++ b/account_banking_sepa_credit_transfer/data/pain.001.003.03.xsd
@@ -0,0 +1,474 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ If used, it is recommended to be used at ‘Payment Information’ level and not at ‘Credit Transfer Transaction Information’ level.
+
+
+
+
+
+ It is recommended that this element be specified at ‘Payment Information’ level.
+
+
+
+
+ This data element may be present either at ‘Payment Information’ or at ‘Credit Transfer Transaction Information’ level.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ If a Creditor Reference contains a check digit, the receiving bank is not required to validate this.
+If the receiving bank validates the check digit and if this validation fails, the bank may continue its processing and send the transaction to the next party in the chain.
+RF Creditor Reference may be used (ISO 11649).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Either ‘BIC or BEI’ or one
+occurrence of ‘Other’ is allowed.
+
+
+
+
+ Either ‘Date and Place of Birth’ or one occurrence of ‘Other’ is allowed.
+
+
+
+
+
+
+
+
+
+ ‘Name’ is limited to 70 characters
+in length.
+
+
+
+
+
+
+
+
+
+ ‘Name’ is limited to 70 characters
+in length.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Only ‘TRF’ is allowed.
+
+
+
+
+ If present and contains ‘true’, batch booking is requested. If present and contains ‘false’, booking per transaction is requested. If element is not present, pre-agreed customer-to-bank conditions apply.
+
+
+
+
+
+
+ If used, it is recommended to be used only at ‘Payment Information’ level and not at Credit Transfer Transaction Information’ level.
+When Instruction Priority is to be used, ‘Payment Type Information’ must be present at ‘Payment Information’ level.
+
+
+
+
+
+
+
+
+ This data element may be present either at ‘Payment Information’ or at ‘Credit Transfer Transaction Information’ level.
+
+
+
+
+ It is recommended that this element be specified at ‘Payment Information’ level.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ If present, pre-agreed customer-to-bank conditions apply.
+
+
+
+
+
+ Depending on the agreement between the Originator and the Originator Bank, ‘Category Purpose’ may be forwarded to the Beneficiary Bank.
+
+
+
+
+
+
+
+
+
+ Depending on the agreement between the Originator and the Originator Bank, ‘Category Purpose’ may be forwarded to the Beneficiary Bank.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Only codes from the ISO 20022 ExternalPurposeCode list are allowed.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ When present, the receiving bank is not obliged to validate the the reference information.
+
+
+
+
+
+
+
+
+
+
diff --git a/account_banking_sepa_credit_transfer/data/payment_type_sepa_sct.xml b/account_banking_sepa_credit_transfer/data/payment_type_sepa_sct.xml
index f07ece146..e736b0ba5 100644
--- a/account_banking_sepa_credit_transfer/data/payment_type_sepa_sct.xml
+++ b/account_banking_sepa_credit_transfer/data/payment_type_sepa_sct.xml
@@ -36,6 +36,15 @@
+
+ SEPA Credit Transfer pain 001.003.03 (used in Germany)
+ pain.001.003.03
+ payment
+
+
+
+
diff --git a/account_banking_sepa_credit_transfer/wizard/export_sepa.py b/account_banking_sepa_credit_transfer/wizard/export_sepa.py
index a39deb085..70b06380a 100644
--- a/account_banking_sepa_credit_transfer/wizard/export_sepa.py
+++ b/account_banking_sepa_credit_transfer/wizard/export_sepa.py
@@ -126,15 +126,22 @@ class banking_export_sepa_wizard(orm.TransientModel):
bic_xml_tag = 'BICFI'
name_maxsize = 140
root_xml_tag = 'CstmrCdtTrfInitn'
-
+ # added pain.001.003.03 for German Banks
+ # it is not in the offical ISO 20022 documentations, but nearly all
+ # german banks are working with this instead 001.001.03
+ elif pain_flavor == 'pain.001.003.03':
+ bic_xml_tag = 'BIC'
+ name_maxsize = 70
+ root_xml_tag = 'CstmrCdtTrfInitn'
else:
raise orm.except_orm(
_('Error:'),
_("Payment Type Code '%s' is not supported. The only "
"Payment Type Codes supported for SEPA Credit Transfers "
"are 'pain.001.001.02', 'pain.001.001.03', "
- "'pain.001.001.04' and 'pain.001.001.05'.")
- % pain_flavor)
+ "'pain.001.001.04', 'pain.001.001.05'"
+ " and 'pain.001.003.03'.") %
+ pain_flavor)
gen_args = {
'bic_xml_tag': bic_xml_tag,
@@ -156,8 +163,12 @@ class banking_export_sepa_wizard(orm.TransientModel):
xml_root = etree.Element('Document', nsmap=pain_ns)
pain_root = etree.SubElement(xml_root, root_xml_tag)
- pain_03_to_05 = \
- ['pain.001.001.03', 'pain.001.001.04', 'pain.001.001.05']
+ pain_03_to_05 = [
+ 'pain.001.001.03',
+ 'pain.001.001.04',
+ 'pain.001.001.05',
+ 'pain.001.003.03'
+ ]
# A. Group header
group_header_1_0, nb_of_transactions_1_6, control_sum_1_7 = \