Skip to Content
Technical Articles
Author's profile photo Bohdan Petrushchak

Handling of bank charges in bank statement

Hello SAPers!

With each new post on bank statement related topics, I think that it will probably be the last one… But then I stumble upon interesting business case, which is worth of exploration and as always find a lot of technical details to share with community. Here is another post, I hope you’ll find something interesting for you!

1. Introduction

Accounting for bank charges which are automatically deducted from incoming payment represents an interesting case which poses certain technical challenges. Let’s consider how this case can be implemented in SAP.

Case description:

  • Company issues an invoice of 4000.00 UAH;
  • Customer fully pays this invoice;
  • Bank automatically deducts a bank fee of 10.00 UAH from this incoming payment, but the fee itself is not reported as a separate line in bank statement, whereas payment amount is displayed as net amount – 3990.00 UAH.


  • How to extract information on bank fees from note to payee and post it?
  • How to clear customer invoice with net amount of payment coming from bank statement?

Expected result is to receive the following postings in SAP:

As you can see, we’ll record information in bank accounting area as a net payment, whereas customer will be credited with whole amount of payment. Additional line with bank charges will be generated automatically to balance accounting posting.

2. Overview of prerequisites

Automation of this business case implies that information about bank charges is provided in a structured format as part of note to payee information. Example of a simplified MT940 bank statement can be found below:

Posting rule for bank statement is configured with two posting areas and clearing of open items in AR-subledger.

Automatic account determination for bank charges should be maintained in t-code OBXK or via the following menu path:

SPRO → Financial Accounting (New) → Accounts Receivable and Accounts Payable → Business Transactions → Incoming Payments → Incoming Payments Global Settings → Define Accounts for Bank Charges (Customers).

Note: automatic account assignment of cost center should be maintained as well e.g. in OKB9.

3. End user scenario

From end-user perspective nothing really changes in post processing of bank statement. However, if everything is setup correctly, you’ll see the amount of bank charges transferred to a field “AC fees”:

From database perspective this value is saved into FEBEP-SPESK field:

When the user presses post, the system generates two accounting documents and clears customer open item.

Accounting document in bank posting area:

Accounting document in subleger posting area:

4. Big questions

The biggest question however is: how do we save bank charges amount into FEBEP-SPESK? There are a few options:

  • Maintain search string with appropriate update scenario – this is the most easy way that doesn’t require any development efforts (see post for more details);
  • Extract bank amount charges in user exit during pre-processing of bank statement in user exit EXIT_RFEBBU10_001 or in BADI FIEB_CHANGE_BS_DATA (see post for more details);
  • If you use XML-based bank statement, you can map the amount of bank charges to FEBEP-SPESK in XSLT-transformation (see post for more details);
  • If you use other bank specific statement format e.g. CSV-format, you can do the same in BADI FIEB_GET_BANK_STMTS_X (see post for more details).

As you can see, there are many technical options. It’s up to you to decide, but I hope that this post will help you to make more educated decision if you’ll ever need to implement scenario like this.

Your suggestions and comments are welcome!


Bohdan Petrushchak

