API สร้างเอกสารใบเสร็จรับเงิน

หากท่านต้องการที่จะสร้างเอกสาร e-Tax Invoice & e-Receipt ผ่านระบบของท่าน คู่มือนี้จะสอนวิธีการใช้ endpoint ของ ระบบ Leceipt แบบง่ายๆพร้อมตัวอย่างโค้ดเพื่อให้ท่านได้เข้าใจได้อย่างง่าย 

เพื่อความสะดวก ขอแนะนำให้ท่านดู code ตัวอย่างทาง https://github.com/frevation/leceipt-api-example-code 

การสร้างเอกสาร e-Tax Invoice & e-Receipt จะมีตามขั้นตอนต่อไปนี้ 




1. สร้าง API Key

API key นี้จะใช้ในการเชื่อมต่อ API กับระบบ Leceipt โดยวิธีการสร้างจะอยู่ใน link ด้านล่าง

วิธีสร้าง API Key: https://www.leceipt.com/docs/etax/api-key 



2. ระบุข้อมูล

ระบุข้อมูลที่สำคัญเพื่อที่จะสร้างเอกสารต่างๆบน Leceipt ท่านสามารถดูตัวอย่างข้อมูลได้ที่ Github

company (ผู้ขาย)  

Parameters Require Type Meaning
name yes String ชื่อผู้ขาย
buildingNumber yes String บ้านเลขที่
address yes String ที่อยู่
streetPrefix yes String คำนำหน้าชื่อถนน เช่น ถนน ถ. (ถ้าไม่ต้องการให้แสดงให้ใส่ “”)
streetName yes String ชื่อถนน
subDistrictPrefix yes String คำนำหน้าชื่อตำบล เช่น ตำบล ต. แขวง (ถ้าไม่ต้องการให้แสดงให้ใส่ “”)
subDistrictCode yes String รหัสตำบล
subDistrictName yes String ชื่อตำบล/แขวง
districtPrefix yes String คำนำหน้าชื่ออำเภอ เช่น อำเภอ อ. เขต (ถ้าไม่ต้องการให้แสดงให้ใส่ “”)
districtCode yes String รหัสอำเภอ
districtName yes String ชื่ออำเภอ
provincePrefix yes String คำนำหน้าชื่อจังหวัด เช่น จังหวัด (ถ้าไม่ต้องการให้แสดงให้ใส่ “”)
provinceCode yes String รหัสจังหวัด
provinceName yes String ชื่อจังหวัด
postcode yes String รหัสไปรษณีย์
branchNumber yes String เลขที่สาขา
branchText yes String ชื่อสำนักงานใหญ่
taxNumberType yes String ประเภทผู้เสียภาษี
taxId yes String เลขประจำตัวผู้เสียภาษี
phoneCountryCode yes String รหัสประเทศ
phone yes String เบอร์โทรศัพท์
email yes String อีเมล
unstructure yes Boolean ที่อยู่แบบมีโครงสร้าง


ตัวอย่าง 



customer (ผู้ซื้อ) 

Parameters Require Type Meaning
name yes String ชื่อผู้ขาย
addressLineOne yes String ที่อยู่
addressLineTwo no String ที่อยู่บรรทัดที่ 2
postcode yes String รหัสไปรษณีย์
branchNumber yes String เลขที่สาขา
branchText yes String ชื่อสำนักงานใหญ่
taxNumberType yes String ประเภทผู้เสียภาษี
taxId yes String เลขประจำตัวผู้เสียภาษี
phoneCountryCode yes String รหัสประเทศ
phone yes String เบอร์โทรศัพท์
email yes String อีเมล
unstructure yes Boolean ที่อยู่แบบมีโครงสร้าง

ตัวอย่าง



items (รายการสินค้า) 

Parameter นี้เป็น Array หากในเอกสารมีหลายรายการสินค้าหรือบริการ ให้เพิ่ม Object ลงใน Array นี้เพิ่มเอง 

Parameters Require Type Meaning
name yes number ลำดับรายการสินค้าหรือบริการ
description yes string รายละเอียดสินค้าหรือบริการ
quantity yes number จำนวนสินค้า
unitCode no string รหัสหน่วยสินค้า (อ้างอิงจากรหัส UNECE Recommendation No. 20 Codes for Units of Measure Used in International Trade)
unitName no string ชื่อหน่วยสินค้า
price yes number ราคาสินค้าหรือบริการ
discount yes number ส่วนลดสินค้าหรือบริการ
percentVat yes number เปอร์เซ็นภาษีของรายการ ประกอบด้วย หากเป็นรายการยกเว้นภาษี ระบุเป็น -1 หากเป็นรายการภาษี 0% ระบุเป็น 0 หากเป็นรายการภาษี 7% ระบุเป็น 7
percentVatText no string ชื่อประเภทภาษี
total yes number ราคารวมสินค้าหรือบริการ

ตัวอย่าง 



refer  

refer ในที่นี้หมายถึงเอกสารอ้างอิง หากไม่มีการออกเอกสารแทนใบเดิม ไม่จำเป็นต้องกรอกข้อมูลในส่วนนี้ 

