All you need to know about Electronic Bank Statement – CAMT 054 format
Most of the articles on EBS talk about step by step configuration guide. They talk about concepts & end to end process very rarely. I hope we all agree that step by step configuration guide is quite easy to follow, but the main challenge is to understand the concept. If we understand the concept, it becomes easier for us to implement the process in live systems. In this blog, I have tried to explain how the EBS process works in SAP. At least I found it hard to implement when I started working on EBS in my project. I wish my blog makes EBS process easy to my SAP colleagues across the globe.
This is a techno-functional blog, prepared to help both technical and functional consultants.
What is EBS?
Electronic Bank Statement is provided to the account holders in standard formats, e.g. CAMT, MT940, BAI2 etc. As a part of Payment Transaction processing, EBS can be imported and posted in SAP for reconciliation.
What is CAMT 054 format?
The camt.054 format provides you with the required information on all transactions entered on your account. This includes the information on SEPA transactions in standard Euro payments. The reports in camt.054 allow you to carry out the processing of individual transactions entered on your account as a total figure. The camt.054 is an alternative to MT900 Confirmation Debit, and MT910 Confirmation Credit.
Understanding the file format and how to map it with SAP tables:
Almost every bank that supports CAMT 054 provides a file specification explaining the file structure and the information it can hold. You can find a sample in the below link.
CAMT 054 is an XML file with complex structure, so it is almost impossible to understand the file content just going through the file.
Worried!!!??? Don’t be.
SAP has already provided a transformation for this file format. So, SAP program can automatically transform the file content and load it in SAP tables. But yes, for that we need to complete basic EBS settings. If you want to review how the file will look like after transformation, follow the below steps.
Execute the following node in SPRO and check if the transformation exists for CAMT 054. It should be there.
- Go to transaction STRANS and enter the transformation FIEB_CAMT054_V2_TO_FEB
- Enter the following details and Click on view HTML.
The HTML output will show how the data is transformed and mapped to SAP back end tables.
There are mainly 4 tables that holds EBS information – FEBKO, FEBEP, FEBRE & FEBCL
How EBS is processed in SAP?
1. Run the transaction FF_5. Output Control parameters are important. Do remember to check all of them.
2. After importing the bank data from the XML, the program first transforms the bank data into SAP format (XSLT transformation)
3. Based on the Bank account in the file, program finds out the transaction types, in our case it is 19CMT054
4. Program then interprets the bank data based on External Transaction types in the bank statement and interpretation algorithm set up in the configuration.
External Transaction Types:
External transaction types are used in bank statement to notify what kind of transaction it is. It is a common identifier between the bank and the target system. In SAP, we will have to configure all possible external transaction types for the bank statement format, in our case it is CAMT 054. Some example transaction types are <54>353 used for withdrawal, <54>664 used for deposits.
Interpretation algorithm defines how the note to payee information from the bank statement will be interpreted. Refer to the below link for more details.
You can use standard interpretation algorithm or create your own. Refer to the SAP note: 2032814 for the instruction on how to create Z interpretation algorithm.
5. Based on the Posting rules (Z022 & Z023) defined for each bank transaction type the bank items are matched with the company data.
Posting rules will decide what to do with the incoming EBS transaction. Posting rules are assigned with the External transaction types. Choose + or – depending on whether the transaction increases (+) (deposit) or decreases (-) (withdrawal) the bank account balance.
6. There are 2 posting areas that we can post to while EBS processing in SAP.
- Posting Area 1 – Posting in Bank Accounting
- Posting Area 2 – Posting in Subledger Accounting
In our example, we have used only posting area 1. That means only 1 accounting posting will happen in Bank Accounting for each external transaction type. Refer to accounting entry 3 & 6 below. Please note that SWISHMAIN & SWISHCLEARING are just account symbols. The GLs have already been assigned with the account symbols.
If we choose Posting Area 2, another account posting will happen, that will clear the sub ledger directly. Refer to entry 2 & 5 below. This configuration will look like below. Posting type must be chosen correctly. The following posting types are available and needs to be assigned with the Posting rules.
Posting type 8 – Clear cred.subl.acct has been used for sub ledger clearing.
If both Posting Area 1 and 2 is chosen, 2 postings will happen for each external transaction type. First one will clear the Bank Accounting and the second one will clear the sub ledger.
EBS posting accounting entries:
Accounts Payable –
1. Vendor Invoice
Dr GR/IR Account
Cr Vendor Recon Account
2. Payment to Vendor
Dr Vendor Recon Account
Cr Bank Outgoing Clearing Account
3. Post EBS in SAP
Dr Bank Outgoing Clearing Account
Cr Bank Main Account
Accounts Receivables –
4. Customer Invoice
Dr Customer Reconciliation Account
Cr Revenue Account
5. Incoming Payment from Customer
Dr Bank Incoming Clearing Account
Cr Customer Reconciliation Account
6. Post EBS
Dr Main Bank Account
Cr Bank Incoming Clearing Account
- After Posting the report will be shown as below. As per the import file, 2 bank statements are posted.
Journal Entries & Bank Statements
External Transaction type can be seen in the BTC – Business Transaction Code column. Here BTC is <54>. Payment notes can be interpreted by Interpretation Algorithm.
- Bank Statements can be reprinted using FF_6.
Understanding the EBS Back end tables:
Now let us understand the bank end tables in EBS. To understand EBS and how it works, it is important to understand how EBS is processed in SAP back end tables. We will see the table contents based on the above processed statements.
FEBKO – Electronic Bank Statement Header Records
KUKEY is the statement ID found on the top right of the bank statements
FEBEP – Electronic Bank Statement Line Items
External Transaction Keys are stored in VGEXT field. In our case, VGEXT = <54>-353 & <54>-664
FEBCL – Clearing data for an electronic bank statement line item
FEBCL holds the clearing information related to the processed EBS. In our case, we are using Assignment number (ZUONR) for clearing. The field SELVON is populated from the Payment Notes column in the bank statement. This table information can be customized using Z interpretation algorithm.
FEBRE – Reference record for electronic bank statement line item
Data in the VWEZW field will match with the Payment Notes information in the Bank Statement.
How to delete Bank statements from the buffer tables?
Run the report RFEBKA96 with Application as 0001 & bank statement IDs. In our case, it is 150 & 153.
Customizations in EBS upload:
How EBS processing can be automated?
- SAP PI/PO or any middleware can get the CAMT 054 files from bank SFTP folder and upload in designated folder in AL11. The folder can be configured in SPRO.
- 3 logical paths to be configured for the Inbound files, Processed and Errored files.
- Above logical paths to be set up in the Define Import Parameter step
- Run the transaction FEB_FILE_HANDLING with the source file path /INTERFACE/DEV/I0046/CAMT054/INBOUND
- If the processing the successfully, the file is moved from Inbound folder to the Processed folder. If any error, the file is moved to Error folder.
I hope you enjoyed this blog. Please share your thoughts/corrections/suggestions in the comments below. Also you can reach out to me in the below link. Let’s learn together.
You can reach out to me directly here https://www.linkedin.com/in/theratulchakraborty/
The information shared is awesome. Thanks a lot for sharing.
I'm glad you find this useful
Nice explanation with screen shots about CAMT 054.
Actually i am implementing CAMT 054 format i done setup all basic configurations in OT83. I am trying to upload the XML file in FF_5 getting error like this"
Transformation FIEB_CAMT054_V2_TO_FEB could not be executed
Message no. FB891
Please advise how to resolve and proceed further.
Hi Ratul Chakraborty,
Good blog. explore post processing with real time as well.
Excellent Blog! Thanks for the efforts
Nice Blog, Very Well explained!!
Thank you 🙏 lets keep learning together
Hi Ratul, it's said that to have several G/L accounts for each Bank Account is recommened.
"Several G/L accounts for each Bank Account" means, for example:
It's said that it's easier to process the manual bank reconciliation since the type of transactions are segregated, and if we're going to use ‘Automatic Bank Reconciliation [Electronic Bank Statement]’, Bank GL accounts with clearing are already in place.
What's your opinion regarding this?
Is it really much more difficult to manual reconcil the bank account if we have only ONE G/L account to each bank account?
Is it impossible to have the bank account clearing if we have only ONE G/L account to each bank account?
If I take the example from the accounting entries 2 & 3 and 5 & 6 in my blog, you don't want to use 3 separate GLs. You want to use the Main Bank A/c GL everywhere.
I don't think it is impossible to have the bank account clearing if we have only ONE G/L account to each bank account. But, how will you segregate the entries that were reconciled by incoming bank statement and the entries that were failed to reconcile? If you look at the journal entries, the main bank account G/L always has the balance of successfully reconciled entries. And the failed ones are kept as open in Incoming & Outgoing Bank G/Ls. This is definitely easier while manually reconciling the failed records.
Hi Ratul, thanks a lot for your valuable suggestion.
Nice Blog and very well explained with the screen prints, this will very helpful for the SAP community, thanks for sharing.
Keep up the good work.
Thank you Eugene. Cheers !!!
Great write up, thanks for taking the time! I'm having an issue that I wanted to see if you had encountered.
We have some posting rules configured to clear AP documents based on the document number that is passed back in the payment notes (posting type 4). We have situations where we will have two statement line items for the same amount, each for a different outgoing payment. However, when the posting program calls FB05 to post with clearing, we get an error for those line items that the difference is too large for clearing, suggesting that the system did not actually use the document number in the payment notes to find the open item. When I go through Search String Simulation, it finds the documents fine, but the actual FI posting still fails. We can post-process in FEBAN just fine by entering the document number when we process open items.
So it appears that when you use Posting Type 4 in your posting rule, and the program calls FB05, it only looks for line items for that amount does not search using document number. Have you seen this, and do you have any suggestions to work around this? Not sure if this is relevant, but we have only noticed this with KRW and JPY currencies, which are both zero decimal.
Is it failing for all items or only for the statement item with same amount? If it is failing for all, then why don't you use your own custom interpretation alogorithm?
All the other line items post and clear properly. In the latest example, the statement had 96 line items: 3 posted as expected using FB01, 89 posted as expected with FB05, and 4 failed with FB05. These four were two pairs of line items for the same amount.
We've used the standard 020 algorithm for years but only have this issue with line items with matching amounts.
If I'm not wrong, the algorithm 020 call the FM: FIEB_028_ALGORITHM in the back end. Please have someone debug it. I do not see any other option to be honest.
Yeah that's my next step in my "spare time." Was just curious if you had experienced this. Thanks for taking the time!
This blog is really helpful and thank you. I have following queries.
Appreciate your comments.
Im glad that you found my blog helpful. Here are my comments:
1. Transaction type can be found in the CAMT xml file that you receive from bank. No value suggestion is provided is SAP for that. It determines how you want to post each item in the bank statement. Business users will help you out in mapping transaction types with the GLs
2. If the transformation is available in the system, there is nothing else to be done. You just have to follow the steps as explained in the blog. But of course, the configuration can be complex based on the file.
Regarding the first point, my question was not related to the external transaction types those receive in bank statement. I was referring to configuration 'Assign External Transaction Types to Posting Rules' where various formats are designated as Transaction types. Here I see TType CAMT053 which we can use for CAMT.053.001.02. What Trans. Type should we use for CAMT.054.001.02 format?
Another question, when I try to load CAMT054 file using FF_5, I am getting error 'Error in mapping with BAdI ES_FIEB_MAPPING_X and filter value CAMT.054.001' (Message no. FB888). I see the OSS note 1733555 but it is old and not applicable for S41909 where are working. Any idea on how this can be resolved?
Ok, I got you now. 19CMT054 would be transaction type available in standard
Regarding the error, I dont think CAMT054 transformation is available in your version of the SAP. What is the version that you are using?
Thanks for sincere responses.
3. We are on S41909 Cloud (single tenant edition). In define mapping procedure we have following transformation associated with CAMT053 and CAMT054. How do we check that the transformation exists.
Appreciate your response.
Please reach out to me in Linkedin. Too many queries to answer in comment box 🙂
Sure. I would like this way connecting you.
Appreciate you. Wherever you work, must be big asset for organization.
Thank you Shailesh ... we are here to help each other, and learn more and more as quickly as possible
Thank you so much for your nice blog and explanations.
I have the same question n° 2 than Shailesh.
I think other consultants might also have the same question and need to know if you have a solution, please.
We will receive CAMT054 from and also receive a bank statement extract in CFONB or maybe MT940 format same bank account.
In this case, how can we set up the thing in 'Assign Bank Accounts to Transaction Types' to handle both formats for the same bank account as in config step, it does not allow two entries with the same bank key and account.
What are the steps to integrate a Camt054 customer payment file and then the bank statement?
Many thank in advance for your nice reply.
Hi Ratul , very nicely explained. Appreciate the efforts to simplify such a complex topic.
Thank you Sonu 😊
what a blog.. wonderful..great Ratul!!!
Thank you, I hope you found my blog useful 😊
Hello Ratul, Very nice explanations of how many parts of EBS works with the CAMT format! At my company we use MT940 format; many of the config is similar. I have a question about the resulting general ledger postings via EBS. Where is the related configuration to determine/map the SAP posted document fields such as Document Header text, assignment, and reference? We use a custom document type, YB. I realize these fields can be edited for the items that are manually posted via FEBAN (that fail the automatic rule-related posting) but for those transactions that successfully "auto-post", how can I map these fields differently and are there SAP provided options? thank you so much for any direction you can provide on this!
Thank you, Im glad that my blog helped you. You can have a look at the standard interpretation algorithms, if that does not fit your requirement, you need to customize. Please refer to SAP note 494777
Hi Ratul, Great Blog, thank you for detail explaination..
I would really appreciate if you throw some light that i am finding a situation for field AZNUM which is statement number and has reached 99999 limit generating statement and we get "Statement XXXXX already Exist". As per my understanding this field should have reset each year for each accounts configured in house banks but for some reason with our version SAP FIN don't see code that it does nor any sap notes nor help where we can RESET. Can you please help how some of the important field from FEBKO really works.
Thank you in advance and appreciate if you provide some inputs.
Sorry, this is something new to me as well. Will let you know if I find any solution to this.
thank you, appreciate your time and if you find anything other than tweaking the ABAP code which we can do through implicit enhancement that it will be great, just don't know much of consequences through ABAP change hence.
Have a look at the SAP note 812812, if that helps
Sorry this note is for older version(4.6) and we are on ECC 6.0 SAP FIN version where dont know how that piece got over written as mentioned in pervious code of reset the field AZNUM to 1, if it reaches to 99999. And SAP says archive is the solution and what am surprised is only 100K statements we have to load and do archiving not sure if everyone sees this pain or it was just me...
Very interesting article, thank you for your time!
I would like to ask you something, I am trying to implement a validation between:
If this 2 balances not met the system not permit you to upload the MT940 txt file (EBS)
Do you have any idea?
Thanks in advance
Thanks for your words.
Looks like this is a custom requirement that you have to achieve via enhancements in FF_5 transaction. I'm not sure though, will let you know if I get any clue.
Let's connect in Linkedin.
very nice and interesting article.
Does this also work for FI-CA?
In FI-CA you first just upload the camt.054-file via FF_5 into the storage and then in a second step you transfer the stored data via FPB7 into FI-CA.
Can FEB_FILE_HANDLING be used for this or do you know an other solution for this?
FEB_FILE_HANDLING is used for processing the file and posting the bank statement as per the posting area defined in the config. It can directly post to bank accounting & sub ledger both. After posting, now the question is how the data will be transferred to FI-CA. And I really do not know if this manual step must be performed.
Thank you for sharing,
I have a question , how i can group two paiement in same short key ?
example table FEBEP
One of the best articles on EBRS functionality. Very nicely articulated. Thanks for sharing.
how can I add those 2 information (OCMT and CHRGS) into FEBRE from the camt_53 file ?