/// <summary>
        ///     Add an existing Debit transfer transaction
        /// </summary>
        /// <param name="transfer"></param>
        /// <exception cref="ArgumentNullException">If transfert is null.</exception>
        public void AddDebitTransfer(SepaDebitTransferTransaction transfer)
        {
            if (transfer == null)
            {
                throw new ArgumentNullException("transfer");
            }

            transfer = (SepaDebitTransferTransaction)transfer.Clone();
            if (transfer.EndToEndId == null)
            {
                transfer.EndToEndId = (PaymentInfoId ?? MessageIdentification) + "/" + (numberOfTransactions + 1);
            }
            CheckTransactionIdUnicity(transfer.Id, transfer.EndToEndId);
            transactions.Add(transfer);
            numberOfTransactions++;
            headerControlSum  += transfer.Amount;
            paymentControlSum += transfer.Amount;
        }