Skip to Content
Technical Articles
Author's profile photo Naveen Pidikiti

A deep dive into ‘Matching methods’ and ‘Reason codes’ in ICMR

Overview of ICMR (Intercompany matching and reconciliation)

ICMR helps supercharge your intercompany reconciliation process from local close (Company code level) to corporate close (Group level). You don’t need to use any ETL (Extract transform load) process and do a near Realtime matching and reconciliation. Allows users to achieve a high level of automation and a continuous accounting process. With its built-in communication features like workflows, notes, email notifications and reminders, it reduces delays faced in a conventional reconciliation process while bringing in visibility transparency and accountability in the process.

ICMR (Scope item 40Y) was built with consolidation and elimination in mind. However, ICMR can be used either with or without Group reporting activated (Scope item 1SG). This allows users to use ICMR as a matching and reconciliation tool without consolidation.

This is the first of many blog posts on ICMR. In this blog post, we are going to discuss the usage of reason codes that form a crucial element for matching and reconciliation.


Before we dive into reason codes used in ICMR, let’s understand the matching method and its role in detail.


Overview of Matching methods

  • A Matching method is a collection of matching rules.
  • Matching rules have data slices that classify the data into a leading and partner unit.
  • Matching rules also contain the matching expression that sets the rules for matching the data slices.
  • If the data slices are matched using the matching expression the system assigns them an assignment number and a reason code as specified in the matching rule.
  • Matching rules are executed in a sequential manner.
  • The system will keep executing the matching methods in the specified sequence until it finds a match.
  • Once a match is found with a matching rule the system will assign an assignment number for the matched items
  • It’s not necessary that the matching method has a matching done on both sides, the system can also perform a one-sided matching.

Below is an example of a standard matching method.


Matching method


Data source: Determines the source data (General ledger/ AP, AR data/ Consolidation data)

Filter Criterion: This is a global filter that is used to select the data for the matching rules

Matching rules: Matching rules contain data slices, match type and reason codes as further explained below


Configuration Inside a matching rule showing reason code assignment



Match type: Match type determines how the data slices are matched. The list is shown below. Match type determines the expressions that are available in the matching expressions section.


Match types


For example, if you select an exact match type you cannot maintain tolerance in the matching expression. In contrast, if you use SA (Auto-assign), you can configure a variance in the matching expression.

Reason code: Reason codes help to explain the matching reason and trigger follow-up actions like trigger a workflow, require a comment or write of variance etc.

Reason codes help classify and make sense of the matched item list. You can either assign a reason code manually or automatically. The follow-up activities for reason codes can also be either manually triggered or you can set to apply automatically ( Check the box apply automatically in the reason code configuration)

Below is the list of reason codes delivered in the standard content.

To configure and customize your own reason codes use the below path

Navigate to the ICA configuration by using Tcode ‘ICAIMG’

Intercompany matching and reconciliation –>Reasons and Solutions –> Maintain reason codes


Reason codes config path


Reason codes delivered by the standard content


Reason codes have additional functionality as shown below.


Reason code Configuration


No Followups: Indicates that the reason code has no further actions and is considered as matched without further action

Comment required: Makes a comment mandatory, systems add a comment if processed en masse.

Temporary resolution: Items that need to be reviewed after a follow-up data set in the future. Or can be tagged to be matched for the next period.

Workflow scenario ID: Triggers a workflow when processed. SAP provides a standard workflow for this scenario.

Trigger on Partner side: Controls whether the workflow is triggered at the partner unit’s side, or the leading unit’s side.

Auto follow-ups: The system triggers the follow-up without the need for the user to click on the process button on the manage assignments screen.

Adjustment class: An ABAP class that is used to implement the adjustment logic.


  • CL_ICA_DC_FIN_DOCUMENT_POST: Applicable to the posting rules defined using the Define Posting Rules app.


  • CL_ICA_FIN_JOURNAL_POST: Applicable to the document templates for adjusting the variances between accounts receivable (AR) and accounts payable (AP) of two trading companies. The template needs to be defined using the Define G/L Posting Document Templates configuration activity.


Output structure: An ABAP DDIC structure for output display.


CL_ICA_FIN_JOURNAL_POST for default structure of ICADOCM.


Reason codes play a crucial role in the matching and reconciliation of ICMR. A good understanding of reason codes will help users and consultants better handle exceptions. Trigger workflows and ease communication for discrepancies.


Related Materials