Parameters Require Type Meaning
typeCode yes string รหัสประเภทเอกสารอ้างถึง เช่น T03
typeName yes string ชื่อประเภทเอกสารอ้างถึง เช่น ใบเสร็จรับเงิน/ใบกำกับภาษี
number yes string เลขที่เอกสารอ้างถึง
date yes string วัน เดือน ปี เวลา ที่ออกเอกสารอ้างถึง (YYYY-MM-DDTHH:mm:ss.sssZ ISO 8601 UTC Time format)
dateBE yes string วัน เดือน ปี (พ.ศ.) ที่ออกเอกสารอ้างถึง
reasonCode yes string รหัสสาเหตุการออก
reasonName yes string ชื่อสาเหตุการออก

ตัวอย่าง 



data 

Parameters Require Type Meaning
company yes object รายละเอียดผู้ขายสินค้าหรือบริการ
customer yes object รายละเอียดผู้ซื้อสินค้าหรือบริการ
date yes string วัน เดือน ปี เวลา ที่ออกใบเสร็จรับเงิน/ใบกำกับภาษี (YYYY-MM-DDTHH:mm:ss.sssZ ISO 8601 UTC Time format)
dateBE yes string วัน เดือน ปี (พ.ศ.) ที่ออกใบเสร็จรับเงิน/ใบกำกับภาษี
dateCE no string วัน เดือน ปี (ค.ศ.) ที่ออกใบเสร็จรับเงิน/ใบกำกับภาษี
items yes array รายละเอียดสินค้าหรือบริการ
note no string หมายเหตุ ที่ต้องการแสดงในใบเสร็จรับเงิน/ใบกำกับภาษี
number yes string เลขที่ ใบเสร็จรับเงิน/ใบกำกับภาษี
receivedBy yes string ชื่อผู้รับเงิน
percentVat yes number เปอร์เซ็นภาษีมูลค่าเพิ่ม ปัจจุบัน 7
amountTotal yes number มูลค่าสินค้าหรือบริการรวมแล้ว (ก่อน Vat)
noneVatPriceTotal yes number มูลค่าสินค้าหรือบริการยกเว้นภาษีทั้งหมด
zeroVatPriceTotal yes number มูลค่าสินค้าหรือบริการภาษี 0% ทั้งหมด
vatPriceTotal yes number มูลค่าสินค้าหรือบริการภาษี 7% ทั้งหมด
vatTotal yes number มูลค่าภาษีมูลค่าเพิ่ม
grandTotal yes number มูลค่าสินค้าหรือบริการรวมแล้ว (หลัง Vat)
discount yes number ส่วนลดรวม
reIssue yes boolean หากออกเอกสารแทนใบเดิม ให้ระบุเป็น true หากไม่ ให้ระบุเป็น false
refer yes object เอกสารอ้างถึง

ตัวอย่าง 



3. ส่ง Request ไปที่ Endpoint

Endpoint: https://api.leceipt.com/etax/documents/receipts Method: Post ส่ง data ที่อยู่ในข้อ 2. ไปที่ endpoint ด้านบน แนะนำให้ใช้เป็น axios ในการส่ง request เพื่อความง่าย

ตัวอย่างการส่ง 



Response: 

  createdTime: ‘2022-02-09T08:35:49.0049189Z’, 

  id: ‘2eac60a9-1543-450a-b34a-cd6fae8e1d86’, 

  status: ‘Processing’ 



เมื่อทำการส่ง request เรียบร้อยแล้ว ระบบ Leceipt จะทำการสร้างเอกสาร ถือว่าเป็นอันเสร็จสิ้น  

แต่หากท่านต้องการ download ไฟล์ pdf ให้ดูขั้นตอนต่อไป 



4. เก็บ FileId เพื่อทำการ Download

Endpoint: https://api.leceipt.com/etax/jobs/{id} 

Method: Get 

ส่ง get request ไปที่ endpoint ด้านบนโดย id เอามาจาก response ในข้อ 3. 

  … 

  id: ‘bc7faa35-3109-450f-bfee-f3ea13704d8f’, 

  … 

ตัวอย่าง  

นำ id นี้ไปไว้ด้านท้ายของ endpoint (ไม่ต้องเอา ” รอบ id) 

Response: 

  createdTime: ‘2022-02-03T03:31:58.9025294Z’, 

  fileId: ‘8af05cb9-7daa-41c5-bedf-4ee22370c3c4’, 

  fileSize: 312893, 

  id: ‘b9956a4b-cfed-4e42-b2f5-5f4aaa8ab2c3’, 

  lastUpdatedTime: ‘2022-02-03T03:32:12.4964502Z’, 

  status: ‘complete’ 

เมื่อได้ response มา ให้นำ fileId ไปใช้ในขั้นตอนถัดไป 



5. Download ไฟล์ PDF

Endpoint: https://api.leceipt.com/etax/files/{fileId}/?api-version=2021-04-22 

Method: Get 

ตัวอย่าง 



ใช้ fs.createWriteStream เพื่อสร้างเป็นไฟล์ pdf 

หากถ้ายังมีความสงสัย สามารถดู source code บน Github ที่ให้ไว้ด้านบน