กระทบยอด PromptPay บน Odoo: ขั้นตอนปิดบัญชีรายวันสำหรับ SME ไทย
PromptPay ทำให้การรับเงินในประเทศไทยเร็วขึ้นกว่าที่เคยเป็นมา แต่ก็ทำให้งานกระทบยอดของฝ่ายบัญชียุ่งยากขึ้นเช่นกัน โดยเฉพาะทีมที่ยังจับคู่เงินโอนด้วยมือ เราเคยวางระบบกระทบยอด PromptPay บน Odoo ให้กับร้านค้าปลีกหลายสาขา คลินิก และผู้จัดจำหน่ายแบบ B2B ในกรุงเทพฯ รูปแบบปัญหาที่เจอเหมือนกันทุกครั้ง เงินเข้าทันที แต่ข้อมูลอ้างอิงไม่ได้เข้ามาด้วย สุดท้ายก็มีคนต้องนั่งเพ่งแอปธนาคาร เพื่อจับคู่ยอดโอน 1,250 บาท กับใบแจ้งหนี้ที่ค้างอยู่หกใบ
บทความนี้อธิบายวิธีที่เราจัดโครงสร้างการนำเข้า bank statement การตั้ง reconciliation model และขั้นตอนปิดบัญชีประจำวัน สำหรับการกระทบยอด PromptPay บน Odoo ทำให้ถูกวิธีแล้ว PromptPay จะเลิกเป็นงานที่ต้องนั่งไล่ดูด้วยมือ และกลายเป็นงานท้ายวันที่ใช้เวลาแค่ห้านาที หากคุณกำลังพิจารณาโครงการ วางระบบ Odoo ที่กว้างขึ้น วินัยแบบเดียวกันนี้ใช้ได้กับทุกช่องทางรับเงินที่คุณนำเข้ามา
ทำไม PromptPay ทำให้วิธีกระทบยอดแบบเดิมใช้ไม่ได้
เงินโอน PromptPay ที่เข้าบัญชีผู้รับมักปรากฏเป็นรายการเครดิตทั่วไป ชื่อผู้โอนถูกตัดเหลือแค่ไม่กี่ตัวอักษร ไม่มีเลขที่ใบแจ้งหนี้แนบมาเลย เทียบกับการโอนผ่านธนาคารแบบดั้งเดิมที่ลูกค้ากรอกช่องอ้างอิงเอง ก็จะเห็นว่าทำไมฝ่ายบัญชีถึงหวั่นใจกับ PromptPay หากระบบ Odoo ของคุณตั้งสมมติฐานว่าทุกบรรทัดในแบงก์สเตทเมนต์ต้องมีเลขอ้างอิงใบแจ้งหนี้ชัดเจน PromptPay จะทำลายสมมติฐานนั้นตั้งแต่วันแรก
ทางแก้ไม่ใช่แอปตัวเดียวหรือสวิตช์ปุ่มเดียว แต่เป็นการทำงานร่วมกันของสามส่วน คือการนำเข้า bank statement ที่มีวินัย reconciliation model ที่ปรับให้เข้ากับรูปแบบข้อความ narration ของ PromptPay จริง ๆ และขั้นตอนประจำวันสั้น ๆ ที่ดักจับรายการผิดปกติ ก่อนที่จะสะสมจนกลายเป็นปัญหาตอนปิดสิ้นเดือน
วางระบบกระทบยอด PromptPay บน Odoo: ทำข้อมูลดิบให้ถูกต้องก่อน
ธนาคารไทยส่วนใหญ่ที่รองรับบัญชีร้านค้า PromptPay (กสิกรไทย ไทยพาณิชย์ กรุงเทพ และอีกหลายแห่ง) มีบริการส่งออกไฟล์ CSV หรือ Excel ให้ บัญชีขนาดใหญ่บางรายอาจได้ feed เชื่อมตรง ใน Odoo เรานำเข้าข้อมูลเหล่านี้เป็น bank statement ภายใต้ journal ที่เกี่ยวข้อง โดยแยกเป็นหนึ่งสเตทเมนต์ต่อหนึ่งวันทำการเท่าที่ทำได้ แทนที่จะรวมทีเดียวเป็นรายสัปดาห์ การนำเข้าแบบรายวันช่วยให้หน้าจอกระทบยอดสั้นลง มองหารายการที่ยังไม่จับคู่หนึ่งบรรทัดจากแปดบรรทัดได้ง่ายกว่าไปไล่หาท่ามกลางแปดสิบบรรทัดมาก
สิ่งที่เราตรวจสอบก่อนนำเข้าครั้งแรกให้ลูกค้าทุกราย:
- การเข้ารหัสไฟล์ CSV และรูปแบบวันที่ตรงกับที่ Odoo คาดหวังหรือไม่ ไฟล์ส่งออกจากแบงก์ไทยมักไม่สม่ำเสมอในจุดนี้ คอลัมน์วันที่ผิดอาจทำให้ลำดับรายการสลับกันโดยไม่มีใครรู้ตัว
- ช่องอ้างอิงของผู้โอน แม้จะสั้นแค่ไหนก็ตาม ต้องถูกแมปเข้าช่อง "Payment Ref" ของบรรทัดสเตทเมนต์ ไม่ใช่หายไปตอนนำเข้า
- ยอดเงินแต่ละรายการถูกแยกให้ถูกต้อง ในกรณีที่ธนาคารรวมยอดรับ PromptPay หลายรายการเป็นหนึ่งบรรทัดยอดสุทธิ ซึ่งบัญชีร้านค้าบางรายทำแบบนี้ตอนกลางคืน
ข้อสุดท้ายนี้เป็นจุดที่คนพลาดบ่อย ถ้าธนาคารรวมยอดรับ PromptPay สิบรายการเป็นยอดเครดิตก้อนเดียว Odoo จะเห็นแค่หนึ่งบรรทัดสเตทเมนต์ แต่คุณมีใบแจ้งหนี้ที่ต้องเคลียร์ถึงสิบใบ ทางเลือกคือขอให้ธนาคารให้ sub-ledger แบบแยกรายการ หรือตั้งบัญชีพักไว้รับยอดก้อนนั้น จนกว่าจะกระทบยอดรายละเอียดทีละบรรทัดได้ครบ โดยทั่วไปเราแนะนำให้ลูกค้าเลือก feed แบบแยกรายการถ้าธนาคารมีให้ แม้ไฟล์จะยุ่งกว่าในการแปลงข้อมูล ข้อเสียจริงที่ควรพูดตรง ๆ คือ การกระทบยอดก้อนเดียวกับใบแจ้งหนี้จำนวนมากโดยไม่มีข้อมูลอ้างอิงนั้นเพิ่มขั้นตอนที่ไม่สามารถทำให้เป็นอัตโนมัติได้ทั้งหมด
ตั้ง reconciliation model ให้เข้ากับข้อความ PromptPay
นี่คือจุดที่การกระทบยอด PromptPay บน Odoo แสดงคุณค่าจริง ๆ reconciliation model ของ Odoo ให้คุณกำหนดกฎจับคู่ตามป้ายข้อความของบรรทัดสเตทเมนต์ คู่ค้า หรือยอดเงิน แล้วให้ระบบแนะนำหรือยืนยัน journal entry อัตโนมัติ สำหรับ PromptPay เราสร้างโมเดลโดยเน้นการจับคู่ตามยอดเงินและคู่ค้าแบบคร่าว ๆ มากกว่าจับคู่ข้อความแบบเป๊ะ เพราะข้อความ narration เชื่อถือไม่ได้
ลำดับความสำคัญของกฎที่เราใช้โดยทั่วไป:
- ยอดตรงกับใบแจ้งหนี้ค้างชำระใบเดียวของคู่ค้าที่รู้จักแน่ชัด ให้ยืนยันอัตโนมัติ
- ยอดตรงกับใบแจ้งหนี้ค้างชำระใบเดียว แต่ยังระบุคู่ค้าไม่ได้ ให้ระบบแนะนำไว้ก่อน รอคนยืนยัน
- ยอดตรงกับผลรวมของใบแจ้งหนี้ค้างชำระสองใบขึ้นไปของคู่ค้ารายเดียวกัน พบบ่อยกับลูกค้าประจำฝั่งค้าปลีก ให้แนะนำเป็นการกระทบยอดแบบรวม
- ไม่พบรายการที่ตรงกัน ให้ค้างไว้ในคิวรายการผิดปกติเพื่อรีวิวประจำวัน
เราตั้งใจให้กฎข้อ 1 ยืนยันอัตโนมัติ เฉพาะเมื่อทั้งยอดเงินและคู่ค้าตรงกันเท่านั้น ไม่ใช่ตรงแค่ยอดเงินอย่างเดียว ยอดใบแจ้งหนี้ของ SME ไทยมักซ้ำกันบ่อย ลูกค้าสองรายอาจติดหนี้พอดี 850 บาทในสัปดาห์เดียวกันได้ง่าย ๆ การจับคู่อัตโนมัติด้วยยอดเงินอย่างเดียวจึงมีโอกาสลงบัญชีผิดคู่ค้าเป็นครั้งคราว ข้อผิดพลาดแบบนี้มองไม่เห็นจนกว่าใบแจ้งยอดจะถูกส่งออกตอนสิ้นเดือน แล้วลูกค้าโทรมาถามว่าทำไมถูกเรียกเก็บซ้ำ
ขั้นตอนปิดบัญชีประจำวันสำหรับ PromptPay บน Odoo
reconciliation model ทำงานส่วนใหญ่ให้แล้ว แต่ไม่สามารถแทนที่นิสัยการทำงานประจำวันสั้น ๆ ได้ ขั้นตอนที่เราฝึกให้ทีมบัญชีลูกค้าทำมีดังนี้
- นำเข้าสเตทเมนต์ PromptPay ของเมื่อวานเป็นงานแรกตอนเช้า ก่อนที่ใบแจ้งหนี้ใหม่ของวันนี้จะเริ่มเข้ามา
- รันกฎ reconciliation model และรีวิวทุกรายการในคิวข้อยกเว้น ไม่ใช่แค่รายการที่ระบบจับคู่อัตโนมัติ
- สำหรับรายการที่ยังไม่จับคู่ ให้ตรวจเลขท้ายสี่ตัวของเบอร์โทรผู้โอน ถ้าธนาคารให้ข้อมูลนี้ เทียบกับข้อมูลลูกค้า เพราะลูกค้า SME ไทยจำนวนมากตั้งเบอร์โทรเป็นตัวระบุตัวตนสำรอง
- รายการที่ยังค้างหลังผ่านไปห้านาที ให้แจ้งทีมขายหรือทีมซัพพอร์ตเพื่อติดตามต่อ แทนที่จะปล่อยให้ค้างอยู่ในบัญชีพักไม่มีกำหนด
- ตอนปิดสิ้นเดือนจริง ให้ยืนยันว่ายอด journal ธนาคาร PromptPay ตรงกับยอดในพอร์ทัลธนาคารก่อนจะล็อกงวดบัญชี
การทำแบบนี้ทุกวัน วันละห้าถึงสิบนาที เบากว่าการพยายามกระทบยอด PromptPay สองสามสัปดาห์ในครั้งเดียวตอนสิ้นเดือนมาก ตอนนั้นเรื่องราวเบื้องหลังยอดโอนแปลก ๆ อย่าง 1,250 บาท คงเลือนหายไปจากความทรงจำของทุกคนแล้ว
การกระทบยอด PromptPay บน Odoo เชื่อมกับระบบอื่นในองค์กรอย่างไร
ถ้าคุณขาย Shopee, Lazada หรือ TikTok Shop ควบคู่กับ PromptPay ในฐานะช่องทางรับเงินโดยตรง ตรรกะการกระทบยอดต้องครอบคลุมยอดจ่ายจากมาร์เก็ตเพลสด้วย รายการเหล่านั้นมาเป็นยอดรวมที่มีการหักค่าธรรมเนียมในตัว เรามักจัดการเรื่องนี้ผ่านงาน เชื่อมต่อ API กับ Odoo แบบเดียวกับที่ใช้เชื่อมต่อ bank feed API มาร์เก็ตเพลส และเครื่อง POS เข้าเป็นสายงานบัญชีเดียว ฝ่ายบัญชีจะได้ไม่ต้องสลับไปมาระหว่างสามวิธีกระทบยอดสำหรับสามช่องทางการรับเงิน
สำหรับบริษัทที่ออกใบกำกับภาษีอิเล็กทรอนิกส์จากยอดรับเหล่านี้ จังหวะการกระทบยอดก็ต้องสอดคล้องกับกรอบเวลาส่งใบกำกับภาษีอิเล็กทรอนิกส์ด้วย สำหรับยอดที่ถูกหักภาษี ณ ที่จ่าย ยอดรับ PromptPay สุทธิจะไม่เท่ากับมูลค่าใบแจ้งหนี้เต็มจำนวน เป็นจุดที่ทีมที่ยังไม่คุ้นเคยมักพลาด เราเคยอธิบายกลไกของภาษีหัก ณ ที่จ่าย PND 3 และ PND 53 ไว้ในบทความแยกต่างหาก ขอย้ำไว้ตรงนี้ด้วยว่า อย่าปล่อยให้ใบแจ้งหนี้ที่ถูกหักภาษี ณ ที่จ่ายค้างอยู่ในคิวรายการผิดปกติ โดยสันนิษฐานว่าแค่ยังไม่จับคู่ ให้ตรวจยอดสุทธิหลังหักภาษีก่อนเสมอ
อะไรควรทำอัตโนมัติ อะไรควรให้คนตรวจทาน
คำถามที่ CFO มักถามเราเวลาพิจารณาโครงการกระทบยอด PromptPay บน Odoo คือควรทำอัตโนมัติไปได้ไกลแค่ไหน คำตอบของเราหลังผ่านโครงการแบบนี้มาหลายครั้งคือ ทำให้ตรรกะการจับคู่เป็นอัตโนมัติ แต่ยังคงให้คนตัดสินใจก่อนที่รายการใด ๆ จะถูกบันทึกอัตโนมัติโดยไม่มีคู่ค้าที่ยืนยันแน่ชัด การประมวลผลแบบอัตโนมัติเต็มรูปแบบฟังดูน่าสนใจ แต่ปริมาณธุรกรรมของ SME ไทยส่วนใหญ่ยังอยู่ในระดับที่ไม่สูงมาก คือหลักสิบถึงหลักร้อยรายการ PromptPay ต่อวัน ความเสี่ยงจากการลงบัญชีผิดโดยไม่มีใครรู้ตัวจึงมีน้ำหนักมากกว่าเวลาไม่กี่นาทีที่ประหยัดได้ ถ้าปริมาณธุรกรรมของคุณอยู่ในระดับหลักพันต่อวัน สมการนี้จะเปลี่ยนไป การทำอัตโนมัติแบบหนักขึ้นก็เริ่มสมเหตุสมผล แต่ SME ส่วนใหญ่ที่เราทำงานด้วยยังไม่ถึงจุดนั้น
ถ้างานบัญชีของคุณขยายไปถึงระบบหลายนิติบุคคลหรือหลายสกุลเงิน หรือกำลังเชื่อมข้อมูล PromptPay เข้ากับระบบบัญชีอัตโนมัติอื่น ๆ งาน ดูแลระบบ Odoo ERP ของเราครอบคลุมการปรับจูน reconciliation อย่างต่อเนื่อง เมื่อรูปแบบธุรกรรมเปลี่ยนไปทุกครั้งที่คุณเพิ่มช่องทางขายหรือผู้ให้บริการรับชำระเงินรายใหม่ สำหรับทีมที่ดูแลหน้าร้านออนไลน์บนมาร์เก็ตเพลส งาน พัฒนา e-commerce ของเรามักเชื่อมโยงกับชั้นงานกระทบยอดนี้โดยตรง เพราะการเปลี่ยนแปลงหน้าร้านมักส่งผลต่อวิธีที่ยอดเงินไหลเข้ามา
วางระบบกระทบยอด PromptPay บน Odoo ให้ถูกต้องตั้งแต่ครั้งแรก
ปัญหาการกระทบยอด PromptPay ส่วนใหญ่ที่เราถูกเรียกไปแก้ไข ไม่ใช่ข้อจำกัดของ Odoo แต่เป็นช่องโหว่ของการตั้งค่า ไม่มีวินัยนำเข้าข้อมูลรายวัน reconciliation model ที่จับคู่อัตโนมัติด้วยยอดเงินอย่างเดียว หรือไม่มีกระบวนการรองรับยอดเงินแบบก้อนรวม การแก้ที่การตั้งค่า ไม่ใช่ตัวซอฟต์แวร์ แก้ปัญหาส่วนใหญ่เหล่านี้ได้ภายในสัปดาห์แรกของการวางระบบที่ถูกต้อง ถ้าคุณต้องการให้เรื่องนี้ถูกกำหนดขอบเขตเป็นระยะแยกต่างหาก พร้อมผลงานส่งมอบที่ชัดเจนก่อนจะแตะผังบัญชีของคุณ ทีม ที่ปรึกษา Odoo ของเราพร้อมเดินกระบวนการร่วมกับคุณก่อนที่จะตั้งค่าอะไรทั้งสิ้น เป็นวิธีที่เราเริ่มทุกโครงการ ไม่ว่าบริษัทจะมีขนาดเท่าใด



