NAV
shell

Introduction

ยินดีต้อนรับสู่ Leceipt API!

ท่านสามารถใช้ API ของเราในการเรียกใช้งาน Leceipt API endpoint ซึ่งใช้ในการสร้างเอกสาร e-Tax Invoice & e-Receipt

Leceipt API สร้างขึ้นจากพื้นฐานของ REST API โดยมีการรับข้อมูลจาก request bodies และส่งข้อมูล responses กลับ เป็นข้อมูลแบบ JSON และใช้มาตรฐาน HTTP response codes ในการตอบกลับ

ท่านสามารถใช้ Leceipt API ทดสอบการสร้างใบกำกับภาษีอิเล็กทรอนิกส์ได้ทันที หลังจากสร้างบัญชีการใช้งาน ใบกำกับภาษีอิเล็กทรอนิกส์จะถูกสร้างจากใบรับรองอิเล็กทรอนิกส์สำหรับทดสอบ (Test Certificate) ซึ่งจะไม่ใช่ใบกำกับภาษีจริง และไม่ได้ส่งข้อมูลเข้าระบบของกรมสรรพากร

ใบกำกับภาษีอิเล็กทรอนิกส์จะเป็นของจริงก็ต่อเมื่อท่านใช้ใบรับรองอิเล็กทรอนิกส์จริง ในการลงลายเซ็นดิจิทัล ซึ่งท่านสามารถติดตั้งใบรับรองอิเล็กทรอนิกส์จริงได้ในบัญชีของท่าน

Authentication

การทำ Authorization ใช้ Code ข้างล่างนี้:

# With shell, you can just pass the correct header with each request
curl "<api endpoint here>" \
  -H "API-Key: <your api key>"

ท่านต้องเปลี่ยน <your api key> เป็น API Key ของท่าน

Leceipt API ใช้ API Key ในการอนุญาตให้เรียกใช้ API ท่านสามารถดู API Key ของท่านได้ในบัญชีการใช้งานของท่าน

API Key ของท่านมีความสำคัญมาก (API Key = Username + Password) โปรดเก็บรักษามันไว้ให้ดี และอย่าเก็บมันไว้ในที่คนอื่นเข้าถึงได้ เช่น บัญชีการใช้งานสาธารณะ GitHub หรือ Client Side Code

การเรียกใช้งาน Leceipt API ต้องใส่ API Key มาใน Header ด้วยทุกครั้ง ตามตัวอย่างนี้:

API-Key: <your api key>

ทุกๆ API request ต้องทำผ่าน HTTPS หากเรียกใช้งาน API ผ่าน HTTP การเรียกใช้งานจะถูกปฏิเสธ

Receipt/Tax Invoices

Create a receipt/tax invoice (PDF File)

POST /etax/documents/receipts-taxinvoices/pdf

curl "https://api.leceipt.com/etax/documents/receipts-taxinvoices/pdf?api-version=2021-04-22" \
  -H "Content-Type: application/json" \
  -H "API-Key: <your api key>" 

ตัวอย่าง JSON Body Parameters (ที่อยู่ แบบมีโครงสร้าง)

{  
  "company": {
    "name": "บริษัท ผู้ขายทดสอบ จำกัด",
    "buildingNumber": "999",
    "address": "หมู่ 999",
    "streetPrefix": "ถ.",
    "streetName": "สาทร 99",
    "subDistrictPrefix": "แขวง",
    "subDistrictCode": "100402",
    "subDistrictName": "สีลม",
    "districtPrefix": "เขต",
    "districtCode": "1004",
    "districtName": "บางรัก",
    "provincePrefix": "",
    "provinceCode": "10",
    "provinceName": "กรุงเทพมหานคร",
    "postcode": "10500",
    "branchNumber": "00000",
    "branchText": "(สำนักงานใหญ่)",
    "taxNumberType": "TXID",
    "taxId": "1234567890123",    
    "phoneCountryCode": "+66",
    "phone": "812345678",
    "email": "test@test.com",
    "unstructure": false
  },
  "customer": {
    "name": "บริษัท ลูกค้าทดสอบ จำกัด",
    "buildingNumber": "99",
    "address": "หมู่ที่ 99",
    "streetPrefix": "ถนน",
    "streetName": "สาทร 99",
    "branchNumber": "00000",
    "branchText": "(สำนักงานใหญ่)",
    "subDistrictPrefix": "แขวง",
    "subDistrictCode": "100402",
    "subDistrictName": "สีลม",    
    "districtPrefix": "เขต",
    "districtCode": "1004",
    "districtName": "บางรัก",
    "provincePrefix": "",
    "provinceCode": "10",
    "provinceName": "กรุงเทพมหานคร",
    "postcode": "10500",
    "taxNumberType": "TXID",     
    "taxId": "1234567890123",       
    "phoneCountryCode": "+66",
    "phone": "812345678",
    "email": "test@test.com",
    "unstructure": false
  },  
  "date": "2021-03-23T14:50:21.073Z",
  "dateBE": "23/03/2564",
  "dateCE": "23/03/2021",
  "number": "TIV20210300001",
  "items": [
    {
      "number": "1",
      "description": "ค่าไอศครีม",
      "quantity": 1,
      "unitCode": "",
      "unitName": "",
      "price": 10000,
      "total": 10000
    }
  ],
  "percentVat": 7,
  "amountTotal": 10000,
  "vatTotal": 700,
  "grandTotal": 10700,  
  "note": "ทดสอบหมายเหตุ",    
  "receivedBy": "สมชาย",  
  "reIssue": false
}

ตัวอย่าง JSON Body Parameters (ที่อยู่ แบบไม่มีโครงสร้าง)

{  
  "company": {
    "name": "บริษัท ผู้ขายทดสอบ จำกัด",
    "addressLineOne": "999 หมู่ 999 ถ.สาทร 99",
    "addressLineTwo": "แขวงสีลม เขตบางรัก กรุงเทพมหานคร",   
    "postcode": "10500",
    "branchNumber": "00000",
    "branchText": "(สำนักงานใหญ่)",
    "taxNumberType": "TXID",
    "taxId": "1234567890123",    
    "phoneCountryCode": "+66",
    "phone": "812345678",
    "email": "test@test.com",
    "unstructure": true
  },
  "customer": {
    "name": "บริษัท ลูกค้าทดสอบ จำกัด",
    "addressLineOne": "99 หมู่ 99 ถ.สาทร 99",
    "addressLineTwo": "แขวงสีลม เขตบางรัก กรุงเทพมหานคร",   
    "postcode": "10500",
    "branchNumber": "00000",
    "branchText": "(สำนักงานใหญ่)",        
    "taxNumberType": "TXID",     
    "taxId": "1234567890123",       
    "phoneCountryCode": "+66",
    "phone": "812345678",
    "email": "test@test.com",
    "unstructure": true
  },  
  "date": "2021-03-23T14:50:21.073Z",
  "dateBE": "23/03/2564",
  "dateCE": "23/03/2021",
  "number": "TIV20210300001",
  "items": [
    {
      "number": "1",
      "description": "ค่าไอศครีม",
      "quantity": 1,
      "unitCode": "",
      "unitName": "",
      "price": 10000,
      "total": 10000
    }
  ],
  "percentVat": 7,
  "amountTotal": 10000,
  "vatTotal": 700,
  "grandTotal": 10700,  
  "note": "ทดสอบหมายเหตุ",    
  "receivedBy": "สมชาย",  
  "reIssue": false
}

คำสั่งด้านบนจะ Response JSON เป็นรายละเอียด Job ตามโครงสร้างข้างล่างนี้

ท่านสามารถนำ id ของ Job ไปสอบถามการสร้างไฟล์ ได้ที่ Endpoint Jobs

{
  "id": "f718ec36-05be-4321-a037-3611dd978643",  
  "createdTime": "2021-03-23T14:47:03.3419559Z",    
  "status": "Processing"
}

Endpoint นี้ ใช้สำหรับสร้าง ใบเสร็จรับเงิน/ใบกำกับภาษี เอกสารที่สร้างจะเป็นไฟล์ PDF

เอกสารจะถูกลงลายมือชื่อดิจิทัลด้วยใบรับรองอิเล็กทรอนิกส์ที่ท่านติดตั้งไว้ในบัญชีของท่าน

(หมายเหตุ การสร้างใบเสร็จรับเงิน/ใบกำกับภาษีอิเล็กทรอนิกส์จะต้อง สร้างไฟล์ PDF และ XML พร้อมกัน ท่านต้องเรียก Endpoint สำหรับสร้างไฟล์ XML พร้อมกับ Endpoint นี้ เพื่อที่ไฟล์ PDF และ XML จะถูกสร้างพร้อมกันตามประกาศของกรมสรรพากร)

HTTP Request

POST https://api.leceipt.com/etax/documents/receipts-taxinvoices/pdf?api-version=2021-04-22

JSON Body Parameters

Parameter Type Description Required
company Object รายละเอียดผู้ขายสินค้าหรือบริการ Yes
customer Object รายละเอียดผู้ซื้อสินค้าหรือบริการ Yes
date String วัน เดือน ปี เวลา ที่ออกใบเสร็จรับเงิน/ใบกำกับภาษี (YYYY-MM-DDTHH:mm:ss.sssZ ISO 8601 UTC Time format) Yes
dateBE String วัน เดือน ปี (พ.ศ.) ที่ออกใบเสร็จรับเงิน/ใบกำกับภาษี Yes
dateCE String วัน เดือน ปี (ค.ศ.) ที่ออกใบเสร็จรับเงิน/ใบกำกับภาษี No
number String เลขที่ ใบเสร็จรับเงิน/ใบกำกับภาษี Yes
items Array รายละเอียดสินค้าหรือบริการ Yes
percentVat Integer เปอร์เซ็นภาษีมูลค่าเพิ่ม ปัจจุบัน 7 Yes
amountTotal Number มูลค่าสินค้าหรือบริการรวมแล้ว (ก่อน Vat) Yes
vatTotal Number มูลค่าภาษีมูลค่าเพิ่ม Yes
grandTotal Number มูลค่าสินค้าหรือบริการรวมแล้ว (หลัง Vat) Yes
note String หมายเหตุ ที่ต้องการแสดงในใบเสร็จรับเงิน/ใบกำกับภาษี Yes
receivedBy String ชื่อผู้รับเงิน Yes
reIssue Boolean ถ้าออกใบกำกับภาษีใหม่ reIssue=false / ถ้าออกใบกำกับภาษีใหม่ทดแทนใบกำกับภาษีเดิมที่ถูกยกเลิก reIssue=true Yes

Company (ผู้ขาย) / Customer (ผู้ซื้อ)

รูปแบบที่อยู่ แบบมีโครงสร้าง

Parameter Type Description Required
name String ชื่อผู้ขายสินค้าหรือบริการ Yes
buildingNumber String บ้านเลขที่ Yes
address String ที่อยู่ Yes
streetPrefix String คำนำหน้าชื่อถนน เช่น ถนน ถ. (ถ้าไม่ต้องการให้แสดงให้ใส่ "") Yes
streetName String ชื่อถนน Yes
subDistrictPrefix String คำนำหน้าชื่อตำบล เช่น ตำบล ต. แขวง (ถ้าไม่ต้องการให้แสดงให้ใส่ "") Yes
subDistrictCode String รหัสตำบล Yes
subDistrictName String ชื่อตำบล/แขวง Yes
districtPrefix String คำนำหน้าชื่ออำเภอ เช่น อำเภอ อ. เขต (ถ้าไม่ต้องการให้แสดงให้ใส่ "") Yes
districtCode String รหัสอำเภอ Yes
districtName String ชื่ออำเภอ Yes
provincePrefix String คำนำหน้าชื่อจังหวัด เช่น จังหวัด (ถ้าไม่ต้องการให้แสดงให้ใส่ "") Yes
provinceCode String รหัสจังหวัด Yes
provinceName String ชื่อจังหวัด Yes
postcode String รหัสไปรษณีย์ Yes
branchNumber String รหัสสาขา สำนักงานใหญ่เป็น 00000 Yes
branchText String ชื่อสำนักงานใหญ่ เช่น (สำนักงานใหญ่) สำนักงานใหญ่ Head Office Yes
taxNumberType String รหัสประเภทผู้เสียภาษี Yes
taxId String เลขประจำตัวผู้เสียภาษี Yes
phoneContryCode String รหัสประเทศ เช่น +66 สำหรับประเทศไทย Yes
phone String เบอร์โทรศัพท์ ไม่ต้องใส่ 0 ข้างหน้า Yes
email String อีเมล Yes
unstructure Boolean ที่อยู่แบบมีโครงสร้าง unstructure=false Yes

