Class SepaDirectDebitTransactionInformation
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
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
CounterPartyAccount
Returns DebtorAccount
public override SepaAccount CounterPartyAccount { get; }
Property Value
CounterPartyAgent
Returns DebtorAgent
public override SepaAgent CounterPartyAgent { get; }
Property Value
CreditorSchemeIdentification
Identifier of the creditor (CI).
public string CreditorSchemeIdentification { get; set; }
Property Value
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
- 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
DebtorAccountIBAN
Shortcut to the IBAN of the debtor account of this transaction.
public SepaIBAN DebtorAccountIBAN { get; set; }
Property Value
- See Also
DebtorAgent
public SepaAgent DebtorAgent { get; }
Property Value
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
Shortcut to DebtorAgent.FinancialInstitutionIdentification.
public SepaFinancialInstitutionIdentification DebtorAgentFinancialInstitutionIdentification { get; }
Property Value
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
IsSepaCompliant
public override bool IsSepaCompliant { get; }
Property Value
MandateDateOfSignature
Mandatory date of signing of the mandate.
public DateTime MandateDateOfSignature { get; set; }
Property Value
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
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
OriginalCreditorName
Optional original creditor name.
public string OriginalCreditorName { get; set; }
Property Value
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
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
- See Also
OriginalDebtorAccountIBAN
Optional IBAN of the original debtor account of this transaction.
public SepaIBAN OriginalDebtorAccountIBAN { get; set; }
Property Value
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
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
XmlReaderaMessageInfo
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
XmlWriteraMessageInfo
SepaMessageInfo