Class SepaDirectDebitTransactionInformation

Namespace
Subsembly.Sepa
Assembly
Subsembly.Sepa.dll

Spezialized Transaction Information for direct debits.

public sealed class SepaDirectDebitTransactionInformation : SepaTransactionInformation
Inheritance
SepaDirectDebitTransactionInformation
Inherited Members

Constructors

SepaDirectDebitTransactionInformation()

Creates a new SepaCreditTransferTransactionInformation object which can be added to the transaction object collection of a SepaDirectDebitPaymentInformation object.

public SepaDirectDebitTransactionInformation()

Fields

SMNDA

In case of a SEPA mandate amendment, if the original debtor account is not known, then this special IBAN can be used to indicate a changed account.

public static readonly SepaIBAN SMNDA

Field Value

SepaIBAN

Remarks

This is only supported starting with SEPA Direct Debit Rulebook Version 9.0. It may not be used before November, 20th 2016.

Properties

CounterParty

Returns Debtor.

public override SepaPartyIdentification CounterParty { get; }

Property Value

SepaPartyIdentification

CounterPartyAccount

Returns DebtorAccount

public override SepaAccount CounterPartyAccount { get; }

Property Value

SepaAccount

CounterPartyAgent

Returns DebtorAgent

public override SepaAgent CounterPartyAgent { get; }

Property Value

SepaAgent

CreditorSchemeIdentification

Identifier of the creditor (CI).

public string CreditorSchemeIdentification { get; set; }

Property Value

string

Remarks

In version 01 of pain.008 the creditor identifier only existed at the transaction level. In version 02 the creditor identifier exists optionally at the payment information level or the transaction level. However, there was always the usage rule that recommended that all transactions within the same Payment Information block have the same Creditor Scheme Identification.

The CI may be set either at the payment information level, or the transaction level. It must be set at either level, but never be set at both levels. If it is set at the transaction level, then it must be set in all SepaDirectDebitTransactionInformation objects.

For version 01 the CI is always written at the transaction level, even if it was set at the payment information level.

Exceptions

ArgumentNullException

An attempt was made to set a null value.

ArgumentException

An empty or otherwise invalid value was set.

CreditorSchemeIdentificationObject

public SepaCreditorSchemeIdentification CreditorSchemeIdentificationObject { get; }

Property Value

SepaCreditorSchemeIdentification
See Also

Debtor

The debtor of this transaction.

public SepaPartyIdentification Debtor { get; }

Property Value

SepaPartyIdentification

The Debtor is a required element, therefore at least the Name property of this SepaPartyIdentification must be set before the XML document can be generated.

DebtorAccount

Mandatory debtor account of this transaction.

public SepaAccount DebtorAccount { get; }

Property Value

SepaAccount

DebtorAccountIBAN

Shortcut to the IBAN of the debtor account of this transaction.

public SepaIBAN DebtorAccountIBAN { get; set; }

Property Value

SepaIBAN
See Also

DebtorAgent

public SepaAgent DebtorAgent { get; }

Property Value

SepaAgent

DebtorAgentBIC

BIC of the debtor agent (financial institution) of this transaction.

public SepaBIC DebtorAgentBIC { get; set; }

Property Value

SepaBIC

This is initially a null BIC value and should be initialized before a XML document is generated for this transaction.

Remarks

This field is mandatory prior to ZKA_Pain_001_003_03. In order to create an always valid SEPA output, it is highly recommended to always set this field with a valid BIC.

DebtorAgentFinancialInstitutionIdentification

public SepaFinancialInstitutionIdentification DebtorAgentFinancialInstitutionIdentification { get; }

Property Value

SepaFinancialInstitutionIdentification

InstructionForCreditorAgent

Optional instrcution for creditor agent.

public string InstructionForCreditorAgent { get; set; }

Property Value

string

Initially null, may be arbitrary text with up tp 140 characters.

Remarks