รูปแบบที่อยู่ แบบไม่มีโครงสร้าง

Parameter Type Description Required
name String ชื่อผู้ขายสินค้าหรือบริการ Yes
addressLineOne String ที่อยู่ บรรทัดที่ 1 Yes
addressLineTwo String ที่อยู่ บรรทัดที่ 2 No
postcode String รหัสไปรษณีย์ Yes
branchNumber String รหัสสาขา สำนักงานใหญ่เป็น 00000 Yes
branchText String ชื่อสำนักงานใหญ่ เช่น (สำนักงานใหญ่) สำนักงานใหญ่ Head Office Yes
taxNumberType String รหัสประเภทผู้เสียภาษี Yes
taxId String เลขประจำตัวผู้เสียภาษี Yes
phoneContryCode String รหัสประเทศ เช่น +66 สำหรับประเทศไทย Yes
phone String เบอร์โทรศัพท์ ไม่ต้องใส่ 0 ข้างหน้า Yes
email String อีเมล Yes
unstructure Boolean ที่อยู่แบบไม่มีโครงสร้าง unstructure=true Yes

Items (รายละเอียดสินค้าหรือบริการ)

Parameter Type Description Required
number String ลำดับรายการสินค้าหรือบริการ No
description String รายละเอียดสินค้าหรือบริการ Yes
quantity String จำนวนสินค้า Yes
unitCode String รหัสหน่วยสินค้า (อ้างอิงจากรหัส UNECE Recommendation No. 20 Codes for Units of Measure Used in International Trade) No
unitName String ชื่อหน่วยสินค้า No
price Number ราคาสินค้าหรือบริการ Yes
total String ราคารวมสินค้าหรือบริการ Yes

Tax Number Type (รหัสประเภทผู้เสียภาษี)

Tax Number Type Description
TXID ถ้า taxNumberType = "TXID" ให้ใส่ค่า taxId = เลขประจำตัวผู้เสียภาษีอาการสำหรับนิติบุคคล 13 หลัก
NIDN ถ้า taxNumberType = "NIDN" ให้ใส่ค่า taxId = เลขประจำตัวประชาชน 13 หลัก (สำหรับบุคคลธรรมดา)
CCPT ถ้า taxNumberType = "CCPT" ให้ใส่ค่า taxId = เลขหนังสือเดินทาง (Passport)
OTHR ถ้า taxNumberType = "OTHR" ให้ใส่ค่า taxId = หากไม่ต้องการระบุให้ระบุเป็น N/A

Create a receipt/tax invoice (XML File)

POST /etax/documents/receipts-taxinvoices/xml

curl "https://api.leceipt.com/etax/documents/receipts-taxinvoices/xml?api-version=2021-04-22" \
  -H "Content-Type: application/json" \
  -H "API-Key: <your api key>" 

ตัวอย่าง JSON Body Parameters (ที่อยู่ แบบมีโครงสร้าง)

{  
  "company": {
    "name": "บริษัท ผู้ขายทดสอบ จำกัด",
    "buildingNumber": "999",
    "address": "หมู่ 999",
    "streetPrefix": "ถ.",
    "streetName": "สาทร 99",
    "subDistrictPrefix": "แขวง",
    "subDistrictCode": "100402",
    "subDistrictName": "สีลม",
    "districtPrefix": "เขต",
    "districtCode": "1004",
    "districtName": "บางรัก",
    "provincePrefix": "",
    "provinceCode": "10",
    "provinceName": "กรุงเทพมหานคร",
    "postcode": "10500",
    "branchNumber": "00000",
    "branchText": "(สำนักงานใหญ่)",
    "taxNumberType": "TXID",
    "taxId": "1234567890123",    
    "phoneCountryCode": "+66",
    "phone": "812345678",
    "email": "test@test.com",
    "unstructure": false
  },
  "customer": {
    "name": "บริษัท ลูกค้าทดสอบ จำกัด",
    "buildingNumber": "99",
    "address": "หมู่ที่ 99",
    "streetPrefix": "ถนน",
    "streetName": "สาทร 99",
    "branchNumber": "00000",
    "branchText": "(สำนักงานใหญ่)",
    "subDistrictPrefix": "แขวง",
    "subDistrictCode": "100402",
    "subDistrictName": "สีลม",    
    "districtPrefix": "เขต",
    "districtCode": "1004",
    "districtName": "บางรัก",
    "provincePrefix": "",
    "provinceCode": "10",
    "provinceName": "กรุงเทพมหานคร",
    "postcode": "10500",
    "taxNumberType": "TXID", 
    "taxId": "1234567890123",       
    "phoneCountryCode": "+66",
    "phone": "812345678",
    "email": "test@test.com",
    "unstructure": false
  },  
  "date": "2021-03-23T14:50:21.073Z",
  "dateBE": "23/03/2564",
  "dateCE": "23/03/2021",
  "number": "TIV20210300001",
  "items": [
    {
      "number": "1",
      "description": "ค่าไอศครีม",
      "quantity": 1,
      "unitCode": "",
      "unitName": "",
      "price": 10000,
      "total": 10000
    }
  ],
  "percentVat": 7,
  "amountTotal": 10000,
  "vatTotal": 700,
  "grandTotal": 10700,  
  "note": "ทดสอบหมายเหตุ",    
  "receivedBy": "สมชาย",  
  "reIssue": false
}

ตัวอย่าง JSON Body Parameters (ที่อยู่ แบบไม่มีโครงสร้าง)

{  
  "company": {
    "name": "บริษัท ผู้ขายทดสอบ จำกัด",
    "addressLineOne": "999 หมู่ 999 ถ.สาทร 99",    
    "addressLineTwo": "แขวงสีลม เขตบางรัก กรุงเทพมหานคร",   
    "postcode": "10500",
    "branchNumber": "00000",
    "branchText": "(สำนักงานใหญ่)",
    "taxNumberType": "TXID",
    "taxId": "1234567890123",    
    "phoneCountryCode": "+66",
    "phone": "812345678",
    "email": "test@test.com",
    "unstructure": true
  },
  "customer": {
    "name": "บริษัท ลูกค้าทดสอบ จำกัด",
    "addressLineOne": "99 หมู่ 99 ถ.สาทร 99",    
    "addressLineTwo": "แขวงสีลม เขตบางรัก กรุงเทพมหานคร",     
    "postcode": "10500",
    "branchNumber": "00000",
    "branchText": "(สำนักงานใหญ่)",        
    "taxNumberType": "TXID", 
    "taxId": "1234567890123",       
    "phoneCountryCode": "+66",
    "phone": "812345678",
    "email": "test@test.com",
    "unstructure": true
  },  
  "date": "2021-03-23T14:50:21.073Z",
  "dateBE": "23/03/2564",
  "dateCE": "23/03/2021",
  "number": "TIV20210300001",
  "items": [
    {
      "number": "1",
      "description": "ค่าไอศครีม",
      "quantity": 1,
      "unitCode": "",
      "unitName": "",
      "price": 10000,
      "total": 10000
    }
  ],
  "percentVat": 7,
  "amountTotal": 10000,
  "vatTotal": 700,
  "grandTotal": 10700,  
  "note": "ทดสอบหมายเหตุ",    
  "receivedBy": "สมชาย",  
  "reIssue": false
}

คำสั่งด้านบนจะ Response JSON เป็นรายละเอียด Job ตามโครงสร้างข้างล่างนี้

ท่านสามารถนำ id ของ Job ไปสอบถามการสร้างไฟล์ ได้ที่ Endpoint Jobs

{
  "id": "g718ec36-05be-4321-a037-3611dd978643",  
  "createdTime": "2021-03-23T14:48:03.3419559Z",    
  "status": "Processing"
}

Endpoint นี้ ใช้สำหรับสร้าง ใบเสร็จรับเงิน/ใบกำกับภาษี เอกสารที่สร้างจะเป็นไฟล์ XML

เอกสารจะถูกลงลายมือชื่อดิจิทัลด้วยใบรับรองอิเล็กทรอนิกส์ที่ท่านติดตั้งไว้ในบัญชีของท่าน

(หมายเหตุ การสร้างใบเสร็จรับเงิน/ใบกำกับภาษีอิเล็กทรอนิกส์จะต้อง สร้างไฟล์ PDF และ XML พร้อมกัน ท่านต้องเรียก Endpoint สำหรับสร้างไฟล์ PDF พร้อมกับ Endpoint นี้ เพื่อที่ไฟล์ PDF และ XML จะถูกสร้างพร้อมกันตามประกาศของกรมสรรพากร)

HTTP Request

POST https://api.leceipt.com/etax/documents/receipts-taxinvoices/xml?api-version=2021-04-22

JSON Body Parameters

Parameter Type Description Required
company Object รายละเอียดผู้ขายสินค้าหรือบริการ Yes
customer Object รายละเอียดผู้ซื้อสินค้าหรือบริการ Yes
date String วัน เดือน ปี เวลา ที่ออกใบเสร็จรับเงิน/ใบกำกับภาษี (YYYY-MM-DDTHH:mm:ss.sssZ ISO 8601 UTC Time format) Yes
dateBE String วัน เดือน ปี (พ.ศ.) ที่ออกใบเสร็จรับเงิน/ใบกำกับภาษี Yes
dateCE String วัน เดือน ปี (ค.ศ.) ที่ออกใบเสร็จรับเงิน/ใบกำกับภาษี No
number String เลขที่ ใบเสร็จรับเงิน/ใบกำกับภาษี Yes
items Array รายละเอียดสินค้าหรือบริการ Yes
percentVat Integer เปอร์เซ็นภาษีมูลค่าเพิ่ม ปัจจุบัน 7 Yes
amountTotal Number มูลค่าสินค้าหรือบริการรวมแล้ว (ก่อน Vat) Yes
vatTotal Number มูลค่าภาษีมูลค่าเพิ่ม Yes
grandTotal Number มูลค่าสินค้าหรือบริการรวมแล้ว (หลัง Vat) Yes
note String หมายเหตุ ที่ต้องการแสดงในใบเสร็จรับเงิน/ใบกำกับภาษี Yes
receivedBy String ชื่อผู้รับเงิน Yes
reIssue Boolean ถ้าออกใบกำกับภาษีใหม่ reIssue=false / ถ้าออกใบกำกับภาษีใหม่ทดแทนใบกำกับภาษีเดิมที่ถูกยกเลิก reIssue=true Yes

Company (ผู้ขาย) / Customer (ผู้ซื้อ)

รูปแบบที่อยู่ แบบมีโครงสร้าง

