บทนำ
KabyTech Freight Manifest (MFT) Intelligence API ช่วยให้คุณสามารถแยกวิเคราะห์และรวบรวมใบขนสินค้า (Freight Manifest) สำหรับการยื่นต่อระบบ National Single Window (NSW) ของกรมศุลกากรไทย API รองรับรูปแบบ PDF, รูปภาพ หรือ EDI และส่งคืนข้อมูล JSON ที่มีโครงสร้างพร้อมข้อมูลที่สกัดได้มากกว่า 50 ฟิลด์ รวมถึงอาร์เรย์ items[] ที่แสดงรายละเอียดของแต่ละรายการขนส่ง
API รองรับใบขนสินค้าทางอากาศ (รูปแบบข้อความ FHL/FWB) ใบขนสินค้าทางทะเล (การสำแดงสินค้า) และใบขนสินค้าแบบหลายรูปแบบการขนส่ง ระบบจะตรวจจับสินค้าอันตราย (DG) โดยอัตโนมัติตามรหัสจำแนกประเภท IMDG และ ICAO ตรวจสอบรหัส HS เบื้องต้นกับอัตราภาษีศุลกากรไทย และรองรับการส่ง EDI โดยตรงไปยังกรมศุลกากรผ่านการเชื่อมต่อ NSW
คำขอ API ทั้งหมดจะส่งผ่าน HTTPS การตอบกลับอยู่ในรูปแบบ JSON โดย API เป็นไปตามแนวทาง RESTful และใช้รหัสสถานะ HTTP มาตรฐาน
URL หลัก
Endpoint ทั้งหมดที่อธิบายในเอกสารนี้เป็นเส้นทางสัมพัทธ์จาก URL หลักนี้ ตัวอย่างเช่น endpoint สำหรับการแยกวิเคราะห์อยู่ที่ https://api.kabytech.co.th/v1/mft/parse
การยืนยันตัวตน
คำขอ API ทั้งหมดต้องมีการยืนยันตัวตนผ่าน API key โดยระบุ API key ของคุณในส่วนหัว X-API-Key ของทุกคำขอ คุณสามารถรับ API key ได้จาก KabyTech Dashboard หลังจากสร้างบัญชีแล้ว
API key จะขึ้นต้นด้วย kby_live_ สำหรับสภาพแวดล้อมจริง และ kby_test_ สำหรับสภาพแวดล้อมทดสอบ คีย์ทดสอบจะประมวลผลเอกสารแต่ส่งคืนข้อมูลจำลอง — สามารถใช้งานได้ฟรีระหว่างการพัฒนา
| ส่วนหัว | ค่า | จำเป็น |
|---|---|---|
X-API-Key | API key ของคุณ (kby_live_... หรือ kby_test_...) | จำเป็น |
Content-Type | application/json หรือ multipart/form-data | จำเป็น |
Accept | application/json | ไม่บังคับ |
เริ่มต้นอย่างรวดเร็ว
แยกวิเคราะห์ Freight Manifest แรกของคุณภายในไม่ถึง 5 นาที ตัวอย่างนี้ใช้ Python SDK เพื่ออัปโหลดเอกสารใบขนสินค้าและรับข้อมูลที่มีโครงสร้างพร้อมการตรวจจับ DG และการตรวจสอบ HS
POST /v1/mft/parse
แยกวิเคราะห์เอกสาร Freight Manifest เดี่ยวและส่งคืนข้อมูลที่มีโครงสร้าง รองรับรูปภาพ PDF, PNG, JPG, TIFF หรือข้อความ EDI ดิบ (FHL, FWB, CUSCAR) ส่งคืนข้อมูลมากกว่า 50 ฟิลด์ รวมถึงอาร์เรย์ items[] ที่แสดงรายละเอียดแต่ละรายการขนส่ง การตรวจจับ DG อัตโนมัติตามรหัส IMDG/ICAO และการตรวจสอบ HS เบื้องต้นกับอัตราภาษีศุลกากรไทย
แยกวิเคราะห์เอกสาร Freight Manifest และสกัดข้อมูลทุกฟิลด์ที่มีโครงสร้าง สินค้าอันตรายจะถูกจำแนกประเภทอัตโนมัติตามรหัส IMDG (ทางทะเล) และ ICAO TI (ทางอากาศ) รหัส HS ของทุกรายการจะได้รับการตรวจสอบเบื้องต้นกับอัตราภาษีศุลกากรไทย ระยะเวลาประมวลผลเฉลี่ย 2.0–4.5 วินาที ขึ้นอยู่กับจำนวนรายการ
เนื้อหาคำขอ (JSON)
| พารามิเตอร์ | ชนิด | คำอธิบาย |
|---|---|---|
document จำเป็น | string | เนื้อหาเอกสารที่เข้ารหัส Base64 (PDF, PNG, JPG, TIFF) หรือข้อความ EDI ดิบ |
format จำเป็น | string | รูปแบบเอกสาร: pdf, png, jpg, tiff, edi หรือ text |
manifest_type ไม่บังคับ | string | คำแนะนำ: air, sea หรือ multimodal ตรวจจับอัตโนมัติหากไม่ระบุ |
include_confidence ไม่บังคับ | boolean | รวมคะแนนความเชื่อมั่นรายฟิลด์ (ค่าเริ่มต้น: true) |
validate_hs ไม่บังคับ | boolean | ตรวจสอบรหัส HS เบื้องต้นกับอัตราภาษีศุลกากรไทย (ค่าเริ่มต้น: true) |
flag_dg ไม่บังคับ | boolean | ตรวจจับสินค้าอันตรายอัตโนมัติตามรหัส IMDG/ICAO (ค่าเริ่มต้น: true) |
nsw_submit ไม่บังคับ | boolean | ส่งข้อมูลไปยัง NSW กรมศุลกากรอัตโนมัติหลังการแยกวิเคราะห์ (ค่าเริ่มต้น: false) |
webhook_url ไม่บังคับ | string | URL สำหรับรับ POST callback เมื่อประมวลผลเสร็จสิ้น |
ตัวอย่างคำขอ (cURL)
การตอบกลับ (200 OK)
GET /v1/mft/{id}
ดึงผลลัพธ์ Freight Manifest ที่เคยแยกวิเคราะห์ไว้ด้วย ID เฉพาะ ผลลัพธ์จะจัดเก็บไว้ 90 วัน ใช้ endpoint นี้เพื่อดึงผลลัพธ์แบบอะซิงโครนัสเมื่อใช้ webhook หรือเพื่อเข้าถึงใบขนสินค้าที่เคยแยกวิเคราะห์ไว้ก่อนหน้า สถานะการยื่น NSW จะถูกรีเฟรชทุกครั้งที่ดึงข้อมูล
ส่งคืนผลลัพธ์ที่แยกวิเคราะห์ทั้งหมดของ Freight Manifest เฉพาะรายการ {id} คือตัวระบุเฉพาะที่ส่งคืนจาก endpoint /mft/parse (เช่น mft_9p4q7k2m3f1n) ส่งคืนข้อมูลในรูปแบบเดียวกับ endpoint แยกวิเคราะห์ พร้อมสถานะการยื่น NSW ที่อัปเดตแล้ว
พารามิเตอร์เส้นทาง
| พารามิเตอร์ | ชนิด | คำอธิบาย |
|---|---|---|
id จำเป็น | string | ID ผลลัพธ์ใบขนสินค้าเฉพาะ (เช่น mft_9p4q7k2m3f1n) |
พารามิเตอร์คิวรี
| พารามิเตอร์ | ชนิด | คำอธิบาย |
|---|---|---|
include_raw ไม่บังคับ | boolean | รวมข้อความ OCR ดิบหรือแหล่ง EDI ในการตอบกลับ (ค่าเริ่มต้น: false) |
refresh_nsw ไม่บังคับ | boolean | ตรวจสอบสถานะการยื่น NSW จากกรมศุลกากรอีกครั้ง (ค่าเริ่มต้น: false) |
items_offset ไม่บังคับ | integer | ออฟเซ็ตการแบ่งหน้าสำหรับอาร์เรย์ items[] (ค่าเริ่มต้น: 0) |
items_limit ไม่บังคับ | integer | จำนวนรายการสูงสุดต่อหน้า (ค่าเริ่มต้น: 100, สูงสุด: 500) |
POST /v1/mft/batch
ส่งเอกสาร Freight Manifest หลายรายการเพื่อประมวลผลแบบชุด API รองรับสูงสุด 50 เอกสารต่อคำขอชุดเดียว และประมวลผลแบบอะซิงโครนัส เหมาะสำหรับการประมวลผลใบขนสินค้าเที่ยวบิน/เรือประจำวัน หรือการยื่นล่วงหน้าแบบจำนวนมากกับ NSW กรมศุลกากร
ส่งชุดเอกสารใบขนสินค้าเพื่อประมวลผลแบบอะซิงโครนัส ส่งคืนผลลัพธ์ทันทีพร้อม batch ID และ ID เอกสารแต่ละรายการ ใบขนสินค้าแต่ละรายการจะถูกประมวลผลอย่างอิสระ — ความล้มเหลวของรายการหนึ่งจะไม่กระทบรายการอื่น การตรวจจับ DG และการตรวจสอบ HS จะถูกนำไปใช้กับทุกรายการในทุกใบขนสินค้า
เนื้อหาคำขอ
| พารามิเตอร์ | ชนิด | คำอธิบาย |
|---|---|---|
documents จำเป็น | array | อาร์เรย์ของออบเจ็กต์เอกสาร (สูงสุด 50) แต่ละออบเจ็กต์มีฟิลด์ document และ format |
webhook_url ไม่บังคับ | string | URL สำหรับรับ POST callback เมื่อประมวลผลชุดทั้งหมดเสร็จสิ้น |
priority ไม่บังคับ | string | normal (ค่าเริ่มต้น) หรือ high (เฉพาะแผน Professional/Enterprise) |
validate_hs ไม่บังคับ | boolean | ตรวจสอบรหัส HS เบื้องต้นของทุกรายการ (ค่าเริ่มต้น: true) |
flag_dg ไม่บังคับ | boolean | ตรวจจับสินค้าอันตรายอัตโนมัติตามรหัส IMDG/ICAO (ค่าเริ่มต้น: true) |
nsw_submit ไม่บังคับ | boolean | ส่งใบขนสินค้าแต่ละรายการไปยัง NSW อัตโนมัติหลังการแยกวิเคราะห์ (ค่าเริ่มต้น: false) |
GET /v1/status
ตรวจสอบสถานะ API และการใช้งานบัญชีของคุณ ส่งคืนสถานะ API ปัจจุบัน รายละเอียดแผนของคุณ และโควตาคำขอที่เหลือสำหรับรอบการเรียกเก็บเงินปัจจุบัน
ส่งคืนสถานะความพร้อมของ API ข้อมูลแผนบัญชีของคุณ และสถิติการใช้งานปัจจุบัน รวมถึงรายงานสถานะการเชื่อมต่อ NSW gateway สำหรับการยื่นใบขนสินค้า
เอกสารอ้างอิงส่วนต่าง ๆ ของ MFT
KabyTech API แยกวิเคราะห์ส่วนต่าง ๆ ของ Freight Manifest มาตรฐานทั้งหมด ด้านล่างเป็นส่วนหลักที่ส่งคืนในการตอบกลับสำหรับทุกใบขนสินค้าที่แยกวิเคราะห์ แต่ละส่วนจัดกลุ่มฟิลด์ที่เกี่ยวข้องสำหรับการเชื่อมต่อกับระบบยื่นศุลกากร ระบบสินค้าสายการบิน (CHAMP, IBS) หรือแพลตฟอร์มจัดการการขนส่งสินค้า
| # | ส่วน | คีย์ | คำอธิบาย |
|---|---|---|---|
| 1 | ส่วนหัว | header | หมายเลขใบขนสินค้า, ประเภท (air/sea/multimodal), ชื่อและรหัสผู้ขนส่ง |
| 2 | เที่ยวเรือ/เที่ยวบิน | voyage | หมายเลขเที่ยวบินหรือเที่ยวเรือ, ETD/ETA, ประเภทเครื่องบินหรือเรือ |
| 3 | รายละเอียดท่าเรือ | ports | ท่าเรือต้นทาง (UN/LOCODE), ท่าเรือปลายทาง, ท่าเรือถ่ายลำ |
| 4 | สรุปสินค้า | summary | จำนวนใบตราส่งทั้งหมด, จำนวนหีบห่อทั้งหมด, น้ำหนักรวมทั้งหมด, ปริมาตรรวมทั้งหมด |
| 5 | รายละเอียดระดับรายการ | items[] | รายละเอียดแต่ละรายการขนส่ง: AWB/B/L, ผู้ส่ง, ผู้รับ, สินค้า, น้ำหนัก, รหัส HS |
| 6 | การตรวจจับ DG | dg_summary | ภาพรวมสินค้าอันตราย: ประเภท IMDG (ทางทะเล), รหัส ICAO TI (ทางอากาศ), หมายเลข UN, จำนวน |
| 7 | การตรวจสอบ HS | hs_validation | ผลการตรวจสอบรหัส HS แต่ละรายการกับอัตราภาษีศุลกากรไทย |
| 8 | สถานะการยื่น NSW | nsw | สถานะการส่ง NSW กรมศุลกากร, หมายเลขอ้างอิง, เวลาที่ยื่น, ข้อผิดพลาด |
| 9 | สรุปค่าใช้จ่าย | charges | ค่าธรรมเนียมการจัดการ, ค่าดำเนินการศุลกากร, ค่าธรรมเนียมเพิ่มเติมของผู้ขนส่ง |
อาร์เรย์ items[] เป็นส่วนหลักของการตอบกลับใบขนสินค้า แต่ละรายการแสดงถึงการขนส่งเดี่ยว (AWB หรือ B/L) ภายในใบขนสินค้า รายการต่าง ๆ ประกอบด้วยผลการจำแนกประเภท DG และการตรวจสอบ HS ของแต่ละรายการ ใช้ items_offset และ items_limit บน GET endpoint เพื่อแบ่งหน้าสำหรับใบขนสินค้าขนาดใหญ่
เอกสารอ้างอิงฟิลด์การตอบกลับ
การตอบกลับ API ทุกรายการจะมีฟิลด์ระดับบนสุดเหล่านี้ร่วมกับออบเจ็กต์ส่วนต่าง ๆ อาร์เรย์ items[] ประกอบด้วยรายละเอียดแต่ละรายการขนส่ง โดยมีมากกว่า 50 ฟิลด์ในการตอบกลับทั้งหมด
ฟิลด์ระดับบนสุด
air, sea หรือ multimodal
name และ code (UN/LOCODE)
name และ code (UN/LOCODE)
pending, submitted, accepted, rejected
field, message, severity
ฟิลด์ระดับรายการ (items[])
รหัสข้อผิดพลาด
API ใช้รหัสสถานะ HTTP มาตรฐาน การตอบกลับข้อผิดพลาดทั้งหมดจะมีเนื้อหา JSON พร้อมฟิลด์ error, message และ code
| สถานะ | รหัส | คำอธิบาย |
|---|---|---|
| 400 | invalid_document | ไม่สามารถอ่านเอกสารได้ ตรวจสอบการเข้ารหัสและพารามิเตอร์รูปแบบ |
| 400 | unsupported_format | รูปแบบเอกสารไม่รองรับ ใช้ pdf, png, jpg, tiff, edi หรือ text |
| 400 | invalid_edi | รูปแบบข้อความ EDI มีข้อผิดพลาดหรือไม่สมบูรณ์ ตรวจสอบไวยากรณ์ FHL/FWB/CUSCAR |
| 401 | invalid_api_key | API key หายไป ไม่ถูกต้อง หรือหมดอายุ |
| 403 | plan_limit_exceeded | โควตาคำขอรายเดือนหมด อัปเกรดแผนของคุณหรือรอการรีเซ็ต |
| 403 | nsw_not_enabled | การส่ง NSW โดยตรงต้องใช้แผน Professional หรือ Enterprise |
| 404 | mft_not_found | ไม่พบผลลัพธ์ที่แยกวิเคราะห์สำหรับ ID ที่ระบุ ผลลัพธ์จะหมดอายุหลัง 90 วัน |
| 422 | parse_failed | อ่านเอกสารได้แต่ไม่สามารถสกัดข้อมูลใบขนสินค้าได้ ตรวจสอบเนื้อหาเอกสาร |
| 422 | hs_validation_failed | รหัส HS อย่างน้อยหนึ่งรายการไม่สามารถตรวจสอบได้ ดูรายละเอียดที่ validation_errors |
| 429 | rate_limited | คำขอมากเกินไป โปรดปฏิบัติตามข้อจำกัดอัตราสำหรับระดับแผนของคุณ |
| 500 | internal_error | ข้อผิดพลาดเซิร์ฟเวอร์ที่ไม่คาดคิด ลองส่งคำขอใหม่ หากยังคงเกิดขึ้น โปรดติดต่อฝ่ายสนับสนุน |
| 502 | nsw_gateway_error | ไม่สามารถเชื่อมต่อ NSW gateway กรมศุลกากรได้ ใบขนสินค้าได้รับการแยกวิเคราะห์แล้ว การส่ง NSW อยู่ในคิว |
| 503 | service_unavailable | API ไม่พร้อมใช้งานชั่วคราวเนื่องจากการบำรุงรักษา โดยปกติไม่เกิน 5 นาที |
ข้อจำกัดอัตราการใช้งาน
ข้อจำกัดอัตราแตกต่างกันตามระดับแผน ข้อจำกัดทั้งหมดถูกนำไปใช้ต่อ API key ในรอบต่อนาทีและต่อเดือน ส่วนหัวข้อจำกัดอัตราจะรวมอยู่ในทุกการตอบกลับ การแยกวิเคราะห์ใบขนสินค้านับเป็นหนึ่งคำขอต่อเอกสารโดยไม่คำนึงถึงจำนวนรายการ
60
คำขอ/นาที
แผน Starter
300
คำขอ/นาที
แผน Professional
1,000
คำขอ/นาที
แผน Enterprise
| ส่วนหัวการตอบกลับ | คำอธิบาย |
|---|---|
X-RateLimit-Limit | จำนวนคำขอสูงสุดต่อนาทีสำหรับแผนของคุณ |
X-RateLimit-Remaining | คำขอที่เหลือในรอบนาทีปัจจุบัน |
X-RateLimit-Reset | เวลา Unix เมื่อรอบข้อจำกัดอัตรารีเซ็ต |
SDK อย่างเป็นทางการ
เราจัดเตรียม SDK อย่างเป็นทางการสำหรับภาษาโปรแกรมยอดนิยมในระบบนิเวศเทคโนโลยีโลจิสติกส์ไทย SDK ทั้งหมดเป็นโอเพนซอร์สและพร้อมใช้งานบน GitHub
Python
Python 3.8+
pip install kabytech
Node.js
Node 16+
npm i @kabytech/sdk
PHP
PHP 8.0+
composer require kabytech/sdk
Java
Java 11+
co.th.kabytech:sdk:1.4.0
ต้องการความช่วยเหลือในการเชื่อมต่อหรือไม่?
ทีมเชื่อมต่อระบบของเราพร้อมช่วยคุณเชื่อมต่อ KabyTech Manifest API กับ CHAMP Cargosystems, IBS iCargo, NSW กรมศุลกากร หรือแพลตฟอร์มจัดการการขนส่งสินค้าของคุณ