ในงานเชื่อม ERP กับผู้ให้บริการ e-Tax Invoice ของเรา คำถามที่ฝ่ายบัญชีถามบ่อยที่สุดคือ "แก้แบบนี้แล้วลูกค้าจะได้ใบใหม่ไหม" เพราะระบบดึงเอกสารจาก ERP ทุกนาที การแก้เอกสารที่ส่งไปแล้วจึงอาจทำให้ลูกค้าได้ใบกำกับภาษีฉบับใหม่ หรือไม่ได้ ทั้งที่ควรได้
โพสต์นี้เป็นกติกาที่เราได้มาหลังจากใช้งานจริงหลายเดือน ใช้ได้กับทุกระบบที่ ERP เป็นต้นทางของใบกำกับภาษี และส่งต่อให้ระบบ e-Tax เอง
ใบกำกับภาษีที่ส่งแล้วแก้ได้สองทาง
ใบกำกับภาษีที่ส่งเข้าระบบ e-Tax ไปแล้ว ถ้าข้อมูลผิดหรือเปลี่ยน แก้ได้สองแบบ
- ยกเลิกและออกฉบับแทน เมื่อรายการที่เป็นสาระสำคัญผิดหรือไม่ครบ เช่นชื่อ ที่อยู่ หรือเลขผู้เสียภาษีของผู้ซื้อ หรือมีเหตุอื่นให้ต้องยกเลิก ตามประกาศกรมสรรพากรเรื่อง e-Tax Invoice & e-Receipt ข้อ 6 ฉบับใหม่ลงวันที่ที่ออกใหม่ ต้องระบุว่าแทนฉบับเดิมเลขที่และวันที่ใด และไม่ต้องเรียกฉบับเดิมคืน ใบกำกับภาษีกระดาษต่างออกไป ฉบับแทนใช้วันที่เดิมและต้องเรียกฉบับเดิมคืน
- ใบลดหนี้หรือใบเพิ่มหนี้ เมื่อมูลค่าเปลี่ยนหลังขาย เช่นลดราคา คืนสินค้า หรือคิดราคาขาดไป ตามมาตรา 86/9 และ 86/10 ออกในเดือนที่เกิดเหตุ หรือเดือนถัดไปถ้ามีเหตุจำเป็น และต้องอ้างเลขที่ใบกำกับภาษีเดิม
ในข้อมูล XML ของ e-Tax มีรหัสบอกว่าเอกสารเป็นฉบับแทนเพราะอะไร เช่นชื่อผิด ที่อยู่ผิด หรือเหตุอื่น ใบลดหนี้และใบเพิ่มหนี้ก็มีรหัสเหตุผลของตัวเอง
ระบบที่ดึงเอกสารจาก ERP มักทำแบบแรกให้อัตโนมัติ คือเมื่อเอกสารใน ERP เปลี่ยน ระบบส่งฉบับแทนให้ผู้ให้บริการ e-Tax ซึ่งออกเอกสารแทนฉบับเดิมตามประกาศ ส่วนแบบหลัง ฝ่ายบัญชีออกใบลดหนี้หรือใบเพิ่มหนี้ใน ERP เป็นเอกสารใบใหม่ ระบบก็ส่งเหมือนเอกสารใบใหม่ใบหนึ่ง
คำถามที่เหลือคือ แก้อะไรบ้างถึงนับว่า "เอกสารเปลี่ยน"
ระบบเฝ้าดูช่องบนตัวเอกสาร ไม่ใช่ข้อมูลลูกค้าในระบบ
ERP ส่วนใหญ่เก็บข้อมูลลูกค้าไว้สองที่ ที่หนึ่งคือข้อมูลหลักของลูกค้า (master) ที่ใช้ตอนเปิดเอกสารใหม่ อีกที่คือข้อมูลที่บันทึกลงในตัวเอกสารตอนออก ใบกำกับภาษีที่ออกไปแล้วควรใช้ชื่อ ที่อยู่ และเลขผู้เสียภาษีตามที่บันทึกในตัวเอกสาร แม้ฝ่ายบัญชีจะแก้ข้อมูลหลักของลูกค้าทีหลัง

