JinJin48
JinJin48
SAP Consultant | BTP · S/4HANA · US Global Rollout
· 16 min read

Cover: SAP FI Tax Code — master data defining tax calculation across all modules

SAP FI Tax Code

The Tax Code is the central configuration object that defines how SAP calculates, posts, and reports tax amounts for every transaction across FI, MM, SD, and other modules. It encapsulates the tax type (input, output, or non-deductible), the tax rate, the GL account assignment for tax clearing, and jurisdiction-specific rules. Every invoice, purchase order, and sales document references a Tax Code to automate tax computation and compliance reporting.


Part 1: Tax Code — Core Concepts (All Modules)

1.1 What Is the Tax Code?

Hub-and-spoke diagram showing Tax Code at center, connected to FI Invoice Posting, MM Purchase Order, SD Sales Order, Tax Report, and GL Account

The Tax Code is a two-character configuration key that determines the tax treatment of a transaction. When entered on an invoice line, a PO item, or a sales document, the Tax Code triggers automatic calculation of the tax amount and posts it to the configured GL accounts for tax clearing and tax reporting.

AspectDetails
RoleDefines tax type, rate, GL account assignment, and calculation logic for tax transactions
Modules using itFI (AP/AR posting — primary owner), MM (purchasing and vendor invoice), SD (customer billing), AA (asset acquisition), CO (internal orders with tax)
TransactionsFTXP (Tax Code configuration) / OB40 (Tax Code assignment to country) / OBCL (Tax posting settings) / S_ALR_87012357 (Tax reporting)
Key TablesT007A (Tax Code master) / T007S (Tax Code for each country) / T007V (Tax rate and GL account assignment per tax type)
S/4HANA noteTax Code configuration unchanged from ECC. Enhanced Fiori app “Manage Tax Codes” available for maintenance. Country-specific localization packages (Japan JCT, EU VAT, US Sales Tax) deliver pre-configured Tax Code templates.

1.2 Tax Types and Tax Categories

2x3 matrix comparing tax types: Input Tax, Output Tax, Non-Deductible Tax, Use Tax, Reverse Charge, and Exempt

The Tax Code type determines the direction of tax flow and its accounting treatment. Selecting the wrong type causes incorrect GL posting and compliance reporting failures.

Tax TypeCode PatternUse CaseKey Behavior
Input Tax (Deductible)I* (e.g., I1, I5, I8)Tax paid on purchases (VAT, consumption tax) that can be offset against output taxTax amount is posted to Input Tax Clearing account (e.g., 1171). Used in MM vendor invoices and FI AP posting.
Output TaxO* (e.g., O1, O5, O8)Tax collected on sales (VAT, sales tax) owed to tax authoritiesTax amount is posted to Output Tax Clearing account (e.g., 2171). Used in SD billing and FI AR posting.
Non-Deductible Input TaxV* (e.g., V1, V8)Tax paid on purchases that cannot be reclaimed (e.g., entertainment, employee benefits)Tax amount is capitalized into the expense or asset cost. Not posted to Input Tax Clearing. Used for specific cost centers or asset classes subject to non-deductibility rules.
Use TaxU* (e.g., U1)Tax self-assessed on inter-state/cross-border purchases (US)Both Input Tax and Output Tax postings generated in a single transaction. Used in US localization for purchases where supplier does not charge sales tax.
Reverse ChargeR* (e.g., RC)EU intra-community purchases where buyer remits VATOutput Tax and Input Tax posted simultaneously. Used for EU cross-border B2B transactions under reverse charge mechanism.
Exempt / Zero-RatedZ* (e.g., Z0, ZE)Transactions exempt from tax or zero-ratedNo tax amount calculated. Used for exports, tax-exempt entities, or specific product categories (e.g., medical supplies).

Design principle: Tax Code naming must follow a strict convention agreed during blueprint. Multi-country projects typically use a two-character scheme: first character = tax type (I/O/V/U/R/Z), second character = rate (0 = exempt, 1 = standard rate, 5 = reduced rate 5%, 8 = reduced rate 8%, etc.). This convention allows tax reporting by pattern matching.


1.3 Organizational Levels and Data Hierarchy

Hierarchy tree showing Tax Code configuration: Country Code → Tax Code → Tax Type (per rate) → GL Account Assignment

The Tax Code is defined at the Country Code level, not at Company Code or Plant. A single Tax Code can be used across multiple Company Codes within the same Country, but each Country maintains its own Tax Code catalog.