Parameter Type Description Required
name String ชื่อผู้ขายสินค้าหรือบริการ Yes
buildingNumber String บ้านเลขที่ Yes
address String ที่อยู่ Yes
streetPrefix String คำนำหน้าชื่อถนน เช่น ถนน ถ. (ถ้าไม่ต้องการให้แสดงให้ใส่ "") Yes
streetName String ชื่อถนน Yes
subDistrictPrefix String คำนำหน้าชื่อตำบล เช่น ตำบล ต. แขวง (ถ้าไม่ต้องการให้แสดงให้ใส่ "") Yes
subDistrictCode String รหัสตำบล Yes
subDistrictName String ชื่อตำบล/แขวง Yes
districtPrefix String คำนำหน้าชื่ออำเภอ เช่น อำเภอ อ. เขต (ถ้าไม่ต้องการให้แสดงให้ใส่ "") Yes
districtCode String รหัสอำเภอ Yes
districtName String ชื่ออำเภอ Yes
provincePrefix String คำนำหน้าชื่อจังหวัด เช่น จังหวัด (ถ้าไม่ต้องการให้แสดงให้ใส่ "") Yes
provinceCode String รหัสจังหวัด Yes
provinceName String ชื่อจังหวัด Yes
postcode String รหัสไปรษณีย์ Yes
branchNumber String รหัสสาขา สำนักงานใหญ่เป็น 00000 Yes
branchText String ชื่อสำนักงานใหญ่ เช่น (สำนักงานใหญ่) สำนักงานใหญ่ Head Office Yes
taxNumberType String รหัสประเภทผู้เสียภาษี Yes
taxId String เลขประจำตัวผู้เสียภาษี Yes
phoneContryCode String รหัสประเทศ เช่น +66 สำหรับประเทศไทย Yes
phone String เบอร์โทรศัพท์ ไม่ต้องใส่ 0 ข้างหน้า Yes
email String อีเมล Yes
unstructure Boolean ที่อยู่แบบมีโครงสร้าง unstructure=false Yes

รูปแบบที่อยู่ แบบไม่มีโครงสร้าง

Parameter Type Description Required
name String ชื่อผู้ขายสินค้าหรือบริการ Yes
addressLineOne String ที่อยู่ บรรทัดที่ 1 Yes
addressLineTwo String ที่อยู่ บรรทัดที่ 2 No
postcode String รหัสไปรษณีย์ Yes
branchNumber String รหัสสาขา สำนักงานใหญ่เป็น 00000 Yes
branchText String ชื่อสำนักงานใหญ่ เช่น (สำนักงานใหญ่) สำนักงานใหญ่ Head Office Yes
taxNumberType String รหัสประเภทผู้เสียภาษี Yes
taxId String เลขประจำตัวผู้เสียภาษี Yes
phoneContryCode String รหัสประเทศ เช่น +66 สำหรับประเทศไทย Yes
phone String เบอร์โทรศัพท์ ไม่ต้องใส่ 0 ข้างหน้า Yes
email String อีเมล Yes
unstructure Boolean ที่อยู่แบบไม่มีโครงสร้าง unstructure=true Yes

Items (รายละเอียดสินค้าหรือบริการ)

Parameter Type Description Required
number String ลำดับรายการสินค้าหรือบริการ No
description String รายละเอียดสินค้าหรือบริการ Yes
quantity String จำนวนสินค้า Yes
unitCode String รหัสหน่วยสินค้า (อ้างอิงจากรหัส UNECE Recommendation No. 20 Codes for Units of Measure Used in International Trade) No
unitName String ชื่อหน่วยสินค้า No
price Number ราคาสินค้าหรือบริการ Yes
total String ราคารวมสินค้าหรือบริการ Yes

Tax Number Type (รหัสประเภทผู้เสียภาษี)

Tax Number Type Description
TXID ถ้า taxNumberType = "TXID" ให้ใส่ค่า taxId = เลขประจำตัวผู้เสียภาษีอาการสำหรับนิติบุคคล 13 หลัก
NIDN ถ้า taxNumberType = "NIDN" ให้ใส่ค่า taxId = เลขประจำตัวประชาชน 13 หลัก (สำหรับบุคคลธรรมดา)
CCPT ถ้า taxNumberType = "CCPT" ให้ใส่ค่า taxId = เลขหนังสือเดินทาง (Passport)
OTHR ถ้า taxNumberType = "OTHR" ให้ใส่ค่า taxId = หากไม่ต้องการระบุให้ระบุเป็น N/A

Debit Notes

Create a debit note (PDF File)

POST /etax/documents/debit-notes/pdf

curl "https://api.leceipt.com/etax/documents/debit-notes/pdf?api-version=2021-04-22" \
  -H "Content-Type: application/json" \
  -H "API-Key: <your api key>" 

ตัวอย่าง JSON Body Parameters (ที่อยู่ แบบมีโครงสร้าง)

{  
  "company": {
    "name": "บริษัท ผู้ขายทดสอบ จำกัด",
    "buildingNumber": "999",
    "address": "หมู่ 999",
    "streetPrefix": "ถ.",
    "streetName": "สาทร 99",
    "subDistrictPrefix": "แขวง",
    "subDistrictCode": "100402",
    "subDistrictName": "สีลม",
    "districtPrefix": "เขต",
    "districtCode": "1004",
    "districtName": "บางรัก",
    "provincePrefix": "",
    "provinceCode": "10",
    "provinceName": "กรุงเทพมหานคร",
    "postcode": "10500",
    "branchNumber": "00000",
    "branchText": "(สำนักงานใหญ่)",
    "taxNumberType": "TXID",
    "taxId": "1234567890123",    
    "phoneCountryCode": "+66",
    "phone": "812345678",
    "email": "test@test.com",
    "unstructure": false
  },
  "customer": {
    "name": "บริษัท ลูกค้าทดสอบ จำกัด",
    "buildingNumber": "99",
    "address": "หมู่ที่ 99",
    "streetPrefix": "ถนน",
    "streetName": "สาทร 99",
    "branchNumber": "00000",
    "branchText": "(สำนักงานใหญ่)",
    "subDistrictPrefix": "แขวง",
    "subDistrictCode": "100402",
    "subDistrictName": "สีลม",    
    "districtPrefix": "เขต",
    "districtCode": "1004",
    "districtName": "บางรัก",
    "provincePrefix": "",
    "provinceCode": "10",
    "provinceName": "กรุงเทพมหานคร",
    "postcode": "10500",
    "taxNumberType": "TXID",  
    "taxId": "1234567890123",      
    "phoneCountryCode": "+66",
    "phone": "812345678",
    "email": "test@test.com",
    "unstructure": false
  },  
  "date": "2021-03-20T15:36:04.835Z",
  "dateBE": "20/03/2564",
  "dateCE": "20/03/2021",
  "number": "TIV20210100001",
  "items": [
    {
      "number": "1",
      "description": "ค่าไอศครีม",
      "quantity": 1,
      "unitCode": "",
      "unitName": "",
      "price": 1000,
      "total": 1000
    }
  ],
  "percentVat": 7,
  "amountTotal": 1000,
  "vatTotal": 69.3,
  "grandTotal": 1059.3,  
  "note": "ทดสอบหมายเหตุ",    
  "receivedBy": "สมชาย",  
  "refer": {
    "typeCode": "T03",
    "typeName": "ใบเสร็จรับเงิน/ใบกำกับภาษี",
    "number": "RCT-TIV-0001",
    "date": "2021-03-17T17:00:00.000Z",
    "dateBE": "18/03/2564",
    "dateCE": "18/03/2021",
    "reasonCode": "DBNG99",
    "reasonName": "เหตุอื่น (ระบุสาเหตุ กรณีขายสินค้า)",
    "specificReason": "ทดสอบสาเหตุ",    
    "amountTotal": 10,
    "diffAmountTotal": 990
  }
}

ตัวอย่าง JSON Body Parameters (ที่อยู่ แบบไม่มีโครงสร้าง)

{  
  "company": {
    "name": "บริษัท ผู้ขายทดสอบ จำกัด",
    "addressLineOne": "999 หมู่ 999 ถ.สาทร 99",    
    "addressLineTwo": "แขวงสีลม เขตบางรัก กรุงเทพมหานคร", 
    "provinceName": "กรุงเทพมหานคร",
    "postcode": "10500",
    "branchNumber": "00000",
    "branchText": "(สำนักงานใหญ่)",
    "taxNumberType": "TXID",
    "taxId": "1234567890123",    
    "phoneCountryCode": "+66",
    "phone": "812345678",
    "email": "test@test.com",
    "unstructure": true
  },
  "customer": {
    "name": "บริษัท ลูกค้าทดสอบ จำกัด",
    "addressLineOne": "99 หมู่ 99 ถ.สาทร 99",    
    "addressLineTwo": "แขวงสีลม เขตบางรัก กรุงเทพมหานคร",     
    "postcode": "10500",
    "branchNumber": "00000",
    "branchText": "(สำนักงานใหญ่)",
    "taxNumberType": "TXID",  
    "taxId": "1234567890123",      
    "phoneCountryCode": "+66",
    "phone": "812345678",
    "email": "test@test.com",
    "unstructure": true
  },  
  "date": "2021-03-20T15:36:04.835Z",
  "dateBE": "20/03/2564",
  "dateCE": "20/03/2021",
  "number": "TIV20210100001",
  "items": [
    {
      "number": "1",
      "description": "ค่าไอศครีม",
      "quantity": 1,
      "unitCode": "",
      "unitName": "",
      "price": 1000,
      "total": 1000
    }
  ],
  "percentVat": 7,
  "amountTotal": 1000,
  "vatTotal": 69.3,
  "grandTotal": 1059.3,  
  "note": "ทดสอบหมายเหตุ",    
  "receivedBy": "สมชาย",  
  "refer": {
    "typeCode": "T03",
    "typeName": "ใบเสร็จรับเงิน/ใบกำกับภาษี",
    "number": "RCT-TIV-0001",
    "date": "2021-03-17T17:00:00.000Z",
    "dateBE": "18/03/2564",
    "dateCE": "18/03/2021",
    "reasonCode": "DBNG99",
    "reasonName": "เหตุอื่น (ระบุสาเหตุ กรณีขายสินค้า)",
    "specificReason": "ทดสอบสาเหตุ",    
    "amountTotal": 10,
    "diffAmountTotal": 990
  }
}

คำสั่งด้านบนจะ Response JSON เป็นรายละเอียด Job ตามโครงสร้างข้างล่างนี้

ท่านสามารถนำ id ของ Job ไปสอบถามการสร้างไฟล์ ได้ที่ Endpoint Jobs

{
  "id": "6e09b9c4-c352-4fff-be6c-f0b3d15cc8d2",  
  "createdTime": "2021-03-20T15:38:20.8591569Z",    
  "status": "Processing"
}

Endpoint นี้ ใช้สำหรับสร้าง ใบเพิ่มหนี้ เอกสารที่สร้างจะเป็นไฟล์ PDF

เอกสารจะถูกลงลายมือชื่อดิจิทัลด้วยใบรับรองอิเล็กทรอนิกส์ที่ท่านติดตั้งไว้ในบัญชีของท่าน

(หมายเหตุ การสร้างใบเพิ่มหนี้อิเล็กทรอนิกส์จะต้อง สร้างไฟล์ PDF และ XML พร้อมกัน ท่านต้องเรียก Endpoint สำหรับสร้างไฟล์ XML พร้อมกับ Endpoint นี้ เพื่อที่ไฟล์ PDF และ XML จะถูกสร้างพร้อมกันตามประกาศของกรมสรรพากร)

HTTP Request

POST https://api.leceipt.com/etax/documents/debit-notes/pdf?api-version=2021-04-22

JSON Body Parameters

