using System.Text.Json; using System.Text.Json.Serialization; namespace Csob.Models; public sealed class PaymentIdentification { /// Unique instruction id assigned by the TPP (idempotency key). Max 35 chars. public string? InstructionIdentification { get; set; } public string? EndToEndIdentification { get; set; } } /// /// Payment initiation request (POST /my/payments). Covers domestic (DMCT) and SEPA (ESCT) /// payments — SEPA-only fields (creditor address, agent, ultimate parties, purpose) are optional. /// Any additional COBS field not modelled here is preserved via . /// public sealed class PaymentInitiationRequest { public PaymentIdentification? PaymentIdentification { get; set; } public PaymentTypeInformation? PaymentTypeInformation { get; set; } public AmountContainer Amount { get; set; } = new(); public string? RequestedExecutionDate { get; set; } public Party? UltimateDebtor { get; set; } public AccountReference DebtorAccount { get; set; } = new(); public Agent? CreditorAgent { get; set; } public Party? Creditor { get; set; } public AccountReference CreditorAccount { get; set; } = new(); public Party? UltimateCreditor { get; set; } public RemittanceInformation? RemittanceInformation { get; set; } public Purpose? Purpose { get; set; } /// Any COBS fields not explicitly modelled are forwarded to ČSOB unchanged. [JsonExtensionData] public Dictionary? AdditionalData { get; set; } }