Country Code (JP, US, DE, ...)
   │
   ├── Tax Code (I1, I5, I8, O1, O5, O8, ...)
   │      Defined in FTXP per Country Code
   │      Tax Description, Tax Type, Calculation Procedure
   │
   └── Tax Type (MWST, MWAS, MWVS, ...)
          │
          ├── Tax Rate % (10%, 8%, 5%, 0%)
          │      Defined in T007V per Tax Type
          │
          └── GL Account Assignment
                 Input Tax Clearing Account (e.g., 1171)
                 Output Tax Clearing Account (e.g., 2171)
                 Expense/Cost Capitalization Account (for Non-Deductible Tax)
Org LevelTablePrimary FieldsNotes
Country CodeT005Country Key (JP, US, DE, …)Tax Codes are country-specific. One Country can have 50+ Tax Codes covering all rate combinations and tax types.
Tax CodeT007A / T007STax Code (2-char), Tax Description, Country CodeOne Tax Code per rate and type combination (e.g., I1 = Input Tax 10%, I8 = Input Tax 8%, O1 = Output Tax 10%).
Tax TypeT007VTax Type (MWST, MWAS, …), Tax Rate %, GL Account AssignmentEach Tax Code references one or more Tax Types. Tax Type drives the posting logic (Input Tax Clearing, Output Tax Clearing, or Expense Capitalization).

Key design decision: For global projects with multiple countries, each country requires its own Tax Code catalog. Japan uses I1/I8/I5 for consumption tax (10%/8%/5%), while Germany uses V0/V1/V2 for VAT (0%/7%/19%). Establish a global naming convention early to prevent conflicts and confusion in multi-country reporting.


1.4 Integration with Other Master Data Objects

Hub-and-spoke showing Tax Code at center connected to GL Account, Vendor Master, Customer Master, Material Master, and Country Code

The Tax Code does not stand alone. It is referenced by, and feeds into, multiple master data objects and transactional processes.

ObjectRelationshipPractical Notes
GL AccountTax Code constrains which GL Accounts can be posted with taxGL Account Master (FS00) includes a Tax Category field that controls which Tax Codes are allowed. Example: Tax Category “+” allows all Input Tax Codes; Tax Category “*” allows all Output Tax Codes. Mismatched combinations trigger posting errors at runtime.
Vendor MasterDefault Input Tax Code stored in Vendor Master Accounting ViewProposed automatically on vendor invoices (FB60, MIRO). Overridable at line-item level. For multi-country vendors, confirm whether the default is set at vendor level or purchasing organization level.
Customer MasterDefault Output Tax Code stored in Customer Master Billing ViewProposed automatically on customer invoices (FB70, VF01). SD billing typically derives the Tax Code from the Pricing Procedure (tax condition type), not from the Customer Master — confirm the design choice during blueprint.
Material MasterTax Classification stored in Material Master Sales ViewFor SD, the Material Tax Classification (TAKLV/TAXKM) combined with the Customer Tax Classification drives automatic Tax Code determination via condition technique (transaction VK12). For MM, the Material Master does not store a default Tax Code — it is derived from the Vendor Master or Purchase Info Record.
Country CodeTax Code catalog is scoped to one Country CodeOne Tax Code can only be used for transactions involving the assigned Country. Cross-border transactions (e.g., US Company Code purchasing from a Japanese vendor) require careful Tax Code design to handle jurisdiction conflicts — typically resolved via Use Tax or Reverse Charge mechanisms.

Part 2: FI-Specific Field Details

2.0 Scope of FI Ownership

Checklist showing FI consultant ownership across Tax Code data sections: Basic Settings, Tax Types, Account Assignment, Calculation Rules

Data SectionFI InvolvementNotes
Basic Tax Code Settings◎ OwnerTax Code, Description, Country assignment
Tax Types and Rates◎ OwnerTax Type (MWST, MWAS, MWVS), Tax Rate %, Tax Jurisdiction
GL Account Assignment◎ OwnerInput Tax Clearing, Output Tax Clearing, Expense Capitalization accounts
Tax Calculation Rules◎ OwnerTax Base calculation, Rounding rules, Cash Discount treatment
Tax Reporting Configuration◎ OwnerTax Report assignment, Tax Code grouping for statutory reporting
Integration with MM/SD○ Shared with MM/SDDefault Tax Code in Vendor/Customer Master, Tax determination via condition technique (SD only)

Legend: ◎ = Owner / Critical, ○ = Direct involvement


2.1 Basic Tax Code Settings

Checklist of key Tax Code basic settings: Tax Code, Description, Country Code, EU Triangulation flag, Validity Period