Parameter Type Description Required
company Object รายละเอียดผู้ขายสินค้าหรือบริการ Yes
customer Object รายละเอียดผู้ซื้อสินค้าหรือบริการ Yes
date String วัน เดือน ปี เวลา ที่ออกใบเสร็จรับเงิน/ใบกำกับภาษี (YYYY-MM-DDTHH:mm:ss.sssZ ISO 8601 UTC Time format) Yes
dateBE String วัน เดือน ปี (พ.ศ.) ที่ออกใบเพิ่มหนี้ Yes
dateCE String วัน เดือน ปี (ค.ศ.) ที่ออกใบเพิ่มหนี้ No
number String เลขที่ ใบเพิ่มหนี้ Yes
items Array รายละเอียดสินค้าหรือบริการ Yes
percentVat Integer เปอร์เซ็นภาษีมูลค่าเพิ่ม ปัจจุบัน 7 Yes
amountTotal Number มูลค่าสินค้าหรือบริการรวมแล้ว (ก่อน Vat) Yes
vatTotal Number มูลค่าภาษีมูลค่าเพิ่ม Yes
grandTotal Number มูลค่าสินค้าหรือบริการรวมแล้ว (หลัง Vat) Yes
note String หมายเหตุ ที่ต้องการแสดงในใบเพิ่มหนี้ Yes
receivedBy String ชื่อผู้รับเงิน Yes
refer Object เอกสารอ้างถึง Yes

Company (ผู้ขาย) / Customer (ผู้ซื้อ)

รูปแบบที่อยู่ แบบมีโครงสร้าง

Parameter Type Description Required
name String ชื่อผู้ขายสินค้าหรือบริการ Yes
buildingNumber String บ้านเลขที่ Yes
address String ที่อยู่ Yes
streetPrefix String คำนำหน้าชื่อถนน เช่น ถนน ถ. (ถ้าไม่ต้องการให้แสดงให้ใส่ "") Yes
streetName String ชื่อถนน Yes
subDistrictPrefix String คำนำหน้าชื่อตำบล เช่น ตำบล ต. แขวง (ถ้าไม่ต้องการให้แสดงให้ใส่ "") Yes
subDistrictCode String รหัสตำบล Yes
subDistrictName String ชื่อตำบล/แขวง Yes
districtPrefix String คำนำหน้าชื่ออำเภอ เช่น อำเภอ อ. เขต (ถ้าไม่ต้องการให้แสดงให้ใส่ "") Yes
districtCode String รหัสอำเภอ Yes
districtName String ชื่ออำเภอ Yes
provincePrefix String คำนำหน้าชื่อจังหวัด เช่น จังหวัด (ถ้าไม่ต้องการให้แสดงให้ใส่ "") Yes
provinceCode String รหัสจังหวัด Yes
provinceName String ชื่อจังหวัด Yes
postcode String รหัสไปรษณีย์ Yes
branchNumber String รหัสสาขา สำนักงานใหญ่เป็น 00000 Yes
branchText String ชื่อสำนักงานใหญ่ เช่น (สำนักงานใหญ่) สำนักงานใหญ่ Head Office Yes
taxNumberType String รหัสประเภทผู้เสียภาษี Yes
taxId String เลขประจำตัวผู้เสียภาษี Yes
phoneContryCode String รหัสประเทศ เช่น +66 สำหรับประเทศไทย Yes
phone String เบอร์โทรศัพท์ ไม่ต้องใส่ 0 ข้างหน้า Yes
email String อีเมล Yes
unstructure Boolean ที่อยู่แบบมีโครงสร้าง unstructure=false Yes

รูปแบบที่อยู่ แบบไม่มีโครงสร้าง

Parameter Type Description Required
name String ชื่อผู้ขายสินค้าหรือบริการ Yes
addressLineOne String ที่อยู่ บรรทัดที่ 1 Yes
addressLineTwo String ที่อยู่ บรรทัดที่ 2 No
postcode String รหัสไปรษณีย์ Yes
branchNumber String รหัสสาขา สำนักงานใหญ่เป็น 00000 Yes
branchText String ชื่อสำนักงานใหญ่ เช่น (สำนักงานใหญ่) สำนักงานใหญ่ Head Office Yes
taxNumberType String รหัสประเภทผู้เสียภาษี Yes
taxId String เลขประจำตัวผู้เสียภาษี Yes
phoneContryCode String รหัสประเทศ เช่น +66 สำหรับประเทศไทย Yes
phone String เบอร์โทรศัพท์ ไม่ต้องใส่ 0 ข้างหน้า Yes
email String อีเมล Yes
unstructure Boolean ที่อยู่แบบไม่มีโครงสร้าง unstructure=true Yes

Items (รายละเอียดสินค้าหรือบริการ)

Parameter Type Description Required
number String ลำดับรายการสินค้าหรือบริการ No
description String รายละเอียดสินค้าหรือบริการ Yes
quantity String จำนวนสินค้า Yes
unitCode String รหัสหน่วยสินค้า (อ้างอิงจากรหัส UNECE Recommendation No. 20 Codes for Units of Measure Used in International Trade) No
unitName String ชื่อหน่วยสินค้า No
price Number ราคาสินค้าหรือบริการ Yes
total String ราคารวมสินค้าหรือบริการ Yes

Refer (เอกสารอ้างถึง)

Parameter Type Description Required
typeCode String รหัสประเภทเอกสารอ้างถึง เช่น T03 Yes
typeName String ชื่อประเภทเอกสารอ้างถึง เช่น ใบเสร็จรับเงิน/ใบกำกับภาษี Yes
number String เลขที่เอกสารอ้างถึง Yes
date String วัน เดือน ปี เวลา ที่ออกเอกสารอ้างถึง (YYYY-MM-DDTHH:mm:ss.sssZ ISO 8601 UTC Time format) Yes
dateBE String วัน เดือน ปี (พ.ศ.) ที่ออกเอกสารอ้างถึง Yes
dateCE String วัน เดือน ปี (ค.ศ.) ที่ออกเอกสารอ้างถึง No
reasonCode String รหัสสาเหตุการออกใบเพิ่มหนี้ Yes
reasonName String ชื่อสาเหตุการออกใบเพิ่มหนี้ Yes
specificReason String หากสาเหตุเป็นอื่นๆ ต้องระบุเหตุผล (Required = Yes) No
amountTotal Number มูลค่าสินค้าหรือบริการตามเอกสารเดิม Yes
diffAmountTotal Number ผลต่างมูลค่าสินค้าหรือบริการตามเอกสารเดิมกับใบเพิ่มหนี้ Yes

Tax Number Type (รหัสประเภทผู้เสียภาษี)

Tax Number Type Description
TXID ถ้า taxNumberType = "TXID" ให้ใส่ค่า taxId = เลขประจำตัวผู้เสียภาษีอาการสำหรับนิติบุคคล 13 หลัก
NIDN ถ้า taxNumberType = "NIDN" ให้ใส่ค่า taxId = เลขประจำตัวประชาชน 13 หลัก (สำหรับบุคคลธรรมดา)
CCPT ถ้า taxNumberType = "CCPT" ให้ใส่ค่า taxId = เลขหนังสือเดินทาง (Passport)
OTHR ถ้า taxNumberType = "OTHR" ให้ใส่ค่า taxId = หากไม่ต้องการระบุให้ระบุเป็น N/A

Type Code (รหัสประเภทเอกสารอ้างถึง)

Type Code Type Name
388 ใบกำกับภาษี (Tax Invoice)
T02 ใบแจ้งหนี้/ใบกำกับภาษี (Invoice/Tax Invoice)
T03 ใบเสร็จรับเงิน/ใบกำกับภาษี (Receipt/Tax Invoice)
T04 ใบส่งของ/ใบกำกับภาษี (Delivery order/Tax Invoice)

Reason Code (รหัสสาเหตุการออกใบเพิ่มหนี้ กรณีขายสินค้า)

Reason Code Reason Name
DBNG01 มีการเพิ่มราคาค่าสินค้า (สินค้าเกินกว่าจำนวนที่ตกลงกัน)
DBNG02 คำนวณราคาสินค้า ผิดพลาดต่ำกว่าที่เป็นจริง
DBNG99 เหตุอื่นๆ (ระบุสาเหตุ)

Reason Code (รหัสสาเหตุการออกใบเพิ่มหนี้ กรณีบริการ)

Reason Code Reason Name
DBNS01 การเพิ่มราคาค่าบริการ (บริการเกินกว่าข้อกำหนดที่ตกลงกัน)
DBNS02 คำนวณราคาค่าบริการ ผิดพลาดต่ำกว่าที่เป็นจริง
DBNS99 เหตุอื่นๆ (ระบุสาเหตุ)

Create a debit note (XML File)

POST /etax/documents/debit-notes/xml

curl "https://api.leceipt.com/etax/documents/debit-notes/xml?api-version=2021-04-22" \
  -H "Content-Type: application/json" \
  -H "API-Key: <your api key>" 

ตัวอย่าง JSON Body Parameters (ที่อยู่ แบบมีโครงสร้าง)

{  
  "company": {
    "name": "บริษัท ผู้ขายทดสอบ จำกัด",
    "buildingNumber": "999",
    "address": "หมู่ 999",
    "streetPrefix": "ถ.",
    "streetName": "สาทร 99",
    "subDistrictPrefix": "แขวง",
    "subDistrictCode": "100402",
    "subDistrictName": "สีลม",
    "districtPrefix": "เขต",
    "districtCode": "1004",
    "districtName": "บางรัก",
    "provincePrefix": "",
    "provinceCode": "10",
    "provinceName": "กรุงเทพมหานคร",
    "postcode": "10500",
    "branchNumber": "00000",
    "branchText": "(สำนักงานใหญ่)",
    "taxNumberType": "TXID",
    "taxId": "1234567890123",    
    "phoneCountryCode": "+66",
    "phone": "812345678",
    "email": "test@test.com",
    "unstructure": false
  },
  "customer": {
    "name": "บริษัท ลูกค้าทดสอบ จำกัด",
    "buildingNumber": "99",
    "address": "หมู่ที่ 99",
    "streetPrefix": "ถนน",
    "streetName": "สาทร 99",
    "branchNumber": "00000",
    "branchText": "(สำนักงานใหญ่)",
    "subDistrictPrefix": "แขวง",
    "subDistrictCode": "100402",
    "subDistrictName": "สีลม",    
    "districtPrefix": "เขต",
    "districtCode": "1004",
    "districtName": "บางรัก",
    "provincePrefix": "",
    "provinceCode": "10",
    "provinceName": "กรุงเทพมหานคร",
    "postcode": "10500",
    "taxNumberType": "TXID",
    "taxId": "1234567890123",        
    "phoneCountryCode": "+66",
    "phone": "812345678",
    "email": "test@test.com",
    "unstructure": false
  },  
  "date": "2021-03-20T15:36:04.835Z",
  "dateBE": "20/03/2564",
  "dateCE": "20/03/2021",
  "number": "TIV20210100001",
  "items": [
    {
      "number": "1",
      "description": "ค่าไอศครีม",
      "quantity": 1,
      "unitCode": "",
      "unitName": "",
      "price": 1000,
      "total": 1000
    }
  ],
  "percentVat": 7,
  "amountTotal": 1000,
  "vatTotal": 69.3,
  "grandTotal": 1059.3,  
  "note": "ทดสอบหมายเหตุ",    
  "receivedBy": "สมชาย",  
  "refer": {
    "typeCode": "T03",
    "typeName": "ใบเสร็จรับเงิน/ใบกำกับภาษี",
    "number": "RCT-TIV-0001",
    "date": "2021-03-17T17:00:00.000Z",
    "dateBE": "18/03/2564",
    "dateCE": "18/03/2021",
    "reasonCode": "DBNG99",
    "reasonName": "เหตุอื่น (ระบุสาเหตุ กรณีขายสินค้า)",
    "specificReason": "ทดสอบสาเหตุ",    
    "amountTotal": 10,
    "diffAmountTotal": 990
  }
}

ตัวอย่าง JSON Body Parameters (ที่อยู่ แบบไม่มีโครงสร้าง)

