From 6da5187e4b7139b9944fba6e0dc0848d1ab33edd Mon Sep 17 00:00:00 2001 From: Claudio Schaad Date: Sat, 6 Jul 2019 15:12:08 +0200 Subject: [PATCH] Initital --- .gitignore | 13 + .../AccountStatements/AccountStatement.cs | 42 + .../AccountStatementResult.cs | 18 + .../AccountStatements/Balance.cs | 25 + .../AccountStatements/Transaction.cs | 57 + .../AccountStatements/TransactionSummary.cs | 9 + Schaad.Finance.Api/CreditCardProvider.cs | 7 + .../Datasets/CreditCardTransaction.cs | 13 + .../IAccountStatementParsingService.cs | 12 + .../IAccountStatementService.cs | 11 + .../ICreditCardStatementService.cs | 11 + Schaad.Finance.Api/IFxService.cs | 10 + Schaad.Finance.Api/Schaad.Finance.Api.csproj | 11 + .../AccountStatementServiceTest.cs | 33 + .../CreditCardStatementServiceTest.cs | 28 + Schaad.Finance.Tests/Data/camt053.xml | 162 + Schaad.Finance.Tests/Data/cembra.csv | 5 + Schaad.Finance.Tests/Data/mt940.sta | 47 + Schaad.Finance.Tests/FxServiceTest.cs | 35 + .../Schaad.Finance.Tests.csproj | 46 + Schaad.Finance.sln | 37 + .../Formats/AccountStatements/CAMT053.cs | 164 + .../Formats/AccountStatements/MT940.cs | 195 + .../Models/camt_053_001_04.cs | 11206 ++++++++++++++++ .../AccountStatements/camt.053.001.02.xsd | 1298 ++ .../AccountStatements/camt.053.001.04.xsd | 1764 +++ .../Formats/CreditCardProvider/CembraMap.cs | 17 + Schaad.Finance/Schaad.Finance.csproj | 17 + .../Services/AccountStatementService.cs | 44 + .../Services/CreditCardStatementService.cs | 39 + Schaad.Finance/Services/FxService.cs | 81 + 31 files changed, 15457 insertions(+) create mode 100644 .gitignore create mode 100644 Schaad.Finance.Api/AccountStatements/AccountStatement.cs create mode 100644 Schaad.Finance.Api/AccountStatements/AccountStatementResult.cs create mode 100644 Schaad.Finance.Api/AccountStatements/Balance.cs create mode 100644 Schaad.Finance.Api/AccountStatements/Transaction.cs create mode 100644 Schaad.Finance.Api/AccountStatements/TransactionSummary.cs create mode 100644 Schaad.Finance.Api/CreditCardProvider.cs create mode 100644 Schaad.Finance.Api/Datasets/CreditCardTransaction.cs create mode 100644 Schaad.Finance.Api/IAccountStatementParsingService.cs create mode 100644 Schaad.Finance.Api/IAccountStatementService.cs create mode 100644 Schaad.Finance.Api/ICreditCardStatementService.cs create mode 100644 Schaad.Finance.Api/IFxService.cs create mode 100644 Schaad.Finance.Api/Schaad.Finance.Api.csproj create mode 100644 Schaad.Finance.Tests/AccountStatementServiceTest.cs create mode 100644 Schaad.Finance.Tests/CreditCardStatementServiceTest.cs create mode 100644 Schaad.Finance.Tests/Data/camt053.xml create mode 100644 Schaad.Finance.Tests/Data/cembra.csv create mode 100644 Schaad.Finance.Tests/Data/mt940.sta create mode 100644 Schaad.Finance.Tests/FxServiceTest.cs create mode 100644 Schaad.Finance.Tests/Schaad.Finance.Tests.csproj create mode 100644 Schaad.Finance.sln create mode 100644 Schaad.Finance/Formats/AccountStatements/CAMT053.cs create mode 100644 Schaad.Finance/Formats/AccountStatements/MT940.cs create mode 100644 Schaad.Finance/Formats/AccountStatements/Models/camt_053_001_04.cs create mode 100644 Schaad.Finance/Formats/AccountStatements/camt.053.001.02.xsd create mode 100644 Schaad.Finance/Formats/AccountStatements/camt.053.001.04.xsd create mode 100644 Schaad.Finance/Formats/CreditCardProvider/CembraMap.cs create mode 100644 Schaad.Finance/Schaad.Finance.csproj create mode 100644 Schaad.Finance/Services/AccountStatementService.cs create mode 100644 Schaad.Finance/Services/CreditCardStatementService.cs create mode 100644 Schaad.Finance/Services/FxService.cs diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c5b7968 --- /dev/null +++ b/.gitignore @@ -0,0 +1,13 @@ +################################################################################ +# This .gitignore file was automatically created by Microsoft(R) Visual Studio. +################################################################################ + +/Schaad.Finance/bin/Debug +/Schaad.Finance/obj +*.user +/Schaad.Finance.Api/bin/Debug/netstandard2.0 +/Schaad.Finance.Api/obj +/Schaad.Finance.Tests/bin/Debug/netcoreapp2.0 +/Schaad.Finance.Tests/obj +/Schaad.Finance.Api/.vs/Schaad.Finances.Api +/.vs/Schaad.Finance diff --git a/Schaad.Finance.Api/AccountStatements/AccountStatement.cs b/Schaad.Finance.Api/AccountStatements/AccountStatement.cs new file mode 100644 index 0000000..4c03b65 --- /dev/null +++ b/Schaad.Finance.Api/AccountStatements/AccountStatement.cs @@ -0,0 +1,42 @@ +using System.Collections.Generic; + +namespace Schaad.Finance.Api.AccountStatements +{ + public class AccountStatement + { + /// + /// The account number (IBAN) + /// + public string AccountNumber { get; set; } + + /// + /// Account Currency + /// + public string Currency { get; set; } + + /// + /// The starting balance + /// + public Balance StartBalance { get; set; } + + /// + /// The end balance + /// + public Balance EndBalance { get; set; } + + /// + /// Summary of all credit transactions (camt) + /// + public TransactionSummary CreditTransactionSummary { get; set; } + + /// + /// Summary of all debit transactions (camt) + /// + public TransactionSummary DebitTransactionSummary { get; set; } + + /// + /// A list of transactions + /// + public List Transactions { get; set; } = new List(); + } +} diff --git a/Schaad.Finance.Api/AccountStatements/AccountStatementResult.cs b/Schaad.Finance.Api/AccountStatements/AccountStatementResult.cs new file mode 100644 index 0000000..08787e1 --- /dev/null +++ b/Schaad.Finance.Api/AccountStatements/AccountStatementResult.cs @@ -0,0 +1,18 @@ +namespace Schaad.Finance.Api.AccountStatements +{ + public class AccountStatementResult + { + public readonly AccountStatement AccountStatement; + + public readonly bool IsSuccess; + + public readonly string Error; + + public AccountStatementResult(AccountStatement accountStatement, string error) + { + AccountStatement = accountStatement; + Error = error; + IsSuccess = string.IsNullOrEmpty(error); + } + } +} diff --git a/Schaad.Finance.Api/AccountStatements/Balance.cs b/Schaad.Finance.Api/AccountStatements/Balance.cs new file mode 100644 index 0000000..781ff79 --- /dev/null +++ b/Schaad.Finance.Api/AccountStatements/Balance.cs @@ -0,0 +1,25 @@ +using System; + +namespace Schaad.Finance.Api.AccountStatements +{ + /// + /// Detailed balance info + /// + public class Balance + { + /// + /// Date of balance + /// + public DateTime BookingDate { get; set; } + + /// + /// Currency of balance + /// + public string Currency { get; set; } + + /// + /// Value + /// + public double Value { get; set; } + } +} diff --git a/Schaad.Finance.Api/AccountStatements/Transaction.cs b/Schaad.Finance.Api/AccountStatements/Transaction.cs new file mode 100644 index 0000000..f4ae8a3 --- /dev/null +++ b/Schaad.Finance.Api/AccountStatements/Transaction.cs @@ -0,0 +1,57 @@ +using System; +using System.Security.Cryptography; +using System.Text; + +namespace Schaad.Finance.Api.AccountStatements +{ + /// + /// A transaction + /// + public class Transaction + { + public string Id + { + set + { + id = value; + } + get + { + if (string.IsNullOrEmpty(id)) + { + return GetHashString(ValueDate.ToString("yyyyMMdd") + Value + Text); + } + else + { + return id; + } + } + } + private string id; + + public DateTime ValueDate { get; set; } + + public DateTime BookingDate { get; set; } + + public double Value { get; set; } + + public string Text { get; set; } + + private string GetHashString(string inputString) + { + var sb = new StringBuilder(); + foreach (byte b in GetHash(inputString)) + { + sb.Append(b.ToString("X2")); + } + + return sb.ToString(); + } + + private byte[] GetHash(string inputString) + { + var algorithm = MD5.Create(); //or use SHA1.Create(); + return algorithm.ComputeHash(Encoding.UTF8.GetBytes(inputString)); + } + } +} diff --git a/Schaad.Finance.Api/AccountStatements/TransactionSummary.cs b/Schaad.Finance.Api/AccountStatements/TransactionSummary.cs new file mode 100644 index 0000000..a31ca03 --- /dev/null +++ b/Schaad.Finance.Api/AccountStatements/TransactionSummary.cs @@ -0,0 +1,9 @@ +namespace Schaad.Finance.Api.AccountStatements +{ + public class TransactionSummary + { + public int NumberOfTransaction { get; set; } + + public decimal Sum { get; set; } + } +} diff --git a/Schaad.Finance.Api/CreditCardProvider.cs b/Schaad.Finance.Api/CreditCardProvider.cs new file mode 100644 index 0000000..cac7bc3 --- /dev/null +++ b/Schaad.Finance.Api/CreditCardProvider.cs @@ -0,0 +1,7 @@ +namespace Schaad.Finance.Api +{ + public enum CreditCardProvider + { + Cembra + } +} diff --git a/Schaad.Finance.Api/Datasets/CreditCardTransaction.cs b/Schaad.Finance.Api/Datasets/CreditCardTransaction.cs new file mode 100644 index 0000000..ec23258 --- /dev/null +++ b/Schaad.Finance.Api/Datasets/CreditCardTransaction.cs @@ -0,0 +1,13 @@ +using System; + +namespace Schaad.Finance.Api.Datasets +{ + public class CreditCardTransaction + { + public DateTime BookingDate { get; set; } + public DateTime TransactionDate { get; set; } + public string Transaction { get; set; } + public string TransactionType { get; set; } + public decimal Amount { get; set; } + } +} diff --git a/Schaad.Finance.Api/IAccountStatementParsingService.cs b/Schaad.Finance.Api/IAccountStatementParsingService.cs new file mode 100644 index 0000000..8ca42b1 --- /dev/null +++ b/Schaad.Finance.Api/IAccountStatementParsingService.cs @@ -0,0 +1,12 @@ +using Schaad.Finance.Api.AccountStatements; +using System.Collections.Generic; +using System.Text; + +namespace Schaad.Finance.Api +{ + public interface IAccountStatementParsingService + { + List ReadFile(string filePath, Encoding encoding); + string ValidateAccountStatement(AccountStatement accountStatement); + } +} \ No newline at end of file diff --git a/Schaad.Finance.Api/IAccountStatementService.cs b/Schaad.Finance.Api/IAccountStatementService.cs new file mode 100644 index 0000000..7e718e3 --- /dev/null +++ b/Schaad.Finance.Api/IAccountStatementService.cs @@ -0,0 +1,11 @@ +using Schaad.Finance.Api.AccountStatements; +using System.Collections.Generic; +using System.Text; + +namespace Schaad.Finance.Api +{ + public interface IAccountStatementService + { + List ReadFile(string filePath, Encoding encoding); + } +} \ No newline at end of file diff --git a/Schaad.Finance.Api/ICreditCardStatementService.cs b/Schaad.Finance.Api/ICreditCardStatementService.cs new file mode 100644 index 0000000..90749eb --- /dev/null +++ b/Schaad.Finance.Api/ICreditCardStatementService.cs @@ -0,0 +1,11 @@ +using Schaad.Finance.Api.Datasets; +using System.Collections.Generic; +using System.Text; + +namespace Schaad.Finance.Api +{ + public interface ICreditCardStatementService + { + IReadOnlyList ReadFile(CreditCardProvider creditCardProvider, string filePath, Encoding encoding); + } +} \ No newline at end of file diff --git a/Schaad.Finance.Api/IFxService.cs b/Schaad.Finance.Api/IFxService.cs new file mode 100644 index 0000000..65b9a47 --- /dev/null +++ b/Schaad.Finance.Api/IFxService.cs @@ -0,0 +1,10 @@ +using System; + +namespace Schaad.Finance.Api +{ + public interface IFxService + { + decimal ConvertCurrency(decimal amount, string fromCurrency, string toCurrency, string fixerIoApiKey); + decimal GetFxRate(string fromCurrency, string toCurrency, DateTime date, string fixerIoApiKey); + } +} \ No newline at end of file diff --git a/Schaad.Finance.Api/Schaad.Finance.Api.csproj b/Schaad.Finance.Api/Schaad.Finance.Api.csproj new file mode 100644 index 0000000..b6c502b --- /dev/null +++ b/Schaad.Finance.Api/Schaad.Finance.Api.csproj @@ -0,0 +1,11 @@ + + + + netstandard2.0 + + + + + + + diff --git a/Schaad.Finance.Tests/AccountStatementServiceTest.cs b/Schaad.Finance.Tests/AccountStatementServiceTest.cs new file mode 100644 index 0000000..c6ebedd --- /dev/null +++ b/Schaad.Finance.Tests/AccountStatementServiceTest.cs @@ -0,0 +1,33 @@ +using NUnit.Framework; +using Schaad.Finance.Services; + +namespace Schaad.Finance.Tests +{ + [TestFixture] + public class AccountStatementServiceTest + { + private AccountStatementService service; + + [SetUp] + public void Startup() + { + service = new AccountStatementService(); + } + + [Test] + public void ReadFile_MT940() + { + var statements = service.ReadFile(@"Data\mt940.sta", System.Text.Encoding.UTF8); + + Assert.That(statements.TrueForAll(s => s.IsSuccess)); + } + + [Test] + public void ReadFile_CAMT053() + { + var statements = service.ReadFile(@"Data\camt053.xml", System.Text.Encoding.UTF8); + + Assert.That(statements.TrueForAll(s => s.IsSuccess)); + } + } +} diff --git a/Schaad.Finance.Tests/CreditCardStatementServiceTest.cs b/Schaad.Finance.Tests/CreditCardStatementServiceTest.cs new file mode 100644 index 0000000..2bc3618 --- /dev/null +++ b/Schaad.Finance.Tests/CreditCardStatementServiceTest.cs @@ -0,0 +1,28 @@ +using NUnit.Framework; +using Schaad.Finance.Api; +using Schaad.Finance.Services; +using System.Linq; + +namespace Schaad.Finance.Tests +{ + [TestFixture] + public class CreditCardStatementServiceTest + { + private CreditCardStatementService service; + + [SetUp] + public void Startup() + { + service = new CreditCardStatementService(); + } + + [Test] + public void ReadFile_Cembra() + { + var transactions = service.ReadFile(CreditCardProvider.Cembra, @"Data\cembra.csv", System.Text.Encoding.UTF8); + + Assert.That(transactions.Count, Is.EqualTo(4)); + Assert.That(transactions.Sum(t => t.Amount), Is.EqualTo(144.60m)); + } + } +} diff --git a/Schaad.Finance.Tests/Data/camt053.xml b/Schaad.Finance.Tests/Data/camt053.xml new file mode 100644 index 0000000..f050e0d --- /dev/null +++ b/Schaad.Finance.Tests/Data/camt053.xml @@ -0,0 +1,162 @@ + + + + + MSG-C053-190706014611-01 + 2019-07-06T00:00:00 + + 1 + true + + RECONSTRUCTION + + + STM-C053-190706014611-02 + 999999 + 2019-07-06T00:00:00 + + 2019-07-01T00:00:00 + 2019-07-05T00:00:00 + + DUPL + + + CH3789144975191379986 + + + Schaad Claudio + + + + + + OPBD + + + 2468.71 + CRDT +
+
2019-07-01
+ +
+ + + + CLBD + + + 2444.01 + CRDT +
+
2019-07-05
+ +
+ + + 2 + 24.70 + + + + 1532133113 + 15.45 + DBIT + BOOK + +
2019-07-01
+
+ +
2019-06-28
+
+ + + PMNT + + * + * + + + + + + 15.45 + DBIT + + +PMNT + + * + * + + + + + + Migros M EX Sihlpass + + Warenbezug und Dienstleistungen +Migros M EX Sihlpass +Maestro Karte +Kartennummer xxx +28.06.2019 18:43 + + + Warenbezug und Dienstleistungen +Migros M EX Sihlpass +Maestro Karte +Kartennummer xxx +28.06.2019 18:43 +
+ + 1531481701 + 9.25 + DBIT + BOOK + +
2019-07-01
+
+ +
2019-06-28
+
+ + + PMNT + + * + * + + + + + + 9.25 + DBIT + + +PMNT + + * + * + + + + + + Coop-5013 ZH Maagpla + + Warenbezug und Dienstleistungen +Coop-5013 ZH Maagpla +Maestro Karte +Kartennummer xxx +28.06.2019 06:49 + + + Warenbezug und Dienstleistungen +Coop-5013 ZH Maagpla +Maestro Karte +Kartennummer xxx +28.06.2019 06:49 +
+
+
+
diff --git a/Schaad.Finance.Tests/Data/cembra.csv b/Schaad.Finance.Tests/Data/cembra.csv new file mode 100644 index 0000000..84269d5 --- /dev/null +++ b/Schaad.Finance.Tests/Data/cembra.csv @@ -0,0 +1,5 @@ +Booking Date;Transaction Date;;Transaction;Type;Amount (CHF); +05.07.2019;05.07.2019;;MIGROS WEINFELDEN;Debit;37.00; +04.07.2019;04.07.2019;;MIGROS WEINFELDEN;Debit;46.95; +02.07.2019;02.07.2019;;MIGROS WEINFELDEN;Debit;47.75; +02.07.2019;02.07.2019;;ITUNES.COM/BILL 0800001853 IRL;Debit;12.90; diff --git a/Schaad.Finance.Tests/Data/mt940.sta b/Schaad.Finance.Tests/Data/mt940.sta new file mode 100644 index 0000000..bdacb4d --- /dev/null +++ b/Schaad.Finance.Tests/Data/mt940.sta @@ -0,0 +1,47 @@ + +:20:STARTUMS +:25:123456789 +:28:00001 +:NS:22 Schaad Claudio +23Privatkonto +3000000784 +314448809 +32000 +:60F:C190701CHF000000002468,71 +:61:1906280701D000000000015,45FMSCNONREF +:NS:01Warenbezug und Dienstleistungen +02Migros M EX Sihlpass +03Maestro Karte +04Kartennummer xxx +0528.06.2019 18:43 +06 +07 +08 +09 +10 +11 +12 +13 +14 +15 +16 +17Warenbezug und Dienstleistungen +:61:1906280701D000000000009,25FMSCNONREF +:NS:01Warenbezug und Dienstleistungen +02Coop-5013 ZH Maagpla +03Maestro Karte +04Kartennummer xxx +0528.06.2019 06:49 +06 +07 +08 +09 +10 +11 +12 +13 +14 +15 +16 +17Warenbezug und Dienstleistungen +:62F:C190705CHF000000002444,01 diff --git a/Schaad.Finance.Tests/FxServiceTest.cs b/Schaad.Finance.Tests/FxServiceTest.cs new file mode 100644 index 0000000..69da322 --- /dev/null +++ b/Schaad.Finance.Tests/FxServiceTest.cs @@ -0,0 +1,35 @@ +using NUnit.Framework; +using Schaad.Finance.Services; + +namespace Schaad.Finance.Tests +{ + [TestFixture] + public class FxServiceTest + { + private FxService service; + + private const string FIXERIO_API_KEY = ""; + + [SetUp] + public void Startup() + { + service = new FxService(); + } + + [Test] + public void GetFxRate_EUR2CHF() + { + var fxRate = service.GetFxRate("EUR", "CHF", new System.DateTime(2019, 07, 01), FIXERIO_API_KEY); + + Assert.That(fxRate, Is.EqualTo(1.114262m)); + } + + [Test] + public void ConvertCurrency_100EUR2CHF() + { + var amount = service.ConvertCurrency(100, "EUR", "CHF", FIXERIO_API_KEY); + + Assert.That(amount, Is.GreaterThan(100)); + } + } +} diff --git a/Schaad.Finance.Tests/Schaad.Finance.Tests.csproj b/Schaad.Finance.Tests/Schaad.Finance.Tests.csproj new file mode 100644 index 0000000..f1f376e --- /dev/null +++ b/Schaad.Finance.Tests/Schaad.Finance.Tests.csproj @@ -0,0 +1,46 @@ + + + + netcoreapp2.0 + + false + + + + + + + + + + + + + + + + + + + + + ..\dlls\Schaad.Web.dll + + + ..\dlls\Schaad.Web.Api.dll + + + + + + Always + + + Always + + + Always + + + + diff --git a/Schaad.Finance.sln b/Schaad.Finance.sln new file mode 100644 index 0000000..400835a --- /dev/null +++ b/Schaad.Finance.sln @@ -0,0 +1,37 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.27703.2035 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Schaad.Finance.Api", "Schaad.Finance.Api\Schaad.Finance.Api.csproj", "{C5845C75-0772-4819-B0DB-D57B5AF8921D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Schaad.Finance", "Schaad.Finance\Schaad.Finance.csproj", "{4BCEDAF9-FE9B-49D2-9CAF-A7B06B4FF521}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Schaad.Finance.Tests", "Schaad.Finance.Tests\Schaad.Finance.Tests.csproj", "{C3A9FC28-9CF7-4775-90B7-B9F29DC299FD}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {C5845C75-0772-4819-B0DB-D57B5AF8921D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C5845C75-0772-4819-B0DB-D57B5AF8921D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C5845C75-0772-4819-B0DB-D57B5AF8921D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C5845C75-0772-4819-B0DB-D57B5AF8921D}.Release|Any CPU.Build.0 = Release|Any CPU + {4BCEDAF9-FE9B-49D2-9CAF-A7B06B4FF521}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4BCEDAF9-FE9B-49D2-9CAF-A7B06B4FF521}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4BCEDAF9-FE9B-49D2-9CAF-A7B06B4FF521}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4BCEDAF9-FE9B-49D2-9CAF-A7B06B4FF521}.Release|Any CPU.Build.0 = Release|Any CPU + {C3A9FC28-9CF7-4775-90B7-B9F29DC299FD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C3A9FC28-9CF7-4775-90B7-B9F29DC299FD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C3A9FC28-9CF7-4775-90B7-B9F29DC299FD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C3A9FC28-9CF7-4775-90B7-B9F29DC299FD}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {38CCE775-5C10-4F00-BA79-EB86BE0BB2B5} + EndGlobalSection +EndGlobal diff --git a/Schaad.Finance/Formats/AccountStatements/CAMT053.cs b/Schaad.Finance/Formats/AccountStatements/CAMT053.cs new file mode 100644 index 0000000..32b4d72 --- /dev/null +++ b/Schaad.Finance/Formats/AccountStatements/CAMT053.cs @@ -0,0 +1,164 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Xml.Serialization; +using Schaad.Finance.Api; +using Schaad.Finance.Api.AccountStatements; +using Schaad.Finance.Formats.AccountStatements.Models; + +namespace Schaad.Finance.Formats.AccountStatements +{ + /// + /// Reads CAMT053 format + /// https://www.six-interbank-clearing.com/dam/downloads/de/standardization/iso/swiss-recommendations/implementation-guidelines-camt.pdf + /// + public class CAMT053 : IAccountStatementParsingService + { + public List ReadFile(string filePath, Encoding encoding) + { + var accountStatements = new List(); + var serializer = new XmlSerializer(typeof(Document)); + using (var fileStream = new FileStream(filePath, FileMode.Open)) + { + using (var reader = new StreamReader(fileStream, encoding)) + { + var document = (Document)serializer.Deserialize(reader); + foreach (var stmt in document.BkToCstmrStmt.Stmt) + { + var accountStatement = new AccountStatement(); + accountStatements.Add(accountStatement); + + accountStatement.AccountNumber = stmt.Acct.Id.Item.ToString(); + accountStatement.Currency = stmt.Acct.Ccy; + + foreach (var balance in stmt.Bal) + { + // var balanceAmount = balance.Amt.Value; + // var balanceCurrency = balance.Amt.Ccy; + // var balanceDate = balance.Dt.Item; + // var creditDebit = balance.CdtDbtInd; + + var balanceType = (BalanceType12Code)balance.Tp.CdOrPrtry.Item; + if (balanceType == BalanceType12Code.OPBD) + { + accountStatement.StartBalance = new Balance + { + BookingDate = balance.Dt.Item, + Value = (double)balance.Amt.Value, + }; + } + else if (balanceType == BalanceType12Code.CLBD) + { + accountStatement.EndBalance = new Balance + { + BookingDate = balance.Dt.Item, + Value = (double)balance.Amt.Value, + }; + } + } + + if (stmt.TxsSummry != null) + { + if (stmt.TxsSummry.TtlCdtNtries != null) + { + accountStatement.CreditTransactionSummary = new TransactionSummary + { + NumberOfTransaction = int.Parse(stmt.TxsSummry.TtlCdtNtries.NbOfNtries), + Sum = stmt.TxsSummry.TtlCdtNtries.Sum + }; + } + else + { + accountStatement.CreditTransactionSummary = new TransactionSummary(); + } + + if (stmt.TxsSummry.TtlDbtNtries != null) + { + accountStatement.DebitTransactionSummary = new TransactionSummary + { + NumberOfTransaction = int.Parse(stmt.TxsSummry.TtlDbtNtries.NbOfNtries), + Sum = stmt.TxsSummry.TtlDbtNtries.Sum + }; + } + else + { + accountStatement.DebitTransactionSummary = new TransactionSummary(); + } + } + + accountStatement.Transactions = new List(); + if (stmt.Ntry != null) + { + foreach (var entry in stmt.Ntry) + { + var transaction = new Transaction(); + accountStatement.Transactions.Add(transaction); + + // var amount = entry.Amt.Value; + // var currency = entry.Amt.Ccy; + // var valueDate = entry.ValDt.Item; + // var bookingDate = entry.BookgDt.Item; + //var creditDepit = entry.CdtDbtInd; + // var trxId = entry.NtryRef; + // var text = entry.AddtlNtryInf; + + transaction.Id = stmt.Id + entry.NtryRef; + transaction.BookingDate = entry.BookgDt.Item; + transaction.Text = entry.AddtlNtryInf; + transaction.Value = (double)entry.Amt.Value; + transaction.ValueDate = entry.ValDt.Item; + + if (entry.CdtDbtInd == CreditDebitCode.DBIT) + { + transaction.Value *= -1; + } + } + } + } + } + } + + return accountStatements; + } + + public string ValidateAccountStatement(AccountStatement accountStatement) + { + if (accountStatement.StartBalance.Currency != accountStatement.EndBalance.Currency) + { + return $"Startbalance currency ({accountStatement.StartBalance.Currency}) does not match endbalance currency ({accountStatement.EndBalance.Currency})"; + } + + if (accountStatement.CreditTransactionSummary != null && accountStatement.DebitTransactionSummary != null) + { + var transactionSum = Math.Round(accountStatement.Transactions.Sum(t => (decimal)t.Value), 2); + var totalNumber = accountStatement.Transactions.Count; + + var transactionSumValidation = accountStatement.CreditTransactionSummary.Sum - accountStatement.DebitTransactionSummary.Sum; + var totalNumberValidation = accountStatement.CreditTransactionSummary.NumberOfTransaction + accountStatement.DebitTransactionSummary.NumberOfTransaction; + + if (transactionSum != transactionSumValidation) + { + return $"Transaction sum ({transactionSum}) does not match validation sum ({transactionSumValidation})"; + } + + if (totalNumber != totalNumberValidation) + { + return $"Transaction count ({totalNumber}) does not match validation count ({totalNumberValidation})"; + } + } + else if (accountStatement.StartBalance != null && accountStatement.EndBalance != null) + { + var transactionSum = Math.Round(accountStatement.Transactions.Sum(t => t.Value), 2); + var end = accountStatement.StartBalance.Value + transactionSum; + if (end != accountStatement.EndBalance.Value) + { + return $"Enbalance ({accountStatement.EndBalance.Value}) does not match startbalance ({accountStatement.StartBalance.Value}) + transactions ({transactionSum})"; + } + } + + return string.Empty; + } + } +} \ No newline at end of file diff --git a/Schaad.Finance/Formats/AccountStatements/MT940.cs b/Schaad.Finance/Formats/AccountStatements/MT940.cs new file mode 100644 index 0000000..d978b4e --- /dev/null +++ b/Schaad.Finance/Formats/AccountStatements/MT940.cs @@ -0,0 +1,195 @@ +using Schaad.Finance.Api; +using Schaad.Finance.Api.AccountStatements; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; + +namespace Schaad.Finance.Formats.AccountStatements +{ + /// + /// Reads MT940 format + /// http://www.kontopruef.de/mt940s.shtml + /// + public class MT940 : IAccountStatementParsingService + { + public List ReadFile(string filePath, Encoding encoding) + { + var accountList = new List(); + AccountStatement account = null; + Transaction currentTransaction = null; + List transactionTexts = null; + foreach (var line in File.ReadLines(filePath, encoding)) + { + if (line.Length < 3) + { + continue; + } + + var codeValue = ParseLine(line); + switch (codeValue.Item1) + { + // Account + case ":25:": + account = new AccountStatement(); + accountList.Add(account); + account.AccountNumber = codeValue.Item2; + break; + // Start balance + case ":60F:": + account.StartBalance = ParseBalance(codeValue.Item2); + break; + // End balance + case ":62F:": + account.EndBalance = ParseBalance(codeValue.Item2); + break; + // Transaction + case ":61:": + // have we an old transaction + if (currentTransaction != null && transactionTexts.Any()) + { + currentTransaction.Text = string.Join(", ", transactionTexts); + } + transactionTexts = new List(); + currentTransaction = ParseTransaction(codeValue.Item2); + account.Transactions.Add(currentTransaction); + break; + // Transaction text + case ":NS:": + //if (currentTransaction != null) currentTransaction.Text = codeValue.Item2; + break; + } + if (codeValue.Item1.IndexOf(':') == -1 && currentTransaction != null) + { + if (transactionTexts.Contains(codeValue.Item2) == false) + { + transactionTexts.Add(codeValue.Item2); + } + } + } + // have we an old transaction + if (currentTransaction != null && transactionTexts.Any()) + { + currentTransaction.Text = string.Join(", ", transactionTexts); + } + + return accountList; + } + + public string ValidateAccountStatement(AccountStatement accountStatement) + { + if (accountStatement.StartBalance.Currency != accountStatement.EndBalance.Currency) + { + return $"Startbalance currency ({accountStatement.StartBalance.Currency}) does not match endbalance currency ({accountStatement.EndBalance.Currency})"; + } + + var transactionSum = Math.Round(accountStatement.Transactions.Sum(t => t.Value), 2); + var end = accountStatement.StartBalance.Value + transactionSum; + if (end != accountStatement.EndBalance.Value) + { + return $"Enbalance ({accountStatement.EndBalance.Value}) does not match startbalance ({accountStatement.StartBalance.Value}) + transactions ({transactionSum})"; + } + + return string.Empty; + } + + /// + /// Parse a line + /// + /// + /// + private Tuple ParseLine(string line) + { + if (line.StartsWith(":")) + { + var pos = line.IndexOf(':', 1); + var code = line.Substring(0, pos + 1); + return new Tuple(code, line.Substring(code.Length)); + } + else + return new Tuple(line.Substring(0, 2), line.Substring(2)); + } + + /// + /// Parse a balance + /// + /// + /// + private Balance ParseBalance(string value) + { + var balance = new Balance(); + + bool isDebit = false; + if (value.First() == 'C') + isDebit = false; + else if (value.First() == 'D') + isDebit = true; + value = value.Remove(0, 1); + + balance.BookingDate = ParseDate(value.Substring(0, 6)); + value = value.Remove(0, 6); + + balance.Currency = value.Substring(0, 3); + value = value.Remove(0, 3); + + balance.Value = ParseBalanceValue(value); + + if (isDebit) + balance.Value *= -1.0; + + return balance; + } + + private double ParseBalanceValue(string balanceValue) + { + return Double.Parse(balanceValue.Replace(',', '.')); + } + + /// + /// Parse a transaction + /// + /// + /// + private Transaction ParseTransaction(string value) + { + var transaction = new Transaction(); + + transaction.ValueDate = ParseDate(value.Substring(0, 6)); + value = value.Remove(0, 6); + + string year = (transaction.ValueDate.Year - 2000).ToString(); + transaction.BookingDate = ParseDate(year + value.Substring(0, 4)); + value = value.Remove(0, 4); + + bool isDebit = false; + if (value.First() == 'C') + isDebit = false; + else if (value.First() == 'D') + isDebit = true; + else + throw new NotSupportedException("Code not supported: " + value.First()); + value = value.Remove(0, 1); + + transaction.Value = ParseBalanceValue(value.Substring(0, 15)); + value = value.Remove(0, 15); + + if (isDebit) + transaction.Value *= -1.0; + + return transaction; + } + + /// + /// Parse a date in format: JJMMTT + /// + /// + /// + private DateTime ParseDate(string dateValue) + { + if (dateValue.Length != 6) + throw new Exception("Wrong format for date. Need: JJMMTT"); + return new DateTime(2000 + Int32.Parse(dateValue.Substring(0, 2)), Int32.Parse(dateValue.Substring(2, 2)), Int32.Parse(dateValue.Substring(4, 2))); + } + } +} \ No newline at end of file diff --git a/Schaad.Finance/Formats/AccountStatements/Models/camt_053_001_04.cs b/Schaad.Finance/Formats/AccountStatements/Models/camt_053_001_04.cs new file mode 100644 index 0000000..5cee246 --- /dev/null +++ b/Schaad.Finance/Formats/AccountStatements/Models/camt_053_001_04.cs @@ -0,0 +1,11206 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ +namespace Schaad.Finance.Formats.AccountStatements.Models +{ + using System.Xml.Serialization; + + // + // This source code was auto-generated by xsd, Version=4.6.1055.0. + // + + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + [System.Xml.Serialization.XmlRootAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04", IsNullable = false)] + public partial class Document + { + + private BankToCustomerStatementV04 bkToCstmrStmtField; + + /// + public BankToCustomerStatementV04 BkToCstmrStmt + { + get + { + return this.bkToCstmrStmtField; + } + set + { + this.bkToCstmrStmtField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class BankToCustomerStatementV04 + { + + private GroupHeader58 grpHdrField; + + private AccountStatement4[] stmtField; + + private SupplementaryData1[] splmtryDataField; + + /// + public GroupHeader58 GrpHdr + { + get + { + return this.grpHdrField; + } + set + { + this.grpHdrField = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Stmt")] + public AccountStatement4[] Stmt + { + get + { + return this.stmtField; + } + set + { + this.stmtField = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("SplmtryData")] + public SupplementaryData1[] SplmtryData + { + get + { + return this.splmtryDataField; + } + set + { + this.splmtryDataField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class GroupHeader58 + { + + private string msgIdField; + + private System.DateTime creDtTmField; + + private PartyIdentification43 msgRcptField; + + private Pagination msgPgntnField; + + private OriginalBusinessQuery1 orgnlBizQryField; + + private string addtlInfField; + + /// + public string MsgId + { + get + { + return this.msgIdField; + } + set + { + this.msgIdField = value; + } + } + + /// + public System.DateTime CreDtTm + { + get + { + return this.creDtTmField; + } + set + { + this.creDtTmField = value; + } + } + + /// + public PartyIdentification43 MsgRcpt + { + get + { + return this.msgRcptField; + } + set + { + this.msgRcptField = value; + } + } + + /// + public Pagination MsgPgntn + { + get + { + return this.msgPgntnField; + } + set + { + this.msgPgntnField = value; + } + } + + /// + public OriginalBusinessQuery1 OrgnlBizQry + { + get + { + return this.orgnlBizQryField; + } + set + { + this.orgnlBizQryField = value; + } + } + + /// + public string AddtlInf + { + get + { + return this.addtlInfField; + } + set + { + this.addtlInfField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class PartyIdentification43 + { + + private string nmField; + + private PostalAddress6 pstlAdrField; + + private Party11Choice idField; + + private string ctryOfResField; + + private ContactDetails2 ctctDtlsField; + + /// + public string Nm + { + get + { + return this.nmField; + } + set + { + this.nmField = value; + } + } + + /// + public PostalAddress6 PstlAdr + { + get + { + return this.pstlAdrField; + } + set + { + this.pstlAdrField = value; + } + } + + /// + public Party11Choice Id + { + get + { + return this.idField; + } + set + { + this.idField = value; + } + } + + /// + public string CtryOfRes + { + get + { + return this.ctryOfResField; + } + set + { + this.ctryOfResField = value; + } + } + + /// + public ContactDetails2 CtctDtls + { + get + { + return this.ctctDtlsField; + } + set + { + this.ctctDtlsField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class PostalAddress6 + { + + private AddressType2Code adrTpField; + + private bool adrTpFieldSpecified; + + private string deptField; + + private string subDeptField; + + private string strtNmField; + + private string bldgNbField; + + private string pstCdField; + + private string twnNmField; + + private string ctrySubDvsnField; + + private string ctryField; + + private string[] adrLineField; + + /// + public AddressType2Code AdrTp + { + get + { + return this.adrTpField; + } + set + { + this.adrTpField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AdrTpSpecified + { + get + { + return this.adrTpFieldSpecified; + } + set + { + this.adrTpFieldSpecified = value; + } + } + + /// + public string Dept + { + get + { + return this.deptField; + } + set + { + this.deptField = value; + } + } + + /// + public string SubDept + { + get + { + return this.subDeptField; + } + set + { + this.subDeptField = value; + } + } + + /// + public string StrtNm + { + get + { + return this.strtNmField; + } + set + { + this.strtNmField = value; + } + } + + /// + public string BldgNb + { + get + { + return this.bldgNbField; + } + set + { + this.bldgNbField = value; + } + } + + /// + public string PstCd + { + get + { + return this.pstCdField; + } + set + { + this.pstCdField = value; + } + } + + /// + public string TwnNm + { + get + { + return this.twnNmField; + } + set + { + this.twnNmField = value; + } + } + + /// + public string CtrySubDvsn + { + get + { + return this.ctrySubDvsnField; + } + set + { + this.ctrySubDvsnField = value; + } + } + + /// + public string Ctry + { + get + { + return this.ctryField; + } + set + { + this.ctryField = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("AdrLine")] + public string[] AdrLine + { + get + { + return this.adrLineField; + } + set + { + this.adrLineField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public enum AddressType2Code + { + + /// + ADDR, + + /// + PBOX, + + /// + HOME, + + /// + BIZZ, + + /// + MLTO, + + /// + DLVY, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class SupplementaryData1 + { + + private string plcAndNmField; + + private System.Xml.XmlElement envlpField; + + /// + public string PlcAndNm + { + get + { + return this.plcAndNmField; + } + set + { + this.plcAndNmField = value; + } + } + + /// + public System.Xml.XmlElement Envlp + { + get + { + return this.envlpField; + } + set + { + this.envlpField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class Product2 + { + + private string pdctCdField; + + private UnitOfMeasure1Code unitOfMeasrField; + + private bool unitOfMeasrFieldSpecified; + + private decimal pdctQtyField; + + private bool pdctQtyFieldSpecified; + + private decimal unitPricField; + + private bool unitPricFieldSpecified; + + private decimal pdctAmtField; + + private bool pdctAmtFieldSpecified; + + private string taxTpField; + + private string addtlPdctInfField; + + /// + public string PdctCd + { + get + { + return this.pdctCdField; + } + set + { + this.pdctCdField = value; + } + } + + /// + public UnitOfMeasure1Code UnitOfMeasr + { + get + { + return this.unitOfMeasrField; + } + set + { + this.unitOfMeasrField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool UnitOfMeasrSpecified + { + get + { + return this.unitOfMeasrFieldSpecified; + } + set + { + this.unitOfMeasrFieldSpecified = value; + } + } + + /// + public decimal PdctQty + { + get + { + return this.pdctQtyField; + } + set + { + this.pdctQtyField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool PdctQtySpecified + { + get + { + return this.pdctQtyFieldSpecified; + } + set + { + this.pdctQtyFieldSpecified = value; + } + } + + /// + public decimal UnitPric + { + get + { + return this.unitPricField; + } + set + { + this.unitPricField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool UnitPricSpecified + { + get + { + return this.unitPricFieldSpecified; + } + set + { + this.unitPricFieldSpecified = value; + } + } + + /// + public decimal PdctAmt + { + get + { + return this.pdctAmtField; + } + set + { + this.pdctAmtField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool PdctAmtSpecified + { + get + { + return this.pdctAmtFieldSpecified; + } + set + { + this.pdctAmtFieldSpecified = value; + } + } + + /// + public string TaxTp + { + get + { + return this.taxTpField; + } + set + { + this.taxTpField = value; + } + } + + /// + public string AddtlPdctInf + { + get + { + return this.addtlPdctInfField; + } + set + { + this.addtlPdctInfField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public enum UnitOfMeasure1Code + { + + /// + PIEC, + + /// + TONS, + + /// + FOOT, + + /// + GBGA, + + /// + USGA, + + /// + GRAM, + + /// + INCH, + + /// + KILO, + + /// + PUND, + + /// + METR, + + /// + CMET, + + /// + MMET, + + /// + LITR, + + /// + CELI, + + /// + MILI, + + /// + GBOU, + + /// + USOU, + + /// + GBQA, + + /// + USQA, + + /// + GBPI, + + /// + USPI, + + /// + MILE, + + /// + KMET, + + /// + YARD, + + /// + SQKI, + + /// + HECT, + + /// + ARES, + + /// + SMET, + + /// + SCMT, + + /// + SMIL, + + /// + SQMI, + + /// + SQYA, + + /// + SQFO, + + /// + SQIN, + + /// + ACRE, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class TransactionIdentifier1 + { + + private System.DateTime txDtTmField; + + private string txRefField; + + /// + public System.DateTime TxDtTm + { + get + { + return this.txDtTmField; + } + set + { + this.txDtTmField = value; + } + } + + /// + public string TxRef + { + get + { + return this.txRefField; + } + set + { + this.txRefField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class CardIndividualTransaction1 + { + + private CardPaymentServiceType2Code addtlSvcField; + + private bool addtlSvcFieldSpecified; + + private string txCtgyField; + + private string saleRcncltnIdField; + + private string saleRefNbField; + + private string seqNbField; + + private TransactionIdentifier1 txIdField; + + private Product2 pdctField; + + private System.DateTime vldtnDtField; + + private bool vldtnDtFieldSpecified; + + private string vldtnSeqNbField; + + /// + public CardPaymentServiceType2Code AddtlSvc + { + get + { + return this.addtlSvcField; + } + set + { + this.addtlSvcField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AddtlSvcSpecified + { + get + { + return this.addtlSvcFieldSpecified; + } + set + { + this.addtlSvcFieldSpecified = value; + } + } + + /// + public string TxCtgy + { + get + { + return this.txCtgyField; + } + set + { + this.txCtgyField = value; + } + } + + /// + public string SaleRcncltnId + { + get + { + return this.saleRcncltnIdField; + } + set + { + this.saleRcncltnIdField = value; + } + } + + /// + public string SaleRefNb + { + get + { + return this.saleRefNbField; + } + set + { + this.saleRefNbField = value; + } + } + + /// + public string SeqNb + { + get + { + return this.seqNbField; + } + set + { + this.seqNbField = value; + } + } + + /// + public TransactionIdentifier1 TxId + { + get + { + return this.txIdField; + } + set + { + this.txIdField = value; + } + } + + /// + public Product2 Pdct + { + get + { + return this.pdctField; + } + set + { + this.pdctField = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType = "date")] + public System.DateTime VldtnDt + { + get + { + return this.vldtnDtField; + } + set + { + this.vldtnDtField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool VldtnDtSpecified + { + get + { + return this.vldtnDtFieldSpecified; + } + set + { + this.vldtnDtFieldSpecified = value; + } + } + + /// + public string VldtnSeqNb + { + get + { + return this.vldtnSeqNbField; + } + set + { + this.vldtnSeqNbField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public enum CardPaymentServiceType2Code + { + + /// + AGGR, + + /// + DCCV, + + /// + GRTT, + + /// + INSP, + + /// + LOYT, + + /// + NRES, + + /// + PUCO, + + /// + RECP, + + /// + SOAF, + + /// + UNAF, + + /// + VCAU, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class CardTransaction1Choice + { + + private object itemField; + + /// + [System.Xml.Serialization.XmlElementAttribute("Aggtd", typeof(CardAggregated1))] + [System.Xml.Serialization.XmlElementAttribute("Indv", typeof(CardIndividualTransaction1))] + public object Item + { + get + { + return this.itemField; + } + set + { + this.itemField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class CardAggregated1 + { + + private CardPaymentServiceType2Code addtlSvcField; + + private bool addtlSvcFieldSpecified; + + private string txCtgyField; + + private string saleRcncltnIdField; + + private CardSequenceNumberRange1 seqNbRgField; + + private DateOrDateTimePeriodChoice txDtRgField; + + /// + public CardPaymentServiceType2Code AddtlSvc + { + get + { + return this.addtlSvcField; + } + set + { + this.addtlSvcField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AddtlSvcSpecified + { + get + { + return this.addtlSvcFieldSpecified; + } + set + { + this.addtlSvcFieldSpecified = value; + } + } + + /// + public string TxCtgy + { + get + { + return this.txCtgyField; + } + set + { + this.txCtgyField = value; + } + } + + /// + public string SaleRcncltnId + { + get + { + return this.saleRcncltnIdField; + } + set + { + this.saleRcncltnIdField = value; + } + } + + /// + public CardSequenceNumberRange1 SeqNbRg + { + get + { + return this.seqNbRgField; + } + set + { + this.seqNbRgField = value; + } + } + + /// + public DateOrDateTimePeriodChoice TxDtRg + { + get + { + return this.txDtRgField; + } + set + { + this.txDtRgField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class CardSequenceNumberRange1 + { + + private string frstTxField; + + private string lastTxField; + + /// + public string FrstTx + { + get + { + return this.frstTxField; + } + set + { + this.frstTxField = value; + } + } + + /// + public string LastTx + { + get + { + return this.lastTxField; + } + set + { + this.lastTxField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class DateOrDateTimePeriodChoice + { + + private object itemField; + + /// + [System.Xml.Serialization.XmlElementAttribute("Dt", typeof(DatePeriodDetails))] + [System.Xml.Serialization.XmlElementAttribute("DtTm", typeof(DateTimePeriodDetails))] + public object Item + { + get + { + return this.itemField; + } + set + { + this.itemField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class DatePeriodDetails + { + + private System.DateTime frDtField; + + private System.DateTime toDtField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType = "date")] + public System.DateTime FrDt + { + get + { + return this.frDtField; + } + set + { + this.frDtField = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType = "date")] + public System.DateTime ToDt + { + get + { + return this.toDtField; + } + set + { + this.toDtField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class DateTimePeriodDetails + { + + private System.DateTime frDtTmField; + + private System.DateTime toDtTmField; + + /// + public System.DateTime FrDtTm + { + get + { + return this.frDtTmField; + } + set + { + this.frDtTmField = value; + } + } + + /// + public System.DateTime ToDtTm + { + get + { + return this.toDtTmField; + } + set + { + this.toDtTmField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class CardTransaction1 + { + + private PaymentCard4 cardField; + + private PointOfInteraction1 pOIField; + + private CardTransaction1Choice txField; + + /// + public PaymentCard4 Card + { + get + { + return this.cardField; + } + set + { + this.cardField = value; + } + } + + /// + public PointOfInteraction1 POI + { + get + { + return this.pOIField; + } + set + { + this.pOIField = value; + } + } + + /// + public CardTransaction1Choice Tx + { + get + { + return this.txField; + } + set + { + this.txField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class PaymentCard4 + { + + private PlainCardData1 plainCardDataField; + + private string cardCtryCdField; + + private GenericIdentification1 cardBrndField; + + private string addtlCardDataField; + + /// + public PlainCardData1 PlainCardData + { + get + { + return this.plainCardDataField; + } + set + { + this.plainCardDataField = value; + } + } + + /// + public string CardCtryCd + { + get + { + return this.cardCtryCdField; + } + set + { + this.cardCtryCdField = value; + } + } + + /// + public GenericIdentification1 CardBrnd + { + get + { + return this.cardBrndField; + } + set + { + this.cardBrndField = value; + } + } + + /// + public string AddtlCardData + { + get + { + return this.addtlCardDataField; + } + set + { + this.addtlCardDataField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class PlainCardData1 + { + + private string pANField; + + private string cardSeqNbField; + + private string fctvDtField; + + private string xpryDtField; + + private string svcCdField; + + private TrackData1[] trckDataField; + + private CardSecurityInformation1 cardSctyCdField; + + /// + public string PAN + { + get + { + return this.pANField; + } + set + { + this.pANField = value; + } + } + + /// + public string CardSeqNb + { + get + { + return this.cardSeqNbField; + } + set + { + this.cardSeqNbField = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType = "gYearMonth")] + public string FctvDt + { + get + { + return this.fctvDtField; + } + set + { + this.fctvDtField = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType = "gYearMonth")] + public string XpryDt + { + get + { + return this.xpryDtField; + } + set + { + this.xpryDtField = value; + } + } + + /// + public string SvcCd + { + get + { + return this.svcCdField; + } + set + { + this.svcCdField = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("TrckData")] + public TrackData1[] TrckData + { + get + { + return this.trckDataField; + } + set + { + this.trckDataField = value; + } + } + + /// + public CardSecurityInformation1 CardSctyCd + { + get + { + return this.cardSctyCdField; + } + set + { + this.cardSctyCdField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class TrackData1 + { + + private string trckNbField; + + private string trckValField; + + /// + public string TrckNb + { + get + { + return this.trckNbField; + } + set + { + this.trckNbField = value; + } + } + + /// + public string TrckVal + { + get + { + return this.trckValField; + } + set + { + this.trckValField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class CardSecurityInformation1 + { + + private CSCManagement1Code cSCMgmtField; + + private string cSCValField; + + /// + public CSCManagement1Code CSCMgmt + { + get + { + return this.cSCMgmtField; + } + set + { + this.cSCMgmtField = value; + } + } + + /// + public string CSCVal + { + get + { + return this.cSCValField; + } + set + { + this.cSCValField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public enum CSCManagement1Code + { + + /// + PRST, + + /// + BYPS, + + /// + UNRD, + + /// + NCSC, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class GenericIdentification1 + { + + private string idField; + + private string schmeNmField; + + private string issrField; + + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idField = value; + } + } + + /// + public string SchmeNm + { + get + { + return this.schmeNmField; + } + set + { + this.schmeNmField = value; + } + } + + /// + public string Issr + { + get + { + return this.issrField; + } + set + { + this.issrField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class PointOfInteraction1 + { + + private GenericIdentification32 idField; + + private string sysNmField; + + private string grpIdField; + + private PointOfInteractionCapabilities1 cpbltiesField; + + private PointOfInteractionComponent1[] cmpntField; + + /// + public GenericIdentification32 Id + { + get + { + return this.idField; + } + set + { + this.idField = value; + } + } + + /// + public string SysNm + { + get + { + return this.sysNmField; + } + set + { + this.sysNmField = value; + } + } + + /// + public string GrpId + { + get + { + return this.grpIdField; + } + set + { + this.grpIdField = value; + } + } + + /// + public PointOfInteractionCapabilities1 Cpblties + { + get + { + return this.cpbltiesField; + } + set + { + this.cpbltiesField = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Cmpnt")] + public PointOfInteractionComponent1[] Cmpnt + { + get + { + return this.cmpntField; + } + set + { + this.cmpntField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class GenericIdentification32 + { + + private string idField; + + private PartyType3Code tpField; + + private bool tpFieldSpecified; + + private PartyType4Code issrField; + + private bool issrFieldSpecified; + + private string shrtNmField; + + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idField = value; + } + } + + /// + public PartyType3Code Tp + { + get + { + return this.tpField; + } + set + { + this.tpField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool TpSpecified + { + get + { + return this.tpFieldSpecified; + } + set + { + this.tpFieldSpecified = value; + } + } + + /// + public PartyType4Code Issr + { + get + { + return this.issrField; + } + set + { + this.issrField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool IssrSpecified + { + get + { + return this.issrFieldSpecified; + } + set + { + this.issrFieldSpecified = value; + } + } + + /// + public string ShrtNm + { + get + { + return this.shrtNmField; + } + set + { + this.shrtNmField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public enum PartyType3Code + { + + /// + OPOI, + + /// + MERC, + + /// + ACCP, + + /// + ITAG, + + /// + ACQR, + + /// + CISS, + + /// + DLIS, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public enum PartyType4Code + { + + /// + MERC, + + /// + ACCP, + + /// + ITAG, + + /// + ACQR, + + /// + CISS, + + /// + TAXH, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class PointOfInteractionCapabilities1 + { + + private CardDataReading1Code[] cardRdngCpbltiesField; + + private CardholderVerificationCapability1Code[] crdhldrVrfctnCpbltiesField; + + private OnLineCapability1Code onLineCpbltiesField; + + private bool onLineCpbltiesFieldSpecified; + + private DisplayCapabilities1[] dispCpbltiesField; + + private string prtLineWidthField; + + /// + [System.Xml.Serialization.XmlElementAttribute("CardRdngCpblties")] + public CardDataReading1Code[] CardRdngCpblties + { + get + { + return this.cardRdngCpbltiesField; + } + set + { + this.cardRdngCpbltiesField = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("CrdhldrVrfctnCpblties")] + public CardholderVerificationCapability1Code[] CrdhldrVrfctnCpblties + { + get + { + return this.crdhldrVrfctnCpbltiesField; + } + set + { + this.crdhldrVrfctnCpbltiesField = value; + } + } + + /// + public OnLineCapability1Code OnLineCpblties + { + get + { + return this.onLineCpbltiesField; + } + set + { + this.onLineCpbltiesField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool OnLineCpbltiesSpecified + { + get + { + return this.onLineCpbltiesFieldSpecified; + } + set + { + this.onLineCpbltiesFieldSpecified = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("DispCpblties")] + public DisplayCapabilities1[] DispCpblties + { + get + { + return this.dispCpbltiesField; + } + set + { + this.dispCpbltiesField = value; + } + } + + /// + public string PrtLineWidth + { + get + { + return this.prtLineWidthField; + } + set + { + this.prtLineWidthField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public enum CardDataReading1Code + { + + /// + TAGC, + + /// + PHYS, + + /// + BRCD, + + /// + MGST, + + /// + CICC, + + /// + DFLE, + + /// + CTLS, + + /// + ECTL, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public enum CardholderVerificationCapability1Code + { + + /// + MNSG, + + /// + NPIN, + + /// + FCPN, + + /// + FEPN, + + /// + FDSG, + + /// + FBIO, + + /// + MNVR, + + /// + FBIG, + + /// + APKI, + + /// + PKIS, + + /// + CHDT, + + /// + SCEC, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public enum OnLineCapability1Code + { + + /// + OFLN, + + /// + ONLN, + + /// + SMON, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class DisplayCapabilities1 + { + + private UserInterface2Code dispTpField; + + private string nbOfLinesField; + + private string lineWidthField; + + /// + public UserInterface2Code DispTp + { + get + { + return this.dispTpField; + } + set + { + this.dispTpField = value; + } + } + + /// + public string NbOfLines + { + get + { + return this.nbOfLinesField; + } + set + { + this.nbOfLinesField = value; + } + } + + /// + public string LineWidth + { + get + { + return this.lineWidthField; + } + set + { + this.lineWidthField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public enum UserInterface2Code + { + + /// + MDSP, + + /// + CDSP, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class PointOfInteractionComponent1 + { + + private POIComponentType1Code pOICmpntTpField; + + private string manfctrIdField; + + private string mdlField; + + private string vrsnNbField; + + private string srlNbField; + + private string[] apprvlNbField; + + /// + public POIComponentType1Code POICmpntTp + { + get + { + return this.pOICmpntTpField; + } + set + { + this.pOICmpntTpField = value; + } + } + + /// + public string ManfctrId + { + get + { + return this.manfctrIdField; + } + set + { + this.manfctrIdField = value; + } + } + + /// + public string Mdl + { + get + { + return this.mdlField; + } + set + { + this.mdlField = value; + } + } + + /// + public string VrsnNb + { + get + { + return this.vrsnNbField; + } + set + { + this.vrsnNbField = value; + } + } + + /// + public string SrlNb + { + get + { + return this.srlNbField; + } + set + { + this.srlNbField = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("ApprvlNb")] + public string[] ApprvlNb + { + get + { + return this.apprvlNbField; + } + set + { + this.apprvlNbField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public enum POIComponentType1Code + { + + /// + SOFT, + + /// + EMVK, + + /// + EMVO, + + /// + MRIT, + + /// + CHIT, + + /// + SECM, + + /// + PEDV, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class ActiveCurrencyAndAmount + { + + private string ccyField; + + private decimal valueField; + + /// + [System.Xml.Serialization.XmlAttributeAttribute()] + public string Ccy + { + get + { + return this.ccyField; + } + set + { + this.ccyField = value; + } + } + + /// + [System.Xml.Serialization.XmlTextAttribute()] + public decimal Value + { + get + { + return this.valueField; + } + set + { + this.valueField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class CashDeposit1 + { + + private ActiveCurrencyAndAmount noteDnmtnField; + + private string nbOfNotesField; + + private ActiveCurrencyAndAmount amtField; + + /// + public ActiveCurrencyAndAmount NoteDnmtn + { + get + { + return this.noteDnmtnField; + } + set + { + this.noteDnmtnField = value; + } + } + + /// + public string NbOfNotes + { + get + { + return this.nbOfNotesField; + } + set + { + this.nbOfNotesField = value; + } + } + + /// + public ActiveCurrencyAndAmount Amt + { + get + { + return this.amtField; + } + set + { + this.amtField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class GenericIdentification20 + { + + private string idField; + + private string issrField; + + private string schmeNmField; + + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idField = value; + } + } + + /// + public string Issr + { + get + { + return this.issrField; + } + set + { + this.issrField = value; + } + } + + /// + public string SchmeNm + { + get + { + return this.schmeNmField; + } + set + { + this.schmeNmField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class SecuritiesAccount13 + { + + private string idField; + + private GenericIdentification20 tpField; + + private string nmField; + + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idField = value; + } + } + + /// + public GenericIdentification20 Tp + { + get + { + return this.tpField; + } + set + { + this.tpField = value; + } + } + + /// + public string Nm + { + get + { + return this.nmField; + } + set + { + this.nmField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class CorporateAction9 + { + + private string evtTpField; + + private string evtIdField; + + /// + public string EvtTp + { + get + { + return this.evtTpField; + } + set + { + this.evtTpField = value; + } + } + + /// + public string EvtId + { + get + { + return this.evtIdField; + } + set + { + this.evtIdField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class ReturnReason5Choice + { + + private string itemField; + + private ItemChoiceType16 itemElementNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute("Cd", typeof(string))] + [System.Xml.Serialization.XmlElementAttribute("Prtry", typeof(string))] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")] + public string Item + { + get + { + return this.itemField; + } + set + { + this.itemField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemChoiceType16 ItemElementName + { + get + { + return this.itemElementNameField; + } + set + { + this.itemElementNameField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04", IncludeInSchema = false)] + public enum ItemChoiceType16 + { + + /// + Cd, + + /// + Prtry, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class PaymentReturnReason2 + { + + private BankTransactionCodeStructure4 orgnlBkTxCdField; + + private PartyIdentification43 orgtrField; + + private ReturnReason5Choice rsnField; + + private string[] addtlInfField; + + /// + public BankTransactionCodeStructure4 OrgnlBkTxCd + { + get + { + return this.orgnlBkTxCdField; + } + set + { + this.orgnlBkTxCdField = value; + } + } + + /// + public PartyIdentification43 Orgtr + { + get + { + return this.orgtrField; + } + set + { + this.orgtrField = value; + } + } + + /// + public ReturnReason5Choice Rsn + { + get + { + return this.rsnField; + } + set + { + this.rsnField = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("AddtlInf")] + public string[] AddtlInf + { + get + { + return this.addtlInfField; + } + set + { + this.addtlInfField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class BankTransactionCodeStructure4 + { + + private BankTransactionCodeStructure5 domnField; + + private ProprietaryBankTransactionCodeStructure1 prtryField; + + /// + public BankTransactionCodeStructure5 Domn + { + get + { + return this.domnField; + } + set + { + this.domnField = value; + } + } + + /// + public ProprietaryBankTransactionCodeStructure1 Prtry + { + get + { + return this.prtryField; + } + set + { + this.prtryField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class BankTransactionCodeStructure5 + { + + private string cdField; + + private BankTransactionCodeStructure6 fmlyField; + + /// + public string Cd + { + get + { + return this.cdField; + } + set + { + this.cdField = value; + } + } + + /// + public BankTransactionCodeStructure6 Fmly + { + get + { + return this.fmlyField; + } + set + { + this.fmlyField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class BankTransactionCodeStructure6 + { + + private string cdField; + + private string subFmlyCdField; + + /// + public string Cd + { + get + { + return this.cdField; + } + set + { + this.cdField = value; + } + } + + /// + public string SubFmlyCd + { + get + { + return this.subFmlyCdField; + } + set + { + this.subFmlyCdField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class ProprietaryBankTransactionCodeStructure1 + { + + private string cdField; + + private string issrField; + + /// + public string Cd + { + get + { + return this.cdField; + } + set + { + this.cdField = value; + } + } + + /// + public string Issr + { + get + { + return this.issrField; + } + set + { + this.issrField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class TaxRecordDetails1 + { + + private TaxPeriod1 prdField; + + private ActiveOrHistoricCurrencyAndAmount amtField; + + /// + public TaxPeriod1 Prd + { + get + { + return this.prdField; + } + set + { + this.prdField = value; + } + } + + /// + public ActiveOrHistoricCurrencyAndAmount Amt + { + get + { + return this.amtField; + } + set + { + this.amtField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class TaxPeriod1 + { + + private System.DateTime yrField; + + private bool yrFieldSpecified; + + private TaxRecordPeriod1Code tpField; + + private bool tpFieldSpecified; + + private DatePeriodDetails frToDtField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType = "date")] + public System.DateTime Yr + { + get + { + return this.yrField; + } + set + { + this.yrField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool YrSpecified + { + get + { + return this.yrFieldSpecified; + } + set + { + this.yrFieldSpecified = value; + } + } + + /// + public TaxRecordPeriod1Code Tp + { + get + { + return this.tpField; + } + set + { + this.tpField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool TpSpecified + { + get + { + return this.tpFieldSpecified; + } + set + { + this.tpFieldSpecified = value; + } + } + + /// + public DatePeriodDetails FrToDt + { + get + { + return this.frToDtField; + } + set + { + this.frToDtField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public enum TaxRecordPeriod1Code + { + + /// + MM01, + + /// + MM02, + + /// + MM03, + + /// + MM04, + + /// + MM05, + + /// + MM06, + + /// + MM07, + + /// + MM08, + + /// + MM09, + + /// + MM10, + + /// + MM11, + + /// + MM12, + + /// + QTR1, + + /// + QTR2, + + /// + QTR3, + + /// + QTR4, + + /// + HLF1, + + /// + HLF2, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class ActiveOrHistoricCurrencyAndAmount + { + + private string ccyField; + + private decimal valueField; + + /// + [System.Xml.Serialization.XmlAttributeAttribute()] + public string Ccy + { + get + { + return this.ccyField; + } + set + { + this.ccyField = value; + } + } + + /// + [System.Xml.Serialization.XmlTextAttribute()] + public decimal Value + { + get + { + return this.valueField; + } + set + { + this.valueField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class TaxAmount1 + { + + private decimal rateField; + + private bool rateFieldSpecified; + + private ActiveOrHistoricCurrencyAndAmount taxblBaseAmtField; + + private ActiveOrHistoricCurrencyAndAmount ttlAmtField; + + private TaxRecordDetails1[] dtlsField; + + /// + public decimal Rate + { + get + { + return this.rateField; + } + set + { + this.rateField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool RateSpecified + { + get + { + return this.rateFieldSpecified; + } + set + { + this.rateFieldSpecified = value; + } + } + + /// + public ActiveOrHistoricCurrencyAndAmount TaxblBaseAmt + { + get + { + return this.taxblBaseAmtField; + } + set + { + this.taxblBaseAmtField = value; + } + } + + /// + public ActiveOrHistoricCurrencyAndAmount TtlAmt + { + get + { + return this.ttlAmtField; + } + set + { + this.ttlAmtField = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Dtls")] + public TaxRecordDetails1[] Dtls + { + get + { + return this.dtlsField; + } + set + { + this.dtlsField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class TaxRecord1 + { + + private string tpField; + + private string ctgyField; + + private string ctgyDtlsField; + + private string dbtrStsField; + + private string certIdField; + + private string frmsCdField; + + private TaxPeriod1 prdField; + + private TaxAmount1 taxAmtField; + + private string addtlInfField; + + /// + public string Tp + { + get + { + return this.tpField; + } + set + { + this.tpField = value; + } + } + + /// + public string Ctgy + { + get + { + return this.ctgyField; + } + set + { + this.ctgyField = value; + } + } + + /// + public string CtgyDtls + { + get + { + return this.ctgyDtlsField; + } + set + { + this.ctgyDtlsField = value; + } + } + + /// + public string DbtrSts + { + get + { + return this.dbtrStsField; + } + set + { + this.dbtrStsField = value; + } + } + + /// + public string CertId + { + get + { + return this.certIdField; + } + set + { + this.certIdField = value; + } + } + + /// + public string FrmsCd + { + get + { + return this.frmsCdField; + } + set + { + this.frmsCdField = value; + } + } + + /// + public TaxPeriod1 Prd + { + get + { + return this.prdField; + } + set + { + this.prdField = value; + } + } + + /// + public TaxAmount1 TaxAmt + { + get + { + return this.taxAmtField; + } + set + { + this.taxAmtField = value; + } + } + + /// + public string AddtlInf + { + get + { + return this.addtlInfField; + } + set + { + this.addtlInfField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class TaxAuthorisation1 + { + + private string titlField; + + private string nmField; + + /// + public string Titl + { + get + { + return this.titlField; + } + set + { + this.titlField = value; + } + } + + /// + public string Nm + { + get + { + return this.nmField; + } + set + { + this.nmField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class TaxParty2 + { + + private string taxIdField; + + private string regnIdField; + + private string taxTpField; + + private TaxAuthorisation1 authstnField; + + /// + public string TaxId + { + get + { + return this.taxIdField; + } + set + { + this.taxIdField = value; + } + } + + /// + public string RegnId + { + get + { + return this.regnIdField; + } + set + { + this.regnIdField = value; + } + } + + /// + public string TaxTp + { + get + { + return this.taxTpField; + } + set + { + this.taxTpField = value; + } + } + + /// + public TaxAuthorisation1 Authstn + { + get + { + return this.authstnField; + } + set + { + this.authstnField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class TaxParty1 + { + + private string taxIdField; + + private string regnIdField; + + private string taxTpField; + + /// + public string TaxId + { + get + { + return this.taxIdField; + } + set + { + this.taxIdField = value; + } + } + + /// + public string RegnId + { + get + { + return this.regnIdField; + } + set + { + this.regnIdField = value; + } + } + + /// + public string TaxTp + { + get + { + return this.taxTpField; + } + set + { + this.taxTpField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class TaxInformation3 + { + + private TaxParty1 cdtrField; + + private TaxParty2 dbtrField; + + private string admstnZnField; + + private string refNbField; + + private string mtdField; + + private ActiveOrHistoricCurrencyAndAmount ttlTaxblBaseAmtField; + + private ActiveOrHistoricCurrencyAndAmount ttlTaxAmtField; + + private System.DateTime dtField; + + private bool dtFieldSpecified; + + private decimal seqNbField; + + private bool seqNbFieldSpecified; + + private TaxRecord1[] rcrdField; + + /// + public TaxParty1 Cdtr + { + get + { + return this.cdtrField; + } + set + { + this.cdtrField = value; + } + } + + /// + public TaxParty2 Dbtr + { + get + { + return this.dbtrField; + } + set + { + this.dbtrField = value; + } + } + + /// + public string AdmstnZn + { + get + { + return this.admstnZnField; + } + set + { + this.admstnZnField = value; + } + } + + /// + public string RefNb + { + get + { + return this.refNbField; + } + set + { + this.refNbField = value; + } + } + + /// + public string Mtd + { + get + { + return this.mtdField; + } + set + { + this.mtdField = value; + } + } + + /// + public ActiveOrHistoricCurrencyAndAmount TtlTaxblBaseAmt + { + get + { + return this.ttlTaxblBaseAmtField; + } + set + { + this.ttlTaxblBaseAmtField = value; + } + } + + /// + public ActiveOrHistoricCurrencyAndAmount TtlTaxAmt + { + get + { + return this.ttlTaxAmtField; + } + set + { + this.ttlTaxAmtField = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType = "date")] + public System.DateTime Dt + { + get + { + return this.dtField; + } + set + { + this.dtField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool DtSpecified + { + get + { + return this.dtFieldSpecified; + } + set + { + this.dtFieldSpecified = value; + } + } + + /// + public decimal SeqNb + { + get + { + return this.seqNbField; + } + set + { + this.seqNbField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool SeqNbSpecified + { + get + { + return this.seqNbFieldSpecified; + } + set + { + this.seqNbFieldSpecified = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Rcrd")] + public TaxRecord1[] Rcrd + { + get + { + return this.rcrdField; + } + set + { + this.rcrdField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class IdentificationSource3Choice + { + + private string itemField; + + private ItemChoiceType15 itemElementNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute("Cd", typeof(string))] + [System.Xml.Serialization.XmlElementAttribute("Prtry", typeof(string))] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")] + public string Item + { + get + { + return this.itemField; + } + set + { + this.itemField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemChoiceType15 ItemElementName + { + get + { + return this.itemElementNameField; + } + set + { + this.itemElementNameField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04", IncludeInSchema = false)] + public enum ItemChoiceType15 + { + + /// + Cd, + + /// + Prtry, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class OtherIdentification1 + { + + private string idField; + + private string sfxField; + + private IdentificationSource3Choice tpField; + + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idField = value; + } + } + + /// + public string Sfx + { + get + { + return this.sfxField; + } + set + { + this.sfxField = value; + } + } + + /// + public IdentificationSource3Choice Tp + { + get + { + return this.tpField; + } + set + { + this.tpField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class SecurityIdentification14 + { + + private string iSINField; + + private OtherIdentification1[] othrIdField; + + private string descField; + + /// + public string ISIN + { + get + { + return this.iSINField; + } + set + { + this.iSINField = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("OthrId")] + public OtherIdentification1[] OthrId + { + get + { + return this.othrIdField; + } + set + { + this.othrIdField = value; + } + } + + /// + public string Desc + { + get + { + return this.descField; + } + set + { + this.descField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class ProprietaryQuantity1 + { + + private string tpField; + + private string qtyField; + + /// + public string Tp + { + get + { + return this.tpField; + } + set + { + this.tpField = value; + } + } + + /// + public string Qty + { + get + { + return this.qtyField; + } + set + { + this.qtyField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class OriginalAndCurrentQuantities1 + { + + private decimal faceAmtField; + + private decimal amtsdValField; + + /// + public decimal FaceAmt + { + get + { + return this.faceAmtField; + } + set + { + this.faceAmtField = value; + } + } + + /// + public decimal AmtsdVal + { + get + { + return this.amtsdValField; + } + set + { + this.amtsdValField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class FinancialInstrumentQuantityChoice + { + + private decimal itemField; + + private ItemChoiceType14 itemElementNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute("AmtsdVal", typeof(decimal))] + [System.Xml.Serialization.XmlElementAttribute("FaceAmt", typeof(decimal))] + [System.Xml.Serialization.XmlElementAttribute("Unit", typeof(decimal))] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")] + public decimal Item + { + get + { + return this.itemField; + } + set + { + this.itemField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemChoiceType14 ItemElementName + { + get + { + return this.itemElementNameField; + } + set + { + this.itemElementNameField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04", IncludeInSchema = false)] + public enum ItemChoiceType14 + { + + /// + AmtsdVal, + + /// + FaceAmt, + + /// + Unit, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class TransactionQuantities2Choice + { + + private object itemField; + + /// + [System.Xml.Serialization.XmlElementAttribute("OrgnlAndCurFaceAmt", typeof(OriginalAndCurrentQuantities1))] + [System.Xml.Serialization.XmlElementAttribute("Prtry", typeof(ProprietaryQuantity1))] + [System.Xml.Serialization.XmlElementAttribute("Qty", typeof(FinancialInstrumentQuantityChoice))] + public object Item + { + get + { + return this.itemField; + } + set + { + this.itemField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class ProprietaryPrice2 + { + + private string tpField; + + private ActiveOrHistoricCurrencyAndAmount pricField; + + /// + public string Tp + { + get + { + return this.tpField; + } + set + { + this.tpField = value; + } + } + + /// + public ActiveOrHistoricCurrencyAndAmount Pric + { + get + { + return this.pricField; + } + set + { + this.pricField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class ActiveOrHistoricCurrencyAnd13DecimalAmount + { + + private string ccyField; + + private decimal valueField; + + /// + [System.Xml.Serialization.XmlAttributeAttribute()] + public string Ccy + { + get + { + return this.ccyField; + } + set + { + this.ccyField = value; + } + } + + /// + [System.Xml.Serialization.XmlTextAttribute()] + public decimal Value + { + get + { + return this.valueField; + } + set + { + this.valueField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class PriceRateOrAmountChoice + { + + private object itemField; + + /// + [System.Xml.Serialization.XmlElementAttribute("Amt", typeof(ActiveOrHistoricCurrencyAnd13DecimalAmount))] + [System.Xml.Serialization.XmlElementAttribute("Rate", typeof(decimal))] + public object Item + { + get + { + return this.itemField; + } + set + { + this.itemField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class YieldedOrValueType1Choice + { + + private object itemField; + + /// + [System.Xml.Serialization.XmlElementAttribute("ValTp", typeof(PriceValueType1Code))] + [System.Xml.Serialization.XmlElementAttribute("Yldd", typeof(bool))] + public object Item + { + get + { + return this.itemField; + } + set + { + this.itemField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public enum PriceValueType1Code + { + + /// + DISC, + + /// + PREM, + + /// + PARV, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class Price2 + { + + private YieldedOrValueType1Choice tpField; + + private PriceRateOrAmountChoice valField; + + /// + public YieldedOrValueType1Choice Tp + { + get + { + return this.tpField; + } + set + { + this.tpField = value; + } + } + + /// + public PriceRateOrAmountChoice Val + { + get + { + return this.valField; + } + set + { + this.valField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class TransactionPrice3Choice + { + + private object[] itemsField; + + /// + [System.Xml.Serialization.XmlElementAttribute("DealPric", typeof(Price2))] + [System.Xml.Serialization.XmlElementAttribute("Prtry", typeof(ProprietaryPrice2))] + public object[] Items + { + get + { + return this.itemsField; + } + set + { + this.itemsField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class ProprietaryDate2 + { + + private string tpField; + + private DateAndDateTimeChoice dtField; + + /// + public string Tp + { + get + { + return this.tpField; + } + set + { + this.tpField = value; + } + } + + /// + public DateAndDateTimeChoice Dt + { + get + { + return this.dtField; + } + set + { + this.dtField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class DateAndDateTimeChoice + { + + private System.DateTime itemField; + + private ItemChoiceType9 itemElementNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute("Dt", typeof(System.DateTime), DataType = "date")] + [System.Xml.Serialization.XmlElementAttribute("DtTm", typeof(System.DateTime))] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")] + public System.DateTime Item + { + get + { + return this.itemField; + } + set + { + this.itemField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemChoiceType9 ItemElementName + { + get + { + return this.itemElementNameField; + } + set + { + this.itemElementNameField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04", IncludeInSchema = false)] + public enum ItemChoiceType9 + { + + /// + Dt, + + /// + DtTm, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class TransactionDates2 + { + + private System.DateTime accptncDtTmField; + + private bool accptncDtTmFieldSpecified; + + private System.DateTime tradActvtyCtrctlSttlmDtField; + + private bool tradActvtyCtrctlSttlmDtFieldSpecified; + + private System.DateTime tradDtField; + + private bool tradDtFieldSpecified; + + private System.DateTime intrBkSttlmDtField; + + private bool intrBkSttlmDtFieldSpecified; + + private System.DateTime startDtField; + + private bool startDtFieldSpecified; + + private System.DateTime endDtField; + + private bool endDtFieldSpecified; + + private System.DateTime txDtTmField; + + private bool txDtTmFieldSpecified; + + private ProprietaryDate2[] prtryField; + + /// + public System.DateTime AccptncDtTm + { + get + { + return this.accptncDtTmField; + } + set + { + this.accptncDtTmField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool AccptncDtTmSpecified + { + get + { + return this.accptncDtTmFieldSpecified; + } + set + { + this.accptncDtTmFieldSpecified = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType = "date")] + public System.DateTime TradActvtyCtrctlSttlmDt + { + get + { + return this.tradActvtyCtrctlSttlmDtField; + } + set + { + this.tradActvtyCtrctlSttlmDtField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool TradActvtyCtrctlSttlmDtSpecified + { + get + { + return this.tradActvtyCtrctlSttlmDtFieldSpecified; + } + set + { + this.tradActvtyCtrctlSttlmDtFieldSpecified = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType = "date")] + public System.DateTime TradDt + { + get + { + return this.tradDtField; + } + set + { + this.tradDtField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool TradDtSpecified + { + get + { + return this.tradDtFieldSpecified; + } + set + { + this.tradDtFieldSpecified = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType = "date")] + public System.DateTime IntrBkSttlmDt + { + get + { + return this.intrBkSttlmDtField; + } + set + { + this.intrBkSttlmDtField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool IntrBkSttlmDtSpecified + { + get + { + return this.intrBkSttlmDtFieldSpecified; + } + set + { + this.intrBkSttlmDtFieldSpecified = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType = "date")] + public System.DateTime StartDt + { + get + { + return this.startDtField; + } + set + { + this.startDtField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool StartDtSpecified + { + get + { + return this.startDtFieldSpecified; + } + set + { + this.startDtFieldSpecified = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType = "date")] + public System.DateTime EndDt + { + get + { + return this.endDtField; + } + set + { + this.endDtField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool EndDtSpecified + { + get + { + return this.endDtFieldSpecified; + } + set + { + this.endDtFieldSpecified = value; + } + } + + /// + public System.DateTime TxDtTm + { + get + { + return this.txDtTmField; + } + set + { + this.txDtTmField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool TxDtTmSpecified + { + get + { + return this.txDtTmFieldSpecified; + } + set + { + this.txDtTmFieldSpecified = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Prtry")] + public ProprietaryDate2[] Prtry + { + get + { + return this.prtryField; + } + set + { + this.prtryField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class CreditorReferenceType1Choice + { + + private object itemField; + + /// + [System.Xml.Serialization.XmlElementAttribute("Cd", typeof(DocumentType3Code))] + [System.Xml.Serialization.XmlElementAttribute("Prtry", typeof(string))] + public object Item + { + get + { + return this.itemField; + } + set + { + this.itemField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public enum DocumentType3Code + { + + /// + RADM, + + /// + RPIN, + + /// + FXDR, + + /// + DISP, + + /// + PUOR, + + /// + SCOR, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class CreditorReferenceType2 + { + + private CreditorReferenceType1Choice cdOrPrtryField; + + private string issrField; + + /// + public CreditorReferenceType1Choice CdOrPrtry + { + get + { + return this.cdOrPrtryField; + } + set + { + this.cdOrPrtryField = value; + } + } + + /// + public string Issr + { + get + { + return this.issrField; + } + set + { + this.issrField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class CreditorReferenceInformation2 + { + + private CreditorReferenceType2 tpField; + + private string refField; + + /// + public CreditorReferenceType2 Tp + { + get + { + return this.tpField; + } + set + { + this.tpField = value; + } + } + + /// + public string Ref + { + get + { + return this.refField; + } + set + { + this.refField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class DocumentAdjustment1 + { + + private ActiveOrHistoricCurrencyAndAmount amtField; + + private CreditDebitCode cdtDbtIndField; + + private bool cdtDbtIndFieldSpecified; + + private string rsnField; + + private string addtlInfField; + + /// + public ActiveOrHistoricCurrencyAndAmount Amt + { + get + { + return this.amtField; + } + set + { + this.amtField = value; + } + } + + /// + public CreditDebitCode CdtDbtInd + { + get + { + return this.cdtDbtIndField; + } + set + { + this.cdtDbtIndField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool CdtDbtIndSpecified + { + get + { + return this.cdtDbtIndFieldSpecified; + } + set + { + this.cdtDbtIndFieldSpecified = value; + } + } + + /// + public string Rsn + { + get + { + return this.rsnField; + } + set + { + this.rsnField = value; + } + } + + /// + public string AddtlInf + { + get + { + return this.addtlInfField; + } + set + { + this.addtlInfField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public enum CreditDebitCode + { + + /// + CRDT, + + /// + DBIT, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class TaxAmountType1Choice + { + + private string itemField; + + private ItemChoiceType13 itemElementNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute("Cd", typeof(string))] + [System.Xml.Serialization.XmlElementAttribute("Prtry", typeof(string))] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")] + public string Item + { + get + { + return this.itemField; + } + set + { + this.itemField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemChoiceType13 ItemElementName + { + get + { + return this.itemElementNameField; + } + set + { + this.itemElementNameField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04", IncludeInSchema = false)] + public enum ItemChoiceType13 + { + + /// + Cd, + + /// + Prtry, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class TaxAmountAndType1 + { + + private TaxAmountType1Choice tpField; + + private ActiveOrHistoricCurrencyAndAmount amtField; + + /// + public TaxAmountType1Choice Tp + { + get + { + return this.tpField; + } + set + { + this.tpField = value; + } + } + + /// + public ActiveOrHistoricCurrencyAndAmount Amt + { + get + { + return this.amtField; + } + set + { + this.amtField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class DiscountAmountType1Choice + { + + private string itemField; + + private ItemChoiceType12 itemElementNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute("Cd", typeof(string))] + [System.Xml.Serialization.XmlElementAttribute("Prtry", typeof(string))] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")] + public string Item + { + get + { + return this.itemField; + } + set + { + this.itemField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemChoiceType12 ItemElementName + { + get + { + return this.itemElementNameField; + } + set + { + this.itemElementNameField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04", IncludeInSchema = false)] + public enum ItemChoiceType12 + { + + /// + Cd, + + /// + Prtry, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class DiscountAmountAndType1 + { + + private DiscountAmountType1Choice tpField; + + private ActiveOrHistoricCurrencyAndAmount amtField; + + /// + public DiscountAmountType1Choice Tp + { + get + { + return this.tpField; + } + set + { + this.tpField = value; + } + } + + /// + public ActiveOrHistoricCurrencyAndAmount Amt + { + get + { + return this.amtField; + } + set + { + this.amtField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class RemittanceAmount2 + { + + private ActiveOrHistoricCurrencyAndAmount duePyblAmtField; + + private DiscountAmountAndType1[] dscntApldAmtField; + + private ActiveOrHistoricCurrencyAndAmount cdtNoteAmtField; + + private TaxAmountAndType1[] taxAmtField; + + private DocumentAdjustment1[] adjstmntAmtAndRsnField; + + private ActiveOrHistoricCurrencyAndAmount rmtdAmtField; + + /// + public ActiveOrHistoricCurrencyAndAmount DuePyblAmt + { + get + { + return this.duePyblAmtField; + } + set + { + this.duePyblAmtField = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("DscntApldAmt")] + public DiscountAmountAndType1[] DscntApldAmt + { + get + { + return this.dscntApldAmtField; + } + set + { + this.dscntApldAmtField = value; + } + } + + /// + public ActiveOrHistoricCurrencyAndAmount CdtNoteAmt + { + get + { + return this.cdtNoteAmtField; + } + set + { + this.cdtNoteAmtField = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("TaxAmt")] + public TaxAmountAndType1[] TaxAmt + { + get + { + return this.taxAmtField; + } + set + { + this.taxAmtField = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("AdjstmntAmtAndRsn")] + public DocumentAdjustment1[] AdjstmntAmtAndRsn + { + get + { + return this.adjstmntAmtAndRsnField; + } + set + { + this.adjstmntAmtAndRsnField = value; + } + } + + /// + public ActiveOrHistoricCurrencyAndAmount RmtdAmt + { + get + { + return this.rmtdAmtField; + } + set + { + this.rmtdAmtField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class ReferredDocumentType1Choice + { + + private object itemField; + + /// + [System.Xml.Serialization.XmlElementAttribute("Cd", typeof(DocumentType5Code))] + [System.Xml.Serialization.XmlElementAttribute("Prtry", typeof(string))] + public object Item + { + get + { + return this.itemField; + } + set + { + this.itemField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public enum DocumentType5Code + { + + /// + MSIN, + + /// + CNFA, + + /// + DNFA, + + /// + CINV, + + /// + CREN, + + /// + DEBN, + + /// + HIRI, + + /// + SBIN, + + /// + CMCN, + + /// + SOAC, + + /// + DISP, + + /// + BOLD, + + /// + VCHR, + + /// + AROI, + + /// + TSUT, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class ReferredDocumentType2 + { + + private ReferredDocumentType1Choice cdOrPrtryField; + + private string issrField; + + /// + public ReferredDocumentType1Choice CdOrPrtry + { + get + { + return this.cdOrPrtryField; + } + set + { + this.cdOrPrtryField = value; + } + } + + /// + public string Issr + { + get + { + return this.issrField; + } + set + { + this.issrField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class ReferredDocumentInformation3 + { + + private ReferredDocumentType2 tpField; + + private string nbField; + + private System.DateTime rltdDtField; + + private bool rltdDtFieldSpecified; + + /// + public ReferredDocumentType2 Tp + { + get + { + return this.tpField; + } + set + { + this.tpField = value; + } + } + + /// + public string Nb + { + get + { + return this.nbField; + } + set + { + this.nbField = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType = "date")] + public System.DateTime RltdDt + { + get + { + return this.rltdDtField; + } + set + { + this.rltdDtField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool RltdDtSpecified + { + get + { + return this.rltdDtFieldSpecified; + } + set + { + this.rltdDtFieldSpecified = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class StructuredRemittanceInformation9 + { + + private ReferredDocumentInformation3[] rfrdDocInfField; + + private RemittanceAmount2 rfrdDocAmtField; + + private CreditorReferenceInformation2 cdtrRefInfField; + + private PartyIdentification43 invcrField; + + private PartyIdentification43 invceeField; + + private string[] addtlRmtInfField; + + /// + [System.Xml.Serialization.XmlElementAttribute("RfrdDocInf")] + public ReferredDocumentInformation3[] RfrdDocInf + { + get + { + return this.rfrdDocInfField; + } + set + { + this.rfrdDocInfField = value; + } + } + + /// + public RemittanceAmount2 RfrdDocAmt + { + get + { + return this.rfrdDocAmtField; + } + set + { + this.rfrdDocAmtField = value; + } + } + + /// + public CreditorReferenceInformation2 CdtrRefInf + { + get + { + return this.cdtrRefInfField; + } + set + { + this.cdtrRefInfField = value; + } + } + + /// + public PartyIdentification43 Invcr + { + get + { + return this.invcrField; + } + set + { + this.invcrField = value; + } + } + + /// + public PartyIdentification43 Invcee + { + get + { + return this.invceeField; + } + set + { + this.invceeField = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("AddtlRmtInf")] + public string[] AddtlRmtInf + { + get + { + return this.addtlRmtInfField; + } + set + { + this.addtlRmtInfField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class RemittanceInformation7 + { + + private string[] ustrdField; + + private StructuredRemittanceInformation9[] strdField; + + /// + [System.Xml.Serialization.XmlElementAttribute("Ustrd")] + public string[] Ustrd + { + get + { + return this.ustrdField; + } + set + { + this.ustrdField = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Strd")] + public StructuredRemittanceInformation9[] Strd + { + get + { + return this.strdField; + } + set + { + this.strdField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class NameAndAddress10 + { + + private string nmField; + + private PostalAddress6 adrField; + + /// + public string Nm + { + get + { + return this.nmField; + } + set + { + this.nmField = value; + } + } + + /// + public PostalAddress6 Adr + { + get + { + return this.adrField; + } + set + { + this.adrField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class RemittanceLocation2 + { + + private string rmtIdField; + + private RemittanceLocationMethod2Code rmtLctnMtdField; + + private bool rmtLctnMtdFieldSpecified; + + private string rmtLctnElctrncAdrField; + + private NameAndAddress10 rmtLctnPstlAdrField; + + /// + public string RmtId + { + get + { + return this.rmtIdField; + } + set + { + this.rmtIdField = value; + } + } + + /// + public RemittanceLocationMethod2Code RmtLctnMtd + { + get + { + return this.rmtLctnMtdField; + } + set + { + this.rmtLctnMtdField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool RmtLctnMtdSpecified + { + get + { + return this.rmtLctnMtdFieldSpecified; + } + set + { + this.rmtLctnMtdFieldSpecified = value; + } + } + + /// + public string RmtLctnElctrncAdr + { + get + { + return this.rmtLctnElctrncAdrField; + } + set + { + this.rmtLctnElctrncAdrField = value; + } + } + + /// + public NameAndAddress10 RmtLctnPstlAdr + { + get + { + return this.rmtLctnPstlAdrField; + } + set + { + this.rmtLctnPstlAdrField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public enum RemittanceLocationMethod2Code + { + + /// + FAXI, + + /// + EDIC, + + /// + URID, + + /// + EMAL, + + /// + POST, + + /// + SMSM, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class Purpose2Choice + { + + private string itemField; + + private ItemChoiceType11 itemElementNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute("Cd", typeof(string))] + [System.Xml.Serialization.XmlElementAttribute("Prtry", typeof(string))] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")] + public string Item + { + get + { + return this.itemField; + } + set + { + this.itemField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemChoiceType11 ItemElementName + { + get + { + return this.itemElementNameField; + } + set + { + this.itemElementNameField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04", IncludeInSchema = false)] + public enum ItemChoiceType11 + { + + /// + Cd, + + /// + Prtry, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class ProprietaryAgent3 + { + + private string tpField; + + private BranchAndFinancialInstitutionIdentification5 agtField; + + /// + public string Tp + { + get + { + return this.tpField; + } + set + { + this.tpField = value; + } + } + + /// + public BranchAndFinancialInstitutionIdentification5 Agt + { + get + { + return this.agtField; + } + set + { + this.agtField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class BranchAndFinancialInstitutionIdentification5 + { + + private FinancialInstitutionIdentification8 finInstnIdField; + + private BranchData2 brnchIdField; + + /// + public FinancialInstitutionIdentification8 FinInstnId + { + get + { + return this.finInstnIdField; + } + set + { + this.finInstnIdField = value; + } + } + + /// + public BranchData2 BrnchId + { + get + { + return this.brnchIdField; + } + set + { + this.brnchIdField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class FinancialInstitutionIdentification8 + { + + private string bICFIField; + + private ClearingSystemMemberIdentification2 clrSysMmbIdField; + + private string nmField; + + private PostalAddress6 pstlAdrField; + + private GenericFinancialIdentification1 othrField; + + /// + public string BICFI + { + get + { + return this.bICFIField; + } + set + { + this.bICFIField = value; + } + } + + /// + public ClearingSystemMemberIdentification2 ClrSysMmbId + { + get + { + return this.clrSysMmbIdField; + } + set + { + this.clrSysMmbIdField = value; + } + } + + /// + public string Nm + { + get + { + return this.nmField; + } + set + { + this.nmField = value; + } + } + + /// + public PostalAddress6 PstlAdr + { + get + { + return this.pstlAdrField; + } + set + { + this.pstlAdrField = value; + } + } + + /// + public GenericFinancialIdentification1 Othr + { + get + { + return this.othrField; + } + set + { + this.othrField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class ClearingSystemMemberIdentification2 + { + + private ClearingSystemIdentification2Choice clrSysIdField; + + private string mmbIdField; + + /// + public ClearingSystemIdentification2Choice ClrSysId + { + get + { + return this.clrSysIdField; + } + set + { + this.clrSysIdField = value; + } + } + + /// + public string MmbId + { + get + { + return this.mmbIdField; + } + set + { + this.mmbIdField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class ClearingSystemIdentification2Choice + { + + private string itemField; + + private ItemChoiceType5 itemElementNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute("Cd", typeof(string))] + [System.Xml.Serialization.XmlElementAttribute("Prtry", typeof(string))] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")] + public string Item + { + get + { + return this.itemField; + } + set + { + this.itemField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemChoiceType5 ItemElementName + { + get + { + return this.itemElementNameField; + } + set + { + this.itemElementNameField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04", IncludeInSchema = false)] + public enum ItemChoiceType5 + { + + /// + Cd, + + /// + Prtry, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class GenericFinancialIdentification1 + { + + private string idField; + + private FinancialIdentificationSchemeName1Choice schmeNmField; + + private string issrField; + + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idField = value; + } + } + + /// + public FinancialIdentificationSchemeName1Choice SchmeNm + { + get + { + return this.schmeNmField; + } + set + { + this.schmeNmField = value; + } + } + + /// + public string Issr + { + get + { + return this.issrField; + } + set + { + this.issrField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class FinancialIdentificationSchemeName1Choice + { + + private string itemField; + + private ItemChoiceType6 itemElementNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute("Cd", typeof(string))] + [System.Xml.Serialization.XmlElementAttribute("Prtry", typeof(string))] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")] + public string Item + { + get + { + return this.itemField; + } + set + { + this.itemField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemChoiceType6 ItemElementName + { + get + { + return this.itemElementNameField; + } + set + { + this.itemElementNameField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04", IncludeInSchema = false)] + public enum ItemChoiceType6 + { + + /// + Cd, + + /// + Prtry, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class BranchData2 + { + + private string idField; + + private string nmField; + + private PostalAddress6 pstlAdrField; + + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idField = value; + } + } + + /// + public string Nm + { + get + { + return this.nmField; + } + set + { + this.nmField = value; + } + } + + /// + public PostalAddress6 PstlAdr + { + get + { + return this.pstlAdrField; + } + set + { + this.pstlAdrField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class TransactionAgents3 + { + + private BranchAndFinancialInstitutionIdentification5 dbtrAgtField; + + private BranchAndFinancialInstitutionIdentification5 cdtrAgtField; + + private BranchAndFinancialInstitutionIdentification5 intrmyAgt1Field; + + private BranchAndFinancialInstitutionIdentification5 intrmyAgt2Field; + + private BranchAndFinancialInstitutionIdentification5 intrmyAgt3Field; + + private BranchAndFinancialInstitutionIdentification5 rcvgAgtField; + + private BranchAndFinancialInstitutionIdentification5 dlvrgAgtField; + + private BranchAndFinancialInstitutionIdentification5 issgAgtField; + + private BranchAndFinancialInstitutionIdentification5 sttlmPlcField; + + private ProprietaryAgent3[] prtryField; + + /// + public BranchAndFinancialInstitutionIdentification5 DbtrAgt + { + get + { + return this.dbtrAgtField; + } + set + { + this.dbtrAgtField = value; + } + } + + /// + public BranchAndFinancialInstitutionIdentification5 CdtrAgt + { + get + { + return this.cdtrAgtField; + } + set + { + this.cdtrAgtField = value; + } + } + + /// + public BranchAndFinancialInstitutionIdentification5 IntrmyAgt1 + { + get + { + return this.intrmyAgt1Field; + } + set + { + this.intrmyAgt1Field = value; + } + } + + /// + public BranchAndFinancialInstitutionIdentification5 IntrmyAgt2 + { + get + { + return this.intrmyAgt2Field; + } + set + { + this.intrmyAgt2Field = value; + } + } + + /// + public BranchAndFinancialInstitutionIdentification5 IntrmyAgt3 + { + get + { + return this.intrmyAgt3Field; + } + set + { + this.intrmyAgt3Field = value; + } + } + + /// + public BranchAndFinancialInstitutionIdentification5 RcvgAgt + { + get + { + return this.rcvgAgtField; + } + set + { + this.rcvgAgtField = value; + } + } + + /// + public BranchAndFinancialInstitutionIdentification5 DlvrgAgt + { + get + { + return this.dlvrgAgtField; + } + set + { + this.dlvrgAgtField = value; + } + } + + /// + public BranchAndFinancialInstitutionIdentification5 IssgAgt + { + get + { + return this.issgAgtField; + } + set + { + this.issgAgtField = value; + } + } + + /// + public BranchAndFinancialInstitutionIdentification5 SttlmPlc + { + get + { + return this.sttlmPlcField; + } + set + { + this.sttlmPlcField = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Prtry")] + public ProprietaryAgent3[] Prtry + { + get + { + return this.prtryField; + } + set + { + this.prtryField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class ProprietaryParty3 + { + + private string tpField; + + private PartyIdentification43 ptyField; + + /// + public string Tp + { + get + { + return this.tpField; + } + set + { + this.tpField = value; + } + } + + /// + public PartyIdentification43 Pty + { + get + { + return this.ptyField; + } + set + { + this.ptyField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class TransactionParties3 + { + + private PartyIdentification43 initgPtyField; + + private PartyIdentification43 dbtrField; + + private CashAccount24 dbtrAcctField; + + private PartyIdentification43 ultmtDbtrField; + + private PartyIdentification43 cdtrField; + + private CashAccount24 cdtrAcctField; + + private PartyIdentification43 ultmtCdtrField; + + private PartyIdentification43 tradgPtyField; + + private ProprietaryParty3[] prtryField; + + /// + public PartyIdentification43 InitgPty + { + get + { + return this.initgPtyField; + } + set + { + this.initgPtyField = value; + } + } + + /// + public PartyIdentification43 Dbtr + { + get + { + return this.dbtrField; + } + set + { + this.dbtrField = value; + } + } + + /// + public CashAccount24 DbtrAcct + { + get + { + return this.dbtrAcctField; + } + set + { + this.dbtrAcctField = value; + } + } + + /// + public PartyIdentification43 UltmtDbtr + { + get + { + return this.ultmtDbtrField; + } + set + { + this.ultmtDbtrField = value; + } + } + + /// + public PartyIdentification43 Cdtr + { + get + { + return this.cdtrField; + } + set + { + this.cdtrField = value; + } + } + + /// + public CashAccount24 CdtrAcct + { + get + { + return this.cdtrAcctField; + } + set + { + this.cdtrAcctField = value; + } + } + + /// + public PartyIdentification43 UltmtCdtr + { + get + { + return this.ultmtCdtrField; + } + set + { + this.ultmtCdtrField = value; + } + } + + /// + public PartyIdentification43 TradgPty + { + get + { + return this.tradgPtyField; + } + set + { + this.tradgPtyField = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Prtry")] + public ProprietaryParty3[] Prtry + { + get + { + return this.prtryField; + } + set + { + this.prtryField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class CashAccount24 + { + + private AccountIdentification4Choice idField; + + private CashAccountType2Choice tpField; + + private string ccyField; + + private string nmField; + + /// + public AccountIdentification4Choice Id + { + get + { + return this.idField; + } + set + { + this.idField = value; + } + } + + /// + public CashAccountType2Choice Tp + { + get + { + return this.tpField; + } + set + { + this.tpField = value; + } + } + + /// + public string Ccy + { + get + { + return this.ccyField; + } + set + { + this.ccyField = value; + } + } + + /// + public string Nm + { + get + { + return this.nmField; + } + set + { + this.nmField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class AccountIdentification4Choice + { + + private object itemField; + + /// + [System.Xml.Serialization.XmlElementAttribute("IBAN", typeof(string))] + [System.Xml.Serialization.XmlElementAttribute("Othr", typeof(GenericAccountIdentification1))] + public object Item + { + get + { + return this.itemField; + } + set + { + this.itemField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class GenericAccountIdentification1 + { + + private string idField; + + private AccountSchemeName1Choice schmeNmField; + + private string issrField; + + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idField = value; + } + } + + /// + public AccountSchemeName1Choice SchmeNm + { + get + { + return this.schmeNmField; + } + set + { + this.schmeNmField = value; + } + } + + /// + public string Issr + { + get + { + return this.issrField; + } + set + { + this.issrField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class AccountSchemeName1Choice + { + + private string itemField; + + private ItemChoiceType3 itemElementNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute("Cd", typeof(string))] + [System.Xml.Serialization.XmlElementAttribute("Prtry", typeof(string))] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")] + public string Item + { + get + { + return this.itemField; + } + set + { + this.itemField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemChoiceType3 ItemElementName + { + get + { + return this.itemElementNameField; + } + set + { + this.itemElementNameField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04", IncludeInSchema = false)] + public enum ItemChoiceType3 + { + + /// + Cd, + + /// + Prtry, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class CashAccountType2Choice + { + + private string itemField; + + private ItemChoiceType4 itemElementNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute("Cd", typeof(string))] + [System.Xml.Serialization.XmlElementAttribute("Prtry", typeof(string))] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")] + public string Item + { + get + { + return this.itemField; + } + set + { + this.itemField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemChoiceType4 ItemElementName + { + get + { + return this.itemElementNameField; + } + set + { + this.itemElementNameField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04", IncludeInSchema = false)] + public enum ItemChoiceType4 + { + + /// + Cd, + + /// + Prtry, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class ProprietaryReference1 + { + + private string tpField; + + private string refField; + + /// + public string Tp + { + get + { + return this.tpField; + } + set + { + this.tpField = value; + } + } + + /// + public string Ref + { + get + { + return this.refField; + } + set + { + this.refField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class TransactionReferences3 + { + + private string msgIdField; + + private string acctSvcrRefField; + + private string pmtInfIdField; + + private string instrIdField; + + private string endToEndIdField; + + private string txIdField; + + private string mndtIdField; + + private string chqNbField; + + private string clrSysRefField; + + private string acctOwnrTxIdField; + + private string acctSvcrTxIdField; + + private string mktInfrstrctrTxIdField; + + private string prcgIdField; + + private ProprietaryReference1[] prtryField; + + /// + public string MsgId + { + get + { + return this.msgIdField; + } + set + { + this.msgIdField = value; + } + } + + /// + public string AcctSvcrRef + { + get + { + return this.acctSvcrRefField; + } + set + { + this.acctSvcrRefField = value; + } + } + + /// + public string PmtInfId + { + get + { + return this.pmtInfIdField; + } + set + { + this.pmtInfIdField = value; + } + } + + /// + public string InstrId + { + get + { + return this.instrIdField; + } + set + { + this.instrIdField = value; + } + } + + /// + public string EndToEndId + { + get + { + return this.endToEndIdField; + } + set + { + this.endToEndIdField = value; + } + } + + /// + public string TxId + { + get + { + return this.txIdField; + } + set + { + this.txIdField = value; + } + } + + /// + public string MndtId + { + get + { + return this.mndtIdField; + } + set + { + this.mndtIdField = value; + } + } + + /// + public string ChqNb + { + get + { + return this.chqNbField; + } + set + { + this.chqNbField = value; + } + } + + /// + public string ClrSysRef + { + get + { + return this.clrSysRefField; + } + set + { + this.clrSysRefField = value; + } + } + + /// + public string AcctOwnrTxId + { + get + { + return this.acctOwnrTxIdField; + } + set + { + this.acctOwnrTxIdField = value; + } + } + + /// + public string AcctSvcrTxId + { + get + { + return this.acctSvcrTxIdField; + } + set + { + this.acctSvcrTxIdField = value; + } + } + + /// + public string MktInfrstrctrTxId + { + get + { + return this.mktInfrstrctrTxIdField; + } + set + { + this.mktInfrstrctrTxIdField = value; + } + } + + /// + public string PrcgId + { + get + { + return this.prcgIdField; + } + set + { + this.prcgIdField = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Prtry")] + public ProprietaryReference1[] Prtry + { + get + { + return this.prtryField; + } + set + { + this.prtryField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class EntryTransaction4 + { + + private TransactionReferences3 refsField; + + private ActiveOrHistoricCurrencyAndAmount amtField; + + private CreditDebitCode cdtDbtIndField; + + private AmountAndCurrencyExchange3 amtDtlsField; + + private CashBalanceAvailability2[] avlbtyField; + + private BankTransactionCodeStructure4 bkTxCdField; + + private Charges4 chrgsField; + + private TransactionInterest3 intrstField; + + private TransactionParties3 rltdPtiesField; + + private TransactionAgents3 rltdAgtsField; + + private Purpose2Choice purpField; + + private RemittanceLocation2[] rltdRmtInfField; + + private RemittanceInformation7 rmtInfField; + + private TransactionDates2 rltdDtsField; + + private TransactionPrice3Choice rltdPricField; + + private TransactionQuantities2Choice[] rltdQtiesField; + + private SecurityIdentification14 finInstrmIdField; + + private TaxInformation3 taxField; + + private PaymentReturnReason2 rtrInfField; + + private CorporateAction9 corpActnField; + + private SecuritiesAccount13 sfkpgAcctField; + + private CashDeposit1[] cshDpstField; + + private CardTransaction1 cardTxField; + + private string addtlTxInfField; + + private SupplementaryData1[] splmtryDataField; + + /// + public TransactionReferences3 Refs + { + get + { + return this.refsField; + } + set + { + this.refsField = value; + } + } + + /// + public ActiveOrHistoricCurrencyAndAmount Amt + { + get + { + return this.amtField; + } + set + { + this.amtField = value; + } + } + + /// + public CreditDebitCode CdtDbtInd + { + get + { + return this.cdtDbtIndField; + } + set + { + this.cdtDbtIndField = value; + } + } + + /// + public AmountAndCurrencyExchange3 AmtDtls + { + get + { + return this.amtDtlsField; + } + set + { + this.amtDtlsField = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Avlbty")] + public CashBalanceAvailability2[] Avlbty + { + get + { + return this.avlbtyField; + } + set + { + this.avlbtyField = value; + } + } + + /// + public BankTransactionCodeStructure4 BkTxCd + { + get + { + return this.bkTxCdField; + } + set + { + this.bkTxCdField = value; + } + } + + /// + public Charges4 Chrgs + { + get + { + return this.chrgsField; + } + set + { + this.chrgsField = value; + } + } + + /// + public TransactionInterest3 Intrst + { + get + { + return this.intrstField; + } + set + { + this.intrstField = value; + } + } + + /// + public TransactionParties3 RltdPties + { + get + { + return this.rltdPtiesField; + } + set + { + this.rltdPtiesField = value; + } + } + + /// + public TransactionAgents3 RltdAgts + { + get + { + return this.rltdAgtsField; + } + set + { + this.rltdAgtsField = value; + } + } + + /// + public Purpose2Choice Purp + { + get + { + return this.purpField; + } + set + { + this.purpField = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("RltdRmtInf")] + public RemittanceLocation2[] RltdRmtInf + { + get + { + return this.rltdRmtInfField; + } + set + { + this.rltdRmtInfField = value; + } + } + + /// + public RemittanceInformation7 RmtInf + { + get + { + return this.rmtInfField; + } + set + { + this.rmtInfField = value; + } + } + + /// + public TransactionDates2 RltdDts + { + get + { + return this.rltdDtsField; + } + set + { + this.rltdDtsField = value; + } + } + + /// + public TransactionPrice3Choice RltdPric + { + get + { + return this.rltdPricField; + } + set + { + this.rltdPricField = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("RltdQties")] + public TransactionQuantities2Choice[] RltdQties + { + get + { + return this.rltdQtiesField; + } + set + { + this.rltdQtiesField = value; + } + } + + /// + public SecurityIdentification14 FinInstrmId + { + get + { + return this.finInstrmIdField; + } + set + { + this.finInstrmIdField = value; + } + } + + /// + public TaxInformation3 Tax + { + get + { + return this.taxField; + } + set + { + this.taxField = value; + } + } + + /// + public PaymentReturnReason2 RtrInf + { + get + { + return this.rtrInfField; + } + set + { + this.rtrInfField = value; + } + } + + /// + public CorporateAction9 CorpActn + { + get + { + return this.corpActnField; + } + set + { + this.corpActnField = value; + } + } + + /// + public SecuritiesAccount13 SfkpgAcct + { + get + { + return this.sfkpgAcctField; + } + set + { + this.sfkpgAcctField = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("CshDpst")] + public CashDeposit1[] CshDpst + { + get + { + return this.cshDpstField; + } + set + { + this.cshDpstField = value; + } + } + + /// + public CardTransaction1 CardTx + { + get + { + return this.cardTxField; + } + set + { + this.cardTxField = value; + } + } + + /// + public string AddtlTxInf + { + get + { + return this.addtlTxInfField; + } + set + { + this.addtlTxInfField = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("SplmtryData")] + public SupplementaryData1[] SplmtryData + { + get + { + return this.splmtryDataField; + } + set + { + this.splmtryDataField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class AmountAndCurrencyExchange3 + { + + private AmountAndCurrencyExchangeDetails3 instdAmtField; + + private AmountAndCurrencyExchangeDetails3 txAmtField; + + private AmountAndCurrencyExchangeDetails3 cntrValAmtField; + + private AmountAndCurrencyExchangeDetails3 anncdPstngAmtField; + + private AmountAndCurrencyExchangeDetails4[] prtryAmtField; + + /// + public AmountAndCurrencyExchangeDetails3 InstdAmt + { + get + { + return this.instdAmtField; + } + set + { + this.instdAmtField = value; + } + } + + /// + public AmountAndCurrencyExchangeDetails3 TxAmt + { + get + { + return this.txAmtField; + } + set + { + this.txAmtField = value; + } + } + + /// + public AmountAndCurrencyExchangeDetails3 CntrValAmt + { + get + { + return this.cntrValAmtField; + } + set + { + this.cntrValAmtField = value; + } + } + + /// + public AmountAndCurrencyExchangeDetails3 AnncdPstngAmt + { + get + { + return this.anncdPstngAmtField; + } + set + { + this.anncdPstngAmtField = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("PrtryAmt")] + public AmountAndCurrencyExchangeDetails4[] PrtryAmt + { + get + { + return this.prtryAmtField; + } + set + { + this.prtryAmtField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class AmountAndCurrencyExchangeDetails3 + { + + private ActiveOrHistoricCurrencyAndAmount amtField; + + private CurrencyExchange5 ccyXchgField; + + /// + public ActiveOrHistoricCurrencyAndAmount Amt + { + get + { + return this.amtField; + } + set + { + this.amtField = value; + } + } + + /// + public CurrencyExchange5 CcyXchg + { + get + { + return this.ccyXchgField; + } + set + { + this.ccyXchgField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class CurrencyExchange5 + { + + private string srcCcyField; + + private string trgtCcyField; + + private string unitCcyField; + + private decimal xchgRateField; + + private string ctrctIdField; + + private System.DateTime qtnDtField; + + private bool qtnDtFieldSpecified; + + /// + public string SrcCcy + { + get + { + return this.srcCcyField; + } + set + { + this.srcCcyField = value; + } + } + + /// + public string TrgtCcy + { + get + { + return this.trgtCcyField; + } + set + { + this.trgtCcyField = value; + } + } + + /// + public string UnitCcy + { + get + { + return this.unitCcyField; + } + set + { + this.unitCcyField = value; + } + } + + /// + public decimal XchgRate + { + get + { + return this.xchgRateField; + } + set + { + this.xchgRateField = value; + } + } + + /// + public string CtrctId + { + get + { + return this.ctrctIdField; + } + set + { + this.ctrctIdField = value; + } + } + + /// + public System.DateTime QtnDt + { + get + { + return this.qtnDtField; + } + set + { + this.qtnDtField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool QtnDtSpecified + { + get + { + return this.qtnDtFieldSpecified; + } + set + { + this.qtnDtFieldSpecified = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class AmountAndCurrencyExchangeDetails4 + { + + private string tpField; + + private ActiveOrHistoricCurrencyAndAmount amtField; + + private CurrencyExchange5 ccyXchgField; + + /// + public string Tp + { + get + { + return this.tpField; + } + set + { + this.tpField = value; + } + } + + /// + public ActiveOrHistoricCurrencyAndAmount Amt + { + get + { + return this.amtField; + } + set + { + this.amtField = value; + } + } + + /// + public CurrencyExchange5 CcyXchg + { + get + { + return this.ccyXchgField; + } + set + { + this.ccyXchgField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class CashBalanceAvailability2 + { + + private CashBalanceAvailabilityDate1 dtField; + + private ActiveOrHistoricCurrencyAndAmount amtField; + + private CreditDebitCode cdtDbtIndField; + + /// + public CashBalanceAvailabilityDate1 Dt + { + get + { + return this.dtField; + } + set + { + this.dtField = value; + } + } + + /// + public ActiveOrHistoricCurrencyAndAmount Amt + { + get + { + return this.amtField; + } + set + { + this.amtField = value; + } + } + + /// + public CreditDebitCode CdtDbtInd + { + get + { + return this.cdtDbtIndField; + } + set + { + this.cdtDbtIndField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class CashBalanceAvailabilityDate1 + { + + private object itemField; + + /// + [System.Xml.Serialization.XmlElementAttribute("ActlDt", typeof(System.DateTime), DataType = "date")] + [System.Xml.Serialization.XmlElementAttribute("NbOfDays", typeof(string))] + public object Item + { + get + { + return this.itemField; + } + set + { + this.itemField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class Charges4 + { + + private ActiveOrHistoricCurrencyAndAmount ttlChrgsAndTaxAmtField; + + private ChargesRecord2[] rcrdField; + + /// + public ActiveOrHistoricCurrencyAndAmount TtlChrgsAndTaxAmt + { + get + { + return this.ttlChrgsAndTaxAmtField; + } + set + { + this.ttlChrgsAndTaxAmtField = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Rcrd")] + public ChargesRecord2[] Rcrd + { + get + { + return this.rcrdField; + } + set + { + this.rcrdField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class ChargesRecord2 + { + + private ActiveOrHistoricCurrencyAndAmount amtField; + + private CreditDebitCode cdtDbtIndField; + + private bool cdtDbtIndFieldSpecified; + + private bool chrgInclIndField; + + private bool chrgInclIndFieldSpecified; + + private ChargeType3Choice tpField; + + private decimal rateField; + + private bool rateFieldSpecified; + + private ChargeBearerType1Code brField; + + private bool brFieldSpecified; + + private BranchAndFinancialInstitutionIdentification5 agtField; + + private TaxCharges2 taxField; + + /// + public ActiveOrHistoricCurrencyAndAmount Amt + { + get + { + return this.amtField; + } + set + { + this.amtField = value; + } + } + + /// + public CreditDebitCode CdtDbtInd + { + get + { + return this.cdtDbtIndField; + } + set + { + this.cdtDbtIndField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool CdtDbtIndSpecified + { + get + { + return this.cdtDbtIndFieldSpecified; + } + set + { + this.cdtDbtIndFieldSpecified = value; + } + } + + /// + public bool ChrgInclInd + { + get + { + return this.chrgInclIndField; + } + set + { + this.chrgInclIndField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool ChrgInclIndSpecified + { + get + { + return this.chrgInclIndFieldSpecified; + } + set + { + this.chrgInclIndFieldSpecified = value; + } + } + + /// + public ChargeType3Choice Tp + { + get + { + return this.tpField; + } + set + { + this.tpField = value; + } + } + + /// + public decimal Rate + { + get + { + return this.rateField; + } + set + { + this.rateField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool RateSpecified + { + get + { + return this.rateFieldSpecified; + } + set + { + this.rateFieldSpecified = value; + } + } + + /// + public ChargeBearerType1Code Br + { + get + { + return this.brField; + } + set + { + this.brField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool BrSpecified + { + get + { + return this.brFieldSpecified; + } + set + { + this.brFieldSpecified = value; + } + } + + /// + public BranchAndFinancialInstitutionIdentification5 Agt + { + get + { + return this.agtField; + } + set + { + this.agtField = value; + } + } + + /// + public TaxCharges2 Tax + { + get + { + return this.taxField; + } + set + { + this.taxField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class ChargeType3Choice + { + + private object itemField; + + /// + [System.Xml.Serialization.XmlElementAttribute("Cd", typeof(string))] + [System.Xml.Serialization.XmlElementAttribute("Prtry", typeof(GenericIdentification3))] + public object Item + { + get + { + return this.itemField; + } + set + { + this.itemField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class GenericIdentification3 + { + + private string idField; + + private string issrField; + + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idField = value; + } + } + + /// + public string Issr + { + get + { + return this.issrField; + } + set + { + this.issrField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public enum ChargeBearerType1Code + { + + /// + DEBT, + + /// + CRED, + + /// + SHAR, + + /// + SLEV, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class TaxCharges2 + { + + private string idField; + + private decimal rateField; + + private bool rateFieldSpecified; + + private ActiveOrHistoricCurrencyAndAmount amtField; + + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idField = value; + } + } + + /// + public decimal Rate + { + get + { + return this.rateField; + } + set + { + this.rateField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool RateSpecified + { + get + { + return this.rateFieldSpecified; + } + set + { + this.rateFieldSpecified = value; + } + } + + /// + public ActiveOrHistoricCurrencyAndAmount Amt + { + get + { + return this.amtField; + } + set + { + this.amtField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class TransactionInterest3 + { + + private ActiveOrHistoricCurrencyAndAmount ttlIntrstAndTaxAmtField; + + private InterestRecord1[] rcrdField; + + /// + public ActiveOrHistoricCurrencyAndAmount TtlIntrstAndTaxAmt + { + get + { + return this.ttlIntrstAndTaxAmtField; + } + set + { + this.ttlIntrstAndTaxAmtField = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Rcrd")] + public InterestRecord1[] Rcrd + { + get + { + return this.rcrdField; + } + set + { + this.rcrdField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class InterestRecord1 + { + + private ActiveOrHistoricCurrencyAndAmount amtField; + + private CreditDebitCode cdtDbtIndField; + + private InterestType1Choice tpField; + + private Rate3 rateField; + + private DateTimePeriodDetails frToDtField; + + private string rsnField; + + private TaxCharges2 taxField; + + /// + public ActiveOrHistoricCurrencyAndAmount Amt + { + get + { + return this.amtField; + } + set + { + this.amtField = value; + } + } + + /// + public CreditDebitCode CdtDbtInd + { + get + { + return this.cdtDbtIndField; + } + set + { + this.cdtDbtIndField = value; + } + } + + /// + public InterestType1Choice Tp + { + get + { + return this.tpField; + } + set + { + this.tpField = value; + } + } + + /// + public Rate3 Rate + { + get + { + return this.rateField; + } + set + { + this.rateField = value; + } + } + + /// + public DateTimePeriodDetails FrToDt + { + get + { + return this.frToDtField; + } + set + { + this.frToDtField = value; + } + } + + /// + public string Rsn + { + get + { + return this.rsnField; + } + set + { + this.rsnField = value; + } + } + + /// + public TaxCharges2 Tax + { + get + { + return this.taxField; + } + set + { + this.taxField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class InterestType1Choice + { + + private object itemField; + + /// + [System.Xml.Serialization.XmlElementAttribute("Cd", typeof(InterestType1Code))] + [System.Xml.Serialization.XmlElementAttribute("Prtry", typeof(string))] + public object Item + { + get + { + return this.itemField; + } + set + { + this.itemField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public enum InterestType1Code + { + + /// + INDY, + + /// + OVRN, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class Rate3 + { + + private RateType4Choice tpField; + + private CurrencyAndAmountRange2 vldtyRgField; + + /// + public RateType4Choice Tp + { + get + { + return this.tpField; + } + set + { + this.tpField = value; + } + } + + /// + public CurrencyAndAmountRange2 VldtyRg + { + get + { + return this.vldtyRgField; + } + set + { + this.vldtyRgField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class RateType4Choice + { + + private object itemField; + + /// + [System.Xml.Serialization.XmlElementAttribute("Othr", typeof(string))] + [System.Xml.Serialization.XmlElementAttribute("Pctg", typeof(decimal))] + public object Item + { + get + { + return this.itemField; + } + set + { + this.itemField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class CurrencyAndAmountRange2 + { + + private ImpliedCurrencyAmountRangeChoice amtField; + + private CreditDebitCode cdtDbtIndField; + + private bool cdtDbtIndFieldSpecified; + + private string ccyField; + + /// + public ImpliedCurrencyAmountRangeChoice Amt + { + get + { + return this.amtField; + } + set + { + this.amtField = value; + } + } + + /// + public CreditDebitCode CdtDbtInd + { + get + { + return this.cdtDbtIndField; + } + set + { + this.cdtDbtIndField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool CdtDbtIndSpecified + { + get + { + return this.cdtDbtIndFieldSpecified; + } + set + { + this.cdtDbtIndFieldSpecified = value; + } + } + + /// + public string Ccy + { + get + { + return this.ccyField; + } + set + { + this.ccyField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class ImpliedCurrencyAmountRangeChoice + { + + private object itemField; + + private ItemChoiceType7 itemElementNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute("EQAmt", typeof(decimal))] + [System.Xml.Serialization.XmlElementAttribute("FrAmt", typeof(AmountRangeBoundary1))] + [System.Xml.Serialization.XmlElementAttribute("FrToAmt", typeof(FromToAmountRange))] + [System.Xml.Serialization.XmlElementAttribute("NEQAmt", typeof(decimal))] + [System.Xml.Serialization.XmlElementAttribute("ToAmt", typeof(AmountRangeBoundary1))] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")] + public object Item + { + get + { + return this.itemField; + } + set + { + this.itemField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemChoiceType7 ItemElementName + { + get + { + return this.itemElementNameField; + } + set + { + this.itemElementNameField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class AmountRangeBoundary1 + { + + private decimal bdryAmtField; + + private bool inclField; + + /// + public decimal BdryAmt + { + get + { + return this.bdryAmtField; + } + set + { + this.bdryAmtField = value; + } + } + + /// + public bool Incl + { + get + { + return this.inclField; + } + set + { + this.inclField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class FromToAmountRange + { + + private AmountRangeBoundary1 frAmtField; + + private AmountRangeBoundary1 toAmtField; + + /// + public AmountRangeBoundary1 FrAmt + { + get + { + return this.frAmtField; + } + set + { + this.frAmtField = value; + } + } + + /// + public AmountRangeBoundary1 ToAmt + { + get + { + return this.toAmtField; + } + set + { + this.toAmtField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04", IncludeInSchema = false)] + public enum ItemChoiceType7 + { + + /// + EQAmt, + + /// + FrAmt, + + /// + FrToAmt, + + /// + NEQAmt, + + /// + ToAmt, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class BatchInformation2 + { + + private string msgIdField; + + private string pmtInfIdField; + + private string nbOfTxsField; + + private ActiveOrHistoricCurrencyAndAmount ttlAmtField; + + private CreditDebitCode cdtDbtIndField; + + private bool cdtDbtIndFieldSpecified; + + /// + public string MsgId + { + get + { + return this.msgIdField; + } + set + { + this.msgIdField = value; + } + } + + /// + public string PmtInfId + { + get + { + return this.pmtInfIdField; + } + set + { + this.pmtInfIdField = value; + } + } + + /// + public string NbOfTxs + { + get + { + return this.nbOfTxsField; + } + set + { + this.nbOfTxsField = value; + } + } + + /// + public ActiveOrHistoricCurrencyAndAmount TtlAmt + { + get + { + return this.ttlAmtField; + } + set + { + this.ttlAmtField = value; + } + } + + /// + public CreditDebitCode CdtDbtInd + { + get + { + return this.cdtDbtIndField; + } + set + { + this.cdtDbtIndField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool CdtDbtIndSpecified + { + get + { + return this.cdtDbtIndFieldSpecified; + } + set + { + this.cdtDbtIndFieldSpecified = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class EntryDetails3 + { + + private BatchInformation2 btchField; + + private EntryTransaction4[] txDtlsField; + + /// + public BatchInformation2 Btch + { + get + { + return this.btchField; + } + set + { + this.btchField = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("TxDtls")] + public EntryTransaction4[] TxDtls + { + get + { + return this.txDtlsField; + } + set + { + this.txDtlsField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class CardEntry1 + { + + private PaymentCard4 cardField; + + private PointOfInteraction1 pOIField; + + private CardAggregated1 aggtdNtryField; + + /// + public PaymentCard4 Card + { + get + { + return this.cardField; + } + set + { + this.cardField = value; + } + } + + /// + public PointOfInteraction1 POI + { + get + { + return this.pOIField; + } + set + { + this.pOIField = value; + } + } + + /// + public CardAggregated1 AggtdNtry + { + get + { + return this.aggtdNtryField; + } + set + { + this.aggtdNtryField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class TechnicalInputChannel1Choice + { + + private string itemField; + + private ItemChoiceType10 itemElementNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute("Cd", typeof(string))] + [System.Xml.Serialization.XmlElementAttribute("Prtry", typeof(string))] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")] + public string Item + { + get + { + return this.itemField; + } + set + { + this.itemField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemChoiceType10 ItemElementName + { + get + { + return this.itemElementNameField; + } + set + { + this.itemElementNameField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04", IncludeInSchema = false)] + public enum ItemChoiceType10 + { + + /// + Cd, + + /// + Prtry, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class MessageIdentification2 + { + + private string msgNmIdField; + + private string msgIdField; + + /// + public string MsgNmId + { + get + { + return this.msgNmIdField; + } + set + { + this.msgNmIdField = value; + } + } + + /// + public string MsgId + { + get + { + return this.msgIdField; + } + set + { + this.msgIdField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class ReportEntry4 + { + + private string ntryRefField; + + private ActiveOrHistoricCurrencyAndAmount amtField; + + private CreditDebitCode cdtDbtIndField; + + private bool rvslIndField; + + private bool rvslIndFieldSpecified; + + private EntryStatus2Code stsField; + + private DateAndDateTimeChoice bookgDtField; + + private DateAndDateTimeChoice valDtField; + + private string acctSvcrRefField; + + private CashBalanceAvailability2[] avlbtyField; + + private BankTransactionCodeStructure4 bkTxCdField; + + private bool comssnWvrIndField; + + private bool comssnWvrIndFieldSpecified; + + private MessageIdentification2 addtlInfIndField; + + private AmountAndCurrencyExchange3 amtDtlsField; + + private Charges4 chrgsField; + + private TechnicalInputChannel1Choice techInptChanlField; + + private TransactionInterest3 intrstField; + + private CardEntry1 cardTxField; + + private EntryDetails3[] ntryDtlsField; + + private string addtlNtryInfField; + + /// + public string NtryRef + { + get + { + return this.ntryRefField; + } + set + { + this.ntryRefField = value; + } + } + + /// + public ActiveOrHistoricCurrencyAndAmount Amt + { + get + { + return this.amtField; + } + set + { + this.amtField = value; + } + } + + /// + public CreditDebitCode CdtDbtInd + { + get + { + return this.cdtDbtIndField; + } + set + { + this.cdtDbtIndField = value; + } + } + + /// + public bool RvslInd + { + get + { + return this.rvslIndField; + } + set + { + this.rvslIndField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool RvslIndSpecified + { + get + { + return this.rvslIndFieldSpecified; + } + set + { + this.rvslIndFieldSpecified = value; + } + } + + /// + public EntryStatus2Code Sts + { + get + { + return this.stsField; + } + set + { + this.stsField = value; + } + } + + /// + public DateAndDateTimeChoice BookgDt + { + get + { + return this.bookgDtField; + } + set + { + this.bookgDtField = value; + } + } + + /// + public DateAndDateTimeChoice ValDt + { + get + { + return this.valDtField; + } + set + { + this.valDtField = value; + } + } + + /// + public string AcctSvcrRef + { + get + { + return this.acctSvcrRefField; + } + set + { + this.acctSvcrRefField = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Avlbty")] + public CashBalanceAvailability2[] Avlbty + { + get + { + return this.avlbtyField; + } + set + { + this.avlbtyField = value; + } + } + + /// + public BankTransactionCodeStructure4 BkTxCd + { + get + { + return this.bkTxCdField; + } + set + { + this.bkTxCdField = value; + } + } + + /// + public bool ComssnWvrInd + { + get + { + return this.comssnWvrIndField; + } + set + { + this.comssnWvrIndField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool ComssnWvrIndSpecified + { + get + { + return this.comssnWvrIndFieldSpecified; + } + set + { + this.comssnWvrIndFieldSpecified = value; + } + } + + /// + public MessageIdentification2 AddtlInfInd + { + get + { + return this.addtlInfIndField; + } + set + { + this.addtlInfIndField = value; + } + } + + /// + public AmountAndCurrencyExchange3 AmtDtls + { + get + { + return this.amtDtlsField; + } + set + { + this.amtDtlsField = value; + } + } + + /// + public Charges4 Chrgs + { + get + { + return this.chrgsField; + } + set + { + this.chrgsField = value; + } + } + + /// + public TechnicalInputChannel1Choice TechInptChanl + { + get + { + return this.techInptChanlField; + } + set + { + this.techInptChanlField = value; + } + } + + /// + public TransactionInterest3 Intrst + { + get + { + return this.intrstField; + } + set + { + this.intrstField = value; + } + } + + /// + public CardEntry1 CardTx + { + get + { + return this.cardTxField; + } + set + { + this.cardTxField = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("NtryDtls")] + public EntryDetails3[] NtryDtls + { + get + { + return this.ntryDtlsField; + } + set + { + this.ntryDtlsField = value; + } + } + + /// + public string AddtlNtryInf + { + get + { + return this.addtlNtryInfField; + } + set + { + this.addtlNtryInfField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public enum EntryStatus2Code + { + + /// + BOOK, + + /// + PDNG, + + /// + INFO, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class TotalsPerBankTransactionCode3 + { + + private string nbOfNtriesField; + + private decimal sumField; + + private bool sumFieldSpecified; + + private AmountAndDirection35 ttlNetNtryField; + + private bool fcstIndField; + + private bool fcstIndFieldSpecified; + + private BankTransactionCodeStructure4 bkTxCdField; + + private CashBalanceAvailability2[] avlbtyField; + + /// + public string NbOfNtries + { + get + { + return this.nbOfNtriesField; + } + set + { + this.nbOfNtriesField = value; + } + } + + /// + public decimal Sum + { + get + { + return this.sumField; + } + set + { + this.sumField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool SumSpecified + { + get + { + return this.sumFieldSpecified; + } + set + { + this.sumFieldSpecified = value; + } + } + + /// + public AmountAndDirection35 TtlNetNtry + { + get + { + return this.ttlNetNtryField; + } + set + { + this.ttlNetNtryField = value; + } + } + + /// + public bool FcstInd + { + get + { + return this.fcstIndField; + } + set + { + this.fcstIndField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool FcstIndSpecified + { + get + { + return this.fcstIndFieldSpecified; + } + set + { + this.fcstIndFieldSpecified = value; + } + } + + /// + public BankTransactionCodeStructure4 BkTxCd + { + get + { + return this.bkTxCdField; + } + set + { + this.bkTxCdField = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Avlbty")] + public CashBalanceAvailability2[] Avlbty + { + get + { + return this.avlbtyField; + } + set + { + this.avlbtyField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class AmountAndDirection35 + { + + private decimal amtField; + + private CreditDebitCode cdtDbtIndField; + + /// + public decimal Amt + { + get + { + return this.amtField; + } + set + { + this.amtField = value; + } + } + + /// + public CreditDebitCode CdtDbtInd + { + get + { + return this.cdtDbtIndField; + } + set + { + this.cdtDbtIndField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class NumberAndSumOfTransactions1 + { + + private string nbOfNtriesField; + + private decimal sumField; + + private bool sumFieldSpecified; + + /// + public string NbOfNtries + { + get + { + return this.nbOfNtriesField; + } + set + { + this.nbOfNtriesField = value; + } + } + + /// + public decimal Sum + { + get + { + return this.sumField; + } + set + { + this.sumField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool SumSpecified + { + get + { + return this.sumFieldSpecified; + } + set + { + this.sumFieldSpecified = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class NumberAndSumOfTransactions4 + { + + private string nbOfNtriesField; + + private decimal sumField; + + private bool sumFieldSpecified; + + private AmountAndDirection35 ttlNetNtryField; + + /// + public string NbOfNtries + { + get + { + return this.nbOfNtriesField; + } + set + { + this.nbOfNtriesField = value; + } + } + + /// + public decimal Sum + { + get + { + return this.sumField; + } + set + { + this.sumField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool SumSpecified + { + get + { + return this.sumFieldSpecified; + } + set + { + this.sumFieldSpecified = value; + } + } + + /// + public AmountAndDirection35 TtlNetNtry + { + get + { + return this.ttlNetNtryField; + } + set + { + this.ttlNetNtryField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class TotalTransactions4 + { + + private NumberAndSumOfTransactions4 ttlNtriesField; + + private NumberAndSumOfTransactions1 ttlCdtNtriesField; + + private NumberAndSumOfTransactions1 ttlDbtNtriesField; + + private TotalsPerBankTransactionCode3[] ttlNtriesPerBkTxCdField; + + /// + public NumberAndSumOfTransactions4 TtlNtries + { + get + { + return this.ttlNtriesField; + } + set + { + this.ttlNtriesField = value; + } + } + + /// + public NumberAndSumOfTransactions1 TtlCdtNtries + { + get + { + return this.ttlCdtNtriesField; + } + set + { + this.ttlCdtNtriesField = value; + } + } + + /// + public NumberAndSumOfTransactions1 TtlDbtNtries + { + get + { + return this.ttlDbtNtriesField; + } + set + { + this.ttlDbtNtriesField = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("TtlNtriesPerBkTxCd")] + public TotalsPerBankTransactionCode3[] TtlNtriesPerBkTxCd + { + get + { + return this.ttlNtriesPerBkTxCdField; + } + set + { + this.ttlNtriesPerBkTxCdField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class CreditLine2 + { + + private bool inclField; + + private ActiveOrHistoricCurrencyAndAmount amtField; + + /// + public bool Incl + { + get + { + return this.inclField; + } + set + { + this.inclField = value; + } + } + + /// + public ActiveOrHistoricCurrencyAndAmount Amt + { + get + { + return this.amtField; + } + set + { + this.amtField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class BalanceSubType1Choice + { + + private string itemField; + + private ItemChoiceType8 itemElementNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute("Cd", typeof(string))] + [System.Xml.Serialization.XmlElementAttribute("Prtry", typeof(string))] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")] + public string Item + { + get + { + return this.itemField; + } + set + { + this.itemField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemChoiceType8 ItemElementName + { + get + { + return this.itemElementNameField; + } + set + { + this.itemElementNameField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04", IncludeInSchema = false)] + public enum ItemChoiceType8 + { + + /// + Cd, + + /// + Prtry, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class BalanceType5Choice + { + + private object itemField; + + /// + [System.Xml.Serialization.XmlElementAttribute("Cd", typeof(BalanceType12Code))] + [System.Xml.Serialization.XmlElementAttribute("Prtry", typeof(string))] + public object Item + { + get + { + return this.itemField; + } + set + { + this.itemField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public enum BalanceType12Code + { + + /// + XPCD, + + /// + OPAV, + + /// + ITAV, + + /// + CLAV, + + /// + FWAV, + + /// + CLBD, + + /// + ITBD, + + /// + OPBD, + + /// + PRCD, + + /// + INFO, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class BalanceType12 + { + + private BalanceType5Choice cdOrPrtryField; + + private BalanceSubType1Choice subTpField; + + /// + public BalanceType5Choice CdOrPrtry + { + get + { + return this.cdOrPrtryField; + } + set + { + this.cdOrPrtryField = value; + } + } + + /// + public BalanceSubType1Choice SubTp + { + get + { + return this.subTpField; + } + set + { + this.subTpField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class CashBalance3 + { + + private BalanceType12 tpField; + + private CreditLine2 cdtLineField; + + private ActiveOrHistoricCurrencyAndAmount amtField; + + private CreditDebitCode cdtDbtIndField; + + private DateAndDateTimeChoice dtField; + + private CashBalanceAvailability2[] avlbtyField; + + /// + public BalanceType12 Tp + { + get + { + return this.tpField; + } + set + { + this.tpField = value; + } + } + + /// + public CreditLine2 CdtLine + { + get + { + return this.cdtLineField; + } + set + { + this.cdtLineField = value; + } + } + + /// + public ActiveOrHistoricCurrencyAndAmount Amt + { + get + { + return this.amtField; + } + set + { + this.amtField = value; + } + } + + /// + public CreditDebitCode CdtDbtInd + { + get + { + return this.cdtDbtIndField; + } + set + { + this.cdtDbtIndField = value; + } + } + + /// + public DateAndDateTimeChoice Dt + { + get + { + return this.dtField; + } + set + { + this.dtField = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Avlbty")] + public CashBalanceAvailability2[] Avlbty + { + get + { + return this.avlbtyField; + } + set + { + this.avlbtyField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class AccountInterest2 + { + + private InterestType1Choice tpField; + + private Rate3[] rateField; + + private DateTimePeriodDetails frToDtField; + + private string rsnField; + + /// + public InterestType1Choice Tp + { + get + { + return this.tpField; + } + set + { + this.tpField = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Rate")] + public Rate3[] Rate + { + get + { + return this.rateField; + } + set + { + this.rateField = value; + } + } + + /// + public DateTimePeriodDetails FrToDt + { + get + { + return this.frToDtField; + } + set + { + this.frToDtField = value; + } + } + + /// + public string Rsn + { + get + { + return this.rsnField; + } + set + { + this.rsnField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class CashAccount25 + { + + private AccountIdentification4Choice idField; + + private CashAccountType2Choice tpField; + + private string ccyField; + + private string nmField; + + private PartyIdentification43 ownrField; + + private BranchAndFinancialInstitutionIdentification5 svcrField; + + /// + public AccountIdentification4Choice Id + { + get + { + return this.idField; + } + set + { + this.idField = value; + } + } + + /// + public CashAccountType2Choice Tp + { + get + { + return this.tpField; + } + set + { + this.tpField = value; + } + } + + /// + public string Ccy + { + get + { + return this.ccyField; + } + set + { + this.ccyField = value; + } + } + + /// + public string Nm + { + get + { + return this.nmField; + } + set + { + this.nmField = value; + } + } + + /// + public PartyIdentification43 Ownr + { + get + { + return this.ownrField; + } + set + { + this.ownrField = value; + } + } + + /// + public BranchAndFinancialInstitutionIdentification5 Svcr + { + get + { + return this.svcrField; + } + set + { + this.svcrField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class ReportingSource1Choice + { + + private string itemField; + + private ItemChoiceType2 itemElementNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute("Cd", typeof(string))] + [System.Xml.Serialization.XmlElementAttribute("Prtry", typeof(string))] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")] + public string Item + { + get + { + return this.itemField; + } + set + { + this.itemField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemChoiceType2 ItemElementName + { + get + { + return this.itemElementNameField; + } + set + { + this.itemElementNameField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04", IncludeInSchema = false)] + public enum ItemChoiceType2 + { + + /// + Cd, + + /// + Prtry, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class AccountStatement4 + { + + private string idField; + + private Pagination stmtPgntnField; + + private decimal elctrncSeqNbField; + + private bool elctrncSeqNbFieldSpecified; + + private decimal lglSeqNbField; + + private bool lglSeqNbFieldSpecified; + + private System.DateTime creDtTmField; + + private DateTimePeriodDetails frToDtField; + + private CopyDuplicate1Code cpyDplctIndField; + + private bool cpyDplctIndFieldSpecified; + + private ReportingSource1Choice rptgSrcField; + + private CashAccount25 acctField; + + private CashAccount24 rltdAcctField; + + private AccountInterest2[] intrstField; + + private CashBalance3[] balField; + + private TotalTransactions4 txsSummryField; + + private ReportEntry4[] ntryField; + + private string addtlStmtInfField; + + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idField = value; + } + } + + /// + public Pagination StmtPgntn + { + get + { + return this.stmtPgntnField; + } + set + { + this.stmtPgntnField = value; + } + } + + /// + public decimal ElctrncSeqNb + { + get + { + return this.elctrncSeqNbField; + } + set + { + this.elctrncSeqNbField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool ElctrncSeqNbSpecified + { + get + { + return this.elctrncSeqNbFieldSpecified; + } + set + { + this.elctrncSeqNbFieldSpecified = value; + } + } + + /// + public decimal LglSeqNb + { + get + { + return this.lglSeqNbField; + } + set + { + this.lglSeqNbField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool LglSeqNbSpecified + { + get + { + return this.lglSeqNbFieldSpecified; + } + set + { + this.lglSeqNbFieldSpecified = value; + } + } + + /// + public System.DateTime CreDtTm + { + get + { + return this.creDtTmField; + } + set + { + this.creDtTmField = value; + } + } + + /// + public DateTimePeriodDetails FrToDt + { + get + { + return this.frToDtField; + } + set + { + this.frToDtField = value; + } + } + + /// + public CopyDuplicate1Code CpyDplctInd + { + get + { + return this.cpyDplctIndField; + } + set + { + this.cpyDplctIndField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool CpyDplctIndSpecified + { + get + { + return this.cpyDplctIndFieldSpecified; + } + set + { + this.cpyDplctIndFieldSpecified = value; + } + } + + /// + public ReportingSource1Choice RptgSrc + { + get + { + return this.rptgSrcField; + } + set + { + this.rptgSrcField = value; + } + } + + /// + public CashAccount25 Acct + { + get + { + return this.acctField; + } + set + { + this.acctField = value; + } + } + + /// + public CashAccount24 RltdAcct + { + get + { + return this.rltdAcctField; + } + set + { + this.rltdAcctField = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Intrst")] + public AccountInterest2[] Intrst + { + get + { + return this.intrstField; + } + set + { + this.intrstField = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Bal")] + public CashBalance3[] Bal + { + get + { + return this.balField; + } + set + { + this.balField = value; + } + } + + /// + public TotalTransactions4 TxsSummry + { + get + { + return this.txsSummryField; + } + set + { + this.txsSummryField = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Ntry")] + public ReportEntry4[] Ntry + { + get + { + return this.ntryField; + } + set + { + this.ntryField = value; + } + } + + /// + public string AddtlStmtInf + { + get + { + return this.addtlStmtInfField; + } + set + { + this.addtlStmtInfField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class Pagination + { + + private string pgNbField; + + private bool lastPgIndField; + + /// + public string PgNb + { + get + { + return this.pgNbField; + } + set + { + this.pgNbField = value; + } + } + + /// + public bool LastPgInd + { + get + { + return this.lastPgIndField; + } + set + { + this.lastPgIndField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public enum CopyDuplicate1Code + { + + /// + CODU, + + /// + COPY, + + /// + DUPL, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class OriginalBusinessQuery1 + { + + private string msgIdField; + + private string msgNmIdField; + + private System.DateTime creDtTmField; + + private bool creDtTmFieldSpecified; + + /// + public string MsgId + { + get + { + return this.msgIdField; + } + set + { + this.msgIdField = value; + } + } + + /// + public string MsgNmId + { + get + { + return this.msgNmIdField; + } + set + { + this.msgNmIdField = value; + } + } + + /// + public System.DateTime CreDtTm + { + get + { + return this.creDtTmField; + } + set + { + this.creDtTmField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool CreDtTmSpecified + { + get + { + return this.creDtTmFieldSpecified; + } + set + { + this.creDtTmFieldSpecified = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class ContactDetails2 + { + + private NamePrefix1Code nmPrfxField; + + private bool nmPrfxFieldSpecified; + + private string nmField; + + private string phneNbField; + + private string mobNbField; + + private string faxNbField; + + private string emailAdrField; + + private string othrField; + + /// + public NamePrefix1Code NmPrfx + { + get + { + return this.nmPrfxField; + } + set + { + this.nmPrfxField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool NmPrfxSpecified + { + get + { + return this.nmPrfxFieldSpecified; + } + set + { + this.nmPrfxFieldSpecified = value; + } + } + + /// + public string Nm + { + get + { + return this.nmField; + } + set + { + this.nmField = value; + } + } + + /// + public string PhneNb + { + get + { + return this.phneNbField; + } + set + { + this.phneNbField = value; + } + } + + /// + public string MobNb + { + get + { + return this.mobNbField; + } + set + { + this.mobNbField = value; + } + } + + /// + public string FaxNb + { + get + { + return this.faxNbField; + } + set + { + this.faxNbField = value; + } + } + + /// + public string EmailAdr + { + get + { + return this.emailAdrField; + } + set + { + this.emailAdrField = value; + } + } + + /// + public string Othr + { + get + { + return this.othrField; + } + set + { + this.othrField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public enum NamePrefix1Code + { + + /// + DOCT, + + /// + MIST, + + /// + MISS, + + /// + MADM, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class PersonIdentificationSchemeName1Choice + { + + private string itemField; + + private ItemChoiceType1 itemElementNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute("Cd", typeof(string))] + [System.Xml.Serialization.XmlElementAttribute("Prtry", typeof(string))] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")] + public string Item + { + get + { + return this.itemField; + } + set + { + this.itemField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemChoiceType1 ItemElementName + { + get + { + return this.itemElementNameField; + } + set + { + this.itemElementNameField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04", IncludeInSchema = false)] + public enum ItemChoiceType1 + { + + /// + Cd, + + /// + Prtry, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class GenericPersonIdentification1 + { + + private string idField; + + private PersonIdentificationSchemeName1Choice schmeNmField; + + private string issrField; + + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idField = value; + } + } + + /// + public PersonIdentificationSchemeName1Choice SchmeNm + { + get + { + return this.schmeNmField; + } + set + { + this.schmeNmField = value; + } + } + + /// + public string Issr + { + get + { + return this.issrField; + } + set + { + this.issrField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class DateAndPlaceOfBirth + { + + private System.DateTime birthDtField; + + private string prvcOfBirthField; + + private string cityOfBirthField; + + private string ctryOfBirthField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType = "date")] + public System.DateTime BirthDt + { + get + { + return this.birthDtField; + } + set + { + this.birthDtField = value; + } + } + + /// + public string PrvcOfBirth + { + get + { + return this.prvcOfBirthField; + } + set + { + this.prvcOfBirthField = value; + } + } + + /// + public string CityOfBirth + { + get + { + return this.cityOfBirthField; + } + set + { + this.cityOfBirthField = value; + } + } + + /// + public string CtryOfBirth + { + get + { + return this.ctryOfBirthField; + } + set + { + this.ctryOfBirthField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class PersonIdentification5 + { + + private DateAndPlaceOfBirth dtAndPlcOfBirthField; + + private GenericPersonIdentification1[] othrField; + + /// + public DateAndPlaceOfBirth DtAndPlcOfBirth + { + get + { + return this.dtAndPlcOfBirthField; + } + set + { + this.dtAndPlcOfBirthField = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Othr")] + public GenericPersonIdentification1[] Othr + { + get + { + return this.othrField; + } + set + { + this.othrField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class OrganisationIdentificationSchemeName1Choice + { + + private string itemField; + + private ItemChoiceType itemElementNameField; + + /// + [System.Xml.Serialization.XmlElementAttribute("Cd", typeof(string))] + [System.Xml.Serialization.XmlElementAttribute("Prtry", typeof(string))] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")] + public string Item + { + get + { + return this.itemField; + } + set + { + this.itemField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public ItemChoiceType ItemElementName + { + get + { + return this.itemElementNameField; + } + set + { + this.itemElementNameField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04", IncludeInSchema = false)] + public enum ItemChoiceType + { + + /// + Cd, + + /// + Prtry, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class GenericOrganisationIdentification1 + { + + private string idField; + + private OrganisationIdentificationSchemeName1Choice schmeNmField; + + private string issrField; + + /// + public string Id + { + get + { + return this.idField; + } + set + { + this.idField = value; + } + } + + /// + public OrganisationIdentificationSchemeName1Choice SchmeNm + { + get + { + return this.schmeNmField; + } + set + { + this.schmeNmField = value; + } + } + + /// + public string Issr + { + get + { + return this.issrField; + } + set + { + this.issrField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class OrganisationIdentification8 + { + + private string anyBICField; + + private GenericOrganisationIdentification1[] othrField; + + /// + public string AnyBIC + { + get + { + return this.anyBICField; + } + set + { + this.anyBICField = value; + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("Othr")] + public GenericOrganisationIdentification1[] Othr + { + get + { + return this.othrField; + } + set + { + this.othrField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + + [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:iso:std:iso:20022:tech:xsd:camt.053.001.04")] + public partial class Party11Choice + { + + private object itemField; + + /// + [System.Xml.Serialization.XmlElementAttribute("OrgId", typeof(OrganisationIdentification8))] + [System.Xml.Serialization.XmlElementAttribute("PrvtId", typeof(PersonIdentification5))] + public object Item + { + get + { + return this.itemField; + } + set + { + this.itemField = value; + } + } + } +} \ No newline at end of file diff --git a/Schaad.Finance/Formats/AccountStatements/camt.053.001.02.xsd b/Schaad.Finance/Formats/AccountStatements/camt.053.001.02.xsd new file mode 100644 index 0000000..d43d573 --- /dev/null +++ b/Schaad.Finance/Formats/AccountStatements/camt.053.001.02.xsd @@ -0,0 +1,1298 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Schaad.Finance/Formats/AccountStatements/camt.053.001.04.xsd b/Schaad.Finance/Formats/AccountStatements/camt.053.001.04.xsd new file mode 100644 index 0000000..9576a06 --- /dev/null +++ b/Schaad.Finance/Formats/AccountStatements/camt.053.001.04.xsd @@ -0,0 +1,1764 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Schaad.Finance/Formats/CreditCardProvider/CembraMap.cs b/Schaad.Finance/Formats/CreditCardProvider/CembraMap.cs new file mode 100644 index 0000000..95ab5c6 --- /dev/null +++ b/Schaad.Finance/Formats/CreditCardProvider/CembraMap.cs @@ -0,0 +1,17 @@ +using CsvHelper.Configuration; +using Schaad.Finance.Api.Datasets; + +namespace Schaad.Finance.Formats.CreditCardProvider +{ + class CembraMap : ClassMap + { + public CembraMap() + { + Map(m => m.BookingDate).Name("Booking Date"); + Map(m => m.TransactionDate).Name("Transaction Date"); + Map(m => m.Transaction).Name("Transaction"); + Map(m => m.TransactionType).Name("Type"); + Map(m => m.Amount).Name("Amount (CHF)"); + } + } +} \ No newline at end of file diff --git a/Schaad.Finance/Schaad.Finance.csproj b/Schaad.Finance/Schaad.Finance.csproj new file mode 100644 index 0000000..7fb32c6 --- /dev/null +++ b/Schaad.Finance/Schaad.Finance.csproj @@ -0,0 +1,17 @@ + + + + netstandard2.0 + + + + + + + + + + + + + \ No newline at end of file diff --git a/Schaad.Finance/Services/AccountStatementService.cs b/Schaad.Finance/Services/AccountStatementService.cs new file mode 100644 index 0000000..90422a1 --- /dev/null +++ b/Schaad.Finance/Services/AccountStatementService.cs @@ -0,0 +1,44 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using Schaad.Finance.Api; +using Schaad.Finance.Api.AccountStatements; +using Schaad.Finance.Formats.AccountStatements; + +namespace Schaad.Finance.Services +{ + public class AccountStatementService : IAccountStatementService + { + public List ReadFile(string filePath, Encoding encoding) + { + IAccountStatementParsingService accountStatementParsingService = null; + var extension = Path.GetExtension(filePath).ToLower(); + switch (extension) + { + case ".xml": + accountStatementParsingService = new CAMT053() as IAccountStatementParsingService; + break; + + case ".sta": + accountStatementParsingService = new MT940() as IAccountStatementParsingService; + break; + + default: + throw new NotImplementedException($"Unknwon ending {extension}"); + } + + var accountStatementResults = new List(); + var accountStatements = accountStatementParsingService.ReadFile(filePath, encoding); + foreach (var accountStatement in accountStatements) + { + var error = accountStatementParsingService.ValidateAccountStatement(accountStatement); + var accountStatementResult = new AccountStatementResult(accountStatement, error); + accountStatementResults.Add(accountStatementResult); + } + + return accountStatementResults; + } + } +} diff --git a/Schaad.Finance/Services/CreditCardStatementService.cs b/Schaad.Finance/Services/CreditCardStatementService.cs new file mode 100644 index 0000000..c9750a7 --- /dev/null +++ b/Schaad.Finance/Services/CreditCardStatementService.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using CsvHelper; +using Schaad.Finance.Api; +using Schaad.Finance.Api.Datasets; + +namespace Schaad.Finance.Services +{ + public class CreditCardStatementService : ICreditCardStatementService + { + public IReadOnlyList ReadFile(CreditCardProvider creditCardProvider, string filePath, Encoding encoding) + { + switch (creditCardProvider) + { + case CreditCardProvider.Cembra: + return ParseCembra(filePath, encoding); + + default: + throw new NotImplementedException($"Unnknown procider {creditCardProvider}"); + } + } + + private IReadOnlyList ParseCembra(string filePath, Encoding encoding) + { + using (var reader = new StreamReader(filePath, encoding)) + { + using (var csv = new CsvReader(reader)) + { + csv.Configuration.RegisterClassMap(); + var records = csv.GetRecords(); + return records.ToList(); + } + } + } + } +} diff --git a/Schaad.Finance/Services/FxService.cs b/Schaad.Finance/Services/FxService.cs new file mode 100644 index 0000000..8c4caf2 --- /dev/null +++ b/Schaad.Finance/Services/FxService.cs @@ -0,0 +1,81 @@ +using Newtonsoft.Json.Linq; +using Schaad.Finance.Api; +using System; +using System.Collections.Generic; +using System.Net; + +namespace Schaad.Finance.Services +{ + public class FxService : IFxService + { + private Dictionary fxRateCache; + + public FxService() + { + fxRateCache = new Dictionary(); + } + + public decimal ConvertCurrency(decimal amount, string fromCurrency, string toCurrency, string fixerIoApiKey) + { + if (fromCurrency == toCurrency) + { + return amount; + } + + var fxRate = GetFxRate(fromCurrency, toCurrency, DateTime.Now, fixerIoApiKey); + return Math.Round(fxRate * amount, 2); + } + + public decimal GetFxRate(string fromCurrency, string toCurrency, DateTime date, string fixerIoApiKey) + { + if (fromCurrency == toCurrency) + { + return 1.0M; + } + + var key = GetKey(fromCurrency, toCurrency, date); + if (fxRateCache.ContainsKey(key) == false) + { + // Base Currency ist EUR + var euroToFrom = GetFx(GetUrl(fromCurrency, date, fixerIoApiKey), fromCurrency); + var euroToTo = GetFx(GetUrl(toCurrency, date, fixerIoApiKey), toCurrency); + + fxRateCache[key] = euroToTo / euroToFrom; + } + + return fxRateCache[key]; + } + + private string GetUrl(string currency, DateTime date, string fixerIoApiKey) + { + var url = $"http://data.fixer.io/api/{date:yyyy-MM-dd}?access_key={fixerIoApiKey}&symbols={currency}"; + return url; + } + + private decimal GetFx(string url, string currency) + { + var response = HttpGet(url); + dynamic stuff = JObject.Parse(response); + return stuff.rates[currency]; + } + + private string GetKey(string fromCurrency, string toCurrency, DateTime date) + { + return $"{fromCurrency}_{toCurrency}_{date:yyyyMMdd}"; + } + + private string HttpGet(string url) + { + var request = (HttpWebRequest)WebRequest.Create(url); + var response = request.GetResponseAsync().Result; + string myResponse = ""; + using (var sr = new System.IO.StreamReader(response.GetResponseStream())) + { + myResponse = sr.ReadToEnd(); + return myResponse; + } + } + } +} + +