Basic Tax Code settings define the identity and scope of the Tax Code. These fields are maintained in transaction FTXP at the Country Code level.

FieldDescriptionPractical Usage
Country CodeCountry key (JP, US, DE, …)Scopes the Tax Code to one country. A Tax Code defined for JP cannot be used on a transaction involving a US Company Code. For multi-country projects, confirm the Country Code design early — one Tax Code catalog per country is standard, but some global templates merge similar tax regimes (e.g., ASEAN countries) into shared catalogs.
Tax Code2-character codePrimary identifier. Must follow the agreed naming convention (first character = tax type, second character = rate). Examples: I1 (Input Tax 10%), O5 (Output Tax 5%), V8 (Non-Deductible Input Tax 8%), Z0 (Exempt). SAP enforces uniqueness within a Country Code.
DescriptionShort textFree-text description displayed at data entry (e.g., “Input Tax 10% (Standard Rate)”). Include the rate and tax type in the description to prevent user selection errors. Avoid cryptic abbreviations — buyers and AP clerks reference this field daily.
Tax Percentage RateOverall tax rate (%)Summary field shown in FTXP. Auto-calculated from the sum of all Tax Type rates assigned to this Tax Code. For most Tax Codes, this is a single rate (e.g., 10%). For US local sales tax, this may be a composite rate (State 5% + County 1% + City 0.5% = 6.5%).
EU TriangulationEU triangulation flagApplicable only for EU localization. Set for Tax Codes used in EU triangular trade (A ships to B via C). Activates additional posting logic and VAT reporting fields. Japan and US implementations leave this blank.
Reverse ChargeReverse charge flagWhen checked, both Output Tax and Input Tax postings are generated in the same transaction. Used for EU intra-community purchases and US Use Tax scenarios. Requires both Input Tax and Output Tax GL accounts to be assigned to the Tax Type.
Tax Code BlockedBlocked flagPrevents new transactions from using this Tax Code. Use for Tax Codes that have been superseded (e.g., after a tax rate change) but must remain visible for historical reporting. Do not delete Tax Codes referenced in posted documents — block them instead.

2.2 Tax Types and Rates

Stack layered diagram grouping Tax Types by posting behavior: Input Tax (MWST), Output Tax (MWAS), Non-Deductible (MWVS), and Composite Tax Types

The Tax Type defines the accounting behavior of the tax transaction. Each Tax Code references one or more Tax Types, each with its own rate and GL account assignment.

FieldDescriptionPractical Usage
Tax Type4-character code (MWST, MWAS, MWVS, …)Determines the posting logic. MWST = Input Tax (deductible), MWAS = Output Tax (payable), MWVS = Non-Deductible Input Tax (capitalized), NAV = Non-Deductible portion of partially deductible tax. SAP delivers standard Tax Types per country localization — use them unless custom Tax Types are required (rare except for multi-jurisdiction US implementations).
Tax Percentage RateRate for this Tax Type (%)The rate applied to the tax base. For Japan: 10% (standard), 8% (reduced — food, newspapers), 0% (exports). For composite Tax Codes (e.g., US local sales tax), multiple Tax Types can be assigned, each with its own rate — system sums them to calculate total tax.
Account KeyPosting key for GL assignmentLinks the Tax Type to the GL Account Assignment table (transaction OB40). Standard keys: MWS (Input Tax), VST (Output Tax), NVV (Non-Deductible Expense posting). Custom account keys can be created for complex tax scenarios (e.g., split posting for partially deductible tax).
Posting LevelPosting granularityControls whether tax is posted per line item or per document total. “Per Line Item” is standard for most scenarios (tax calculated and posted for each invoice line independently). “Per Document” is used for cash-basis accounting or tax-inclusive pricing scenarios where tax must be derived from the total, not calculated per line.

2.3 GL Account Assignment

Two-column comparison showing GL account flow for Input Tax vs Output Tax posting

The GL Account Assignment determines which accounts the tax amount is posted to. This configuration is maintained in transaction OB40 (or FTXP integrated view).