{  
  "company": {
    "name": "บริษัท ผู้ขายทดสอบ จำกัด",
    "addressLineOne": "999 หมู่ 999 ถ.สาทร 99",    
    "addressLineTwo": "แขวงสีลม เขตบางรัก กรุงเทพมหานคร", 
    "postcode": "10500",
    "branchNumber": "00000",
    "branchText": "(สำนักงานใหญ่)",
    "taxNumberType": "TXID",
    "taxId": "1234567890123",    
    "phoneCountryCode": "+66",
    "phone": "812345678",
    "email": "test@test.com",
    "unstructure": true
  },
  "customer": {
    "name": "บริษัท ลูกค้าทดสอบ จำกัด",
    "addressLineOne": "99 หมู่ 99 ถ.สาทร 99",    
    "addressLineTwo": "แขวงสีลม เขตบางรัก กรุงเทพมหานคร",     
    "postcode": "10500",
    "branchNumber": "00000",
    "branchText": "(สำนักงานใหญ่)",
    "taxNumberType": "TXID",
    "taxId": "1234567890123",        
    "phoneCountryCode": "+66",
    "phone": "812345678",
    "email": "test@test.com",
    "unstructure": true
  },  
  "date": "2021-03-20T15:36:04.835Z",
  "dateBE": "20/03/2564",
  "dateCE": "20/03/2021",
  "number": "TIV20210100001",
  "items": [
    {
      "number": "1",
      "description": "ค่าไอศครีม",
      "quantity": 1,
      "unitCode": "",
      "unitName": "",
      "price": 1000,
      "total": 1000
    }
  ],
  "percentVat": 7,
  "amountTotal": 1000,
  "vatTotal": 69.3,
  "grandTotal": 1059.3,  
  "note": "ทดสอบหมายเหตุ",    
  "receivedBy": "สมชาย",  
  "refer": {
    "typeCode": "T03",
    "typeName": "ใบเสร็จรับเงิน/ใบกำกับภาษี",
    "number": "RCT-TIV-0001",
    "date": "2021-03-17T17:00:00.000Z",
    "dateBE": "18/03/2564",
    "dateCE": "18/03/2021",
    "reasonCode": "DBNG99",
    "reasonName": "เหตุอื่น (ระบุสาเหตุ กรณีขายสินค้า)",
    "specificReason": "ทดสอบสาเหตุ",    
    "amountTotal": 10,
    "diffAmountTotal": 990
  }
}

คำสั่งด้านบนจะ Response JSON เป็นรายละเอียด Job ตามโครงสร้างข้างล่างนี้

ท่านสามารถนำ id ของ Job ไปสอบถามการสร้างไฟล์ ได้ที่ Endpoint Jobs

{
  "id": "6e09b9c4-c352-4fff-be6c-f0b3d15cc8d2",  
  "createdTime": "2021-03-20T15:38:20.8591569Z",    
  "status": "Processing"
}

Endpoint นี้ ใช้สำหรับสร้าง ใบเพิ่มหนี้ เอกสารที่สร้างจะเป็นไฟล์ XML

เอกสารจะถูกลงลายมือชื่อดิจิทัลด้วยใบรับรองอิเล็กทรอนิกส์ที่ท่านติดตั้งไว้ในบัญชีของท่าน

(หมายเหตุ การสร้างใบเพิ่มหนี้อิเล็กทรอนิกส์จะต้อง สร้างไฟล์ PDF และ XML พร้อมกัน ท่านต้องเรียก Endpoint สำหรับสร้างไฟล์ PDF พร้อมกับ Endpoint นี้ เพื่อที่ไฟล์ PDF และ XML จะถูกสร้างพร้อมกันตามประกาศของกรมสรรพากร)

HTTP Request

POST https://api.leceipt.com/etax/documents/debit-notes/xml?api-version=2021-04-22

JSON Body Parameters

Parameter Type Description Required
company Object รายละเอียดผู้ขายสินค้าหรือบริการ Yes
customer Object รายละเอียดผู้ซื้อสินค้าหรือบริการ Yes
date String วัน เดือน ปี เวลา ที่ออกใบเสร็จรับเงิน/ใบกำกับภาษี (YYYY-MM-DDTHH:mm:ss.sssZ ISO 8601 UTC Time format) Yes
dateBE String วัน เดือน ปี (พ.ศ.) ที่ออกใบเพิ่มหนี้ Yes
dateCE String วัน เดือน ปี (ค.ศ.) ที่ออกใบเพิ่มหนี้ No
number String เลขที่ ใบเพิ่มหนี้ Yes
items Array รายละเอียดสินค้าหรือบริการ Yes
percentVat Integer เปอร์เซ็นภาษีมูลค่าเพิ่ม ปัจจุบัน 7 Yes
amountTotal Number มูลค่าสินค้าหรือบริการรวมแล้ว (ก่อน Vat) Yes
vatTotal Number มูลค่าภาษีมูลค่าเพิ่ม Yes
grandTotal Number มูลค่าสินค้าหรือบริการรวมแล้ว (หลัง Vat) Yes
note String หมายเหตุ ที่ต้องการแสดงในใบเพิ่มหนี้ Yes
receivedBy String ชื่อผู้รับเงิน Yes
refer Object เอกสารอ้างถึง Yes

Company (ผู้ขาย) / Customer (ผู้ซื้อ)

รูปแบบที่อยู่ แบบมีโครงสร้าง

Parameter Type Description Required
name String ชื่อผู้ขายสินค้าหรือบริการ Yes
buildingNumber String บ้านเลขที่ Yes
address String ที่อยู่ Yes
streetPrefix String คำนำหน้าชื่อถนน เช่น ถนน ถ. (ถ้าไม่ต้องการให้แสดงให้ใส่ "") Yes
streetName String ชื่อถนน Yes
subDistrictPrefix String คำนำหน้าชื่อตำบล เช่น ตำบล ต. แขวง (ถ้าไม่ต้องการให้แสดงให้ใส่ "") Yes
subDistrictCode String รหัสตำบล Yes
subDistrictName String ชื่อตำบล/แขวง Yes
districtPrefix String คำนำหน้าชื่ออำเภอ เช่น อำเภอ อ. เขต (ถ้าไม่ต้องการให้แสดงให้ใส่ "") Yes
districtCode String รหัสอำเภอ Yes
districtName String ชื่ออำเภอ Yes
provincePrefix String คำนำหน้าชื่อจังหวัด เช่น จังหวัด (ถ้าไม่ต้องการให้แสดงให้ใส่ "") Yes
provinceCode String รหัสจังหวัด Yes
provinceName String ชื่อจังหวัด Yes
postcode String รหัสไปรษณีย์ Yes
branchNumber String รหัสสาขา สำนักงานใหญ่เป็น 00000 Yes
branchText String ชื่อสำนักงานใหญ่ เช่น (สำนักงานใหญ่) สำนักงานใหญ่ Head Office Yes
taxNumberType String รหัสประเภทผู้เสียภาษี Yes
taxId String เลขประจำตัวผู้เสียภาษี Yes
phoneContryCode String รหัสประเทศ เช่น +66 สำหรับประเทศไทย Yes
phone String เบอร์โทรศัพท์ ไม่ต้องใส่ 0 ข้างหน้า Yes
email String อีเมล Yes
unstructure Boolean ที่อยู่แบบมีโครงสร้าง unstructure=false Yes

รูปแบบที่อยู่ แบบไม่มีโครงสร้าง

Parameter Type Description Required
name String ชื่อผู้ขายสินค้าหรือบริการ Yes
addressLineOne String ที่อยู่ บรรทัดที่ 1 Yes
addressLineTwo String ที่อยู่ บรรทัดที่ 2 No
postcode String รหัสไปรษณีย์ Yes
branchNumber String รหัสสาขา สำนักงานใหญ่เป็น 00000 Yes
branchText String ชื่อสำนักงานใหญ่ เช่น (สำนักงานใหญ่) สำนักงานใหญ่ Head Office Yes
taxNumberType String รหัสประเภทผู้เสียภาษี Yes
taxId String เลขประจำตัวผู้เสียภาษี Yes
phoneContryCode String รหัสประเทศ เช่น +66 สำหรับประเทศไทย Yes
phone String เบอร์โทรศัพท์ ไม่ต้องใส่ 0 ข้างหน้า Yes
email String อีเมล Yes
unstructure Boolean ที่อยู่แบบไม่มีโครงสร้าง unstructure=true Yes

Items (รายละเอียดสินค้าหรือบริการ)

Parameter Type Description Required
number String ลำดับรายการสินค้าหรือบริการ No
description String รายละเอียดสินค้าหรือบริการ Yes
quantity String จำนวนสินค้า Yes
unitCode String รหัสหน่วยสินค้า (อ้างอิงจากรหัส UNECE Recommendation No. 20 Codes for Units of Measure Used in International Trade) No
unitName String ชื่อหน่วยสินค้า No
price Number ราคาสินค้าหรือบริการ Yes
total String ราคารวมสินค้าหรือบริการ Yes

Refer (เอกสารอ้างถึง)

Parameter Type Description Required
typeCode String รหัสประเภทเอกสารอ้างถึง เช่น T03 Yes
typeName String ชื่อประเภทเอกสารอ้างถึง เช่น ใบเสร็จรับเงิน/ใบกำกับภาษี Yes
number String เลขที่เอกสารอ้างถึง Yes
date String วัน เดือน ปี เวลา ที่ออกเอกสารอ้างถึง (YYYY-MM-DDTHH:mm:ss.sssZ ISO 8601 UTC Time format) Yes
dateBE String วัน เดือน ปี (พ.ศ.) ที่ออกเอกสารอ้างถึง Yes
dateCE String วัน เดือน ปี (ค.ศ.) ที่ออกเอกสารอ้างถึง No
reasonCode String รหัสสาเหตุการออกใบเพิ่มหนี้ Yes
reasonName String ชื่อสาเหตุการออกใบเพิ่มหนี้ Yes
specificReason String หากสาเหตุเป็นอื่นๆ ต้องระบุเหตุผล (Required = Yes) No
amountTotal Number มูลค่าสินค้าหรือบริการตามเอกสารเดิม Yes
diffAmountTotal Number ผลต่างมูลค่าสินค้าหรือบริการตามเอกสารเดิมกับใบเพิ่มหนี้ Yes

Tax Number Type (รหัสประเภทผู้เสียภาษี)

Tax Number Type Description
TXID ถ้า taxNumberType = "TXID" ให้ใส่ค่า taxId = เลขประจำตัวผู้เสียภาษีอาการสำหรับนิติบุคคล 13 หลัก
NIDN ถ้า taxNumberType = "NIDN" ให้ใส่ค่า taxId = เลขประจำตัวประชาชน 13 หลัก (สำหรับบุคคลธรรมดา)
CCPT ถ้า taxNumberType = "CCPT" ให้ใส่ค่า taxId = เลขหนังสือเดินทาง (Passport)
OTHR ถ้า taxNumberType = "OTHR" ให้ใส่ค่า taxId = หากไม่ต้องการระบุให้ระบุเป็น N/A

Type Code (รหัสประเภทเอกสารอ้างถึง)

Type Code Type Name
388 ใบกำกับภาษี (Tax Invoice)
T02 ใบแจ้งหนี้/ใบกำกับภาษี (Invoice/Tax Invoice)
T03 ใบเสร็จรับเงิน/ใบกำกับภาษี (Receipt/Tax Invoice)
T04 ใบส่งของ/ใบกำกับภาษี (Delivery order/Tax Invoice)

Reason Code (รหัสสาเหตุการออกใบเพิ่มหนี้ กรณีขายสินค้า)

Reason Code Reason Name
DBNG01 มีการเพิ่มราคาค่าสินค้า (สินค้าเกินกว่าจำนวนที่ตกลงกัน)
DBNG02 คำนวณราคาสินค้า ผิดพลาดต่ำกว่าที่เป็นจริง
DBNG99 เหตุอื่นๆ (ระบุสาเหตุ)