Assigned Tags

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

      Hi Naveen Pidikiti 

      Thanks for sharing. Based on my configuration, we must assign this matching method to reconciliation case. In Reconciliation case we also define display group, in your opinion. Must we have same condition for display group or data slice it matching method?

      Author's profile photo Naveen Pidikiti
      Naveen Pidikiti
      Blog Post Author

      Hi William,

      It depends if you want to use elimination in Group reporting based on this data. If you plan to post eliminations, your matching method and reconciliation case should have identical (Not the same) data slices.

      However, ICMR is slightly flexible if you use it as a pure reconciliation tool and not for GR elimination. In this case, you can entirely skip reconciliation cases and define matching methods only.


      Author's profile photo Vincent Zhang
      Vincent Zhang

      The data slice in matching method is a different concept compared to the display group in recon case. A matching rule needs a data slice pair to have 2 pieces of data for matching, while a display group in recon case is used to have a balance report view on the 2 sets of data.

      People always confuse on the 2 concepts, as in a lot of cases, the settings on the 2 objects are the same. However, data slices can be in a much smaller(precise) scope only for a certain matching rule to do more precisely adjustments. For example: a matching rule can have slices defined with only open items, and if items from the 2 sides are matched,then be assigned with a reason code for the follow-up clearing activities. While a display group is usually set with both open and cleared items to see the exact AR and AP balanced amounts on the 2 sides. And display group doesn't have follow-up activities, it is mainly for the report purpose.

      Author's profile photo Ram Bharadwaj
      Ram Bharadwaj


      As per Indian Accounting Standards we have to perform Transaction reconciliation and balance reconciliation. Is it possible to perform using ICMR? Transaction reco is between purchase and sales and balance reco is between the payable and receivables between inter comapanies. Is it possible to achieve both the reco using ICMR?

      Author's profile photo Naveen Pidikiti
      Naveen Pidikiti
      Blog Post Author

      Hi Ram,

      You can do a line item level and a balance reconciliation with ICMR. However, you need to take due care while posting the data. ICMR can help you classify the data, but if the source data itself is not in good shape (references and links between both data slices), ICMR can do little to resolve it.

      So in your case, ensure both sides of the transaction has references or assignment populated with data that ICMR can use to match and reconcile. As long as a significant portion of the data has the references, ICMR does an excellent job classifying the data into matched data vs exceptions,


      Author's profile photo Ram Bharadwaj
      Ram Bharadwaj


      Your concern regarding data is well taken.

      Reconciliation of Purchase & sales between related parties (transaction reco) & Recon of payables & receivables (balance reco) is our ask. We are not able to figure out how to achieve this.

      For e.g material in transit at the end of the period comes as a reconciliation item which impact the transaction reco (as sales is accounted by seller but buyer has not counted as purchase) as well as the balance reco (since receivables has no matching payables in related party books)

      but the same entry of material in the buyers book in the next period impacts only the transaction reco as the purchase has not matching sales in the current period. (balances will match as payable will find the receivables).

      Transaction recon is for the said period as deals with P&L items but balance recon is as on that date.

      Is there a way to handle these cases?


      Author's profile photo Diwakar Reddy
      Diwakar Reddy

      Hi Naveen,


      Thanks for nice explanation.

      I have small doubt on one sided postings. We have seen SAP has given Automatic posting scenario SA001 for adjustment postings but we don't see any Automatic posting scenario DDIC structure & ABAP class  with for one sided posting.


      Do we have any standard SAP solution for one sided postings and how did you handle the one sided postings.


      Thanks & Regards,





      Author's profile photo Vincent Zhang
      Vincent Zhang

      Hi Naveen Pidikiti ,

      Your first snapshot seems wrong. Should it be the matching method head level setting? It is duplicate with the second one.



      Author's profile photo Ram Bharadwaj
      Ram Bharadwaj


      We need to perform Intra Company matching to remove records mainly reversed transactions. In ICMR we created a data source with leading and partner unit field as "Company". This allowed us to use a second data source which we used for Intra company matching for reversed documents. But there is a problem. These reversed documents still appear in our other matching methods with proc status as "00" despite being matched in the Intra co match method.

      SAP claims this is standard behavior. Then How do we have 1 common method for INTRA and Inter company matching??I cannot have already matched records appearing again in different methods. My CFIN system does not populate the reversal information (like xreversed, xreversing etc)

      how can i achieve the removal of reversed documents and matching WE doc with RE, PE doc with PR etc?

      Author's profile photo Ram Bharadwaj
      Ram Bharadwaj

      How do you achieve this -

      • It’s not necessary that the matching method has a matching done on both sides, the system can also perform a one-sided matching

      How can we run "Auto-Match" one sided? How do you configure the method or rule or expression to achieve single sided auto match?