SAP Knowledge Base Article - Public

3330321 - How to Set Up Cross-Country/Region Pricing Using Modular Pricing Procedures


You run a business process in which taxes for different countries/regions must be determined within a single business document or service transaction.

For example, you are using sales rebate processing in combination with Registration for Indirect Taxation Abroad (RITA). Since the pricing procedures predelivered by SAP always cover only one country, you set up one cross-country/region pricing procedure with all tax-related condition types for all the different countries/regions included. To avoid pricing errors due to missing required conditions, you usually had to set up custom requirements that control which condition is active for each country/region. This can be laborious and is described in KBA 3151428 (How to Enable a Single Pricing Procedure for Multiple Countries or Regions).

Other use cases where cross-country/region pricing procedures could be used include:

  • You have sales areas in different countries/regions, and every country/region has a different pricing procedure but only the tax condition types differ. When introducing a new central change, for example, adding a new discount type, you must manually change every single pricing procedure. This requires effort and increases the chance of errors.
  • You have multiple sales areas and different pricing procedures but identical tax condition types. If a change regarding the tax condition types is required, you must change multiple pricing procedures manually. This requires effort and increases the chance of errors.

After you have implemented this solution, you must perform extensive tests to ensure that everything works as expected.

The screen shots in this KBA use sample data from demo systems. Any resemblance to real data is purely coincidental


  • Sales
  • SAP S/4HANA Cloud


Reason and Prerequisites

Standard behavior


For the described solution, a business role with the following business catalog is required:

Business Catalog Name

Business Catalog ID

Sales - Configuration


With the introduction of modular pricing procedures, it is now possible to set up cross-country/region pricing procedures without any custom coding, using configuration only.

In this article we describe an example in sales rebate processing where you need one pricing procedure to cover tax conditions of Germany and the United States.

General Concept

The goal of this article is to describe a basic example of how to merge two country/region-dependent pricing procedures using modular pricing procedures. Let’s have a look at the following predelivered pricing procedures:

  • A10007 for country Germany
  • A17007 for country United States (US)

As you can see, both pricing procedures are identical except for the conditions used for tax determination. Both pricing procedures perform tax determination via tax trigger conditions, but of course this concept can also be applied to pricing procedures without tax trigger conditions (RETT, RETU, AS01).

The deviating tax conditions are the following:

  • A10007 Rebates (Goods Rel.) (Germany)
    • RETT: Rebate Tax Trigger
    • AS01: Tax trigger
    • MWAS: Output Tax
  • A17007 Rebates (Goods Rel.) (US)
    • RETU: RebateTax Trigger US
    • XR1 … XR6: Tax Jur Code Level 1-6

To merge the two country/region-dependent pricing procedures, you can use modular pricing procedures as follows:

  • You define one pricing procedure (a so-called main procedure) that covers the common part of both pricing procedures.
  • For the different country/region-specific tax conditions, you define one subprocedure per country/region.

To set up modular pricing procedures, you define a main procedure by adding an inclusion point at a specific step number in a pricing procedure. You define the subprocedures by assigning the relevant inclusion point to each procedure. An inclusion point is a special type of condition type. Its purpose is to refer from a main procedure to one or more subprocedures and to initiate the determination of a subprocedure during the pricing process. To control which sets of additional condition types are included during the pricing process, you define a formula for subprocedure determination and use its formula ID in the inclusion point.

This means, you set up the following elements:

  • Inclusion point: ZITX (InclPt Taxes)
  • Main procedure: Z00007: Rebates (Goods Rel.)
  • Subprocedures:
    • Z010TX: Taxes DE
    • Z017TX: Taxes US
  • Formula for subprocedure determination: ZTAXES

Setting Up the Configuration

Define the Inclusion Point

In your configuration environment, open the Set Condition Types for Pricing in Sales configuration activity.

You define the inclusion point as a special kind of condition type by setting the Inclusion Point checkbox. With the checkbox set, the Subprocedure Determination field becomes available.


The condition class G (Tax Classification) ensures that the subprocedure determination is carried out when taxes are determined. It is important to set the correct condition class to ensure that the subprocedure determination is carried out when necessary. For example, when a document field such as tax departure country/region is changed because this triggers a redetermination of tax conditions. If the inclusion point does not have the right condition class, the subprocedure would stay the same and the right conditions are not found.

You must fill out the Subprocedure Determination field once you have defined a formula for subprocedure determination in a subsequent step.

Define the Main Procedure

In your configuration environment, open the Set Pricing Procedures configuration activity.

  1. Create a main procedure that is country/region independent. By adding the inclusion point at a specific step number, you define the place where the tax condition types are to be included during document processing.
    Note: To ensure that all condition types from a subprocedure can be included into the main procedure during the pricing process, there must be a free space of at least 50 step numbers after the inclusion point.
  2. Set the inclusion point as required in the main procedure. This ensures that a subprocedure is found in every case, otherwise the system raises an error. This setting is useful if your subprocedure contains required condition types, such as taxes.

The main procedure looks as follows:

In pricing procedure A10007, condition type MWAS refers to the procedure lines from step 200 to step 300. Condition type MWAS will be part of a subprocedure. As it is not possible to refer from a procedure line in a subprocedure to procedure lines of a main procedure, you can maintain the From Step and To Step for the inclusion point in the main procedure. With an additional setting in the subprocedure for condition type MWAS, you can make it so that, that during the pricing process, the system copies the From Step and To Step of the inclusion point ZITX to the determined condition type MWAS.

Define the Subprocedures

In your configuration environment, open the Set Pricing Procedures configuration activity.

1. You create one subprocedure per country/region for the different country/region-specific tax conditions used in the pricing procedures A10007 and A17007.

2. To use a pricing procedure as subprocedure, you assign the relevant inclusion point to each procedure:

3. The subprocedure with tax conditions for country DE looks as follows:

You select the Copy Steps checkbox for condition type MWAS. During the pricing process in a business document, the system then automatically copies the From Step and To Step of the inclusion point ZITX to the respective condition type in the referenced subprocedure.

4. The subprocedure with tax conditions for country US looks as follows:

Define Formula for Subprocedure Determination

In your configuration environment, open the Define Formulas for Subprocedure Determination in Sales configuration activity.

1. To control which sets of additional condition types are included during the pricing process, you define the formula for subprocedure determination ZTAXES and enter its formula ID in inclusion point ZITX in a subsequent step. The formula contains business logic that tells the system when to determine which subprocedure.  


2. Select the formula ID and choose Assign Formula Parameters.

3. Add a new entry for formula parameter TAXCONDITIONDETNCTRYREG. During runtime, this parameter contains the country/region where taxes shall be calculated and reported. Within sales rebate processing, this is not necessarily the same as the departure country/region from which the goods were sent.

4. Choose Formula Tasks. The system shows the usage task DETERMINE and automatically assigns a routine number.