Reason Code (รหัสสาเหตุการออกใบเพิ่มหนี้ กรณีบริการ)

Reason Code Reason Name
DBNS01 การเพิ่มราคาค่าบริการ (บริการเกินกว่าข้อกำหนดที่ตกลงกัน)
DBNS02 คำนวณราคาค่าบริการ ผิดพลาดต่ำกว่าที่เป็นจริง
DBNS99 เหตุอื่นๆ (ระบุสาเหตุ)

Credit Notes

Create a credit note (PDF File)

POST /etax/documents/credit-notes/pdf

curl "https://api.leceipt.com/etax/documents/credit-notes/pdf?api-version=2021-04-22" \
  -H "Content-Type: application/json" \
  -H "API-Key: <your api key>" 

ตัวอย่าง JSON Body Parameters (ที่อยู่ แบบมีโครงสร้าง)

{  
  "company": {
    "name": "บริษัท ผู้ขายทดสอบ จำกัด",
    "buildingNumber": "999",
    "address": "หมู่ 999",
    "streetPrefix": "ถ.",
    "streetName": "สาทร 99",
    "subDistrictPrefix": "แขวง",
    "subDistrictCode": "100402",
    "subDistrictName": "สีลม",
    "districtPrefix": "เขต",
    "districtCode": "1004",
    "districtName": "บางรัก",
    "provincePrefix": "",
    "provinceCode": "10",
    "provinceName": "กรุงเทพมหานคร",
    "postcode": "10500",
    "branchNumber": "00000",
    "branchText": "(สำนักงานใหญ่)",
    "taxNumberType": "TXID",
    "taxId": "1234567890123",    
    "phoneCountryCode": "+66",
    "phone": "812345678",
    "email": "test@test.com",
    "unstructure": false
  },
  "customer": {
    "name": "บริษัท ลูกค้าทดสอบ จำกัด",
    "buildingNumber": "99",
    "address": "หมู่ที่ 99",
    "streetPrefix": "ถนน",
    "streetName": "สาทร 99",
    "branchNumber": "00000",
    "branchText": "(สำนักงานใหญ่)",
    "subDistrictPrefix": "แขวง",
    "subDistrictCode": "100402",
    "subDistrictName": "สีลม",    
    "districtPrefix": "เขต",
    "districtCode": "1004",
    "districtName": "บางรัก",
    "provincePrefix": "",
    "provinceCode": "10",
    "provinceName": "กรุงเทพมหานคร",
    "postcode": "10500",
    "taxNumberType": "TXID",
    "taxId": "1234567890123",        
    "phoneCountryCode": "+66",
    "phone": "812345678",
    "email": "test@test.com",
    "unstructure": false
  },  
  "date": "2021-03-20T15:36:04.835Z",
  "dateBE": "20/03/2564",
  "dateCE": "20/03/2021",
  "number": "TIV20210100001",
  "items": [
    {
      "number": "1",
      "description": "ค่าไอศครีม",
      "quantity": 1,
      "unitCode": "",
      "unitName": "",
      "price": 1000,
      "total": 1000
    }
  ],
  "percentVat": 7,
  "amountTotal": 1000,
  "vatTotal": 69930,
  "grandTotal": 1068930,  
  "note": "ทดสอบหมายเหตุ",    
  "receivedBy": "สมชาย",  
  "refer": {
    "typeCode": "T03",
    "typeName": "ใบเสร็จรับเงิน/ใบกำกับภาษี",
    "number": "RCT-TIV-0001",
    "date": "2021-03-17T17:00:00.000Z",
    "dateBE": "18/03/2564",
    "dateCE": "18/03/2021",
    "reasonCode": "CDNG99",
    "reasonName": "เหตุอื่น (ระบุสาเหตุ กรณีขายสินค้า)",
    "specificReason": "ทดสอบสาเหตุ",    
    "amountTotal": 1000000,
    "diffAmountTotal": 999000
  }
}

ตัวอย่าง JSON Body Parameters (ที่อยู่ แบบไม่มีโครงสร้าง)

{  
  "company": {
    "name": "บริษัท ผู้ขายทดสอบ จำกัด",
    "addressLineOne": "999 หมู่ 999 ถ.สาทร 99",    
    "addressLineTwo": "แขวงสีลม เขตบางรัก กรุงเทพมหานคร", 
    "postcode": "10500",
    "branchNumber": "00000",
    "branchText": "(สำนักงานใหญ่)",
    "taxNumberType": "TXID",
    "taxId": "1234567890123",    
    "phoneCountryCode": "+66",
    "phone": "812345678",
    "email": "test@test.com",
    "unstructure": true
  },
  "customer": {
    "name": "บริษัท ลูกค้าทดสอบ จำกัด",
    "addressLineOne": "99 หมู่ 99 ถ.สาทร 99",    
    "addressLineTwo": "แขวงสีลม เขตบางรัก กรุงเทพมหานคร",     
    "postcode": "10500",
    "branchNumber": "00000",
    "branchText": "(สำนักงานใหญ่)",   
    "taxNumberType": "TXID",
    "taxId": "1234567890123",        
    "phoneCountryCode": "+66",
    "phone": "812345678",
    "email": "test@test.com",
    "unstructure": true
  },  
  "date": "2021-03-20T15:36:04.835Z",
  "dateBE": "20/03/2564",
  "dateCE": "20/03/2021",
  "number": "TIV20210100001",
  "items": [
    {
      "number": "1",
      "description": "ค่าไอศครีม",
      "quantity": 1,
      "unitCode": "",
      "unitName": "",
      "price": 1000,
      "total": 1000
    }
  ],
  "percentVat": 7,
  "amountTotal": 1000,
  "vatTotal": 69930,
  "grandTotal": 1068930,  
  "note": "ทดสอบหมายเหตุ",    
  "receivedBy": "สมชาย",  
  "refer": {
    "typeCode": "T03",
    "typeName": "ใบเสร็จรับเงิน/ใบกำกับภาษี",
    "number": "RCT-TIV-0001",
    "date": "2021-03-17T17:00:00.000Z",
    "dateBE": "18/03/2564",
    "dateCE": "18/03/2021",
    "reasonCode": "CDNG99",
    "reasonName": "เหตุอื่น (ระบุสาเหตุ กรณีขายสินค้า)",
    "specificReason": "ทดสอบสาเหตุ",    
    "amountTotal": 1000000,
    "diffAmountTotal": 999000
  }
}

คำสั่งด้านบนจะ Response JSON เป็นรายละเอียด Job ตามโครงสร้างข้างล่างนี้

ท่านสามารถนำ id ของ Job ไปสอบถามการสร้างไฟล์ ได้ที่ Endpoint Jobs

{
  "id": "e6d93be0-5fc7-4474-b64c-10bcd58a5bf4",  
  "createdTime": "2021-03-20T15:39:59.8281753Z",    
  "status": "Processing"
}

Endpoint นี้ ใช้สำหรับสร้าง ใบลดหนี้ เอกสารที่สร้างจะเป็นไฟล์ PDF

เอกสารจะถูกลงลายมือชื่อดิจิทัลด้วยใบรับรองอิเล็กทรอนิกส์ที่ท่านติดตั้งไว้ในบัญชีของท่าน

(หมายเหตุ การสร้างใบเพิ่มหนี้อิเล็กทรอนิกส์จะต้อง สร้างไฟล์ PDF และ XML พร้อมกัน ท่านต้องเรียก Endpoint สำหรับสร้างไฟล์ XML พร้อมกับ Endpoint นี้ เพื่อที่ไฟล์ PDF และ XML จะถูกสร้างพร้อมกันตามประกาศของกรมสรรพากร)

HTTP Request

POST https://api.leceipt.com/etax/documents/credit-notes/pdf?api-version=2021-04-22

JSON Body Parameters

Parameter Type Description Required
company Object รายละเอียดผู้ขายสินค้าหรือบริการ Yes
customer Object รายละเอียดผู้ซื้อสินค้าหรือบริการ Yes
date String วัน เดือน ปี เวลา ที่ออกใบลดหนี้ (YYYY-MM-DDTHH:mm:ss.sssZ ISO 8601 UTC Time format) Yes
dateBE String วัน เดือน ปี (พ.ศ.) ที่ออกใบลดหนี้ Yes
dateCE String วัน เดือน ปี (ค.ศ.) ที่ออกใบลดหนี้ No
number String เลขที่ ใบลดหนี้ Yes
items Array รายละเอียดสินค้าหรือบริการ Yes
percentVat Integer เปอร์เซ็นภาษีมูลค่าเพิ่ม ปัจจุบัน 7 Yes
amountTotal Number มูลค่าสินค้าหรือบริการรวมแล้ว (ก่อน Vat) Yes
vatTotal Number มูลค่าภาษีมูลค่าเพิ่ม Yes
grandTotal Number มูลค่าสินค้าหรือบริการรวมแล้ว (หลัง Vat) Yes
note String หมายเหตุ ที่ต้องการแสดงในใบลดหนี้ Yes
receivedBy String ชื่อผู้รับเงิน Yes
refer Object เอกสารอ้างถึง Yes

Company (ผู้ขาย) / Customer (ผู้ซื้อ)

รูปแบบที่อยู่ แบบมีโครงสร้าง

Parameter Type Description Required
name String ชื่อผู้ขายสินค้าหรือบริการ Yes
buildingNumber String บ้านเลขที่ Yes
address String ที่อยู่ Yes
streetPrefix String คำนำหน้าชื่อถนน เช่น ถนน ถ. (ถ้าไม่ต้องการให้แสดงให้ใส่ "") Yes
streetName String ชื่อถนน Yes
subDistrictPrefix String คำนำหน้าชื่อตำบล เช่น ตำบล ต. แขวง (ถ้าไม่ต้องการให้แสดงให้ใส่ "") Yes
subDistrictCode String รหัสตำบล Yes
subDistrictName String ชื่อตำบล/แขวง Yes
districtPrefix String คำนำหน้าชื่ออำเภอ เช่น อำเภอ อ. เขต (ถ้าไม่ต้องการให้แสดงให้ใส่ "") Yes
districtCode String รหัสอำเภอ Yes
districtName String ชื่ออำเภอ Yes
provincePrefix String คำนำหน้าชื่อจังหวัด เช่น จังหวัด (ถ้าไม่ต้องการให้แสดงให้ใส่ "") Yes
provinceCode String รหัสจังหวัด Yes
provinceName String ชื่อจังหวัด Yes
postcode String รหัสไปรษณีย์ Yes
branchNumber String รหัสสาขา สำนักงานใหญ่เป็น 00000 Yes
branchText String ชื่อสำนักงานใหญ่ เช่น (สำนักงานใหญ่) สำนักงานใหญ่ Head Office Yes
taxNumberType String รหัสประเภทผู้เสียภาษี Yes
taxId String เลขประจำตัวผู้เสียภาษี Yes
phoneContryCode String รหัสประเทศ เช่น +66 สำหรับประเทศไทย Yes
phone String เบอร์โทรศัพท์ ไม่ต้องใส่ 0 ข้างหน้า Yes
email String อีเมล Yes
unstructure Boolean ที่อยู่แบบมีโครงสร้าง unstructure=false Yes

รูปแบบที่อยู่ แบบไม่มีโครงสร้าง

