Configuring International Payroll in SAP: A Step-by-Step Technical Guide
A practical, expert-written reference for HR professionals and students learning to configure SAP payroll across borders — written in plain English, not consultant-speak.
“Setting up payroll for one country is hard enough. Setting it up for ten — across different currencies, tax laws, social contributions, and legal calendars — is where most SAP projects either shine or fall apart. This guide is everything I wish I had when I started.”
Whether you are an HR student trying to understand how SAP payroll actually works, or a consultant preparing to configure an international rollout, this guide will walk you through every critical component — step by step, with real transaction codes, configuration paths, and practical tips built from over a decade in the field.
📌 What Is SAP International Payroll?
SAP International Payroll is the component within SAP HCM (Human Capital Management) — now also available as SAP Employee Central Payroll via SuccessFactors — that enables organisations to run payroll simultaneously across multiple countries, each with its own legal rules, tax structure, currency, and social insurance requirements.
Think of it this way: the SAP payroll engine is one powerful calculator. But to tell it which country’s tax rates to apply, which currency to use, which social deductions are mandatory, and how to structure pay slips — you need country-specific configuration. That is exactly what this guide teaches you.
Key Concept: SAP uses a two-digit code called MOLGA (Modifier for Local Government Authority) to identify each country’s payroll rules. Every configuration object you create will be tied to a specific MOLGA. This is the master key to everything international in SAP Payroll.
SAP International Payroll — Architecture Overview
🌍 Understanding MOLGA — The Country Key
Before you touch a single configuration screen, you must understand MOLGA. Every country supported by SAP has a unique two-digit MOLGA code. This code determines which payroll programs, schemas, wage types, and legal tables are relevant for each country. It is the foundation of everything.
| MOLGA | Country | Payroll Schema | Currency | Status |
|---|---|---|---|---|
| 01 | 🇩🇪 Germany | D000 | EUR | Fully Localised |
| 08 | 🇺🇸 United States | U000 | USD | Fully Localised |
| 10 | 🇬🇧 United Kingdom | G000 | GBP | Fully Localised |
| 13 | 🇦🇺 Australia | A000 | AUD | Fully Localised |
| 40 | 🇫🇷 France | F000 | EUR | Fully Localised |
| 22 | 🇯🇵 Japan | J000 | JPY | Fully Localised |
| 62 | 🇧🇩 Bangladesh | Generic | BDT | Custom Required |
| 99 | International | I000 | Flexible | Base Template |
Critical Warning: Never mix MOLGA codes. If an employee’s Org Assignment (IT0001) says MOLGA 10 (UK) but their payroll area is assigned to a Germany schema (D000), the payroll run will either error out or produce completely wrong results. MOLGA must be consistent across all configuration objects.
🔧 The 8-Step Configuration Journey
Here is the exact sequence of steps I follow when configuring SAP payroll for a new country. Skip a step and you will almost certainly need to come back and redo work. Follow them in order.
Define the Enterprise & Personnel Structure
Set up Company Code (linked to FI/CO), Personnel Area, Personnel Subarea, and Employee Group/Subgroup. Every payroll configuration hangs off this org structure. Use transaction codes SPRO → Enterprise Structure → Definition. Ensure the company code currency matches the payroll country currency.
Configure Payroll Area & Control Record
The Payroll Area defines the pay cycle (monthly, bi-weekly, etc.) and groups employees who are paid together. Use SPRO → Payroll → Basic Settings → Payroll Organisation. Then create the Payroll Control Record via PA03. Set the current period and check the payroll status — this is your “gearbox” for every run.
Define & Configure Wage Types
Wage Types are the atoms of SAP payroll — every single pay element (basic salary, overtime, bonus, tax deduction, employer contribution) is a Wage Type. Use PU98 or SPRO → Payroll → Basic Settings → Wage Types. For international payroll, always copy from the country-specific model wage types — never create from scratch. Map each Wage Type to a G/L account for Financial Accounting integration.
Set Up Payroll Schema & PCRs
The Payroll Schema is the master calculation program (e.g. X000 for international, D000 for Germany). Personnel Calculation Rules (PCRs) are the individual calculation steps within the schema. Modify schemas using PE01 (schemas) and PE02 (PCRs). Use PE04 to maintain the payroll functions and operations. For international payroll, always work on a copy — never modify SAP standard schemas directly.
Configure Tax & Social Insurance Settings
This step is the most country-specific. For each country, configure the tax authority tables, tax brackets (tariff types), social insurance carriers, and contribution rates. Access via SPRO → Payroll [Country] → Tax → Basic Settings. For countries without full SAP localisation, you will build custom PCRs to calculate taxes using Wage Type processing rules. Always validate against the local tax authority’s published tables.
Integrate Time Management (if applicable)
If your organisation uses SAP Time Management, configure the Time Wage Type Selection Rule (IT2010 / Schema TM00) to ensure time data (hours worked, overtime, absences) feeds correctly into payroll. Use SPRO → Time Management → Time Evaluation. For countries with complex overtime rules (e.g. France, Germany), time schema rules must mirror the legal calculation sequence exactly.
Configure Payroll Posting to FI/CO
Map each Wage Type to a symbolic account, then map symbolic accounts to G/L accounts per company code using SPRO → Payroll → Reporting for Posting Payroll Results to Accounting. Run PC00_M99_CIPE (Post payroll results to FI) after each payroll run. Ensure cost centre assignments align with the CO module setup for accurate cost allocation across international entities.
Simulation, Testing & Go-Live
Run payroll in simulation mode first using PC00_M[MOLGA]_CALC or via PC00_M99_CALC_SIMU for the international version. Compare results against legacy system output or manual calculations for at least three employees per scenario (standard, part-time, leaver). Then release the control record via PA03 and run the actual payroll. Never run live payroll before a UAT sign-off.
💻 Key Transaction Codes Reference
After 13 years, these are the T-Codes I use most frequently for international payroll. Bookmark this table — you will come back to it constantly.
| T-Code | Description | Area | When to Use |
|---|---|---|---|
| PA03 | Payroll Control Record | Administration | Every payroll run — check/change payroll status |
| PE01 | Payroll Schema Editor | Configuration | View and modify payroll calculation schemas |
| PE02 | Personnel Calculation Rules | Configuration | Edit individual PCR calculation steps |
| PE04 | Payroll Functions & Operations | Configuration | Maintain payroll calculation functions |
| PU98 | Wage Type Customising Tool | Configuration | Create and configure wage types |
| PC00_M99_CALC | International Payroll Run | Execution | Run payroll for international schema |
| PC00_M99_CIPE | Post Results to Accounting | Execution | Post payroll to FI after every run |
| PC_PAYRESULT | Display Payroll Results | Analysis | Inspect payroll cluster for any employee |
| PU01 | Delete Payroll Results | Caution | Delete test/simulation results (use with care) |
| PUOC_[CC] | Off-Cycle Payroll | Administration | Ad-hoc payments outside normal pay cycle |
| SM37 | Job Monitor | Administration | Monitor background payroll jobs |
| HRFORMS | HR Forms Workplace | Output | Configure and preview pay slip templates |
📐 Wage Type Configuration — Deep Dive
Wage Types deserve their own deep dive because they are where most international payroll projects go wrong. Get wage type configuration wrong and every downstream calculation — taxes, net pay, posting to FI — will be incorrect.
Technical Wage Types
Generated by the payroll schema during calculation. Example: /001 (Total Gross), /559 (Net Pay). Never assigned directly to employees — they appear only in payroll results.
Dialog/Primary Wage Types
Entered by HR directly on employee infotypes (IT0008 Basic Pay, IT0014 Recurring Payments). Examples: Basic Salary, Housing Allowance, Car Allowance.
Derived Wage Types
Calculated by PCR logic from other wage types. Example: Overtime Premium calculated as 50% of basic hourly rate. Defined entirely within schema logic.
Supplementary Wage Types
Entered via IT0015 (Additional Payments) for one-off items like bonuses, commissions, or special deductions. Processed in the current payroll period only.
Cumulation Wage Types
Aggregate multiple wage types for reporting. Example: /801 cumulates all taxable earnings. Critical for annual tax reporting and statutory declarations.
Retroactive Wage Types
Automatically generated when a retroactive payroll run is triggered (e.g. backdated salary increase). SAP manages the difference calculation; you configure which wage types are retro-relevant.
* PCR: ZOT1 — Calculate Overtime Premium (1.5x) for International Schema * MOLGA: 99 (International) | Wage Type: 1510 (Overtime Hours) WGTYP ?1510 * Check if Overtime Hours Wage Type exists in IT MULTI AHR * Multiply Amount by Hours ADDWT 1511 * Store base overtime pay in Wage Type 1511 AMT= 1511 * Set AMT to Overtime Base MULTI A 0.50 * Calculate 50% premium (total = 1.5x) ADDWT 1512 * Store premium in Wage Type 1512 ADDWT /001 * Add to Total Gross (/001) * Wage Type Characteristics (V_512W_D): * 1510: Not relevant for cumulation /001 (hours only) * 1511: Cumulate to /001 (Gross), /801 (Tax basis) * 1512: Cumulate to /001 (Gross), /801 (Tax basis)
Best Practice: Always use the four-digit range 1000–1999 for customer-defined primary wage types and Z000–Z999 for customer schemas and PCRs. SAP reserves ranges 0000–0999 and all /XXX technical wage types. This naming discipline makes transports, upgrades, and audits significantly cleaner.
🌐 Multi-Country Payroll: Special Considerations
International Payroll Configuration Complexity Map
Currency & Exchange Rate Configuration
For multi-currency payrolls, configure exchange rate types in SAP using transaction OB08. The payroll currency is defined at the Payroll Area level, but you can configure cross-currency calculations using the SAP currency conversion tables (T009, T009B). Always use the “M” (average/standard) exchange rate type for payroll unless your local legal requirement specifies a different rate.
── SAP Reference IMG (SPRO) └── Payroll ├── Basic Settings │ ├── Payroll Organisation │ │ ├── Define Period Parameters » Monthly/Bi-weekly cycles │ │ ├── Define Date Modifiers │ │ └── Create Payroll Areas » Link to MOLGA │ ├── Wage Types │ │ ├── Create Wage Type Catalogue » Copy from model WT │ │ ├── Define Wage Type Characteristics │ │ └── Define Permissibility per IT » IT0008, IT0014, IT0015 │ └── Payroll Schema │ ├── Define Schema (PE01) » Copy X000 → ZX00 │ └── Define PCR (PE02) » Custom rules prefix Z ├── Payroll [Country MOLGA] │ ├── Tax │ │ ├── Tax Authorities │ │ ├── Tax Brackets / Tariff Tables │ │ └── Annual Adjustment Rules │ ├── Social Insurance │ │ ├── SI Carriers & Contribution Rates │ │ └── Income Ceilings (Ceiling Amounts) │ └── Statutory Reporting └── Reporting for Posting to Accounting ├── Define Symbolic Accounts » Map WT → Symbolic Acct └── Assign Symbolic Accts to G/L » Map to FI Chart of Accounts
🧪 Testing International Payroll — The Right Way
“A payroll that runs successfully in production without a proper test cycle is not an achievement — it is an accident waiting to happen.”
— 13 Years of SAP Payroll ImplementationsTesting international payroll requires a structured approach. Here is the three-phase testing methodology I use on every implementation:
Unit Testing
Test each wage type and PCR individually. Create a single test employee, assign one wage type at a time, run simulation (PC00_M99_CALC_SIMU) and verify via PC_PAYRESULT.
Integration Testing
Run a full payroll simulation for all employee scenarios: full-time, part-time, leaver, joiner, maternity, secondment. Validate FI posting and bank file output.
Parallel Run
Run new SAP payroll alongside the legacy system for at least 2 pay periods. Every difference must be explained and documented. Only sign off when variances are zero or legally justified.
Retroactive Testing
Deliberately trigger a retroactive run by backdating a salary change. Verify that retro differences are correctly calculated and posted. Many bugs hide in retro processing.
🚦 Common Errors & How to Fix Them
| Error | Root Cause | Fix | T-Code |
|---|---|---|---|
| No payroll results generated | Control Record locked / wrong period | Check and release control record status | PA03 |
| Wage type not found in payroll | Permissibility not set for PS/ES grouping | Set wage type permissibility for relevant EG/ESG | SPRO |
| Tax calculation incorrect | Wrong cumulation class or tariff table | Check V_512W_D (wage type characteristics) and tax tables | PU98 |
| FI posting fails | Missing symbolic account mapping | Map wage type to symbolic account and to G/L per company code | SPRO |
| Retro run creates wrong differences | Wage type not flagged as retro-relevant | Set retro relevance in V_T511 and check schema XRRO function | PE01 |
| Bank file not generated | House bank / payment method missing | Configure house bank in FI, assign to payroll area | FI12 |
| Employee missing from payroll run | Payroll area not assigned (IT0001) | Check IT0001 — correct Payroll Area must be assigned | PA30 |
📋 Go-Live Readiness Checklist
Do not go live until every item below is confirmed. I have seen go-lives delayed by last-minute issues that a proper checklist would have caught in UAT. Use this as your final gate.
✅ SAP International Payroll — Go-Live Checklist
Final Thought: SAP international payroll configuration is not a one-time activity. Tax laws change. Social insurance rates update. New pay elements get introduced. Build a regular configuration review cycle — at minimum annually, ideally quarterly — into your HR operations calendar. The systems you configure today must stay legally compliant for years to come.