แก้ที่ตัวเอกสารแล้วบันทึก ระบบส่งฉบับแทน แก้ข้อมูลหลักของลูกค้าอย่างเดียว เอกสารที่ออกไปแล้วไม่เปลี่ยน
ตอนแรกระบบของเราอ่านชื่อและที่อยู่จากข้อมูลหลักของลูกค้า พอฝ่ายบัญชีแก้ชื่อบริษัทลูกค้ารายหนึ่ง ทุกใบกำกับภาษีที่ส่งไปแล้วในช่วงนั้นของลูกค้ารายนั้นก็โดนส่งใหม่ด้วยชื่อใหม่ ใบที่ออกไปแล้วกลับมีชื่อที่ไม่ได้ใช้ตอนขาย หลังแก้ให้อ่านจากตัวเอกสาร การแก้ข้อมูลหลักไม่กระทบเอกสารเก่าอีก ส่วนการแก้ที่ตัวเอกสารแล้วกดบันทึก ระบบส่งฉบับแทนให้ตามปกติ
ช่องที่เราเฝ้าดูมีประมาณนี้
| เฝ้าดู แก้แล้วส่งฉบับแทน | ไม่เฝ้าดู แก้แล้วไม่ส่งใหม่ |
|---|---|
| ชื่อ เลขผู้เสียภาษี ที่อยู่ และสาขาของผู้ซื้อที่บันทึกในเอกสาร | ข้อมูลหลักของลูกค้าใน ERP |
| ผู้ติดต่อที่เลือกไว้ในเอกสาร | อีเมลในข้อมูลหลักของลูกค้า |
| วันที่เอกสาร วันครบกำหนด เงื่อนไขชำระเงิน เลขอ้างอิงของลูกค้า | พนักงานขายและผู้ดูแลลูกค้า |
| สกุลเงิน ยอดเงิน ส่วนลด VAT และเงินมัดจำที่ตัด | หมายเหตุภายใน |
| รายการสินค้า |
ช่องที่ไม่เฝ้าดูไม่ได้แปลว่าห้ามแก้ ระบบยังอ่านค่าล่าสุดทุกครั้ง ถ้ามีเหตุให้ส่งใหม่เมื่อไหร่ ฉบับใหม่ก็ใช้ค่าล่าสุด ถ้าอยากให้ลูกค้าได้ฉบับใหม่เพราะช่องเหล่านี้ ให้ผู้ดูแลกดส่งใหม่เองในระบบ
อีเมลส่งใหม่เฉพาะสองกรณี
ฝ่ายบัญชีแก้อีเมลลูกค้ากันเป็นประจำ ถ้าแก้อีเมลทีไรส่งใหม่ทุกครั้ง ลูกค้าจะได้ใบกำกับภาษีใบเดิมซ้ำหลายรอบ ระบบของเราจึงไม่ส่งใหม่เพราะอีเมลเปลี่ยน ยกเว้นสองกรณี
- ใบที่ส่งไปตอนแรกไม่มีอีเมลลูกค้าเลย พอข้อมูลลูกค้ามีอีเมลขึ้นมา ระบบส่งไปที่อีเมลนั้นทันที เพราะลูกค้ายังไม่เคยได้รับ
- แก้อีเมลแล้วเปิดเอกสารกดบันทึกอีกครั้ง ถือว่าฝ่ายบัญชีตั้งใจขอให้ส่งใหม่ ระบบเช็กว่าอีเมลต่างจากที่ส่งไป และเอกสารบันทึกหลังจากส่ง แล้วจึงส่งให้อีเมลใหม่
การกดบันทึกเฉย ๆ โดยไม่ได้แก้อะไร ไม่ส่งใหม่ ถ้าต้องการส่งซ้ำจริง ๆ ก็กดส่งใหม่ในระบบ
ลูกค้าที่รับกระดาษอย่างเดียวยังต้องส่งสรรพากร
ลูกค้าบางรายรับเอกสารเป็นกระดาษอย่างเดียว ไม่ต้องการอีเมล ใบกำกับภาษีของลูกค้ากลุ่มนี้ยังต้องเซ็นและส่งข้อมูลให้สรรพากรเหมือนใบอื่น แค่ระบบไม่ส่งอีเมลถึงลูกค้า ผู้ให้บริการที่เราใช้รับเอกสารที่ไม่มีอีเมลผู้ซื้อได้
ฝ่ายบัญชีต้องมีที่บันทึกว่าลูกค้ารายไหนรับกระดาษ ในงานของเราใช้คำขึ้นต้นในช่องหมายเหตุของลูกค้า และระบบเช็กเฉพาะคำขึ้นต้น เพราะลูกค้าบางรายเขียนว่าต้องการทั้ง e-Tax และกระดาษ ถ้าเช็กแค่ว่ามีคำว่ากระดาษอยู่ในช่อง ลูกค้ากลุ่มนี้จะไม่ได้อีเมลไปด้วย
การเปลี่ยนลูกค้าจากรับกระดาษเป็นรับอีเมล ไม่ส่งเอกสารเก่าย้อนหลังให้เอง เอกสารที่ต้องการให้ไปถึงอีเมลต้องกดส่งใหม่ทีละใบ
เพิ่มช่องที่เฝ้าดูแล้วต้องไม่ส่งซ้ำทั้งระบบ
วันหนึ่งฝ่ายบัญชีอาจขอให้เฝ้าดูช่องเพิ่ม ระบบที่เทียบข้อมูลด้วยการเก็บลายนิ้วมือ (hash) ของช่องที่เฝ้าดูไว้ตอนส่ง จะเห็นว่าเอกสารที่ส่งแล้วทุกใบ "เปลี่ยน" ทันทีที่เพิ่มช่อง เพราะลายนิ้วมือคิดจากช่องชุดใหม่ ถ้าไม่มีอะไรกัน ระบบจะส่งเอกสารหลายร้อยใบซ้ำในรอบถัดไป
ระบบของเราเก็บลายนิ้วมือของรายชื่อช่องไว้ด้วย ถ้ารายชื่อช่องเปลี่ยน ระบบแค่จดค่าใหม่เป็นฐานโดยไม่ส่ง ก่อนให้ทีมพัฒนาเพิ่มช่องที่เฝ้าดู ควรถามว่ามีอะไรกันเรื่องนี้หรือยัง
กรณีที่อาจเจอในงานจริง
- แก้ยอดเงินของเอกสารที่ออกไปแล้ว ถ้ายอดเปลี่ยนเพราะลดราคาหรือคืนสินค้า ทางที่ถูกคือออกใบลดหนี้ แต่ระบบไม่รู้ว่าฝ่ายบัญชีแก้เพราะอะไร ควรตกลงกันว่าเอกสารเก่าแก้ยอดได้ในกรณีไหน และให้ระบบเตือนก่อนส่งเมื่อยอดของเอกสารเดือนก่อนเปลี่ยน
- ผู้ให้บริการตอบว่าเอกสารนี้มีอยู่แล้ว เอกสารที่ส่งแล้วต้องส่งในแบบ "แทนฉบับเดิม" ถ้ามีการแก้สองครั้งติดกันก่อนรอบส่ง ระบบต้องจำว่ายังเป็นการแทนฉบับเดิม ไม่ใช่เอกสารใหม่
- แก้ในวันเดียวกับที่ระบบดึงไปแล้ว ERP บางระบบเก็บวันที่แก้ไขเป็นวันอย่างเดียว ถ้าระบบเทียบแค่วันที่ การแก้ในวันเดียวกันจะมองไม่เห็น ต้องเทียบเวลาด้วย
- ลูกค้าเปลี่ยนชื่อบริษัท แก้ข้อมูลหลัก เอกสารใหม่จะใช้ชื่อใหม่ เอกสารเก่าคงชื่อเดิมตามที่ออก ซึ่งถูกต้องแล้ว
เรื่องที่ควรถามทีมพัฒนา
- ระบบเฝ้าดูช่องไหนบ้าง ช่องเหล่านั้นอ่านจากตัวเอกสารหรือจากข้อมูลหลักของลูกค้า
- แก้อีเมลลูกค้าแล้วเกิดอะไรขึ้น และถ้าอยากส่งใหม่ต้องทำยังไง
- ลูกค้าที่รับกระดาษบันทึกไว้ที่ไหน และระบบเช็กยังไง
- เพิ่มช่องที่เฝ้าดูแล้ว เอกสารเก่าจะโดนส่งซ้ำไหม
- มีหน้าจอให้ฝ่ายบัญชีดูไหมว่าเอกสารแต่ละใบส่งไปกี่ครั้ง เพราะอะไร