Parameter Type Description Required
name String ชื่อผู้ขายสินค้าหรือบริการ Yes
addressLineOne String ที่อยู่ บรรทัดที่ 1 Yes
addressLineTwo String ที่อยู่ บรรทัดที่ 2 No
postcode String รหัสไปรษณีย์ Yes
branchNumber String รหัสสาขา สำนักงานใหญ่เป็น 00000 Yes
branchText String ชื่อสำนักงานใหญ่ เช่น (สำนักงานใหญ่) สำนักงานใหญ่ Head Office Yes
taxNumberType String รหัสประเภทผู้เสียภาษี Yes
taxId String เลขประจำตัวผู้เสียภาษี Yes
phoneContryCode String รหัสประเทศ เช่น +66 สำหรับประเทศไทย Yes
phone String เบอร์โทรศัพท์ ไม่ต้องใส่ 0 ข้างหน้า Yes
email String อีเมล Yes
unstructure Boolean ที่อยู่แบบไม่มีโครงสร้าง unstructure=true Yes

Items (รายละเอียดสินค้าหรือบริการ)

Parameter Type Description Required
number String ลำดับรายการสินค้าหรือบริการ No
description String รายละเอียดสินค้าหรือบริการ Yes
quantity String จำนวนสินค้า Yes
unitCode String รหัสหน่วยสินค้า (อ้างอิงจากรหัส UNECE Recommendation No. 20 Codes for Units of Measure Used in International Trade) No
unitName String ชื่อหน่วยสินค้า No
price Number ราคาสินค้าหรือบริการ Yes
total String ราคารวมสินค้าหรือบริการ Yes

Refer (เอกสารอ้างถึง)

Parameter Type Description Required
typeCode String รหัสประเภทเอกสารอ้างถึง เช่น T03 Yes
typeName String ชื่อประเภทเอกสารอ้างถึง เช่น ใบเสร็จรับเงิน/ใบกำกับภาษี Yes
number String เลขที่เอกสารอ้างถึง Yes
date String วัน เดือน ปี เวลา ที่ออกเอกสารอ้างถึง (YYYY-MM-DDTHH:mm:ss.sssZ ISO 8601 UTC Time format) Yes
dateBE String วัน เดือน ปี (พ.ศ.) ที่ออกเอกสารอ้างถึง Yes
dateCE String วัน เดือน ปี (ค.ศ.) ที่ออกเอกสารอ้างถึง No
reasonCode String รหัสสาเหตุการออกใบลดหนี้ Yes
reasonName String ชื่อสาเหตุการออกใบลดหนี้ Yes
specificReason String หากสาเหตุเป็นอื่นๆ ต้องระบุเหตุผล (Required = Yes) No
amountTotal Number มูลค่าสินค้าหรือบริการตามเอกสารเดิม Yes
diffAmountTotal Number ผลต่างมูลค่าสินค้าหรือบริการตามเอกสารเดิมกับใบลดหนี้ Yes

Tax Number Type (รหัสประเภทผู้เสียภาษี)

Tax Number Type Description
TXID ถ้า taxNumberType = "TXID" ให้ใส่ค่า taxId = เลขประจำตัวผู้เสียภาษีอาการสำหรับนิติบุคคล 13 หลัก
NIDN ถ้า taxNumberType = "NIDN" ให้ใส่ค่า taxId = เลขประจำตัวประชาชน 13 หลัก (สำหรับบุคคลธรรมดา)
CCPT ถ้า taxNumberType = "CCPT" ให้ใส่ค่า taxId = เลขหนังสือเดินทาง (Passport)
OTHR ถ้า taxNumberType = "OTHR" ให้ใส่ค่า taxId = หากไม่ต้องการระบุให้ระบุเป็น N/A

Type Code (รหัสประเภทเอกสารอ้างถึง)

Type Code Type Name
388 ใบกำกับภาษี (Tax Invoice)
T02 ใบแจ้งหนี้/ใบกำกับภาษี (Invoice/Tax Invoice)
T03 ใบเสร็จรับเงิน/ใบกำกับภาษี (Receipt/Tax Invoice)
T04 ใบส่งของ/ใบกำกับภาษี (Delivery order/Tax Invoice)

Reason Code (รหัสสาเหตุการออกใบลดหนี้ กรณีขายสินค้า)

Reason Code Reason Name
CDNG01 ลดราคาสินค้าที่ขาย (สินค้าผิดข้อกำหนดที่ตกลงกัน)
CDNG02 สินค้าชำรุดเสียหาย
CDNG03 สินค้าขาดจำนวนตามที่ตกลงซื้อขาย
CDNG04 คำนวณราคาสินค้าผิดพลาดสูงกว่าที่เป็นจริง
CDNG05 รับคืนสินค้า (ไม่ตรงตามคำพรรณา)
CDNG99 เหตุอื่นๆ (ระบุสาเหตุ)

Reason Code (รหัสสาเหตุการออกใบลดหนี้ กรณีบริการ)

Reason Code Reason Name
CDNS01 ลดค่าบริการ (บริการผิดข้อกำหนดที่ตกลงกัน)
CDNS02 ค่าบริการขาดจำนวน
CDNS03 คำนวณราคาค่าบริการผิดพลาดสูงกว่าที่เป็นจริง
CDNS04 บอกเลิกสัญญาบริการ
CDNS99 เหตุอื่น (ระบุสาเหตุ)

Create a credit note (XML File)

POST /etax/documents/credit-notes/xml

curl "https://api.leceipt.com/etax/documents/credit-notes/xml?api-version=2021-04-22" \
  -H "Content-Type: application/json" \
  -H "API-Key: <your api key>" 

ตัวอย่าง JSON Body Parameters (ที่อยู่ แบบมีโครงสร้าง)

{  
  "company": {
    "name": "บริษัท ผู้ขายทดสอบ จำกัด",
    "buildingNumber": "999",
    "address": "หมู่ 999",
    "streetPrefix": "ถ.",
    "streetName": "สาทร 99",
    "subDistrictPrefix": "แขวง",
    "subDistrictCode": "100402",
    "subDistrictName": "สีลม",
    "districtPrefix": "เขต",
    "districtCode": "1004",
    "districtName": "บางรัก",
    "provincePrefix": "",
    "provinceCode": "10",
    "provinceName": "กรุงเทพมหานคร",
    "postcode": "10500",
    "branchNumber": "00000",
    "branchText": "(สำนักงานใหญ่)",
    "taxNumberType": "TXID",
    "taxId": "1234567890123",    
    "phoneCountryCode": "+66",
    "phone": "812345678",
    "email": "test@test.com",
    "unstructure": false
  },
  "customer": {
    "name": "บริษัท ลูกค้าทดสอบ จำกัด",
    "buildingNumber": "99",
    "address": "หมู่ที่ 99",
    "streetPrefix": "ถนน",
    "streetName": "สาทร 99",
    "branchNumber": "00000",
    "branchText": "(สำนักงานใหญ่)",
    "subDistrictPrefix": "แขวง",
    "subDistrictCode": "100402",
    "subDistrictName": "สีลม",    
    "districtPrefix": "เขต",
    "districtCode": "1004",
    "districtName": "บางรัก",
    "provincePrefix": "",
    "provinceCode": "10",
    "provinceName": "กรุงเทพมหานคร",
    "postcode": "10500",
    "taxNumberType": "TXID",  
    "taxId": "1234567890123",      
    "phoneCountryCode": "+66",
    "phone": "812345678",
    "email": "test@test.com",
    "unstructure": false
  },  
  "date": "2021-03-20T15:36:04.835Z",
  "dateBE": "20/03/2564",
  "dateCE": "20/03/2021",
  "number": "TIV20210100001",
  "items": [
    {
      "number": "1",
      "description": "ค่าไอศครีม",
      "quantity": 1,
      "unitCode": "",
      "unitName": "",
      "price": 1000,
      "total": 1000
    }
  ],
  "percentVat": 7,
  "amountTotal": 1000,
  "vatTotal": 69930,
  "grandTotal": 1068930,  
  "note": "ทดสอบหมายเหตุ",    
  "receivedBy": "สมชาย",  
  "refer": {
    "typeCode": "T03",
    "typeName": "ใบเสร็จรับเงิน/ใบกำกับภาษี",
    "number": "RCT-TIV-0001",
    "date": "2021-03-17T17:00:00.000Z",
    "dateBE": "18/03/2564",
    "dateCE": "18/03/2021",
    "reasonCode": "CDNG99",
    "reasonName": "เหตุอื่น (ระบุสาเหตุ กรณีขายสินค้า)",
    "specificReason": "ทดสอบสาเหตุ",    
    "amountTotal": 1000000,
    "diffAmountTotal": 999000
  }
}

ตัวอย่าง JSON Body Parameters (ที่อยู่ แบบไม่มีโครงสร้าง)

{  
  "company": {
    "name": "บริษัท ผู้ขายทดสอบ จำกัด",
    "addressLineOne": "999 หมู่ 999 ถ.สาทร 99",    
    "addressLineTwo": "แขวงสีลม เขตบางรัก กรุงเทพมหานคร", 
    "postcode": "10500",
    "branchNumber": "00000",
    "branchText": "(สำนักงานใหญ่)",
    "taxNumberType": "TXID",
    "taxId": "1234567890123",    
    "phoneCountryCode": "+66",
    "phone": "812345678",
    "email": "test@test.com",
    "unstructure": true
  },
  "customer": {
    "name": "บริษัท ลูกค้าทดสอบ จำกัด",
    "addressLineOne": "99 หมู่ 99 ถ.สาทร 99",    
    "addressLineTwo": "แขวงสีลม เขตบางรัก กรุงเทพมหานคร",     
    "postcode": "10500",
    "branchNumber": "00000",
    "branchText": "(สำนักงานใหญ่)",
    "taxNumberType": "TXID",  
    "taxId": "1234567890123",      
    "phoneCountryCode": "+66",
    "phone": "812345678",
    "email": "test@test.com",
    "unstructure": true
  },  
  "date": "2021-03-20T15:36:04.835Z",
  "dateBE": "20/03/2564",
  "dateCE": "20/03/2021",
  "number": "TIV20210100001",
  "items": [
    {
      "number": "1",
      "description": "ค่าไอศครีม",
      "quantity": 1,
      "unitCode": "",
      "unitName": "",
      "price": 1000,
      "total": 1000
    }
  ],
  "percentVat": 7,
  "amountTotal": 1000,
  "vatTotal": 69930,
  "grandTotal": 1068930,  
  "note": "ทดสอบหมายเหตุ",    
  "receivedBy": "สมชาย",  
  "refer": {
    "typeCode": "T03",
    "typeName": "ใบเสร็จรับเงิน/ใบกำกับภาษี",
    "number": "RCT-TIV-0001",
    "date": "2021-03-17T17:00:00.000Z",
    "dateBE": "18/03/2564",
    "dateCE": "18/03/2021",
    "reasonCode": "CDNG99",
    "reasonName": "เหตุอื่น (ระบุสาเหตุ กรณีขายสินค้า)",
    "specificReason": "ทดสอบสาเหตุ",    
    "amountTotal": 1000000,
    "diffAmountTotal": 999000
  }
}

คำสั่งด้านบนจะ Response JSON เป็นรายละเอียด Job ตามโครงสร้างข้างล่างนี้

ท่านสามารถนำ id ของ Job ไปสอบถามการสร้างไฟล์ ได้ที่ Endpoint Jobs

{
  "id": "e6d93be0-5fc7-4474-b64c-10bcd58a5bf4",  
  "createdTime": "2021-03-20T15:39:59.8281753Z",    
  "status": "Processing"
}

Endpoint นี้ ใช้สำหรับสร้าง ใบลดหนี้ เอกสารที่สร้างจะเป็นไฟล์ XML

เอกสารจะถูกลงลายมือชื่อดิจิทัลด้วยใบรับรองอิเล็กทรอนิกส์ที่ท่านติดตั้งไว้ในบัญชีของท่าน

(หมายเหตุ การสร้างใบลดหนี้อิเล็กทรอนิกส์จะต้อง สร้างไฟล์ PDF และ XML พร้อมกัน ท่านต้องเรียก Endpoint สำหรับสร้างไฟล์ PDF พร้อมกับ Endpoint นี้ เพื่อที่ไฟล์ PDF และ XML จะถูกสร้างพร้อมกันตามประกาศของกรมสรรพากร)

