/// <summary> /// Initializes a new instance of the <see cref="OBInternationalStandingOrder3" /> class. /// </summary> /// <param name="frequency">Individual Definitions: EvryDay - Every day EvryWorkgDay - Every working day IntrvlDay - An interval specified in number of calendar days (02 to 31) IntrvlWkDay - An interval specified in weeks (01 to 09), and the day within the week (01 to 07) WkInMnthDay - A monthly interval, specifying the week of the month (01 to 05) and day within the week (01 to 07) IntrvlMnthDay - An interval specified in months (between 01 to 06, 12, 24), specifying the day within the month (-5 to -1, 1 to 31) QtrDay - Quarterly (either ENGLISH, SCOTTISH, or RECEIVED). ENGLISH = Paid on the 25th March, 24th June, 29th September and 25th December. SCOTTISH = Paid on the 2nd February, 15th May, 1st August and 11th November. RECEIVED = Paid on the 20th March, 19th June, 24th September and 20th December. Individual Patterns: EvryDay (ScheduleCode) EvryWorkgDay (ScheduleCode) IntrvlDay:NoOfDay (ScheduleCode + NoOfDay) IntrvlWkDay:IntervalInWeeks:DayInWeek (ScheduleCode + IntervalInWeeks + DayInWeek) WkInMnthDay:WeekInMonth:DayInWeek (ScheduleCode + WeekInMonth + DayInWeek) IntrvlMnthDay:IntervalInMonths:DayInMonth (ScheduleCode + IntervalInMonths + DayInMonth) QtrDay: + either (ENGLISH, SCOTTISH or RECEIVED) ScheduleCode + QuarterDay The regular expression for this element combines five smaller versions for each permitted pattern. To aid legibility - the components are presented individually here: EvryDay EvryWorkgDay IntrvlDay:((0[2-9])|([1-2][0-9])|3[0-1]) IntrvlWkDay:0[1-9]:0[1-7] WkInMnthDay:0[1-5]:0[1-7] IntrvlMnthDay:(0[1-6]|12|24):(-0[1-5]|0[1-9]|[12][0-9]|3[01]) QtrDay:(ENGLISH|SCOTTISH|RECEIVED) Full Regular Expression: ^(EvryDay)$|^(EvryWorkgDay)$|^(IntrvlDay:((0[2-9])|([1-2][0-9])|3[0-1]))$|^(IntrvlWkDay:0[1-9]:0[1-7])$|^(WkInMnthDay:0[1-5]:0[1-7])$|^(IntrvlMnthDay:(0[1-6]|12|24):(-0[1-5]|0[1-9]|[12][0-9]|3[01]))$|^(QtrDay:(ENGLISH|SCOTTISH|RECEIVED))$ (required).</param> /// <param name="reference">Unique reference, as assigned by the creditor, to unambiguously refer to the payment transaction. Usage: If available, the initiating party should provide this reference in the structured remittance information, to enable reconciliation by the creditor upon receipt of the amount of money. If the business context requires the use of a creditor reference or a payment remit identification, and only one identifier can be passed through the end-to-end chain, the creditor's reference or payment remittance identification should be quoted in the end-to-end transaction identification..</param> /// <param name="numberOfPayments">Number of the payments that will be made in completing this frequency sequence including any executed since the sequence start date..</param> /// <param name="firstPaymentDateTime">The date on which the first payment for a Standing Order schedule will be made. All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00 (required).</param> /// <param name="finalPaymentDateTime">The date on which the final payment for a Standing Order schedule will be made. All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00.</param> /// <param name="purpose">Specifies the external purpose code in the format of character string with a maximum length of 4 characters. The list of valid codes is an external code list published separately. External code sets can be downloaded from www.iso20022.org..</param> /// <param name="chargeBearer">chargeBearer.</param> /// <param name="currencyOfTransfer">Specifies the currency of the to be transferred amount, which is different from the currency of the debtor's account. (required).</param> /// <param name="instructedAmount">instructedAmount (required).</param> /// <param name="debtorAccount">debtorAccount.</param> /// <param name="creditor">creditor.</param> /// <param name="creditorAgent">creditorAgent.</param> /// <param name="creditorAccount">creditorAccount (required).</param> /// <param name="supplementaryData">Additional information that can not be captured in the structured fields and/or any other specific block..</param> public OBInternationalStandingOrder3(string frequency = default(string), string reference = default(string), string numberOfPayments = default(string), DateTimeOffset firstPaymentDateTime = default(DateTimeOffset), DateTimeOffset finalPaymentDateTime = default(DateTimeOffset), string purpose = default(string), OBChargeBearerType1Code?chargeBearer = default(OBChargeBearerType1Code?), string currencyOfTransfer = default(string), OBDomestic2InstructedAmount instructedAmount = default(OBDomestic2InstructedAmount), OBCashAccountDebtor4 debtorAccount = default(OBCashAccountDebtor4), OBPartyIdentification43 creditor = default(OBPartyIdentification43), OBBranchAndFinancialInstitutionIdentification6 creditorAgent = default(OBBranchAndFinancialInstitutionIdentification6), OBCashAccountCreditor3 creditorAccount = default(OBCashAccountCreditor3), Object supplementaryData = default(Object)) { // to ensure "frequency" is required (not null) this.Frequency = frequency ?? throw new ArgumentNullException("frequency is a required property for OBInternationalStandingOrder3 and cannot be null"); this.FirstPaymentDateTime = firstPaymentDateTime; // to ensure "currencyOfTransfer" is required (not null) this.CurrencyOfTransfer = currencyOfTransfer ?? throw new ArgumentNullException("currencyOfTransfer is a required property for OBInternationalStandingOrder3 and cannot be null"); // to ensure "instructedAmount" is required (not null) this.InstructedAmount = instructedAmount ?? throw new ArgumentNullException("instructedAmount is a required property for OBInternationalStandingOrder3 and cannot be null"); // to ensure "creditorAccount" is required (not null) this.CreditorAccount = creditorAccount ?? throw new ArgumentNullException("creditorAccount is a required property for OBInternationalStandingOrder3 and cannot be null"); this.Reference = reference; this.NumberOfPayments = numberOfPayments; this.FinalPaymentDateTime = finalPaymentDateTime; this.Purpose = purpose; this.ChargeBearer = chargeBearer; this.DebtorAccount = debtorAccount; this.Creditor = creditor; this.CreditorAgent = creditorAgent; this.SupplementaryData = supplementaryData; }
/// <summary> /// Initializes a new instance of the <see cref="OBInternational2" /> class. /// </summary> /// <param name="instructionIdentification">Unique identification as assigned by an instructing party for an instructed party to unambiguously identify the instruction. Usage: the instruction identification is a point to point reference that can be used between the instructing party and the instructed party to refer to the individual instruction. It can be included in several messages related to the instruction. (required).</param> /// <param name="endToEndIdentification">Unique identification assigned by the initiating party to unambiguously identify the transaction. This identification is passed on, unchanged, throughout the entire end-to-end chain. Usage: The end-to-end identification can be used for reconciliation or to link tasks relating to the transaction. It can be included in several messages related to the transaction. OB: The Faster Payments Scheme can only access 31 characters for the EndToEndIdentification field. (required).</param> /// <param name="localInstrument">User community specific instrument. Usage: This element is used to specify a local instrument, local clearing option and/or further qualify the service or service level..</param> /// <param name="instructionPriority">instructionPriority.</param> /// <param name="purpose">Specifies the external purpose code in the format of character string with a maximum length of 4 characters. The list of valid codes is an external code list published separately. External code sets can be downloaded from www.iso20022.org..</param> /// <param name="chargeBearer">chargeBearer.</param> /// <param name="currencyOfTransfer">Specifies the currency of the to be transferred amount, which is different from the currency of the debtor's account. (required).</param> /// <param name="instructedAmount">instructedAmount (required).</param> /// <param name="exchangeRateInformation">exchangeRateInformation.</param> /// <param name="debtorAccount">debtorAccount.</param> /// <param name="creditor">creditor.</param> /// <param name="creditorAgent">creditorAgent.</param> /// <param name="creditorAccount">creditorAccount (required).</param> /// <param name="remittanceInformation">remittanceInformation.</param> /// <param name="supplementaryData">Additional information that can not be captured in the structured fields and/or any other specific block..</param> public OBInternational2(string instructionIdentification = default(string), string endToEndIdentification = default(string), string localInstrument = default(string), OBPriority2Code?instructionPriority = default(OBPriority2Code?), string purpose = default(string), OBChargeBearerType1Code?chargeBearer = default(OBChargeBearerType1Code?), string currencyOfTransfer = default(string), OBDomestic2InstructedAmount instructedAmount = default(OBDomestic2InstructedAmount), OBExchangeRate1 exchangeRateInformation = default(OBExchangeRate1), OBCashAccountDebtor4 debtorAccount = default(OBCashAccountDebtor4), OBPartyIdentification43 creditor = default(OBPartyIdentification43), OBBranchAndFinancialInstitutionIdentification6 creditorAgent = default(OBBranchAndFinancialInstitutionIdentification6), OBCashAccountCreditor3 creditorAccount = default(OBCashAccountCreditor3), OBRemittanceInformation1 remittanceInformation = default(OBRemittanceInformation1), Object supplementaryData = default(Object)) { // to ensure "instructionIdentification" is required (not null) this.InstructionIdentification = instructionIdentification ?? throw new ArgumentNullException("instructionIdentification is a required property for OBInternational2 and cannot be null"); // to ensure "endToEndIdentification" is required (not null) this.EndToEndIdentification = endToEndIdentification ?? throw new ArgumentNullException("endToEndIdentification is a required property for OBInternational2 and cannot be null"); // to ensure "currencyOfTransfer" is required (not null) this.CurrencyOfTransfer = currencyOfTransfer ?? throw new ArgumentNullException("currencyOfTransfer is a required property for OBInternational2 and cannot be null"); // to ensure "instructedAmount" is required (not null) this.InstructedAmount = instructedAmount ?? throw new ArgumentNullException("instructedAmount is a required property for OBInternational2 and cannot be null"); // to ensure "creditorAccount" is required (not null) this.CreditorAccount = creditorAccount ?? throw new ArgumentNullException("creditorAccount is a required property for OBInternational2 and cannot be null"); this.LocalInstrument = localInstrument; this.InstructionPriority = instructionPriority; this.Purpose = purpose; this.ChargeBearer = chargeBearer; this.ExchangeRateInformation = exchangeRateInformation; this.DebtorAccount = debtorAccount; this.Creditor = creditor; this.CreditorAgent = creditorAgent; this.RemittanceInformation = remittanceInformation; this.SupplementaryData = supplementaryData; }
/// <summary> /// Initializes a new instance of the <see cref="OBDomesticScheduled2" /> class. /// </summary> /// <param name="instructionIdentification">Unique identification as assigned by an instructing party for an instructed party to unambiguously identify the instruction. Usage: the instruction identification is a point to point reference that can be used between the instructing party and the instructed party to refer to the individual instruction. It can be included in several messages related to the instruction. (required).</param> /// <param name="endToEndIdentification">Unique identification assigned by the initiating party to unambiguously identify the transaction. This identification is passed on, unchanged, throughout the entire end-to-end chain. Usage: The end-to-end identification can be used for reconciliation or to link tasks relating to the transaction. It can be included in several messages related to the transaction. OB: The Faster Payments Scheme can only access 31 characters for the EndToEndIdentification field..</param> /// <param name="localInstrument">User community specific instrument. Usage: This element is used to specify a local instrument, local clearing option and/or further qualify the service or service level..</param> /// <param name="requestedExecutionDateTime">Date at which the initiating party requests the clearing agent to process the payment. Usage: This is the date on which the debtor's account is to be debited. All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00 (required).</param> /// <param name="instructedAmount">instructedAmount (required).</param> /// <param name="debtorAccount">debtorAccount.</param> /// <param name="creditorAccount">creditorAccount (required).</param> /// <param name="creditorPostalAddress">creditorPostalAddress.</param> /// <param name="remittanceInformation">remittanceInformation.</param> /// <param name="supplementaryData">Additional information that can not be captured in the structured fields and/or any other specific block..</param> public OBDomesticScheduled2(string instructionIdentification = default(string), string endToEndIdentification = default(string), string localInstrument = default(string), DateTimeOffset requestedExecutionDateTime = default(DateTimeOffset), OBDomestic2InstructedAmount instructedAmount = default(OBDomestic2InstructedAmount), OBCashAccountDebtor4 debtorAccount = default(OBCashAccountDebtor4), OBCashAccountCreditor3 creditorAccount = default(OBCashAccountCreditor3), OBPostalAddress6 creditorPostalAddress = default(OBPostalAddress6), OBRemittanceInformation1 remittanceInformation = default(OBRemittanceInformation1), Object supplementaryData = default(Object)) { // to ensure "instructionIdentification" is required (not null) this.InstructionIdentification = instructionIdentification ?? throw new ArgumentNullException("instructionIdentification is a required property for OBDomesticScheduled2 and cannot be null"); this.RequestedExecutionDateTime = requestedExecutionDateTime; // to ensure "instructedAmount" is required (not null) this.InstructedAmount = instructedAmount ?? throw new ArgumentNullException("instructedAmount is a required property for OBDomesticScheduled2 and cannot be null"); // to ensure "creditorAccount" is required (not null) this.CreditorAccount = creditorAccount ?? throw new ArgumentNullException("creditorAccount is a required property for OBDomesticScheduled2 and cannot be null"); this.EndToEndIdentification = endToEndIdentification; this.LocalInstrument = localInstrument; this.DebtorAccount = debtorAccount; this.CreditorPostalAddress = creditorPostalAddress; this.RemittanceInformation = remittanceInformation; this.SupplementaryData = supplementaryData; }
/// <summary> /// Initializes a new instance of the <see cref="OBDomesticStandingOrder3" /> class. /// </summary> /// <param name="frequency">Individual Definitions: EvryDay - Every day EvryWorkgDay - Every working day IntrvlDay - An interval specified in number of calendar days (02 to 31) IntrvlWkDay - An interval specified in weeks (01 to 09), and the day within the week (01 to 07) WkInMnthDay - A monthly interval, specifying the week of the month (01 to 05) and day within the week (01 to 07) IntrvlMnthDay - An interval specified in months (between 01 to 06, 12, 24), specifying the day within the month (-05 to -01, 1 to 31) QtrDay - Quarterly (either ENGLISH, SCOTTISH, or RECEIVED). ENGLISH = Paid on the 25th March, 24th June, 29th September and 25th December. SCOTTISH = Paid on the 2nd February, 15th May, 1st August and 11th November. RECEIVED = Paid on the 20th March, 19th June, 24th September and 20th December. Individual Patterns: EvryDay (ScheduleCode) EvryWorkgDay (ScheduleCode) IntrvlDay:NoOfDay (ScheduleCode + NoOfDay) IntrvlWkDay:IntervalInWeeks:DayInWeek (ScheduleCode + IntervalInWeeks + DayInWeek) WkInMnthDay:WeekInMonth:DayInWeek (ScheduleCode + WeekInMonth + DayInWeek) IntrvlMnthDay:IntervalInMonths:DayInMonth (ScheduleCode + IntervalInMonths + DayInMonth) QtrDay: + either (ENGLISH, SCOTTISH or RECEIVED) ScheduleCode + QuarterDay The regular expression for this element combines five smaller versions for each permitted pattern. To aid legibility - the components are presented individually here: EvryDay EvryWorkgDay IntrvlDay:((0[2-9])|([1-2][0-9])|3[0-1]) IntrvlWkDay:0[1-9]:0[1-7] WkInMnthDay:0[1-5]:0[1-7] IntrvlMnthDay:(0[1-6]|12|24):(-0[1-5]|0[1-9]|[12][0-9]|3[01]) QtrDay:(ENGLISH|SCOTTISH|RECEIVED) Full Regular Expression: ^(EvryDay)$|^(EvryWorkgDay)$|^(IntrvlDay:((0[2-9])|([1-2][0-9])|3[0-1]))$|^(IntrvlWkDay:0[1-9]:0[1-7])$|^(WkInMnthDay:0[1-5]:0[1-7])$|^(IntrvlMnthDay:(0[1-6]|12|24):(-0[1-5]|0[1-9]|[12][0-9]|3[01]))$|^(QtrDay:(ENGLISH|SCOTTISH|RECEIVED))$ (required).</param> /// <param name="reference">Unique reference, as assigned by the creditor, to unambiguously refer to the payment transaction. Usage: If available, the initiating party should provide this reference in the structured remittance information, to enable reconciliation by the creditor upon receipt of the amount of money. If the business context requires the use of a creditor reference or a payment remit identification, and only one identifier can be passed through the end-to-end chain, the creditor's reference or payment remittance identification should be quoted in the end-to-end transaction identification..</param> /// <param name="numberOfPayments">Number of the payments that will be made in completing this frequency sequence including any executed since the sequence start date..</param> /// <param name="firstPaymentDateTime">The date on which the first payment for a Standing Order schedule will be made. All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00 (required).</param> /// <param name="recurringPaymentDateTime">The date on which the first recurring payment for a Standing Order schedule will be made. Usage: This must be populated only if the first recurring date is different to the first payment date. All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00.</param> /// <param name="finalPaymentDateTime">The date on which the final payment for a Standing Order schedule will be made. All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00.</param> /// <param name="firstPaymentAmount">firstPaymentAmount (required).</param> /// <param name="recurringPaymentAmount">recurringPaymentAmount.</param> /// <param name="finalPaymentAmount">finalPaymentAmount.</param> /// <param name="debtorAccount">debtorAccount.</param> /// <param name="creditorAccount">creditorAccount (required).</param> /// <param name="supplementaryData">Additional information that can not be captured in the structured fields and/or any other specific block..</param> public OBDomesticStandingOrder3(string frequency = default(string), string reference = default(string), string numberOfPayments = default(string), DateTimeOffset firstPaymentDateTime = default(DateTimeOffset), DateTimeOffset recurringPaymentDateTime = default(DateTimeOffset), DateTimeOffset finalPaymentDateTime = default(DateTimeOffset), OBDomesticStandingOrder3FirstPaymentAmount firstPaymentAmount = default(OBDomesticStandingOrder3FirstPaymentAmount), OBDomesticStandingOrder3RecurringPaymentAmount recurringPaymentAmount = default(OBDomesticStandingOrder3RecurringPaymentAmount), OBDomesticStandingOrder3FinalPaymentAmount finalPaymentAmount = default(OBDomesticStandingOrder3FinalPaymentAmount), OBCashAccountDebtor4 debtorAccount = default(OBCashAccountDebtor4), OBCashAccountCreditor3 creditorAccount = default(OBCashAccountCreditor3), Object supplementaryData = default(Object)) { // to ensure "frequency" is required (not null) this.Frequency = frequency ?? throw new ArgumentNullException("frequency is a required property for OBDomesticStandingOrder3 and cannot be null"); this.FirstPaymentDateTime = firstPaymentDateTime; // to ensure "firstPaymentAmount" is required (not null) this.FirstPaymentAmount = firstPaymentAmount ?? throw new ArgumentNullException("firstPaymentAmount is a required property for OBDomesticStandingOrder3 and cannot be null"); // to ensure "creditorAccount" is required (not null) this.CreditorAccount = creditorAccount ?? throw new ArgumentNullException("creditorAccount is a required property for OBDomesticStandingOrder3 and cannot be null"); this.Reference = reference; this.NumberOfPayments = numberOfPayments; this.RecurringPaymentDateTime = recurringPaymentDateTime; this.FinalPaymentDateTime = finalPaymentDateTime; this.RecurringPaymentAmount = recurringPaymentAmount; this.FinalPaymentAmount = finalPaymentAmount; this.DebtorAccount = debtorAccount; this.SupplementaryData = supplementaryData; }