use serde::{Deserialize, Serialize};
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct AccountIdentification4Choice {
#[serde(rename = "IBAN", skip_serializing_if = "Option::is_none")]
pub iban: Option<IBAN2007Identifier>,
#[serde(rename = "Othr", skip_serializing_if = "Option::is_none")]
pub othr: Option<GenericAccountIdentification1>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct AccountSchemeName1Choice {
#[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
pub cd: Option<ExternalAccountIdentification1Code>,
#[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
pub prtry: Option<Max35Text>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct ActiveCurrencyAndAmountSimpleType {
#[serde(rename = "$value")]
pub active_currency_and_amount_simple_type: f64,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct ActiveCurrencyAndAmount {
#[serde(rename = "Ccy")]
pub ccy: String,
#[serde(rename = "$value")]
pub value: f64,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct ActiveCurrencyCode {
#[serde(rename = "$value")]
pub active_currency_code: String,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct ActiveOrHistoricCurrencyAndAmountSimpleType {
#[serde(rename = "$value")]
pub active_or_historic_currency_and_amount_simple_type: f64,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct ActiveOrHistoricCurrencyAndAmount {
#[serde(rename = "Ccy")]
pub ccy: String,
#[serde(rename = "$value")]
pub value: f64,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct ActiveOrHistoricCurrencyCode {
#[serde(rename = "$value")]
pub active_or_historic_currency_code: String,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub enum AddressType2Code {
#[default]
#[serde(rename = "ADDR")]
CodeADDR,
#[serde(rename = "PBOX")]
CodePBOX,
#[serde(rename = "HOME")]
CodeHOME,
#[serde(rename = "BIZZ")]
CodeBIZZ,
#[serde(rename = "MLTO")]
CodeMLTO,
#[serde(rename = "DLVY")]
CodeDLVY,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct AddressType3Choice {
#[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
pub cd: Option<AddressType2Code>,
#[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
pub prtry: Option<GenericIdentification30>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct AnyBICDec2014Identifier {
#[serde(rename = "$value")]
pub any_bic_dec2014_identifier: String,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct BICFIDec2014Identifier {
#[serde(rename = "$value")]
pub bicfi_dec2014_identifier: String,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct BatchBookingIndicator {
#[serde(rename = "$value")]
pub batch_booking_indicator: bool,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct BranchAndFinancialInstitutionIdentification8 {
#[serde(rename = "FinInstnId")]
pub fin_instn_id: FinancialInstitutionIdentification23,
#[serde(rename = "BrnchId", skip_serializing_if = "Option::is_none")]
pub brnch_id: Option<BranchData5>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct BranchData5 {
#[serde(rename = "Id", skip_serializing_if = "Option::is_none")]
pub id: Option<Max35Text>,
#[serde(rename = "LEI", skip_serializing_if = "Option::is_none")]
pub lei: Option<LEIIdentifier>,
#[serde(rename = "Nm", skip_serializing_if = "Option::is_none")]
pub nm: Option<Max140Text>,
#[serde(rename = "PstlAdr", skip_serializing_if = "Option::is_none")]
pub pstl_adr: Option<PostalAddress27>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct CashAccount40 {
#[serde(rename = "Id", skip_serializing_if = "Option::is_none")]
pub id: Option<AccountIdentification4Choice>,
#[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
pub tp: Option<CashAccountType2Choice>,
#[serde(rename = "Ccy", skip_serializing_if = "Option::is_none")]
pub ccy: Option<ActiveOrHistoricCurrencyCode>,
#[serde(rename = "Nm", skip_serializing_if = "Option::is_none")]
pub nm: Option<Max70Text>,
#[serde(rename = "Prxy", skip_serializing_if = "Option::is_none")]
pub prxy: Option<ProxyAccountIdentification1>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct CashAccountType2Choice {
#[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
pub cd: Option<ExternalCashAccountType1Code>,
#[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
pub prtry: Option<Max35Text>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct CategoryPurpose1Choice {
#[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
pub cd: Option<ExternalCategoryPurpose1Code>,
#[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
pub prtry: Option<Max35Text>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub enum ClearingChannel2Code {
#[default]
#[serde(rename = "RTGS")]
CodeRTGS,
#[serde(rename = "RTNS")]
CodeRTNS,
#[serde(rename = "MPNS")]
CodeMPNS,
#[serde(rename = "BOOK")]
CodeBOOK,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct ClearingSystemIdentification2Choice {
#[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
pub cd: Option<ExternalClearingSystemIdentification1Code>,
#[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
pub prtry: Option<Max35Text>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct ClearingSystemIdentification3Choice {
#[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
pub cd: Option<ExternalCashClearingSystem1Code>,
#[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
pub prtry: Option<Max35Text>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct ClearingSystemMemberIdentification2 {
#[serde(rename = "ClrSysId", skip_serializing_if = "Option::is_none")]
pub clr_sys_id: Option<ClearingSystemIdentification2Choice>,
#[serde(rename = "MmbId")]
pub mmb_id: Max35Text,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct Contact13 {
#[serde(rename = "NmPrfx", skip_serializing_if = "Option::is_none")]
pub nm_prfx: Option<NamePrefix2Code>,
#[serde(rename = "Nm", skip_serializing_if = "Option::is_none")]
pub nm: Option<Max140Text>,
#[serde(rename = "PhneNb", skip_serializing_if = "Option::is_none")]
pub phne_nb: Option<PhoneNumber>,
#[serde(rename = "MobNb", skip_serializing_if = "Option::is_none")]
pub mob_nb: Option<PhoneNumber>,
#[serde(rename = "FaxNb", skip_serializing_if = "Option::is_none")]
pub fax_nb: Option<PhoneNumber>,
#[serde(rename = "URLAdr", skip_serializing_if = "Option::is_none")]
pub url_adr: Option<Max2048Text>,
#[serde(rename = "EmailAdr", skip_serializing_if = "Option::is_none")]
pub email_adr: Option<Max256Text>,
#[serde(rename = "EmailPurp", skip_serializing_if = "Option::is_none")]
pub email_purp: Option<Max35Text>,
#[serde(rename = "JobTitl", skip_serializing_if = "Option::is_none")]
pub job_titl: Option<Max35Text>,
#[serde(rename = "Rspnsblty", skip_serializing_if = "Option::is_none")]
pub rspnsblty: Option<Max35Text>,
#[serde(rename = "Dept", skip_serializing_if = "Option::is_none")]
pub dept: Option<Max70Text>,
#[serde(rename = "Othr", skip_serializing_if = "Option::is_none")]
pub othr: Option<Vec<OtherContact1>>,
#[serde(rename = "PrefrdMtd", skip_serializing_if = "Option::is_none")]
pub prefrd_mtd: Option<PreferredContactMethod2Code>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct CountryCode {
#[serde(rename = "$value")]
pub country_code: String,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub enum CreditDebitCode {
#[default]
#[serde(rename = "CRDT")]
CodeCRDT,
#[serde(rename = "DBIT")]
CodeDBIT,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct CreditTransferTransaction62 {
#[serde(rename = "PmtId")]
pub pmt_id: PaymentIdentification13,
#[serde(rename = "PmtTpInf", skip_serializing_if = "Option::is_none")]
pub pmt_tp_inf: Option<PaymentTypeInformation28>,
#[serde(rename = "IntrBkSttlmAmt")]
pub intr_bk_sttlm_amt: ActiveCurrencyAndAmount,
#[serde(rename = "IntrBkSttlmDt", skip_serializing_if = "Option::is_none")]
pub intr_bk_sttlm_dt: Option<String>,
#[serde(rename = "SttlmPrty", skip_serializing_if = "Option::is_none")]
pub sttlm_prty: Option<Priority3Code>,
#[serde(rename = "SttlmTmIndctn", skip_serializing_if = "Option::is_none")]
pub sttlm_tm_indctn: Option<SettlementDateTimeIndication1>,
#[serde(rename = "SttlmTmReq", skip_serializing_if = "Option::is_none")]
pub sttlm_tm_req: Option<SettlementTimeRequest2>,
#[serde(rename = "PrvsInstgAgt1", skip_serializing_if = "Option::is_none")]
pub prvs_instg_agt1: Option<BranchAndFinancialInstitutionIdentification8>,
#[serde(rename = "PrvsInstgAgt1Acct", skip_serializing_if = "Option::is_none")]
pub prvs_instg_agt1_acct: Option<CashAccount40>,
#[serde(rename = "PrvsInstgAgt2", skip_serializing_if = "Option::is_none")]
pub prvs_instg_agt2: Option<BranchAndFinancialInstitutionIdentification8>,
#[serde(rename = "PrvsInstgAgt2Acct", skip_serializing_if = "Option::is_none")]
pub prvs_instg_agt2_acct: Option<CashAccount40>,
#[serde(rename = "PrvsInstgAgt3", skip_serializing_if = "Option::is_none")]
pub prvs_instg_agt3: Option<BranchAndFinancialInstitutionIdentification8>,
#[serde(rename = "PrvsInstgAgt3Acct", skip_serializing_if = "Option::is_none")]
pub prvs_instg_agt3_acct: Option<CashAccount40>,
#[serde(rename = "InstgAgt", skip_serializing_if = "Option::is_none")]
pub instg_agt: Option<BranchAndFinancialInstitutionIdentification8>,
#[serde(rename = "InstdAgt", skip_serializing_if = "Option::is_none")]
pub instd_agt: Option<BranchAndFinancialInstitutionIdentification8>,
#[serde(rename = "IntrmyAgt1", skip_serializing_if = "Option::is_none")]
pub intrmy_agt1: Option<BranchAndFinancialInstitutionIdentification8>,
#[serde(rename = "IntrmyAgt1Acct", skip_serializing_if = "Option::is_none")]
pub intrmy_agt1_acct: Option<CashAccount40>,
#[serde(rename = "IntrmyAgt2", skip_serializing_if = "Option::is_none")]
pub intrmy_agt2: Option<BranchAndFinancialInstitutionIdentification8>,
#[serde(rename = "IntrmyAgt2Acct", skip_serializing_if = "Option::is_none")]
pub intrmy_agt2_acct: Option<CashAccount40>,
#[serde(rename = "IntrmyAgt3", skip_serializing_if = "Option::is_none")]
pub intrmy_agt3: Option<BranchAndFinancialInstitutionIdentification8>,
#[serde(rename = "IntrmyAgt3Acct", skip_serializing_if = "Option::is_none")]
pub intrmy_agt3_acct: Option<CashAccount40>,
#[serde(rename = "UltmtDbtr", skip_serializing_if = "Option::is_none")]
pub ultmt_dbtr: Option<BranchAndFinancialInstitutionIdentification8>,
#[serde(rename = "Dbtr")]
pub dbtr: BranchAndFinancialInstitutionIdentification8,
#[serde(rename = "DbtrAcct", skip_serializing_if = "Option::is_none")]
pub dbtr_acct: Option<CashAccount40>,
#[serde(rename = "DbtrAgt", skip_serializing_if = "Option::is_none")]
pub dbtr_agt: Option<BranchAndFinancialInstitutionIdentification8>,
#[serde(rename = "DbtrAgtAcct", skip_serializing_if = "Option::is_none")]
pub dbtr_agt_acct: Option<CashAccount40>,
#[serde(rename = "CdtrAgt", skip_serializing_if = "Option::is_none")]
pub cdtr_agt: Option<BranchAndFinancialInstitutionIdentification8>,
#[serde(rename = "CdtrAgtAcct", skip_serializing_if = "Option::is_none")]
pub cdtr_agt_acct: Option<CashAccount40>,
#[serde(rename = "Cdtr")]
pub cdtr: BranchAndFinancialInstitutionIdentification8,
#[serde(rename = "CdtrAcct", skip_serializing_if = "Option::is_none")]
pub cdtr_acct: Option<CashAccount40>,
#[serde(rename = "UltmtCdtr", skip_serializing_if = "Option::is_none")]
pub ultmt_cdtr: Option<BranchAndFinancialInstitutionIdentification8>,
#[serde(rename = "InstrForCdtrAgt", skip_serializing_if = "Option::is_none")]
pub instr_for_cdtr_agt: Option<Vec<InstructionForCreditorAgent3>>,
#[serde(rename = "InstrForNxtAgt", skip_serializing_if = "Option::is_none")]
pub instr_for_nxt_agt: Option<Vec<InstructionForNextAgent1>>,
#[serde(rename = "Purp", skip_serializing_if = "Option::is_none")]
pub purp: Option<Purpose2Choice>,
#[serde(rename = "RmtInf", skip_serializing_if = "Option::is_none")]
pub rmt_inf: Option<RemittanceInformation2>,
#[serde(rename = "UndrlygAllcn", skip_serializing_if = "Option::is_none")]
pub undrlyg_allcn: Option<Vec<TransactionAllocation1>>,
#[serde(rename = "UndrlygCstmrCdtTrf", skip_serializing_if = "Option::is_none")]
pub undrlyg_cstmr_cdt_trf: Option<CreditTransferTransaction63>,
#[serde(rename = "SplmtryData", skip_serializing_if = "Option::is_none")]
pub splmtry_data: Option<Vec<SupplementaryData1>>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct CreditTransferTransaction63 {
#[serde(rename = "UltmtDbtr", skip_serializing_if = "Option::is_none")]
pub ultmt_dbtr: Option<PartyIdentification272>,
#[serde(rename = "InitgPty", skip_serializing_if = "Option::is_none")]
pub initg_pty: Option<PartyIdentification272>,
#[serde(rename = "Dbtr")]
pub dbtr: PartyIdentification272,
#[serde(rename = "DbtrAcct", skip_serializing_if = "Option::is_none")]
pub dbtr_acct: Option<CashAccount40>,
#[serde(rename = "DbtrAgt")]
pub dbtr_agt: BranchAndFinancialInstitutionIdentification8,
#[serde(rename = "DbtrAgtAcct", skip_serializing_if = "Option::is_none")]
pub dbtr_agt_acct: Option<CashAccount40>,
#[serde(rename = "PrvsInstgAgt1", skip_serializing_if = "Option::is_none")]
pub prvs_instg_agt1: Option<BranchAndFinancialInstitutionIdentification8>,
#[serde(rename = "PrvsInstgAgt1Acct", skip_serializing_if = "Option::is_none")]
pub prvs_instg_agt1_acct: Option<CashAccount40>,
#[serde(rename = "PrvsInstgAgt2", skip_serializing_if = "Option::is_none")]
pub prvs_instg_agt2: Option<BranchAndFinancialInstitutionIdentification8>,
#[serde(rename = "PrvsInstgAgt2Acct", skip_serializing_if = "Option::is_none")]
pub prvs_instg_agt2_acct: Option<CashAccount40>,
#[serde(rename = "PrvsInstgAgt3", skip_serializing_if = "Option::is_none")]
pub prvs_instg_agt3: Option<BranchAndFinancialInstitutionIdentification8>,
#[serde(rename = "PrvsInstgAgt3Acct", skip_serializing_if = "Option::is_none")]
pub prvs_instg_agt3_acct: Option<CashAccount40>,
#[serde(rename = "IntrmyAgt1", skip_serializing_if = "Option::is_none")]
pub intrmy_agt1: Option<BranchAndFinancialInstitutionIdentification8>,
#[serde(rename = "IntrmyAgt1Acct", skip_serializing_if = "Option::is_none")]
pub intrmy_agt1_acct: Option<CashAccount40>,
#[serde(rename = "IntrmyAgt2", skip_serializing_if = "Option::is_none")]
pub intrmy_agt2: Option<BranchAndFinancialInstitutionIdentification8>,
#[serde(rename = "IntrmyAgt2Acct", skip_serializing_if = "Option::is_none")]
pub intrmy_agt2_acct: Option<CashAccount40>,
#[serde(rename = "IntrmyAgt3", skip_serializing_if = "Option::is_none")]
pub intrmy_agt3: Option<BranchAndFinancialInstitutionIdentification8>,
#[serde(rename = "IntrmyAgt3Acct", skip_serializing_if = "Option::is_none")]
pub intrmy_agt3_acct: Option<CashAccount40>,
#[serde(rename = "CdtrAgt")]
pub cdtr_agt: BranchAndFinancialInstitutionIdentification8,
#[serde(rename = "CdtrAgtAcct", skip_serializing_if = "Option::is_none")]
pub cdtr_agt_acct: Option<CashAccount40>,
#[serde(rename = "Cdtr")]
pub cdtr: PartyIdentification272,
#[serde(rename = "CdtrAcct", skip_serializing_if = "Option::is_none")]
pub cdtr_acct: Option<CashAccount40>,
#[serde(rename = "UltmtCdtr", skip_serializing_if = "Option::is_none")]
pub ultmt_cdtr: Option<PartyIdentification272>,
#[serde(rename = "InstrForCdtrAgt", skip_serializing_if = "Option::is_none")]
pub instr_for_cdtr_agt: Option<Vec<InstructionForCreditorAgent3>>,
#[serde(rename = "InstrForNxtAgt", skip_serializing_if = "Option::is_none")]
pub instr_for_nxt_agt: Option<Vec<InstructionForNextAgent1>>,
#[serde(rename = "Tax", skip_serializing_if = "Option::is_none")]
pub tax: Option<TaxData1>,
#[serde(rename = "RmtInf", skip_serializing_if = "Option::is_none")]
pub rmt_inf: Option<RemittanceInformation22>,
#[serde(rename = "InstdAmt", skip_serializing_if = "Option::is_none")]
pub instd_amt: Option<ActiveOrHistoricCurrencyAndAmount>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct CreditorReferenceInformation3 {
#[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
pub tp: Option<CreditorReferenceType3>,
#[serde(rename = "Ref", skip_serializing_if = "Option::is_none")]
pub ref_attr: Option<Max35Text>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct CreditorReferenceType2Choice {
#[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
pub cd: Option<ExternalCreditorReferenceType1Code>,
#[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
pub prtry: Option<Max35Text>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct CreditorReferenceType3 {
#[serde(rename = "CdOrPrtry")]
pub cd_or_prtry: CreditorReferenceType2Choice,
#[serde(rename = "Issr", skip_serializing_if = "Option::is_none")]
pub issr: Option<Max35Text>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct DateAndPlaceOfBirth1 {
#[serde(rename = "BirthDt")]
pub birth_dt: String,
#[serde(rename = "PrvcOfBirth", skip_serializing_if = "Option::is_none")]
pub prvc_of_birth: Option<Max35Text>,
#[serde(rename = "CityOfBirth")]
pub city_of_birth: Max35Text,
#[serde(rename = "CtryOfBirth")]
pub ctry_of_birth: CountryCode,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct DateAndType1 {
#[serde(rename = "Tp")]
pub tp: DateType2Choice,
#[serde(rename = "Dt")]
pub dt: String,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct DatePeriod2 {
#[serde(rename = "FrDt")]
pub fr_dt: String,
#[serde(rename = "ToDt")]
pub to_dt: String,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct DateType2Choice {
#[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
pub cd: Option<ExternalDateType1Code>,
#[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
pub prtry: Option<Max35Text>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct DecimalNumber {
#[serde(rename = "$value")]
pub decimal_number: f64,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct DocumentAdjustment1 {
#[serde(rename = "Amt")]
pub amt: ActiveOrHistoricCurrencyAndAmount,
#[serde(rename = "CdtDbtInd", skip_serializing_if = "Option::is_none")]
pub cdt_dbt_ind: Option<CreditDebitCode>,
#[serde(rename = "Rsn", skip_serializing_if = "Option::is_none")]
pub rsn: Option<Max4Text>,
#[serde(rename = "AddtlInf", skip_serializing_if = "Option::is_none")]
pub addtl_inf: Option<Max140Text>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct DocumentAmount1 {
#[serde(rename = "Tp")]
pub tp: DocumentAmountType1Choice,
#[serde(rename = "Amt")]
pub amt: ActiveOrHistoricCurrencyAndAmount,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct DocumentAmountType1Choice {
#[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
pub cd: Option<ExternalDocumentAmountType1Code>,
#[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
pub prtry: Option<Max35Text>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct DocumentLineIdentification1 {
#[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
pub tp: Option<DocumentLineType1>,
#[serde(rename = "Nb", skip_serializing_if = "Option::is_none")]
pub nb: Option<Max35Text>,
#[serde(rename = "RltdDt", skip_serializing_if = "Option::is_none")]
pub rltd_dt: Option<String>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct DocumentLineInformation2 {
#[serde(rename = "Id")]
pub id: Vec<DocumentLineIdentification1>,
#[serde(rename = "Desc", skip_serializing_if = "Option::is_none")]
pub desc: Option<Max2048Text>,
#[serde(rename = "Amt", skip_serializing_if = "Option::is_none")]
pub amt: Option<RemittanceAmount4>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct DocumentLineType1 {
#[serde(rename = "CdOrPrtry")]
pub cd_or_prtry: DocumentLineType1Choice,
#[serde(rename = "Issr", skip_serializing_if = "Option::is_none")]
pub issr: Option<Max35Text>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct DocumentLineType1Choice {
#[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
pub cd: Option<ExternalDocumentLineType1Code>,
#[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
pub prtry: Option<Max35Text>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct DocumentType1 {
#[serde(rename = "CdOrPrtry")]
pub cd_or_prtry: DocumentType2Choice,
#[serde(rename = "Issr", skip_serializing_if = "Option::is_none")]
pub issr: Option<Max35Text>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct DocumentType2Choice {
#[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
pub cd: Option<ExternalDocumentType1Code>,
#[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
pub prtry: Option<Max35Text>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct Exact4AlphaNumericText {
#[serde(rename = "$value")]
pub exact4_alpha_numeric_text: String,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct ExternalAccountIdentification1Code {
#[serde(rename = "$value")]
pub external_account_identification1_code: String,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct ExternalCashAccountType1Code {
#[serde(rename = "$value")]
pub external_cash_account_type1_code: String,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct ExternalCashClearingSystem1Code {
#[serde(rename = "$value")]
pub external_cash_clearing_system1_code: String,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct ExternalCategoryPurpose1Code {
#[serde(rename = "$value")]
pub external_category_purpose1_code: String,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct ExternalClearingSystemIdentification1Code {
#[serde(rename = "$value")]
pub external_clearing_system_identification1_code: String,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct ExternalCreditorAgentInstruction1Code {
#[serde(rename = "$value")]
pub external_creditor_agent_instruction1_code: String,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct ExternalCreditorReferenceType1Code {
#[serde(rename = "$value")]
pub external_creditor_reference_type1_code: String,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct ExternalDateType1Code {
#[serde(rename = "$value")]
pub external_date_type1_code: String,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct ExternalDocumentAmountType1Code {
#[serde(rename = "$value")]
pub external_document_amount_type1_code: String,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct ExternalDocumentLineType1Code {
#[serde(rename = "$value")]
pub external_document_line_type1_code: String,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct ExternalDocumentType1Code {
#[serde(rename = "$value")]
pub external_document_type1_code: String,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct ExternalFinancialInstitutionIdentification1Code {
#[serde(rename = "$value")]
pub external_financial_institution_identification1_code: String,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct ExternalGarnishmentType1Code {
#[serde(rename = "$value")]
pub external_garnishment_type1_code: String,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct ExternalLocalInstrument1Code {
#[serde(rename = "$value")]
pub external_local_instrument1_code: String,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct ExternalOrganisationIdentification1Code {
#[serde(rename = "$value")]
pub external_organisation_identification1_code: String,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct ExternalPersonIdentification1Code {
#[serde(rename = "$value")]
pub external_person_identification1_code: String,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct ExternalProxyAccountType1Code {
#[serde(rename = "$value")]
pub external_proxy_account_type1_code: String,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct ExternalPurpose1Code {
#[serde(rename = "$value")]
pub external_purpose1_code: String,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct ExternalServiceLevel1Code {
#[serde(rename = "$value")]
pub external_service_level1_code: String,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct FinancialIdentificationSchemeName1Choice {
#[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
pub cd: Option<ExternalFinancialInstitutionIdentification1Code>,
#[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
pub prtry: Option<Max35Text>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct FinancialInstitutionCreditTransferV11 {
#[serde(rename = "GrpHdr")]
pub grp_hdr: GroupHeader113,
#[serde(rename = "CdtTrfTxInf")]
pub cdt_trf_tx_inf: Vec<CreditTransferTransaction62>,
#[serde(rename = "SplmtryData", skip_serializing_if = "Option::is_none")]
pub splmtry_data: Option<Vec<SupplementaryData1>>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct FinancialInstitutionIdentification23 {
#[serde(rename = "BICFI", skip_serializing_if = "Option::is_none")]
pub bicfi: Option<BICFIDec2014Identifier>,
#[serde(rename = "ClrSysMmbId", skip_serializing_if = "Option::is_none")]
pub clr_sys_mmb_id: Option<ClearingSystemMemberIdentification2>,
#[serde(rename = "LEI", skip_serializing_if = "Option::is_none")]
pub lei: Option<LEIIdentifier>,
#[serde(rename = "Nm", skip_serializing_if = "Option::is_none")]
pub nm: Option<Max140Text>,
#[serde(rename = "PstlAdr", skip_serializing_if = "Option::is_none")]
pub pstl_adr: Option<PostalAddress27>,
#[serde(rename = "Othr", skip_serializing_if = "Option::is_none")]
pub othr: Option<GenericFinancialIdentification1>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct Garnishment4 {
#[serde(rename = "Tp")]
pub tp: GarnishmentType1,
#[serde(rename = "Grnshee", skip_serializing_if = "Option::is_none")]
pub grnshee: Option<PartyIdentification272>,
#[serde(rename = "GrnshmtAdmstr", skip_serializing_if = "Option::is_none")]
pub grnshmt_admstr: Option<PartyIdentification272>,
#[serde(rename = "RefNb", skip_serializing_if = "Option::is_none")]
pub ref_nb: Option<Max140Text>,
#[serde(rename = "Dt", skip_serializing_if = "Option::is_none")]
pub dt: Option<String>,
#[serde(rename = "RmtdAmt", skip_serializing_if = "Option::is_none")]
pub rmtd_amt: Option<ActiveOrHistoricCurrencyAndAmount>,
#[serde(rename = "FmlyMdclInsrncInd", skip_serializing_if = "Option::is_none")]
pub fmly_mdcl_insrnc_ind: Option<bool>,
#[serde(rename = "MplyeeTermntnInd", skip_serializing_if = "Option::is_none")]
pub mplyee_termntn_ind: Option<bool>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct GarnishmentType1 {
#[serde(rename = "CdOrPrtry")]
pub cd_or_prtry: GarnishmentType1Choice,
#[serde(rename = "Issr", skip_serializing_if = "Option::is_none")]
pub issr: Option<Max35Text>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct GarnishmentType1Choice {
#[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
pub cd: Option<ExternalGarnishmentType1Code>,
#[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
pub prtry: Option<Max35Text>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct GenericAccountIdentification1 {
#[serde(rename = "Id")]
pub id: Max34Text,
#[serde(rename = "SchmeNm", skip_serializing_if = "Option::is_none")]
pub schme_nm: Option<AccountSchemeName1Choice>,
#[serde(rename = "Issr", skip_serializing_if = "Option::is_none")]
pub issr: Option<Max35Text>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct GenericFinancialIdentification1 {
#[serde(rename = "Id")]
pub id: Max35Text,
#[serde(rename = "SchmeNm", skip_serializing_if = "Option::is_none")]
pub schme_nm: Option<FinancialIdentificationSchemeName1Choice>,
#[serde(rename = "Issr", skip_serializing_if = "Option::is_none")]
pub issr: Option<Max35Text>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct GenericIdentification30 {
#[serde(rename = "Id")]
pub id: Exact4AlphaNumericText,
#[serde(rename = "Issr")]
pub issr: Max35Text,
#[serde(rename = "SchmeNm", skip_serializing_if = "Option::is_none")]
pub schme_nm: Option<Max35Text>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct GenericOrganisationIdentification3 {
#[serde(rename = "Id")]
pub id: Max256Text,
#[serde(rename = "SchmeNm", skip_serializing_if = "Option::is_none")]
pub schme_nm: Option<OrganisationIdentificationSchemeName1Choice>,
#[serde(rename = "Issr", skip_serializing_if = "Option::is_none")]
pub issr: Option<Max35Text>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct GenericPersonIdentification2 {
#[serde(rename = "Id")]
pub id: Max256Text,
#[serde(rename = "SchmeNm", skip_serializing_if = "Option::is_none")]
pub schme_nm: Option<PersonIdentificationSchemeName1Choice>,
#[serde(rename = "Issr", skip_serializing_if = "Option::is_none")]
pub issr: Option<Max35Text>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct GroupHeader113 {
#[serde(rename = "MsgId")]
pub msg_id: Max35Text,
#[serde(rename = "CreDtTm")]
pub cre_dt_tm: String,
#[serde(rename = "BtchBookg", skip_serializing_if = "Option::is_none")]
pub btch_bookg: Option<bool>,
#[serde(rename = "NbOfTxs")]
pub nb_of_txs: Max15NumericText,
#[serde(rename = "CtrlSum", skip_serializing_if = "Option::is_none")]
pub ctrl_sum: Option<f64>,
#[serde(rename = "TtlIntrBkSttlmAmt", skip_serializing_if = "Option::is_none")]
pub ttl_intr_bk_sttlm_amt: Option<ActiveCurrencyAndAmount>,
#[serde(rename = "IntrBkSttlmDt", skip_serializing_if = "Option::is_none")]
pub intr_bk_sttlm_dt: Option<String>,
#[serde(rename = "SttlmInf")]
pub sttlm_inf: SettlementInstruction15,
#[serde(rename = "PmtTpInf", skip_serializing_if = "Option::is_none")]
pub pmt_tp_inf: Option<PaymentTypeInformation28>,
#[serde(rename = "InstgAgt", skip_serializing_if = "Option::is_none")]
pub instg_agt: Option<BranchAndFinancialInstitutionIdentification8>,
#[serde(rename = "InstdAgt", skip_serializing_if = "Option::is_none")]
pub instd_agt: Option<BranchAndFinancialInstitutionIdentification8>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct IBAN2007Identifier {
#[serde(rename = "$value")]
pub iban2007_identifier: String,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct ISODate {
#[serde(rename = "$value")]
pub iso_date: String,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct ISODateTime {
#[serde(rename = "$value")]
pub iso_date_time: String,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct ISOTime {
#[serde(rename = "$value")]
pub iso_time: String,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct ISOYear {
#[serde(rename = "$value")]
pub iso_year: String,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub enum Instruction4Code {
#[default]
#[serde(rename = "PHOA")]
CodePHOA,
#[serde(rename = "TELA")]
CodeTELA,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct InstructionForCreditorAgent3 {
#[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
pub cd: Option<ExternalCreditorAgentInstruction1Code>,
#[serde(rename = "InstrInf", skip_serializing_if = "Option::is_none")]
pub instr_inf: Option<Max140Text>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct InstructionForNextAgent1 {
#[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
pub cd: Option<Instruction4Code>,
#[serde(rename = "InstrInf", skip_serializing_if = "Option::is_none")]
pub instr_inf: Option<Max140Text>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct LEIIdentifier {
#[serde(rename = "$value")]
pub lei_identifier: String,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct LocalInstrument2Choice {
#[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
pub cd: Option<ExternalLocalInstrument1Code>,
#[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
pub prtry: Option<Max35Text>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct Max128Text {
#[serde(rename = "$value")]
pub max128_text: String,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct Max140Text {
#[serde(rename = "$value")]
pub max140_text: String,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct Max15NumericText {
#[serde(rename = "$value")]
pub max15_numeric_text: String,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct Max16Text {
#[serde(rename = "$value")]
pub max16_text: String,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct Max2048Text {
#[serde(rename = "$value")]
pub max2048_text: String,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct Max256Text {
#[serde(rename = "$value")]
pub max256_text: String,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct Max34Text {
#[serde(rename = "$value")]
pub max34_text: String,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct Max350Text {
#[serde(rename = "$value")]
pub max350_text: String,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct Max35Text {
#[serde(rename = "$value")]
pub max35_text: String,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct Max4Text {
#[serde(rename = "$value")]
pub max4_text: String,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct Max52Text {
#[serde(rename = "$value")]
pub max52_text: String,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct Max70Text {
#[serde(rename = "$value")]
pub max70_text: String,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub enum NamePrefix2Code {
#[default]
#[serde(rename = "DOCT")]
CodeDOCT,
#[serde(rename = "MADM")]
CodeMADM,
#[serde(rename = "MISS")]
CodeMISS,
#[serde(rename = "MIST")]
CodeMIST,
#[serde(rename = "MIKS")]
CodeMIKS,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct Number {
#[serde(rename = "$value")]
pub number: f64,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct OrganisationIdentification39 {
#[serde(rename = "AnyBIC", skip_serializing_if = "Option::is_none")]
pub any_bic: Option<AnyBICDec2014Identifier>,
#[serde(rename = "LEI", skip_serializing_if = "Option::is_none")]
pub lei: Option<LEIIdentifier>,
#[serde(rename = "Othr", skip_serializing_if = "Option::is_none")]
pub othr: Option<Vec<GenericOrganisationIdentification3>>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct OrganisationIdentificationSchemeName1Choice {
#[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
pub cd: Option<ExternalOrganisationIdentification1Code>,
#[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
pub prtry: Option<Max35Text>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct OtherContact1 {
#[serde(rename = "ChanlTp")]
pub chanl_tp: Max4Text,
#[serde(rename = "Id", skip_serializing_if = "Option::is_none")]
pub id: Option<Max128Text>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct Party52Choice {
#[serde(rename = "OrgId", skip_serializing_if = "Option::is_none")]
pub org_id: Option<OrganisationIdentification39>,
#[serde(rename = "PrvtId", skip_serializing_if = "Option::is_none")]
pub prvt_id: Option<PersonIdentification18>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct PartyIdentification272 {
#[serde(rename = "Nm", skip_serializing_if = "Option::is_none")]
pub nm: Option<Max140Text>,
#[serde(rename = "PstlAdr", skip_serializing_if = "Option::is_none")]
pub pstl_adr: Option<PostalAddress27>,
#[serde(rename = "Id", skip_serializing_if = "Option::is_none")]
pub id: Option<Party52Choice>,
#[serde(rename = "CtryOfRes", skip_serializing_if = "Option::is_none")]
pub ctry_of_res: Option<CountryCode>,
#[serde(rename = "CtctDtls", skip_serializing_if = "Option::is_none")]
pub ctct_dtls: Option<Contact13>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct PaymentIdentification13 {
#[serde(rename = "InstrId", skip_serializing_if = "Option::is_none")]
pub instr_id: Option<Max35Text>,
#[serde(rename = "EndToEndId")]
pub end_to_end_id: Max35Text,
#[serde(rename = "TxId", skip_serializing_if = "Option::is_none")]
pub tx_id: Option<Max35Text>,
#[serde(rename = "UETR", skip_serializing_if = "Option::is_none")]
pub uetr: Option<UUIDv4Identifier>,
#[serde(rename = "ClrSysRef", skip_serializing_if = "Option::is_none")]
pub clr_sys_ref: Option<Max35Text>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct PaymentTypeInformation28 {
#[serde(rename = "InstrPrty", skip_serializing_if = "Option::is_none")]
pub instr_prty: Option<Priority2Code>,
#[serde(rename = "ClrChanl", skip_serializing_if = "Option::is_none")]
pub clr_chanl: Option<ClearingChannel2Code>,
#[serde(rename = "SvcLvl", skip_serializing_if = "Option::is_none")]
pub svc_lvl: Option<Vec<ServiceLevel8Choice>>,
#[serde(rename = "LclInstrm", skip_serializing_if = "Option::is_none")]
pub lcl_instrm: Option<LocalInstrument2Choice>,
#[serde(rename = "CtgyPurp", skip_serializing_if = "Option::is_none")]
pub ctgy_purp: Option<CategoryPurpose1Choice>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct PercentageRate {
#[serde(rename = "$value")]
pub percentage_rate: f64,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct PersonIdentification18 {
#[serde(rename = "DtAndPlcOfBirth", skip_serializing_if = "Option::is_none")]
pub dt_and_plc_of_birth: Option<DateAndPlaceOfBirth1>,
#[serde(rename = "Othr", skip_serializing_if = "Option::is_none")]
pub othr: Option<Vec<GenericPersonIdentification2>>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct PersonIdentificationSchemeName1Choice {
#[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
pub cd: Option<ExternalPersonIdentification1Code>,
#[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
pub prtry: Option<Max35Text>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct PhoneNumber {
#[serde(rename = "$value")]
pub phone_number: String,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct PostalAddress27 {
#[serde(rename = "AdrTp", skip_serializing_if = "Option::is_none")]
pub adr_tp: Option<AddressType3Choice>,
#[serde(rename = "CareOf", skip_serializing_if = "Option::is_none")]
pub care_of: Option<Max140Text>,
#[serde(rename = "Dept", skip_serializing_if = "Option::is_none")]
pub dept: Option<Max70Text>,
#[serde(rename = "SubDept", skip_serializing_if = "Option::is_none")]
pub sub_dept: Option<Max70Text>,
#[serde(rename = "StrtNm", skip_serializing_if = "Option::is_none")]
pub strt_nm: Option<Max140Text>,
#[serde(rename = "BldgNb", skip_serializing_if = "Option::is_none")]
pub bldg_nb: Option<Max16Text>,
#[serde(rename = "BldgNm", skip_serializing_if = "Option::is_none")]
pub bldg_nm: Option<Max140Text>,
#[serde(rename = "Flr", skip_serializing_if = "Option::is_none")]
pub flr: Option<Max70Text>,
#[serde(rename = "UnitNb", skip_serializing_if = "Option::is_none")]
pub unit_nb: Option<Max16Text>,
#[serde(rename = "PstBx", skip_serializing_if = "Option::is_none")]
pub pst_bx: Option<Max16Text>,
#[serde(rename = "Room", skip_serializing_if = "Option::is_none")]
pub room: Option<Max70Text>,
#[serde(rename = "PstCd", skip_serializing_if = "Option::is_none")]
pub pst_cd: Option<Max16Text>,
#[serde(rename = "TwnNm", skip_serializing_if = "Option::is_none")]
pub twn_nm: Option<Max140Text>,
#[serde(rename = "TwnLctnNm", skip_serializing_if = "Option::is_none")]
pub twn_lctn_nm: Option<Max140Text>,
#[serde(rename = "DstrctNm", skip_serializing_if = "Option::is_none")]
pub dstrct_nm: Option<Max140Text>,
#[serde(rename = "CtrySubDvsn", skip_serializing_if = "Option::is_none")]
pub ctry_sub_dvsn: Option<Max35Text>,
#[serde(rename = "Ctry", skip_serializing_if = "Option::is_none")]
pub ctry: Option<CountryCode>,
#[serde(rename = "AdrLine", skip_serializing_if = "Option::is_none")]
pub adr_line: Option<Vec<Max70Text>>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub enum PreferredContactMethod2Code {
#[default]
#[serde(rename = "MAIL")]
CodeMAIL,
#[serde(rename = "FAXX")]
CodeFAXX,
#[serde(rename = "LETT")]
CodeLETT,
#[serde(rename = "CELL")]
CodeCELL,
#[serde(rename = "ONLI")]
CodeONLI,
#[serde(rename = "PHON")]
CodePHON,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub enum Priority2Code {
#[default]
#[serde(rename = "HIGH")]
CodeHIGH,
#[serde(rename = "NORM")]
CodeNORM,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub enum Priority3Code {
#[default]
#[serde(rename = "URGT")]
CodeURGT,
#[serde(rename = "HIGH")]
CodeHIGH,
#[serde(rename = "NORM")]
CodeNORM,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct ProxyAccountIdentification1 {
#[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
pub tp: Option<ProxyAccountType1Choice>,
#[serde(rename = "Id")]
pub id: Max2048Text,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct ProxyAccountType1Choice {
#[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
pub cd: Option<ExternalProxyAccountType1Code>,
#[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
pub prtry: Option<Max35Text>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct Purpose2Choice {
#[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
pub cd: Option<ExternalPurpose1Code>,
#[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
pub prtry: Option<Max35Text>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct References74Choice {
#[serde(rename = "SctiesSttlmTxId", skip_serializing_if = "Option::is_none")]
pub scties_sttlm_tx_id: Option<Max35Text>,
#[serde(rename = "IntraPosMvmntId", skip_serializing_if = "Option::is_none")]
pub intra_pos_mvmnt_id: Option<Max35Text>,
#[serde(rename = "IntraBalMvmntId", skip_serializing_if = "Option::is_none")]
pub intra_bal_mvmnt_id: Option<Max35Text>,
#[serde(rename = "AcctSvcrTxId", skip_serializing_if = "Option::is_none")]
pub acct_svcr_tx_id: Option<Max35Text>,
#[serde(rename = "MktInfrstrctrTxId", skip_serializing_if = "Option::is_none")]
pub mkt_infrstrctr_tx_id: Option<Max35Text>,
#[serde(rename = "CtrPtyMktInfrstrctrTxId", skip_serializing_if = "Option::is_none")]
pub ctr_pty_mkt_infrstrctr_tx_id: Option<Max35Text>,
#[serde(rename = "PoolId", skip_serializing_if = "Option::is_none")]
pub pool_id: Option<Max35Text>,
#[serde(rename = "CmonId", skip_serializing_if = "Option::is_none")]
pub cmon_id: Option<Max35Text>,
#[serde(rename = "TradId", skip_serializing_if = "Option::is_none")]
pub trad_id: Option<Max52Text>,
#[serde(rename = "OthrTxId", skip_serializing_if = "Option::is_none")]
pub othr_tx_id: Option<Max35Text>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct ReferredDocumentInformation8 {
#[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
pub tp: Option<DocumentType1>,
#[serde(rename = "Nb", skip_serializing_if = "Option::is_none")]
pub nb: Option<Max35Text>,
#[serde(rename = "RltdDt", skip_serializing_if = "Option::is_none")]
pub rltd_dt: Option<DateAndType1>,
#[serde(rename = "LineDtls", skip_serializing_if = "Option::is_none")]
pub line_dtls: Option<Vec<DocumentLineInformation2>>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct RemittanceAmount4 {
#[serde(rename = "RmtAmtAndTp", skip_serializing_if = "Option::is_none")]
pub rmt_amt_and_tp: Option<Vec<DocumentAmount1>>,
#[serde(rename = "AdjstmntAmtAndRsn", skip_serializing_if = "Option::is_none")]
pub adjstmnt_amt_and_rsn: Option<Vec<DocumentAdjustment1>>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct RemittanceInformation2 {
#[serde(rename = "Ustrd", skip_serializing_if = "Option::is_none")]
pub ustrd: Option<Vec<Max140Text>>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct RemittanceInformation22 {
#[serde(rename = "Ustrd", skip_serializing_if = "Option::is_none")]
pub ustrd: Option<Vec<Max140Text>>,
#[serde(rename = "Strd", skip_serializing_if = "Option::is_none")]
pub strd: Option<Vec<StructuredRemittanceInformation18>>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct ServiceLevel8Choice {
#[serde(rename = "Cd", skip_serializing_if = "Option::is_none")]
pub cd: Option<ExternalServiceLevel1Code>,
#[serde(rename = "Prtry", skip_serializing_if = "Option::is_none")]
pub prtry: Option<Max35Text>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct SettlementDateTimeIndication1 {
#[serde(rename = "DbtDtTm", skip_serializing_if = "Option::is_none")]
pub dbt_dt_tm: Option<String>,
#[serde(rename = "CdtDtTm", skip_serializing_if = "Option::is_none")]
pub cdt_dt_tm: Option<String>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct SettlementInstruction15 {
#[serde(rename = "SttlmMtd")]
pub sttlm_mtd: SettlementMethod1Code,
#[serde(rename = "SttlmAcct", skip_serializing_if = "Option::is_none")]
pub sttlm_acct: Option<CashAccount40>,
#[serde(rename = "ClrSys", skip_serializing_if = "Option::is_none")]
pub clr_sys: Option<ClearingSystemIdentification3Choice>,
#[serde(rename = "InstgRmbrsmntAgt", skip_serializing_if = "Option::is_none")]
pub instg_rmbrsmnt_agt: Option<BranchAndFinancialInstitutionIdentification8>,
#[serde(rename = "InstgRmbrsmntAgtAcct", skip_serializing_if = "Option::is_none")]
pub instg_rmbrsmnt_agt_acct: Option<CashAccount40>,
#[serde(rename = "InstdRmbrsmntAgt", skip_serializing_if = "Option::is_none")]
pub instd_rmbrsmnt_agt: Option<BranchAndFinancialInstitutionIdentification8>,
#[serde(rename = "InstdRmbrsmntAgtAcct", skip_serializing_if = "Option::is_none")]
pub instd_rmbrsmnt_agt_acct: Option<CashAccount40>,
#[serde(rename = "ThrdRmbrsmntAgt", skip_serializing_if = "Option::is_none")]
pub thrd_rmbrsmnt_agt: Option<BranchAndFinancialInstitutionIdentification8>,
#[serde(rename = "ThrdRmbrsmntAgtAcct", skip_serializing_if = "Option::is_none")]
pub thrd_rmbrsmnt_agt_acct: Option<CashAccount40>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub enum SettlementMethod1Code {
#[default]
#[serde(rename = "INDA")]
CodeINDA,
#[serde(rename = "INGA")]
CodeINGA,
#[serde(rename = "COVE")]
CodeCOVE,
#[serde(rename = "CLRG")]
CodeCLRG,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct SettlementTimeRequest2 {
#[serde(rename = "CLSTm", skip_serializing_if = "Option::is_none")]
pub cls_tm: Option<String>,
#[serde(rename = "TillTm", skip_serializing_if = "Option::is_none")]
pub till_tm: Option<String>,
#[serde(rename = "FrTm", skip_serializing_if = "Option::is_none")]
pub fr_tm: Option<String>,
#[serde(rename = "RjctTm", skip_serializing_if = "Option::is_none")]
pub rjct_tm: Option<String>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct StructuredRemittanceInformation18 {
#[serde(rename = "RfrdDocInf", skip_serializing_if = "Option::is_none")]
pub rfrd_doc_inf: Option<Vec<ReferredDocumentInformation8>>,
#[serde(rename = "RfrdDocAmt", skip_serializing_if = "Option::is_none")]
pub rfrd_doc_amt: Option<RemittanceAmount4>,
#[serde(rename = "CdtrRefInf", skip_serializing_if = "Option::is_none")]
pub cdtr_ref_inf: Option<CreditorReferenceInformation3>,
#[serde(rename = "Invcr", skip_serializing_if = "Option::is_none")]
pub invcr: Option<PartyIdentification272>,
#[serde(rename = "Invcee", skip_serializing_if = "Option::is_none")]
pub invcee: Option<PartyIdentification272>,
#[serde(rename = "TaxRmt", skip_serializing_if = "Option::is_none")]
pub tax_rmt: Option<TaxData1>,
#[serde(rename = "GrnshmtRmt", skip_serializing_if = "Option::is_none")]
pub grnshmt_rmt: Option<Garnishment4>,
#[serde(rename = "AddtlRmtInf", skip_serializing_if = "Option::is_none")]
pub addtl_rmt_inf: Option<Vec<Max140Text>>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct SupplementaryData1 {
#[serde(rename = "PlcAndNm", skip_serializing_if = "Option::is_none")]
pub plc_and_nm: Option<Max350Text>,
#[serde(rename = "Envlp")]
pub envlp: SupplementaryDataEnvelope1,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct SupplementaryDataEnvelope1 {
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct TaxAmount3 {
#[serde(rename = "Rate", skip_serializing_if = "Option::is_none")]
pub rate: Option<f64>,
#[serde(rename = "TaxblBaseAmt", skip_serializing_if = "Option::is_none")]
pub taxbl_base_amt: Option<ActiveOrHistoricCurrencyAndAmount>,
#[serde(rename = "TtlAmt", skip_serializing_if = "Option::is_none")]
pub ttl_amt: Option<ActiveOrHistoricCurrencyAndAmount>,
#[serde(rename = "Dtls", skip_serializing_if = "Option::is_none")]
pub dtls: Option<Vec<TaxRecordDetails3>>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct TaxAuthorisation1 {
#[serde(rename = "Titl", skip_serializing_if = "Option::is_none")]
pub titl: Option<Max35Text>,
#[serde(rename = "Nm", skip_serializing_if = "Option::is_none")]
pub nm: Option<Max140Text>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct TaxData1 {
#[serde(rename = "Cdtr", skip_serializing_if = "Option::is_none")]
pub cdtr: Option<TaxParty1>,
#[serde(rename = "Dbtr", skip_serializing_if = "Option::is_none")]
pub dbtr: Option<TaxParty2>,
#[serde(rename = "UltmtDbtr", skip_serializing_if = "Option::is_none")]
pub ultmt_dbtr: Option<TaxParty2>,
#[serde(rename = "AdmstnZone", skip_serializing_if = "Option::is_none")]
pub admstn_zone: Option<Max35Text>,
#[serde(rename = "RefNb", skip_serializing_if = "Option::is_none")]
pub ref_nb: Option<Max140Text>,
#[serde(rename = "Mtd", skip_serializing_if = "Option::is_none")]
pub mtd: Option<Max35Text>,
#[serde(rename = "TtlTaxblBaseAmt", skip_serializing_if = "Option::is_none")]
pub ttl_taxbl_base_amt: Option<ActiveOrHistoricCurrencyAndAmount>,
#[serde(rename = "TtlTaxAmt", skip_serializing_if = "Option::is_none")]
pub ttl_tax_amt: Option<ActiveOrHistoricCurrencyAndAmount>,
#[serde(rename = "Dt", skip_serializing_if = "Option::is_none")]
pub dt: Option<String>,
#[serde(rename = "SeqNb", skip_serializing_if = "Option::is_none")]
pub seq_nb: Option<f64>,
#[serde(rename = "Rcrd", skip_serializing_if = "Option::is_none")]
pub rcrd: Option<Vec<TaxRecord3>>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct TaxParty1 {
#[serde(rename = "TaxId", skip_serializing_if = "Option::is_none")]
pub tax_id: Option<Max35Text>,
#[serde(rename = "RegnId", skip_serializing_if = "Option::is_none")]
pub regn_id: Option<Max35Text>,
#[serde(rename = "TaxTp", skip_serializing_if = "Option::is_none")]
pub tax_tp: Option<Max35Text>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct TaxParty2 {
#[serde(rename = "TaxId", skip_serializing_if = "Option::is_none")]
pub tax_id: Option<Max35Text>,
#[serde(rename = "RegnId", skip_serializing_if = "Option::is_none")]
pub regn_id: Option<Max35Text>,
#[serde(rename = "TaxTp", skip_serializing_if = "Option::is_none")]
pub tax_tp: Option<Max35Text>,
#[serde(rename = "Authstn", skip_serializing_if = "Option::is_none")]
pub authstn: Option<TaxAuthorisation1>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct TaxPeriod3 {
#[serde(rename = "Yr", skip_serializing_if = "Option::is_none")]
pub yr: Option<String>,
#[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
pub tp: Option<TaxRecordPeriod1Code>,
#[serde(rename = "FrToDt", skip_serializing_if = "Option::is_none")]
pub fr_to_dt: Option<DatePeriod2>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct TaxRecord3 {
#[serde(rename = "Tp", skip_serializing_if = "Option::is_none")]
pub tp: Option<Max35Text>,
#[serde(rename = "Ctgy", skip_serializing_if = "Option::is_none")]
pub ctgy: Option<Max35Text>,
#[serde(rename = "CtgyDtls", skip_serializing_if = "Option::is_none")]
pub ctgy_dtls: Option<Max35Text>,
#[serde(rename = "DbtrSts", skip_serializing_if = "Option::is_none")]
pub dbtr_sts: Option<Max35Text>,
#[serde(rename = "CertId", skip_serializing_if = "Option::is_none")]
pub cert_id: Option<Max35Text>,
#[serde(rename = "FrmsCd", skip_serializing_if = "Option::is_none")]
pub frms_cd: Option<Max35Text>,
#[serde(rename = "Prd", skip_serializing_if = "Option::is_none")]
pub prd: Option<TaxPeriod3>,
#[serde(rename = "TaxAmt", skip_serializing_if = "Option::is_none")]
pub tax_amt: Option<TaxAmount3>,
#[serde(rename = "AddtlInf", skip_serializing_if = "Option::is_none")]
pub addtl_inf: Option<Max140Text>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct TaxRecordDetails3 {
#[serde(rename = "Prd", skip_serializing_if = "Option::is_none")]
pub prd: Option<TaxPeriod3>,
#[serde(rename = "Amt")]
pub amt: ActiveOrHistoricCurrencyAndAmount,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub enum TaxRecordPeriod1Code {
#[default]
#[serde(rename = "MM01")]
CodeMM01,
#[serde(rename = "MM02")]
CodeMM02,
#[serde(rename = "MM03")]
CodeMM03,
#[serde(rename = "MM04")]
CodeMM04,
#[serde(rename = "MM05")]
CodeMM05,
#[serde(rename = "MM06")]
CodeMM06,
#[serde(rename = "MM07")]
CodeMM07,
#[serde(rename = "MM08")]
CodeMM08,
#[serde(rename = "MM09")]
CodeMM09,
#[serde(rename = "MM10")]
CodeMM10,
#[serde(rename = "MM11")]
CodeMM11,
#[serde(rename = "MM12")]
CodeMM12,
#[serde(rename = "QTR1")]
CodeQTR1,
#[serde(rename = "QTR2")]
CodeQTR2,
#[serde(rename = "QTR3")]
CodeQTR3,
#[serde(rename = "QTR4")]
CodeQTR4,
#[serde(rename = "HLF1")]
CodeHLF1,
#[serde(rename = "HLF2")]
CodeHLF2,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
pub struct TransactionAllocation1 {
#[serde(rename = "Amt")]
pub amt: ActiveOrHistoricCurrencyAndAmount,
#[serde(rename = "CdtDbtInd")]
pub cdt_dbt_ind: CreditDebitCode,
#[serde(rename = "Acct")]
pub acct: CashAccount40,
#[serde(rename = "Purp")]
pub purp: Purpose2Choice,
#[serde(rename = "Ref")]
pub ref_attr: Max35Text,
#[serde(rename = "RltdRefs", skip_serializing_if = "Option::is_none")]
pub rltd_refs: Option<Vec<References74Choice>>,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct TrueFalseIndicator {
#[serde(rename = "$value")]
pub true_false_indicator: bool,
}
#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)]
#[serde(transparent)]
pub struct UUIDv4Identifier {
#[serde(rename = "$value")]
pub uui_dv4_identifier: String,
}