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 | เบอร์โทรศัพท์ |
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 | เบอร์โทรศัพท์ |
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 ที่ให้ไว้ด้านบน