• API Overview
  • EBICS API
  • FinTS API
  • XS2A API
  • SEPA API
Search Results for

    Class FinSepaOrderBuilder

    Abstract base class for single and multiple, postdated and direct SEPA credit transfer and/or SEPA direct debit orders.

    Inheritance
    System.Object
    FinOrderBuilder
    FinSepaOrderBuilder
    FinSepaCancelPostdatedOrderBuilder
    FinSepaInstPaymtBuilder
    FinSepaIntRemittBuilder
    FinSepaModifyPostdatedSingRemittBuilder
    FinSepaMultInstPaymtBuilder
    FinSepaMultRemittBuilder
    FinSepaMultUrgntPaymtBuilder
    FinSepaPostdatedMultInstPaymtBuilder
    FinSepaReclassBuilder
    FinSepaSingRemittBuilder
    FinSepaStoBuilder
    FinSepaSubmitPostdatedDirDebBuilder
    FinSepaSubmitPostdatedMultRemittBuilder
    FinSepaSubmitPostdatedSingRemittBuilder
    FinSepaUrgntPaymtBuilder
    Inherited Members
    FinOrderBuilder.Contact
    FinOrderBuilder.IsSupported
    FinOrderBuilder.SepaDomesticAcctAllowed
    FinOrderBuilder.SepaOrderCustAcct
    FinOrderBuilder.FinTSVersion
    FinOrderBuilder.OrderSegmentType
    FinOrderBuilder.ParamSegmentType
    FinOrderBuilder.SegmentVersion
    FinOrderBuilder.ParameterDEG
    FinOrderBuilder.ParameterCount
    FinOrderBuilder.BuildOrderSegment(FinAcct)
    FinOrderBuilder.BuildOrderSegment()
    FinOrderBuilder.GetStringParameter(Int32)
    FinOrderBuilder.GetIntegerParameter(Int32)
    FinOrderBuilder.GetBoolParameter(Int32)
    FinOrderBuilder.GetAmountParameter(Int32)
    FinOrderBuilder.OrderSegmentInfo
    FinOrderBuilder.BankParamSegment
    FinOrderBuilder.MaxOrders
    FinOrderBuilder.MinSignatures
    FinOrderBuilder.SecurityLevel
    FinOrderBuilder.TanSecuritySupported
    FinOrderBuilder.TanRequired
    FinOrderBuilder.Init(FinOrderSegmentInfo[])
    FinOrderBuilder.Init(FinOrderSegmentInfo, FinSegment)
    FinOrderBuilder.FindParameterSegment(FinOrderSegmentInfo)
    FinOrderBuilder.AugmentSubAcctCharacteristic(FinAcct)
    System.Object.Equals(System.Object)
    System.Object.Equals(System.Object, System.Object)
    System.Object.GetHashCode()
    System.Object.GetType()
    System.Object.MemberwiseClone()
    System.Object.ReferenceEquals(System.Object, System.Object)
    System.Object.ToString()
    Namespace: Subsembly.FinTS
    Assembly: Subsembly.FinTS.Core.dll
    Syntax
    public abstract class FinSepaOrderBuilder : FinOrderBuilder

    Constructors

    FinSepaOrderBuilder(FinContact, SepaMessageType, Boolean)

    Creates a new SEPA order builder with the preferred account type class FinAcctTypeClass.Giro.

    Declaration
    protected FinSepaOrderBuilder(FinContact aContact, SepaMessageType nMessageType, bool fIsMultOrderBuilder = false)
    Parameters
    Type Name Description
    FinContact aContact

    The contact for which the order builder shall create orders. This is used to get the FinTS version, the bank parameter data and the user parameter data that are in effect. This parameter must not be null.

    SepaMessageType nMessageType

    The type of the SEPA message which can be embedded within this FinTS order. Messages of this type are expected in the SEPA documents which are processed by Build. Currently SepaMessageType.CreditTransferPaymentInitiation and SepaMessageType.DirectDebitPaymentInitiation are supported.

    System.Boolean fIsMultOrderBuilder

    Must be true for multiple SEPA order builders.

    Exceptions
    Type Condition
    System.ArgumentNullException

    Parameter aContact was null.

    System.ArgumentException

    The parameter nMessageType is neither SepaMessageType.CreditTransferPaymentInitiation nor SepaMessageType.DirectDebitPaymentInitiation.

    Properties

    IsMultipleOrderBuilder

    Is true if this is a builder for a multiple SEPA order.

    Declaration
    protected bool IsMultipleOrderBuilder { get; }
    Property Value
    Type Description
    System.Boolean

    MaxNumberOfTransactions

    Maximum number of allowed transaction information items in the SEPA order.

    Declaration
    public virtual int MaxNumberOfTransactions { get; }
    Property Value
    Type Description
    System.Int32
    Remarks

    The default implementation always returns 1. Hence, builders for batch order types must override this property accordingly.

    MessageType

    Messages of this type can be embedded into the generated order segment.

    Declaration
    public SepaMessageType MessageType { get; }
    Property Value
    Type Description
    SepaMessageType

    SingleBookgAllowed

    Is single booking of batches allowed?

    Declaration
    public virtual bool SingleBookgAllowed { get; }
    Property Value
    Type Description
    System.Boolean
    Remarks

    The default implementation always returns false. Hence, builders for batch order types must override this property accordingly.

    SupportedPainFormats

    Returns an array of simple pain identifiers of the supported SEPA pain XML formats.

    Declaration
    public virtual string[] SupportedPainFormats { get; }
    Property Value
    Type Description
    System.String[]

    The returned array may be empty, but is never null.

    SupportedPurposeCodes

    Optional array of SEPA PurposeCodes supported by this order builder.

    Declaration
    public virtual string[] SupportedPurposeCodes { get; }
    Property Value
    Type Description
    System.String[]

    The returned array may be empty, but is never null.

    Remarks

    The default implementation in this FinSepaOrderBuilder base class always returns an empty array. Only a few derived specialized builder classes override this property and provide a list of purpose codes from the actual BPD segment.

    SupportedSepaFormats

    Returns an array with the descriptors (URN) of the SEPA XML formats supported by this builder.

    Declaration
    public virtual string[] SupportedSepaFormats { get; }
    Property Value
    Type Description
    System.String[]
    Remarks

    The data provided by actual banks is widely different and inconclusive. Thus this information is rather worthless and should be ignored. Use the processed SupportedPainFormats instead.

    TotalAmountRequired

    Must the total amount be specified in a batch order.

    Declaration
    public virtual bool TotalAmountRequired { get; }
    Property Value
    Type Description
    System.Boolean
    Remarks

    The default implementation always returns false. Hence, builders for batch order types must override this property accordingly.

    Methods

    Build(FinAcct, SepaDocument)

    Build a SEPA order from a SepaDocument.

    Declaration
    public FinOrder Build(FinAcct aAcct, SepaDocument aSepaDoc)
    Parameters
    Type Name Description
    FinAcct aAcct

    The ordering customer account of the order to be built. The given instance must be initialized with a valid IBAN and BIC.

    SepaDocument aSepaDoc

    A completely initialized SEPA payment initiation message document. This must have only a single payment information block. The number of transaction information blocks depends on the order type (single order type or multiple order type).

    Returns
    Type Description
    FinOrder
    Remarks

    This method should be used if an external SEPA document was loaded and shall be submitted to the bank. In order to create a SEPA payment in code, it is better and easier to create a SepaPaymentInitiation message and use the method Build(FinAcct, SepaPaymentInitiation) instead.

    Exceptions
    Type Condition
    System.ArgumentNullException

    At least one of the parameters was null.

    System.ArgumentException

    The given account did not contain a valid IBAN, or did not contain a valid BIC. Or the given SEPA document was not valid. Or the BIC and IBAN of the given account does not match the BIC and IBAN of the initiator in the SEPA document.

    See Also
    Build(FinAcct, SepaPaymentInitiation)

    Build(FinAcct, SepaPaymentInitiation)

    Build a SEPA order from a SepaPaymentInitiation that contains payments.

    Declaration
    public FinOrder Build(FinAcct aAcct, SepaPaymentInitiation aPainMsg)
    Parameters
    Type Name Description
    FinAcct aAcct

    The ordering customer account of the order to be built. The given instance must be initialized with a valid IBAN and BIC.

    SepaPaymentInitiation aPainMsg

    A completely initialized SEPA payment initiation message. This must have only a single payment information block. The number of transaction information blocks depends on the order type (single order type or multiple order type).

    Returns
    Type Description
    FinOrder
    Remarks

    This method automatically finds the highest PAIN version supported by the bank and creates a corresponding SepaDocument.

    Exceptions
    Type Condition
    System.ArgumentNullException

    At least one of the parameters was null.

    System.ArgumentException

    The given account did not contain a valid IBAN, or did not contain a valid BIC. Or the given SEPA document was not valid. Or the BIC and IBAN of the given account does not match the BIC and IBAN of the initiator in the SEPA document.

    System.NotSupportedException

    No supported PAIN format could be found. Please check with SupportedPainFormats whether a PAIN format is supported by the bank.

    See Also
    Build(FinAcct, SepaDocument)

    BuildSepaOrder(FinSegment, FinSepaRemitt)

    Declaration
    protected FinOrder BuildSepaOrder(FinSegment aSegment, FinSepaRemitt aSepaRemitt)
    Parameters
    Type Name Description
    FinSegment aSegment
    FinSepaRemitt aSepaRemitt
    Returns
    Type Description
    FinOrder

    BuildSepaSegment(FinSepaRemitt)

    Declaration
    protected virtual FinSegment BuildSepaSegment(FinSepaRemitt aSepaRemitt)
    Parameters
    Type Name Description
    FinSepaRemitt aSepaRemitt
    Returns
    Type Description
    FinSegment
    Exceptions
    Type Condition
    System.ArgumentException

    The PAIN format of the given SEPA remittance document is not supported by the bank.

    Create(FinContact, String)

    Creates a new FinSepaOrderBuilder derived instance that is suitable for submitting orders with the given HBCI segment type.

    Declaration
    public static FinSepaOrderBuilder Create(FinContact aContact, string sSegmentType)
    Parameters
    Type Name Description
    FinContact aContact

    The contact for which to submit an order.

    System.String sSegmentType

    The segment type of the requested order.

    Returns
    Type Description
    FinSepaOrderBuilder

    If a suitable builder for the given segment type is available, then it is created and returned. If the segment type is not supported, then null is returned.

    FindSepaFormat(String)

    Finds the SEPA format descriptor for a given SEPA Pain identifier or a SEPA message XML namespace that contains a Pain identifier.

    Declaration
    public string FindSepaFormat(string sSepaFormat)
    Parameters
    Type Name Description
    System.String sSepaFormat

    A SEPA Pain identifier in the format pain.000.000.00, or a SEPA message XML namespace that contains a Pain identifier, or any other string that contains a Pain identifier.

    Returns
    Type Description
    System.String

    If found, then the first matching SEPA format descriptor from the parameter segment is returned. If no match was found, then null is returned.

    Exceptions
    Type Condition
    System.ArgumentNullException

    The parameter sSepaFormat was null.

    System.ArgumentException

    The parameter sSepaFormat was an empty string, or it did not contain a valid Pain identifier.

    GetSupportedPurposeCodes(Int32)

    Gets a sanitized list of purpose codes from the indicated bank parameter element.

    Declaration
    protected string[] GetSupportedPurposeCodes(int nDE)
    Parameters
    Type Name Description
    System.Int32 nDE
    Returns
    Type Description
    System.String[]

    OnPreparePaymentInformation(FinAcct, SepaPaymentInformation)

    Can be reimplemented by derived classes to do further checks/preparations on the given payment information item.

    Declaration
    protected virtual void OnPreparePaymentInformation(FinAcct aAcct, SepaPaymentInformation aPmtInf)
    Parameters
    Type Name Description
    FinAcct aAcct
    SepaPaymentInformation aPmtInf
    In This Article
    Back to top Copyright 2009-2025 Subsembly GmbH