Every module posts to FI.
Materials, sales, production, payroll — whatever happens in SAP, the financial truth lands in FI (Financial Accounting): the external, statutory, tax-facing ledger. CO is the internal mirror. You are joining the Tax & Special Products area of FI.
Click (or focus + press Enter on) the FI card to see where you sit.
The ledger, then the two taxes you configure.
FI breaks into sub-ledgers that all roll up into the General Ledger. As a Tax consultant you live mostly in FI-GL plus the tax engine that sits on top of postings.
General Ledger
The single source of statutory truth. Every sub-ledger and module posts here. GL master records live in FS00.
Accounts Payable
What you owe vendors. Vendor invoice = FB60; outgoing payment = F-53. Input VAT & WHT attach here.
Accounts Receivable
What customers owe you. Customer invoice = FB70. Output VAT attaches here; open items & dunning live here.
The two taxes an FI consultant configures
Tap a card (or focus + Space/Enter) to flip it.
- Tax codes defined in FTXP
- Account determination in OB40
- Thai calculation procedure TAXTH
- Filed monthly on PP30
at payment
- WHT Type + Code (define + link in SPRO)
- Assigned on the vendor/customer master
- Filed on PND 3 / 53 / 54
- Use Extended, never Classic
Before the postings: the structure they hang on.
Every number in FI is the child of an organisational unit and a master record. Get those wrong and no amount of correct configuration saves you — which is why this is the first thing to establish on an unfamiliar system, and the first thing to ask about in a defect.
Organisational units
| Unit | What it is | Why a tax consultant cares | Table |
|---|---|---|---|
| Client | The whole SAP system instance. | Configuration is usually client-wide — a change you make is a change everyone sees. | T000 |
| Company code | The legal entity that files its own financial statements. | Carries the country (LAND1) that decides the tax procedure, and the company-code currency the return is filed in. |
T001 |
| Chart of accounts | The list of G/L accounts shared by company codes. | Tax accounts live here; one chart serves many company codes, so an account change is rarely local. | T004 / SKA1 |
| Controlling area | The Controlling umbrella, with one currency. | Binds cost objects to company codes — relevant when a tax line needs a cost assignment. | TKA01 |
| Segment | The IFRS 8 reporting dimension, usually derived from the profit centre. | What document splitting pushes onto balance-sheet lines so a balance sheet can be produced per dimension. | FAGL_SEGM |
| Business place | The branch used for tax filing in Thailand and India. | Thai VAT is reported per registered branch, printed as five digits — 00000 is head office. | J_1BBRANCH |
| Plant / purchasing org / sales org | Logistics units attached to the company code. | Where the tax code on a purchase or a sale is first determined, before FI ever sees it. | T001W etc. |
A tax code belongs to a country, not to a company code. The chain is
company code → T001-LAND1 → tax procedure → tax code. Every company code in the
same country shares one set of codes, so "can we have a different V7 for this entity?" has a
one-word answer, and the real solution is a different code, not a different rate on the same one.
Master data
| Object | What it carries that matters to tax | App | Tables |
|---|---|---|---|
| G/L account | Two levels: chart-of-accounts (type, P&L vs balance sheet) and company-code (currency, tax category, open-item and line-item management, reconciliation type). The tax category is what permits — or refuses — a tax code on a posting. | FS00 | SKA1, SKB1 |
| Business Partner | One master carrying both supplier and customer roles, with tax numbers, bank details and — per company code — the withholding data: types allowed, the liable flag, default code and recipient type. | BP | BUT000, LFA1/LFB1, KNA1/KNB1, LFBW |
| Cost centre / profit centre | The Controlling objects a P&L line is assigned to. The profit centre carries the segment, so it is the usual origin of the reporting dimension on a split line. | KS01 / KE51 | CSKS, CEPC |
| Asset | Asset class, depreciation areas (book, local GAAP and tax, each in its own currency or ledger), useful life, cost centre. | AS01 / AS03 | ANLA, ANLB, ANLZ |
| House bank | Used by the payment programme and bank statement — and, for electronic withholding, the bank that remits the tax and reports it to the authority. | FI12 | T012 |
LFBW, it is maintained per company code, and when it is off nothing is
withheld no matter how correct the type, the code and the accounts are.
Structure first, configuration second, posting third. That is also the order to debug in — master data exists → configuration is right for this company code → what was actually posted. Working it in any other order is the most reliable way to waste a day. See the reading method on the document simulator.
What you configure, when you operate, how you frame it.
Three views of the role: the things you set up, the project phases you support, and the honest bridge from your XeerSoft delivery to SAP language.
| What | Where | Notes |
|---|---|---|
| Tax codes (VAT in/out) | FTXP | Rate, type, target accounts under TAXTH |
| Tax account determination | OB40 | Which GL account each tax transaction key posts to |
| WHT types & codes | SPRO | Extended WHT; assigned on vendor/customer master |
| Special / tax GL master | FS00 | The GL accounts the tax engine posts into |
| Phase | What happens | Your focus |
|---|---|---|
| Realize / Test | Config built & unit/integration tested | You join late-Realize — understand what's configured |
| Cutover | Master data & open items migrated | Support tax-relevant cutover & validation |
| Go-live | System runs in production | Watch first live tax postings |
| Hypercare | Intensive post-go-live support | Triage tax/posting issues with the team |
You arrive late in Realize. The job is to understand what's already configured and support test & cutover — not to redesign the tax solution.
| Your XeerSoft delivery | Maps to SAP concept |
|---|---|
| POS-to-accounting auto posting | Automatic account determination + tax posting (OB40) |
| GL mapping | Tax GL configuration |
| AR open-item & dunning | FI-AR open items + output VAT |
| Multi-branch consolidation | Company-code structure |
See the delivery behind it — 6 capabilities, verified with real results →
Build a Thai VAT code the way SAP wants it.
Understanding tax is one thing; making SAP post it correctly is the job. This is the chain every FI tax consultant walks — define the code, point it at a GL account, post with it, then file it. Step through it.
Define the tax code
- What
- Create an output-VAT code (say O7) carrying the 7% rate and the output-tax transaction key MWS.
- Where
- FTXP → tax country TH → code O7 → tax type A (output), 7%.
- Result
- A reusable code that any FI/SD document can pick to have VAT computed automatically.
Codes, keys and transactions here are the real SAP FI mechanism — shown as a methodology walkthrough, not a claim of a configured production system.
Now post with it — the journal SAP builds.
A tax code only earns its keep when a document posts through it. Pick a scenario and a base amount: the FI document balances itself, and the lines the State collects glow orange.
| Account | Debit | Credit | Key |
|---|
A customer invoice posts the receivable gross; the output-VAT line is a liability you collect for the State and remit on PP30.
Month-end close, the FI consultant's core cycle.
Tax config is where you start; the close is where an FI consultant lives every period. From sub-ledger close to signed financial statements — press Run close ▸ to walk the sequence, or tick items yourself.
A representative FI close sequence for S/4HANA; the exact steps and cadence vary by client. Tax filing (PP30 / PND) is the tax consultant's line in it.
Which return does this posting end up on?
Configuration is only half the job. The other half is knowing which form the amount lands on — because the same service, at the same rate, goes to three different returns depending on who was paid. That single fact decides more of a Thai tax design than the rate ever does.
Withholding: the payee decides the form
| Form | Payee | Typical income | Frequency |
|---|---|---|---|
| ภ.ง.ด.1 · PND1 | Employees and individuals under s.40(1)(2) | Salary, fees | Monthly |
| ภ.ง.ด.1ก · PND1 Kor | Same, annual summary | Year totals | Annual, by end February |
| ภ.ง.ด.2 · PND2 | Individuals under s.40(3)(4) | Royalties, interest, dividends | Monthly |
| ภ.ง.ด.2ก · PND2 Kor | Same, annual summary | Year totals | Annual |
| ภ.ง.ด.3 · PND3 | Thai individuals | Services, rent | Monthly |
| ภ.ง.ด.53 · PND53 | Thai juristic persons | Services, rent | Monthly |
| ภ.ง.ด.54 · PND54 | Foreign companies not carrying on business in Thailand | Services, royalties, interest | Monthly |
The payee type is the recipient type (QSREC) on the
withholding line, defaulted from the business partner's company-code withholding data in
LFBW. The income type sits on the withholding code (T059Z).
Between them they route the amount to the right form — so a return that is missing amounts is
usually a recipient-type or income-type problem, not a rate problem.
See the withholding line field by field →
VAT: two returns, one of which surprises people
ภ.พ.30 · P.P.30
The monthly VAT return, filed per registered branch. Output VAT less input VAT. Standard rate 7%, set by decree and extended periodically — always confirm the current decree rather than assuming.
ภ.พ.36 · P.P.36
Reverse charge on imported services. The Thai payer self-assesses the VAT, pays it, and may then claim it as input VAT on the next P.P.30. Net cost nil, two filings, easy to miss entirely.
50 ทวิ · 50 Tawi
The withholding certificate handed to the payee, with an attachment listing each payee on the return. Under e-withholding the bank deducts, remits and reports electronically, and no paper certificate is issued.
Two mechanical rules sit underneath all of this and are worth committing to memory:
- The withholding base excludes VAT. On a 100,000 invoice with 7% VAT, 3% withholding is 3,000 — not 3,210. Calculating it on the gross overstates every certificate you issue.
- Foreign-currency amounts are converted to baht at the Bank of Thailand rate of the previous business day (T‑1) for Thai tax reporting. That is a different rate from the one the document posted with, which is why a tax report and a G/L balance can disagree by a few baht and both be right.
Gross-up: when the company absorbs the tax
Sometimes a contract promises the supplier a net amount, so the company bears the withholding itself. The arithmetic is not what most people guess — you are paying tax on the tax:
| On an invoice of 100, WHT 3% | Normal | “One cycle” (wrong) | True gross-up |
|---|---|---|---|
| Withholding | 100 × 3% = 3.00 | 100 × 3/100 = 3.00 | 100 × 3/(100 − 3) = 3.09 |
| Supplier receives | 97 | 100 | 100 |
| Who bears it | The supplier | — | The company |
The offsetting account for the tax the company bears is configured in OBWW alongside the withholding payable account. Run a payment with gross-up on the document simulator → and watch the withheld amount move from 3,000 to 3,092.78 while the supplier still receives the full invoice.
Thai tax points here are summarised for study. Rates, deadlines and decrees change — verify against the current Revenue Department rules before relying on any of them.
Upstream oil & gas is taxed under its own Act.
An upstream operator — Exploration & Production — is not taxed like a normal company; it carries a stack of petroleum-specific levies instead of ordinary corporate income tax. Pick a stage of the value chain to see who sits there and which taxes apply.
Excise (oil excise tax) applies to downstream refined products (diesel, gasoline) at refineries and retail sites. It is NOT an upstream tax. PITA covers upstream E&P only; downstream companies pay normal CIT 20%. Excise ≠ upstream E&P.
The petroleum tax waterfall
Start at ฿100 of petroleum profit. Press Drain ▸ to peel off each layer the State takes.
- Rate & base
- 5–15% sliding scale on gross revenue by production volume (deepwater discount). Under a PSC: fixed 10% of gross.
- Deductible?
- Yes — expensed, which lowers the PITA base.
- Who collects
- DMF (Department of Mineral Fuels).
- SAP note
- A cost/royalty posting via GL account determination — not a sales/purchase tax code in FTXP.
- Rate
- Windfall tax 0–75% (ceiling 75% of petroleum profit).
- Applies to
- Thailand III concessions only — a PSC has no SRB. Paid only in years with petroleum profit.
- Base
- Uses "income per metre of well" + a geological factor. Adopted 1989.
- Deductible?
- Yes — deductible (expensed).
- SAP note
- A specialised periodic computation/posting — provisioned in GL, not a standard tax code.
- Rate
- Concession = 50% of net profit; PSC = 20%. Thailand's major Gulf gas blocks moved to the PSC regime in 2019. Separate Act from normal CIT.
- Interest
- Not deductible. Loss carry-forward 10 accounting periods; no carry-back.
- Currency / pricing
- May adopt USD functional currency. Exports use the higher of realised or "tax reference" price.
- Why it matters in SAP
- Concession and PSC blocks are taxed under different rates, so the tax regime becomes a reporting dimension — typically derived from profit center into Segment.
- SAP note
- An income-tax provision on net profit — period-end posting, not a transactional tax code.
Combined government take ≈ 67% of petroleum profit (Wood Mackenzie shallow-water, medium-cost example) vs a global average ≈ 58%. The waterfall above is illustrative — actual take varies by field and contract.
Eight cards. Answer before you flip.
Tap the card (or focus + Space/Enter) to reveal the answer. Use ◂ ▸ or the arrow keys to move through the deck.