FieldDescriptionPractical Usage
Chart of AccountsChart of Accounts keyTax account assignments are defined per Chart of Accounts. For global projects with a shared Chart of Accounts, a single GL assignment applies to all Company Codes using that chart. For multi-chart projects, each chart requires separate tax account configuration.
Input Tax AccountGL Account for Input Tax ClearingExample: 1171 (Input Tax Clearing). Debit balance. Accumulates deductible tax paid on purchases. Cleared monthly via tax return posting (transaction F-47) when tax is offset against Output Tax.
Output Tax AccountGL Account for Output Tax ClearingExample: 2171 (Output Tax Clearing). Credit balance. Accumulates tax collected on sales. Cleared monthly via tax return posting when payment is remitted to tax authorities.
Tax Expense AccountGL Account for Non-Deductible TaxExample: 5420 (Non-Deductible Consumption Tax Expense). Used when the Tax Type is MWVS (Non-Deductible Input Tax). Tax amount is posted as expense or capitalized into the asset/material cost, not to the tax clearing account.
Tax on Sales/Purchases AccountSplit posting for partially deductible taxFor countries with partial deductibility rules (e.g., company cars with 50% deductible tax), SAP splits the tax amount between Input Tax Clearing (deductible portion) and Expense (non-deductible portion). Requires additional Tax Types (NAV) and account keys to be configured.

Prerequisite: GL Accounts assigned to Tax Codes must have the correct Tax Category set in FS00. Input Tax Accounts require Tax Category “+”, Output Tax Accounts require Tax Category “*”. Mismatched Tax Categories cause posting failures at runtime with message “Tax Code X not allowed for GL Account Y.”


2.4 Tax Calculation Rules

Stack layered diagram showing tax calculation flow: Tax Base → Tax Rate → Rounding → Cash Discount Adjustment → Final Tax Amount

Tax Calculation Rules define how the tax amount is computed from the transaction amount. These settings are maintained in transaction OBCL and FTXP.

FieldDescriptionPractical Usage
Tax Calculation ProcedureCalculation methodStandard procedure: Tax = (Net Amount × Tax Rate) / 100. Alternative procedures available for tax-inclusive pricing (Gross Amount includes tax — system back-calculates net amount) and US-style sales tax (tax on tax for composite rates). Japan uses standard procedure. US implementations often require custom tax procedures for city + county + state tax compounding.
Rounding RuleRounding precisionStandard: round to currency precision (JPY = 0 decimal places, USD = 2 decimal places). Custom rounding rules can be defined for specific tax jurisdictions (e.g., round down for all tax calculations, round to nearest 5 cents). Mismatched rounding between SAP and vendor invoices causes payment discrepancies.
Tax BaseBase amount for tax calculationStandard: Net Amount (before tax). Alternative: Gross Amount (tax-inclusive — system derives net amount by reverse calculation). For MM, the tax base is the PO line Net Value. For SD, the tax base is the Pricing Procedure subtotal at the tax condition step (typically net price after all discounts).
Cash Discount and TaxCash discount treatmentControls whether cash discount is deducted from the tax amount when early payment discount is taken. Japan standard: cash discount reduces the tax base (tax is recalculated on the reduced amount). EU standard: cash discount does not reduce the tax amount (tax is calculated on the original invoice amount). Set via Country Code customizing (transaction OBCL, “Tax amount affected by cash discount” flag).
Tax Amount AdjustmentManual tax adjustment flagWhen checked, users can manually override the calculated tax amount on the document line. Strongly discouraged except for exceptional one-time corrections. Manual overrides bypass automatic tax calculation and cause tax reporting discrepancies. Require explicit approval workflow if enabled.

2.5 Tax Reporting Configuration

Hierarchy tree showing Tax Code grouping for statutory reporting: Tax Report → Tax Code Group → Individual Tax Codes

Tax Reporting Configuration groups Tax Codes for statutory tax return preparation and audit reporting. This configuration is maintained in transaction S_ALR_87012357 (Tax Reporting) and the Tax Code master (FTXP).

FieldDescriptionPractical Usage
Tax Report AssignmentTax report categoryEach Tax Code is assigned to one tax report category (e.g., “Domestic Sales — Standard Rate,” “Domestic Purchases — Standard Rate,” “Exports — Zero-Rated”). The category determines which line of the statutory tax return (e.g., Japan National Tax Agency JCT-100 form) the Tax Code’s amounts are aggregated into. Confirm the mapping during blueprint with the tax compliance team.
Tax Jurisdiction CodeSub-national tax jurisdictionUsed in US, Canada, and other federal systems where tax is owed to multiple jurisdictions (federal, state, county, city). Each Tax Code can be assigned to one or more jurisdictions. SAP aggregates tax amounts by jurisdiction for remittance and reporting. Japan does not use jurisdiction codes (single national consumption tax).
Tax Code GroupReporting groupingCustom grouping for management reporting (e.g., “All Input Tax Codes,” “All Reduced Rate Output Tax”). Used in SAP Query, BW extractors, and custom ABAP reports. Does not affect statutory reporting — only for internal analytics.
Exempt Certificate TrackingTax exemption documentationFor US sales tax exemption scenarios (e.g., resale certificates, non-profit exemptions), SAP can store the exemption certificate number linked to the Tax Code. When a Tax Code flagged as “Exempt” is used, the system can optionally require the user to enter the certificate number at transaction time. Prevents improper use of exempt Tax Codes.

