DESCRIPTION
The sepa(1) program creates pain xml files for uploading to an online banking portal for batch booking. The transactions which are to put into the pain files are read from a so called CONTROL_FILE.
CONTROL_FILE
The control file format is derived from the dtaus(1) program. It is parted into one main configuration section additionally named with BEGIN and one section for each transaction. All section are put into braces.
The most simple CONTROL_FILE consist of two sections as shown in the following sample
BEGIN {
Art TRANSACTION_TYPE
Referenz CREDITOR_REFERECE_NUMBER
Name INITIATOR
IBAN INIT_ACCOUNT_IBAN
BIC INIT_ACCOUNT_BIC
Ausfuehrung TRANSACT_DATE
BatchBooking
}
{
Transaktion TRANSACT_SUBTYPE
.
.
.
Name CRED_DEB_NAME
IBAN CRED_DEB_IBAN
BIC CRED_DEB_BIC
Betrag AMOUNT
Zweck PURPOSE_TEXT
Text PURPOSE_TEXT_CONT
}
sepa supports two pain formats which are selected by TRANSACTION_TYPE in the main configuration section.
Transfer: pain.001.002.03
This is the transfer transaction. This transaction is selected by setting TRF for TRANSACTION_TYPE.
INITIATOR, INIT_ACCOUNT_IBAN and INIT_ACCOUNT_BIC must be set to the initiator account data. For this tranaction this is the debitor account.
TRANSACT_DATE might be set to an execution date which must be a future or the actual date. If this line is omitted the actual date is taken for the transaction.
The BatchBooking line might be omitted. If set the so called BtchBookg mode is set so that all transaction are booked as one transaction in the bank statement. If the line is omitted each transaction of the list has it's own entry in the bank statement.
For each transfer a transaction block is following. Here only the entries for a transfer transaction are taken into account, the entries for debit transactions are ignored here (but might be set).
This is the structure of a transfer transaction:
{
Transaktion TRANSACT_SUBTYPE
Name CREDITOR_NAME
IBAN CREDITOR_IBAN
BIC CREDITOR_BIC
Betrag AMOUNT
Zweck PURPOSE_TEXT
Text PURPOSE_TEXT_CONT
}
TRANSACT_SUBTYPE must be set to Gutschrift (credit) or Lohn (salary) for all entries of this transaction type.
CREDITOR_NAME, CREDITOR_IBAN and CREDITOR_BIC are to set to the account data of the creditor.
AMOUNT is the money amount in EUROs
PURPOSE_TEXT and PURPOSE_TEXT_CONT are concatenated to one purpose string. The maximumn length of the purpose text is 140 characters. It is mentioned here that no special character like german umlauts are allowed in neither the purpose string nor the creditor or the debitor names. The Text line might be repeated in the transaction entry.
debit: pain.008.002.02
The transaction type for debit transaction is selected by the entry DDCORE for TRANSACTION_TYPE.
For debit transactions CREDITOR_REFERECE_NUMBER is mandatory and must be set to the initators reference number.
Because all debit transactions are to anounce the TRANSACT_DATE must set to a date in the future.
The transaction data consist of the following entries:
{
Transaktion TRANSACT_SUBTYPE
Mandat MANDATE_ID
SigDatum MAND_SIG_DATE
Name DEBITOR_NAME
IBAN DEBITOR_IBAN
BIC DEBITOR_BIC
Betrag AMOUNT
Zweck PURPOSE_TEXT
Text PURPOSE_TEXT_CONT
}
The debit transaction has four different sub types (TRANSACT_SUBTYPE). Einzug-Erster (FRST) indicates a first time transaction with the mandate which is handled as repeatable mandate. This entry might be used but it isn’t necessary. If it’s a repeatable mandate one can set Einzug-Wiederholung (RCUR) even if it's the first debit. sepa knows about all mandates so it can decide which is the right sub type here. If a mandate should terminate one can set Einzug-Letzter (FNAL) for the transaction. If it's a one time debit you have to use Einzug-Einmalig (OOFF) for sub type.
All transaction have two additional entries MANDATE_ID and MAND_SIG_DATE. If a mandate is used for the first time these entries are to fill with the mandate data the unique MANDATE_ID and the date of mandate’s signature. Once these data are set and linked with DEBITOR_IBAN and DEBITOR_BIC to the unique MANDATE_ID only the MANDATE_ID and DEBITOR_NAME are necessary to set for a debit transaction.
In the case that debitors bank account data has changed you can proceed using the mandate with different bank data entries (DEBITOR_IBAN and DEBITOR_BIC). In this case you have to put these two entries into the transaction record for this one time.
For the remaining entries see TRANSFER: PAIN.001.002.03.
character encoding
sepa assumes that the input files are coded in UTF-8 format.
SEE ALSO
sepa(1), dtaus(1), dtaus(5)