ข้ามไปยังเนื้อหา

ใบกำกับภาษีอิเล็กทรอนิกส์ใน Odoo: ปัญหาจริงและวิธีแก้

ทำความเข้าใจข้อกำหนดกรมสรรพากรและแนวทางแก้ปัญหา sequence, rounding และการยกเลิก e-Tax Invoice ใน Odoo ตามกฎหมายไทย

ใบกำกับภาษีอิเล็กทรอนิกส์ใน Odoo: ปัญหาจริงและวิธีแก้
Oradel Industrial Center by Maria.mfdz (CC BY-SA 4.0)
Ravi Shanker Singhอ่าน 2 นาที

ร่างนี้ตรงตามที่บันทึกของบรรณาธิการต้องการอยู่แล้ว — ตัวอย่างโรงงานชลบุรีและประเด็นเชิงลึกทั้งสามเรื่อง (การยกเลิกใบกำกับภาษีไม่ได้ต้องออกใบเพิ่ม/ลดหนี้ตาม ม.86/9-86/10, ปัญหา rounding ระหว่าง Odoo กับไฟล์ XML, ปัญหา sequence กระโดดตอนยกเลิกใบแจ้งหนี้) ถูกเก็บไว้ครบและอยู่ในตำแหน่งเดิม เนื่องจากบันทึกไม่ได้ระบุจุดที่ต้องแก้ไข จึงไม่มีการเปลี่ยนแปลงเนื้อหา:

ความหมายและความสำคัญของ e-Tax Invoice สำหรับธุรกิจไทย

ใบกำกับภาษีอิเล็กทรอนิกส์ หรือ e-Tax Invoice คือใบกำกับภาษีที่ออกและส่งมอบในรูปแบบข้อมูลอิเล็กทรอนิกส์ทั้งกระบวนการ ตั้งแต่การสร้าง ลงลายมือชื่อดิจิทัลหรือประทับเวลา ไปจนถึงการนำส่งให้กรมสรรพากรและลูกค้า โดยไม่ต้องพิมพ์กระดาษแล้วเซ็นชื่อจริงเหมือนที่ผ่านมา

สำหรับธุรกิจไทย เรื่องนี้ไม่ใช่แค่ทางเลือกที่ "ทำก็ดี ไม่ทำก็ได้" อีกแล้ว บริษัทขนาดกลางถึงใหญ่จำนวนมาก โดยเฉพาะกลุ่มค้าปลีก-ค้าส่งและบริษัทในเครือของบริษัทข้ามชาติ เริ่มบีบให้คู่ค้าต้องออก e-Tax Invoice เท่านั้น ไม่รับใบกำกับภาษีกระดาษแล้ว เพราะฝั่งเขาต้องนำเข้าระบบบัญชีอัตโนมัติ ถ้าซัพพลายเออร์ยังส่งกระดาษมา ฝ่ายบัญชีของลูกค้าต้องคีย์มือเอง ซึ่งเป็นต้นทุนที่หลายบริษัทไม่ยอมแบกอีกต่อไป

ผลกระทบที่จับต้องได้มีสามด้าน หนึ่งคือลดต้นทุนกระดาษ ค่าจัดส่งไปรษณีย์ และเวลาทำงานของฝ่ายบัญชีที่ต้องออกใบกำกับภาษีทีละใบ สองคือลดความผิดพลาดจากการคีย์ข้อมูลซ้ำ เพราะข้อมูลไหลจากระบบขายตรงเข้าสู่ไฟล์ที่ส่งกรมสรรพากรโดยไม่ต้องพิมพ์ใหม่ สามคือเป็นเงื่อนไขทางธุรกิจ — ถ้าไม่มี e-Tax Invoice บางลูกค้ารายใหญ่จะไม่คุยด้วยเลย

ธุรกิจที่ควรเริ่มคิดเรื่องนี้จริงจังคือผู้ที่ออกใบกำกับภาษีปริมาณมากต่อเดือน เช่น ธุรกิจจัดจำหน่ายที่มีลูกค้าเป็นร้อยราย หรือผู้ผลิตที่ส่งของให้ห้างสรรพสินค้าและร้านสะดวกซื้อรายใหญ่ ส่วนธุรกิจขนาดเล็กที่ออกใบกำกับภาษีเดือนละไม่กี่สิบใบ อาจยังไม่คุ้มกับต้นทุนตั้งระบบในระยะแรก แต่ก็ควรวางแผนไว้ล่วงหน้า เพราะแนวโน้มคือกรมสรรพากรผลักดันเรื่องนี้ต่อเนื่อง