Further information, related to the processing of the payment instruction, that may need to be acted upon by the creditor agent, depending on agreement between creditor and the creditor agent.

Exceptions

ArgumentException

An attempt was made to set a string longer than 140 characters.

IsEmpty

public override bool IsEmpty { get; }

Property Value

bool

IsSepaCompliant

public override bool IsSepaCompliant { get; }

Property Value

bool

MandateDateOfSignature

Mandatory date of signing of the mandate.

public DateTime MandateDateOfSignature { get; set; }

Property Value

DateTime

Exceptions

ArgumentException

An attempt was made to set this property to DateTime.MinValue. The value DateTime.MinValue is often used to indicate a logical Null-DateTime and therefore is not permitted here.

MandateElectronicSignature

Optional electronic signature of mandate.

public string MandateElectronicSignature { get; set; }

Property Value

string

Remarks

This may only be used if agreed with the bank or if defined for a particular country.

MandateIdentification

Mandatory unique mandate reference.

public string MandateIdentification { get; set; }

Property Value

string

OriginalCreditorName

Optional original creditor name.

public string OriginalCreditorName { get; set; }

Property Value

string

Remarks

If this is not null or an empty string, then an Amendment Information Details element is present.

Exceptions

ArgumentException

An attempt was made to set a string longer than 70 characters.

OriginalCreditorSchemeIdentification

Optional original creditor scheme ID.

public string OriginalCreditorSchemeIdentification { get; set; }

Property Value

string

Remarks

If this is not null or an empty string, then an Amendment Information Details element is present.

Exceptions

ArgumentNullException

An attempt was made to set a null value.

ArgumentException

An empty or otherwise invalid value was set.

OriginalDebtorAccount

Optional original debtor account of this transaction.

public SepaAccount OriginalDebtorAccount { get; }

Property Value

SepaAccount
See Also

OriginalDebtorAccountIBAN

Optional IBAN of the original debtor account of this transaction.

public SepaIBAN OriginalDebtorAccountIBAN { get; set; }

Property Value

SepaIBAN

Remarks

If this is not null or an empty string, then an Amendment Information Details element is present. Starting with SEPA Direct Debit Rulebook Version 9.0 the special value SMNDA may be used, if the account has changed, but the original IBAN is not known.

See Also

OriginalMandateIdentification

Optional original mandate reference.

public string OriginalMandateIdentification { get; set; }

Property Value

string

Remarks

If this is not null or an empty string, then an Amendment Information Details element is present.

UltimateCreditor

Optional name of the ultimate creditor. Rarely needed.

public SepaPartyIdentification UltimateCreditor { get; }

Property Value

SepaPartyIdentification

Only the Name property of this SepaPartyIdentification may be used.

Remarks

The ultimate creditor may be set here, or at the collection level UltimateCreditor property. It must not be set at both levels.

UltimateDebtor

Optional name of the ultimate debtor. Rarely needed.

public SepaPartyIdentification UltimateDebtor { get; }

Property Value

SepaPartyIdentification

Only the Name property of this SepaPartyIdentification may be used.

Remarks

Required if explicitly provided in the debtor mandate.

Methods

Clear()

public override void Clear()

OnReadXml(XmlReader, SepaMessageInfo)

protected override void OnReadXml(XmlReader aXmlReader, SepaMessageInfo aMessageInfo)

Parameters

aXmlReader XmlReader
aMessageInfo SepaMessageInfo

OnValidate(ICollection<SepaException>, string)

protected override void OnValidate(ICollection<SepaException> vErrors, string sPath)

Parameters

vErrors ICollection<SepaException>
sPath string

OnWriteXml(XmlWriter, SepaMessageInfo)

protected override void OnWriteXml(XmlWriter aXmlWriter, SepaMessageInfo aMessageInfo)

Parameters

aXmlWriter XmlWriter
aMessageInfo SepaMessageInfo