Assigned Tags

      You must be Logged on to comment or reply to a post.
      Author's profile photo S M
      S M

      Superb Information

      Author's profile photo Ukraine Local
      Ukraine Local

      Useful article.

      Thank you!

      Author's profile photo Ravi Teja
      Ravi Teja

      Thanks for the Article.

      Do we have to manually clear the GL "113101 Bank in: Subaccount" here.?

      Author's profile photo Bohdan Petrushchak
      Bohdan Petrushchak
      Blog Post Author

      Hi Ravi,

      You can for sure clear bank sub-accounts manually, but there is a better option which is a kind of best practice for this case. Notice how "Assignment" field is filled for bank sub-accounts. As you can see, bank statement program filled into "Assignment" for both documents the same value, which is a concatenation of: bank statement key + bank statement line item ID + currency (FEBEP-KUKEY + FEBEP-ESNUM + FEBKO-WAERS). Besides, we have the same amount in document currency in both documents. Therefore, if you have automatic clearing rules in t-code OB74, you can setup automatic background job for transaction F.13, which will clear these open items automatically.


      I hope it answers your question!


      Author's profile photo Tamas Laszlo Toth
      Tamas Laszlo Toth

      Hi Bohdan,

      Thanks for this and the 3rd part for search strings as well, they were all useful.

      Regarding the bank charges, is it possible to allocate bank charges also on the 1st posting area? As when we send out money with DME reference identification, we receive back information from bank with DME reference number, but they also included a commission (bank charge), which they included into the note-to-payee field. Still, it seems, that it's not added to the AC Fee (SPESK) field based on the search string, and we still have to manually allocate this charge.

      For this postings, we don't have posting area 2 at all.

      Best regards,


      Author's profile photo Bohdan Petrushchak
      Bohdan Petrushchak
      Blog Post Author

      Hi Tamas Laszlo Toth,

      Thanks for appreciation and a good question. Actually, I didn't test how it works with one posting area, but I assume it should be possible to process it as well. You can try to do as follow: load bank statement in test system and put break-point in exit EXIT_RFEBBU10_001, adjust in debug mode the value of FEBEP-SPESK with fees amount. Post the document and check the results.

      Eventually, it should not matter how many posting areas we have. All that matters is whether or not FEBEP-SPESK was filled during upload.

      Please share with us the results of your test.




      Author's profile photo SONAM SONI

      Hi Bohdan,


      Many thanks for this informative post, very well documented and clearly explained.


      Could you please help me understand, if this in anyway is related to the "Bank Fee Management" functionality introduced by SAP with S/4 HANA. With Bank Fee Management, we receive a Bank Service Billing file in SAP with information on charges and fees which has been deducted by Banks.


      I am trying to find out how the fees coming through the Bank Service Billing file can be reconciled with the transactions in SAP against which those fees are charged by Banks.


      Looking forward to some help.



      Author's profile photo Bohdan Petrushchak
      Bohdan Petrushchak
      Blog Post Author

      Hi SONAM SONI,

      No, this post is not related to "Bank Fee Management", but this approach can be applied in S4 HANA as well. The problem with this newer functionality i.e. Bank Fee Management is that not all banks can provide additional file type for bank service billing, some can provide only bank statement. Therefore you have to work with whatever is available:-).



      Author's profile photo SONAM SONI

      Hi Bohdan,

      I agree with your response.

      I believe the "Bank Fee Management" is a complimentary process to Bank Fees via Bank Statements.

      As per my understanding we have to follow the below steps in order to integrate both the processes:

      1. We have to record the Bank Fees through Bank Statements like you have explained
      2. With required configurations and mapping we can pull the fees/charges into the Bank Fee Monitor

      By doing this we can post, reconcile and monitor the fees/charges.

      Sadly I am not getting enough information to get a clarity on this topic, please let me know if I can get some help or guidance.




      Author's profile photo Bohdan Petrushchak
      Bohdan Petrushchak
      Blog Post Author

      Hi SONAM SONI,

      Unfortunately I'm not an expert on “Bank Fee Management” (not yet at least) and cannot help. But I'd say, if you have this functionality activated and your bank can provide the file with fees information, you need to use this functionality and forget about search strings.



      Author's profile photo Krishn Soni  
      Krishn Soni  

      Hi Professionals,

      Do we have option in S4 to calculate the bank fees and then compare the same with the actual fees charged by the bank in statement and report the discrepancies if any.



      Author's profile photo Praveen Kumar
      Praveen Kumar

      Hi Bohdan,

      Thank you for the great document.

      In our case bank is sending OCMT amount along with bank charges which is sum of bank charges and net amount. SAP is populating OCMT amount in  FEBEP-FWBTR. For posting area "1" SAP is using FEBEP-KWBTR and for posting area "2" using FEBEP-FWBTR (OCMT amount with charges). Hence bank sub-account debit and credit entry have difference equal to bank charges. For example: Net amount = $100, bank charges = $20 and OCMT amount= $120. Hence FEBEP-KWBTR = $100, FEBEP-SPESK = $20 and FEBEP-FWBTR = $120.

      So bank sub-account from posting area 1 has $100 Cr. where as bank sub-account from posting area 2 has $120 Db. Any suggestion why SAP is using different fields for 2 different posting areas for the amount ?




      Author's profile photo Tim Bown
      Tim Bown

      I have exactly the same issue using a CAMT file.  it is putting InstdAmt from the statement into FEBEP_FWBTR via the XMLT logic.    Then the posting logic is using this on the area 2 posting for the bank clearing account.    Using your example,  the area 2 posting is 120 bank clearing,  20 fees  140 customer !!   It should be 100 bank clearing, 20 fees,  120 customer.   ( I am a using search string to populate FEBEP-SPESK)


      What am I doing wrong ?

      Author's profile photo Sreenivas Mandapati
      Sreenivas Mandapati

      Hi Bohdan,

      thanks for the article. It's been a revelation on the bank statements on the 3 articles that you have written.

      i have one question is that when we post with Posting Area 1, can we use this field FEBEP-SPESK to post the bank fees in the statement?

      we want to post the 250 SEK in PA1 when we post to the subledger