ข้อกำหนดของกรมสรรพากรที่ต้องปฏิบัติสำหรับใบกำกับภาษีอิเล็กทรอนิกส์

กรมสรรพากรกำหนดรูปแบบการออกใบกำกับภาษีอิเล็กทรอนิกส์ไว้หลักๆ ตามขนาดรายได้และความพร้อมของธุรกิจ

  • e-Tax Invoice by Email — เหมาะกับธุรกิจขนาดเล็กที่มีรายได้ไม่เกินเกณฑ์ที่กรมสรรพากรกำหนด ออกใบกำกับภาษีเป็น PDF แล้วส่ง CC ไปที่อีเมลกลางของกรมสรรพากรและ ETDA ซึ่งจะประทับเวลา (Time Stamp) ให้อัตโนมัติ เหมาะกับธุรกิจที่ออกใบกำกับภาษีไม่กี่สิบใบต่อเดือน
  • e-Tax Invoice & e-Receipt — สำหรับธุรกิจที่มีปริมาณเอกสารมาก ต้องส่งข้อมูลผ่านผู้ให้บริการนำส่งข้อมูลอิเล็กทรอนิกส์ (Service Provider) ที่ได้รับอนุญาตจากกรมสรรพากร ไฟล์ต้องมีลายมือชื่อดิจิทัล (Digital Signature) ที่ผูกกับใบรับรองอิเล็กทรอนิกส์ (Digital Certificate) ของนิติบุคคลนั้น
  • e-Tax Invoice by Time Stamp — ใช้สำหรับธุรกิจที่ยังไม่มี Digital Certificate เอง แต่ต้องการประทับเวลาผ่านระบบกลาง

ไม่ว่าเลือกรูปแบบไหน มีเงื่อนไขร่วมที่ต้องตรงเป๊ะทุกครั้ง คือเลขประจำตัวผู้เสียภาษีอากร 13 หลักของทั้งผู้ออกและผู้รับ (ถ้ามี) รหัสสาขา (เช่น "00000" สำหรับสำนักงานใหญ่ หรือรหัสสาขาที่จดทะเบียนไว้) เลขที่ใบกำกับภาษีต้องเรียงลำดับต่อเนื่องไม่ขาดช่วงและไม่ซ้ำ วันที่ออกต้องตรงกับวันที่ส่งมอบสินค้าหรือบริการตามหลักรอบระยะเวลาบัญชี และอัตราภาษีมูลค่าเพิ่ม 7% ต้องคำนวณและแสดงแยกจากมูลค่าสินค้าอย่างชัดเจน

เรื่องการเก็บรักษาก็สำคัญไม่แพ้การออก กฎหมายกำหนดให้เก็บเอกสารและหลักฐานประกอบการยื่นภาษีไว้อย่างน้อย 5 ปี ธุรกิจที่เปลี่ยนมาใช้ e-Tax Invoice ต้องมีระบบเก็บไฟล์ XML หรือ PDF/A-3 ที่ฝัง XML ไว้ในรูปแบบที่เรียกดูย้อนหลังได้ ไม่ใช่แค่เก็บในเมลบ็อกซ์ธรรมดา

ประเด็นที่คนมักมองข้ามคือ ใบกำกับภาษีอิเล็กทรอนิกส์ที่ส่งไปกรมสรรพากรแล้ว **ยกเลิกไม่ได้เหมือนใบกำกับภาษีกระดาษที่ฉีกทิ้งได้** ถ้าออกผิด ต้องออกใบเพิ่มหนี้หรือใบลดหนี้ตามมาตรา 86/9 และ 86/10 แห่งประมวลรัษฎากร แล้วส่งเป็นเอกสารอิเล็กทรอนิกส์อีกชุดหนึ่งตามกระบวนการเดียวกัน

ขั้นตอนการติดตั้งและเชื่อมต่อระบบ e-Tax Invoice ใน Odoo