HTTP Request

POST https://api.leceipt.com/etax/documents/credit-notes/xml?api-version=2021-04-22

JSON Body Parameters

Parameter Type Description Required
company Object รายละเอียดผู้ขายสินค้าหรือบริการ Yes
customer Object รายละเอียดผู้ซื้อสินค้าหรือบริการ Yes
date String วัน เดือน ปี เวลา ที่ออกใบลดหนี้ (YYYY-MM-DDTHH:mm:ss.sssZ ISO 8601 UTC Time format) Yes
dateBE String วัน เดือน ปี (พ.ศ.) ที่ออกใบลดหนี้ Yes
dateCE String วัน เดือน ปี (ค.ศ.) ที่ออกใบลดหนี้ No
number String เลขที่ ใบลดหนี้ Yes
items Array รายละเอียดสินค้าหรือบริการ Yes
percentVat Integer เปอร์เซ็นภาษีมูลค่าเพิ่ม ปัจจุบัน 7 Yes
amountTotal Number มูลค่าสินค้าหรือบริการรวมแล้ว (ก่อน Vat) Yes
vatTotal Number มูลค่าภาษีมูลค่าเพิ่ม Yes
grandTotal Number มูลค่าสินค้าหรือบริการรวมแล้ว (หลัง Vat) Yes
note String หมายเหตุ ที่ต้องการแสดงในใบลดหนี้ Yes
receivedBy String ชื่อผู้รับเงิน Yes
refer Object เอกสารอ้างถึง Yes

Company (ผู้ขาย) / Customer (ผู้ซื้อ)

รูปแบบที่อยู่ แบบมีโครงสร้าง

Parameter Type Description Required
name String ชื่อผู้ขายสินค้าหรือบริการ Yes
buildingNumber String บ้านเลขที่ Yes
address String ที่อยู่ Yes
streetPrefix String คำนำหน้าชื่อถนน เช่น ถนน ถ. (ถ้าไม่ต้องการให้แสดงให้ใส่ "") Yes
streetName String ชื่อถนน Yes
subDistrictPrefix String คำนำหน้าชื่อตำบล เช่น ตำบล ต. แขวง (ถ้าไม่ต้องการให้แสดงให้ใส่ "") Yes
subDistrictCode String รหัสตำบล Yes
subDistrictName String ชื่อตำบล/แขวง Yes
districtPrefix String คำนำหน้าชื่ออำเภอ เช่น อำเภอ อ. เขต (ถ้าไม่ต้องการให้แสดงให้ใส่ "") Yes
districtCode String รหัสอำเภอ Yes
districtName String ชื่ออำเภอ Yes
provincePrefix String คำนำหน้าชื่อจังหวัด เช่น จังหวัด (ถ้าไม่ต้องการให้แสดงให้ใส่ "") Yes
provinceCode String รหัสจังหวัด Yes
provinceName String ชื่อจังหวัด Yes
postcode String รหัสไปรษณีย์ Yes
branchNumber String รหัสสาขา สำนักงานใหญ่เป็น 00000 Yes
branchText String ชื่อสำนักงานใหญ่ เช่น (สำนักงานใหญ่) สำนักงานใหญ่ Head Office Yes
taxNumberType String รหัสประเภทผู้เสียภาษี Yes
taxId String เลขประจำตัวผู้เสียภาษี Yes
phoneContryCode String รหัสประเทศ เช่น +66 สำหรับประเทศไทย Yes
phone String เบอร์โทรศัพท์ ไม่ต้องใส่ 0 ข้างหน้า Yes
email String อีเมล Yes
unstructure Boolean ที่อยู่แบบมีโครงสร้าง unstructure=false Yes

รูปแบบที่อยู่ แบบไม่มีโครงสร้าง

Parameter Type Description Required
name String ชื่อผู้ขายสินค้าหรือบริการ Yes
addressLineOne String ที่อยู่ บรรทัดที่ 1 Yes
addressLineTwo String ที่อยู่ บรรทัดที่ 2 No
postcode String รหัสไปรษณีย์ Yes
branchNumber String รหัสสาขา สำนักงานใหญ่เป็น 00000 Yes
branchText String ชื่อสำนักงานใหญ่ เช่น (สำนักงานใหญ่) สำนักงานใหญ่ Head Office Yes
taxNumberType String รหัสประเภทผู้เสียภาษี Yes
taxId String เลขประจำตัวผู้เสียภาษี Yes
phoneContryCode String รหัสประเทศ เช่น +66 สำหรับประเทศไทย Yes
phone String เบอร์โทรศัพท์ ไม่ต้องใส่ 0 ข้างหน้า Yes
email String อีเมล Yes
unstructure Boolean ที่อยู่แบบไม่มีโครงสร้าง unstructure=true Yes

Items (รายละเอียดสินค้าหรือบริการ)

Parameter Type Description Required
number String ลำดับรายการสินค้าหรือบริการ No
description String รายละเอียดสินค้าหรือบริการ Yes
quantity String จำนวนสินค้า Yes
unitCode String รหัสหน่วยสินค้า (อ้างอิงจากรหัส UNECE Recommendation No. 20 Codes for Units of Measure Used in International Trade) No
unitName String ชื่อหน่วยสินค้า No
price Number ราคาสินค้าหรือบริการ Yes
total String ราคารวมสินค้าหรือบริการ Yes

Refer (เอกสารอ้างถึง)

Parameter Type Description Required
typeCode String รหัสประเภทเอกสารอ้างถึง เช่น T03 Yes
typeName String ชื่อประเภทเอกสารอ้างถึง เช่น ใบเสร็จรับเงิน/ใบกำกับภาษี Yes
number String เลขที่เอกสารอ้างถึง Yes
date String วัน เดือน ปี เวลา ที่ออกเอกสารอ้างถึง (YYYY-MM-DDTHH:mm:ss.sssZ ISO 8601 UTC Time format) Yes
dateBE String วัน เดือน ปี (พ.ศ.) ที่ออกเอกสารอ้างถึง Yes
dateCE String วัน เดือน ปี (ค.ศ.) ที่ออกเอกสารอ้างถึง No
reasonCode String รหัสสาเหตุการออกใบลดหนี้ Yes
reasonName String ชื่อสาเหตุการออกใบลดหนี้ Yes
specificReason String หากสาเหตุเป็นอื่นๆ ต้องระบุเหตุผล (Required = Yes) No
amountTotal Number มูลค่าสินค้าหรือบริการตามเอกสารเดิม Yes
diffAmountTotal Number ผลต่างมูลค่าสินค้าหรือบริการตามเอกสารเดิมกับใบลดหนี้ Yes

Tax Number Type (รหัสประเภทผู้เสียภาษี)

Tax Number Type Description
TXID ถ้า taxNumberType = "TXID" ให้ใส่ค่า taxId = เลขประจำตัวผู้เสียภาษีอาการสำหรับนิติบุคคล 13 หลัก
NIDN ถ้า taxNumberType = "NIDN" ให้ใส่ค่า taxId = เลขประจำตัวประชาชน 13 หลัก (สำหรับบุคคลธรรมดา)
CCPT ถ้า taxNumberType = "CCPT" ให้ใส่ค่า taxId = เลขหนังสือเดินทาง (Passport)
OTHR ถ้า taxNumberType = "OTHR" ให้ใส่ค่า taxId = หากไม่ต้องการระบุให้ระบุเป็น N/A

Type Code (รหัสประเภทเอกสารอ้างถึง)

Type Code Type Name
388 ใบกำกับภาษี (Tax Invoice)
T02 ใบแจ้งหนี้/ใบกำกับภาษี (Invoice/Tax Invoice)
T03 ใบเสร็จรับเงิน/ใบกำกับภาษี (Receipt/Tax Invoice)
T04 ใบส่งของ/ใบกำกับภาษี (Delivery order/Tax Invoice)

Reason Code (รหัสสาเหตุการออกใบลดหนี้ กรณีขายสินค้า)

Reason Code Reason Name
CDNG01 ลดราคาสินค้าที่ขาย (สินค้าผิดข้อกำหนดที่ตกลงกัน)
CDNG02 สินค้าชำรุดเสียหาย
CDNG03 สินค้าขาดจำนวนตามที่ตกลงซื้อขาย
CDNG04 คำนวณราคาสินค้าผิดพลาดสูงกว่าที่เป็นจริง
CDNG05 รับคืนสินค้า (ไม่ตรงตามคำพรรณา)
CDNG99 เหตุอื่นๆ (ระบุสาเหตุ)

Reason Code (รหัสสาเหตุการออกใบลดหนี้ กรณีบริการ)

Reason Code Reason Name
CDNS01 ลดค่าบริการ (บริการผิดข้อกำหนดที่ตกลงกัน)
CDNS02 ค่าบริการขาดจำนวน
CDNS03 คำนวณราคาค่าบริการผิดพลาดสูงกว่าที่เป็นจริง
CDNS04 บอกเลิกสัญญาบริการ
CDNS99 เหตุอื่น (ระบุสาเหตุ)

Jobs

Retreive a job

GET /etax/jobs/{jobId}

curl "https://api.leceipt.com/etax/jobs/{jobId}?api-version=2021-04-22" \
  -H "Content-Type: application/json" \
  -H "API-Key: <your api key>" 

ถ้าไฟล์ยังสร้างไม่เสร็จ

คำสั่งด้านบนจะ Response JSON เป็นรายละเอียด Job ตามโครงสร้างข้างล่างนี้

{
  "id": "e6d93be0-5fc7-4474-b64c-10bcd58a5bf4",  
  "createdTime": "2021-03-20T15:39:59.8281753Z",    
  "status": "Processing"
}

ถ้าไฟล์สร้างเสร็จแล้ว

คำสั่งด้านบนจะ Response JSON เป็นรายละเอียด Job ตามโครงสร้างข้างล่างนี้

ท่านสามารถนำ fileId ไปดาวน์โหลดไฟล์ได้ที่ Endpoint Files

{
  "id": "e6d93be0-5fc7-4474-b64c-10bcd58a5bf4",  
  "createdTime": "2021-03-20T15:39:59.8281753Z",
  "lastUpdatedTime": "2021-03-20T15:41:59.8281753Z",
  "fileId": "c2508592-90aa-45fc-af1d-ea3acd7e072b",
  "fileSize": 208825,    
  "status": "Complete"
}

Endpoint นี้ ใช้สำหรับสอบถามสถานะการสร้างไฟล์

หากไฟล์สร้างเสร็จแล้ว ค่าของ status จะเป็น Complete

และจะมี fileId ซึ่งท่านสามารถนำ fileId ไปดาวน์โหลดไฟล์ได้ที่ Endpoint Files

HTTP Request

GET https://api.leceipt.com/etax/jobs/{jobId}?api-version=2021-04-22

Files

Download a file

GET /etax/files/{fileId}

curl "https://api.leceipt.com/etax/files/{fileId}?api-version=2021-04-22" \
  -H "Content-Type: application/json" \
  -H "API-Key: <your api key>" 

คำสั่งด้านบนจะ Response ไฟล์กลับมา

ถ้าเป็นไฟล์ PDF จะ Response กลับมาเป็นไฟล์ PDF

{
  "$content-type": "application/pdf",
  "$content": "JVBERi0xLjQKJdPr6eEK..........."
}

ถ้าเป็นไฟล์ XML จะ Response กลับมาเป็นไฟล์ XML

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>...

Endpoint นี้ ใช้สำหรับดาวน์โหลดไฟล์

โดยระบุ fileId ที่ได้รับ หลังจากการสร้างเอกสารอิเล็กทรอนิกส์

HTTP Request

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