From 8dc27f6c4e2f205eb60c2e16f74bc19e8b093db2 Mon Sep 17 00:00:00 2001 From: Pete Houghton Date: Fri, 20 Sep 2024 16:09:38 +0000 Subject: [PATCH] Add REMT messages and bump version accordingly --- README.md | 2 +- build_classes_from_xsds.bsh | 7 +- pyiso20022/remt/__init__.py | 1 + pyiso20022/remt/remt_001_001_01/__init__.py | 165 + .../remt/remt_001_001_01/remt_001_001_01.py | 2551 +++++++++++++++ pyiso20022/remt/remt_001_001_02/__init__.py | 165 + .../remt/remt_001_001_02/remt_001_001_02.py | 2552 +++++++++++++++ pyiso20022/remt/remt_001_001_03/__init__.py | 167 + .../remt/remt_001_001_03/remt_001_001_03.py | 2572 +++++++++++++++ pyiso20022/remt/remt_001_001_04/__init__.py | 179 ++ .../remt/remt_001_001_04/remt_001_001_04.py | 2858 +++++++++++++++++ pyiso20022/remt/remt_001_001_05/__init__.py | 179 ++ .../remt/remt_001_001_05/remt_001_001_05.py | 2857 ++++++++++++++++ pyiso20022/remt/remt_001_001_06/__init__.py | 173 + .../remt/remt_001_001_06/remt_001_001_06.py | 2782 ++++++++++++++++ pyiso20022/remt/remt_002_001_01/__init__.py | 71 + .../remt/remt_002_001_01/remt_002_001_01.py | 1003 ++++++ pyiso20022/remt/remt_002_001_02/__init__.py | 79 + .../remt/remt_002_001_02/remt_002_001_02.py | 1234 +++++++ pyiso20022/remt/remt_002_001_03/__init__.py | 79 + .../remt/remt_002_001_03/remt_002_001_03.py | 1265 ++++++++ setup.py | 2 +- supported_msg_types_final.md | 9 + xsd/remittance/remt.001/remt.001.001.01.xsd | 825 +++++ xsd/remittance/remt.001/remt.001.001.02.xsd | 826 +++++ xsd/remittance/remt.001/remt.001.001.03.xsd | 832 +++++ xsd/remittance/remt.001/remt.001.001.04.xsd | 910 ++++++ xsd/remittance/remt.001/remt.001.001.05.xsd | 913 ++++++ xsd/remittance/remt.001/remt.001.001.06.xsd | 891 +++++ xsd/remittance/remt.002/remt.002.001.01.xsd | 343 ++ xsd/remittance/remt.002/remt.002.001.02.xsd | 408 +++ xsd/remittance/remt.002/remt.002.001.03.xsd | 418 +++ 32 files changed, 27313 insertions(+), 5 deletions(-) create mode 100644 pyiso20022/remt/__init__.py create mode 100644 pyiso20022/remt/remt_001_001_01/__init__.py create mode 100644 pyiso20022/remt/remt_001_001_01/remt_001_001_01.py create mode 100644 pyiso20022/remt/remt_001_001_02/__init__.py create mode 100644 pyiso20022/remt/remt_001_001_02/remt_001_001_02.py create mode 100644 pyiso20022/remt/remt_001_001_03/__init__.py create mode 100644 pyiso20022/remt/remt_001_001_03/remt_001_001_03.py create mode 100644 pyiso20022/remt/remt_001_001_04/__init__.py create mode 100644 pyiso20022/remt/remt_001_001_04/remt_001_001_04.py create mode 100644 pyiso20022/remt/remt_001_001_05/__init__.py create mode 100644 pyiso20022/remt/remt_001_001_05/remt_001_001_05.py create mode 100644 pyiso20022/remt/remt_001_001_06/__init__.py create mode 100644 pyiso20022/remt/remt_001_001_06/remt_001_001_06.py create mode 100644 pyiso20022/remt/remt_002_001_01/__init__.py create mode 100644 pyiso20022/remt/remt_002_001_01/remt_002_001_01.py create mode 100644 pyiso20022/remt/remt_002_001_02/__init__.py create mode 100644 pyiso20022/remt/remt_002_001_02/remt_002_001_02.py create mode 100644 pyiso20022/remt/remt_002_001_03/__init__.py create mode 100644 pyiso20022/remt/remt_002_001_03/remt_002_001_03.py create mode 100644 xsd/remittance/remt.001/remt.001.001.01.xsd create mode 100644 xsd/remittance/remt.001/remt.001.001.02.xsd create mode 100644 xsd/remittance/remt.001/remt.001.001.03.xsd create mode 100644 xsd/remittance/remt.001/remt.001.001.04.xsd create mode 100644 xsd/remittance/remt.001/remt.001.001.05.xsd create mode 100644 xsd/remittance/remt.001/remt.001.001.06.xsd create mode 100644 xsd/remittance/remt.002/remt.002.001.01.xsd create mode 100644 xsd/remittance/remt.002/remt.002.001.02.xsd create mode 100644 xsd/remittance/remt.002/remt.002.001.03.xsd diff --git a/README.md b/README.md index d8461a4..42d7772 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ A package of classes to support payment, financial, securities & accounting message generation (for ISO 20022 messages). -These are the type of payments messages used in payment schemes such as FedNow, FedWire, TARGET2, CHAPS, CBPR+, MEPS+ and other SWIFT/Wire Transfer style payments etc. You may hear them refered to as PACS messages (but there are others types as well, like CAMT.056 or PAIN.001 or ADMI.004 etc). +These are the type of payments messages used in payment schemes such as FedNow, FedWire, TARGET2, CHAPS, CBPR+, MEPS+ and other SWIFT/Wire Transfer style payments etc. You may hear them refered to as PACS messages (but there are others types as well, like CAMT.056 or PAIN.001, REMT.001 or ADMI.004 etc). You might use these messages if you intitate payments from your company into a larger financial institution, in this scenario you will be generating PAIN (thats _Payment Initiation_) messages. diff --git a/build_classes_from_xsds.bsh b/build_classes_from_xsds.bsh index 30fe5bf..f200825 100755 --- a/build_classes_from_xsds.bsh +++ b/build_classes_from_xsds.bsh @@ -31,13 +31,14 @@ generate_xsdata "head" "xsd/business_application_header" generate_xsdata "pain" "xsd/payments_initiation" generate_xsdata "camt" "xsd/cash_management" generate_xsdata "admi" "xsd/administration" +generate_xsdata "remt" "xsd/remittance" wait cat supported_msg_types.md | sort -n | uniq > supported_msg_types_final.md rm supported_msg_types.md # Help pdoc with the docs -echo '"""' > pyiso20022/__init__.py -cat README.md >> pyiso20022/__init__.py -echo '"""' >> pyiso20022/__init__.py +# echo '"""' > pyiso20022/__init__.py +# cat README.md >> pyiso20022/__init__.py +# echo '"""' >> pyiso20022/__init__.py diff --git a/pyiso20022/remt/__init__.py b/pyiso20022/remt/__init__.py new file mode 100644 index 0000000..b2a4ba5 --- /dev/null +++ b/pyiso20022/remt/__init__.py @@ -0,0 +1 @@ +# nothing here diff --git a/pyiso20022/remt/remt_001_001_01/__init__.py b/pyiso20022/remt/remt_001_001_01/__init__.py new file mode 100644 index 0000000..c1ca76d --- /dev/null +++ b/pyiso20022/remt/remt_001_001_01/__init__.py @@ -0,0 +1,165 @@ +from pyiso20022.remt.remt_001_001_01.remt_001_001_01 import ( + AccountIdentification4Choice, + AccountSchemeName1Choice, + ActiveOrHistoricCurrencyAndAmount, + AddressType2Code, + AmountType3Choice, + Authorisation1Choice, + Authorisation1Code, + BranchAndFinancialInstitutionIdentification5, + BranchData2, + CashAccount24, + CashAccountType2Choice, + CategoryPurpose1Choice, + ClearingSystemIdentification2Choice, + ClearingSystemMemberIdentification2, + ContactDetails2, + CopyDuplicate1Code, + CreditDebitCode, + CreditorReferenceInformation2, + CreditorReferenceType1Choice, + CreditorReferenceType2, + DateAndPlaceOfBirth, + DatePeriodDetails, + DiscountAmountAndType1, + DiscountAmountType1Choice, + Document, + DocumentAdjustment1, + DocumentLineIdentification1, + DocumentLineInformation1, + DocumentLineType1, + DocumentLineType1Choice, + DocumentType3Code, + DocumentType5Code, + EquivalentAmount2, + ExchangeRate1, + ExchangeRateType1Code, + FinancialIdentificationSchemeName1Choice, + FinancialInstitutionIdentification8, + Garnishment1, + GarnishmentType1, + GarnishmentType1Choice, + GenericAccountIdentification1, + GenericFinancialIdentification1, + GenericOrganisationIdentification1, + GenericPersonIdentification1, + GroupHeader62, + LocalInstrument2Choice, + NamePrefix1Code, + OrganisationIdentification8, + OrganisationIdentificationSchemeName1Choice, + OriginalPaymentInformation6, + Party11Choice, + PartyIdentification43, + PaymentTypeInformation19, + PersonIdentification5, + PersonIdentificationSchemeName1Choice, + PostalAddress6, + Priority2Code, + ReferredDocumentInformation4, + ReferredDocumentType1Choice, + ReferredDocumentType2, + RemittanceAdviceV01, + RemittanceAmount2, + RemittanceAmount3, + RemittanceInformation8, + ServiceLevel8Choice, + StructuredRemittanceInformation10, + SupplementaryData1, + SupplementaryDataEnvelope1, + TaxAmount1, + TaxAmountAndType1, + TaxAmountType1Choice, + TaxAuthorisation1, + TaxInformation4, + TaxParty1, + TaxParty2, + TaxPeriod1, + TaxRecord1, + TaxRecordDetails1, + TaxRecordPeriod1Code, + TransactionReferences4, +) + +__all__ = [ + "AccountIdentification4Choice", + "AccountSchemeName1Choice", + "ActiveOrHistoricCurrencyAndAmount", + "AddressType2Code", + "AmountType3Choice", + "Authorisation1Choice", + "Authorisation1Code", + "BranchAndFinancialInstitutionIdentification5", + "BranchData2", + "CashAccount24", + "CashAccountType2Choice", + "CategoryPurpose1Choice", + "ClearingSystemIdentification2Choice", + "ClearingSystemMemberIdentification2", + "ContactDetails2", + "CopyDuplicate1Code", + "CreditDebitCode", + "CreditorReferenceInformation2", + "CreditorReferenceType1Choice", + "CreditorReferenceType2", + "DateAndPlaceOfBirth", + "DatePeriodDetails", + "DiscountAmountAndType1", + "DiscountAmountType1Choice", + "Document", + "DocumentAdjustment1", + "DocumentLineIdentification1", + "DocumentLineInformation1", + "DocumentLineType1", + "DocumentLineType1Choice", + "DocumentType3Code", + "DocumentType5Code", + "EquivalentAmount2", + "ExchangeRate1", + "ExchangeRateType1Code", + "FinancialIdentificationSchemeName1Choice", + "FinancialInstitutionIdentification8", + "Garnishment1", + "GarnishmentType1", + "GarnishmentType1Choice", + "GenericAccountIdentification1", + "GenericFinancialIdentification1", + "GenericOrganisationIdentification1", + "GenericPersonIdentification1", + "GroupHeader62", + "LocalInstrument2Choice", + "NamePrefix1Code", + "OrganisationIdentification8", + "OrganisationIdentificationSchemeName1Choice", + "OriginalPaymentInformation6", + "Party11Choice", + "PartyIdentification43", + "PaymentTypeInformation19", + "PersonIdentification5", + "PersonIdentificationSchemeName1Choice", + "PostalAddress6", + "Priority2Code", + "ReferredDocumentInformation4", + "ReferredDocumentType1Choice", + "ReferredDocumentType2", + "RemittanceAdviceV01", + "RemittanceAmount2", + "RemittanceAmount3", + "RemittanceInformation8", + "ServiceLevel8Choice", + "StructuredRemittanceInformation10", + "SupplementaryData1", + "SupplementaryDataEnvelope1", + "TaxAmount1", + "TaxAmountAndType1", + "TaxAmountType1Choice", + "TaxAuthorisation1", + "TaxInformation4", + "TaxParty1", + "TaxParty2", + "TaxPeriod1", + "TaxRecord1", + "TaxRecordDetails1", + "TaxRecordPeriod1Code", + "TransactionReferences4", +] diff --git a/pyiso20022/remt/remt_001_001_01/remt_001_001_01.py b/pyiso20022/remt/remt_001_001_01/remt_001_001_01.py new file mode 100644 index 0000000..be06d46 --- /dev/null +++ b/pyiso20022/remt/remt_001_001_01/remt_001_001_01.py @@ -0,0 +1,2551 @@ +from dataclasses import dataclass, field +from decimal import Decimal +from enum import Enum +from typing import List, Optional + +from xsdata.models.datatype import XmlDate, XmlDateTime + +__NAMESPACE__ = "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01" + + +@dataclass +class AccountSchemeName1Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class ActiveOrHistoricCurrencyAndAmount: + value: Optional[Decimal] = field( + default=None, + metadata={ + "required": True, + "min_inclusive": Decimal("0"), + "total_digits": 18, + "fraction_digits": 5, + }, + ) + ccy: Optional[str] = field( + default=None, + metadata={ + "name": "Ccy", + "type": "Attribute", + "required": True, + "pattern": r"[A-Z]{3,3}", + }, + ) + + +class AddressType2Code(Enum): + ADDR = "ADDR" + PBOX = "PBOX" + HOME = "HOME" + BIZZ = "BIZZ" + MLTO = "MLTO" + DLVY = "DLVY" + + +class Authorisation1Code(Enum): + AUTH = "AUTH" + FDET = "FDET" + FSUM = "FSUM" + ILEV = "ILEV" + + +@dataclass +class CashAccountType2Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class CategoryPurpose1Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class ClearingSystemIdentification2Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 5, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + + +class CopyDuplicate1Code(Enum): + CODU = "CODU" + COPY = "COPY" + DUPL = "DUPL" + + +class CreditDebitCode(Enum): + CRDT = "CRDT" + DBIT = "DBIT" + + +@dataclass +class DateAndPlaceOfBirth: + birth_dt: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "BirthDt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "required": True, + }, + ) + prvc_of_birth: Optional[str] = field( + default=None, + metadata={ + "name": "PrvcOfBirth", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + city_of_birth: Optional[str] = field( + default=None, + metadata={ + "name": "CityOfBirth", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "required": True, + "min_length": 1, + "max_length": 35, + }, + ) + ctry_of_birth: Optional[str] = field( + default=None, + metadata={ + "name": "CtryOfBirth", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "required": True, + "pattern": r"[A-Z]{2,2}", + }, + ) + + +@dataclass +class DatePeriodDetails: + fr_dt: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "FrDt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "required": True, + }, + ) + to_dt: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "ToDt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "required": True, + }, + ) + + +@dataclass +class DiscountAmountType1Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class DocumentLineType1Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + + +class DocumentType3Code(Enum): + RADM = "RADM" + RPIN = "RPIN" + FXDR = "FXDR" + DISP = "DISP" + PUOR = "PUOR" + SCOR = "SCOR" + + +class DocumentType5Code(Enum): + MSIN = "MSIN" + CNFA = "CNFA" + DNFA = "DNFA" + CINV = "CINV" + CREN = "CREN" + DEBN = "DEBN" + HIRI = "HIRI" + SBIN = "SBIN" + CMCN = "CMCN" + SOAC = "SOAC" + DISP = "DISP" + BOLD = "BOLD" + VCHR = "VCHR" + AROI = "AROI" + TSUT = "TSUT" + + +class ExchangeRateType1Code(Enum): + SPOT = "SPOT" + SALE = "SALE" + AGRD = "AGRD" + + +@dataclass +class FinancialIdentificationSchemeName1Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class GarnishmentType1Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class LocalInstrument2Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + + +class NamePrefix1Code(Enum): + DOCT = "DOCT" + MIST = "MIST" + MISS = "MISS" + MADM = "MADM" + + +@dataclass +class OrganisationIdentificationSchemeName1Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class PersonIdentificationSchemeName1Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + + +class Priority2Code(Enum): + HIGH = "HIGH" + NORM = "NORM" + + +@dataclass +class ServiceLevel8Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class SupplementaryDataEnvelope1: + any_element: Optional[object] = field( + default=None, + metadata={ + "type": "Wildcard", + "namespace": "##any", + }, + ) + + +@dataclass +class TaxAmountType1Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class TaxAuthorisation1: + titl: Optional[str] = field( + default=None, + metadata={ + "name": "Titl", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + nm: Optional[str] = field( + default=None, + metadata={ + "name": "Nm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 140, + }, + ) + + +@dataclass +class TaxParty1: + tax_id: Optional[str] = field( + default=None, + metadata={ + "name": "TaxId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + regn_id: Optional[str] = field( + default=None, + metadata={ + "name": "RegnId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + tax_tp: Optional[str] = field( + default=None, + metadata={ + "name": "TaxTp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + + +class TaxRecordPeriod1Code(Enum): + MM01 = "MM01" + MM02 = "MM02" + MM03 = "MM03" + MM04 = "MM04" + MM05 = "MM05" + MM06 = "MM06" + MM07 = "MM07" + MM08 = "MM08" + MM09 = "MM09" + MM10 = "MM10" + MM11 = "MM11" + MM12 = "MM12" + QTR1 = "QTR1" + QTR2 = "QTR2" + QTR3 = "QTR3" + QTR4 = "QTR4" + HLF1 = "HLF1" + HLF2 = "HLF2" + + +@dataclass +class Authorisation1Choice: + cd: Optional[Authorisation1Code] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 128, + }, + ) + + +@dataclass +class ClearingSystemMemberIdentification2: + clr_sys_id: Optional[ClearingSystemIdentification2Choice] = field( + default=None, + metadata={ + "name": "ClrSysId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + mmb_id: Optional[str] = field( + default=None, + metadata={ + "name": "MmbId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "required": True, + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class ContactDetails2: + nm_prfx: Optional[NamePrefix1Code] = field( + default=None, + metadata={ + "name": "NmPrfx", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + nm: Optional[str] = field( + default=None, + metadata={ + "name": "Nm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 140, + }, + ) + phne_nb: Optional[str] = field( + default=None, + metadata={ + "name": "PhneNb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "pattern": r"\+[0-9]{1,3}-[0-9()+\-]{1,30}", + }, + ) + mob_nb: Optional[str] = field( + default=None, + metadata={ + "name": "MobNb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "pattern": r"\+[0-9]{1,3}-[0-9()+\-]{1,30}", + }, + ) + fax_nb: Optional[str] = field( + default=None, + metadata={ + "name": "FaxNb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "pattern": r"\+[0-9]{1,3}-[0-9()+\-]{1,30}", + }, + ) + email_adr: Optional[str] = field( + default=None, + metadata={ + "name": "EmailAdr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 2048, + }, + ) + othr: Optional[str] = field( + default=None, + metadata={ + "name": "Othr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class CreditorReferenceType1Choice: + cd: Optional[DocumentType3Code] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class DiscountAmountAndType1: + tp: Optional[DiscountAmountType1Choice] = field( + default=None, + metadata={ + "name": "Tp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "Amt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "required": True, + }, + ) + + +@dataclass +class DocumentAdjustment1: + amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "Amt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "required": True, + }, + ) + cdt_dbt_ind: Optional[CreditDebitCode] = field( + default=None, + metadata={ + "name": "CdtDbtInd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + rsn: Optional[str] = field( + default=None, + metadata={ + "name": "Rsn", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 4, + }, + ) + addtl_inf: Optional[str] = field( + default=None, + metadata={ + "name": "AddtlInf", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 140, + }, + ) + + +@dataclass +class DocumentLineType1: + cd_or_prtry: Optional[DocumentLineType1Choice] = field( + default=None, + metadata={ + "name": "CdOrPrtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "required": True, + }, + ) + issr: Optional[str] = field( + default=None, + metadata={ + "name": "Issr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class EquivalentAmount2: + amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "Amt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "required": True, + }, + ) + ccy_of_trf: Optional[str] = field( + default=None, + metadata={ + "name": "CcyOfTrf", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "required": True, + "pattern": r"[A-Z]{3,3}", + }, + ) + + +@dataclass +class ExchangeRate1: + unit_ccy: Optional[str] = field( + default=None, + metadata={ + "name": "UnitCcy", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "pattern": r"[A-Z]{3,3}", + }, + ) + xchg_rate: Optional[Decimal] = field( + default=None, + metadata={ + "name": "XchgRate", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "total_digits": 11, + "fraction_digits": 10, + }, + ) + rate_tp: Optional[ExchangeRateType1Code] = field( + default=None, + metadata={ + "name": "RateTp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + ctrct_id: Optional[str] = field( + default=None, + metadata={ + "name": "CtrctId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class GarnishmentType1: + cd_or_prtry: Optional[GarnishmentType1Choice] = field( + default=None, + metadata={ + "name": "CdOrPrtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "required": True, + }, + ) + issr: Optional[str] = field( + default=None, + metadata={ + "name": "Issr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class GenericAccountIdentification1: + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "required": True, + "min_length": 1, + "max_length": 34, + }, + ) + schme_nm: Optional[AccountSchemeName1Choice] = field( + default=None, + metadata={ + "name": "SchmeNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + issr: Optional[str] = field( + default=None, + metadata={ + "name": "Issr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class GenericFinancialIdentification1: + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "required": True, + "min_length": 1, + "max_length": 35, + }, + ) + schme_nm: Optional[FinancialIdentificationSchemeName1Choice] = field( + default=None, + metadata={ + "name": "SchmeNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + issr: Optional[str] = field( + default=None, + metadata={ + "name": "Issr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class GenericOrganisationIdentification1: + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "required": True, + "min_length": 1, + "max_length": 35, + }, + ) + schme_nm: Optional[OrganisationIdentificationSchemeName1Choice] = field( + default=None, + metadata={ + "name": "SchmeNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + issr: Optional[str] = field( + default=None, + metadata={ + "name": "Issr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class GenericPersonIdentification1: + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "required": True, + "min_length": 1, + "max_length": 35, + }, + ) + schme_nm: Optional[PersonIdentificationSchemeName1Choice] = field( + default=None, + metadata={ + "name": "SchmeNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + issr: Optional[str] = field( + default=None, + metadata={ + "name": "Issr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class PaymentTypeInformation19: + instr_prty: Optional[Priority2Code] = field( + default=None, + metadata={ + "name": "InstrPrty", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + svc_lvl: Optional[ServiceLevel8Choice] = field( + default=None, + metadata={ + "name": "SvcLvl", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + lcl_instrm: Optional[LocalInstrument2Choice] = field( + default=None, + metadata={ + "name": "LclInstrm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + ctgy_purp: Optional[CategoryPurpose1Choice] = field( + default=None, + metadata={ + "name": "CtgyPurp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + + +@dataclass +class PostalAddress6: + adr_tp: Optional[AddressType2Code] = field( + default=None, + metadata={ + "name": "AdrTp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + dept: Optional[str] = field( + default=None, + metadata={ + "name": "Dept", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 70, + }, + ) + sub_dept: Optional[str] = field( + default=None, + metadata={ + "name": "SubDept", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 70, + }, + ) + strt_nm: Optional[str] = field( + default=None, + metadata={ + "name": "StrtNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 70, + }, + ) + bldg_nb: Optional[str] = field( + default=None, + metadata={ + "name": "BldgNb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 16, + }, + ) + pst_cd: Optional[str] = field( + default=None, + metadata={ + "name": "PstCd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 16, + }, + ) + twn_nm: Optional[str] = field( + default=None, + metadata={ + "name": "TwnNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + ctry_sub_dvsn: Optional[str] = field( + default=None, + metadata={ + "name": "CtrySubDvsn", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + ctry: Optional[str] = field( + default=None, + metadata={ + "name": "Ctry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "pattern": r"[A-Z]{2,2}", + }, + ) + adr_line: List[str] = field( + default_factory=list, + metadata={ + "name": "AdrLine", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "max_occurs": 7, + "min_length": 1, + "max_length": 70, + }, + ) + + +@dataclass +class ReferredDocumentType1Choice: + cd: Optional[DocumentType5Code] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class SupplementaryData1: + plc_and_nm: Optional[str] = field( + default=None, + metadata={ + "name": "PlcAndNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 350, + }, + ) + envlp: Optional[SupplementaryDataEnvelope1] = field( + default=None, + metadata={ + "name": "Envlp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "required": True, + }, + ) + + +@dataclass +class TaxAmountAndType1: + tp: Optional[TaxAmountType1Choice] = field( + default=None, + metadata={ + "name": "Tp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "Amt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "required": True, + }, + ) + + +@dataclass +class TaxParty2: + tax_id: Optional[str] = field( + default=None, + metadata={ + "name": "TaxId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + regn_id: Optional[str] = field( + default=None, + metadata={ + "name": "RegnId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + tax_tp: Optional[str] = field( + default=None, + metadata={ + "name": "TaxTp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + authstn: Optional[TaxAuthorisation1] = field( + default=None, + metadata={ + "name": "Authstn", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + + +@dataclass +class TaxPeriod1: + yr: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "Yr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + tp: Optional[TaxRecordPeriod1Code] = field( + default=None, + metadata={ + "name": "Tp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + fr_to_dt: Optional[DatePeriodDetails] = field( + default=None, + metadata={ + "name": "FrToDt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + + +@dataclass +class AccountIdentification4Choice: + iban: Optional[str] = field( + default=None, + metadata={ + "name": "IBAN", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "pattern": r"[A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}", + }, + ) + othr: Optional[GenericAccountIdentification1] = field( + default=None, + metadata={ + "name": "Othr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + + +@dataclass +class AmountType3Choice: + instd_amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "InstdAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + eqvt_amt: Optional[EquivalentAmount2] = field( + default=None, + metadata={ + "name": "EqvtAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + + +@dataclass +class BranchData2: + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + nm: Optional[str] = field( + default=None, + metadata={ + "name": "Nm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 140, + }, + ) + pstl_adr: Optional[PostalAddress6] = field( + default=None, + metadata={ + "name": "PstlAdr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + + +@dataclass +class CreditorReferenceType2: + cd_or_prtry: Optional[CreditorReferenceType1Choice] = field( + default=None, + metadata={ + "name": "CdOrPrtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "required": True, + }, + ) + issr: Optional[str] = field( + default=None, + metadata={ + "name": "Issr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class DocumentLineIdentification1: + tp: Optional[DocumentLineType1] = field( + default=None, + metadata={ + "name": "Tp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + nb: Optional[str] = field( + default=None, + metadata={ + "name": "Nb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + rltd_dt: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "RltdDt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + + +@dataclass +class FinancialInstitutionIdentification8: + bicfi: Optional[str] = field( + default=None, + metadata={ + "name": "BICFI", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "pattern": r"[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}", + }, + ) + clr_sys_mmb_id: Optional[ClearingSystemMemberIdentification2] = field( + default=None, + metadata={ + "name": "ClrSysMmbId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + nm: Optional[str] = field( + default=None, + metadata={ + "name": "Nm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 140, + }, + ) + pstl_adr: Optional[PostalAddress6] = field( + default=None, + metadata={ + "name": "PstlAdr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + othr: Optional[GenericFinancialIdentification1] = field( + default=None, + metadata={ + "name": "Othr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + + +@dataclass +class OrganisationIdentification8: + any_bic: Optional[str] = field( + default=None, + metadata={ + "name": "AnyBIC", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "pattern": r"[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}", + }, + ) + othr: List[GenericOrganisationIdentification1] = field( + default_factory=list, + metadata={ + "name": "Othr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + + +@dataclass +class PersonIdentification5: + dt_and_plc_of_birth: Optional[DateAndPlaceOfBirth] = field( + default=None, + metadata={ + "name": "DtAndPlcOfBirth", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + othr: List[GenericPersonIdentification1] = field( + default_factory=list, + metadata={ + "name": "Othr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + + +@dataclass +class ReferredDocumentType2: + cd_or_prtry: Optional[ReferredDocumentType1Choice] = field( + default=None, + metadata={ + "name": "CdOrPrtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "required": True, + }, + ) + issr: Optional[str] = field( + default=None, + metadata={ + "name": "Issr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class RemittanceAmount2: + due_pybl_amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "DuePyblAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + dscnt_apld_amt: List[DiscountAmountAndType1] = field( + default_factory=list, + metadata={ + "name": "DscntApldAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + cdt_note_amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "CdtNoteAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + tax_amt: List[TaxAmountAndType1] = field( + default_factory=list, + metadata={ + "name": "TaxAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + adjstmnt_amt_and_rsn: List[DocumentAdjustment1] = field( + default_factory=list, + metadata={ + "name": "AdjstmntAmtAndRsn", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + rmtd_amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "RmtdAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + + +@dataclass +class RemittanceAmount3: + due_pybl_amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "DuePyblAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + dscnt_apld_amt: List[DiscountAmountAndType1] = field( + default_factory=list, + metadata={ + "name": "DscntApldAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + cdt_note_amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "CdtNoteAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + tax_amt: List[TaxAmountAndType1] = field( + default_factory=list, + metadata={ + "name": "TaxAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + adjstmnt_amt_and_rsn: List[DocumentAdjustment1] = field( + default_factory=list, + metadata={ + "name": "AdjstmntAmtAndRsn", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + rmtd_amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "RmtdAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + + +@dataclass +class TaxRecordDetails1: + prd: Optional[TaxPeriod1] = field( + default=None, + metadata={ + "name": "Prd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "Amt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "required": True, + }, + ) + + +@dataclass +class BranchAndFinancialInstitutionIdentification5: + fin_instn_id: Optional[FinancialInstitutionIdentification8] = field( + default=None, + metadata={ + "name": "FinInstnId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "required": True, + }, + ) + brnch_id: Optional[BranchData2] = field( + default=None, + metadata={ + "name": "BrnchId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + + +@dataclass +class CashAccount24: + id: Optional[AccountIdentification4Choice] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "required": True, + }, + ) + tp: Optional[CashAccountType2Choice] = field( + default=None, + metadata={ + "name": "Tp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + ccy: Optional[str] = field( + default=None, + metadata={ + "name": "Ccy", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "pattern": r"[A-Z]{3,3}", + }, + ) + nm: Optional[str] = field( + default=None, + metadata={ + "name": "Nm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 70, + }, + ) + + +@dataclass +class CreditorReferenceInformation2: + tp: Optional[CreditorReferenceType2] = field( + default=None, + metadata={ + "name": "Tp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + ref: Optional[str] = field( + default=None, + metadata={ + "name": "Ref", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class DocumentLineInformation1: + id: List[DocumentLineIdentification1] = field( + default_factory=list, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_occurs": 1, + }, + ) + desc: Optional[str] = field( + default=None, + metadata={ + "name": "Desc", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 2048, + }, + ) + amt: Optional[RemittanceAmount3] = field( + default=None, + metadata={ + "name": "Amt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + + +@dataclass +class Party11Choice: + org_id: Optional[OrganisationIdentification8] = field( + default=None, + metadata={ + "name": "OrgId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + prvt_id: Optional[PersonIdentification5] = field( + default=None, + metadata={ + "name": "PrvtId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + + +@dataclass +class TaxAmount1: + rate: Optional[Decimal] = field( + default=None, + metadata={ + "name": "Rate", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "total_digits": 11, + "fraction_digits": 10, + }, + ) + taxbl_base_amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "TaxblBaseAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + ttl_amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "TtlAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + dtls: List[TaxRecordDetails1] = field( + default_factory=list, + metadata={ + "name": "Dtls", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + + +@dataclass +class PartyIdentification43: + nm: Optional[str] = field( + default=None, + metadata={ + "name": "Nm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 140, + }, + ) + pstl_adr: Optional[PostalAddress6] = field( + default=None, + metadata={ + "name": "PstlAdr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + id: Optional[Party11Choice] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + ctry_of_res: Optional[str] = field( + default=None, + metadata={ + "name": "CtryOfRes", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "pattern": r"[A-Z]{2,2}", + }, + ) + ctct_dtls: Optional[ContactDetails2] = field( + default=None, + metadata={ + "name": "CtctDtls", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + + +@dataclass +class ReferredDocumentInformation4: + tp: Optional[ReferredDocumentType2] = field( + default=None, + metadata={ + "name": "Tp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + nb: Optional[str] = field( + default=None, + metadata={ + "name": "Nb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + rltd_dt: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "RltdDt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + line_dtls: List[DocumentLineInformation1] = field( + default_factory=list, + metadata={ + "name": "LineDtls", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + + +@dataclass +class TaxRecord1: + tp: Optional[str] = field( + default=None, + metadata={ + "name": "Tp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + ctgy: Optional[str] = field( + default=None, + metadata={ + "name": "Ctgy", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + ctgy_dtls: Optional[str] = field( + default=None, + metadata={ + "name": "CtgyDtls", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + dbtr_sts: Optional[str] = field( + default=None, + metadata={ + "name": "DbtrSts", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + cert_id: Optional[str] = field( + default=None, + metadata={ + "name": "CertId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + frms_cd: Optional[str] = field( + default=None, + metadata={ + "name": "FrmsCd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + prd: Optional[TaxPeriod1] = field( + default=None, + metadata={ + "name": "Prd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + tax_amt: Optional[TaxAmount1] = field( + default=None, + metadata={ + "name": "TaxAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + addtl_inf: Optional[str] = field( + default=None, + metadata={ + "name": "AddtlInf", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 140, + }, + ) + + +@dataclass +class Garnishment1: + tp: Optional[GarnishmentType1] = field( + default=None, + metadata={ + "name": "Tp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "required": True, + }, + ) + grnshee: Optional[PartyIdentification43] = field( + default=None, + metadata={ + "name": "Grnshee", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + grnshmt_admstr: Optional[PartyIdentification43] = field( + default=None, + metadata={ + "name": "GrnshmtAdmstr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + ref_nb: Optional[str] = field( + default=None, + metadata={ + "name": "RefNb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 140, + }, + ) + dt: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "Dt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + rmtd_amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "RmtdAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + fmly_mdcl_insrnc_ind: Optional[bool] = field( + default=None, + metadata={ + "name": "FmlyMdclInsrncInd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + mplyee_termntn_ind: Optional[bool] = field( + default=None, + metadata={ + "name": "MplyeeTermntnInd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + + +@dataclass +class GroupHeader62: + msg_id: Optional[str] = field( + default=None, + metadata={ + "name": "MsgId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "required": True, + "min_length": 1, + "max_length": 35, + }, + ) + cre_dt_tm: Optional[XmlDateTime] = field( + default=None, + metadata={ + "name": "CreDtTm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "required": True, + }, + ) + authstn: List[Authorisation1Choice] = field( + default_factory=list, + metadata={ + "name": "Authstn", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "max_occurs": 2, + }, + ) + cpy_ind: Optional[CopyDuplicate1Code] = field( + default=None, + metadata={ + "name": "CpyInd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + initg_pty: Optional[PartyIdentification43] = field( + default=None, + metadata={ + "name": "InitgPty", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "required": True, + }, + ) + msg_rcpt: Optional[PartyIdentification43] = field( + default=None, + metadata={ + "name": "MsgRcpt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + fwdg_agt: Optional[BranchAndFinancialInstitutionIdentification5] = field( + default=None, + metadata={ + "name": "FwdgAgt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + + +@dataclass +class TaxInformation4: + cdtr: Optional[TaxParty1] = field( + default=None, + metadata={ + "name": "Cdtr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + dbtr: Optional[TaxParty2] = field( + default=None, + metadata={ + "name": "Dbtr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + ultmt_dbtr: Optional[TaxParty2] = field( + default=None, + metadata={ + "name": "UltmtDbtr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + admstn_zone: Optional[str] = field( + default=None, + metadata={ + "name": "AdmstnZone", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + ref_nb: Optional[str] = field( + default=None, + metadata={ + "name": "RefNb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 140, + }, + ) + mtd: Optional[str] = field( + default=None, + metadata={ + "name": "Mtd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + ttl_taxbl_base_amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "TtlTaxblBaseAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + ttl_tax_amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "TtlTaxAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + dt: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "Dt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + seq_nb: Optional[Decimal] = field( + default=None, + metadata={ + "name": "SeqNb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "total_digits": 18, + "fraction_digits": 0, + }, + ) + rcrd: List[TaxRecord1] = field( + default_factory=list, + metadata={ + "name": "Rcrd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + + +@dataclass +class TransactionReferences4: + pmt_inf_id: Optional[str] = field( + default=None, + metadata={ + "name": "PmtInfId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + instr_id: Optional[str] = field( + default=None, + metadata={ + "name": "InstrId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + end_to_end_id: Optional[str] = field( + default=None, + metadata={ + "name": "EndToEndId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "required": True, + "min_length": 1, + "max_length": 35, + }, + ) + tx_id: Optional[str] = field( + default=None, + metadata={ + "name": "TxId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + mndt_id: Optional[str] = field( + default=None, + metadata={ + "name": "MndtId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + cdtr_schme_id: Optional[PartyIdentification43] = field( + default=None, + metadata={ + "name": "CdtrSchmeId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + + +@dataclass +class OriginalPaymentInformation6: + refs: Optional[TransactionReferences4] = field( + default=None, + metadata={ + "name": "Refs", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "required": True, + }, + ) + pmt_tp_inf: Optional[PaymentTypeInformation19] = field( + default=None, + metadata={ + "name": "PmtTpInf", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + amt: Optional[AmountType3Choice] = field( + default=None, + metadata={ + "name": "Amt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + xchg_rate_inf: Optional[ExchangeRate1] = field( + default=None, + metadata={ + "name": "XchgRateInf", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + reqd_exctn_dt: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "ReqdExctnDt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + reqd_colltn_dt: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "ReqdColltnDt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + dbtr: Optional[PartyIdentification43] = field( + default=None, + metadata={ + "name": "Dbtr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + dbtr_acct: Optional[CashAccount24] = field( + default=None, + metadata={ + "name": "DbtrAcct", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + dbtr_agt: Optional[BranchAndFinancialInstitutionIdentification5] = field( + default=None, + metadata={ + "name": "DbtrAgt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + cdtr: Optional[PartyIdentification43] = field( + default=None, + metadata={ + "name": "Cdtr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + cdtr_acct: Optional[CashAccount24] = field( + default=None, + metadata={ + "name": "CdtrAcct", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + cdtr_agt: Optional[BranchAndFinancialInstitutionIdentification5] = field( + default=None, + metadata={ + "name": "CdtrAgt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + + +@dataclass +class StructuredRemittanceInformation10: + rfrd_doc_inf: List[ReferredDocumentInformation4] = field( + default_factory=list, + metadata={ + "name": "RfrdDocInf", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + rfrd_doc_amt: Optional[RemittanceAmount2] = field( + default=None, + metadata={ + "name": "RfrdDocAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + cdtr_ref_inf: Optional[CreditorReferenceInformation2] = field( + default=None, + metadata={ + "name": "CdtrRefInf", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + invcr: Optional[PartyIdentification43] = field( + default=None, + metadata={ + "name": "Invcr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + invcee: Optional[PartyIdentification43] = field( + default=None, + metadata={ + "name": "Invcee", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + tax_rmt: Optional[TaxInformation4] = field( + default=None, + metadata={ + "name": "TaxRmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + grnshmt_rmt: Optional[Garnishment1] = field( + default=None, + metadata={ + "name": "GrnshmtRmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + addtl_rmt_inf: List[str] = field( + default_factory=list, + metadata={ + "name": "AddtlRmtInf", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "max_occurs": 3, + "min_length": 1, + "max_length": 140, + }, + ) + + +@dataclass +class RemittanceInformation8: + rmt_id: Optional[str] = field( + default=None, + metadata={ + "name": "RmtId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + ustrd: List[str] = field( + default_factory=list, + metadata={ + "name": "Ustrd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_length": 1, + "max_length": 140, + }, + ) + strd: List[StructuredRemittanceInformation10] = field( + default_factory=list, + metadata={ + "name": "Strd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + orgnl_pmt_inf: Optional[OriginalPaymentInformation6] = field( + default=None, + metadata={ + "name": "OrgnlPmtInf", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "required": True, + }, + ) + + +@dataclass +class RemittanceAdviceV01: + grp_hdr: Optional[GroupHeader62] = field( + default=None, + metadata={ + "name": "GrpHdr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "required": True, + }, + ) + rmt_inf: List[RemittanceInformation8] = field( + default_factory=list, + metadata={ + "name": "RmtInf", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + "min_occurs": 1, + }, + ) + splmtry_data: List[SupplementaryData1] = field( + default_factory=list, + metadata={ + "name": "SplmtryData", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01", + }, + ) + + +@dataclass +class Document: + class Meta: + namespace = "urn:iso:std:iso:20022:tech:xsd:remt.001.001.01" + + rmt_advc: Optional[RemittanceAdviceV01] = field( + default=None, + metadata={ + "name": "RmtAdvc", + "type": "Element", + "required": True, + }, + ) diff --git a/pyiso20022/remt/remt_001_001_02/__init__.py b/pyiso20022/remt/remt_001_001_02/__init__.py new file mode 100644 index 0000000..47ccbbb --- /dev/null +++ b/pyiso20022/remt/remt_001_001_02/__init__.py @@ -0,0 +1,165 @@ +from pyiso20022.remt.remt_001_001_02.remt_001_001_02 import ( + AccountIdentification4Choice, + AccountSchemeName1Choice, + ActiveOrHistoricCurrencyAndAmount, + AddressType2Code, + AmountType3Choice, + Authorisation1Choice, + Authorisation1Code, + BranchAndFinancialInstitutionIdentification5, + BranchData2, + CashAccount24, + CashAccountType2Choice, + CategoryPurpose1Choice, + ClearingSystemIdentification2Choice, + ClearingSystemMemberIdentification2, + ContactDetails2, + CopyDuplicate1Code, + CreditDebitCode, + CreditorReferenceInformation2, + CreditorReferenceType1Choice, + CreditorReferenceType2, + DateAndPlaceOfBirth, + DatePeriodDetails, + DiscountAmountAndType1, + DiscountAmountType1Choice, + Document, + DocumentAdjustment1, + DocumentLineIdentification1, + DocumentLineInformation1, + DocumentLineType1, + DocumentLineType1Choice, + DocumentType3Code, + DocumentType6Code, + EquivalentAmount2, + ExchangeRate1, + ExchangeRateType1Code, + FinancialIdentificationSchemeName1Choice, + FinancialInstitutionIdentification8, + Garnishment1, + GarnishmentType1, + GarnishmentType1Choice, + GenericAccountIdentification1, + GenericFinancialIdentification1, + GenericOrganisationIdentification1, + GenericPersonIdentification1, + GroupHeader62, + LocalInstrument2Choice, + NamePrefix1Code, + OrganisationIdentification8, + OrganisationIdentificationSchemeName1Choice, + OriginalPaymentInformation6, + Party11Choice, + PartyIdentification43, + PaymentTypeInformation19, + PersonIdentification5, + PersonIdentificationSchemeName1Choice, + PostalAddress6, + Priority2Code, + ReferredDocumentInformation7, + ReferredDocumentType3Choice, + ReferredDocumentType4, + RemittanceAdviceV02, + RemittanceAmount2, + RemittanceAmount3, + RemittanceInformation12, + ServiceLevel8Choice, + StructuredRemittanceInformation13, + SupplementaryData1, + SupplementaryDataEnvelope1, + TaxAmount1, + TaxAmountAndType1, + TaxAmountType1Choice, + TaxAuthorisation1, + TaxInformation4, + TaxParty1, + TaxParty2, + TaxPeriod1, + TaxRecord1, + TaxRecordDetails1, + TaxRecordPeriod1Code, + TransactionReferences4, +) + +__all__ = [ + "AccountIdentification4Choice", + "AccountSchemeName1Choice", + "ActiveOrHistoricCurrencyAndAmount", + "AddressType2Code", + "AmountType3Choice", + "Authorisation1Choice", + "Authorisation1Code", + "BranchAndFinancialInstitutionIdentification5", + "BranchData2", + "CashAccount24", + "CashAccountType2Choice", + "CategoryPurpose1Choice", + "ClearingSystemIdentification2Choice", + "ClearingSystemMemberIdentification2", + "ContactDetails2", + "CopyDuplicate1Code", + "CreditDebitCode", + "CreditorReferenceInformation2", + "CreditorReferenceType1Choice", + "CreditorReferenceType2", + "DateAndPlaceOfBirth", + "DatePeriodDetails", + "DiscountAmountAndType1", + "DiscountAmountType1Choice", + "Document", + "DocumentAdjustment1", + "DocumentLineIdentification1", + "DocumentLineInformation1", + "DocumentLineType1", + "DocumentLineType1Choice", + "DocumentType3Code", + "DocumentType6Code", + "EquivalentAmount2", + "ExchangeRate1", + "ExchangeRateType1Code", + "FinancialIdentificationSchemeName1Choice", + "FinancialInstitutionIdentification8", + "Garnishment1", + "GarnishmentType1", + "GarnishmentType1Choice", + "GenericAccountIdentification1", + "GenericFinancialIdentification1", + "GenericOrganisationIdentification1", + "GenericPersonIdentification1", + "GroupHeader62", + "LocalInstrument2Choice", + "NamePrefix1Code", + "OrganisationIdentification8", + "OrganisationIdentificationSchemeName1Choice", + "OriginalPaymentInformation6", + "Party11Choice", + "PartyIdentification43", + "PaymentTypeInformation19", + "PersonIdentification5", + "PersonIdentificationSchemeName1Choice", + "PostalAddress6", + "Priority2Code", + "ReferredDocumentInformation7", + "ReferredDocumentType3Choice", + "ReferredDocumentType4", + "RemittanceAdviceV02", + "RemittanceAmount2", + "RemittanceAmount3", + "RemittanceInformation12", + "ServiceLevel8Choice", + "StructuredRemittanceInformation13", + "SupplementaryData1", + "SupplementaryDataEnvelope1", + "TaxAmount1", + "TaxAmountAndType1", + "TaxAmountType1Choice", + "TaxAuthorisation1", + "TaxInformation4", + "TaxParty1", + "TaxParty2", + "TaxPeriod1", + "TaxRecord1", + "TaxRecordDetails1", + "TaxRecordPeriod1Code", + "TransactionReferences4", +] diff --git a/pyiso20022/remt/remt_001_001_02/remt_001_001_02.py b/pyiso20022/remt/remt_001_001_02/remt_001_001_02.py new file mode 100644 index 0000000..dea8066 --- /dev/null +++ b/pyiso20022/remt/remt_001_001_02/remt_001_001_02.py @@ -0,0 +1,2552 @@ +from dataclasses import dataclass, field +from decimal import Decimal +from enum import Enum +from typing import List, Optional + +from xsdata.models.datatype import XmlDate, XmlDateTime + +__NAMESPACE__ = "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02" + + +@dataclass +class AccountSchemeName1Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class ActiveOrHistoricCurrencyAndAmount: + value: Optional[Decimal] = field( + default=None, + metadata={ + "required": True, + "min_inclusive": Decimal("0"), + "total_digits": 18, + "fraction_digits": 5, + }, + ) + ccy: Optional[str] = field( + default=None, + metadata={ + "name": "Ccy", + "type": "Attribute", + "required": True, + "pattern": r"[A-Z]{3,3}", + }, + ) + + +class AddressType2Code(Enum): + ADDR = "ADDR" + PBOX = "PBOX" + HOME = "HOME" + BIZZ = "BIZZ" + MLTO = "MLTO" + DLVY = "DLVY" + + +class Authorisation1Code(Enum): + AUTH = "AUTH" + FDET = "FDET" + FSUM = "FSUM" + ILEV = "ILEV" + + +@dataclass +class CashAccountType2Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class CategoryPurpose1Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class ClearingSystemIdentification2Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 5, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + + +class CopyDuplicate1Code(Enum): + CODU = "CODU" + COPY = "COPY" + DUPL = "DUPL" + + +class CreditDebitCode(Enum): + CRDT = "CRDT" + DBIT = "DBIT" + + +@dataclass +class DateAndPlaceOfBirth: + birth_dt: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "BirthDt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "required": True, + }, + ) + prvc_of_birth: Optional[str] = field( + default=None, + metadata={ + "name": "PrvcOfBirth", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + city_of_birth: Optional[str] = field( + default=None, + metadata={ + "name": "CityOfBirth", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "required": True, + "min_length": 1, + "max_length": 35, + }, + ) + ctry_of_birth: Optional[str] = field( + default=None, + metadata={ + "name": "CtryOfBirth", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "required": True, + "pattern": r"[A-Z]{2,2}", + }, + ) + + +@dataclass +class DatePeriodDetails: + fr_dt: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "FrDt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "required": True, + }, + ) + to_dt: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "ToDt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "required": True, + }, + ) + + +@dataclass +class DiscountAmountType1Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class DocumentLineType1Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + + +class DocumentType3Code(Enum): + RADM = "RADM" + RPIN = "RPIN" + FXDR = "FXDR" + DISP = "DISP" + PUOR = "PUOR" + SCOR = "SCOR" + + +class DocumentType6Code(Enum): + MSIN = "MSIN" + CNFA = "CNFA" + DNFA = "DNFA" + CINV = "CINV" + CREN = "CREN" + DEBN = "DEBN" + HIRI = "HIRI" + SBIN = "SBIN" + CMCN = "CMCN" + SOAC = "SOAC" + DISP = "DISP" + BOLD = "BOLD" + VCHR = "VCHR" + AROI = "AROI" + TSUT = "TSUT" + PUOR = "PUOR" + + +class ExchangeRateType1Code(Enum): + SPOT = "SPOT" + SALE = "SALE" + AGRD = "AGRD" + + +@dataclass +class FinancialIdentificationSchemeName1Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class GarnishmentType1Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class LocalInstrument2Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + + +class NamePrefix1Code(Enum): + DOCT = "DOCT" + MIST = "MIST" + MISS = "MISS" + MADM = "MADM" + + +@dataclass +class OrganisationIdentificationSchemeName1Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class PersonIdentificationSchemeName1Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + + +class Priority2Code(Enum): + HIGH = "HIGH" + NORM = "NORM" + + +@dataclass +class ServiceLevel8Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class SupplementaryDataEnvelope1: + any_element: Optional[object] = field( + default=None, + metadata={ + "type": "Wildcard", + "namespace": "##any", + }, + ) + + +@dataclass +class TaxAmountType1Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class TaxAuthorisation1: + titl: Optional[str] = field( + default=None, + metadata={ + "name": "Titl", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + nm: Optional[str] = field( + default=None, + metadata={ + "name": "Nm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 140, + }, + ) + + +@dataclass +class TaxParty1: + tax_id: Optional[str] = field( + default=None, + metadata={ + "name": "TaxId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + regn_id: Optional[str] = field( + default=None, + metadata={ + "name": "RegnId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + tax_tp: Optional[str] = field( + default=None, + metadata={ + "name": "TaxTp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + + +class TaxRecordPeriod1Code(Enum): + MM01 = "MM01" + MM02 = "MM02" + MM03 = "MM03" + MM04 = "MM04" + MM05 = "MM05" + MM06 = "MM06" + MM07 = "MM07" + MM08 = "MM08" + MM09 = "MM09" + MM10 = "MM10" + MM11 = "MM11" + MM12 = "MM12" + QTR1 = "QTR1" + QTR2 = "QTR2" + QTR3 = "QTR3" + QTR4 = "QTR4" + HLF1 = "HLF1" + HLF2 = "HLF2" + + +@dataclass +class Authorisation1Choice: + cd: Optional[Authorisation1Code] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 128, + }, + ) + + +@dataclass +class ClearingSystemMemberIdentification2: + clr_sys_id: Optional[ClearingSystemIdentification2Choice] = field( + default=None, + metadata={ + "name": "ClrSysId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + mmb_id: Optional[str] = field( + default=None, + metadata={ + "name": "MmbId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "required": True, + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class ContactDetails2: + nm_prfx: Optional[NamePrefix1Code] = field( + default=None, + metadata={ + "name": "NmPrfx", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + nm: Optional[str] = field( + default=None, + metadata={ + "name": "Nm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 140, + }, + ) + phne_nb: Optional[str] = field( + default=None, + metadata={ + "name": "PhneNb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "pattern": r"\+[0-9]{1,3}-[0-9()+\-]{1,30}", + }, + ) + mob_nb: Optional[str] = field( + default=None, + metadata={ + "name": "MobNb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "pattern": r"\+[0-9]{1,3}-[0-9()+\-]{1,30}", + }, + ) + fax_nb: Optional[str] = field( + default=None, + metadata={ + "name": "FaxNb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "pattern": r"\+[0-9]{1,3}-[0-9()+\-]{1,30}", + }, + ) + email_adr: Optional[str] = field( + default=None, + metadata={ + "name": "EmailAdr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 2048, + }, + ) + othr: Optional[str] = field( + default=None, + metadata={ + "name": "Othr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class CreditorReferenceType1Choice: + cd: Optional[DocumentType3Code] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class DiscountAmountAndType1: + tp: Optional[DiscountAmountType1Choice] = field( + default=None, + metadata={ + "name": "Tp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "Amt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "required": True, + }, + ) + + +@dataclass +class DocumentAdjustment1: + amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "Amt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "required": True, + }, + ) + cdt_dbt_ind: Optional[CreditDebitCode] = field( + default=None, + metadata={ + "name": "CdtDbtInd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + rsn: Optional[str] = field( + default=None, + metadata={ + "name": "Rsn", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 4, + }, + ) + addtl_inf: Optional[str] = field( + default=None, + metadata={ + "name": "AddtlInf", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 140, + }, + ) + + +@dataclass +class DocumentLineType1: + cd_or_prtry: Optional[DocumentLineType1Choice] = field( + default=None, + metadata={ + "name": "CdOrPrtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "required": True, + }, + ) + issr: Optional[str] = field( + default=None, + metadata={ + "name": "Issr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class EquivalentAmount2: + amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "Amt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "required": True, + }, + ) + ccy_of_trf: Optional[str] = field( + default=None, + metadata={ + "name": "CcyOfTrf", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "required": True, + "pattern": r"[A-Z]{3,3}", + }, + ) + + +@dataclass +class ExchangeRate1: + unit_ccy: Optional[str] = field( + default=None, + metadata={ + "name": "UnitCcy", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "pattern": r"[A-Z]{3,3}", + }, + ) + xchg_rate: Optional[Decimal] = field( + default=None, + metadata={ + "name": "XchgRate", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "total_digits": 11, + "fraction_digits": 10, + }, + ) + rate_tp: Optional[ExchangeRateType1Code] = field( + default=None, + metadata={ + "name": "RateTp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + ctrct_id: Optional[str] = field( + default=None, + metadata={ + "name": "CtrctId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class GarnishmentType1: + cd_or_prtry: Optional[GarnishmentType1Choice] = field( + default=None, + metadata={ + "name": "CdOrPrtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "required": True, + }, + ) + issr: Optional[str] = field( + default=None, + metadata={ + "name": "Issr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class GenericAccountIdentification1: + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "required": True, + "min_length": 1, + "max_length": 34, + }, + ) + schme_nm: Optional[AccountSchemeName1Choice] = field( + default=None, + metadata={ + "name": "SchmeNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + issr: Optional[str] = field( + default=None, + metadata={ + "name": "Issr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class GenericFinancialIdentification1: + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "required": True, + "min_length": 1, + "max_length": 35, + }, + ) + schme_nm: Optional[FinancialIdentificationSchemeName1Choice] = field( + default=None, + metadata={ + "name": "SchmeNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + issr: Optional[str] = field( + default=None, + metadata={ + "name": "Issr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class GenericOrganisationIdentification1: + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "required": True, + "min_length": 1, + "max_length": 35, + }, + ) + schme_nm: Optional[OrganisationIdentificationSchemeName1Choice] = field( + default=None, + metadata={ + "name": "SchmeNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + issr: Optional[str] = field( + default=None, + metadata={ + "name": "Issr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class GenericPersonIdentification1: + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "required": True, + "min_length": 1, + "max_length": 35, + }, + ) + schme_nm: Optional[PersonIdentificationSchemeName1Choice] = field( + default=None, + metadata={ + "name": "SchmeNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + issr: Optional[str] = field( + default=None, + metadata={ + "name": "Issr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class PaymentTypeInformation19: + instr_prty: Optional[Priority2Code] = field( + default=None, + metadata={ + "name": "InstrPrty", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + svc_lvl: Optional[ServiceLevel8Choice] = field( + default=None, + metadata={ + "name": "SvcLvl", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + lcl_instrm: Optional[LocalInstrument2Choice] = field( + default=None, + metadata={ + "name": "LclInstrm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + ctgy_purp: Optional[CategoryPurpose1Choice] = field( + default=None, + metadata={ + "name": "CtgyPurp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + + +@dataclass +class PostalAddress6: + adr_tp: Optional[AddressType2Code] = field( + default=None, + metadata={ + "name": "AdrTp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + dept: Optional[str] = field( + default=None, + metadata={ + "name": "Dept", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 70, + }, + ) + sub_dept: Optional[str] = field( + default=None, + metadata={ + "name": "SubDept", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 70, + }, + ) + strt_nm: Optional[str] = field( + default=None, + metadata={ + "name": "StrtNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 70, + }, + ) + bldg_nb: Optional[str] = field( + default=None, + metadata={ + "name": "BldgNb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 16, + }, + ) + pst_cd: Optional[str] = field( + default=None, + metadata={ + "name": "PstCd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 16, + }, + ) + twn_nm: Optional[str] = field( + default=None, + metadata={ + "name": "TwnNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + ctry_sub_dvsn: Optional[str] = field( + default=None, + metadata={ + "name": "CtrySubDvsn", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + ctry: Optional[str] = field( + default=None, + metadata={ + "name": "Ctry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "pattern": r"[A-Z]{2,2}", + }, + ) + adr_line: List[str] = field( + default_factory=list, + metadata={ + "name": "AdrLine", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "max_occurs": 7, + "min_length": 1, + "max_length": 70, + }, + ) + + +@dataclass +class ReferredDocumentType3Choice: + cd: Optional[DocumentType6Code] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class SupplementaryData1: + plc_and_nm: Optional[str] = field( + default=None, + metadata={ + "name": "PlcAndNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 350, + }, + ) + envlp: Optional[SupplementaryDataEnvelope1] = field( + default=None, + metadata={ + "name": "Envlp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "required": True, + }, + ) + + +@dataclass +class TaxAmountAndType1: + tp: Optional[TaxAmountType1Choice] = field( + default=None, + metadata={ + "name": "Tp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "Amt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "required": True, + }, + ) + + +@dataclass +class TaxParty2: + tax_id: Optional[str] = field( + default=None, + metadata={ + "name": "TaxId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + regn_id: Optional[str] = field( + default=None, + metadata={ + "name": "RegnId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + tax_tp: Optional[str] = field( + default=None, + metadata={ + "name": "TaxTp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + authstn: Optional[TaxAuthorisation1] = field( + default=None, + metadata={ + "name": "Authstn", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + + +@dataclass +class TaxPeriod1: + yr: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "Yr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + tp: Optional[TaxRecordPeriod1Code] = field( + default=None, + metadata={ + "name": "Tp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + fr_to_dt: Optional[DatePeriodDetails] = field( + default=None, + metadata={ + "name": "FrToDt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + + +@dataclass +class AccountIdentification4Choice: + iban: Optional[str] = field( + default=None, + metadata={ + "name": "IBAN", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "pattern": r"[A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}", + }, + ) + othr: Optional[GenericAccountIdentification1] = field( + default=None, + metadata={ + "name": "Othr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + + +@dataclass +class AmountType3Choice: + instd_amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "InstdAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + eqvt_amt: Optional[EquivalentAmount2] = field( + default=None, + metadata={ + "name": "EqvtAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + + +@dataclass +class BranchData2: + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + nm: Optional[str] = field( + default=None, + metadata={ + "name": "Nm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 140, + }, + ) + pstl_adr: Optional[PostalAddress6] = field( + default=None, + metadata={ + "name": "PstlAdr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + + +@dataclass +class CreditorReferenceType2: + cd_or_prtry: Optional[CreditorReferenceType1Choice] = field( + default=None, + metadata={ + "name": "CdOrPrtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "required": True, + }, + ) + issr: Optional[str] = field( + default=None, + metadata={ + "name": "Issr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class DocumentLineIdentification1: + tp: Optional[DocumentLineType1] = field( + default=None, + metadata={ + "name": "Tp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + nb: Optional[str] = field( + default=None, + metadata={ + "name": "Nb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + rltd_dt: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "RltdDt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + + +@dataclass +class FinancialInstitutionIdentification8: + bicfi: Optional[str] = field( + default=None, + metadata={ + "name": "BICFI", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "pattern": r"[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}", + }, + ) + clr_sys_mmb_id: Optional[ClearingSystemMemberIdentification2] = field( + default=None, + metadata={ + "name": "ClrSysMmbId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + nm: Optional[str] = field( + default=None, + metadata={ + "name": "Nm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 140, + }, + ) + pstl_adr: Optional[PostalAddress6] = field( + default=None, + metadata={ + "name": "PstlAdr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + othr: Optional[GenericFinancialIdentification1] = field( + default=None, + metadata={ + "name": "Othr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + + +@dataclass +class OrganisationIdentification8: + any_bic: Optional[str] = field( + default=None, + metadata={ + "name": "AnyBIC", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "pattern": r"[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}", + }, + ) + othr: List[GenericOrganisationIdentification1] = field( + default_factory=list, + metadata={ + "name": "Othr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + + +@dataclass +class PersonIdentification5: + dt_and_plc_of_birth: Optional[DateAndPlaceOfBirth] = field( + default=None, + metadata={ + "name": "DtAndPlcOfBirth", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + othr: List[GenericPersonIdentification1] = field( + default_factory=list, + metadata={ + "name": "Othr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + + +@dataclass +class ReferredDocumentType4: + cd_or_prtry: Optional[ReferredDocumentType3Choice] = field( + default=None, + metadata={ + "name": "CdOrPrtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "required": True, + }, + ) + issr: Optional[str] = field( + default=None, + metadata={ + "name": "Issr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class RemittanceAmount2: + due_pybl_amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "DuePyblAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + dscnt_apld_amt: List[DiscountAmountAndType1] = field( + default_factory=list, + metadata={ + "name": "DscntApldAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + cdt_note_amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "CdtNoteAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + tax_amt: List[TaxAmountAndType1] = field( + default_factory=list, + metadata={ + "name": "TaxAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + adjstmnt_amt_and_rsn: List[DocumentAdjustment1] = field( + default_factory=list, + metadata={ + "name": "AdjstmntAmtAndRsn", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + rmtd_amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "RmtdAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + + +@dataclass +class RemittanceAmount3: + due_pybl_amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "DuePyblAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + dscnt_apld_amt: List[DiscountAmountAndType1] = field( + default_factory=list, + metadata={ + "name": "DscntApldAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + cdt_note_amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "CdtNoteAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + tax_amt: List[TaxAmountAndType1] = field( + default_factory=list, + metadata={ + "name": "TaxAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + adjstmnt_amt_and_rsn: List[DocumentAdjustment1] = field( + default_factory=list, + metadata={ + "name": "AdjstmntAmtAndRsn", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + rmtd_amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "RmtdAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + + +@dataclass +class TaxRecordDetails1: + prd: Optional[TaxPeriod1] = field( + default=None, + metadata={ + "name": "Prd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "Amt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "required": True, + }, + ) + + +@dataclass +class BranchAndFinancialInstitutionIdentification5: + fin_instn_id: Optional[FinancialInstitutionIdentification8] = field( + default=None, + metadata={ + "name": "FinInstnId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "required": True, + }, + ) + brnch_id: Optional[BranchData2] = field( + default=None, + metadata={ + "name": "BrnchId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + + +@dataclass +class CashAccount24: + id: Optional[AccountIdentification4Choice] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "required": True, + }, + ) + tp: Optional[CashAccountType2Choice] = field( + default=None, + metadata={ + "name": "Tp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + ccy: Optional[str] = field( + default=None, + metadata={ + "name": "Ccy", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "pattern": r"[A-Z]{3,3}", + }, + ) + nm: Optional[str] = field( + default=None, + metadata={ + "name": "Nm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 70, + }, + ) + + +@dataclass +class CreditorReferenceInformation2: + tp: Optional[CreditorReferenceType2] = field( + default=None, + metadata={ + "name": "Tp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + ref: Optional[str] = field( + default=None, + metadata={ + "name": "Ref", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class DocumentLineInformation1: + id: List[DocumentLineIdentification1] = field( + default_factory=list, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_occurs": 1, + }, + ) + desc: Optional[str] = field( + default=None, + metadata={ + "name": "Desc", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 2048, + }, + ) + amt: Optional[RemittanceAmount3] = field( + default=None, + metadata={ + "name": "Amt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + + +@dataclass +class Party11Choice: + org_id: Optional[OrganisationIdentification8] = field( + default=None, + metadata={ + "name": "OrgId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + prvt_id: Optional[PersonIdentification5] = field( + default=None, + metadata={ + "name": "PrvtId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + + +@dataclass +class TaxAmount1: + rate: Optional[Decimal] = field( + default=None, + metadata={ + "name": "Rate", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "total_digits": 11, + "fraction_digits": 10, + }, + ) + taxbl_base_amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "TaxblBaseAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + ttl_amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "TtlAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + dtls: List[TaxRecordDetails1] = field( + default_factory=list, + metadata={ + "name": "Dtls", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + + +@dataclass +class PartyIdentification43: + nm: Optional[str] = field( + default=None, + metadata={ + "name": "Nm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 140, + }, + ) + pstl_adr: Optional[PostalAddress6] = field( + default=None, + metadata={ + "name": "PstlAdr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + id: Optional[Party11Choice] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + ctry_of_res: Optional[str] = field( + default=None, + metadata={ + "name": "CtryOfRes", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "pattern": r"[A-Z]{2,2}", + }, + ) + ctct_dtls: Optional[ContactDetails2] = field( + default=None, + metadata={ + "name": "CtctDtls", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + + +@dataclass +class ReferredDocumentInformation7: + tp: Optional[ReferredDocumentType4] = field( + default=None, + metadata={ + "name": "Tp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + nb: Optional[str] = field( + default=None, + metadata={ + "name": "Nb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + rltd_dt: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "RltdDt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + line_dtls: List[DocumentLineInformation1] = field( + default_factory=list, + metadata={ + "name": "LineDtls", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + + +@dataclass +class TaxRecord1: + tp: Optional[str] = field( + default=None, + metadata={ + "name": "Tp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + ctgy: Optional[str] = field( + default=None, + metadata={ + "name": "Ctgy", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + ctgy_dtls: Optional[str] = field( + default=None, + metadata={ + "name": "CtgyDtls", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + dbtr_sts: Optional[str] = field( + default=None, + metadata={ + "name": "DbtrSts", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + cert_id: Optional[str] = field( + default=None, + metadata={ + "name": "CertId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + frms_cd: Optional[str] = field( + default=None, + metadata={ + "name": "FrmsCd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + prd: Optional[TaxPeriod1] = field( + default=None, + metadata={ + "name": "Prd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + tax_amt: Optional[TaxAmount1] = field( + default=None, + metadata={ + "name": "TaxAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + addtl_inf: Optional[str] = field( + default=None, + metadata={ + "name": "AddtlInf", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 140, + }, + ) + + +@dataclass +class Garnishment1: + tp: Optional[GarnishmentType1] = field( + default=None, + metadata={ + "name": "Tp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "required": True, + }, + ) + grnshee: Optional[PartyIdentification43] = field( + default=None, + metadata={ + "name": "Grnshee", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + grnshmt_admstr: Optional[PartyIdentification43] = field( + default=None, + metadata={ + "name": "GrnshmtAdmstr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + ref_nb: Optional[str] = field( + default=None, + metadata={ + "name": "RefNb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 140, + }, + ) + dt: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "Dt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + rmtd_amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "RmtdAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + fmly_mdcl_insrnc_ind: Optional[bool] = field( + default=None, + metadata={ + "name": "FmlyMdclInsrncInd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + mplyee_termntn_ind: Optional[bool] = field( + default=None, + metadata={ + "name": "MplyeeTermntnInd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + + +@dataclass +class GroupHeader62: + msg_id: Optional[str] = field( + default=None, + metadata={ + "name": "MsgId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "required": True, + "min_length": 1, + "max_length": 35, + }, + ) + cre_dt_tm: Optional[XmlDateTime] = field( + default=None, + metadata={ + "name": "CreDtTm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "required": True, + }, + ) + authstn: List[Authorisation1Choice] = field( + default_factory=list, + metadata={ + "name": "Authstn", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "max_occurs": 2, + }, + ) + cpy_ind: Optional[CopyDuplicate1Code] = field( + default=None, + metadata={ + "name": "CpyInd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + initg_pty: Optional[PartyIdentification43] = field( + default=None, + metadata={ + "name": "InitgPty", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "required": True, + }, + ) + msg_rcpt: Optional[PartyIdentification43] = field( + default=None, + metadata={ + "name": "MsgRcpt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + fwdg_agt: Optional[BranchAndFinancialInstitutionIdentification5] = field( + default=None, + metadata={ + "name": "FwdgAgt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + + +@dataclass +class TaxInformation4: + cdtr: Optional[TaxParty1] = field( + default=None, + metadata={ + "name": "Cdtr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + dbtr: Optional[TaxParty2] = field( + default=None, + metadata={ + "name": "Dbtr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + ultmt_dbtr: Optional[TaxParty2] = field( + default=None, + metadata={ + "name": "UltmtDbtr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + admstn_zone: Optional[str] = field( + default=None, + metadata={ + "name": "AdmstnZone", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + ref_nb: Optional[str] = field( + default=None, + metadata={ + "name": "RefNb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 140, + }, + ) + mtd: Optional[str] = field( + default=None, + metadata={ + "name": "Mtd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + ttl_taxbl_base_amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "TtlTaxblBaseAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + ttl_tax_amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "TtlTaxAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + dt: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "Dt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + seq_nb: Optional[Decimal] = field( + default=None, + metadata={ + "name": "SeqNb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "total_digits": 18, + "fraction_digits": 0, + }, + ) + rcrd: List[TaxRecord1] = field( + default_factory=list, + metadata={ + "name": "Rcrd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + + +@dataclass +class TransactionReferences4: + pmt_inf_id: Optional[str] = field( + default=None, + metadata={ + "name": "PmtInfId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + instr_id: Optional[str] = field( + default=None, + metadata={ + "name": "InstrId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + end_to_end_id: Optional[str] = field( + default=None, + metadata={ + "name": "EndToEndId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "required": True, + "min_length": 1, + "max_length": 35, + }, + ) + tx_id: Optional[str] = field( + default=None, + metadata={ + "name": "TxId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + mndt_id: Optional[str] = field( + default=None, + metadata={ + "name": "MndtId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + cdtr_schme_id: Optional[PartyIdentification43] = field( + default=None, + metadata={ + "name": "CdtrSchmeId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + + +@dataclass +class OriginalPaymentInformation6: + refs: Optional[TransactionReferences4] = field( + default=None, + metadata={ + "name": "Refs", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "required": True, + }, + ) + pmt_tp_inf: Optional[PaymentTypeInformation19] = field( + default=None, + metadata={ + "name": "PmtTpInf", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + amt: Optional[AmountType3Choice] = field( + default=None, + metadata={ + "name": "Amt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + xchg_rate_inf: Optional[ExchangeRate1] = field( + default=None, + metadata={ + "name": "XchgRateInf", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + reqd_exctn_dt: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "ReqdExctnDt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + reqd_colltn_dt: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "ReqdColltnDt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + dbtr: Optional[PartyIdentification43] = field( + default=None, + metadata={ + "name": "Dbtr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + dbtr_acct: Optional[CashAccount24] = field( + default=None, + metadata={ + "name": "DbtrAcct", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + dbtr_agt: Optional[BranchAndFinancialInstitutionIdentification5] = field( + default=None, + metadata={ + "name": "DbtrAgt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + cdtr: Optional[PartyIdentification43] = field( + default=None, + metadata={ + "name": "Cdtr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + cdtr_acct: Optional[CashAccount24] = field( + default=None, + metadata={ + "name": "CdtrAcct", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + cdtr_agt: Optional[BranchAndFinancialInstitutionIdentification5] = field( + default=None, + metadata={ + "name": "CdtrAgt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + + +@dataclass +class StructuredRemittanceInformation13: + rfrd_doc_inf: List[ReferredDocumentInformation7] = field( + default_factory=list, + metadata={ + "name": "RfrdDocInf", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + rfrd_doc_amt: Optional[RemittanceAmount2] = field( + default=None, + metadata={ + "name": "RfrdDocAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + cdtr_ref_inf: Optional[CreditorReferenceInformation2] = field( + default=None, + metadata={ + "name": "CdtrRefInf", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + invcr: Optional[PartyIdentification43] = field( + default=None, + metadata={ + "name": "Invcr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + invcee: Optional[PartyIdentification43] = field( + default=None, + metadata={ + "name": "Invcee", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + tax_rmt: Optional[TaxInformation4] = field( + default=None, + metadata={ + "name": "TaxRmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + grnshmt_rmt: Optional[Garnishment1] = field( + default=None, + metadata={ + "name": "GrnshmtRmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + addtl_rmt_inf: List[str] = field( + default_factory=list, + metadata={ + "name": "AddtlRmtInf", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "max_occurs": 3, + "min_length": 1, + "max_length": 140, + }, + ) + + +@dataclass +class RemittanceInformation12: + rmt_id: Optional[str] = field( + default=None, + metadata={ + "name": "RmtId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + ustrd: List[str] = field( + default_factory=list, + metadata={ + "name": "Ustrd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_length": 1, + "max_length": 140, + }, + ) + strd: List[StructuredRemittanceInformation13] = field( + default_factory=list, + metadata={ + "name": "Strd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + orgnl_pmt_inf: Optional[OriginalPaymentInformation6] = field( + default=None, + metadata={ + "name": "OrgnlPmtInf", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "required": True, + }, + ) + + +@dataclass +class RemittanceAdviceV02: + grp_hdr: Optional[GroupHeader62] = field( + default=None, + metadata={ + "name": "GrpHdr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "required": True, + }, + ) + rmt_inf: List[RemittanceInformation12] = field( + default_factory=list, + metadata={ + "name": "RmtInf", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + "min_occurs": 1, + }, + ) + splmtry_data: List[SupplementaryData1] = field( + default_factory=list, + metadata={ + "name": "SplmtryData", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02", + }, + ) + + +@dataclass +class Document: + class Meta: + namespace = "urn:iso:std:iso:20022:tech:xsd:remt.001.001.02" + + rmt_advc: Optional[RemittanceAdviceV02] = field( + default=None, + metadata={ + "name": "RmtAdvc", + "type": "Element", + "required": True, + }, + ) diff --git a/pyiso20022/remt/remt_001_001_03/__init__.py b/pyiso20022/remt/remt_001_001_03/__init__.py new file mode 100644 index 0000000..ad0575d --- /dev/null +++ b/pyiso20022/remt/remt_001_001_03/__init__.py @@ -0,0 +1,167 @@ +from pyiso20022.remt.remt_001_001_03.remt_001_001_03 import ( + AccountIdentification4Choice, + AccountSchemeName1Choice, + ActiveOrHistoricCurrencyAndAmount, + AddressType2Code, + AmountType3Choice, + Authorisation1Choice, + Authorisation1Code, + BranchAndFinancialInstitutionIdentification5, + BranchData2, + CashAccount24, + CashAccountType2Choice, + CategoryPurpose1Choice, + ClearingSystemIdentification2Choice, + ClearingSystemMemberIdentification2, + ContactDetails2, + CopyDuplicate1Code, + CreditDebitCode, + CreditorReferenceInformation2, + CreditorReferenceType1Choice, + CreditorReferenceType2, + DateAndDateTimeChoice, + DateAndPlaceOfBirth, + DatePeriodDetails, + DiscountAmountAndType1, + DiscountAmountType1Choice, + Document, + DocumentAdjustment1, + DocumentLineIdentification1, + DocumentLineInformation1, + DocumentLineType1, + DocumentLineType1Choice, + DocumentType3Code, + DocumentType6Code, + EquivalentAmount2, + ExchangeRate1, + ExchangeRateType1Code, + FinancialIdentificationSchemeName1Choice, + FinancialInstitutionIdentification8, + Garnishment1, + GarnishmentType1, + GarnishmentType1Choice, + GenericAccountIdentification1, + GenericFinancialIdentification1, + GenericOrganisationIdentification1, + GenericPersonIdentification1, + GroupHeader62, + LocalInstrument2Choice, + NamePrefix1Code, + OrganisationIdentification8, + OrganisationIdentificationSchemeName1Choice, + OriginalPaymentInformation7, + Party11Choice, + PartyIdentification43, + PaymentTypeInformation19, + PersonIdentification5, + PersonIdentificationSchemeName1Choice, + PostalAddress6, + Priority2Code, + ReferredDocumentInformation7, + ReferredDocumentType3Choice, + ReferredDocumentType4, + RemittanceAdviceV03, + RemittanceAmount2, + RemittanceAmount3, + RemittanceInformation13, + ServiceLevel8Choice, + StructuredRemittanceInformation13, + SupplementaryData1, + SupplementaryDataEnvelope1, + TaxAmount1, + TaxAmountAndType1, + TaxAmountType1Choice, + TaxAuthorisation1, + TaxInformation4, + TaxParty1, + TaxParty2, + TaxPeriod1, + TaxRecord1, + TaxRecordDetails1, + TaxRecordPeriod1Code, + TransactionReferences4, +) + +__all__ = [ + "AccountIdentification4Choice", + "AccountSchemeName1Choice", + "ActiveOrHistoricCurrencyAndAmount", + "AddressType2Code", + "AmountType3Choice", + "Authorisation1Choice", + "Authorisation1Code", + "BranchAndFinancialInstitutionIdentification5", + "BranchData2", + "CashAccount24", + "CashAccountType2Choice", + "CategoryPurpose1Choice", + "ClearingSystemIdentification2Choice", + "ClearingSystemMemberIdentification2", + "ContactDetails2", + "CopyDuplicate1Code", + "CreditDebitCode", + "CreditorReferenceInformation2", + "CreditorReferenceType1Choice", + "CreditorReferenceType2", + "DateAndDateTimeChoice", + "DateAndPlaceOfBirth", + "DatePeriodDetails", + "DiscountAmountAndType1", + "DiscountAmountType1Choice", + "Document", + "DocumentAdjustment1", + "DocumentLineIdentification1", + "DocumentLineInformation1", + "DocumentLineType1", + "DocumentLineType1Choice", + "DocumentType3Code", + "DocumentType6Code", + "EquivalentAmount2", + "ExchangeRate1", + "ExchangeRateType1Code", + "FinancialIdentificationSchemeName1Choice", + "FinancialInstitutionIdentification8", + "Garnishment1", + "GarnishmentType1", + "GarnishmentType1Choice", + "GenericAccountIdentification1", + "GenericFinancialIdentification1", + "GenericOrganisationIdentification1", + "GenericPersonIdentification1", + "GroupHeader62", + "LocalInstrument2Choice", + "NamePrefix1Code", + "OrganisationIdentification8", + "OrganisationIdentificationSchemeName1Choice", + "OriginalPaymentInformation7", + "Party11Choice", + "PartyIdentification43", + "PaymentTypeInformation19", + "PersonIdentification5", + "PersonIdentificationSchemeName1Choice", + "PostalAddress6", + "Priority2Code", + "ReferredDocumentInformation7", + "ReferredDocumentType3Choice", + "ReferredDocumentType4", + "RemittanceAdviceV03", + "RemittanceAmount2", + "RemittanceAmount3", + "RemittanceInformation13", + "ServiceLevel8Choice", + "StructuredRemittanceInformation13", + "SupplementaryData1", + "SupplementaryDataEnvelope1", + "TaxAmount1", + "TaxAmountAndType1", + "TaxAmountType1Choice", + "TaxAuthorisation1", + "TaxInformation4", + "TaxParty1", + "TaxParty2", + "TaxPeriod1", + "TaxRecord1", + "TaxRecordDetails1", + "TaxRecordPeriod1Code", + "TransactionReferences4", +] diff --git a/pyiso20022/remt/remt_001_001_03/remt_001_001_03.py b/pyiso20022/remt/remt_001_001_03/remt_001_001_03.py new file mode 100644 index 0000000..e7bd8d8 --- /dev/null +++ b/pyiso20022/remt/remt_001_001_03/remt_001_001_03.py @@ -0,0 +1,2572 @@ +from dataclasses import dataclass, field +from decimal import Decimal +from enum import Enum +from typing import List, Optional + +from xsdata.models.datatype import XmlDate, XmlDateTime + +__NAMESPACE__ = "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03" + + +@dataclass +class AccountSchemeName1Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class ActiveOrHistoricCurrencyAndAmount: + value: Optional[Decimal] = field( + default=None, + metadata={ + "required": True, + "min_inclusive": Decimal("0"), + "total_digits": 18, + "fraction_digits": 5, + }, + ) + ccy: Optional[str] = field( + default=None, + metadata={ + "name": "Ccy", + "type": "Attribute", + "required": True, + "pattern": r"[A-Z]{3,3}", + }, + ) + + +class AddressType2Code(Enum): + ADDR = "ADDR" + PBOX = "PBOX" + HOME = "HOME" + BIZZ = "BIZZ" + MLTO = "MLTO" + DLVY = "DLVY" + + +class Authorisation1Code(Enum): + AUTH = "AUTH" + FDET = "FDET" + FSUM = "FSUM" + ILEV = "ILEV" + + +@dataclass +class CashAccountType2Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class CategoryPurpose1Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class ClearingSystemIdentification2Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 5, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + + +class CopyDuplicate1Code(Enum): + CODU = "CODU" + COPY = "COPY" + DUPL = "DUPL" + + +class CreditDebitCode(Enum): + CRDT = "CRDT" + DBIT = "DBIT" + + +@dataclass +class DateAndDateTimeChoice: + dt: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "Dt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + dt_tm: Optional[XmlDateTime] = field( + default=None, + metadata={ + "name": "DtTm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + + +@dataclass +class DateAndPlaceOfBirth: + birth_dt: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "BirthDt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "required": True, + }, + ) + prvc_of_birth: Optional[str] = field( + default=None, + metadata={ + "name": "PrvcOfBirth", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + city_of_birth: Optional[str] = field( + default=None, + metadata={ + "name": "CityOfBirth", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "required": True, + "min_length": 1, + "max_length": 35, + }, + ) + ctry_of_birth: Optional[str] = field( + default=None, + metadata={ + "name": "CtryOfBirth", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "required": True, + "pattern": r"[A-Z]{2,2}", + }, + ) + + +@dataclass +class DatePeriodDetails: + fr_dt: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "FrDt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "required": True, + }, + ) + to_dt: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "ToDt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "required": True, + }, + ) + + +@dataclass +class DiscountAmountType1Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class DocumentLineType1Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + + +class DocumentType3Code(Enum): + RADM = "RADM" + RPIN = "RPIN" + FXDR = "FXDR" + DISP = "DISP" + PUOR = "PUOR" + SCOR = "SCOR" + + +class DocumentType6Code(Enum): + MSIN = "MSIN" + CNFA = "CNFA" + DNFA = "DNFA" + CINV = "CINV" + CREN = "CREN" + DEBN = "DEBN" + HIRI = "HIRI" + SBIN = "SBIN" + CMCN = "CMCN" + SOAC = "SOAC" + DISP = "DISP" + BOLD = "BOLD" + VCHR = "VCHR" + AROI = "AROI" + TSUT = "TSUT" + PUOR = "PUOR" + + +class ExchangeRateType1Code(Enum): + SPOT = "SPOT" + SALE = "SALE" + AGRD = "AGRD" + + +@dataclass +class FinancialIdentificationSchemeName1Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class GarnishmentType1Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class LocalInstrument2Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + + +class NamePrefix1Code(Enum): + DOCT = "DOCT" + MIST = "MIST" + MISS = "MISS" + MADM = "MADM" + + +@dataclass +class OrganisationIdentificationSchemeName1Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class PersonIdentificationSchemeName1Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + + +class Priority2Code(Enum): + HIGH = "HIGH" + NORM = "NORM" + + +@dataclass +class ServiceLevel8Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class SupplementaryDataEnvelope1: + any_element: Optional[object] = field( + default=None, + metadata={ + "type": "Wildcard", + "namespace": "##any", + }, + ) + + +@dataclass +class TaxAmountType1Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class TaxAuthorisation1: + titl: Optional[str] = field( + default=None, + metadata={ + "name": "Titl", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + nm: Optional[str] = field( + default=None, + metadata={ + "name": "Nm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 140, + }, + ) + + +@dataclass +class TaxParty1: + tax_id: Optional[str] = field( + default=None, + metadata={ + "name": "TaxId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + regn_id: Optional[str] = field( + default=None, + metadata={ + "name": "RegnId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + tax_tp: Optional[str] = field( + default=None, + metadata={ + "name": "TaxTp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + + +class TaxRecordPeriod1Code(Enum): + MM01 = "MM01" + MM02 = "MM02" + MM03 = "MM03" + MM04 = "MM04" + MM05 = "MM05" + MM06 = "MM06" + MM07 = "MM07" + MM08 = "MM08" + MM09 = "MM09" + MM10 = "MM10" + MM11 = "MM11" + MM12 = "MM12" + QTR1 = "QTR1" + QTR2 = "QTR2" + QTR3 = "QTR3" + QTR4 = "QTR4" + HLF1 = "HLF1" + HLF2 = "HLF2" + + +@dataclass +class Authorisation1Choice: + cd: Optional[Authorisation1Code] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 128, + }, + ) + + +@dataclass +class ClearingSystemMemberIdentification2: + clr_sys_id: Optional[ClearingSystemIdentification2Choice] = field( + default=None, + metadata={ + "name": "ClrSysId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + mmb_id: Optional[str] = field( + default=None, + metadata={ + "name": "MmbId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "required": True, + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class ContactDetails2: + nm_prfx: Optional[NamePrefix1Code] = field( + default=None, + metadata={ + "name": "NmPrfx", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + nm: Optional[str] = field( + default=None, + metadata={ + "name": "Nm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 140, + }, + ) + phne_nb: Optional[str] = field( + default=None, + metadata={ + "name": "PhneNb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "pattern": r"\+[0-9]{1,3}-[0-9()+\-]{1,30}", + }, + ) + mob_nb: Optional[str] = field( + default=None, + metadata={ + "name": "MobNb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "pattern": r"\+[0-9]{1,3}-[0-9()+\-]{1,30}", + }, + ) + fax_nb: Optional[str] = field( + default=None, + metadata={ + "name": "FaxNb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "pattern": r"\+[0-9]{1,3}-[0-9()+\-]{1,30}", + }, + ) + email_adr: Optional[str] = field( + default=None, + metadata={ + "name": "EmailAdr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 2048, + }, + ) + othr: Optional[str] = field( + default=None, + metadata={ + "name": "Othr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class CreditorReferenceType1Choice: + cd: Optional[DocumentType3Code] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class DiscountAmountAndType1: + tp: Optional[DiscountAmountType1Choice] = field( + default=None, + metadata={ + "name": "Tp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "Amt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "required": True, + }, + ) + + +@dataclass +class DocumentAdjustment1: + amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "Amt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "required": True, + }, + ) + cdt_dbt_ind: Optional[CreditDebitCode] = field( + default=None, + metadata={ + "name": "CdtDbtInd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + rsn: Optional[str] = field( + default=None, + metadata={ + "name": "Rsn", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 4, + }, + ) + addtl_inf: Optional[str] = field( + default=None, + metadata={ + "name": "AddtlInf", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 140, + }, + ) + + +@dataclass +class DocumentLineType1: + cd_or_prtry: Optional[DocumentLineType1Choice] = field( + default=None, + metadata={ + "name": "CdOrPrtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "required": True, + }, + ) + issr: Optional[str] = field( + default=None, + metadata={ + "name": "Issr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class EquivalentAmount2: + amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "Amt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "required": True, + }, + ) + ccy_of_trf: Optional[str] = field( + default=None, + metadata={ + "name": "CcyOfTrf", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "required": True, + "pattern": r"[A-Z]{3,3}", + }, + ) + + +@dataclass +class ExchangeRate1: + unit_ccy: Optional[str] = field( + default=None, + metadata={ + "name": "UnitCcy", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "pattern": r"[A-Z]{3,3}", + }, + ) + xchg_rate: Optional[Decimal] = field( + default=None, + metadata={ + "name": "XchgRate", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "total_digits": 11, + "fraction_digits": 10, + }, + ) + rate_tp: Optional[ExchangeRateType1Code] = field( + default=None, + metadata={ + "name": "RateTp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + ctrct_id: Optional[str] = field( + default=None, + metadata={ + "name": "CtrctId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class GarnishmentType1: + cd_or_prtry: Optional[GarnishmentType1Choice] = field( + default=None, + metadata={ + "name": "CdOrPrtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "required": True, + }, + ) + issr: Optional[str] = field( + default=None, + metadata={ + "name": "Issr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class GenericAccountIdentification1: + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "required": True, + "min_length": 1, + "max_length": 34, + }, + ) + schme_nm: Optional[AccountSchemeName1Choice] = field( + default=None, + metadata={ + "name": "SchmeNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + issr: Optional[str] = field( + default=None, + metadata={ + "name": "Issr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class GenericFinancialIdentification1: + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "required": True, + "min_length": 1, + "max_length": 35, + }, + ) + schme_nm: Optional[FinancialIdentificationSchemeName1Choice] = field( + default=None, + metadata={ + "name": "SchmeNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + issr: Optional[str] = field( + default=None, + metadata={ + "name": "Issr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class GenericOrganisationIdentification1: + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "required": True, + "min_length": 1, + "max_length": 35, + }, + ) + schme_nm: Optional[OrganisationIdentificationSchemeName1Choice] = field( + default=None, + metadata={ + "name": "SchmeNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + issr: Optional[str] = field( + default=None, + metadata={ + "name": "Issr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class GenericPersonIdentification1: + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "required": True, + "min_length": 1, + "max_length": 35, + }, + ) + schme_nm: Optional[PersonIdentificationSchemeName1Choice] = field( + default=None, + metadata={ + "name": "SchmeNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + issr: Optional[str] = field( + default=None, + metadata={ + "name": "Issr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class PaymentTypeInformation19: + instr_prty: Optional[Priority2Code] = field( + default=None, + metadata={ + "name": "InstrPrty", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + svc_lvl: Optional[ServiceLevel8Choice] = field( + default=None, + metadata={ + "name": "SvcLvl", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + lcl_instrm: Optional[LocalInstrument2Choice] = field( + default=None, + metadata={ + "name": "LclInstrm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + ctgy_purp: Optional[CategoryPurpose1Choice] = field( + default=None, + metadata={ + "name": "CtgyPurp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + + +@dataclass +class PostalAddress6: + adr_tp: Optional[AddressType2Code] = field( + default=None, + metadata={ + "name": "AdrTp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + dept: Optional[str] = field( + default=None, + metadata={ + "name": "Dept", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 70, + }, + ) + sub_dept: Optional[str] = field( + default=None, + metadata={ + "name": "SubDept", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 70, + }, + ) + strt_nm: Optional[str] = field( + default=None, + metadata={ + "name": "StrtNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 70, + }, + ) + bldg_nb: Optional[str] = field( + default=None, + metadata={ + "name": "BldgNb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 16, + }, + ) + pst_cd: Optional[str] = field( + default=None, + metadata={ + "name": "PstCd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 16, + }, + ) + twn_nm: Optional[str] = field( + default=None, + metadata={ + "name": "TwnNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + ctry_sub_dvsn: Optional[str] = field( + default=None, + metadata={ + "name": "CtrySubDvsn", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + ctry: Optional[str] = field( + default=None, + metadata={ + "name": "Ctry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "pattern": r"[A-Z]{2,2}", + }, + ) + adr_line: List[str] = field( + default_factory=list, + metadata={ + "name": "AdrLine", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "max_occurs": 7, + "min_length": 1, + "max_length": 70, + }, + ) + + +@dataclass +class ReferredDocumentType3Choice: + cd: Optional[DocumentType6Code] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class SupplementaryData1: + plc_and_nm: Optional[str] = field( + default=None, + metadata={ + "name": "PlcAndNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 350, + }, + ) + envlp: Optional[SupplementaryDataEnvelope1] = field( + default=None, + metadata={ + "name": "Envlp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "required": True, + }, + ) + + +@dataclass +class TaxAmountAndType1: + tp: Optional[TaxAmountType1Choice] = field( + default=None, + metadata={ + "name": "Tp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "Amt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "required": True, + }, + ) + + +@dataclass +class TaxParty2: + tax_id: Optional[str] = field( + default=None, + metadata={ + "name": "TaxId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + regn_id: Optional[str] = field( + default=None, + metadata={ + "name": "RegnId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + tax_tp: Optional[str] = field( + default=None, + metadata={ + "name": "TaxTp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + authstn: Optional[TaxAuthorisation1] = field( + default=None, + metadata={ + "name": "Authstn", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + + +@dataclass +class TaxPeriod1: + yr: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "Yr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + tp: Optional[TaxRecordPeriod1Code] = field( + default=None, + metadata={ + "name": "Tp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + fr_to_dt: Optional[DatePeriodDetails] = field( + default=None, + metadata={ + "name": "FrToDt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + + +@dataclass +class AccountIdentification4Choice: + iban: Optional[str] = field( + default=None, + metadata={ + "name": "IBAN", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "pattern": r"[A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}", + }, + ) + othr: Optional[GenericAccountIdentification1] = field( + default=None, + metadata={ + "name": "Othr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + + +@dataclass +class AmountType3Choice: + instd_amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "InstdAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + eqvt_amt: Optional[EquivalentAmount2] = field( + default=None, + metadata={ + "name": "EqvtAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + + +@dataclass +class BranchData2: + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + nm: Optional[str] = field( + default=None, + metadata={ + "name": "Nm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 140, + }, + ) + pstl_adr: Optional[PostalAddress6] = field( + default=None, + metadata={ + "name": "PstlAdr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + + +@dataclass +class CreditorReferenceType2: + cd_or_prtry: Optional[CreditorReferenceType1Choice] = field( + default=None, + metadata={ + "name": "CdOrPrtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "required": True, + }, + ) + issr: Optional[str] = field( + default=None, + metadata={ + "name": "Issr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class DocumentLineIdentification1: + tp: Optional[DocumentLineType1] = field( + default=None, + metadata={ + "name": "Tp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + nb: Optional[str] = field( + default=None, + metadata={ + "name": "Nb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + rltd_dt: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "RltdDt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + + +@dataclass +class FinancialInstitutionIdentification8: + bicfi: Optional[str] = field( + default=None, + metadata={ + "name": "BICFI", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "pattern": r"[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}", + }, + ) + clr_sys_mmb_id: Optional[ClearingSystemMemberIdentification2] = field( + default=None, + metadata={ + "name": "ClrSysMmbId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + nm: Optional[str] = field( + default=None, + metadata={ + "name": "Nm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 140, + }, + ) + pstl_adr: Optional[PostalAddress6] = field( + default=None, + metadata={ + "name": "PstlAdr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + othr: Optional[GenericFinancialIdentification1] = field( + default=None, + metadata={ + "name": "Othr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + + +@dataclass +class OrganisationIdentification8: + any_bic: Optional[str] = field( + default=None, + metadata={ + "name": "AnyBIC", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "pattern": r"[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}", + }, + ) + othr: List[GenericOrganisationIdentification1] = field( + default_factory=list, + metadata={ + "name": "Othr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + + +@dataclass +class PersonIdentification5: + dt_and_plc_of_birth: Optional[DateAndPlaceOfBirth] = field( + default=None, + metadata={ + "name": "DtAndPlcOfBirth", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + othr: List[GenericPersonIdentification1] = field( + default_factory=list, + metadata={ + "name": "Othr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + + +@dataclass +class ReferredDocumentType4: + cd_or_prtry: Optional[ReferredDocumentType3Choice] = field( + default=None, + metadata={ + "name": "CdOrPrtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "required": True, + }, + ) + issr: Optional[str] = field( + default=None, + metadata={ + "name": "Issr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class RemittanceAmount2: + due_pybl_amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "DuePyblAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + dscnt_apld_amt: List[DiscountAmountAndType1] = field( + default_factory=list, + metadata={ + "name": "DscntApldAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + cdt_note_amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "CdtNoteAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + tax_amt: List[TaxAmountAndType1] = field( + default_factory=list, + metadata={ + "name": "TaxAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + adjstmnt_amt_and_rsn: List[DocumentAdjustment1] = field( + default_factory=list, + metadata={ + "name": "AdjstmntAmtAndRsn", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + rmtd_amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "RmtdAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + + +@dataclass +class RemittanceAmount3: + due_pybl_amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "DuePyblAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + dscnt_apld_amt: List[DiscountAmountAndType1] = field( + default_factory=list, + metadata={ + "name": "DscntApldAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + cdt_note_amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "CdtNoteAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + tax_amt: List[TaxAmountAndType1] = field( + default_factory=list, + metadata={ + "name": "TaxAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + adjstmnt_amt_and_rsn: List[DocumentAdjustment1] = field( + default_factory=list, + metadata={ + "name": "AdjstmntAmtAndRsn", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + rmtd_amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "RmtdAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + + +@dataclass +class TaxRecordDetails1: + prd: Optional[TaxPeriod1] = field( + default=None, + metadata={ + "name": "Prd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "Amt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "required": True, + }, + ) + + +@dataclass +class BranchAndFinancialInstitutionIdentification5: + fin_instn_id: Optional[FinancialInstitutionIdentification8] = field( + default=None, + metadata={ + "name": "FinInstnId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "required": True, + }, + ) + brnch_id: Optional[BranchData2] = field( + default=None, + metadata={ + "name": "BrnchId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + + +@dataclass +class CashAccount24: + id: Optional[AccountIdentification4Choice] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "required": True, + }, + ) + tp: Optional[CashAccountType2Choice] = field( + default=None, + metadata={ + "name": "Tp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + ccy: Optional[str] = field( + default=None, + metadata={ + "name": "Ccy", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "pattern": r"[A-Z]{3,3}", + }, + ) + nm: Optional[str] = field( + default=None, + metadata={ + "name": "Nm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 70, + }, + ) + + +@dataclass +class CreditorReferenceInformation2: + tp: Optional[CreditorReferenceType2] = field( + default=None, + metadata={ + "name": "Tp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + ref: Optional[str] = field( + default=None, + metadata={ + "name": "Ref", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class DocumentLineInformation1: + id: List[DocumentLineIdentification1] = field( + default_factory=list, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_occurs": 1, + }, + ) + desc: Optional[str] = field( + default=None, + metadata={ + "name": "Desc", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 2048, + }, + ) + amt: Optional[RemittanceAmount3] = field( + default=None, + metadata={ + "name": "Amt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + + +@dataclass +class Party11Choice: + org_id: Optional[OrganisationIdentification8] = field( + default=None, + metadata={ + "name": "OrgId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + prvt_id: Optional[PersonIdentification5] = field( + default=None, + metadata={ + "name": "PrvtId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + + +@dataclass +class TaxAmount1: + rate: Optional[Decimal] = field( + default=None, + metadata={ + "name": "Rate", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "total_digits": 11, + "fraction_digits": 10, + }, + ) + taxbl_base_amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "TaxblBaseAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + ttl_amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "TtlAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + dtls: List[TaxRecordDetails1] = field( + default_factory=list, + metadata={ + "name": "Dtls", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + + +@dataclass +class PartyIdentification43: + nm: Optional[str] = field( + default=None, + metadata={ + "name": "Nm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 140, + }, + ) + pstl_adr: Optional[PostalAddress6] = field( + default=None, + metadata={ + "name": "PstlAdr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + id: Optional[Party11Choice] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + ctry_of_res: Optional[str] = field( + default=None, + metadata={ + "name": "CtryOfRes", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "pattern": r"[A-Z]{2,2}", + }, + ) + ctct_dtls: Optional[ContactDetails2] = field( + default=None, + metadata={ + "name": "CtctDtls", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + + +@dataclass +class ReferredDocumentInformation7: + tp: Optional[ReferredDocumentType4] = field( + default=None, + metadata={ + "name": "Tp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + nb: Optional[str] = field( + default=None, + metadata={ + "name": "Nb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + rltd_dt: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "RltdDt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + line_dtls: List[DocumentLineInformation1] = field( + default_factory=list, + metadata={ + "name": "LineDtls", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + + +@dataclass +class TaxRecord1: + tp: Optional[str] = field( + default=None, + metadata={ + "name": "Tp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + ctgy: Optional[str] = field( + default=None, + metadata={ + "name": "Ctgy", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + ctgy_dtls: Optional[str] = field( + default=None, + metadata={ + "name": "CtgyDtls", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + dbtr_sts: Optional[str] = field( + default=None, + metadata={ + "name": "DbtrSts", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + cert_id: Optional[str] = field( + default=None, + metadata={ + "name": "CertId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + frms_cd: Optional[str] = field( + default=None, + metadata={ + "name": "FrmsCd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + prd: Optional[TaxPeriod1] = field( + default=None, + metadata={ + "name": "Prd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + tax_amt: Optional[TaxAmount1] = field( + default=None, + metadata={ + "name": "TaxAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + addtl_inf: Optional[str] = field( + default=None, + metadata={ + "name": "AddtlInf", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 140, + }, + ) + + +@dataclass +class Garnishment1: + tp: Optional[GarnishmentType1] = field( + default=None, + metadata={ + "name": "Tp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "required": True, + }, + ) + grnshee: Optional[PartyIdentification43] = field( + default=None, + metadata={ + "name": "Grnshee", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + grnshmt_admstr: Optional[PartyIdentification43] = field( + default=None, + metadata={ + "name": "GrnshmtAdmstr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + ref_nb: Optional[str] = field( + default=None, + metadata={ + "name": "RefNb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 140, + }, + ) + dt: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "Dt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + rmtd_amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "RmtdAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + fmly_mdcl_insrnc_ind: Optional[bool] = field( + default=None, + metadata={ + "name": "FmlyMdclInsrncInd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + mplyee_termntn_ind: Optional[bool] = field( + default=None, + metadata={ + "name": "MplyeeTermntnInd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + + +@dataclass +class GroupHeader62: + msg_id: Optional[str] = field( + default=None, + metadata={ + "name": "MsgId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "required": True, + "min_length": 1, + "max_length": 35, + }, + ) + cre_dt_tm: Optional[XmlDateTime] = field( + default=None, + metadata={ + "name": "CreDtTm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "required": True, + }, + ) + authstn: List[Authorisation1Choice] = field( + default_factory=list, + metadata={ + "name": "Authstn", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "max_occurs": 2, + }, + ) + cpy_ind: Optional[CopyDuplicate1Code] = field( + default=None, + metadata={ + "name": "CpyInd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + initg_pty: Optional[PartyIdentification43] = field( + default=None, + metadata={ + "name": "InitgPty", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "required": True, + }, + ) + msg_rcpt: Optional[PartyIdentification43] = field( + default=None, + metadata={ + "name": "MsgRcpt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + fwdg_agt: Optional[BranchAndFinancialInstitutionIdentification5] = field( + default=None, + metadata={ + "name": "FwdgAgt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + + +@dataclass +class TaxInformation4: + cdtr: Optional[TaxParty1] = field( + default=None, + metadata={ + "name": "Cdtr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + dbtr: Optional[TaxParty2] = field( + default=None, + metadata={ + "name": "Dbtr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + ultmt_dbtr: Optional[TaxParty2] = field( + default=None, + metadata={ + "name": "UltmtDbtr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + admstn_zone: Optional[str] = field( + default=None, + metadata={ + "name": "AdmstnZone", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + ref_nb: Optional[str] = field( + default=None, + metadata={ + "name": "RefNb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 140, + }, + ) + mtd: Optional[str] = field( + default=None, + metadata={ + "name": "Mtd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + ttl_taxbl_base_amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "TtlTaxblBaseAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + ttl_tax_amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "TtlTaxAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + dt: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "Dt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + seq_nb: Optional[Decimal] = field( + default=None, + metadata={ + "name": "SeqNb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "total_digits": 18, + "fraction_digits": 0, + }, + ) + rcrd: List[TaxRecord1] = field( + default_factory=list, + metadata={ + "name": "Rcrd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + + +@dataclass +class TransactionReferences4: + pmt_inf_id: Optional[str] = field( + default=None, + metadata={ + "name": "PmtInfId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + instr_id: Optional[str] = field( + default=None, + metadata={ + "name": "InstrId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + end_to_end_id: Optional[str] = field( + default=None, + metadata={ + "name": "EndToEndId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "required": True, + "min_length": 1, + "max_length": 35, + }, + ) + tx_id: Optional[str] = field( + default=None, + metadata={ + "name": "TxId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + mndt_id: Optional[str] = field( + default=None, + metadata={ + "name": "MndtId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + cdtr_schme_id: Optional[PartyIdentification43] = field( + default=None, + metadata={ + "name": "CdtrSchmeId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + + +@dataclass +class OriginalPaymentInformation7: + refs: Optional[TransactionReferences4] = field( + default=None, + metadata={ + "name": "Refs", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "required": True, + }, + ) + pmt_tp_inf: Optional[PaymentTypeInformation19] = field( + default=None, + metadata={ + "name": "PmtTpInf", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + amt: Optional[AmountType3Choice] = field( + default=None, + metadata={ + "name": "Amt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + xchg_rate_inf: Optional[ExchangeRate1] = field( + default=None, + metadata={ + "name": "XchgRateInf", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + reqd_exctn_dt: Optional[DateAndDateTimeChoice] = field( + default=None, + metadata={ + "name": "ReqdExctnDt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + reqd_colltn_dt: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "ReqdColltnDt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + dbtr: Optional[PartyIdentification43] = field( + default=None, + metadata={ + "name": "Dbtr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + dbtr_acct: Optional[CashAccount24] = field( + default=None, + metadata={ + "name": "DbtrAcct", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + dbtr_agt: Optional[BranchAndFinancialInstitutionIdentification5] = field( + default=None, + metadata={ + "name": "DbtrAgt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + cdtr: Optional[PartyIdentification43] = field( + default=None, + metadata={ + "name": "Cdtr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + cdtr_acct: Optional[CashAccount24] = field( + default=None, + metadata={ + "name": "CdtrAcct", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + cdtr_agt: Optional[BranchAndFinancialInstitutionIdentification5] = field( + default=None, + metadata={ + "name": "CdtrAgt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + + +@dataclass +class StructuredRemittanceInformation13: + rfrd_doc_inf: List[ReferredDocumentInformation7] = field( + default_factory=list, + metadata={ + "name": "RfrdDocInf", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + rfrd_doc_amt: Optional[RemittanceAmount2] = field( + default=None, + metadata={ + "name": "RfrdDocAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + cdtr_ref_inf: Optional[CreditorReferenceInformation2] = field( + default=None, + metadata={ + "name": "CdtrRefInf", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + invcr: Optional[PartyIdentification43] = field( + default=None, + metadata={ + "name": "Invcr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + invcee: Optional[PartyIdentification43] = field( + default=None, + metadata={ + "name": "Invcee", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + tax_rmt: Optional[TaxInformation4] = field( + default=None, + metadata={ + "name": "TaxRmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + grnshmt_rmt: Optional[Garnishment1] = field( + default=None, + metadata={ + "name": "GrnshmtRmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + addtl_rmt_inf: List[str] = field( + default_factory=list, + metadata={ + "name": "AddtlRmtInf", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "max_occurs": 3, + "min_length": 1, + "max_length": 140, + }, + ) + + +@dataclass +class RemittanceInformation13: + rmt_id: Optional[str] = field( + default=None, + metadata={ + "name": "RmtId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + ustrd: List[str] = field( + default_factory=list, + metadata={ + "name": "Ustrd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_length": 1, + "max_length": 140, + }, + ) + strd: List[StructuredRemittanceInformation13] = field( + default_factory=list, + metadata={ + "name": "Strd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + orgnl_pmt_inf: Optional[OriginalPaymentInformation7] = field( + default=None, + metadata={ + "name": "OrgnlPmtInf", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "required": True, + }, + ) + + +@dataclass +class RemittanceAdviceV03: + grp_hdr: Optional[GroupHeader62] = field( + default=None, + metadata={ + "name": "GrpHdr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "required": True, + }, + ) + rmt_inf: List[RemittanceInformation13] = field( + default_factory=list, + metadata={ + "name": "RmtInf", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + "min_occurs": 1, + }, + ) + splmtry_data: List[SupplementaryData1] = field( + default_factory=list, + metadata={ + "name": "SplmtryData", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03", + }, + ) + + +@dataclass +class Document: + class Meta: + namespace = "urn:iso:std:iso:20022:tech:xsd:remt.001.001.03" + + rmt_advc: Optional[RemittanceAdviceV03] = field( + default=None, + metadata={ + "name": "RmtAdvc", + "type": "Element", + "required": True, + }, + ) diff --git a/pyiso20022/remt/remt_001_001_04/__init__.py b/pyiso20022/remt/remt_001_001_04/__init__.py new file mode 100644 index 0000000..b8f89c9 --- /dev/null +++ b/pyiso20022/remt/remt_001_001_04/__init__.py @@ -0,0 +1,179 @@ +from pyiso20022.remt.remt_001_001_04.remt_001_001_04 import ( + AccountIdentification4Choice, + AccountSchemeName1Choice, + ActiveOrHistoricCurrencyAndAmount, + AddressType2Code, + AddressType3Choice, + AmountType3Choice, + Authorisation1Choice, + Authorisation1Code, + BranchAndFinancialInstitutionIdentification6, + BranchData3, + CashAccount38, + CashAccountType2Choice, + CategoryPurpose1Choice, + ClearingSystemIdentification2Choice, + ClearingSystemMemberIdentification2, + Contact4, + CopyDuplicate1Code, + CreditDebitCode, + CreditorReferenceInformation2, + CreditorReferenceType1Choice, + CreditorReferenceType2, + DateAndDateTime2Choice, + DateAndPlaceOfBirth1, + DatePeriod2, + DiscountAmountAndType1, + DiscountAmountType1Choice, + Document, + DocumentAdjustment1, + DocumentLineIdentification1, + DocumentLineInformation1, + DocumentLineType1, + DocumentLineType1Choice, + DocumentType3Code, + DocumentType6Code, + EquivalentAmount2, + ExchangeRate1, + ExchangeRateType1Code, + FinancialIdentificationSchemeName1Choice, + FinancialInstitutionIdentification18, + Garnishment3, + GarnishmentType1, + GarnishmentType1Choice, + GenericAccountIdentification1, + GenericFinancialIdentification1, + GenericIdentification30, + GenericOrganisationIdentification1, + GenericPersonIdentification1, + GroupHeader79, + LocalInstrument2Choice, + NamePrefix2Code, + OrganisationIdentification29, + OrganisationIdentificationSchemeName1Choice, + OriginalPaymentInformation8, + OtherContact1, + Party38Choice, + PartyIdentification135, + PaymentTypeInformation26, + PersonIdentification13, + PersonIdentificationSchemeName1Choice, + PostalAddress24, + PreferredContactMethod1Code, + Priority2Code, + ProxyAccountIdentification1, + ProxyAccountType1Choice, + ReferredDocumentInformation7, + ReferredDocumentType3Choice, + ReferredDocumentType4, + RemittanceAdviceV04, + RemittanceAmount2, + RemittanceAmount3, + RemittanceInformation19, + ServiceLevel8Choice, + StructuredRemittanceInformation16, + SupplementaryData1, + SupplementaryDataEnvelope1, + TaxAmount2, + TaxAmountAndType1, + TaxAmountType1Choice, + TaxAuthorisation1, + TaxInformation7, + TaxParty1, + TaxParty2, + TaxPeriod2, + TaxRecord2, + TaxRecordDetails2, + TaxRecordPeriod1Code, + TransactionReferences5, +) + +__all__ = [ + "AccountIdentification4Choice", + "AccountSchemeName1Choice", + "ActiveOrHistoricCurrencyAndAmount", + "AddressType2Code", + "AddressType3Choice", + "AmountType3Choice", + "Authorisation1Choice", + "Authorisation1Code", + "BranchAndFinancialInstitutionIdentification6", + "BranchData3", + "CashAccount38", + "CashAccountType2Choice", + "CategoryPurpose1Choice", + "ClearingSystemIdentification2Choice", + "ClearingSystemMemberIdentification2", + "Contact4", + "CopyDuplicate1Code", + "CreditDebitCode", + "CreditorReferenceInformation2", + "CreditorReferenceType1Choice", + "CreditorReferenceType2", + "DateAndDateTime2Choice", + "DateAndPlaceOfBirth1", + "DatePeriod2", + "DiscountAmountAndType1", + "DiscountAmountType1Choice", + "Document", + "DocumentAdjustment1", + "DocumentLineIdentification1", + "DocumentLineInformation1", + "DocumentLineType1", + "DocumentLineType1Choice", + "DocumentType3Code", + "DocumentType6Code", + "EquivalentAmount2", + "ExchangeRate1", + "ExchangeRateType1Code", + "FinancialIdentificationSchemeName1Choice", + "FinancialInstitutionIdentification18", + "Garnishment3", + "GarnishmentType1", + "GarnishmentType1Choice", + "GenericAccountIdentification1", + "GenericFinancialIdentification1", + "GenericIdentification30", + "GenericOrganisationIdentification1", + "GenericPersonIdentification1", + "GroupHeader79", + "LocalInstrument2Choice", + "NamePrefix2Code", + "OrganisationIdentification29", + "OrganisationIdentificationSchemeName1Choice", + "OriginalPaymentInformation8", + "OtherContact1", + "Party38Choice", + "PartyIdentification135", + "PaymentTypeInformation26", + "PersonIdentification13", + "PersonIdentificationSchemeName1Choice", + "PostalAddress24", + "PreferredContactMethod1Code", + "Priority2Code", + "ProxyAccountIdentification1", + "ProxyAccountType1Choice", + "ReferredDocumentInformation7", + "ReferredDocumentType3Choice", + "ReferredDocumentType4", + "RemittanceAdviceV04", + "RemittanceAmount2", + "RemittanceAmount3", + "RemittanceInformation19", + "ServiceLevel8Choice", + "StructuredRemittanceInformation16", + "SupplementaryData1", + "SupplementaryDataEnvelope1", + "TaxAmount2", + "TaxAmountAndType1", + "TaxAmountType1Choice", + "TaxAuthorisation1", + "TaxInformation7", + "TaxParty1", + "TaxParty2", + "TaxPeriod2", + "TaxRecord2", + "TaxRecordDetails2", + "TaxRecordPeriod1Code", + "TransactionReferences5", +] diff --git a/pyiso20022/remt/remt_001_001_04/remt_001_001_04.py b/pyiso20022/remt/remt_001_001_04/remt_001_001_04.py new file mode 100644 index 0000000..0fa2b9a --- /dev/null +++ b/pyiso20022/remt/remt_001_001_04/remt_001_001_04.py @@ -0,0 +1,2858 @@ +from dataclasses import dataclass, field +from decimal import Decimal +from enum import Enum +from typing import List, Optional + +from xsdata.models.datatype import XmlDate, XmlDateTime + +__NAMESPACE__ = "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04" + + +@dataclass +class AccountSchemeName1Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class ActiveOrHistoricCurrencyAndAmount: + value: Optional[Decimal] = field( + default=None, + metadata={ + "required": True, + "min_inclusive": Decimal("0"), + "total_digits": 18, + "fraction_digits": 5, + }, + ) + ccy: Optional[str] = field( + default=None, + metadata={ + "name": "Ccy", + "type": "Attribute", + "required": True, + "pattern": r"[A-Z]{3,3}", + }, + ) + + +class AddressType2Code(Enum): + ADDR = "ADDR" + PBOX = "PBOX" + HOME = "HOME" + BIZZ = "BIZZ" + MLTO = "MLTO" + DLVY = "DLVY" + + +class Authorisation1Code(Enum): + AUTH = "AUTH" + FDET = "FDET" + FSUM = "FSUM" + ILEV = "ILEV" + + +@dataclass +class CashAccountType2Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class CategoryPurpose1Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class ClearingSystemIdentification2Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 5, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 35, + }, + ) + + +class CopyDuplicate1Code(Enum): + CODU = "CODU" + COPY = "COPY" + DUPL = "DUPL" + + +class CreditDebitCode(Enum): + CRDT = "CRDT" + DBIT = "DBIT" + + +@dataclass +class DateAndDateTime2Choice: + dt: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "Dt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + dt_tm: Optional[XmlDateTime] = field( + default=None, + metadata={ + "name": "DtTm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + + +@dataclass +class DateAndPlaceOfBirth1: + birth_dt: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "BirthDt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "required": True, + }, + ) + prvc_of_birth: Optional[str] = field( + default=None, + metadata={ + "name": "PrvcOfBirth", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 35, + }, + ) + city_of_birth: Optional[str] = field( + default=None, + metadata={ + "name": "CityOfBirth", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "required": True, + "min_length": 1, + "max_length": 35, + }, + ) + ctry_of_birth: Optional[str] = field( + default=None, + metadata={ + "name": "CtryOfBirth", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "required": True, + "pattern": r"[A-Z]{2,2}", + }, + ) + + +@dataclass +class DatePeriod2: + fr_dt: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "FrDt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "required": True, + }, + ) + to_dt: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "ToDt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "required": True, + }, + ) + + +@dataclass +class DiscountAmountType1Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class DocumentLineType1Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 35, + }, + ) + + +class DocumentType3Code(Enum): + RADM = "RADM" + RPIN = "RPIN" + FXDR = "FXDR" + DISP = "DISP" + PUOR = "PUOR" + SCOR = "SCOR" + + +class DocumentType6Code(Enum): + MSIN = "MSIN" + CNFA = "CNFA" + DNFA = "DNFA" + CINV = "CINV" + CREN = "CREN" + DEBN = "DEBN" + HIRI = "HIRI" + SBIN = "SBIN" + CMCN = "CMCN" + SOAC = "SOAC" + DISP = "DISP" + BOLD = "BOLD" + VCHR = "VCHR" + AROI = "AROI" + TSUT = "TSUT" + PUOR = "PUOR" + + +class ExchangeRateType1Code(Enum): + SPOT = "SPOT" + SALE = "SALE" + AGRD = "AGRD" + + +@dataclass +class FinancialIdentificationSchemeName1Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class GarnishmentType1Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class GenericIdentification30: + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "required": True, + "pattern": r"[a-zA-Z0-9]{4}", + }, + ) + issr: Optional[str] = field( + default=None, + metadata={ + "name": "Issr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "required": True, + "min_length": 1, + "max_length": 35, + }, + ) + schme_nm: Optional[str] = field( + default=None, + metadata={ + "name": "SchmeNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class LocalInstrument2Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 35, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 35, + }, + ) + + +class NamePrefix2Code(Enum): + DOCT = "DOCT" + MADM = "MADM" + MISS = "MISS" + MIST = "MIST" + MIKS = "MIKS" + + +@dataclass +class OrganisationIdentificationSchemeName1Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class OtherContact1: + chanl_tp: Optional[str] = field( + default=None, + metadata={ + "name": "ChanlTp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "required": True, + "min_length": 1, + "max_length": 4, + }, + ) + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 128, + }, + ) + + +@dataclass +class PersonIdentificationSchemeName1Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 35, + }, + ) + + +class PreferredContactMethod1Code(Enum): + LETT = "LETT" + MAIL = "MAIL" + PHON = "PHON" + FAXX = "FAXX" + CELL = "CELL" + + +class Priority2Code(Enum): + HIGH = "HIGH" + NORM = "NORM" + + +@dataclass +class ProxyAccountType1Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class ServiceLevel8Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class SupplementaryDataEnvelope1: + any_element: Optional[object] = field( + default=None, + metadata={ + "type": "Wildcard", + "namespace": "##any", + }, + ) + + +@dataclass +class TaxAmountType1Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class TaxAuthorisation1: + titl: Optional[str] = field( + default=None, + metadata={ + "name": "Titl", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 35, + }, + ) + nm: Optional[str] = field( + default=None, + metadata={ + "name": "Nm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 140, + }, + ) + + +@dataclass +class TaxParty1: + tax_id: Optional[str] = field( + default=None, + metadata={ + "name": "TaxId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 35, + }, + ) + regn_id: Optional[str] = field( + default=None, + metadata={ + "name": "RegnId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 35, + }, + ) + tax_tp: Optional[str] = field( + default=None, + metadata={ + "name": "TaxTp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 35, + }, + ) + + +class TaxRecordPeriod1Code(Enum): + MM01 = "MM01" + MM02 = "MM02" + MM03 = "MM03" + MM04 = "MM04" + MM05 = "MM05" + MM06 = "MM06" + MM07 = "MM07" + MM08 = "MM08" + MM09 = "MM09" + MM10 = "MM10" + MM11 = "MM11" + MM12 = "MM12" + QTR1 = "QTR1" + QTR2 = "QTR2" + QTR3 = "QTR3" + QTR4 = "QTR4" + HLF1 = "HLF1" + HLF2 = "HLF2" + + +@dataclass +class AddressType3Choice: + cd: Optional[AddressType2Code] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + prtry: Optional[GenericIdentification30] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + + +@dataclass +class Authorisation1Choice: + cd: Optional[Authorisation1Code] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 128, + }, + ) + + +@dataclass +class ClearingSystemMemberIdentification2: + clr_sys_id: Optional[ClearingSystemIdentification2Choice] = field( + default=None, + metadata={ + "name": "ClrSysId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + mmb_id: Optional[str] = field( + default=None, + metadata={ + "name": "MmbId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "required": True, + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class Contact4: + nm_prfx: Optional[NamePrefix2Code] = field( + default=None, + metadata={ + "name": "NmPrfx", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + nm: Optional[str] = field( + default=None, + metadata={ + "name": "Nm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 140, + }, + ) + phne_nb: Optional[str] = field( + default=None, + metadata={ + "name": "PhneNb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "pattern": r"\+[0-9]{1,3}-[0-9()+\-]{1,30}", + }, + ) + mob_nb: Optional[str] = field( + default=None, + metadata={ + "name": "MobNb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "pattern": r"\+[0-9]{1,3}-[0-9()+\-]{1,30}", + }, + ) + fax_nb: Optional[str] = field( + default=None, + metadata={ + "name": "FaxNb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "pattern": r"\+[0-9]{1,3}-[0-9()+\-]{1,30}", + }, + ) + email_adr: Optional[str] = field( + default=None, + metadata={ + "name": "EmailAdr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 2048, + }, + ) + email_purp: Optional[str] = field( + default=None, + metadata={ + "name": "EmailPurp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 35, + }, + ) + job_titl: Optional[str] = field( + default=None, + metadata={ + "name": "JobTitl", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 35, + }, + ) + rspnsblty: Optional[str] = field( + default=None, + metadata={ + "name": "Rspnsblty", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 35, + }, + ) + dept: Optional[str] = field( + default=None, + metadata={ + "name": "Dept", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 70, + }, + ) + othr: List[OtherContact1] = field( + default_factory=list, + metadata={ + "name": "Othr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + prefrd_mtd: Optional[PreferredContactMethod1Code] = field( + default=None, + metadata={ + "name": "PrefrdMtd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + + +@dataclass +class CreditorReferenceType1Choice: + cd: Optional[DocumentType3Code] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class DiscountAmountAndType1: + tp: Optional[DiscountAmountType1Choice] = field( + default=None, + metadata={ + "name": "Tp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "Amt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "required": True, + }, + ) + + +@dataclass +class DocumentAdjustment1: + amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "Amt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "required": True, + }, + ) + cdt_dbt_ind: Optional[CreditDebitCode] = field( + default=None, + metadata={ + "name": "CdtDbtInd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + rsn: Optional[str] = field( + default=None, + metadata={ + "name": "Rsn", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 4, + }, + ) + addtl_inf: Optional[str] = field( + default=None, + metadata={ + "name": "AddtlInf", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 140, + }, + ) + + +@dataclass +class DocumentLineType1: + cd_or_prtry: Optional[DocumentLineType1Choice] = field( + default=None, + metadata={ + "name": "CdOrPrtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "required": True, + }, + ) + issr: Optional[str] = field( + default=None, + metadata={ + "name": "Issr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class EquivalentAmount2: + amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "Amt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "required": True, + }, + ) + ccy_of_trf: Optional[str] = field( + default=None, + metadata={ + "name": "CcyOfTrf", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "required": True, + "pattern": r"[A-Z]{3,3}", + }, + ) + + +@dataclass +class ExchangeRate1: + unit_ccy: Optional[str] = field( + default=None, + metadata={ + "name": "UnitCcy", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "pattern": r"[A-Z]{3,3}", + }, + ) + xchg_rate: Optional[Decimal] = field( + default=None, + metadata={ + "name": "XchgRate", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "total_digits": 11, + "fraction_digits": 10, + }, + ) + rate_tp: Optional[ExchangeRateType1Code] = field( + default=None, + metadata={ + "name": "RateTp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + ctrct_id: Optional[str] = field( + default=None, + metadata={ + "name": "CtrctId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class GarnishmentType1: + cd_or_prtry: Optional[GarnishmentType1Choice] = field( + default=None, + metadata={ + "name": "CdOrPrtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "required": True, + }, + ) + issr: Optional[str] = field( + default=None, + metadata={ + "name": "Issr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class GenericAccountIdentification1: + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "required": True, + "min_length": 1, + "max_length": 34, + }, + ) + schme_nm: Optional[AccountSchemeName1Choice] = field( + default=None, + metadata={ + "name": "SchmeNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + issr: Optional[str] = field( + default=None, + metadata={ + "name": "Issr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class GenericFinancialIdentification1: + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "required": True, + "min_length": 1, + "max_length": 35, + }, + ) + schme_nm: Optional[FinancialIdentificationSchemeName1Choice] = field( + default=None, + metadata={ + "name": "SchmeNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + issr: Optional[str] = field( + default=None, + metadata={ + "name": "Issr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class GenericOrganisationIdentification1: + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "required": True, + "min_length": 1, + "max_length": 35, + }, + ) + schme_nm: Optional[OrganisationIdentificationSchemeName1Choice] = field( + default=None, + metadata={ + "name": "SchmeNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + issr: Optional[str] = field( + default=None, + metadata={ + "name": "Issr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class GenericPersonIdentification1: + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "required": True, + "min_length": 1, + "max_length": 35, + }, + ) + schme_nm: Optional[PersonIdentificationSchemeName1Choice] = field( + default=None, + metadata={ + "name": "SchmeNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + issr: Optional[str] = field( + default=None, + metadata={ + "name": "Issr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class PaymentTypeInformation26: + instr_prty: Optional[Priority2Code] = field( + default=None, + metadata={ + "name": "InstrPrty", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + svc_lvl: List[ServiceLevel8Choice] = field( + default_factory=list, + metadata={ + "name": "SvcLvl", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + lcl_instrm: Optional[LocalInstrument2Choice] = field( + default=None, + metadata={ + "name": "LclInstrm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + ctgy_purp: Optional[CategoryPurpose1Choice] = field( + default=None, + metadata={ + "name": "CtgyPurp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + + +@dataclass +class ProxyAccountIdentification1: + tp: Optional[ProxyAccountType1Choice] = field( + default=None, + metadata={ + "name": "Tp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "required": True, + "min_length": 1, + "max_length": 2048, + }, + ) + + +@dataclass +class ReferredDocumentType3Choice: + cd: Optional[DocumentType6Code] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class SupplementaryData1: + plc_and_nm: Optional[str] = field( + default=None, + metadata={ + "name": "PlcAndNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 350, + }, + ) + envlp: Optional[SupplementaryDataEnvelope1] = field( + default=None, + metadata={ + "name": "Envlp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "required": True, + }, + ) + + +@dataclass +class TaxAmountAndType1: + tp: Optional[TaxAmountType1Choice] = field( + default=None, + metadata={ + "name": "Tp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "Amt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "required": True, + }, + ) + + +@dataclass +class TaxParty2: + tax_id: Optional[str] = field( + default=None, + metadata={ + "name": "TaxId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 35, + }, + ) + regn_id: Optional[str] = field( + default=None, + metadata={ + "name": "RegnId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 35, + }, + ) + tax_tp: Optional[str] = field( + default=None, + metadata={ + "name": "TaxTp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 35, + }, + ) + authstn: Optional[TaxAuthorisation1] = field( + default=None, + metadata={ + "name": "Authstn", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + + +@dataclass +class TaxPeriod2: + yr: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "Yr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + tp: Optional[TaxRecordPeriod1Code] = field( + default=None, + metadata={ + "name": "Tp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + fr_to_dt: Optional[DatePeriod2] = field( + default=None, + metadata={ + "name": "FrToDt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + + +@dataclass +class AccountIdentification4Choice: + iban: Optional[str] = field( + default=None, + metadata={ + "name": "IBAN", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "pattern": r"[A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}", + }, + ) + othr: Optional[GenericAccountIdentification1] = field( + default=None, + metadata={ + "name": "Othr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + + +@dataclass +class AmountType3Choice: + instd_amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "InstdAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + eqvt_amt: Optional[EquivalentAmount2] = field( + default=None, + metadata={ + "name": "EqvtAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + + +@dataclass +class CreditorReferenceType2: + cd_or_prtry: Optional[CreditorReferenceType1Choice] = field( + default=None, + metadata={ + "name": "CdOrPrtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "required": True, + }, + ) + issr: Optional[str] = field( + default=None, + metadata={ + "name": "Issr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class DocumentLineIdentification1: + tp: Optional[DocumentLineType1] = field( + default=None, + metadata={ + "name": "Tp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + nb: Optional[str] = field( + default=None, + metadata={ + "name": "Nb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 35, + }, + ) + rltd_dt: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "RltdDt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + + +@dataclass +class OrganisationIdentification29: + any_bic: Optional[str] = field( + default=None, + metadata={ + "name": "AnyBIC", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "pattern": r"[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9]{3,3}){0,1}", + }, + ) + lei: Optional[str] = field( + default=None, + metadata={ + "name": "LEI", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "pattern": r"[A-Z0-9]{18,18}[0-9]{2,2}", + }, + ) + othr: List[GenericOrganisationIdentification1] = field( + default_factory=list, + metadata={ + "name": "Othr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + + +@dataclass +class PersonIdentification13: + dt_and_plc_of_birth: Optional[DateAndPlaceOfBirth1] = field( + default=None, + metadata={ + "name": "DtAndPlcOfBirth", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + othr: List[GenericPersonIdentification1] = field( + default_factory=list, + metadata={ + "name": "Othr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + + +@dataclass +class PostalAddress24: + adr_tp: Optional[AddressType3Choice] = field( + default=None, + metadata={ + "name": "AdrTp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + dept: Optional[str] = field( + default=None, + metadata={ + "name": "Dept", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 70, + }, + ) + sub_dept: Optional[str] = field( + default=None, + metadata={ + "name": "SubDept", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 70, + }, + ) + strt_nm: Optional[str] = field( + default=None, + metadata={ + "name": "StrtNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 70, + }, + ) + bldg_nb: Optional[str] = field( + default=None, + metadata={ + "name": "BldgNb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 16, + }, + ) + bldg_nm: Optional[str] = field( + default=None, + metadata={ + "name": "BldgNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 35, + }, + ) + flr: Optional[str] = field( + default=None, + metadata={ + "name": "Flr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 70, + }, + ) + pst_bx: Optional[str] = field( + default=None, + metadata={ + "name": "PstBx", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 16, + }, + ) + room: Optional[str] = field( + default=None, + metadata={ + "name": "Room", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 70, + }, + ) + pst_cd: Optional[str] = field( + default=None, + metadata={ + "name": "PstCd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 16, + }, + ) + twn_nm: Optional[str] = field( + default=None, + metadata={ + "name": "TwnNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 35, + }, + ) + twn_lctn_nm: Optional[str] = field( + default=None, + metadata={ + "name": "TwnLctnNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 35, + }, + ) + dstrct_nm: Optional[str] = field( + default=None, + metadata={ + "name": "DstrctNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 35, + }, + ) + ctry_sub_dvsn: Optional[str] = field( + default=None, + metadata={ + "name": "CtrySubDvsn", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 35, + }, + ) + ctry: Optional[str] = field( + default=None, + metadata={ + "name": "Ctry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "pattern": r"[A-Z]{2,2}", + }, + ) + adr_line: List[str] = field( + default_factory=list, + metadata={ + "name": "AdrLine", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "max_occurs": 7, + "min_length": 1, + "max_length": 70, + }, + ) + + +@dataclass +class ReferredDocumentType4: + cd_or_prtry: Optional[ReferredDocumentType3Choice] = field( + default=None, + metadata={ + "name": "CdOrPrtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "required": True, + }, + ) + issr: Optional[str] = field( + default=None, + metadata={ + "name": "Issr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class RemittanceAmount2: + due_pybl_amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "DuePyblAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + dscnt_apld_amt: List[DiscountAmountAndType1] = field( + default_factory=list, + metadata={ + "name": "DscntApldAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + cdt_note_amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "CdtNoteAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + tax_amt: List[TaxAmountAndType1] = field( + default_factory=list, + metadata={ + "name": "TaxAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + adjstmnt_amt_and_rsn: List[DocumentAdjustment1] = field( + default_factory=list, + metadata={ + "name": "AdjstmntAmtAndRsn", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + rmtd_amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "RmtdAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + + +@dataclass +class RemittanceAmount3: + due_pybl_amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "DuePyblAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + dscnt_apld_amt: List[DiscountAmountAndType1] = field( + default_factory=list, + metadata={ + "name": "DscntApldAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + cdt_note_amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "CdtNoteAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + tax_amt: List[TaxAmountAndType1] = field( + default_factory=list, + metadata={ + "name": "TaxAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + adjstmnt_amt_and_rsn: List[DocumentAdjustment1] = field( + default_factory=list, + metadata={ + "name": "AdjstmntAmtAndRsn", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + rmtd_amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "RmtdAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + + +@dataclass +class TaxRecordDetails2: + prd: Optional[TaxPeriod2] = field( + default=None, + metadata={ + "name": "Prd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "Amt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "required": True, + }, + ) + + +@dataclass +class BranchData3: + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 35, + }, + ) + lei: Optional[str] = field( + default=None, + metadata={ + "name": "LEI", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "pattern": r"[A-Z0-9]{18,18}[0-9]{2,2}", + }, + ) + nm: Optional[str] = field( + default=None, + metadata={ + "name": "Nm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 140, + }, + ) + pstl_adr: Optional[PostalAddress24] = field( + default=None, + metadata={ + "name": "PstlAdr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + + +@dataclass +class CashAccount38: + id: Optional[AccountIdentification4Choice] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "required": True, + }, + ) + tp: Optional[CashAccountType2Choice] = field( + default=None, + metadata={ + "name": "Tp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + ccy: Optional[str] = field( + default=None, + metadata={ + "name": "Ccy", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "pattern": r"[A-Z]{3,3}", + }, + ) + nm: Optional[str] = field( + default=None, + metadata={ + "name": "Nm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 70, + }, + ) + prxy: Optional[ProxyAccountIdentification1] = field( + default=None, + metadata={ + "name": "Prxy", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + + +@dataclass +class CreditorReferenceInformation2: + tp: Optional[CreditorReferenceType2] = field( + default=None, + metadata={ + "name": "Tp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + ref: Optional[str] = field( + default=None, + metadata={ + "name": "Ref", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class DocumentLineInformation1: + id: List[DocumentLineIdentification1] = field( + default_factory=list, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_occurs": 1, + }, + ) + desc: Optional[str] = field( + default=None, + metadata={ + "name": "Desc", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 2048, + }, + ) + amt: Optional[RemittanceAmount3] = field( + default=None, + metadata={ + "name": "Amt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + + +@dataclass +class FinancialInstitutionIdentification18: + bicfi: Optional[str] = field( + default=None, + metadata={ + "name": "BICFI", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "pattern": r"[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9]{3,3}){0,1}", + }, + ) + clr_sys_mmb_id: Optional[ClearingSystemMemberIdentification2] = field( + default=None, + metadata={ + "name": "ClrSysMmbId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + lei: Optional[str] = field( + default=None, + metadata={ + "name": "LEI", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "pattern": r"[A-Z0-9]{18,18}[0-9]{2,2}", + }, + ) + nm: Optional[str] = field( + default=None, + metadata={ + "name": "Nm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 140, + }, + ) + pstl_adr: Optional[PostalAddress24] = field( + default=None, + metadata={ + "name": "PstlAdr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + othr: Optional[GenericFinancialIdentification1] = field( + default=None, + metadata={ + "name": "Othr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + + +@dataclass +class Party38Choice: + org_id: Optional[OrganisationIdentification29] = field( + default=None, + metadata={ + "name": "OrgId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + prvt_id: Optional[PersonIdentification13] = field( + default=None, + metadata={ + "name": "PrvtId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + + +@dataclass +class TaxAmount2: + rate: Optional[Decimal] = field( + default=None, + metadata={ + "name": "Rate", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "total_digits": 11, + "fraction_digits": 10, + }, + ) + taxbl_base_amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "TaxblBaseAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + ttl_amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "TtlAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + dtls: List[TaxRecordDetails2] = field( + default_factory=list, + metadata={ + "name": "Dtls", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + + +@dataclass +class BranchAndFinancialInstitutionIdentification6: + fin_instn_id: Optional[FinancialInstitutionIdentification18] = field( + default=None, + metadata={ + "name": "FinInstnId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "required": True, + }, + ) + brnch_id: Optional[BranchData3] = field( + default=None, + metadata={ + "name": "BrnchId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + + +@dataclass +class PartyIdentification135: + nm: Optional[str] = field( + default=None, + metadata={ + "name": "Nm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 140, + }, + ) + pstl_adr: Optional[PostalAddress24] = field( + default=None, + metadata={ + "name": "PstlAdr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + id: Optional[Party38Choice] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + ctry_of_res: Optional[str] = field( + default=None, + metadata={ + "name": "CtryOfRes", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "pattern": r"[A-Z]{2,2}", + }, + ) + ctct_dtls: Optional[Contact4] = field( + default=None, + metadata={ + "name": "CtctDtls", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + + +@dataclass +class ReferredDocumentInformation7: + tp: Optional[ReferredDocumentType4] = field( + default=None, + metadata={ + "name": "Tp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + nb: Optional[str] = field( + default=None, + metadata={ + "name": "Nb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 35, + }, + ) + rltd_dt: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "RltdDt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + line_dtls: List[DocumentLineInformation1] = field( + default_factory=list, + metadata={ + "name": "LineDtls", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + + +@dataclass +class TaxRecord2: + tp: Optional[str] = field( + default=None, + metadata={ + "name": "Tp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 35, + }, + ) + ctgy: Optional[str] = field( + default=None, + metadata={ + "name": "Ctgy", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 35, + }, + ) + ctgy_dtls: Optional[str] = field( + default=None, + metadata={ + "name": "CtgyDtls", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 35, + }, + ) + dbtr_sts: Optional[str] = field( + default=None, + metadata={ + "name": "DbtrSts", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 35, + }, + ) + cert_id: Optional[str] = field( + default=None, + metadata={ + "name": "CertId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 35, + }, + ) + frms_cd: Optional[str] = field( + default=None, + metadata={ + "name": "FrmsCd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 35, + }, + ) + prd: Optional[TaxPeriod2] = field( + default=None, + metadata={ + "name": "Prd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + tax_amt: Optional[TaxAmount2] = field( + default=None, + metadata={ + "name": "TaxAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + addtl_inf: Optional[str] = field( + default=None, + metadata={ + "name": "AddtlInf", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 140, + }, + ) + + +@dataclass +class Garnishment3: + tp: Optional[GarnishmentType1] = field( + default=None, + metadata={ + "name": "Tp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "required": True, + }, + ) + grnshee: Optional[PartyIdentification135] = field( + default=None, + metadata={ + "name": "Grnshee", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + grnshmt_admstr: Optional[PartyIdentification135] = field( + default=None, + metadata={ + "name": "GrnshmtAdmstr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + ref_nb: Optional[str] = field( + default=None, + metadata={ + "name": "RefNb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 140, + }, + ) + dt: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "Dt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + rmtd_amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "RmtdAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + fmly_mdcl_insrnc_ind: Optional[bool] = field( + default=None, + metadata={ + "name": "FmlyMdclInsrncInd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + mplyee_termntn_ind: Optional[bool] = field( + default=None, + metadata={ + "name": "MplyeeTermntnInd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + + +@dataclass +class GroupHeader79: + msg_id: Optional[str] = field( + default=None, + metadata={ + "name": "MsgId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "required": True, + "min_length": 1, + "max_length": 35, + }, + ) + cre_dt_tm: Optional[XmlDateTime] = field( + default=None, + metadata={ + "name": "CreDtTm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "required": True, + }, + ) + authstn: List[Authorisation1Choice] = field( + default_factory=list, + metadata={ + "name": "Authstn", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "max_occurs": 2, + }, + ) + cpy_ind: Optional[CopyDuplicate1Code] = field( + default=None, + metadata={ + "name": "CpyInd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + initg_pty: Optional[PartyIdentification135] = field( + default=None, + metadata={ + "name": "InitgPty", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "required": True, + }, + ) + msg_rcpt: Optional[PartyIdentification135] = field( + default=None, + metadata={ + "name": "MsgRcpt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + fwdg_agt: Optional[BranchAndFinancialInstitutionIdentification6] = field( + default=None, + metadata={ + "name": "FwdgAgt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + + +@dataclass +class TaxInformation7: + cdtr: Optional[TaxParty1] = field( + default=None, + metadata={ + "name": "Cdtr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + dbtr: Optional[TaxParty2] = field( + default=None, + metadata={ + "name": "Dbtr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + ultmt_dbtr: Optional[TaxParty2] = field( + default=None, + metadata={ + "name": "UltmtDbtr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + admstn_zone: Optional[str] = field( + default=None, + metadata={ + "name": "AdmstnZone", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 35, + }, + ) + ref_nb: Optional[str] = field( + default=None, + metadata={ + "name": "RefNb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 140, + }, + ) + mtd: Optional[str] = field( + default=None, + metadata={ + "name": "Mtd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 35, + }, + ) + ttl_taxbl_base_amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "TtlTaxblBaseAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + ttl_tax_amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "TtlTaxAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + dt: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "Dt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + seq_nb: Optional[Decimal] = field( + default=None, + metadata={ + "name": "SeqNb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "total_digits": 18, + "fraction_digits": 0, + }, + ) + rcrd: List[TaxRecord2] = field( + default_factory=list, + metadata={ + "name": "Rcrd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + + +@dataclass +class TransactionReferences5: + pmt_inf_id: Optional[str] = field( + default=None, + metadata={ + "name": "PmtInfId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 35, + }, + ) + instr_id: Optional[str] = field( + default=None, + metadata={ + "name": "InstrId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 35, + }, + ) + end_to_end_id: Optional[str] = field( + default=None, + metadata={ + "name": "EndToEndId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "required": True, + "min_length": 1, + "max_length": 35, + }, + ) + tx_id: Optional[str] = field( + default=None, + metadata={ + "name": "TxId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 35, + }, + ) + uetr: Optional[str] = field( + default=None, + metadata={ + "name": "UETR", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "pattern": r"[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}", + }, + ) + mndt_id: Optional[str] = field( + default=None, + metadata={ + "name": "MndtId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 35, + }, + ) + cdtr_schme_id: Optional[PartyIdentification135] = field( + default=None, + metadata={ + "name": "CdtrSchmeId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + + +@dataclass +class OriginalPaymentInformation8: + refs: Optional[TransactionReferences5] = field( + default=None, + metadata={ + "name": "Refs", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "required": True, + }, + ) + pmt_tp_inf: Optional[PaymentTypeInformation26] = field( + default=None, + metadata={ + "name": "PmtTpInf", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + amt: Optional[AmountType3Choice] = field( + default=None, + metadata={ + "name": "Amt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + xchg_rate_inf: Optional[ExchangeRate1] = field( + default=None, + metadata={ + "name": "XchgRateInf", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + reqd_exctn_dt: Optional[DateAndDateTime2Choice] = field( + default=None, + metadata={ + "name": "ReqdExctnDt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + reqd_colltn_dt: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "ReqdColltnDt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + dbtr: Optional[PartyIdentification135] = field( + default=None, + metadata={ + "name": "Dbtr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + dbtr_acct: Optional[CashAccount38] = field( + default=None, + metadata={ + "name": "DbtrAcct", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + dbtr_agt: Optional[BranchAndFinancialInstitutionIdentification6] = field( + default=None, + metadata={ + "name": "DbtrAgt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + cdtr: Optional[PartyIdentification135] = field( + default=None, + metadata={ + "name": "Cdtr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + cdtr_acct: Optional[CashAccount38] = field( + default=None, + metadata={ + "name": "CdtrAcct", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + cdtr_agt: Optional[BranchAndFinancialInstitutionIdentification6] = field( + default=None, + metadata={ + "name": "CdtrAgt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + + +@dataclass +class StructuredRemittanceInformation16: + rfrd_doc_inf: List[ReferredDocumentInformation7] = field( + default_factory=list, + metadata={ + "name": "RfrdDocInf", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + rfrd_doc_amt: Optional[RemittanceAmount2] = field( + default=None, + metadata={ + "name": "RfrdDocAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + cdtr_ref_inf: Optional[CreditorReferenceInformation2] = field( + default=None, + metadata={ + "name": "CdtrRefInf", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + invcr: Optional[PartyIdentification135] = field( + default=None, + metadata={ + "name": "Invcr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + invcee: Optional[PartyIdentification135] = field( + default=None, + metadata={ + "name": "Invcee", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + tax_rmt: Optional[TaxInformation7] = field( + default=None, + metadata={ + "name": "TaxRmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + grnshmt_rmt: Optional[Garnishment3] = field( + default=None, + metadata={ + "name": "GrnshmtRmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + addtl_rmt_inf: List[str] = field( + default_factory=list, + metadata={ + "name": "AddtlRmtInf", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "max_occurs": 3, + "min_length": 1, + "max_length": 140, + }, + ) + + +@dataclass +class RemittanceInformation19: + rmt_id: Optional[str] = field( + default=None, + metadata={ + "name": "RmtId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 35, + }, + ) + ustrd: List[str] = field( + default_factory=list, + metadata={ + "name": "Ustrd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_length": 1, + "max_length": 140, + }, + ) + strd: List[StructuredRemittanceInformation16] = field( + default_factory=list, + metadata={ + "name": "Strd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + orgnl_pmt_inf: Optional[OriginalPaymentInformation8] = field( + default=None, + metadata={ + "name": "OrgnlPmtInf", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "required": True, + }, + ) + + +@dataclass +class RemittanceAdviceV04: + grp_hdr: Optional[GroupHeader79] = field( + default=None, + metadata={ + "name": "GrpHdr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "required": True, + }, + ) + rmt_inf: List[RemittanceInformation19] = field( + default_factory=list, + metadata={ + "name": "RmtInf", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + "min_occurs": 1, + }, + ) + splmtry_data: List[SupplementaryData1] = field( + default_factory=list, + metadata={ + "name": "SplmtryData", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04", + }, + ) + + +@dataclass +class Document: + class Meta: + namespace = "urn:iso:std:iso:20022:tech:xsd:remt.001.001.04" + + rmt_advc: Optional[RemittanceAdviceV04] = field( + default=None, + metadata={ + "name": "RmtAdvc", + "type": "Element", + "required": True, + }, + ) diff --git a/pyiso20022/remt/remt_001_001_05/__init__.py b/pyiso20022/remt/remt_001_001_05/__init__.py new file mode 100644 index 0000000..0279b08 --- /dev/null +++ b/pyiso20022/remt/remt_001_001_05/__init__.py @@ -0,0 +1,179 @@ +from pyiso20022.remt.remt_001_001_05.remt_001_001_05 import ( + AccountIdentification4Choice, + AccountSchemeName1Choice, + ActiveOrHistoricCurrencyAndAmount, + AddressType2Code, + AddressType3Choice, + AmountType3Choice, + Authorisation1Choice, + Authorisation1Code, + BranchAndFinancialInstitutionIdentification6, + BranchData3, + CashAccount40, + CashAccountType2Choice, + CategoryPurpose1Choice, + ClearingSystemIdentification2Choice, + ClearingSystemMemberIdentification2, + Contact4, + CopyDuplicate1Code, + CreditDebitCode, + CreditorReferenceInformation2, + CreditorReferenceType1Choice, + CreditorReferenceType2, + DateAndDateTime2Choice, + DateAndPlaceOfBirth1, + DatePeriod2, + DiscountAmountAndType1, + DiscountAmountType1Choice, + Document, + DocumentAdjustment1, + DocumentLineIdentification1, + DocumentLineInformation1, + DocumentLineType1, + DocumentLineType1Choice, + DocumentType3Code, + DocumentType6Code, + EquivalentAmount2, + ExchangeRate1, + ExchangeRateType1Code, + FinancialIdentificationSchemeName1Choice, + FinancialInstitutionIdentification18, + Garnishment3, + GarnishmentType1, + GarnishmentType1Choice, + GenericAccountIdentification1, + GenericFinancialIdentification1, + GenericIdentification30, + GenericOrganisationIdentification1, + GenericPersonIdentification1, + GroupHeader79, + LocalInstrument2Choice, + NamePrefix2Code, + OrganisationIdentification29, + OrganisationIdentificationSchemeName1Choice, + OriginalPaymentInformation9, + OtherContact1, + Party38Choice, + PartyIdentification135, + PaymentTypeInformation26, + PersonIdentification13, + PersonIdentificationSchemeName1Choice, + PostalAddress24, + PreferredContactMethod1Code, + Priority2Code, + ProxyAccountIdentification1, + ProxyAccountType1Choice, + ReferredDocumentInformation7, + ReferredDocumentType3Choice, + ReferredDocumentType4, + RemittanceAdviceV05, + RemittanceAmount2, + RemittanceAmount3, + RemittanceInformation20, + ServiceLevel8Choice, + StructuredRemittanceInformation17, + SupplementaryData1, + SupplementaryDataEnvelope1, + TaxAmount3, + TaxAmountAndType1, + TaxAmountType1Choice, + TaxAuthorisation1, + TaxData1, + TaxParty1, + TaxParty2, + TaxPeriod3, + TaxRecord3, + TaxRecordDetails3, + TaxRecordPeriod1Code, + TransactionReferences5, +) + +__all__ = [ + "AccountIdentification4Choice", + "AccountSchemeName1Choice", + "ActiveOrHistoricCurrencyAndAmount", + "AddressType2Code", + "AddressType3Choice", + "AmountType3Choice", + "Authorisation1Choice", + "Authorisation1Code", + "BranchAndFinancialInstitutionIdentification6", + "BranchData3", + "CashAccount40", + "CashAccountType2Choice", + "CategoryPurpose1Choice", + "ClearingSystemIdentification2Choice", + "ClearingSystemMemberIdentification2", + "Contact4", + "CopyDuplicate1Code", + "CreditDebitCode", + "CreditorReferenceInformation2", + "CreditorReferenceType1Choice", + "CreditorReferenceType2", + "DateAndDateTime2Choice", + "DateAndPlaceOfBirth1", + "DatePeriod2", + "DiscountAmountAndType1", + "DiscountAmountType1Choice", + "Document", + "DocumentAdjustment1", + "DocumentLineIdentification1", + "DocumentLineInformation1", + "DocumentLineType1", + "DocumentLineType1Choice", + "DocumentType3Code", + "DocumentType6Code", + "EquivalentAmount2", + "ExchangeRate1", + "ExchangeRateType1Code", + "FinancialIdentificationSchemeName1Choice", + "FinancialInstitutionIdentification18", + "Garnishment3", + "GarnishmentType1", + "GarnishmentType1Choice", + "GenericAccountIdentification1", + "GenericFinancialIdentification1", + "GenericIdentification30", + "GenericOrganisationIdentification1", + "GenericPersonIdentification1", + "GroupHeader79", + "LocalInstrument2Choice", + "NamePrefix2Code", + "OrganisationIdentification29", + "OrganisationIdentificationSchemeName1Choice", + "OriginalPaymentInformation9", + "OtherContact1", + "Party38Choice", + "PartyIdentification135", + "PaymentTypeInformation26", + "PersonIdentification13", + "PersonIdentificationSchemeName1Choice", + "PostalAddress24", + "PreferredContactMethod1Code", + "Priority2Code", + "ProxyAccountIdentification1", + "ProxyAccountType1Choice", + "ReferredDocumentInformation7", + "ReferredDocumentType3Choice", + "ReferredDocumentType4", + "RemittanceAdviceV05", + "RemittanceAmount2", + "RemittanceAmount3", + "RemittanceInformation20", + "ServiceLevel8Choice", + "StructuredRemittanceInformation17", + "SupplementaryData1", + "SupplementaryDataEnvelope1", + "TaxAmount3", + "TaxAmountAndType1", + "TaxAmountType1Choice", + "TaxAuthorisation1", + "TaxData1", + "TaxParty1", + "TaxParty2", + "TaxPeriod3", + "TaxRecord3", + "TaxRecordDetails3", + "TaxRecordPeriod1Code", + "TransactionReferences5", +] diff --git a/pyiso20022/remt/remt_001_001_05/remt_001_001_05.py b/pyiso20022/remt/remt_001_001_05/remt_001_001_05.py new file mode 100644 index 0000000..799f4b2 --- /dev/null +++ b/pyiso20022/remt/remt_001_001_05/remt_001_001_05.py @@ -0,0 +1,2857 @@ +from dataclasses import dataclass, field +from decimal import Decimal +from enum import Enum +from typing import List, Optional + +from xsdata.models.datatype import XmlDate, XmlDateTime, XmlPeriod + +__NAMESPACE__ = "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05" + + +@dataclass +class AccountSchemeName1Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class ActiveOrHistoricCurrencyAndAmount: + value: Optional[Decimal] = field( + default=None, + metadata={ + "required": True, + "min_inclusive": Decimal("0"), + "total_digits": 18, + "fraction_digits": 5, + }, + ) + ccy: Optional[str] = field( + default=None, + metadata={ + "name": "Ccy", + "type": "Attribute", + "required": True, + "pattern": r"[A-Z]{3,3}", + }, + ) + + +class AddressType2Code(Enum): + ADDR = "ADDR" + PBOX = "PBOX" + HOME = "HOME" + BIZZ = "BIZZ" + MLTO = "MLTO" + DLVY = "DLVY" + + +class Authorisation1Code(Enum): + AUTH = "AUTH" + FDET = "FDET" + FSUM = "FSUM" + ILEV = "ILEV" + + +@dataclass +class CashAccountType2Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class CategoryPurpose1Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class ClearingSystemIdentification2Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 5, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 35, + }, + ) + + +class CopyDuplicate1Code(Enum): + CODU = "CODU" + COPY = "COPY" + DUPL = "DUPL" + + +class CreditDebitCode(Enum): + CRDT = "CRDT" + DBIT = "DBIT" + + +@dataclass +class DateAndDateTime2Choice: + dt: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "Dt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + dt_tm: Optional[XmlDateTime] = field( + default=None, + metadata={ + "name": "DtTm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + + +@dataclass +class DateAndPlaceOfBirth1: + birth_dt: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "BirthDt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "required": True, + }, + ) + prvc_of_birth: Optional[str] = field( + default=None, + metadata={ + "name": "PrvcOfBirth", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 35, + }, + ) + city_of_birth: Optional[str] = field( + default=None, + metadata={ + "name": "CityOfBirth", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "required": True, + "min_length": 1, + "max_length": 35, + }, + ) + ctry_of_birth: Optional[str] = field( + default=None, + metadata={ + "name": "CtryOfBirth", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "required": True, + "pattern": r"[A-Z]{2,2}", + }, + ) + + +@dataclass +class DatePeriod2: + fr_dt: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "FrDt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "required": True, + }, + ) + to_dt: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "ToDt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "required": True, + }, + ) + + +@dataclass +class DiscountAmountType1Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class DocumentLineType1Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 35, + }, + ) + + +class DocumentType3Code(Enum): + RADM = "RADM" + RPIN = "RPIN" + FXDR = "FXDR" + DISP = "DISP" + PUOR = "PUOR" + SCOR = "SCOR" + + +class DocumentType6Code(Enum): + MSIN = "MSIN" + CNFA = "CNFA" + DNFA = "DNFA" + CINV = "CINV" + CREN = "CREN" + DEBN = "DEBN" + HIRI = "HIRI" + SBIN = "SBIN" + CMCN = "CMCN" + SOAC = "SOAC" + DISP = "DISP" + BOLD = "BOLD" + VCHR = "VCHR" + AROI = "AROI" + TSUT = "TSUT" + PUOR = "PUOR" + + +class ExchangeRateType1Code(Enum): + SPOT = "SPOT" + SALE = "SALE" + AGRD = "AGRD" + + +@dataclass +class FinancialIdentificationSchemeName1Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class GarnishmentType1Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class GenericIdentification30: + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "required": True, + "pattern": r"[a-zA-Z0-9]{4}", + }, + ) + issr: Optional[str] = field( + default=None, + metadata={ + "name": "Issr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "required": True, + "min_length": 1, + "max_length": 35, + }, + ) + schme_nm: Optional[str] = field( + default=None, + metadata={ + "name": "SchmeNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class LocalInstrument2Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 35, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 35, + }, + ) + + +class NamePrefix2Code(Enum): + DOCT = "DOCT" + MADM = "MADM" + MISS = "MISS" + MIST = "MIST" + MIKS = "MIKS" + + +@dataclass +class OrganisationIdentificationSchemeName1Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class OtherContact1: + chanl_tp: Optional[str] = field( + default=None, + metadata={ + "name": "ChanlTp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "required": True, + "min_length": 1, + "max_length": 4, + }, + ) + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 128, + }, + ) + + +@dataclass +class PersonIdentificationSchemeName1Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 35, + }, + ) + + +class PreferredContactMethod1Code(Enum): + LETT = "LETT" + MAIL = "MAIL" + PHON = "PHON" + FAXX = "FAXX" + CELL = "CELL" + + +class Priority2Code(Enum): + HIGH = "HIGH" + NORM = "NORM" + + +@dataclass +class ProxyAccountType1Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class ServiceLevel8Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class SupplementaryDataEnvelope1: + any_element: Optional[object] = field( + default=None, + metadata={ + "type": "Wildcard", + "namespace": "##any", + }, + ) + + +@dataclass +class TaxAmountType1Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class TaxAuthorisation1: + titl: Optional[str] = field( + default=None, + metadata={ + "name": "Titl", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 35, + }, + ) + nm: Optional[str] = field( + default=None, + metadata={ + "name": "Nm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 140, + }, + ) + + +@dataclass +class TaxParty1: + tax_id: Optional[str] = field( + default=None, + metadata={ + "name": "TaxId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 35, + }, + ) + regn_id: Optional[str] = field( + default=None, + metadata={ + "name": "RegnId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 35, + }, + ) + tax_tp: Optional[str] = field( + default=None, + metadata={ + "name": "TaxTp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 35, + }, + ) + + +class TaxRecordPeriod1Code(Enum): + MM01 = "MM01" + MM02 = "MM02" + MM03 = "MM03" + MM04 = "MM04" + MM05 = "MM05" + MM06 = "MM06" + MM07 = "MM07" + MM08 = "MM08" + MM09 = "MM09" + MM10 = "MM10" + MM11 = "MM11" + MM12 = "MM12" + QTR1 = "QTR1" + QTR2 = "QTR2" + QTR3 = "QTR3" + QTR4 = "QTR4" + HLF1 = "HLF1" + HLF2 = "HLF2" + + +@dataclass +class AddressType3Choice: + cd: Optional[AddressType2Code] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + prtry: Optional[GenericIdentification30] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + + +@dataclass +class Authorisation1Choice: + cd: Optional[Authorisation1Code] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 128, + }, + ) + + +@dataclass +class ClearingSystemMemberIdentification2: + clr_sys_id: Optional[ClearingSystemIdentification2Choice] = field( + default=None, + metadata={ + "name": "ClrSysId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + mmb_id: Optional[str] = field( + default=None, + metadata={ + "name": "MmbId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "required": True, + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class Contact4: + nm_prfx: Optional[NamePrefix2Code] = field( + default=None, + metadata={ + "name": "NmPrfx", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + nm: Optional[str] = field( + default=None, + metadata={ + "name": "Nm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 140, + }, + ) + phne_nb: Optional[str] = field( + default=None, + metadata={ + "name": "PhneNb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "pattern": r"\+[0-9]{1,3}-[0-9()+\-]{1,30}", + }, + ) + mob_nb: Optional[str] = field( + default=None, + metadata={ + "name": "MobNb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "pattern": r"\+[0-9]{1,3}-[0-9()+\-]{1,30}", + }, + ) + fax_nb: Optional[str] = field( + default=None, + metadata={ + "name": "FaxNb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "pattern": r"\+[0-9]{1,3}-[0-9()+\-]{1,30}", + }, + ) + email_adr: Optional[str] = field( + default=None, + metadata={ + "name": "EmailAdr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 2048, + }, + ) + email_purp: Optional[str] = field( + default=None, + metadata={ + "name": "EmailPurp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 35, + }, + ) + job_titl: Optional[str] = field( + default=None, + metadata={ + "name": "JobTitl", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 35, + }, + ) + rspnsblty: Optional[str] = field( + default=None, + metadata={ + "name": "Rspnsblty", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 35, + }, + ) + dept: Optional[str] = field( + default=None, + metadata={ + "name": "Dept", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 70, + }, + ) + othr: List[OtherContact1] = field( + default_factory=list, + metadata={ + "name": "Othr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + prefrd_mtd: Optional[PreferredContactMethod1Code] = field( + default=None, + metadata={ + "name": "PrefrdMtd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + + +@dataclass +class CreditorReferenceType1Choice: + cd: Optional[DocumentType3Code] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class DiscountAmountAndType1: + tp: Optional[DiscountAmountType1Choice] = field( + default=None, + metadata={ + "name": "Tp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "Amt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "required": True, + }, + ) + + +@dataclass +class DocumentAdjustment1: + amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "Amt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "required": True, + }, + ) + cdt_dbt_ind: Optional[CreditDebitCode] = field( + default=None, + metadata={ + "name": "CdtDbtInd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + rsn: Optional[str] = field( + default=None, + metadata={ + "name": "Rsn", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 4, + }, + ) + addtl_inf: Optional[str] = field( + default=None, + metadata={ + "name": "AddtlInf", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 140, + }, + ) + + +@dataclass +class DocumentLineType1: + cd_or_prtry: Optional[DocumentLineType1Choice] = field( + default=None, + metadata={ + "name": "CdOrPrtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "required": True, + }, + ) + issr: Optional[str] = field( + default=None, + metadata={ + "name": "Issr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class EquivalentAmount2: + amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "Amt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "required": True, + }, + ) + ccy_of_trf: Optional[str] = field( + default=None, + metadata={ + "name": "CcyOfTrf", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "required": True, + "pattern": r"[A-Z]{3,3}", + }, + ) + + +@dataclass +class ExchangeRate1: + unit_ccy: Optional[str] = field( + default=None, + metadata={ + "name": "UnitCcy", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "pattern": r"[A-Z]{3,3}", + }, + ) + xchg_rate: Optional[Decimal] = field( + default=None, + metadata={ + "name": "XchgRate", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "total_digits": 11, + "fraction_digits": 10, + }, + ) + rate_tp: Optional[ExchangeRateType1Code] = field( + default=None, + metadata={ + "name": "RateTp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + ctrct_id: Optional[str] = field( + default=None, + metadata={ + "name": "CtrctId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class GarnishmentType1: + cd_or_prtry: Optional[GarnishmentType1Choice] = field( + default=None, + metadata={ + "name": "CdOrPrtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "required": True, + }, + ) + issr: Optional[str] = field( + default=None, + metadata={ + "name": "Issr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class GenericAccountIdentification1: + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "required": True, + "min_length": 1, + "max_length": 34, + }, + ) + schme_nm: Optional[AccountSchemeName1Choice] = field( + default=None, + metadata={ + "name": "SchmeNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + issr: Optional[str] = field( + default=None, + metadata={ + "name": "Issr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class GenericFinancialIdentification1: + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "required": True, + "min_length": 1, + "max_length": 35, + }, + ) + schme_nm: Optional[FinancialIdentificationSchemeName1Choice] = field( + default=None, + metadata={ + "name": "SchmeNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + issr: Optional[str] = field( + default=None, + metadata={ + "name": "Issr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class GenericOrganisationIdentification1: + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "required": True, + "min_length": 1, + "max_length": 35, + }, + ) + schme_nm: Optional[OrganisationIdentificationSchemeName1Choice] = field( + default=None, + metadata={ + "name": "SchmeNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + issr: Optional[str] = field( + default=None, + metadata={ + "name": "Issr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class GenericPersonIdentification1: + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "required": True, + "min_length": 1, + "max_length": 35, + }, + ) + schme_nm: Optional[PersonIdentificationSchemeName1Choice] = field( + default=None, + metadata={ + "name": "SchmeNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + issr: Optional[str] = field( + default=None, + metadata={ + "name": "Issr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class PaymentTypeInformation26: + instr_prty: Optional[Priority2Code] = field( + default=None, + metadata={ + "name": "InstrPrty", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + svc_lvl: List[ServiceLevel8Choice] = field( + default_factory=list, + metadata={ + "name": "SvcLvl", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + lcl_instrm: Optional[LocalInstrument2Choice] = field( + default=None, + metadata={ + "name": "LclInstrm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + ctgy_purp: Optional[CategoryPurpose1Choice] = field( + default=None, + metadata={ + "name": "CtgyPurp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + + +@dataclass +class ProxyAccountIdentification1: + tp: Optional[ProxyAccountType1Choice] = field( + default=None, + metadata={ + "name": "Tp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "required": True, + "min_length": 1, + "max_length": 2048, + }, + ) + + +@dataclass +class ReferredDocumentType3Choice: + cd: Optional[DocumentType6Code] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class SupplementaryData1: + plc_and_nm: Optional[str] = field( + default=None, + metadata={ + "name": "PlcAndNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 350, + }, + ) + envlp: Optional[SupplementaryDataEnvelope1] = field( + default=None, + metadata={ + "name": "Envlp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "required": True, + }, + ) + + +@dataclass +class TaxAmountAndType1: + tp: Optional[TaxAmountType1Choice] = field( + default=None, + metadata={ + "name": "Tp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "Amt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "required": True, + }, + ) + + +@dataclass +class TaxParty2: + tax_id: Optional[str] = field( + default=None, + metadata={ + "name": "TaxId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 35, + }, + ) + regn_id: Optional[str] = field( + default=None, + metadata={ + "name": "RegnId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 35, + }, + ) + tax_tp: Optional[str] = field( + default=None, + metadata={ + "name": "TaxTp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 35, + }, + ) + authstn: Optional[TaxAuthorisation1] = field( + default=None, + metadata={ + "name": "Authstn", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + + +@dataclass +class TaxPeriod3: + yr: Optional[XmlPeriod] = field( + default=None, + metadata={ + "name": "Yr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + tp: Optional[TaxRecordPeriod1Code] = field( + default=None, + metadata={ + "name": "Tp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + fr_to_dt: Optional[DatePeriod2] = field( + default=None, + metadata={ + "name": "FrToDt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + + +@dataclass +class AccountIdentification4Choice: + iban: Optional[str] = field( + default=None, + metadata={ + "name": "IBAN", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "pattern": r"[A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}", + }, + ) + othr: Optional[GenericAccountIdentification1] = field( + default=None, + metadata={ + "name": "Othr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + + +@dataclass +class AmountType3Choice: + instd_amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "InstdAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + eqvt_amt: Optional[EquivalentAmount2] = field( + default=None, + metadata={ + "name": "EqvtAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + + +@dataclass +class CreditorReferenceType2: + cd_or_prtry: Optional[CreditorReferenceType1Choice] = field( + default=None, + metadata={ + "name": "CdOrPrtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "required": True, + }, + ) + issr: Optional[str] = field( + default=None, + metadata={ + "name": "Issr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class DocumentLineIdentification1: + tp: Optional[DocumentLineType1] = field( + default=None, + metadata={ + "name": "Tp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + nb: Optional[str] = field( + default=None, + metadata={ + "name": "Nb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 35, + }, + ) + rltd_dt: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "RltdDt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + + +@dataclass +class OrganisationIdentification29: + any_bic: Optional[str] = field( + default=None, + metadata={ + "name": "AnyBIC", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "pattern": r"[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9]{3,3}){0,1}", + }, + ) + lei: Optional[str] = field( + default=None, + metadata={ + "name": "LEI", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "pattern": r"[A-Z0-9]{18,18}[0-9]{2,2}", + }, + ) + othr: List[GenericOrganisationIdentification1] = field( + default_factory=list, + metadata={ + "name": "Othr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + + +@dataclass +class PersonIdentification13: + dt_and_plc_of_birth: Optional[DateAndPlaceOfBirth1] = field( + default=None, + metadata={ + "name": "DtAndPlcOfBirth", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + othr: List[GenericPersonIdentification1] = field( + default_factory=list, + metadata={ + "name": "Othr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + + +@dataclass +class PostalAddress24: + adr_tp: Optional[AddressType3Choice] = field( + default=None, + metadata={ + "name": "AdrTp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + dept: Optional[str] = field( + default=None, + metadata={ + "name": "Dept", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 70, + }, + ) + sub_dept: Optional[str] = field( + default=None, + metadata={ + "name": "SubDept", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 70, + }, + ) + strt_nm: Optional[str] = field( + default=None, + metadata={ + "name": "StrtNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 70, + }, + ) + bldg_nb: Optional[str] = field( + default=None, + metadata={ + "name": "BldgNb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 16, + }, + ) + bldg_nm: Optional[str] = field( + default=None, + metadata={ + "name": "BldgNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 35, + }, + ) + flr: Optional[str] = field( + default=None, + metadata={ + "name": "Flr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 70, + }, + ) + pst_bx: Optional[str] = field( + default=None, + metadata={ + "name": "PstBx", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 16, + }, + ) + room: Optional[str] = field( + default=None, + metadata={ + "name": "Room", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 70, + }, + ) + pst_cd: Optional[str] = field( + default=None, + metadata={ + "name": "PstCd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 16, + }, + ) + twn_nm: Optional[str] = field( + default=None, + metadata={ + "name": "TwnNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 35, + }, + ) + twn_lctn_nm: Optional[str] = field( + default=None, + metadata={ + "name": "TwnLctnNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 35, + }, + ) + dstrct_nm: Optional[str] = field( + default=None, + metadata={ + "name": "DstrctNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 35, + }, + ) + ctry_sub_dvsn: Optional[str] = field( + default=None, + metadata={ + "name": "CtrySubDvsn", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 35, + }, + ) + ctry: Optional[str] = field( + default=None, + metadata={ + "name": "Ctry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "pattern": r"[A-Z]{2,2}", + }, + ) + adr_line: List[str] = field( + default_factory=list, + metadata={ + "name": "AdrLine", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "max_occurs": 7, + "min_length": 1, + "max_length": 70, + }, + ) + + +@dataclass +class ReferredDocumentType4: + cd_or_prtry: Optional[ReferredDocumentType3Choice] = field( + default=None, + metadata={ + "name": "CdOrPrtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "required": True, + }, + ) + issr: Optional[str] = field( + default=None, + metadata={ + "name": "Issr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class RemittanceAmount2: + due_pybl_amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "DuePyblAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + dscnt_apld_amt: List[DiscountAmountAndType1] = field( + default_factory=list, + metadata={ + "name": "DscntApldAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + cdt_note_amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "CdtNoteAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + tax_amt: List[TaxAmountAndType1] = field( + default_factory=list, + metadata={ + "name": "TaxAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + adjstmnt_amt_and_rsn: List[DocumentAdjustment1] = field( + default_factory=list, + metadata={ + "name": "AdjstmntAmtAndRsn", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + rmtd_amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "RmtdAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + + +@dataclass +class RemittanceAmount3: + due_pybl_amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "DuePyblAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + dscnt_apld_amt: List[DiscountAmountAndType1] = field( + default_factory=list, + metadata={ + "name": "DscntApldAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + cdt_note_amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "CdtNoteAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + tax_amt: List[TaxAmountAndType1] = field( + default_factory=list, + metadata={ + "name": "TaxAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + adjstmnt_amt_and_rsn: List[DocumentAdjustment1] = field( + default_factory=list, + metadata={ + "name": "AdjstmntAmtAndRsn", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + rmtd_amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "RmtdAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + + +@dataclass +class TaxRecordDetails3: + prd: Optional[TaxPeriod3] = field( + default=None, + metadata={ + "name": "Prd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "Amt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "required": True, + }, + ) + + +@dataclass +class BranchData3: + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 35, + }, + ) + lei: Optional[str] = field( + default=None, + metadata={ + "name": "LEI", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "pattern": r"[A-Z0-9]{18,18}[0-9]{2,2}", + }, + ) + nm: Optional[str] = field( + default=None, + metadata={ + "name": "Nm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 140, + }, + ) + pstl_adr: Optional[PostalAddress24] = field( + default=None, + metadata={ + "name": "PstlAdr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + + +@dataclass +class CashAccount40: + id: Optional[AccountIdentification4Choice] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + tp: Optional[CashAccountType2Choice] = field( + default=None, + metadata={ + "name": "Tp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + ccy: Optional[str] = field( + default=None, + metadata={ + "name": "Ccy", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "pattern": r"[A-Z]{3,3}", + }, + ) + nm: Optional[str] = field( + default=None, + metadata={ + "name": "Nm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 70, + }, + ) + prxy: Optional[ProxyAccountIdentification1] = field( + default=None, + metadata={ + "name": "Prxy", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + + +@dataclass +class CreditorReferenceInformation2: + tp: Optional[CreditorReferenceType2] = field( + default=None, + metadata={ + "name": "Tp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + ref: Optional[str] = field( + default=None, + metadata={ + "name": "Ref", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class DocumentLineInformation1: + id: List[DocumentLineIdentification1] = field( + default_factory=list, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_occurs": 1, + }, + ) + desc: Optional[str] = field( + default=None, + metadata={ + "name": "Desc", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 2048, + }, + ) + amt: Optional[RemittanceAmount3] = field( + default=None, + metadata={ + "name": "Amt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + + +@dataclass +class FinancialInstitutionIdentification18: + bicfi: Optional[str] = field( + default=None, + metadata={ + "name": "BICFI", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "pattern": r"[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9]{3,3}){0,1}", + }, + ) + clr_sys_mmb_id: Optional[ClearingSystemMemberIdentification2] = field( + default=None, + metadata={ + "name": "ClrSysMmbId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + lei: Optional[str] = field( + default=None, + metadata={ + "name": "LEI", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "pattern": r"[A-Z0-9]{18,18}[0-9]{2,2}", + }, + ) + nm: Optional[str] = field( + default=None, + metadata={ + "name": "Nm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 140, + }, + ) + pstl_adr: Optional[PostalAddress24] = field( + default=None, + metadata={ + "name": "PstlAdr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + othr: Optional[GenericFinancialIdentification1] = field( + default=None, + metadata={ + "name": "Othr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + + +@dataclass +class Party38Choice: + org_id: Optional[OrganisationIdentification29] = field( + default=None, + metadata={ + "name": "OrgId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + prvt_id: Optional[PersonIdentification13] = field( + default=None, + metadata={ + "name": "PrvtId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + + +@dataclass +class TaxAmount3: + rate: Optional[Decimal] = field( + default=None, + metadata={ + "name": "Rate", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "total_digits": 11, + "fraction_digits": 10, + }, + ) + taxbl_base_amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "TaxblBaseAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + ttl_amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "TtlAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + dtls: List[TaxRecordDetails3] = field( + default_factory=list, + metadata={ + "name": "Dtls", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + + +@dataclass +class BranchAndFinancialInstitutionIdentification6: + fin_instn_id: Optional[FinancialInstitutionIdentification18] = field( + default=None, + metadata={ + "name": "FinInstnId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "required": True, + }, + ) + brnch_id: Optional[BranchData3] = field( + default=None, + metadata={ + "name": "BrnchId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + + +@dataclass +class PartyIdentification135: + nm: Optional[str] = field( + default=None, + metadata={ + "name": "Nm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 140, + }, + ) + pstl_adr: Optional[PostalAddress24] = field( + default=None, + metadata={ + "name": "PstlAdr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + id: Optional[Party38Choice] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + ctry_of_res: Optional[str] = field( + default=None, + metadata={ + "name": "CtryOfRes", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "pattern": r"[A-Z]{2,2}", + }, + ) + ctct_dtls: Optional[Contact4] = field( + default=None, + metadata={ + "name": "CtctDtls", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + + +@dataclass +class ReferredDocumentInformation7: + tp: Optional[ReferredDocumentType4] = field( + default=None, + metadata={ + "name": "Tp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + nb: Optional[str] = field( + default=None, + metadata={ + "name": "Nb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 35, + }, + ) + rltd_dt: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "RltdDt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + line_dtls: List[DocumentLineInformation1] = field( + default_factory=list, + metadata={ + "name": "LineDtls", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + + +@dataclass +class TaxRecord3: + tp: Optional[str] = field( + default=None, + metadata={ + "name": "Tp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 35, + }, + ) + ctgy: Optional[str] = field( + default=None, + metadata={ + "name": "Ctgy", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 35, + }, + ) + ctgy_dtls: Optional[str] = field( + default=None, + metadata={ + "name": "CtgyDtls", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 35, + }, + ) + dbtr_sts: Optional[str] = field( + default=None, + metadata={ + "name": "DbtrSts", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 35, + }, + ) + cert_id: Optional[str] = field( + default=None, + metadata={ + "name": "CertId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 35, + }, + ) + frms_cd: Optional[str] = field( + default=None, + metadata={ + "name": "FrmsCd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 35, + }, + ) + prd: Optional[TaxPeriod3] = field( + default=None, + metadata={ + "name": "Prd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + tax_amt: Optional[TaxAmount3] = field( + default=None, + metadata={ + "name": "TaxAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + addtl_inf: Optional[str] = field( + default=None, + metadata={ + "name": "AddtlInf", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 140, + }, + ) + + +@dataclass +class Garnishment3: + tp: Optional[GarnishmentType1] = field( + default=None, + metadata={ + "name": "Tp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "required": True, + }, + ) + grnshee: Optional[PartyIdentification135] = field( + default=None, + metadata={ + "name": "Grnshee", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + grnshmt_admstr: Optional[PartyIdentification135] = field( + default=None, + metadata={ + "name": "GrnshmtAdmstr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + ref_nb: Optional[str] = field( + default=None, + metadata={ + "name": "RefNb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 140, + }, + ) + dt: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "Dt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + rmtd_amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "RmtdAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + fmly_mdcl_insrnc_ind: Optional[bool] = field( + default=None, + metadata={ + "name": "FmlyMdclInsrncInd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + mplyee_termntn_ind: Optional[bool] = field( + default=None, + metadata={ + "name": "MplyeeTermntnInd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + + +@dataclass +class GroupHeader79: + msg_id: Optional[str] = field( + default=None, + metadata={ + "name": "MsgId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "required": True, + "min_length": 1, + "max_length": 35, + }, + ) + cre_dt_tm: Optional[XmlDateTime] = field( + default=None, + metadata={ + "name": "CreDtTm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "required": True, + }, + ) + authstn: List[Authorisation1Choice] = field( + default_factory=list, + metadata={ + "name": "Authstn", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "max_occurs": 2, + }, + ) + cpy_ind: Optional[CopyDuplicate1Code] = field( + default=None, + metadata={ + "name": "CpyInd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + initg_pty: Optional[PartyIdentification135] = field( + default=None, + metadata={ + "name": "InitgPty", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "required": True, + }, + ) + msg_rcpt: Optional[PartyIdentification135] = field( + default=None, + metadata={ + "name": "MsgRcpt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + fwdg_agt: Optional[BranchAndFinancialInstitutionIdentification6] = field( + default=None, + metadata={ + "name": "FwdgAgt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + + +@dataclass +class TaxData1: + cdtr: Optional[TaxParty1] = field( + default=None, + metadata={ + "name": "Cdtr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + dbtr: Optional[TaxParty2] = field( + default=None, + metadata={ + "name": "Dbtr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + ultmt_dbtr: Optional[TaxParty2] = field( + default=None, + metadata={ + "name": "UltmtDbtr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + admstn_zone: Optional[str] = field( + default=None, + metadata={ + "name": "AdmstnZone", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 35, + }, + ) + ref_nb: Optional[str] = field( + default=None, + metadata={ + "name": "RefNb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 140, + }, + ) + mtd: Optional[str] = field( + default=None, + metadata={ + "name": "Mtd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 35, + }, + ) + ttl_taxbl_base_amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "TtlTaxblBaseAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + ttl_tax_amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "TtlTaxAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + dt: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "Dt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + seq_nb: Optional[Decimal] = field( + default=None, + metadata={ + "name": "SeqNb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "total_digits": 18, + "fraction_digits": 0, + }, + ) + rcrd: List[TaxRecord3] = field( + default_factory=list, + metadata={ + "name": "Rcrd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + + +@dataclass +class TransactionReferences5: + pmt_inf_id: Optional[str] = field( + default=None, + metadata={ + "name": "PmtInfId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 35, + }, + ) + instr_id: Optional[str] = field( + default=None, + metadata={ + "name": "InstrId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 35, + }, + ) + end_to_end_id: Optional[str] = field( + default=None, + metadata={ + "name": "EndToEndId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "required": True, + "min_length": 1, + "max_length": 35, + }, + ) + tx_id: Optional[str] = field( + default=None, + metadata={ + "name": "TxId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 35, + }, + ) + uetr: Optional[str] = field( + default=None, + metadata={ + "name": "UETR", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "pattern": r"[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}", + }, + ) + mndt_id: Optional[str] = field( + default=None, + metadata={ + "name": "MndtId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 35, + }, + ) + cdtr_schme_id: Optional[PartyIdentification135] = field( + default=None, + metadata={ + "name": "CdtrSchmeId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + + +@dataclass +class OriginalPaymentInformation9: + refs: Optional[TransactionReferences5] = field( + default=None, + metadata={ + "name": "Refs", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "required": True, + }, + ) + pmt_tp_inf: Optional[PaymentTypeInformation26] = field( + default=None, + metadata={ + "name": "PmtTpInf", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + amt: Optional[AmountType3Choice] = field( + default=None, + metadata={ + "name": "Amt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + xchg_rate_inf: Optional[ExchangeRate1] = field( + default=None, + metadata={ + "name": "XchgRateInf", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + reqd_exctn_dt: Optional[DateAndDateTime2Choice] = field( + default=None, + metadata={ + "name": "ReqdExctnDt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + reqd_colltn_dt: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "ReqdColltnDt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + dbtr: Optional[PartyIdentification135] = field( + default=None, + metadata={ + "name": "Dbtr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + dbtr_acct: Optional[CashAccount40] = field( + default=None, + metadata={ + "name": "DbtrAcct", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + dbtr_agt: Optional[BranchAndFinancialInstitutionIdentification6] = field( + default=None, + metadata={ + "name": "DbtrAgt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + cdtr: Optional[PartyIdentification135] = field( + default=None, + metadata={ + "name": "Cdtr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + cdtr_acct: Optional[CashAccount40] = field( + default=None, + metadata={ + "name": "CdtrAcct", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + cdtr_agt: Optional[BranchAndFinancialInstitutionIdentification6] = field( + default=None, + metadata={ + "name": "CdtrAgt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + + +@dataclass +class StructuredRemittanceInformation17: + rfrd_doc_inf: List[ReferredDocumentInformation7] = field( + default_factory=list, + metadata={ + "name": "RfrdDocInf", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + rfrd_doc_amt: Optional[RemittanceAmount2] = field( + default=None, + metadata={ + "name": "RfrdDocAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + cdtr_ref_inf: Optional[CreditorReferenceInformation2] = field( + default=None, + metadata={ + "name": "CdtrRefInf", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + invcr: Optional[PartyIdentification135] = field( + default=None, + metadata={ + "name": "Invcr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + invcee: Optional[PartyIdentification135] = field( + default=None, + metadata={ + "name": "Invcee", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + tax_rmt: Optional[TaxData1] = field( + default=None, + metadata={ + "name": "TaxRmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + grnshmt_rmt: Optional[Garnishment3] = field( + default=None, + metadata={ + "name": "GrnshmtRmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + addtl_rmt_inf: List[str] = field( + default_factory=list, + metadata={ + "name": "AddtlRmtInf", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "max_occurs": 3, + "min_length": 1, + "max_length": 140, + }, + ) + + +@dataclass +class RemittanceInformation20: + rmt_id: Optional[str] = field( + default=None, + metadata={ + "name": "RmtId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 35, + }, + ) + ustrd: List[str] = field( + default_factory=list, + metadata={ + "name": "Ustrd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_length": 1, + "max_length": 140, + }, + ) + strd: List[StructuredRemittanceInformation17] = field( + default_factory=list, + metadata={ + "name": "Strd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + orgnl_pmt_inf: Optional[OriginalPaymentInformation9] = field( + default=None, + metadata={ + "name": "OrgnlPmtInf", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "required": True, + }, + ) + + +@dataclass +class RemittanceAdviceV05: + grp_hdr: Optional[GroupHeader79] = field( + default=None, + metadata={ + "name": "GrpHdr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "required": True, + }, + ) + rmt_inf: List[RemittanceInformation20] = field( + default_factory=list, + metadata={ + "name": "RmtInf", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + "min_occurs": 1, + }, + ) + splmtry_data: List[SupplementaryData1] = field( + default_factory=list, + metadata={ + "name": "SplmtryData", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05", + }, + ) + + +@dataclass +class Document: + class Meta: + namespace = "urn:iso:std:iso:20022:tech:xsd:remt.001.001.05" + + rmt_advc: Optional[RemittanceAdviceV05] = field( + default=None, + metadata={ + "name": "RmtAdvc", + "type": "Element", + "required": True, + }, + ) diff --git a/pyiso20022/remt/remt_001_001_06/__init__.py b/pyiso20022/remt/remt_001_001_06/__init__.py new file mode 100644 index 0000000..2a2c13c --- /dev/null +++ b/pyiso20022/remt/remt_001_001_06/__init__.py @@ -0,0 +1,173 @@ +from pyiso20022.remt.remt_001_001_06.remt_001_001_06 import ( + AccountIdentification4Choice, + AccountSchemeName1Choice, + ActiveOrHistoricCurrencyAndAmount, + AddressType2Code, + AddressType3Choice, + AmountType3Choice, + Authorisation1Choice, + Authorisation1Code, + BranchAndFinancialInstitutionIdentification8, + BranchData5, + CashAccount40, + CashAccountType2Choice, + CategoryPurpose1Choice, + ClearingSystemIdentification2Choice, + ClearingSystemMemberIdentification2, + Contact13, + CopyDuplicate1Code, + CreditDebitCode, + CreditorReferenceInformation3, + CreditorReferenceType2Choice, + CreditorReferenceType3, + DateAndDateTime2Choice, + DateAndPlaceOfBirth1, + DateAndType1, + DatePeriod2, + DateType2Choice, + Document, + DocumentAdjustment1, + DocumentAmount1, + DocumentAmountType1Choice, + DocumentLineIdentification1, + DocumentLineInformation2, + DocumentLineType1, + DocumentLineType1Choice, + DocumentType1, + DocumentType2Choice, + EquivalentAmount2, + ExchangeRate1, + ExchangeRateType1Code, + FinancialIdentificationSchemeName1Choice, + FinancialInstitutionIdentification23, + Garnishment4, + GarnishmentType1, + GarnishmentType1Choice, + GenericAccountIdentification1, + GenericFinancialIdentification1, + GenericIdentification30, + GenericOrganisationIdentification3, + GenericPersonIdentification2, + GroupHeader122, + LocalInstrument2Choice, + NamePrefix2Code, + OrganisationIdentification39, + OrganisationIdentificationSchemeName1Choice, + OriginalPaymentInformation10, + OtherContact1, + Party52Choice, + PartyIdentification272, + PaymentTypeInformation26, + PersonIdentification18, + PersonIdentificationSchemeName1Choice, + PostalAddress27, + PreferredContactMethod2Code, + Priority2Code, + ProxyAccountIdentification1, + ProxyAccountType1Choice, + ReferredDocumentInformation8, + RemittanceAdviceV06, + RemittanceAmount4, + RemittanceInformation23, + ServiceLevel8Choice, + StructuredRemittanceInformation18, + SupplementaryData1, + SupplementaryDataEnvelope1, + TaxAmount3, + TaxAuthorisation1, + TaxData1, + TaxParty1, + TaxParty2, + TaxPeriod3, + TaxRecord3, + TaxRecordDetails3, + TaxRecordPeriod1Code, + TransactionReferences8, +) + +__all__ = [ + "AccountIdentification4Choice", + "AccountSchemeName1Choice", + "ActiveOrHistoricCurrencyAndAmount", + "AddressType2Code", + "AddressType3Choice", + "AmountType3Choice", + "Authorisation1Choice", + "Authorisation1Code", + "BranchAndFinancialInstitutionIdentification8", + "BranchData5", + "CashAccount40", + "CashAccountType2Choice", + "CategoryPurpose1Choice", + "ClearingSystemIdentification2Choice", + "ClearingSystemMemberIdentification2", + "Contact13", + "CopyDuplicate1Code", + "CreditDebitCode", + "CreditorReferenceInformation3", + "CreditorReferenceType2Choice", + "CreditorReferenceType3", + "DateAndDateTime2Choice", + "DateAndPlaceOfBirth1", + "DateAndType1", + "DatePeriod2", + "DateType2Choice", + "Document", + "DocumentAdjustment1", + "DocumentAmount1", + "DocumentAmountType1Choice", + "DocumentLineIdentification1", + "DocumentLineInformation2", + "DocumentLineType1", + "DocumentLineType1Choice", + "DocumentType1", + "DocumentType2Choice", + "EquivalentAmount2", + "ExchangeRate1", + "ExchangeRateType1Code", + "FinancialIdentificationSchemeName1Choice", + "FinancialInstitutionIdentification23", + "Garnishment4", + "GarnishmentType1", + "GarnishmentType1Choice", + "GenericAccountIdentification1", + "GenericFinancialIdentification1", + "GenericIdentification30", + "GenericOrganisationIdentification3", + "GenericPersonIdentification2", + "GroupHeader122", + "LocalInstrument2Choice", + "NamePrefix2Code", + "OrganisationIdentification39", + "OrganisationIdentificationSchemeName1Choice", + "OriginalPaymentInformation10", + "OtherContact1", + "Party52Choice", + "PartyIdentification272", + "PaymentTypeInformation26", + "PersonIdentification18", + "PersonIdentificationSchemeName1Choice", + "PostalAddress27", + "PreferredContactMethod2Code", + "Priority2Code", + "ProxyAccountIdentification1", + "ProxyAccountType1Choice", + "ReferredDocumentInformation8", + "RemittanceAdviceV06", + "RemittanceAmount4", + "RemittanceInformation23", + "ServiceLevel8Choice", + "StructuredRemittanceInformation18", + "SupplementaryData1", + "SupplementaryDataEnvelope1", + "TaxAmount3", + "TaxAuthorisation1", + "TaxData1", + "TaxParty1", + "TaxParty2", + "TaxPeriod3", + "TaxRecord3", + "TaxRecordDetails3", + "TaxRecordPeriod1Code", + "TransactionReferences8", +] diff --git a/pyiso20022/remt/remt_001_001_06/remt_001_001_06.py b/pyiso20022/remt/remt_001_001_06/remt_001_001_06.py new file mode 100644 index 0000000..8ad5756 --- /dev/null +++ b/pyiso20022/remt/remt_001_001_06/remt_001_001_06.py @@ -0,0 +1,2782 @@ +from dataclasses import dataclass, field +from decimal import Decimal +from enum import Enum +from typing import List, Optional + +from xsdata.models.datatype import XmlDate, XmlDateTime, XmlPeriod + +__NAMESPACE__ = "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06" + + +@dataclass +class AccountSchemeName1Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class ActiveOrHistoricCurrencyAndAmount: + value: Optional[Decimal] = field( + default=None, + metadata={ + "required": True, + "min_inclusive": Decimal("0"), + "total_digits": 18, + "fraction_digits": 5, + }, + ) + ccy: Optional[str] = field( + default=None, + metadata={ + "name": "Ccy", + "type": "Attribute", + "required": True, + "pattern": r"[A-Z]{3,3}", + }, + ) + + +class AddressType2Code(Enum): + ADDR = "ADDR" + PBOX = "PBOX" + HOME = "HOME" + BIZZ = "BIZZ" + MLTO = "MLTO" + DLVY = "DLVY" + + +class Authorisation1Code(Enum): + AUTH = "AUTH" + FDET = "FDET" + FSUM = "FSUM" + ILEV = "ILEV" + + +@dataclass +class CashAccountType2Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class CategoryPurpose1Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class ClearingSystemIdentification2Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 5, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 35, + }, + ) + + +class CopyDuplicate1Code(Enum): + CODU = "CODU" + COPY = "COPY" + DUPL = "DUPL" + + +class CreditDebitCode(Enum): + CRDT = "CRDT" + DBIT = "DBIT" + + +@dataclass +class CreditorReferenceType2Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class DateAndDateTime2Choice: + dt: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "Dt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + dt_tm: Optional[XmlDateTime] = field( + default=None, + metadata={ + "name": "DtTm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + + +@dataclass +class DateAndPlaceOfBirth1: + birth_dt: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "BirthDt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "required": True, + }, + ) + prvc_of_birth: Optional[str] = field( + default=None, + metadata={ + "name": "PrvcOfBirth", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 35, + }, + ) + city_of_birth: Optional[str] = field( + default=None, + metadata={ + "name": "CityOfBirth", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "required": True, + "min_length": 1, + "max_length": 35, + }, + ) + ctry_of_birth: Optional[str] = field( + default=None, + metadata={ + "name": "CtryOfBirth", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "required": True, + "pattern": r"[A-Z]{2,2}", + }, + ) + + +@dataclass +class DatePeriod2: + fr_dt: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "FrDt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "required": True, + }, + ) + to_dt: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "ToDt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "required": True, + }, + ) + + +@dataclass +class DateType2Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class DocumentAmountType1Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class DocumentLineType1Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class DocumentType2Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 35, + }, + ) + + +class ExchangeRateType1Code(Enum): + SPOT = "SPOT" + SALE = "SALE" + AGRD = "AGRD" + + +@dataclass +class FinancialIdentificationSchemeName1Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class GarnishmentType1Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class GenericIdentification30: + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "required": True, + "pattern": r"[a-zA-Z0-9]{4}", + }, + ) + issr: Optional[str] = field( + default=None, + metadata={ + "name": "Issr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "required": True, + "min_length": 1, + "max_length": 35, + }, + ) + schme_nm: Optional[str] = field( + default=None, + metadata={ + "name": "SchmeNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class LocalInstrument2Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 35, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 35, + }, + ) + + +class NamePrefix2Code(Enum): + DOCT = "DOCT" + MADM = "MADM" + MISS = "MISS" + MIST = "MIST" + MIKS = "MIKS" + + +@dataclass +class OrganisationIdentificationSchemeName1Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class OtherContact1: + chanl_tp: Optional[str] = field( + default=None, + metadata={ + "name": "ChanlTp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "required": True, + "min_length": 1, + "max_length": 4, + }, + ) + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 128, + }, + ) + + +@dataclass +class PersonIdentificationSchemeName1Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 35, + }, + ) + + +class PreferredContactMethod2Code(Enum): + MAIL = "MAIL" + FAXX = "FAXX" + LETT = "LETT" + CELL = "CELL" + ONLI = "ONLI" + PHON = "PHON" + + +class Priority2Code(Enum): + HIGH = "HIGH" + NORM = "NORM" + + +@dataclass +class ProxyAccountType1Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class ServiceLevel8Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class SupplementaryDataEnvelope1: + any_element: Optional[object] = field( + default=None, + metadata={ + "type": "Wildcard", + "namespace": "##any", + }, + ) + + +@dataclass +class TaxAuthorisation1: + titl: Optional[str] = field( + default=None, + metadata={ + "name": "Titl", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 35, + }, + ) + nm: Optional[str] = field( + default=None, + metadata={ + "name": "Nm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 140, + }, + ) + + +@dataclass +class TaxParty1: + tax_id: Optional[str] = field( + default=None, + metadata={ + "name": "TaxId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 35, + }, + ) + regn_id: Optional[str] = field( + default=None, + metadata={ + "name": "RegnId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 35, + }, + ) + tax_tp: Optional[str] = field( + default=None, + metadata={ + "name": "TaxTp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 35, + }, + ) + + +class TaxRecordPeriod1Code(Enum): + MM01 = "MM01" + MM02 = "MM02" + MM03 = "MM03" + MM04 = "MM04" + MM05 = "MM05" + MM06 = "MM06" + MM07 = "MM07" + MM08 = "MM08" + MM09 = "MM09" + MM10 = "MM10" + MM11 = "MM11" + MM12 = "MM12" + QTR1 = "QTR1" + QTR2 = "QTR2" + QTR3 = "QTR3" + QTR4 = "QTR4" + HLF1 = "HLF1" + HLF2 = "HLF2" + + +@dataclass +class AddressType3Choice: + cd: Optional[AddressType2Code] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + prtry: Optional[GenericIdentification30] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + + +@dataclass +class Authorisation1Choice: + cd: Optional[Authorisation1Code] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 128, + }, + ) + + +@dataclass +class ClearingSystemMemberIdentification2: + clr_sys_id: Optional[ClearingSystemIdentification2Choice] = field( + default=None, + metadata={ + "name": "ClrSysId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + mmb_id: Optional[str] = field( + default=None, + metadata={ + "name": "MmbId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "required": True, + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class Contact13: + nm_prfx: Optional[NamePrefix2Code] = field( + default=None, + metadata={ + "name": "NmPrfx", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + nm: Optional[str] = field( + default=None, + metadata={ + "name": "Nm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 140, + }, + ) + phne_nb: Optional[str] = field( + default=None, + metadata={ + "name": "PhneNb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "pattern": r"\+[0-9]{1,3}-[0-9()+\-]{1,30}", + }, + ) + mob_nb: Optional[str] = field( + default=None, + metadata={ + "name": "MobNb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "pattern": r"\+[0-9]{1,3}-[0-9()+\-]{1,30}", + }, + ) + fax_nb: Optional[str] = field( + default=None, + metadata={ + "name": "FaxNb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "pattern": r"\+[0-9]{1,3}-[0-9()+\-]{1,30}", + }, + ) + urladr: Optional[str] = field( + default=None, + metadata={ + "name": "URLAdr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 2048, + }, + ) + email_adr: Optional[str] = field( + default=None, + metadata={ + "name": "EmailAdr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 256, + }, + ) + email_purp: Optional[str] = field( + default=None, + metadata={ + "name": "EmailPurp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 35, + }, + ) + job_titl: Optional[str] = field( + default=None, + metadata={ + "name": "JobTitl", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 35, + }, + ) + rspnsblty: Optional[str] = field( + default=None, + metadata={ + "name": "Rspnsblty", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 35, + }, + ) + dept: Optional[str] = field( + default=None, + metadata={ + "name": "Dept", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 70, + }, + ) + othr: List[OtherContact1] = field( + default_factory=list, + metadata={ + "name": "Othr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + prefrd_mtd: Optional[PreferredContactMethod2Code] = field( + default=None, + metadata={ + "name": "PrefrdMtd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + + +@dataclass +class CreditorReferenceType3: + cd_or_prtry: Optional[CreditorReferenceType2Choice] = field( + default=None, + metadata={ + "name": "CdOrPrtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "required": True, + }, + ) + issr: Optional[str] = field( + default=None, + metadata={ + "name": "Issr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class DateAndType1: + tp: Optional[DateType2Choice] = field( + default=None, + metadata={ + "name": "Tp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "required": True, + }, + ) + dt: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "Dt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "required": True, + }, + ) + + +@dataclass +class DocumentAdjustment1: + amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "Amt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "required": True, + }, + ) + cdt_dbt_ind: Optional[CreditDebitCode] = field( + default=None, + metadata={ + "name": "CdtDbtInd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + rsn: Optional[str] = field( + default=None, + metadata={ + "name": "Rsn", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 4, + }, + ) + addtl_inf: Optional[str] = field( + default=None, + metadata={ + "name": "AddtlInf", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 140, + }, + ) + + +@dataclass +class DocumentAmount1: + tp: Optional[DocumentAmountType1Choice] = field( + default=None, + metadata={ + "name": "Tp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "required": True, + }, + ) + amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "Amt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "required": True, + }, + ) + + +@dataclass +class DocumentLineType1: + cd_or_prtry: Optional[DocumentLineType1Choice] = field( + default=None, + metadata={ + "name": "CdOrPrtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "required": True, + }, + ) + issr: Optional[str] = field( + default=None, + metadata={ + "name": "Issr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class DocumentType1: + cd_or_prtry: Optional[DocumentType2Choice] = field( + default=None, + metadata={ + "name": "CdOrPrtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "required": True, + }, + ) + issr: Optional[str] = field( + default=None, + metadata={ + "name": "Issr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class EquivalentAmount2: + amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "Amt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "required": True, + }, + ) + ccy_of_trf: Optional[str] = field( + default=None, + metadata={ + "name": "CcyOfTrf", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "required": True, + "pattern": r"[A-Z]{3,3}", + }, + ) + + +@dataclass +class ExchangeRate1: + unit_ccy: Optional[str] = field( + default=None, + metadata={ + "name": "UnitCcy", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "pattern": r"[A-Z]{3,3}", + }, + ) + xchg_rate: Optional[Decimal] = field( + default=None, + metadata={ + "name": "XchgRate", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "total_digits": 11, + "fraction_digits": 10, + }, + ) + rate_tp: Optional[ExchangeRateType1Code] = field( + default=None, + metadata={ + "name": "RateTp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + ctrct_id: Optional[str] = field( + default=None, + metadata={ + "name": "CtrctId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class GarnishmentType1: + cd_or_prtry: Optional[GarnishmentType1Choice] = field( + default=None, + metadata={ + "name": "CdOrPrtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "required": True, + }, + ) + issr: Optional[str] = field( + default=None, + metadata={ + "name": "Issr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class GenericAccountIdentification1: + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "required": True, + "min_length": 1, + "max_length": 34, + }, + ) + schme_nm: Optional[AccountSchemeName1Choice] = field( + default=None, + metadata={ + "name": "SchmeNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + issr: Optional[str] = field( + default=None, + metadata={ + "name": "Issr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class GenericFinancialIdentification1: + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "required": True, + "min_length": 1, + "max_length": 35, + }, + ) + schme_nm: Optional[FinancialIdentificationSchemeName1Choice] = field( + default=None, + metadata={ + "name": "SchmeNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + issr: Optional[str] = field( + default=None, + metadata={ + "name": "Issr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class GenericOrganisationIdentification3: + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "required": True, + "min_length": 1, + "max_length": 256, + }, + ) + schme_nm: Optional[OrganisationIdentificationSchemeName1Choice] = field( + default=None, + metadata={ + "name": "SchmeNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + issr: Optional[str] = field( + default=None, + metadata={ + "name": "Issr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class GenericPersonIdentification2: + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "required": True, + "min_length": 1, + "max_length": 256, + }, + ) + schme_nm: Optional[PersonIdentificationSchemeName1Choice] = field( + default=None, + metadata={ + "name": "SchmeNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + issr: Optional[str] = field( + default=None, + metadata={ + "name": "Issr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class PaymentTypeInformation26: + instr_prty: Optional[Priority2Code] = field( + default=None, + metadata={ + "name": "InstrPrty", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + svc_lvl: List[ServiceLevel8Choice] = field( + default_factory=list, + metadata={ + "name": "SvcLvl", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + lcl_instrm: Optional[LocalInstrument2Choice] = field( + default=None, + metadata={ + "name": "LclInstrm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + ctgy_purp: Optional[CategoryPurpose1Choice] = field( + default=None, + metadata={ + "name": "CtgyPurp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + + +@dataclass +class ProxyAccountIdentification1: + tp: Optional[ProxyAccountType1Choice] = field( + default=None, + metadata={ + "name": "Tp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "required": True, + "min_length": 1, + "max_length": 2048, + }, + ) + + +@dataclass +class SupplementaryData1: + plc_and_nm: Optional[str] = field( + default=None, + metadata={ + "name": "PlcAndNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 350, + }, + ) + envlp: Optional[SupplementaryDataEnvelope1] = field( + default=None, + metadata={ + "name": "Envlp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "required": True, + }, + ) + + +@dataclass +class TaxParty2: + tax_id: Optional[str] = field( + default=None, + metadata={ + "name": "TaxId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 35, + }, + ) + regn_id: Optional[str] = field( + default=None, + metadata={ + "name": "RegnId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 35, + }, + ) + tax_tp: Optional[str] = field( + default=None, + metadata={ + "name": "TaxTp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 35, + }, + ) + authstn: Optional[TaxAuthorisation1] = field( + default=None, + metadata={ + "name": "Authstn", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + + +@dataclass +class TaxPeriod3: + yr: Optional[XmlPeriod] = field( + default=None, + metadata={ + "name": "Yr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + tp: Optional[TaxRecordPeriod1Code] = field( + default=None, + metadata={ + "name": "Tp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + fr_to_dt: Optional[DatePeriod2] = field( + default=None, + metadata={ + "name": "FrToDt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + + +@dataclass +class AccountIdentification4Choice: + iban: Optional[str] = field( + default=None, + metadata={ + "name": "IBAN", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "pattern": r"[A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}", + }, + ) + othr: Optional[GenericAccountIdentification1] = field( + default=None, + metadata={ + "name": "Othr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + + +@dataclass +class AmountType3Choice: + instd_amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "InstdAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + eqvt_amt: Optional[EquivalentAmount2] = field( + default=None, + metadata={ + "name": "EqvtAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + + +@dataclass +class CreditorReferenceInformation3: + tp: Optional[CreditorReferenceType3] = field( + default=None, + metadata={ + "name": "Tp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + ref: Optional[str] = field( + default=None, + metadata={ + "name": "Ref", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class DocumentLineIdentification1: + tp: Optional[DocumentLineType1] = field( + default=None, + metadata={ + "name": "Tp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + nb: Optional[str] = field( + default=None, + metadata={ + "name": "Nb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 35, + }, + ) + rltd_dt: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "RltdDt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + + +@dataclass +class OrganisationIdentification39: + any_bic: Optional[str] = field( + default=None, + metadata={ + "name": "AnyBIC", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "pattern": r"[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9]{3,3}){0,1}", + }, + ) + lei: Optional[str] = field( + default=None, + metadata={ + "name": "LEI", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "pattern": r"[A-Z0-9]{18,18}[0-9]{2,2}", + }, + ) + othr: List[GenericOrganisationIdentification3] = field( + default_factory=list, + metadata={ + "name": "Othr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + + +@dataclass +class PersonIdentification18: + dt_and_plc_of_birth: Optional[DateAndPlaceOfBirth1] = field( + default=None, + metadata={ + "name": "DtAndPlcOfBirth", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + othr: List[GenericPersonIdentification2] = field( + default_factory=list, + metadata={ + "name": "Othr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + + +@dataclass +class PostalAddress27: + adr_tp: Optional[AddressType3Choice] = field( + default=None, + metadata={ + "name": "AdrTp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + care_of: Optional[str] = field( + default=None, + metadata={ + "name": "CareOf", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 140, + }, + ) + dept: Optional[str] = field( + default=None, + metadata={ + "name": "Dept", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 70, + }, + ) + sub_dept: Optional[str] = field( + default=None, + metadata={ + "name": "SubDept", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 70, + }, + ) + strt_nm: Optional[str] = field( + default=None, + metadata={ + "name": "StrtNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 140, + }, + ) + bldg_nb: Optional[str] = field( + default=None, + metadata={ + "name": "BldgNb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 16, + }, + ) + bldg_nm: Optional[str] = field( + default=None, + metadata={ + "name": "BldgNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 140, + }, + ) + flr: Optional[str] = field( + default=None, + metadata={ + "name": "Flr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 70, + }, + ) + unit_nb: Optional[str] = field( + default=None, + metadata={ + "name": "UnitNb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 16, + }, + ) + pst_bx: Optional[str] = field( + default=None, + metadata={ + "name": "PstBx", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 16, + }, + ) + room: Optional[str] = field( + default=None, + metadata={ + "name": "Room", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 70, + }, + ) + pst_cd: Optional[str] = field( + default=None, + metadata={ + "name": "PstCd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 16, + }, + ) + twn_nm: Optional[str] = field( + default=None, + metadata={ + "name": "TwnNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 140, + }, + ) + twn_lctn_nm: Optional[str] = field( + default=None, + metadata={ + "name": "TwnLctnNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 140, + }, + ) + dstrct_nm: Optional[str] = field( + default=None, + metadata={ + "name": "DstrctNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 140, + }, + ) + ctry_sub_dvsn: Optional[str] = field( + default=None, + metadata={ + "name": "CtrySubDvsn", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 35, + }, + ) + ctry: Optional[str] = field( + default=None, + metadata={ + "name": "Ctry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "pattern": r"[A-Z]{2,2}", + }, + ) + adr_line: List[str] = field( + default_factory=list, + metadata={ + "name": "AdrLine", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "max_occurs": 7, + "min_length": 1, + "max_length": 70, + }, + ) + + +@dataclass +class RemittanceAmount4: + rmt_amt_and_tp: List[DocumentAmount1] = field( + default_factory=list, + metadata={ + "name": "RmtAmtAndTp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + adjstmnt_amt_and_rsn: List[DocumentAdjustment1] = field( + default_factory=list, + metadata={ + "name": "AdjstmntAmtAndRsn", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + + +@dataclass +class TaxRecordDetails3: + prd: Optional[TaxPeriod3] = field( + default=None, + metadata={ + "name": "Prd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "Amt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "required": True, + }, + ) + + +@dataclass +class BranchData5: + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 35, + }, + ) + lei: Optional[str] = field( + default=None, + metadata={ + "name": "LEI", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "pattern": r"[A-Z0-9]{18,18}[0-9]{2,2}", + }, + ) + nm: Optional[str] = field( + default=None, + metadata={ + "name": "Nm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 140, + }, + ) + pstl_adr: Optional[PostalAddress27] = field( + default=None, + metadata={ + "name": "PstlAdr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + + +@dataclass +class CashAccount40: + id: Optional[AccountIdentification4Choice] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + tp: Optional[CashAccountType2Choice] = field( + default=None, + metadata={ + "name": "Tp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + ccy: Optional[str] = field( + default=None, + metadata={ + "name": "Ccy", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "pattern": r"[A-Z]{3,3}", + }, + ) + nm: Optional[str] = field( + default=None, + metadata={ + "name": "Nm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 70, + }, + ) + prxy: Optional[ProxyAccountIdentification1] = field( + default=None, + metadata={ + "name": "Prxy", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + + +@dataclass +class DocumentLineInformation2: + id: List[DocumentLineIdentification1] = field( + default_factory=list, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_occurs": 1, + }, + ) + desc: Optional[str] = field( + default=None, + metadata={ + "name": "Desc", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 2048, + }, + ) + amt: Optional[RemittanceAmount4] = field( + default=None, + metadata={ + "name": "Amt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + + +@dataclass +class FinancialInstitutionIdentification23: + bicfi: Optional[str] = field( + default=None, + metadata={ + "name": "BICFI", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "pattern": r"[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9]{3,3}){0,1}", + }, + ) + clr_sys_mmb_id: Optional[ClearingSystemMemberIdentification2] = field( + default=None, + metadata={ + "name": "ClrSysMmbId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + lei: Optional[str] = field( + default=None, + metadata={ + "name": "LEI", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "pattern": r"[A-Z0-9]{18,18}[0-9]{2,2}", + }, + ) + nm: Optional[str] = field( + default=None, + metadata={ + "name": "Nm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 140, + }, + ) + pstl_adr: Optional[PostalAddress27] = field( + default=None, + metadata={ + "name": "PstlAdr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + othr: Optional[GenericFinancialIdentification1] = field( + default=None, + metadata={ + "name": "Othr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + + +@dataclass +class Party52Choice: + org_id: Optional[OrganisationIdentification39] = field( + default=None, + metadata={ + "name": "OrgId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + prvt_id: Optional[PersonIdentification18] = field( + default=None, + metadata={ + "name": "PrvtId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + + +@dataclass +class TaxAmount3: + rate: Optional[Decimal] = field( + default=None, + metadata={ + "name": "Rate", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "total_digits": 11, + "fraction_digits": 10, + }, + ) + taxbl_base_amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "TaxblBaseAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + ttl_amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "TtlAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + dtls: List[TaxRecordDetails3] = field( + default_factory=list, + metadata={ + "name": "Dtls", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + + +@dataclass +class BranchAndFinancialInstitutionIdentification8: + fin_instn_id: Optional[FinancialInstitutionIdentification23] = field( + default=None, + metadata={ + "name": "FinInstnId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "required": True, + }, + ) + brnch_id: Optional[BranchData5] = field( + default=None, + metadata={ + "name": "BrnchId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + + +@dataclass +class PartyIdentification272: + nm: Optional[str] = field( + default=None, + metadata={ + "name": "Nm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 140, + }, + ) + pstl_adr: Optional[PostalAddress27] = field( + default=None, + metadata={ + "name": "PstlAdr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + id: Optional[Party52Choice] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + ctry_of_res: Optional[str] = field( + default=None, + metadata={ + "name": "CtryOfRes", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "pattern": r"[A-Z]{2,2}", + }, + ) + ctct_dtls: Optional[Contact13] = field( + default=None, + metadata={ + "name": "CtctDtls", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + + +@dataclass +class ReferredDocumentInformation8: + tp: Optional[DocumentType1] = field( + default=None, + metadata={ + "name": "Tp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + nb: Optional[str] = field( + default=None, + metadata={ + "name": "Nb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 35, + }, + ) + rltd_dt: Optional[DateAndType1] = field( + default=None, + metadata={ + "name": "RltdDt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + line_dtls: List[DocumentLineInformation2] = field( + default_factory=list, + metadata={ + "name": "LineDtls", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + + +@dataclass +class TaxRecord3: + tp: Optional[str] = field( + default=None, + metadata={ + "name": "Tp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 35, + }, + ) + ctgy: Optional[str] = field( + default=None, + metadata={ + "name": "Ctgy", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 35, + }, + ) + ctgy_dtls: Optional[str] = field( + default=None, + metadata={ + "name": "CtgyDtls", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 35, + }, + ) + dbtr_sts: Optional[str] = field( + default=None, + metadata={ + "name": "DbtrSts", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 35, + }, + ) + cert_id: Optional[str] = field( + default=None, + metadata={ + "name": "CertId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 35, + }, + ) + frms_cd: Optional[str] = field( + default=None, + metadata={ + "name": "FrmsCd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 35, + }, + ) + prd: Optional[TaxPeriod3] = field( + default=None, + metadata={ + "name": "Prd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + tax_amt: Optional[TaxAmount3] = field( + default=None, + metadata={ + "name": "TaxAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + addtl_inf: Optional[str] = field( + default=None, + metadata={ + "name": "AddtlInf", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 140, + }, + ) + + +@dataclass +class Garnishment4: + tp: Optional[GarnishmentType1] = field( + default=None, + metadata={ + "name": "Tp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "required": True, + }, + ) + grnshee: Optional[PartyIdentification272] = field( + default=None, + metadata={ + "name": "Grnshee", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + grnshmt_admstr: Optional[PartyIdentification272] = field( + default=None, + metadata={ + "name": "GrnshmtAdmstr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + ref_nb: Optional[str] = field( + default=None, + metadata={ + "name": "RefNb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 140, + }, + ) + dt: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "Dt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + rmtd_amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "RmtdAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + fmly_mdcl_insrnc_ind: Optional[bool] = field( + default=None, + metadata={ + "name": "FmlyMdclInsrncInd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + mplyee_termntn_ind: Optional[bool] = field( + default=None, + metadata={ + "name": "MplyeeTermntnInd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + + +@dataclass +class GroupHeader122: + msg_id: Optional[str] = field( + default=None, + metadata={ + "name": "MsgId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "required": True, + "min_length": 1, + "max_length": 35, + }, + ) + cre_dt_tm: Optional[XmlDateTime] = field( + default=None, + metadata={ + "name": "CreDtTm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "required": True, + }, + ) + authstn: List[Authorisation1Choice] = field( + default_factory=list, + metadata={ + "name": "Authstn", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "max_occurs": 2, + }, + ) + cpy_ind: Optional[CopyDuplicate1Code] = field( + default=None, + metadata={ + "name": "CpyInd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + initg_pty: Optional[PartyIdentification272] = field( + default=None, + metadata={ + "name": "InitgPty", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "required": True, + }, + ) + msg_rcpt: Optional[PartyIdentification272] = field( + default=None, + metadata={ + "name": "MsgRcpt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + fwdg_agt: Optional[BranchAndFinancialInstitutionIdentification8] = field( + default=None, + metadata={ + "name": "FwdgAgt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + + +@dataclass +class TaxData1: + cdtr: Optional[TaxParty1] = field( + default=None, + metadata={ + "name": "Cdtr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + dbtr: Optional[TaxParty2] = field( + default=None, + metadata={ + "name": "Dbtr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + ultmt_dbtr: Optional[TaxParty2] = field( + default=None, + metadata={ + "name": "UltmtDbtr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + admstn_zone: Optional[str] = field( + default=None, + metadata={ + "name": "AdmstnZone", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 35, + }, + ) + ref_nb: Optional[str] = field( + default=None, + metadata={ + "name": "RefNb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 140, + }, + ) + mtd: Optional[str] = field( + default=None, + metadata={ + "name": "Mtd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 35, + }, + ) + ttl_taxbl_base_amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "TtlTaxblBaseAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + ttl_tax_amt: Optional[ActiveOrHistoricCurrencyAndAmount] = field( + default=None, + metadata={ + "name": "TtlTaxAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + dt: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "Dt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + seq_nb: Optional[Decimal] = field( + default=None, + metadata={ + "name": "SeqNb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "total_digits": 18, + "fraction_digits": 0, + }, + ) + rcrd: List[TaxRecord3] = field( + default_factory=list, + metadata={ + "name": "Rcrd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + + +@dataclass +class TransactionReferences8: + pmt_inf_id: Optional[str] = field( + default=None, + metadata={ + "name": "PmtInfId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 35, + }, + ) + instr_id: Optional[str] = field( + default=None, + metadata={ + "name": "InstrId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 35, + }, + ) + end_to_end_id: Optional[str] = field( + default=None, + metadata={ + "name": "EndToEndId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "required": True, + "min_length": 1, + "max_length": 35, + }, + ) + tx_id: Optional[str] = field( + default=None, + metadata={ + "name": "TxId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 35, + }, + ) + uetr: Optional[str] = field( + default=None, + metadata={ + "name": "UETR", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "pattern": r"[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}", + }, + ) + mndt_id: Optional[str] = field( + default=None, + metadata={ + "name": "MndtId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 35, + }, + ) + cdtr_schme_id: Optional[PartyIdentification272] = field( + default=None, + metadata={ + "name": "CdtrSchmeId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + + +@dataclass +class OriginalPaymentInformation10: + refs: Optional[TransactionReferences8] = field( + default=None, + metadata={ + "name": "Refs", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "required": True, + }, + ) + pmt_tp_inf: Optional[PaymentTypeInformation26] = field( + default=None, + metadata={ + "name": "PmtTpInf", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + amt: Optional[AmountType3Choice] = field( + default=None, + metadata={ + "name": "Amt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + xchg_rate_inf: Optional[ExchangeRate1] = field( + default=None, + metadata={ + "name": "XchgRateInf", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + reqd_exctn_dt: Optional[DateAndDateTime2Choice] = field( + default=None, + metadata={ + "name": "ReqdExctnDt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + reqd_colltn_dt: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "ReqdColltnDt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + dbtr: Optional[PartyIdentification272] = field( + default=None, + metadata={ + "name": "Dbtr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + dbtr_acct: Optional[CashAccount40] = field( + default=None, + metadata={ + "name": "DbtrAcct", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + dbtr_agt: Optional[BranchAndFinancialInstitutionIdentification8] = field( + default=None, + metadata={ + "name": "DbtrAgt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + cdtr: Optional[PartyIdentification272] = field( + default=None, + metadata={ + "name": "Cdtr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + cdtr_acct: Optional[CashAccount40] = field( + default=None, + metadata={ + "name": "CdtrAcct", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + cdtr_agt: Optional[BranchAndFinancialInstitutionIdentification8] = field( + default=None, + metadata={ + "name": "CdtrAgt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + + +@dataclass +class StructuredRemittanceInformation18: + rfrd_doc_inf: List[ReferredDocumentInformation8] = field( + default_factory=list, + metadata={ + "name": "RfrdDocInf", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + rfrd_doc_amt: Optional[RemittanceAmount4] = field( + default=None, + metadata={ + "name": "RfrdDocAmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + cdtr_ref_inf: Optional[CreditorReferenceInformation3] = field( + default=None, + metadata={ + "name": "CdtrRefInf", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + invcr: Optional[PartyIdentification272] = field( + default=None, + metadata={ + "name": "Invcr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + invcee: Optional[PartyIdentification272] = field( + default=None, + metadata={ + "name": "Invcee", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + tax_rmt: Optional[TaxData1] = field( + default=None, + metadata={ + "name": "TaxRmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + grnshmt_rmt: Optional[Garnishment4] = field( + default=None, + metadata={ + "name": "GrnshmtRmt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + addtl_rmt_inf: List[str] = field( + default_factory=list, + metadata={ + "name": "AddtlRmtInf", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "max_occurs": 3, + "min_length": 1, + "max_length": 140, + }, + ) + + +@dataclass +class RemittanceInformation23: + rmt_id: Optional[str] = field( + default=None, + metadata={ + "name": "RmtId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 35, + }, + ) + ustrd: List[str] = field( + default_factory=list, + metadata={ + "name": "Ustrd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_length": 1, + "max_length": 140, + }, + ) + strd: List[StructuredRemittanceInformation18] = field( + default_factory=list, + metadata={ + "name": "Strd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + orgnl_pmt_inf: Optional[OriginalPaymentInformation10] = field( + default=None, + metadata={ + "name": "OrgnlPmtInf", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "required": True, + }, + ) + + +@dataclass +class RemittanceAdviceV06: + grp_hdr: Optional[GroupHeader122] = field( + default=None, + metadata={ + "name": "GrpHdr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "required": True, + }, + ) + rmt_inf: List[RemittanceInformation23] = field( + default_factory=list, + metadata={ + "name": "RmtInf", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + "min_occurs": 1, + }, + ) + splmtry_data: List[SupplementaryData1] = field( + default_factory=list, + metadata={ + "name": "SplmtryData", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06", + }, + ) + + +@dataclass +class Document: + class Meta: + namespace = "urn:iso:std:iso:20022:tech:xsd:remt.001.001.06" + + rmt_advc: Optional[RemittanceAdviceV06] = field( + default=None, + metadata={ + "name": "RmtAdvc", + "type": "Element", + "required": True, + }, + ) diff --git a/pyiso20022/remt/remt_002_001_01/__init__.py b/pyiso20022/remt/remt_002_001_01/__init__.py new file mode 100644 index 0000000..b469108 --- /dev/null +++ b/pyiso20022/remt/remt_002_001_01/__init__.py @@ -0,0 +1,71 @@ +from pyiso20022.remt.remt_002_001_01.remt_002_001_01 import ( + AddressType2Code, + Authorisation1Choice, + Authorisation1Code, + BranchAndFinancialInstitutionIdentification5, + BranchData2, + ClearingSystemIdentification2Choice, + ClearingSystemMemberIdentification2, + ContactDetails2, + CopyDuplicate1Code, + DateAndPlaceOfBirth, + Document, + FinancialIdentificationSchemeName1Choice, + FinancialInstitutionIdentification8, + GenericFinancialIdentification1, + GenericOrganisationIdentification1, + GenericPersonIdentification1, + GroupHeader62, + NameAndAddress10, + NamePrefix1Code, + OrganisationIdentification8, + OrganisationIdentificationSchemeName1Choice, + Party11Choice, + PartyIdentification43, + PersonIdentification5, + PersonIdentificationSchemeName1Choice, + PostalAddress6, + RemittanceLocation3, + RemittanceLocationAdviceV01, + RemittanceLocationDetails1, + RemittanceLocationMethod2Code, + SupplementaryData1, + SupplementaryDataEnvelope1, + TransactionReferences4, +) + +__all__ = [ + "AddressType2Code", + "Authorisation1Choice", + "Authorisation1Code", + "BranchAndFinancialInstitutionIdentification5", + "BranchData2", + "ClearingSystemIdentification2Choice", + "ClearingSystemMemberIdentification2", + "ContactDetails2", + "CopyDuplicate1Code", + "DateAndPlaceOfBirth", + "Document", + "FinancialIdentificationSchemeName1Choice", + "FinancialInstitutionIdentification8", + "GenericFinancialIdentification1", + "GenericOrganisationIdentification1", + "GenericPersonIdentification1", + "GroupHeader62", + "NameAndAddress10", + "NamePrefix1Code", + "OrganisationIdentification8", + "OrganisationIdentificationSchemeName1Choice", + "Party11Choice", + "PartyIdentification43", + "PersonIdentification5", + "PersonIdentificationSchemeName1Choice", + "PostalAddress6", + "RemittanceLocation3", + "RemittanceLocationAdviceV01", + "RemittanceLocationDetails1", + "RemittanceLocationMethod2Code", + "SupplementaryData1", + "SupplementaryDataEnvelope1", + "TransactionReferences4", +] diff --git a/pyiso20022/remt/remt_002_001_01/remt_002_001_01.py b/pyiso20022/remt/remt_002_001_01/remt_002_001_01.py new file mode 100644 index 0000000..6d0b074 --- /dev/null +++ b/pyiso20022/remt/remt_002_001_01/remt_002_001_01.py @@ -0,0 +1,1003 @@ +from dataclasses import dataclass, field +from enum import Enum +from typing import List, Optional + +from xsdata.models.datatype import XmlDate, XmlDateTime + +__NAMESPACE__ = "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01" + + +class AddressType2Code(Enum): + ADDR = "ADDR" + PBOX = "PBOX" + HOME = "HOME" + BIZZ = "BIZZ" + MLTO = "MLTO" + DLVY = "DLVY" + + +class Authorisation1Code(Enum): + AUTH = "AUTH" + FDET = "FDET" + FSUM = "FSUM" + ILEV = "ILEV" + + +@dataclass +class ClearingSystemIdentification2Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + "min_length": 1, + "max_length": 5, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + + +class CopyDuplicate1Code(Enum): + CODU = "CODU" + COPY = "COPY" + DUPL = "DUPL" + + +@dataclass +class DateAndPlaceOfBirth: + birth_dt: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "BirthDt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + "required": True, + }, + ) + prvc_of_birth: Optional[str] = field( + default=None, + metadata={ + "name": "PrvcOfBirth", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + city_of_birth: Optional[str] = field( + default=None, + metadata={ + "name": "CityOfBirth", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + "required": True, + "min_length": 1, + "max_length": 35, + }, + ) + ctry_of_birth: Optional[str] = field( + default=None, + metadata={ + "name": "CtryOfBirth", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + "required": True, + "pattern": r"[A-Z]{2,2}", + }, + ) + + +@dataclass +class FinancialIdentificationSchemeName1Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + + +class NamePrefix1Code(Enum): + DOCT = "DOCT" + MIST = "MIST" + MISS = "MISS" + MADM = "MADM" + + +@dataclass +class OrganisationIdentificationSchemeName1Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class PersonIdentificationSchemeName1Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + + +class RemittanceLocationMethod2Code(Enum): + FAXI = "FAXI" + EDIC = "EDIC" + URID = "URID" + EMAL = "EMAL" + POST = "POST" + SMSM = "SMSM" + + +@dataclass +class SupplementaryDataEnvelope1: + any_element: Optional[object] = field( + default=None, + metadata={ + "type": "Wildcard", + "namespace": "##any", + }, + ) + + +@dataclass +class Authorisation1Choice: + cd: Optional[Authorisation1Code] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + "min_length": 1, + "max_length": 128, + }, + ) + + +@dataclass +class ClearingSystemMemberIdentification2: + clr_sys_id: Optional[ClearingSystemIdentification2Choice] = field( + default=None, + metadata={ + "name": "ClrSysId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + }, + ) + mmb_id: Optional[str] = field( + default=None, + metadata={ + "name": "MmbId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + "required": True, + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class ContactDetails2: + nm_prfx: Optional[NamePrefix1Code] = field( + default=None, + metadata={ + "name": "NmPrfx", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + }, + ) + nm: Optional[str] = field( + default=None, + metadata={ + "name": "Nm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + "min_length": 1, + "max_length": 140, + }, + ) + phne_nb: Optional[str] = field( + default=None, + metadata={ + "name": "PhneNb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + "pattern": r"\+[0-9]{1,3}-[0-9()+\-]{1,30}", + }, + ) + mob_nb: Optional[str] = field( + default=None, + metadata={ + "name": "MobNb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + "pattern": r"\+[0-9]{1,3}-[0-9()+\-]{1,30}", + }, + ) + fax_nb: Optional[str] = field( + default=None, + metadata={ + "name": "FaxNb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + "pattern": r"\+[0-9]{1,3}-[0-9()+\-]{1,30}", + }, + ) + email_adr: Optional[str] = field( + default=None, + metadata={ + "name": "EmailAdr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + "min_length": 1, + "max_length": 2048, + }, + ) + othr: Optional[str] = field( + default=None, + metadata={ + "name": "Othr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class GenericFinancialIdentification1: + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + "required": True, + "min_length": 1, + "max_length": 35, + }, + ) + schme_nm: Optional[FinancialIdentificationSchemeName1Choice] = field( + default=None, + metadata={ + "name": "SchmeNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + }, + ) + issr: Optional[str] = field( + default=None, + metadata={ + "name": "Issr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class GenericOrganisationIdentification1: + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + "required": True, + "min_length": 1, + "max_length": 35, + }, + ) + schme_nm: Optional[OrganisationIdentificationSchemeName1Choice] = field( + default=None, + metadata={ + "name": "SchmeNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + }, + ) + issr: Optional[str] = field( + default=None, + metadata={ + "name": "Issr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class GenericPersonIdentification1: + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + "required": True, + "min_length": 1, + "max_length": 35, + }, + ) + schme_nm: Optional[PersonIdentificationSchemeName1Choice] = field( + default=None, + metadata={ + "name": "SchmeNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + }, + ) + issr: Optional[str] = field( + default=None, + metadata={ + "name": "Issr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class PostalAddress6: + adr_tp: Optional[AddressType2Code] = field( + default=None, + metadata={ + "name": "AdrTp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + }, + ) + dept: Optional[str] = field( + default=None, + metadata={ + "name": "Dept", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + "min_length": 1, + "max_length": 70, + }, + ) + sub_dept: Optional[str] = field( + default=None, + metadata={ + "name": "SubDept", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + "min_length": 1, + "max_length": 70, + }, + ) + strt_nm: Optional[str] = field( + default=None, + metadata={ + "name": "StrtNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + "min_length": 1, + "max_length": 70, + }, + ) + bldg_nb: Optional[str] = field( + default=None, + metadata={ + "name": "BldgNb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + "min_length": 1, + "max_length": 16, + }, + ) + pst_cd: Optional[str] = field( + default=None, + metadata={ + "name": "PstCd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + "min_length": 1, + "max_length": 16, + }, + ) + twn_nm: Optional[str] = field( + default=None, + metadata={ + "name": "TwnNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + ctry_sub_dvsn: Optional[str] = field( + default=None, + metadata={ + "name": "CtrySubDvsn", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + ctry: Optional[str] = field( + default=None, + metadata={ + "name": "Ctry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + "pattern": r"[A-Z]{2,2}", + }, + ) + adr_line: List[str] = field( + default_factory=list, + metadata={ + "name": "AdrLine", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + "max_occurs": 7, + "min_length": 1, + "max_length": 70, + }, + ) + + +@dataclass +class SupplementaryData1: + plc_and_nm: Optional[str] = field( + default=None, + metadata={ + "name": "PlcAndNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + "min_length": 1, + "max_length": 350, + }, + ) + envlp: Optional[SupplementaryDataEnvelope1] = field( + default=None, + metadata={ + "name": "Envlp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + "required": True, + }, + ) + + +@dataclass +class BranchData2: + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + nm: Optional[str] = field( + default=None, + metadata={ + "name": "Nm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + "min_length": 1, + "max_length": 140, + }, + ) + pstl_adr: Optional[PostalAddress6] = field( + default=None, + metadata={ + "name": "PstlAdr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + }, + ) + + +@dataclass +class FinancialInstitutionIdentification8: + bicfi: Optional[str] = field( + default=None, + metadata={ + "name": "BICFI", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + "pattern": r"[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}", + }, + ) + clr_sys_mmb_id: Optional[ClearingSystemMemberIdentification2] = field( + default=None, + metadata={ + "name": "ClrSysMmbId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + }, + ) + nm: Optional[str] = field( + default=None, + metadata={ + "name": "Nm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + "min_length": 1, + "max_length": 140, + }, + ) + pstl_adr: Optional[PostalAddress6] = field( + default=None, + metadata={ + "name": "PstlAdr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + }, + ) + othr: Optional[GenericFinancialIdentification1] = field( + default=None, + metadata={ + "name": "Othr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + }, + ) + + +@dataclass +class NameAndAddress10: + nm: Optional[str] = field( + default=None, + metadata={ + "name": "Nm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + "required": True, + "min_length": 1, + "max_length": 140, + }, + ) + adr: Optional[PostalAddress6] = field( + default=None, + metadata={ + "name": "Adr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + "required": True, + }, + ) + + +@dataclass +class OrganisationIdentification8: + any_bic: Optional[str] = field( + default=None, + metadata={ + "name": "AnyBIC", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + "pattern": r"[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}", + }, + ) + othr: List[GenericOrganisationIdentification1] = field( + default_factory=list, + metadata={ + "name": "Othr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + }, + ) + + +@dataclass +class PersonIdentification5: + dt_and_plc_of_birth: Optional[DateAndPlaceOfBirth] = field( + default=None, + metadata={ + "name": "DtAndPlcOfBirth", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + }, + ) + othr: List[GenericPersonIdentification1] = field( + default_factory=list, + metadata={ + "name": "Othr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + }, + ) + + +@dataclass +class BranchAndFinancialInstitutionIdentification5: + fin_instn_id: Optional[FinancialInstitutionIdentification8] = field( + default=None, + metadata={ + "name": "FinInstnId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + "required": True, + }, + ) + brnch_id: Optional[BranchData2] = field( + default=None, + metadata={ + "name": "BrnchId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + }, + ) + + +@dataclass +class Party11Choice: + org_id: Optional[OrganisationIdentification8] = field( + default=None, + metadata={ + "name": "OrgId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + }, + ) + prvt_id: Optional[PersonIdentification5] = field( + default=None, + metadata={ + "name": "PrvtId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + }, + ) + + +@dataclass +class RemittanceLocationDetails1: + mtd: Optional[RemittanceLocationMethod2Code] = field( + default=None, + metadata={ + "name": "Mtd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + "required": True, + }, + ) + elctrnc_adr: Optional[str] = field( + default=None, + metadata={ + "name": "ElctrncAdr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + "min_length": 1, + "max_length": 2048, + }, + ) + pstl_adr: Optional[NameAndAddress10] = field( + default=None, + metadata={ + "name": "PstlAdr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + }, + ) + + +@dataclass +class PartyIdentification43: + nm: Optional[str] = field( + default=None, + metadata={ + "name": "Nm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + "min_length": 1, + "max_length": 140, + }, + ) + pstl_adr: Optional[PostalAddress6] = field( + default=None, + metadata={ + "name": "PstlAdr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + }, + ) + id: Optional[Party11Choice] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + }, + ) + ctry_of_res: Optional[str] = field( + default=None, + metadata={ + "name": "CtryOfRes", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + "pattern": r"[A-Z]{2,2}", + }, + ) + ctct_dtls: Optional[ContactDetails2] = field( + default=None, + metadata={ + "name": "CtctDtls", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + }, + ) + + +@dataclass +class GroupHeader62: + msg_id: Optional[str] = field( + default=None, + metadata={ + "name": "MsgId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + "required": True, + "min_length": 1, + "max_length": 35, + }, + ) + cre_dt_tm: Optional[XmlDateTime] = field( + default=None, + metadata={ + "name": "CreDtTm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + "required": True, + }, + ) + authstn: List[Authorisation1Choice] = field( + default_factory=list, + metadata={ + "name": "Authstn", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + "max_occurs": 2, + }, + ) + cpy_ind: Optional[CopyDuplicate1Code] = field( + default=None, + metadata={ + "name": "CpyInd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + }, + ) + initg_pty: Optional[PartyIdentification43] = field( + default=None, + metadata={ + "name": "InitgPty", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + "required": True, + }, + ) + msg_rcpt: Optional[PartyIdentification43] = field( + default=None, + metadata={ + "name": "MsgRcpt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + }, + ) + fwdg_agt: Optional[BranchAndFinancialInstitutionIdentification5] = field( + default=None, + metadata={ + "name": "FwdgAgt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + }, + ) + + +@dataclass +class TransactionReferences4: + pmt_inf_id: Optional[str] = field( + default=None, + metadata={ + "name": "PmtInfId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + instr_id: Optional[str] = field( + default=None, + metadata={ + "name": "InstrId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + end_to_end_id: Optional[str] = field( + default=None, + metadata={ + "name": "EndToEndId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + "required": True, + "min_length": 1, + "max_length": 35, + }, + ) + tx_id: Optional[str] = field( + default=None, + metadata={ + "name": "TxId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + mndt_id: Optional[str] = field( + default=None, + metadata={ + "name": "MndtId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + cdtr_schme_id: Optional[PartyIdentification43] = field( + default=None, + metadata={ + "name": "CdtrSchmeId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + }, + ) + + +@dataclass +class RemittanceLocation3: + rmt_id: Optional[str] = field( + default=None, + metadata={ + "name": "RmtId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + "min_length": 1, + "max_length": 35, + }, + ) + rmt_lctn_dtls: List[RemittanceLocationDetails1] = field( + default_factory=list, + metadata={ + "name": "RmtLctnDtls", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + "min_occurs": 1, + }, + ) + refs: Optional[TransactionReferences4] = field( + default=None, + metadata={ + "name": "Refs", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + "required": True, + }, + ) + + +@dataclass +class RemittanceLocationAdviceV01: + grp_hdr: Optional[GroupHeader62] = field( + default=None, + metadata={ + "name": "GrpHdr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + "required": True, + }, + ) + rmt_lctn: List[RemittanceLocation3] = field( + default_factory=list, + metadata={ + "name": "RmtLctn", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + "min_occurs": 1, + }, + ) + splmtry_data: List[SupplementaryData1] = field( + default_factory=list, + metadata={ + "name": "SplmtryData", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01", + }, + ) + + +@dataclass +class Document: + class Meta: + namespace = "urn:iso:std:iso:20022:tech:xsd:remt.002.001.01" + + rmt_lctn_advc: Optional[RemittanceLocationAdviceV01] = field( + default=None, + metadata={ + "name": "RmtLctnAdvc", + "type": "Element", + "required": True, + }, + ) diff --git a/pyiso20022/remt/remt_002_001_02/__init__.py b/pyiso20022/remt/remt_002_001_02/__init__.py new file mode 100644 index 0000000..ee74123 --- /dev/null +++ b/pyiso20022/remt/remt_002_001_02/__init__.py @@ -0,0 +1,79 @@ +from pyiso20022.remt.remt_002_001_02.remt_002_001_02 import ( + AddressType2Code, + AddressType3Choice, + Authorisation1Choice, + Authorisation1Code, + BranchAndFinancialInstitutionIdentification6, + BranchData3, + ClearingSystemIdentification2Choice, + ClearingSystemMemberIdentification2, + Contact4, + CopyDuplicate1Code, + DateAndPlaceOfBirth1, + Document, + FinancialIdentificationSchemeName1Choice, + FinancialInstitutionIdentification18, + GenericFinancialIdentification1, + GenericIdentification30, + GenericOrganisationIdentification1, + GenericPersonIdentification1, + GroupHeader79, + NameAndAddress16, + NamePrefix2Code, + OrganisationIdentification29, + OrganisationIdentificationSchemeName1Choice, + OtherContact1, + Party38Choice, + PartyIdentification135, + PersonIdentification13, + PersonIdentificationSchemeName1Choice, + PostalAddress24, + PreferredContactMethod1Code, + RemittanceLocation5, + RemittanceLocationAdviceV02, + RemittanceLocationData1, + RemittanceLocationMethod2Code, + SupplementaryData1, + SupplementaryDataEnvelope1, + TransactionReferences5, +) + +__all__ = [ + "AddressType2Code", + "AddressType3Choice", + "Authorisation1Choice", + "Authorisation1Code", + "BranchAndFinancialInstitutionIdentification6", + "BranchData3", + "ClearingSystemIdentification2Choice", + "ClearingSystemMemberIdentification2", + "Contact4", + "CopyDuplicate1Code", + "DateAndPlaceOfBirth1", + "Document", + "FinancialIdentificationSchemeName1Choice", + "FinancialInstitutionIdentification18", + "GenericFinancialIdentification1", + "GenericIdentification30", + "GenericOrganisationIdentification1", + "GenericPersonIdentification1", + "GroupHeader79", + "NameAndAddress16", + "NamePrefix2Code", + "OrganisationIdentification29", + "OrganisationIdentificationSchemeName1Choice", + "OtherContact1", + "Party38Choice", + "PartyIdentification135", + "PersonIdentification13", + "PersonIdentificationSchemeName1Choice", + "PostalAddress24", + "PreferredContactMethod1Code", + "RemittanceLocation5", + "RemittanceLocationAdviceV02", + "RemittanceLocationData1", + "RemittanceLocationMethod2Code", + "SupplementaryData1", + "SupplementaryDataEnvelope1", + "TransactionReferences5", +] diff --git a/pyiso20022/remt/remt_002_001_02/remt_002_001_02.py b/pyiso20022/remt/remt_002_001_02/remt_002_001_02.py new file mode 100644 index 0000000..fcb028a --- /dev/null +++ b/pyiso20022/remt/remt_002_001_02/remt_002_001_02.py @@ -0,0 +1,1234 @@ +from dataclasses import dataclass, field +from enum import Enum +from typing import List, Optional + +from xsdata.models.datatype import XmlDate, XmlDateTime + +__NAMESPACE__ = "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02" + + +class AddressType2Code(Enum): + ADDR = "ADDR" + PBOX = "PBOX" + HOME = "HOME" + BIZZ = "BIZZ" + MLTO = "MLTO" + DLVY = "DLVY" + + +class Authorisation1Code(Enum): + AUTH = "AUTH" + FDET = "FDET" + FSUM = "FSUM" + ILEV = "ILEV" + + +@dataclass +class ClearingSystemIdentification2Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "min_length": 1, + "max_length": 5, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + + +class CopyDuplicate1Code(Enum): + CODU = "CODU" + COPY = "COPY" + DUPL = "DUPL" + + +@dataclass +class DateAndPlaceOfBirth1: + birth_dt: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "BirthDt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "required": True, + }, + ) + prvc_of_birth: Optional[str] = field( + default=None, + metadata={ + "name": "PrvcOfBirth", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + city_of_birth: Optional[str] = field( + default=None, + metadata={ + "name": "CityOfBirth", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "required": True, + "min_length": 1, + "max_length": 35, + }, + ) + ctry_of_birth: Optional[str] = field( + default=None, + metadata={ + "name": "CtryOfBirth", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "required": True, + "pattern": r"[A-Z]{2,2}", + }, + ) + + +@dataclass +class FinancialIdentificationSchemeName1Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class GenericIdentification30: + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "required": True, + "pattern": r"[a-zA-Z0-9]{4}", + }, + ) + issr: Optional[str] = field( + default=None, + metadata={ + "name": "Issr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "required": True, + "min_length": 1, + "max_length": 35, + }, + ) + schme_nm: Optional[str] = field( + default=None, + metadata={ + "name": "SchmeNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + + +class NamePrefix2Code(Enum): + DOCT = "DOCT" + MADM = "MADM" + MISS = "MISS" + MIST = "MIST" + MIKS = "MIKS" + + +@dataclass +class OrganisationIdentificationSchemeName1Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class OtherContact1: + chanl_tp: Optional[str] = field( + default=None, + metadata={ + "name": "ChanlTp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "required": True, + "min_length": 1, + "max_length": 4, + }, + ) + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "min_length": 1, + "max_length": 128, + }, + ) + + +@dataclass +class PersonIdentificationSchemeName1Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + + +class PreferredContactMethod1Code(Enum): + LETT = "LETT" + MAIL = "MAIL" + PHON = "PHON" + FAXX = "FAXX" + CELL = "CELL" + + +class RemittanceLocationMethod2Code(Enum): + FAXI = "FAXI" + EDIC = "EDIC" + URID = "URID" + EMAL = "EMAL" + POST = "POST" + SMSM = "SMSM" + + +@dataclass +class SupplementaryDataEnvelope1: + any_element: Optional[object] = field( + default=None, + metadata={ + "type": "Wildcard", + "namespace": "##any", + }, + ) + + +@dataclass +class AddressType3Choice: + cd: Optional[AddressType2Code] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + }, + ) + prtry: Optional[GenericIdentification30] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + }, + ) + + +@dataclass +class Authorisation1Choice: + cd: Optional[Authorisation1Code] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "min_length": 1, + "max_length": 128, + }, + ) + + +@dataclass +class ClearingSystemMemberIdentification2: + clr_sys_id: Optional[ClearingSystemIdentification2Choice] = field( + default=None, + metadata={ + "name": "ClrSysId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + }, + ) + mmb_id: Optional[str] = field( + default=None, + metadata={ + "name": "MmbId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "required": True, + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class Contact4: + nm_prfx: Optional[NamePrefix2Code] = field( + default=None, + metadata={ + "name": "NmPrfx", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + }, + ) + nm: Optional[str] = field( + default=None, + metadata={ + "name": "Nm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "min_length": 1, + "max_length": 140, + }, + ) + phne_nb: Optional[str] = field( + default=None, + metadata={ + "name": "PhneNb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "pattern": r"\+[0-9]{1,3}-[0-9()+\-]{1,30}", + }, + ) + mob_nb: Optional[str] = field( + default=None, + metadata={ + "name": "MobNb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "pattern": r"\+[0-9]{1,3}-[0-9()+\-]{1,30}", + }, + ) + fax_nb: Optional[str] = field( + default=None, + metadata={ + "name": "FaxNb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "pattern": r"\+[0-9]{1,3}-[0-9()+\-]{1,30}", + }, + ) + email_adr: Optional[str] = field( + default=None, + metadata={ + "name": "EmailAdr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "min_length": 1, + "max_length": 2048, + }, + ) + email_purp: Optional[str] = field( + default=None, + metadata={ + "name": "EmailPurp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + job_titl: Optional[str] = field( + default=None, + metadata={ + "name": "JobTitl", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + rspnsblty: Optional[str] = field( + default=None, + metadata={ + "name": "Rspnsblty", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + dept: Optional[str] = field( + default=None, + metadata={ + "name": "Dept", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "min_length": 1, + "max_length": 70, + }, + ) + othr: List[OtherContact1] = field( + default_factory=list, + metadata={ + "name": "Othr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + }, + ) + prefrd_mtd: Optional[PreferredContactMethod1Code] = field( + default=None, + metadata={ + "name": "PrefrdMtd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + }, + ) + + +@dataclass +class GenericFinancialIdentification1: + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "required": True, + "min_length": 1, + "max_length": 35, + }, + ) + schme_nm: Optional[FinancialIdentificationSchemeName1Choice] = field( + default=None, + metadata={ + "name": "SchmeNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + }, + ) + issr: Optional[str] = field( + default=None, + metadata={ + "name": "Issr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class GenericOrganisationIdentification1: + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "required": True, + "min_length": 1, + "max_length": 35, + }, + ) + schme_nm: Optional[OrganisationIdentificationSchemeName1Choice] = field( + default=None, + metadata={ + "name": "SchmeNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + }, + ) + issr: Optional[str] = field( + default=None, + metadata={ + "name": "Issr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class GenericPersonIdentification1: + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "required": True, + "min_length": 1, + "max_length": 35, + }, + ) + schme_nm: Optional[PersonIdentificationSchemeName1Choice] = field( + default=None, + metadata={ + "name": "SchmeNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + }, + ) + issr: Optional[str] = field( + default=None, + metadata={ + "name": "Issr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class SupplementaryData1: + plc_and_nm: Optional[str] = field( + default=None, + metadata={ + "name": "PlcAndNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "min_length": 1, + "max_length": 350, + }, + ) + envlp: Optional[SupplementaryDataEnvelope1] = field( + default=None, + metadata={ + "name": "Envlp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "required": True, + }, + ) + + +@dataclass +class OrganisationIdentification29: + any_bic: Optional[str] = field( + default=None, + metadata={ + "name": "AnyBIC", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "pattern": r"[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9]{3,3}){0,1}", + }, + ) + lei: Optional[str] = field( + default=None, + metadata={ + "name": "LEI", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "pattern": r"[A-Z0-9]{18,18}[0-9]{2,2}", + }, + ) + othr: List[GenericOrganisationIdentification1] = field( + default_factory=list, + metadata={ + "name": "Othr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + }, + ) + + +@dataclass +class PersonIdentification13: + dt_and_plc_of_birth: Optional[DateAndPlaceOfBirth1] = field( + default=None, + metadata={ + "name": "DtAndPlcOfBirth", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + }, + ) + othr: List[GenericPersonIdentification1] = field( + default_factory=list, + metadata={ + "name": "Othr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + }, + ) + + +@dataclass +class PostalAddress24: + adr_tp: Optional[AddressType3Choice] = field( + default=None, + metadata={ + "name": "AdrTp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + }, + ) + dept: Optional[str] = field( + default=None, + metadata={ + "name": "Dept", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "min_length": 1, + "max_length": 70, + }, + ) + sub_dept: Optional[str] = field( + default=None, + metadata={ + "name": "SubDept", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "min_length": 1, + "max_length": 70, + }, + ) + strt_nm: Optional[str] = field( + default=None, + metadata={ + "name": "StrtNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "min_length": 1, + "max_length": 70, + }, + ) + bldg_nb: Optional[str] = field( + default=None, + metadata={ + "name": "BldgNb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "min_length": 1, + "max_length": 16, + }, + ) + bldg_nm: Optional[str] = field( + default=None, + metadata={ + "name": "BldgNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + flr: Optional[str] = field( + default=None, + metadata={ + "name": "Flr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "min_length": 1, + "max_length": 70, + }, + ) + pst_bx: Optional[str] = field( + default=None, + metadata={ + "name": "PstBx", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "min_length": 1, + "max_length": 16, + }, + ) + room: Optional[str] = field( + default=None, + metadata={ + "name": "Room", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "min_length": 1, + "max_length": 70, + }, + ) + pst_cd: Optional[str] = field( + default=None, + metadata={ + "name": "PstCd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "min_length": 1, + "max_length": 16, + }, + ) + twn_nm: Optional[str] = field( + default=None, + metadata={ + "name": "TwnNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + twn_lctn_nm: Optional[str] = field( + default=None, + metadata={ + "name": "TwnLctnNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + dstrct_nm: Optional[str] = field( + default=None, + metadata={ + "name": "DstrctNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + ctry_sub_dvsn: Optional[str] = field( + default=None, + metadata={ + "name": "CtrySubDvsn", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + ctry: Optional[str] = field( + default=None, + metadata={ + "name": "Ctry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "pattern": r"[A-Z]{2,2}", + }, + ) + adr_line: List[str] = field( + default_factory=list, + metadata={ + "name": "AdrLine", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "max_occurs": 7, + "min_length": 1, + "max_length": 70, + }, + ) + + +@dataclass +class BranchData3: + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + lei: Optional[str] = field( + default=None, + metadata={ + "name": "LEI", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "pattern": r"[A-Z0-9]{18,18}[0-9]{2,2}", + }, + ) + nm: Optional[str] = field( + default=None, + metadata={ + "name": "Nm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "min_length": 1, + "max_length": 140, + }, + ) + pstl_adr: Optional[PostalAddress24] = field( + default=None, + metadata={ + "name": "PstlAdr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + }, + ) + + +@dataclass +class FinancialInstitutionIdentification18: + bicfi: Optional[str] = field( + default=None, + metadata={ + "name": "BICFI", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "pattern": r"[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9]{3,3}){0,1}", + }, + ) + clr_sys_mmb_id: Optional[ClearingSystemMemberIdentification2] = field( + default=None, + metadata={ + "name": "ClrSysMmbId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + }, + ) + lei: Optional[str] = field( + default=None, + metadata={ + "name": "LEI", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "pattern": r"[A-Z0-9]{18,18}[0-9]{2,2}", + }, + ) + nm: Optional[str] = field( + default=None, + metadata={ + "name": "Nm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "min_length": 1, + "max_length": 140, + }, + ) + pstl_adr: Optional[PostalAddress24] = field( + default=None, + metadata={ + "name": "PstlAdr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + }, + ) + othr: Optional[GenericFinancialIdentification1] = field( + default=None, + metadata={ + "name": "Othr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + }, + ) + + +@dataclass +class NameAndAddress16: + nm: Optional[str] = field( + default=None, + metadata={ + "name": "Nm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "required": True, + "min_length": 1, + "max_length": 140, + }, + ) + adr: Optional[PostalAddress24] = field( + default=None, + metadata={ + "name": "Adr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "required": True, + }, + ) + + +@dataclass +class Party38Choice: + org_id: Optional[OrganisationIdentification29] = field( + default=None, + metadata={ + "name": "OrgId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + }, + ) + prvt_id: Optional[PersonIdentification13] = field( + default=None, + metadata={ + "name": "PrvtId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + }, + ) + + +@dataclass +class BranchAndFinancialInstitutionIdentification6: + fin_instn_id: Optional[FinancialInstitutionIdentification18] = field( + default=None, + metadata={ + "name": "FinInstnId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "required": True, + }, + ) + brnch_id: Optional[BranchData3] = field( + default=None, + metadata={ + "name": "BrnchId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + }, + ) + + +@dataclass +class PartyIdentification135: + nm: Optional[str] = field( + default=None, + metadata={ + "name": "Nm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "min_length": 1, + "max_length": 140, + }, + ) + pstl_adr: Optional[PostalAddress24] = field( + default=None, + metadata={ + "name": "PstlAdr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + }, + ) + id: Optional[Party38Choice] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + }, + ) + ctry_of_res: Optional[str] = field( + default=None, + metadata={ + "name": "CtryOfRes", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "pattern": r"[A-Z]{2,2}", + }, + ) + ctct_dtls: Optional[Contact4] = field( + default=None, + metadata={ + "name": "CtctDtls", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + }, + ) + + +@dataclass +class RemittanceLocationData1: + mtd: Optional[RemittanceLocationMethod2Code] = field( + default=None, + metadata={ + "name": "Mtd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "required": True, + }, + ) + elctrnc_adr: Optional[str] = field( + default=None, + metadata={ + "name": "ElctrncAdr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "min_length": 1, + "max_length": 2048, + }, + ) + pstl_adr: Optional[NameAndAddress16] = field( + default=None, + metadata={ + "name": "PstlAdr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + }, + ) + + +@dataclass +class GroupHeader79: + msg_id: Optional[str] = field( + default=None, + metadata={ + "name": "MsgId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "required": True, + "min_length": 1, + "max_length": 35, + }, + ) + cre_dt_tm: Optional[XmlDateTime] = field( + default=None, + metadata={ + "name": "CreDtTm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "required": True, + }, + ) + authstn: List[Authorisation1Choice] = field( + default_factory=list, + metadata={ + "name": "Authstn", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "max_occurs": 2, + }, + ) + cpy_ind: Optional[CopyDuplicate1Code] = field( + default=None, + metadata={ + "name": "CpyInd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + }, + ) + initg_pty: Optional[PartyIdentification135] = field( + default=None, + metadata={ + "name": "InitgPty", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "required": True, + }, + ) + msg_rcpt: Optional[PartyIdentification135] = field( + default=None, + metadata={ + "name": "MsgRcpt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + }, + ) + fwdg_agt: Optional[BranchAndFinancialInstitutionIdentification6] = field( + default=None, + metadata={ + "name": "FwdgAgt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + }, + ) + + +@dataclass +class TransactionReferences5: + pmt_inf_id: Optional[str] = field( + default=None, + metadata={ + "name": "PmtInfId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + instr_id: Optional[str] = field( + default=None, + metadata={ + "name": "InstrId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + end_to_end_id: Optional[str] = field( + default=None, + metadata={ + "name": "EndToEndId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "required": True, + "min_length": 1, + "max_length": 35, + }, + ) + tx_id: Optional[str] = field( + default=None, + metadata={ + "name": "TxId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + uetr: Optional[str] = field( + default=None, + metadata={ + "name": "UETR", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "pattern": r"[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}", + }, + ) + mndt_id: Optional[str] = field( + default=None, + metadata={ + "name": "MndtId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + cdtr_schme_id: Optional[PartyIdentification135] = field( + default=None, + metadata={ + "name": "CdtrSchmeId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + }, + ) + + +@dataclass +class RemittanceLocation5: + rmt_id: Optional[str] = field( + default=None, + metadata={ + "name": "RmtId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "min_length": 1, + "max_length": 35, + }, + ) + rmt_lctn_dtls: List[RemittanceLocationData1] = field( + default_factory=list, + metadata={ + "name": "RmtLctnDtls", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "min_occurs": 1, + }, + ) + refs: Optional[TransactionReferences5] = field( + default=None, + metadata={ + "name": "Refs", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "required": True, + }, + ) + + +@dataclass +class RemittanceLocationAdviceV02: + grp_hdr: Optional[GroupHeader79] = field( + default=None, + metadata={ + "name": "GrpHdr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "required": True, + }, + ) + rmt_lctn: List[RemittanceLocation5] = field( + default_factory=list, + metadata={ + "name": "RmtLctn", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + "min_occurs": 1, + }, + ) + splmtry_data: List[SupplementaryData1] = field( + default_factory=list, + metadata={ + "name": "SplmtryData", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02", + }, + ) + + +@dataclass +class Document: + class Meta: + namespace = "urn:iso:std:iso:20022:tech:xsd:remt.002.001.02" + + rmt_lctn_advc: Optional[RemittanceLocationAdviceV02] = field( + default=None, + metadata={ + "name": "RmtLctnAdvc", + "type": "Element", + "required": True, + }, + ) diff --git a/pyiso20022/remt/remt_002_001_03/__init__.py b/pyiso20022/remt/remt_002_001_03/__init__.py new file mode 100644 index 0000000..aaa7137 --- /dev/null +++ b/pyiso20022/remt/remt_002_001_03/__init__.py @@ -0,0 +1,79 @@ +from pyiso20022.remt.remt_002_001_03.remt_002_001_03 import ( + AddressType2Code, + AddressType3Choice, + Authorisation1Choice, + Authorisation1Code, + BranchAndFinancialInstitutionIdentification8, + BranchData5, + ClearingSystemIdentification2Choice, + ClearingSystemMemberIdentification2, + Contact13, + CopyDuplicate1Code, + DateAndPlaceOfBirth1, + Document, + FinancialIdentificationSchemeName1Choice, + FinancialInstitutionIdentification23, + GenericFinancialIdentification1, + GenericIdentification30, + GenericOrganisationIdentification3, + GenericPersonIdentification2, + GroupHeader122, + NameAndAddress18, + NamePrefix2Code, + OrganisationIdentification39, + OrganisationIdentificationSchemeName1Choice, + OtherContact1, + Party52Choice, + PartyIdentification272, + PersonIdentification18, + PersonIdentificationSchemeName1Choice, + PostalAddress27, + PreferredContactMethod2Code, + RemittanceLocation10, + RemittanceLocationAdviceV03, + RemittanceLocationData2, + RemittanceLocationMethod2Code, + SupplementaryData1, + SupplementaryDataEnvelope1, + TransactionReferences8, +) + +__all__ = [ + "AddressType2Code", + "AddressType3Choice", + "Authorisation1Choice", + "Authorisation1Code", + "BranchAndFinancialInstitutionIdentification8", + "BranchData5", + "ClearingSystemIdentification2Choice", + "ClearingSystemMemberIdentification2", + "Contact13", + "CopyDuplicate1Code", + "DateAndPlaceOfBirth1", + "Document", + "FinancialIdentificationSchemeName1Choice", + "FinancialInstitutionIdentification23", + "GenericFinancialIdentification1", + "GenericIdentification30", + "GenericOrganisationIdentification3", + "GenericPersonIdentification2", + "GroupHeader122", + "NameAndAddress18", + "NamePrefix2Code", + "OrganisationIdentification39", + "OrganisationIdentificationSchemeName1Choice", + "OtherContact1", + "Party52Choice", + "PartyIdentification272", + "PersonIdentification18", + "PersonIdentificationSchemeName1Choice", + "PostalAddress27", + "PreferredContactMethod2Code", + "RemittanceLocation10", + "RemittanceLocationAdviceV03", + "RemittanceLocationData2", + "RemittanceLocationMethod2Code", + "SupplementaryData1", + "SupplementaryDataEnvelope1", + "TransactionReferences8", +] diff --git a/pyiso20022/remt/remt_002_001_03/remt_002_001_03.py b/pyiso20022/remt/remt_002_001_03/remt_002_001_03.py new file mode 100644 index 0000000..69fe361 --- /dev/null +++ b/pyiso20022/remt/remt_002_001_03/remt_002_001_03.py @@ -0,0 +1,1265 @@ +from dataclasses import dataclass, field +from enum import Enum +from typing import List, Optional + +from xsdata.models.datatype import XmlDate, XmlDateTime + +__NAMESPACE__ = "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03" + + +class AddressType2Code(Enum): + ADDR = "ADDR" + PBOX = "PBOX" + HOME = "HOME" + BIZZ = "BIZZ" + MLTO = "MLTO" + DLVY = "DLVY" + + +class Authorisation1Code(Enum): + AUTH = "AUTH" + FDET = "FDET" + FSUM = "FSUM" + ILEV = "ILEV" + + +@dataclass +class ClearingSystemIdentification2Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "min_length": 1, + "max_length": 5, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + + +class CopyDuplicate1Code(Enum): + CODU = "CODU" + COPY = "COPY" + DUPL = "DUPL" + + +@dataclass +class DateAndPlaceOfBirth1: + birth_dt: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "BirthDt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "required": True, + }, + ) + prvc_of_birth: Optional[str] = field( + default=None, + metadata={ + "name": "PrvcOfBirth", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + city_of_birth: Optional[str] = field( + default=None, + metadata={ + "name": "CityOfBirth", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "required": True, + "min_length": 1, + "max_length": 35, + }, + ) + ctry_of_birth: Optional[str] = field( + default=None, + metadata={ + "name": "CtryOfBirth", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "required": True, + "pattern": r"[A-Z]{2,2}", + }, + ) + + +@dataclass +class FinancialIdentificationSchemeName1Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class GenericIdentification30: + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "required": True, + "pattern": r"[a-zA-Z0-9]{4}", + }, + ) + issr: Optional[str] = field( + default=None, + metadata={ + "name": "Issr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "required": True, + "min_length": 1, + "max_length": 35, + }, + ) + schme_nm: Optional[str] = field( + default=None, + metadata={ + "name": "SchmeNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + + +class NamePrefix2Code(Enum): + DOCT = "DOCT" + MADM = "MADM" + MISS = "MISS" + MIST = "MIST" + MIKS = "MIKS" + + +@dataclass +class OrganisationIdentificationSchemeName1Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class OtherContact1: + chanl_tp: Optional[str] = field( + default=None, + metadata={ + "name": "ChanlTp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "required": True, + "min_length": 1, + "max_length": 4, + }, + ) + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "min_length": 1, + "max_length": 128, + }, + ) + + +@dataclass +class PersonIdentificationSchemeName1Choice: + cd: Optional[str] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "min_length": 1, + "max_length": 4, + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + + +class PreferredContactMethod2Code(Enum): + MAIL = "MAIL" + FAXX = "FAXX" + LETT = "LETT" + CELL = "CELL" + ONLI = "ONLI" + PHON = "PHON" + + +class RemittanceLocationMethod2Code(Enum): + FAXI = "FAXI" + EDIC = "EDIC" + URID = "URID" + EMAL = "EMAL" + POST = "POST" + SMSM = "SMSM" + + +@dataclass +class SupplementaryDataEnvelope1: + any_element: Optional[object] = field( + default=None, + metadata={ + "type": "Wildcard", + "namespace": "##any", + }, + ) + + +@dataclass +class AddressType3Choice: + cd: Optional[AddressType2Code] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + }, + ) + prtry: Optional[GenericIdentification30] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + }, + ) + + +@dataclass +class Authorisation1Choice: + cd: Optional[Authorisation1Code] = field( + default=None, + metadata={ + "name": "Cd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + }, + ) + prtry: Optional[str] = field( + default=None, + metadata={ + "name": "Prtry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "min_length": 1, + "max_length": 128, + }, + ) + + +@dataclass +class ClearingSystemMemberIdentification2: + clr_sys_id: Optional[ClearingSystemIdentification2Choice] = field( + default=None, + metadata={ + "name": "ClrSysId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + }, + ) + mmb_id: Optional[str] = field( + default=None, + metadata={ + "name": "MmbId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "required": True, + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class Contact13: + nm_prfx: Optional[NamePrefix2Code] = field( + default=None, + metadata={ + "name": "NmPrfx", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + }, + ) + nm: Optional[str] = field( + default=None, + metadata={ + "name": "Nm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "min_length": 1, + "max_length": 140, + }, + ) + phne_nb: Optional[str] = field( + default=None, + metadata={ + "name": "PhneNb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "pattern": r"\+[0-9]{1,3}-[0-9()+\-]{1,30}", + }, + ) + mob_nb: Optional[str] = field( + default=None, + metadata={ + "name": "MobNb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "pattern": r"\+[0-9]{1,3}-[0-9()+\-]{1,30}", + }, + ) + fax_nb: Optional[str] = field( + default=None, + metadata={ + "name": "FaxNb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "pattern": r"\+[0-9]{1,3}-[0-9()+\-]{1,30}", + }, + ) + urladr: Optional[str] = field( + default=None, + metadata={ + "name": "URLAdr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "min_length": 1, + "max_length": 2048, + }, + ) + email_adr: Optional[str] = field( + default=None, + metadata={ + "name": "EmailAdr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "min_length": 1, + "max_length": 256, + }, + ) + email_purp: Optional[str] = field( + default=None, + metadata={ + "name": "EmailPurp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + job_titl: Optional[str] = field( + default=None, + metadata={ + "name": "JobTitl", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + rspnsblty: Optional[str] = field( + default=None, + metadata={ + "name": "Rspnsblty", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + dept: Optional[str] = field( + default=None, + metadata={ + "name": "Dept", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "min_length": 1, + "max_length": 70, + }, + ) + othr: List[OtherContact1] = field( + default_factory=list, + metadata={ + "name": "Othr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + }, + ) + prefrd_mtd: Optional[PreferredContactMethod2Code] = field( + default=None, + metadata={ + "name": "PrefrdMtd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + }, + ) + + +@dataclass +class GenericFinancialIdentification1: + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "required": True, + "min_length": 1, + "max_length": 35, + }, + ) + schme_nm: Optional[FinancialIdentificationSchemeName1Choice] = field( + default=None, + metadata={ + "name": "SchmeNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + }, + ) + issr: Optional[str] = field( + default=None, + metadata={ + "name": "Issr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class GenericOrganisationIdentification3: + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "required": True, + "min_length": 1, + "max_length": 256, + }, + ) + schme_nm: Optional[OrganisationIdentificationSchemeName1Choice] = field( + default=None, + metadata={ + "name": "SchmeNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + }, + ) + issr: Optional[str] = field( + default=None, + metadata={ + "name": "Issr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class GenericPersonIdentification2: + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "required": True, + "min_length": 1, + "max_length": 256, + }, + ) + schme_nm: Optional[PersonIdentificationSchemeName1Choice] = field( + default=None, + metadata={ + "name": "SchmeNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + }, + ) + issr: Optional[str] = field( + default=None, + metadata={ + "name": "Issr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + + +@dataclass +class SupplementaryData1: + plc_and_nm: Optional[str] = field( + default=None, + metadata={ + "name": "PlcAndNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "min_length": 1, + "max_length": 350, + }, + ) + envlp: Optional[SupplementaryDataEnvelope1] = field( + default=None, + metadata={ + "name": "Envlp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "required": True, + }, + ) + + +@dataclass +class OrganisationIdentification39: + any_bic: Optional[str] = field( + default=None, + metadata={ + "name": "AnyBIC", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "pattern": r"[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9]{3,3}){0,1}", + }, + ) + lei: Optional[str] = field( + default=None, + metadata={ + "name": "LEI", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "pattern": r"[A-Z0-9]{18,18}[0-9]{2,2}", + }, + ) + othr: List[GenericOrganisationIdentification3] = field( + default_factory=list, + metadata={ + "name": "Othr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + }, + ) + + +@dataclass +class PersonIdentification18: + dt_and_plc_of_birth: Optional[DateAndPlaceOfBirth1] = field( + default=None, + metadata={ + "name": "DtAndPlcOfBirth", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + }, + ) + othr: List[GenericPersonIdentification2] = field( + default_factory=list, + metadata={ + "name": "Othr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + }, + ) + + +@dataclass +class PostalAddress27: + adr_tp: Optional[AddressType3Choice] = field( + default=None, + metadata={ + "name": "AdrTp", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + }, + ) + care_of: Optional[str] = field( + default=None, + metadata={ + "name": "CareOf", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "min_length": 1, + "max_length": 140, + }, + ) + dept: Optional[str] = field( + default=None, + metadata={ + "name": "Dept", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "min_length": 1, + "max_length": 70, + }, + ) + sub_dept: Optional[str] = field( + default=None, + metadata={ + "name": "SubDept", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "min_length": 1, + "max_length": 70, + }, + ) + strt_nm: Optional[str] = field( + default=None, + metadata={ + "name": "StrtNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "min_length": 1, + "max_length": 140, + }, + ) + bldg_nb: Optional[str] = field( + default=None, + metadata={ + "name": "BldgNb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "min_length": 1, + "max_length": 16, + }, + ) + bldg_nm: Optional[str] = field( + default=None, + metadata={ + "name": "BldgNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "min_length": 1, + "max_length": 140, + }, + ) + flr: Optional[str] = field( + default=None, + metadata={ + "name": "Flr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "min_length": 1, + "max_length": 70, + }, + ) + unit_nb: Optional[str] = field( + default=None, + metadata={ + "name": "UnitNb", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "min_length": 1, + "max_length": 16, + }, + ) + pst_bx: Optional[str] = field( + default=None, + metadata={ + "name": "PstBx", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "min_length": 1, + "max_length": 16, + }, + ) + room: Optional[str] = field( + default=None, + metadata={ + "name": "Room", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "min_length": 1, + "max_length": 70, + }, + ) + pst_cd: Optional[str] = field( + default=None, + metadata={ + "name": "PstCd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "min_length": 1, + "max_length": 16, + }, + ) + twn_nm: Optional[str] = field( + default=None, + metadata={ + "name": "TwnNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "min_length": 1, + "max_length": 140, + }, + ) + twn_lctn_nm: Optional[str] = field( + default=None, + metadata={ + "name": "TwnLctnNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "min_length": 1, + "max_length": 140, + }, + ) + dstrct_nm: Optional[str] = field( + default=None, + metadata={ + "name": "DstrctNm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "min_length": 1, + "max_length": 140, + }, + ) + ctry_sub_dvsn: Optional[str] = field( + default=None, + metadata={ + "name": "CtrySubDvsn", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + ctry: Optional[str] = field( + default=None, + metadata={ + "name": "Ctry", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "pattern": r"[A-Z]{2,2}", + }, + ) + adr_line: List[str] = field( + default_factory=list, + metadata={ + "name": "AdrLine", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "max_occurs": 7, + "min_length": 1, + "max_length": 70, + }, + ) + + +@dataclass +class BranchData5: + id: Optional[str] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + lei: Optional[str] = field( + default=None, + metadata={ + "name": "LEI", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "pattern": r"[A-Z0-9]{18,18}[0-9]{2,2}", + }, + ) + nm: Optional[str] = field( + default=None, + metadata={ + "name": "Nm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "min_length": 1, + "max_length": 140, + }, + ) + pstl_adr: Optional[PostalAddress27] = field( + default=None, + metadata={ + "name": "PstlAdr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + }, + ) + + +@dataclass +class FinancialInstitutionIdentification23: + bicfi: Optional[str] = field( + default=None, + metadata={ + "name": "BICFI", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "pattern": r"[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9]{3,3}){0,1}", + }, + ) + clr_sys_mmb_id: Optional[ClearingSystemMemberIdentification2] = field( + default=None, + metadata={ + "name": "ClrSysMmbId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + }, + ) + lei: Optional[str] = field( + default=None, + metadata={ + "name": "LEI", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "pattern": r"[A-Z0-9]{18,18}[0-9]{2,2}", + }, + ) + nm: Optional[str] = field( + default=None, + metadata={ + "name": "Nm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "min_length": 1, + "max_length": 140, + }, + ) + pstl_adr: Optional[PostalAddress27] = field( + default=None, + metadata={ + "name": "PstlAdr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + }, + ) + othr: Optional[GenericFinancialIdentification1] = field( + default=None, + metadata={ + "name": "Othr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + }, + ) + + +@dataclass +class NameAndAddress18: + nm: Optional[str] = field( + default=None, + metadata={ + "name": "Nm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "required": True, + "min_length": 1, + "max_length": 140, + }, + ) + adr: Optional[PostalAddress27] = field( + default=None, + metadata={ + "name": "Adr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "required": True, + }, + ) + + +@dataclass +class Party52Choice: + org_id: Optional[OrganisationIdentification39] = field( + default=None, + metadata={ + "name": "OrgId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + }, + ) + prvt_id: Optional[PersonIdentification18] = field( + default=None, + metadata={ + "name": "PrvtId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + }, + ) + + +@dataclass +class BranchAndFinancialInstitutionIdentification8: + fin_instn_id: Optional[FinancialInstitutionIdentification23] = field( + default=None, + metadata={ + "name": "FinInstnId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "required": True, + }, + ) + brnch_id: Optional[BranchData5] = field( + default=None, + metadata={ + "name": "BrnchId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + }, + ) + + +@dataclass +class PartyIdentification272: + nm: Optional[str] = field( + default=None, + metadata={ + "name": "Nm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "min_length": 1, + "max_length": 140, + }, + ) + pstl_adr: Optional[PostalAddress27] = field( + default=None, + metadata={ + "name": "PstlAdr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + }, + ) + id: Optional[Party52Choice] = field( + default=None, + metadata={ + "name": "Id", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + }, + ) + ctry_of_res: Optional[str] = field( + default=None, + metadata={ + "name": "CtryOfRes", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "pattern": r"[A-Z]{2,2}", + }, + ) + ctct_dtls: Optional[Contact13] = field( + default=None, + metadata={ + "name": "CtctDtls", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + }, + ) + + +@dataclass +class RemittanceLocationData2: + mtd: Optional[RemittanceLocationMethod2Code] = field( + default=None, + metadata={ + "name": "Mtd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "required": True, + }, + ) + elctrnc_adr: Optional[str] = field( + default=None, + metadata={ + "name": "ElctrncAdr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "min_length": 1, + "max_length": 2048, + }, + ) + pstl_adr: Optional[NameAndAddress18] = field( + default=None, + metadata={ + "name": "PstlAdr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + }, + ) + + +@dataclass +class GroupHeader122: + msg_id: Optional[str] = field( + default=None, + metadata={ + "name": "MsgId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "required": True, + "min_length": 1, + "max_length": 35, + }, + ) + cre_dt_tm: Optional[XmlDateTime] = field( + default=None, + metadata={ + "name": "CreDtTm", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "required": True, + }, + ) + authstn: List[Authorisation1Choice] = field( + default_factory=list, + metadata={ + "name": "Authstn", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "max_occurs": 2, + }, + ) + cpy_ind: Optional[CopyDuplicate1Code] = field( + default=None, + metadata={ + "name": "CpyInd", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + }, + ) + initg_pty: Optional[PartyIdentification272] = field( + default=None, + metadata={ + "name": "InitgPty", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "required": True, + }, + ) + msg_rcpt: Optional[PartyIdentification272] = field( + default=None, + metadata={ + "name": "MsgRcpt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + }, + ) + fwdg_agt: Optional[BranchAndFinancialInstitutionIdentification8] = field( + default=None, + metadata={ + "name": "FwdgAgt", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + }, + ) + + +@dataclass +class TransactionReferences8: + pmt_inf_id: Optional[str] = field( + default=None, + metadata={ + "name": "PmtInfId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + instr_id: Optional[str] = field( + default=None, + metadata={ + "name": "InstrId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + end_to_end_id: Optional[str] = field( + default=None, + metadata={ + "name": "EndToEndId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "required": True, + "min_length": 1, + "max_length": 35, + }, + ) + tx_id: Optional[str] = field( + default=None, + metadata={ + "name": "TxId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + uetr: Optional[str] = field( + default=None, + metadata={ + "name": "UETR", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "pattern": r"[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}", + }, + ) + mndt_id: Optional[str] = field( + default=None, + metadata={ + "name": "MndtId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + cdtr_schme_id: Optional[PartyIdentification272] = field( + default=None, + metadata={ + "name": "CdtrSchmeId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + }, + ) + + +@dataclass +class RemittanceLocation10: + rmt_id: Optional[str] = field( + default=None, + metadata={ + "name": "RmtId", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "min_length": 1, + "max_length": 35, + }, + ) + rmt_lctn_dtls: List[RemittanceLocationData2] = field( + default_factory=list, + metadata={ + "name": "RmtLctnDtls", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "min_occurs": 1, + }, + ) + refs: Optional[TransactionReferences8] = field( + default=None, + metadata={ + "name": "Refs", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "required": True, + }, + ) + + +@dataclass +class RemittanceLocationAdviceV03: + grp_hdr: Optional[GroupHeader122] = field( + default=None, + metadata={ + "name": "GrpHdr", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "required": True, + }, + ) + rmt_lctn: List[RemittanceLocation10] = field( + default_factory=list, + metadata={ + "name": "RmtLctn", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + "min_occurs": 1, + }, + ) + splmtry_data: List[SupplementaryData1] = field( + default_factory=list, + metadata={ + "name": "SplmtryData", + "type": "Element", + "namespace": "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03", + }, + ) + + +@dataclass +class Document: + class Meta: + namespace = "urn:iso:std:iso:20022:tech:xsd:remt.002.001.03" + + rmt_lctn_advc: Optional[RemittanceLocationAdviceV03] = field( + default=None, + metadata={ + "name": "RmtLctnAdvc", + "type": "Element", + "required": True, + }, + ) diff --git a/setup.py b/setup.py index d7d63a1..f33d229 100644 --- a/setup.py +++ b/setup.py @@ -5,7 +5,7 @@ setuptools.setup( name="pyiso20022", - version="1.3.4", + version="1.4.4", author="Peter Houghton", author_email="pete@investigatingsoftware.co.uk", description="pyiso20022 is a library for generating ISO20022 messages in Python.", diff --git a/supported_msg_types_final.md b/supported_msg_types_final.md index 95714d3..40b975c 100644 --- a/supported_msg_types_final.md +++ b/supported_msg_types_final.md @@ -255,3 +255,12 @@ - pain.pain_014_001_09 - pain.pain_014_001_10 - pain.pain_014_001_11 +- remt.remt_001_001_01 +- remt.remt_001_001_02 +- remt.remt_001_001_03 +- remt.remt_001_001_04 +- remt.remt_001_001_05 +- remt.remt_001_001_06 +- remt.remt_002_001_01 +- remt.remt_002_001_02 +- remt.remt_002_001_03 diff --git a/xsd/remittance/remt.001/remt.001.001.01.xsd b/xsd/remittance/remt.001/remt.001.001.01.xsd new file mode 100644 index 0000000..d7a15d5 --- /dev/null +++ b/xsd/remittance/remt.001/remt.001.001.01.xsd @@ -0,0 +1,825 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/xsd/remittance/remt.001/remt.001.001.02.xsd b/xsd/remittance/remt.001/remt.001.001.02.xsd new file mode 100644 index 0000000..6692417 --- /dev/null +++ b/xsd/remittance/remt.001/remt.001.001.02.xsd @@ -0,0 +1,826 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/xsd/remittance/remt.001/remt.001.001.03.xsd b/xsd/remittance/remt.001/remt.001.001.03.xsd new file mode 100644 index 0000000..f90258a --- /dev/null +++ b/xsd/remittance/remt.001/remt.001.001.03.xsd @@ -0,0 +1,832 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/xsd/remittance/remt.001/remt.001.001.04.xsd b/xsd/remittance/remt.001/remt.001.001.04.xsd new file mode 100644 index 0000000..0526c97 --- /dev/null +++ b/xsd/remittance/remt.001/remt.001.001.04.xsd @@ -0,0 +1,910 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/xsd/remittance/remt.001/remt.001.001.05.xsd b/xsd/remittance/remt.001/remt.001.001.05.xsd new file mode 100644 index 0000000..fb66b6e --- /dev/null +++ b/xsd/remittance/remt.001/remt.001.001.05.xsd @@ -0,0 +1,913 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/xsd/remittance/remt.001/remt.001.001.06.xsd b/xsd/remittance/remt.001/remt.001.001.06.xsd new file mode 100644 index 0000000..4b3585d --- /dev/null +++ b/xsd/remittance/remt.001/remt.001.001.06.xsd @@ -0,0 +1,891 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/xsd/remittance/remt.002/remt.002.001.01.xsd b/xsd/remittance/remt.002/remt.002.001.01.xsd new file mode 100644 index 0000000..6d8e3ad --- /dev/null +++ b/xsd/remittance/remt.002/remt.002.001.01.xsd @@ -0,0 +1,343 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/xsd/remittance/remt.002/remt.002.001.02.xsd b/xsd/remittance/remt.002/remt.002.001.02.xsd new file mode 100644 index 0000000..408f83f --- /dev/null +++ b/xsd/remittance/remt.002/remt.002.001.02.xsd @@ -0,0 +1,408 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/xsd/remittance/remt.002/remt.002.001.03.xsd b/xsd/remittance/remt.002/remt.002.001.03.xsd new file mode 100644 index 0000000..1c3e058 --- /dev/null +++ b/xsd/remittance/remt.002/remt.002.001.03.xsd @@ -0,0 +1,418 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +