← หน้ารวม (Hub) Client FI design →
Foundation ANONYMIZED · PUBLIC EDITION covers TAX-301

Withholding Tax
Extended WHT engine · TH flow · e-WHT · WHT FX adjustment

L4 · 01.01.07.03 Scope · TH · MY · MM Objects · RPT-1 · FRM-1 · ENH-1 · FRM-2

Source: knowledge base tax-fundamentals (STD) · 10-client-fi-design §8 · BPE KDS · course TAX-301 (4-Jun-2026) · 20-role-wricef-owner (shared engine)

ภาษีใน SAP มีสองเครื่องยนต์: tax code (VAT คิดตอน invoice → BSET) และ Extended Withholding Tax (หัก ณ ที่จ่าย ส่วนใหญ่คิดตอนจ่าย → WITH_ITEM) · หน้านี้คือเครื่องยนต์ตัวที่สอง — ตั้งค่าอะไร, ไหลยังไง, ออกแบบ/ไฟล์จากไหน และทำไมต้องมีโปรแกรมปรับ FX (ENH-2)
Key takeaways
1

Extended WHT engine STD

ObjectความหมายTable
WHT typeเมื่อไร/อย่างไร: ที่ invoice หรือ payment · base type · rounding · postingT059P
WHT codeอัตรา (QSATZ) · ประเภทเงินได้ (QEKAR) · textT059Z / T059ZT
Recipient typeผู้รับเป็นใคร (บุคคล · บริษัท · ต่างประเทศ) → แบบไหนWITH_ITEM-QSREC, LFBW
Vendor WHT datatype ที่อนุญาต · liable flag · default code · recipient type ต่อ CoCdLFBW
2

WHT types & codes ของ Client BP KDS

Global digit map (ใช้กับ MY / MM / overseas)
WHT type · หลัก 1A = deduct at invoice · B = deduct at payment
WHT type · หลัก 2recipient: 0 res-corp · 1 res-ind · 2 non-res-corp · 3 non-res-ind (MY/MM ใช้ nature of payment)
WHT code · หลัก 1A standard · D DTA · G gross-up std · H gross-up DTA · I gross-up 1-cycle std · J gross-up 1-cycle DTA
WHT code · หลัก 2ลำดับตาม nature of payment (rate %)
Thailand (ตั้งตามเลขแบบ ภ.ง.ด.)
  • PND1 1A/1B/1D/1E · PND2 2A · PND3 3A–3F · PND53 4A–4F · PND54 5A/5D (+ 5G gross-up บนเอกสาร TBC)
  • Recipient type: 01 PND1 · 02 PND2 · 03 PND3 · 53 PND53 · 54 PND54
  • WHT codes กำลัง redesign — list สุดท้ายในคอร์ส TAX-405 (G5)

กฎออกแบบ type / code (WHT design deck s2–5) BP

WHT TYPE = 1 ตัวต่อ 1 ชุดของ 3 มิติ
  1. จุดหัก — invoice หรือ payment
  2. e-WHT? — ใช่ = type แยก ไม่มี certificate numbering
  3. Recipient type / PND — 01 · 02 · 03 · 53 · 54

เก็บที่ BP พร้อม recipient type · BP มีได้หลาย type แต่ ไม่เก็บ WHT code

WHT CODE = 1 ตัวต่อ income type
  1. Income type — 1 code ต่อ 1 ประเภทเงินได้
  2. Posting indicator — “Deducted & Gross Up” กับ “Gross Up – One Cycle” แยก type + code กัน

กรอกตอน AP invoice (tab WHT) → SAP คำนวณยอดแล้ว post · open point: code ที่แยก 01/02/03 มี setting เหมือนกันต่อ income type — “for further discussion”