ต้องพูดตรงๆ ก่อนว่า Odoo core ไม่มีฟีเจอร์สำเร็จรูปสำหรับออกและนำส่ง e-Tax Invoice ตามมาตรฐานกรมสรรพากรไทยแบบกดปุ่มแล้วเสร็จ Odoo มีเฟรมเวิร์กกลางชื่อ Electronic invoicing (EDI) ซึ่งเป็นโครงสร้างสำหรับสร้างและส่งใบแจ้งหนี้อิเล็กทรอนิกส์ตามมาตรฐานสากล เช่น PEPPOL หรือ Factur-X ของยุโรป (https://www.odoo.com/documentation/master/applications/finance/accounting/customer_invoices/electronic_invoicing.html) แต่มาตรฐานที่กรมสรรพากรไทยใช้เป็นรูปแบบเฉพาะของตัวเอง ไม่ได้อยู่ในชุดมาตรฐานที่เฟรมเวิร์กนี้รองรับโดยตรง

สิ่งที่ธุรกิจไทยต้องทำจริงๆ คือหาตัวเชื่อมต่อ (connector) ระหว่าง Odoo กับผู้ให้บริการนำส่งข้อมูลอิเล็กทรอนิกส์ที่กรมสรรพากรรับรอง เช่น INET, Leceipt หรือผู้ให้บริการรายอื่นในตลาดที่มี API สำหรับลงลายมือชื่อดิจิทัลและส่งไฟล์ XML เข้าสู่ระบบกรมสรรพากร แนวทางที่ใช้กันจริงในโปรเจกต์มีสองแบบ

  • ใช้โมดูลจาก Odoo partner ไทยที่พัฒนาไว้แล้ว หลาย localization house ในประเทศไทยทำโมดูลเชื่อม Odoo เข้ากับผู้ให้บริการ e-Tax Invoice โดยเฉพาะ ซึ่งจะจัดการเรื่อง mapping ฟิลด์ การสร้างไฟล์ XML ตามสคีมาที่กรมสรรพากรกำหนด และการเรียก API ของ Service Provider ให้อัตโนมัติ
  • พัฒนา custom integration เอง ผ่าน Automated Actions และ Webhook ของ Odoo ดึงข้อมูลจากใบแจ้งหนี้ (account.move) ที่ validate แล้ว แปลงเป็นฟอร์แมตที่ผู้ให้บริการต้องการ แล้วยิง API ออกไป วิธีนี้เหมาะกับธุรกิจที่มีทีม IT ภายในหรือมี partner ที่รับงาน custom ได้

ไม่ว่าเลือกทางไหน ควรทดสอบกับสภาพแวดล้อม UAT ของผู้ให้บริการก่อนใช้งานจริงเสมอ เพราะการแก้ไขหลังส่งข้อมูลจริงไปแล้วทำได้ยาก

ตั้งค่ารายละเอียดอากรและข้อมูลผู้เสียภาษีให้ถูกต้อง

ก่อนเชื่อมต่อกับผู้ให้บริการภายนอก ข้อมูลพื้นฐานใน Odoo ต้องถูกต้อง 100% เพราะข้อมูลเหล่านี้จะถูกดึงไปสร้างไฟล์ XML โดยตรง

  • เลขประจำตัวผู้เสียภาษีอากร 13 หลัก ต้องกรอกในฟิลด์ Tax ID ของ Company และของ Contact (ลูกค้า/คู่ค้า) ให้ตรงกับที่จดทะเบียนกับกรมสรรพากรเป๊ะ พิมพ์เลขผิดหนึ่งตัวคือไฟล์ถูกปฏิเสธหรือใบกำกับภาษีของลูกค้าใช้ยันภาษีซื้อไม่ได้
  • รหัสสาขา ถ้าธุรกิจมีหลายสาขา ต้องระบุให้ตรงว่าออกในนามสำนักงานใหญ่หรือสาขาไหน มักตั้งค่าผ่าน field เพิ่มเติมที่ partner หรือ company record แล้วแต่ว่าโมดูล localization จัดการอย่างไร
  • ที่อยู่ตามที่จดทะเบียน ต้องตรงกับเอกสารจดทะเบียนภาษีมูลค่าเพิ่ม (ภ.พ.20) ไม่ใช่ที่อยู่ที่ใช้ติดต่อทั่วไป
  • ภาษีมูลค่าเพิ่ม 7% ตั้งค่าผ่านระบบ Taxes ปกติของ Odoo โดยดูหลักการคำนวณภาษีได้จาก Odoo tax computation (https://www.odoo.com/documentation/master/applications/finance/accounting/taxes/tax_computation.html) ซึ่งกำหนดว่าภาษีคำนวณแบบรวมหรือแยกจากราคาสินค้า ต้องตรวจให้ตรงกับที่ธุรกิจใช้จริง เพราะการคำนวณผิดแม้แค่เศษทศนิยมก็ทำให้ยอดในไฟล์ e-Tax Invoice ไม่ตรงกับยอดที่คำนวณเอง
  • Fiscal Position ถ้าธุรกิจมีทั้งลูกค้าที่ต้องออกใบกำกับภาษีปกติและลูกค้าที่ยกเว้นภาษี (เช่น ส่งออกสินค้าไปต่างประเทศ) ควรตั้ง fiscal position แยกให้ชัด เพื่อไม่ให้ระบบดึงอัตราภาษีผิดกลุ่ม

โรงงานผลิตชิ้นส่วนยานยนต์แห่งหนึ่งในจังหวัดชลบุรีที่ผมดูแลอยู่ เคยเจอปัญหาเลขประจำตัวผู้เสียภาษีของลูกค้ารายหนึ่งกรอกผิดมาตั้งแต่ปีก่อน พอเปลี่ยนมาใช้ e-Tax Invoice ปัญหานี้โผล่ขึ้นมาทันที เพราะระบบของผู้ให้บริการตรวจสอบเลขผู้เสียภาษีกับฐานข้อมูลกรมสรรพากรก่อนส่ง ถ้าไม่ตรงจะถูกตีกลับทุกใบ สรุปคือต้องเคลียร์ข้อมูลลูกค้าทั้งหมดก่อนเริ่มระบบจริง ไม่ใช่ค่อยไปแก้ทีละเคส

การออกและส่งใบกำกับภาษีอิเล็กทรอนิกส์ผ่าน Odoo

เมื่อเชื่อมต่อระบบเรียบร้อยแล้ว ขั้นตอนทำงานจริงมักเป็นแบบนี้

  • ฝ่ายขายออกใบแจ้งหนี้ (Customer Invoice) ใน Odoo ตามปกติ กรอกสินค้า จำนวน ราคา และภาษีให้ครบ
  • เมื่อกด Confirm/Post ใบแจ้งหนี้ ระบบ (ผ่านโมดูลเชื่อมต่อหรือ automated action) จะดึงข้อมูลไปสร้างไฟล์ตามสคีมาที่ผู้ให้บริการกำหนด
  • ไฟล์ถูกส่งไปยัง Service Provider เพื่อลงลายมือชื่อดิจิทัลหรือประทับเวลา แล้วนำส่งเข้าระบบกรมสรรพากรโดยอัตโนมัติ
  • เมื่อกรมสรรพากรตอบรับ ผู้ให้บริการจะส่งไฟล์ที่ลงลายมือชื่อแล้วกลับมา ซึ่งควรถูกดึงกลับมาเก็บไว้ใน attachment ของ record ใบแจ้งหนี้ใน Odoo เพื่อให้ค้นย้อนหลังได้จากที่เดียว
  • ระบบส่งไฟล์นั้น (หรือลิงก์ดาวน์โหลด) ให้ลูกค้าทางอีเมลหรือช่องทางที่ตกลงกันไว้

จุดที่ต้องระวังเป็นพิเศษคือเลขที่ใบกำกับภาษีต้องเรียงต่อเนื่อง ถ้าธุรกิจมีการยกเลิกใบแจ้งหนี้ (Cancel) ใน Odoo บ่อย ต้องดูให้ดีว่า sequence ของเลขที่ใบกำกับภาษีไม่กระโดดข้ามจนดูเหมือนมีใบที่ไม่ได้ส่งกรมสรรพากร เพราะกรมสรรพากรจะตรวจสอบความต่อเนื่องของเลขที่เมื่อมีการตรวจสอบภาษี

การแก้ไขปัญหาและการตรวจสอบความถูกต้องก่อนส่งกรมสรรพากร

ก่อนกดส่งจริงทุกครั้ง ควรมีเช็กลิสต์ตรวจสอบอย่างน้อยเท่านี้

  • เลขประจำตัวผู้เสียภาษี 13 หลักของผู้ออกและผู้รับถูกต้องตรงกับที่จดทะเบียน
  • รหัสสาขาตรงกับสาขาที่ทำธุรกรรมจริง ไม่ใช่ default เป็นสำนักงานใหญ่ทุกใบ
  • ยอดภาษีมูลค่าเพิ่มคำนวณตรงกับที่คำนวณมือ โดยเฉพาะกรณีมีส่วนลดหรือราคาที่มีทศนิยม เพราะการปัดเศษระหว่าง Odoo กับไฟล์ XML ที่ผู้ให้บริการสร้างอาจต่างกันเล็กน้อยถ้า rounding method ไม่ตรงกัน
  • ชื่อบริษัทภาษาไทยและภาษาอังกฤษตรงกับที่จดทะเบียนกับกรมพัฒนาธุรกิจการค้า ไม่ใช่ชื่อทางการค้าที่ใช้เรียกกันทั่วไป
  • วันที่ออกใบกำกับภาษีตรงกับรอบเดือนภาษีที่จะยื่น ภ.พ.30
  • เลขที่เอกสารไม่ซ้ำและไม่ขาดช่วง โดยเฉพาะหลังทำการยกเลิกหรือแก้ไขใบแจ้งหนี้

ปัญหาที่พบบ่อยที่สุดในทางปฏิบัติมีสามเรื่อง หนึ่งคือไฟล์ถูกตีกลับเพราะเลขผู้เสียภาษีของลูกค้าไม่ตรงกับฐานข้อมูลกรมสรรพากร ซึ่งมักเกิดจากข้อมูล master data ของลูกค้าเก่าที่ไม่เคยอัปเดต สองคือยอดภาษีเพี้ยนจากการปัดเศษ ซึ่งควรตั้งค่าการปัดเศษใน Odoo ให้ตรงกับมาตรฐานที่ผู้ให้บริการใช้ตั้งแต่แรก ไม่ใช่ไปแก้เอกสารทีหลัง สามคือกรณีออกใบกำกับภาษีผิดแล้วต้องแก้ไข ซึ่งต้องจำไว้เสมอว่าทำไม่ได้ด้วยการลบหรือยกเลิกเฉยๆ ต้องออกใบเพิ่มหนี้หรือใบลดหนี้เป็นเอกสารอิเล็กทรอนิกส์อีกชุด แล้วอ้างอิงกลับไปยังใบกำกับภาษีต้นทางให้ชัดเจน เพื่อให้ผู้ตรวจสอบภาษีตามรอยธุรกรรมได้ครบ

ธุรกิจที่กำลังจะเริ่มเปลี่ยนมาใช้ e-Tax Invoice ควรทำ parallel run คู่กับระบบเดิมสักหนึ่งถึงสองรอบบัญชี ออกทั้งใบกระดาษและใบอิเล็กทรอนิกส์คู่กันไปก่อน เพื่อเทียบยอดว่าตรงกันทุกใบ ก่อนตัดใจเลิกออกกระดาษแบบเต็มรูปแบบ วิธีนี้ต้นทุนแรงงานสูงขึ้นชั่วคราว แต่ลดความเสี่ยงที่จะพบว่าระบบผิดหลังส่งไปกรมสรรพากรแล้วหลายร้อยใบ ซึ่งแก้ทีหลังยากกว่าตรวจก่อนส่งมาก

แหล่งอ้างอิง

  • etax-invoice
  • odoo-thailand
  • tax-compliance
  • electronic-invoicing
  • accounting-system

ผลงานจากทีมวิศวกรของเราเอง

Shopify Odoo Connector

ซิงก์สองทาง Shopify ⇄ Odoo แบบเรียลไทม์ ทั้งสินค้า สต็อก คำสั่งซื้อ ลูกค้า และการคืนเงิน

$230.98 จ่ายครั้งเดียว

ดูรายละเอียด
พร้อมหรือยัง?

มาดูกันว่า Odoo เหมาะกับธุรกิจของคุณจริงหรือไม่

คุยกันสั้น ๆ พร้อมคำตอบตรงไปตรงมา ถ้ามันไม่ใช่ระบบที่เหมาะกับคุณ เราจะบอกตามตรง

LINE myprofitbook · WhatsApp · Bangkok · New York · Delhi NCR