2.6 Integration with MM/SD

Two-column comparison showing Tax Code determination flow in MM (Vendor Master default) vs SD (Material + Customer Tax Classification via condition technique)

Tax Code integration with MM and SD determines how the Tax Code is automatically proposed on purchasing and sales documents, reducing manual entry errors and ensuring tax compliance.

Integration PointDescriptionPractical Usage
Vendor Master Default Tax CodeDefault Input Tax Code stored in Vendor Master (XK02, Accounting View)Automatically proposed on vendor invoices (FB60, MIRO, MM invoice verification). Overridable at line-item level. For multi-country vendors, the default Tax Code must match the vendor’s country — confirm during vendor master data governance design whether one Tax Code covers all purchasing organizations or whether purchasing-org-specific defaults are required.
Customer Master Default Tax CodeDefault Output Tax Code stored in Customer Master (XD02, Billing View)Proposed on customer invoices (FB70). Note: SD billing typically does NOT use this field — SD derives the Tax Code via the Pricing Procedure using Material Tax Classification + Customer Tax Classification (see below). The Customer Master default is only used for standalone FI AR invoices outside of SD.
Material Tax Classification (Sales)Material Master Sales View field TAKLV / TAXKMCombined with Customer Tax Classification to determine the Tax Code via condition technique (transaction VK12, condition type MWST). Example: Material Classification “1” (taxable goods) + Customer Classification “0” (domestic, taxable) → Tax Code O1 (Output Tax 10%). This is the standard SD tax determination method.
Purchase Info Record Default Tax CodeTax Code stored in Purchasing Info Record (ME12)Proposed on PO line items created from the PIR. Overrides the Vendor Master default when the PIR is used. For vendor-material combinations with special tax treatment (e.g., imported materials subject to Use Tax), maintain the correct Tax Code in the PIR to ensure automatic compliance.
Tax Code Determination in MM Invoice VerificationMIRO tax code proposal logicMIRO proposes the Tax Code from: (1) PO line item if the invoice references a PO, or (2) Vendor Master default if no PO reference. Users can override manually. For non-PO invoices, the Vendor Master default is critical — ensure it is maintained correctly for all active vendors.
Tax Code Determination in SD BillingVF01 tax code determination via Pricing ProcedureSD billing uses the Pricing Procedure to calculate tax. The tax condition type (typically MWST) calls the tax determination logic, which combines Material Tax Classification (TAKLV) and Customer Tax Classification (TAXKD) to find the Tax Code via condition table A003 (transaction VK12). The determined Tax Code is used to calculate the tax amount and post to the GL accounts. Critical design choice: confirm whether tax is determined per line item (standard) or per document (alternative for tax-inclusive pricing).

Prerequisite: For SD tax determination via condition technique to work, the following must be configured: (1) Pricing Procedure must include a tax condition type (e.g., MWST) at the correct step, (2) Condition table A003 (or custom table) must be maintained via VK12 with Material Tax Classification × Customer Tax Classification → Tax Code mappings, (3) Material Master Sales View and Customer Master Billing View must have the Tax Classification fields populated. Missing any of these causes SD billing to fail with “Tax Code could not be determined.”


L1) Big Picture

IDCategoryTitle
fi-001OverviewWhat is SAP FI?

L2-A) Master Data

IDCategoryTitle
fi-a01OverviewSAP FI Master Data: Overview, Hierarchy & Relationships
fi-a02-01Master DataSAP FI Material Master
fi-a03-01Master DataSAP FI Chart of Accounts
fi-a03-02Master DataSAP FI G/L Account
fi-a04-01Master DataSAP FI Payment Terms
fi-a04-02Master DataSAP FI Tax Code 📍
fi-a06-01Master DataSAP FI Bank Master
fi-a06-02Master DataSAP FI House Bank
fi-a07-01Master DataSAP FI Asset Class
fi-a07-02Master DataSAP FI Depreciation Key
fi-a07-03Master DataSAP FI Asset Master

L2-B) Transaction

IDCategoryTitle
fi-b01OverviewSAP FI Transactions: Process Flow, Hierarchy & Relationships