InteractiveType × Code builder — เลือกมิติ แล้วดูว่าอะไรอยู่ที่ BP อะไรกรอกตอน invoice และ downstream ได้อะไร
Type ① จุดหัก
Type ② e-WHT
Type ③ Recipient type
Code · Posting indicator
อยู่ที่ BP
กรอกตอน AP invoice
Downstream

    ไม่ได้บอกเลข type / code จริง — เลขตัวจริงดูที่ ตารางด้านบน และ list สุดท้ายของคอร์ส TAX-405 · แบบ / ไฟล์ตามเลข recipient มาจาก DRC forms deck + FUT board (Jul-2026)

    CountryWHTเมื่อไรหมายเหตุ
    MY MY01BA–BEat paymentMY resident คาดว่าไม่มี WHT verify BP
    MM MM01B0 resident · B2 non-residentat paymentDTA codes D1 8% · D2 10% · D3 5% · D4 10% · H1 8% · H2 10% · H3 5% · H4 10% → certificate TAX-FRM-2
    3

    Normal vs gross-up (invoice 100, WHT 3%) STD

    NormalGross-up “one cycle”Gross-up (true)
    WHT100 × 3% = 3.00100 × 3/100 = 3.00100 × 3/(100 − 3) = 3.09
    Vendor ได้รับ97100100
    Payment JEDr Vendor 100 / Cr Bank 97 / Cr WHT payable 3Dr Vendor 100, Dr WHT expense 3 / Cr Bank 100, Cr WHT payable 3เหมือนกันด้วย 3.09
    InteractiveGross-up calculator — ลองเปลี่ยนตัวเลขแล้วดู JE ตอนจ่าย
    ยอดก่อน WHT (ไม่รวม VAT)
    อัตรา WHT %
    วิธี (posting indicator)
    WHT
    Vendor ได้รับ
    เงินออกจาก bank ให้ vendor
    ต้นทุนรวมของบริษัท
    bank ให้ vendor + WHT ที่นำส่ง RD
    AccountAmountหมายเหตุ

    WHT base ไม่รวม VAT · เดือนถัดไปตอนนำส่ง: Dr WHT payable / Cr Bank (RD) · บัญชี: WIT = WHT payable (OBWW) · GRU = gross-up offsetting entry · ปัดเศษ 2 ตำแหน่ง

    Gross-up = บริษัทรับภาระ WHT แทน vendor → เกิดขา Dr WHT expense · ใน code ตระกูล G / H (true) และ I / J (one cycle) · ไทย PND1/1A ใช้ GA/G1 · PND3/53 ใช้ GB–GE, G2–G5

    4

    TH WHT process flow

    Swimlane ตามบทบาท (6 ขั้นตามคอร์ส · เส้นสีน้ำตาล = handoff)

    System (SAP)
    Bank / e-WHT
    Tax Team
    Revenue Dept
    1
    Auto WHT exchange-rate update
    batch ปรับ rate ตามวันจ่ายจริง
    ZTAXA_R03doc SWA212X021
    2
    Paper → ออก 50 ทวิ
    FRM-3 output group AP1 · ส่งให้ vendor
    2
    e-WHT → ธนาคารออกหลักฐาน
    HSBC / BOFA · ไม่ออก 50 ทวิ ผ่าน DRC
    3
    รวบรวมรายเดือน
    ตาม vendor + code
    4
    รายงาน / ใบแนบ / text files
    RPT-7 · FRM-4 · FRM-1 · ENH-1 · RPT-1 · ENH-6/079
    5
    กระทบยอด GL → review / approve (DAS)
    6
    ยื่น RD (paper / e-filing) → archive

    เลื่อนแนวนอนได้บนจอแคบ · ขั้นที่ 2 แยกสองทาง (paper ↔ e-WHT) แล้วมารวมที่ทีม Tax · คอร์ส TAX-405 ใช้ flow Blueprint 01.01.07.03 TH-specific (3.3.1) ไม่มีขั้น VIM tax-screening

    5

    Shared engine — หนึ่งจอเลือก หลาย output group

    ZTAXB_R01 (โปรแกรม ZTAXA_R01 = enhanced copy ของ RFIDYYWT) คือ selection screen เดียว · output group ตัดสินว่าออกอะไร SYS · เอ็กซ์เรย์โค้ดจริงที่ ZTAXA_R01 X-ray

    Output groupOutputWRICEF
    AP150 ทวิ + แบบ PND54 (Print form 2)FRM-3
    AP2WHT Certificate for Thailand & Form No. 54 — ในโค้ดคือค่าคงที่ wht_54 SYS (knowledge base เคยเขียนว่า PND1 Kor)ENH-7 (validation)
    AP3PND1 Kor — ค่าคงที่ wht_pnd1k · รวมยอดต่อ CoCd / business place / vendorENH-7
    E05 / E06 · E07–E10SWC text PND3 / PND53 · PND1 / 1K / 2 / 2K (กรองตามหลักแรกของ WITHT)ENH-6 · ENH-5
    E01–E04 · E1K · E2Kใบแนบ + RD e-filing text PND1 / 2 / 3 / 53 / 1A / 2AENH-1
    R03ใบแนบ PND3 / 53 / 54 (+ ALV recon PND54 ↔ VAT36)FRM-1 · RPT-1
    R21 / R22legacy—
    ทำไม bug หนึ่งพังทุกอย่าง: PC/RI bug ใน selection จะโผล่ใน RPT-1, FRM-1, ENH-1 และ FRM-3 พร้อมกัน → เทสด้วยกัน · RPT-7 รันบนแอป Generic WHT Reporting มาตรฐานตาม FD — อย่าสรุปว่าเป็น ZTAXB_R01 · พูดว่า output group ไม่ใช่ “output code”
    6

    e-WHT & 50 ทวิ

    Paper vs e-WHT — ต่างกันตรงไหนในระบบ

    Paper WHTe-WHT
    ใครนำส่ง RDบริษัท (ยื่นแบบภายในวันที่ 7 / e-filing 15)ธนาคาร HSBC / BOFA ภายใน 4 วัน
    หลักฐานให้ผู้ถูกหัก50 ทวิ จาก FRM-3 (output group AP1)ธนาคารออกให้ · type แยก ไม่มี certificate numbering
    FX date ใน ENH-2BOT T-1BOT T-2 (2 วันทำการก่อนนำส่ง)
    บัญชีA212X021 WHT foreign adj (paper)A212X022 e-WHT pay (PND3 & 53)
    Doc types ที่เจอSW ENH-2 adjustment · SR unrealised FX-WHT → realised · K1 vendor clearing สำหรับ 50 ทวิ
    e-WHT ฝั่ง AR (เราเป็นผู้ถูกหัก): design meeting 29-May (AR · SD · AP · working team · KPDO) → alternative-solution meeting 24-Jun → เลือก Option 1B = substitution user exit แทนที่ WHT type + code บนเอกสาร AR · CR-B in progress (ณ 23-Jul-2026) · AP WHT config + test เสร็จแล้ว Cadence
    7

    Posting chain — THB, PND53 3% INFER — verify in FB03

    DocDebitCredit
    Invoice (FB60 / MIRO)Dr Expense 100,000 + Input VAT 7,000Cr Vendor 107,000
    Payment (F110 / F-53)Dr Vendor 107,000Cr Bank 104,000 · WHT payable 3,000 (WIT)
    RemittanceDr WHT payable 3,000Cr Bank 3,000

    WHT base ไม่รวม VAT · “วันที่จ่าย” บน 50 ทวิ = วันจ่าย / clearing · กรณีบริษัทรับภาระดู gross-up

    8

    WHT FX adjustment — TAX-ENH-2 (หัวใจของ TAX-301)

    ประเทศAS-ISTO-BE (S/4HANA)
    Thailandทีม tax รันโปรแกรมปรับ rate เองทุกเช้าscheduled batch job อิงวันจ่ายจริง — มาตรฐานเดียวกัน TH + MY (lift & shift)
    Malaysiaคำนวณ WHT มือจาก BNM rate 17:00 ของวันจ่าย
    Adjustment posting
    • G/L A212X021 · doc type SW (ตั้งบน selection screen)
    • ผ่าน = สถานะเขียว + เลขเอกสารปรับคลิกเปิดได้
    • Test run ไม่ post เอกสารจริง
    • Reversal คืนค่า WITH_ITEM เดิมครบ LC1/LC2/LC3 · reversal เมื่อ payment ถูก reverse = TAX-ENH-16
    • Realized FX ฝั่ง direct tax = A490X034 — cost object ยังต้อง discuss · ENH-8 / ENH-2 พึ่ง LC3 จาก GL-ENH-1
    FX date rules (course)
    • TH paper = T-1 · TH e-WHT = T-2 · MY = posting date (T)
    • Condition field = Posting Date
    • เสาร์–อาทิตย์ไม่มี rate → ใช้ rate ล่าสุด (จ่ายจันทร์ → rate ศุกร์)
    • เอกสาร FC ในบริษัทไทย → update ครบ LC1, LC2, LC3 · WHT payable ใน LC3 ต่าง rate ตาม segment
    ทำไมต้องมี ENH-2: GL post ด้วย rate M @ T (หลักบัญชี) แต่เกณฑ์สรรพากรใช้ BOT ของวันทำการก่อนหน้า — ช่องว่างนี้คือเหตุผลของ ENH-2 และของสอง FX columns ใน RPT-1 · กฎ LC1 ของบรรทัด WHT (M @ posting date −1 ที่ invoice / M @ posting date ที่ payment) อยู่ที่ LC rules

    Issues ที่รู้แล้ว (routed ให้ ENH-2 owner / GL)

    ✓

    Self-check

    ชุดคำถามจริงอยู่ที่ Quiz (หัวข้อ TAX-301)

    1. เอกสารปรับ WHT FX ใช้ doc type และ G/L อะไร?

    ดูเฉลย
    SW · A212X021 (ตั้งบน selection screen)

    2. Invoice ของ vendor MM มี WITH_ITEM แต่ amount 0 — ผิดไหม?

    ดูเฉลย
    ไม่ผิด — B0/B2 หักตอนจ่าย amount จะอยู่บน payment

    3. Gross-up true ของ 100 ที่ 3% เท่าไร?

    ดูเฉลย
    100 × 3/97 = 3.09

    4. Output group ไหนออกใบแนบ PND3/53/54 และใช้ร่วมกับ object ไหน?

    ดูเฉลย
    R03 — FRM-1 (ใบแนบ) และ RPT-1 (recon) บน ZTAXB_R01

    5. จ่ายวันจันทร์ — โปรแกรม ENH-2 ใช้ rate วันไหน?

    ดูเฉลย
    rate วันศุกร์ (ล่าสุดที่ maintain) เพราะเสาร์–อาทิตย์ไม่มี rate