Analytics Catalog/SAP S/4HANA/Transaction Tax/Withholding Tax
Explore the catalogTax RegisterBSETAccounts PayableCDS viewsExtraction
SAP S/4HANA · Transaction Tax (FI-Tax)

Withholding Tax

Tax withheld from vendor payments — by withholding type, code, and vendor — the base, the rate, and the amount, built on WITH_ITEM (extended withholding tax).

Sample build of the Withholding Tax report — tax withheld by type, code, and vendor, reconciled to the withholding G/L account, and rendered tool-neutral so it runs in Power BI, SAC, or Tableau.

Withholding Tax sample
Q2 2026 · vendor withholding
Filters
Company code
1010
Tax period
Apr–Jun 2026
Withholding type
All
Vendor
All
1.00M
Withholding base
80K
Tax withheld
3
Vendors
2
Types
Type · codeVendorBaseRateWithheld
IN01 · ContractorAcme Supply500,00010%50,000
IN01 · ContractorBeta Works300,00010%30,000
IN02 · ProfessionalGamma Pro200,0000%0
AI Analyst · active
reading

Tax withheld from vendor payments by withholding type and code — the base, the rate, and the amount withheld from each vendor, to be remitted to the authority.

flag

Gamma Pro (type IN02) has 200K of base but 0 withheld — the rate on the WITH_ITEM line is blank while the withholding code is configured at 5% (SAP KBA 1773154). Source the rate from config and confirm the withholding actually posted.

root cause & next step

The rate (QSATZ) can be empty on the line even when the code carries a rate in config (T059Z). Reconcile the withheld amount to the withholding G/L account and to each vendor's certificate / return before remitting.

Illustrative data · reconciled to the withholding G/L account · runs on your warehouse. See it live →
WITH_ITEM · withholding+BSEG · vendor line────▶Withholding Tax

The report's query logic — generic SQL on WITH_ITEM, the withholding line-item table. It sums the base and withheld amount by withholding type, code, and vendor. The same SQL becomes a dbt model in your warehouse.

How it interconnects: WITH_ITEM carries one row per withholding type per FI line, joined to BSEG for the vendor on that line. The rate (QSATZ) can be blank on the line even when the code is configured with a rate — so the rate is sourced from config (T059Z), not always the line.
SQL data set · genericized · parameterized · withheld by type, code & vendor, reads WITH_ITEM
Show / hide SQL
SELECT  w.witht                          AS wh_type,
        w.wt_withcd                      AS wh_code,
        s.lifnr                          AS vendor,
        SUM(w.wt_qsshb)                  AS wh_base,
        SUM(w.wt_qbshb)                  AS wh_tax
FROM    with_item w
JOIN    bseg s ON s.bukrs = w.bukrs
             AND s.belnr = w.belnr
             AND s.gjahr = w.gjahr
             AND s.buzei = w.buzei          -- the vendor line the withholding sits on
WHERE   w.bukrs = :P_COMPANY_CODE
  AND   w.gjahr = :P_FISCAL_YEAR
GROUP   BY w.witht, w.wt_withcd, s.lifnr
ORDER   BY w.witht, s.lifnr;
:P_COMPANY_CODE :P_FISCAL_YEAR
Never any customer schema. The withheld amount must reconcile to the withholding G/L account and to each vendor's certificate / return. Watch the rate: if QSATZ is 0 on the line but the code is configured with a rate, the withholding may not have posted (SAP KBA 1773154).

The data-warehouse model — one fact surrounded by conformed dimensions (what you slice by) and measures (what you aggregate), expressed as dbt so it migrates with you. Grain: one row per withholding line (document · type).

dim_wh_typetype · code · rate dim_vendorsupplier · BP dim_company_codeentity · country dim_dateposting · tax date fct_withholdingfact · one row per withholdingbase · withheld
●— fact → dimension join
ElementTypeDefinition
dim_wh_typedimensionWithholding type & code (WITHT · WT_WITHCD) — the rate and basis
dim_vendordimensionThe supplier the tax was withheld from (LIFNR / Business Partner)
dim_company_codedimensionReporting entity & country for the return
dim_datedimensionConformed calendar — posting date
wh_basemeasureWithholding base amount the tax is calculated on (WT_QSSHB)
wh_taxmeasureAmount withheld and remitted to the authority (WT_QBSHB)
rateattributeWithholding rate — sourced from config (T059Z), not always the line
Runs on your cloud warehouse — Snowflake, BigQuery, Redshift, or Synapse on AWS, Google Cloud, or Azure. Reconciled to the withholding G/L account — 0% variance by design. You own the code, the model, and the data.
How the data gets here: a SAP-compliant extract of WITH_ITEM joined to BSEG — via SLT or Table/Table-CDC — never ODP-RFC (prohibited under SAP Note 3255746, blocked June 2026). See the extraction pattern & data flow →
See the complete model
How this report's tax fact and dimensions fit the full owned model, via conformed keys.
Transaction Tax data model → Enterprise model →

Every source object behind this report. Each linked object has its own page — with its fields and its real S/4HANA status, so you build on the right thing.

ObjectRoleKey fieldsS/4HANA status
WITH_ITEMWithholding-tax info — one row per withholding type per FI line (WITHT · WT_WITHCD)5 PK · base/amtTransparent table
BSEGThe vendor line the withholding sits on — supplier (LIFNR)BUKRS · BELNR · GJAHR · BUZEITransparent table
BKPFDocument header — posting date, document typeBUKRS · BELNR · GJAHRTransparent table
T059ZWithholding tax codes (Customizing) — the rate (QSATZ) behind each codeconfigCustomizing table
T059PWithholding tax types (Customizing) — gross vs net, accumulationconfigCustomizing table
I_OperationalAcctgDocItemReleased vendor/customer line view — supplier & payment contextreleasedReleased CDS view
LFBWVendor withholding-tax master — which types apply to a supplierreferenceTransparent table
Key fields = the primary key plus the columns this report selects; S/4HANA status = whether the object is a live transparent table, a released CDS view, a Customizing table, or a standard report. Extract the released CDS view or the transparent table directly — never via ODP-RFC.
Want this built & owned?
A reconciled, customer-owned withholding-tax layer on WITH_ITEM, on your cloud — by type, code, and vendor, your team owns the code. Ten-day proof of concept.
Download the tax pack → Talk to us →