บทนำ
KabyTech B/L Intelligence API ช่วยให้คุณวิเคราะห์เอกสารใบตราส่งสินค้าทางทะเล (PDF, รูปภาพ หรือสำเนาสแกน) และรับ JSON ที่มีโครงสร้างพร้อมรายละเอียดการขนส่งทั้งหมดที่ถูกดึงออกมา API รองรับเอกสาร B/L จากสายเรือหลักทุกรายรวมถึง Evergreen, ONE, MSC, Maersk, COSCO, Hapag-Lloyd, Yang Ming และ HMM
ดึงข้อมูลผู้ส่งสินค้า ผู้รับสินค้า ผู้รับแจ้ง รายละเอียดเรือ/เที่ยวเรือ ข้อมูลท่าเรือ รายละเอียดตู้คอนเทนเนอร์พร้อมการตรวจสอบ ISO 6346 รายละเอียดสินค้า เงื่อนไขค่าระวาง และอื่น ๆ API รองรับทั้งรูปแบบ Master B/L และ House B/L ต้นฉบับและสำเนา Telex Release รวมถึงรองรับการขนส่งหลายตู้คอนเทนเนอร์พร้อมการดึงข้อมูลระดับตู้คอนเทนเนอร์แต่ละใบ
คำขอ API ทั้งหมดใช้งานผ่าน HTTPS การตอบกลับจะอยู่ในรูปแบบ JSON โดย API เป็นไปตามมาตรฐาน RESTful และใช้รหัสสถานะ HTTP มาตรฐาน
URL พื้นฐาน
Endpoint ทั้งหมดที่อธิบายในเอกสารนี้เป็นเส้นทางสัมพัทธ์จาก URL พื้นฐานนี้ ตัวอย่างเช่น parse endpoint สามารถเข้าถึงได้ที่ https://api.kabytech.co.th/v1/bl/parse
การยืนยันตัวตน
คำขอ API ทั้งหมดต้องมีการยืนยันตัวตนผ่าน API key โดยใส่ API key ของคุณในส่วนหัว X-API-Key กับทุกคำขอ คุณสามารถรับ API key ได้จาก KabyTech Dashboard หลังจากสร้างบัญชีแล้ว
API key จะมีคำนำหน้า kby_live_ สำหรับ Production และ kby_test_ สำหรับ Sandbox คีย์ทดสอบจะประมวลผลเอกสารแต่ส่งคืนข้อมูลจำลอง — ใช้งานได้ฟรีระหว่างการพัฒนา
| ส่วนหัว | ค่า | จำเป็น |
|---|---|---|
X-API-Key | API key ของคุณ (kby_live_... หรือ kby_test_...) | จำเป็น |
Content-Type | application/json or multipart/form-data | จำเป็น |
Accept | application/json | ไม่บังคับ |
เริ่มต้นใช้งานอย่างรวดเร็ว
วิเคราะห์ใบตราส่งสินค้าฉบับแรกของคุณภายใน 5 นาที ตัวอย่างนี้ใช้ Python SDK เพื่ออัปโหลด PDF และรับข้อมูลที่มีโครงสร้างพร้อมรายละเอียดตู้คอนเทนเนอร์
POST /v1/bl/parse
วิเคราะห์เอกสารใบตราส่งสินค้าฉบับเดียวและส่งคืนข้อมูลที่มีโครงสร้าง รองรับไฟล์ PDF, PNG, JPG และ TIFF ส่งคืนฟิลด์ B/L ทั้งหมดเป็น JSON ที่มีโครงสร้าง รวมถึงการดึงข้อมูลหลายตู้คอนเทนเนอร์พร้อมการตรวจสอบหมายเลขตู้คอนเทนเนอร์ ISO 6346
วิเคราะห์เอกสารใบตราส่งสินค้าทางทะเลและดึงข้อมูลฟิลด์การขนส่งทั้งหมด รองรับเอกสารจาก Evergreen, ONE, MSC, Maersk, COSCO, Hapag-Lloyd, Yang Ming, HMM และสายเรืออื่น ๆ เวลาประมวลผลเฉลี่ยอยู่ที่ 1.4–2.2 วินาทีต่อเอกสาร ขึ้นอยู่กับจำนวนตู้คอนเทนเนอร์
เนื้อหาคำขอ (JSON)
| พารามิเตอร์ | ชนิด | คำอธิบาย |
|---|---|---|
document จำเป็น | string | เนื้อหาเอกสารที่เข้ารหัส Base64 (PDF, PNG, JPG, TIFF) |
format จำเป็น | string | รูปแบบเอกสาร: pdf, png, jpg หรือ tiff |
include_confidence ไม่บังคับ | boolean | รวมคะแนนความเชื่อมั่นแต่ละฟิลด์ (ค่าเริ่มต้น: true) |
validate_containers ไม่บังคับ | boolean | ตรวจสอบหมายเลขตู้คอนเทนเนอร์ตามเลขตรวจสอบ ISO 6346 (ค่าเริ่มต้น: true) |
extract_all_containers ไม่บังคับ | boolean | ดึงข้อมูลตู้คอนเทนเนอร์ทั้งหมดจาก B/L หลายหน้า (ค่าเริ่มต้น: true) |
webhook_url ไม่บังคับ | string | URL สำหรับรับ POST callback เมื่อการประมวลผลเสร็จสิ้น |
carrier_hint ไม่บังคับ | string | รหัส SCAC ของสายเรือเพื่อเพิ่มความแม่นยำ (เช่น EGLV, MAEU) |
ตัวอย่างคำขอ (cURL)
การตอบกลับ (200 OK)
GET /v1/bl/{id}
ดึงผลลัพธ์ B/L ที่วิเคราะห์ไว้ก่อนหน้าโดยใช้ ID เฉพาะ ผลลัพธ์จะถูกจัดเก็บไว้ 90 วัน ใช้ endpoint นี้เพื่อดึงผลลัพธ์แบบอะซิงโครนัสเมื่อใช้ webhooks หรือเพื่อเข้าถึงเอกสารที่วิเคราะห์ไว้ก่อนหน้านี้อีกครั้ง
ส่งคืนผลลัพธ์การวิเคราะห์ฉบับเต็มสำหรับเอกสารใบตราส่งสินค้าที่ระบุ {id} คือตัวระบุเฉพาะที่ส่งคืนจาก /bl/parse endpoint (เช่น bl_7k4m9p2n6j1x) ส่งคืน schema การตอบกลับเดียวกับ parse endpoint
พารามิเตอร์เส้นทาง
| Parameter | Type | Description |
|---|---|---|
id จำเป็น | string | ID ผลลัพธ์ B/L เฉพาะ (เช่น bl_7k4m9p2n6j1x) |
พารามิเตอร์คิวรี
| Parameter | Type | Description |
|---|---|---|
include_raw ไม่บังคับ | boolean | รวมข้อความ OCR ดิบควบคู่กับข้อมูลที่มีโครงสร้าง (ค่าเริ่มต้น: false) |
container_filter ไม่บังคับ | string | กรองตู้คอนเทนเนอร์ตามคำนำหน้าหมายเลข (เช่น EGHU) |
POST /v1/bl/batch
ส่งเอกสาร B/L หลายฉบับเพื่อประมวลผลเป็นชุด API รับเอกสารได้สูงสุด 50 ฉบับต่อคำขอเป็นชุดและประมวลผลแบบอะซิงโครนัส ใช้พารามิเตอร์ webhook_url หรือตรวจสอบ GET /bl/{id} endpoint เพื่อดูผลลัพธ์ เหมาะสำหรับการประมวลผลใบรายการสินค้าหรือการแปลงเอกสาร B/L ที่เก็บถาวรเป็นดิจิทัล
ส่งเอกสารใบตราส่งสินค้าเป็นชุดเพื่อประมวลผลแบบอะซิงโครนัส ส่งคืนทันทีพร้อม batch ID และ ID เอกสารแต่ละฉบับ เอกสารแต่ละฉบับถูกประมวลผลอย่างอิสระ — ความล้มเหลวของเอกสารหนึ่งจะไม่กระทบเอกสารอื่น รองรับเอกสารจากหลายสายเรือในชุดเดียวกัน
เนื้อหาคำขอ
| Parameter | Type | Description |
|---|---|---|
documents จำเป็น | array | อาร์เรย์ของออบเจกต์เอกสาร (สูงสุด 50) แต่ละออบเจกต์มีฟิลด์ document และ format |
webhook_url ไม่บังคับ | string | URL สำหรับรับ POST callback เมื่อชุดทั้งหมดประมวลผลเสร็จสิ้น |
priority ไม่บังคับ | string | normal (ค่าเริ่มต้น) หรือ high (เฉพาะแผน Professional/Enterprise) |
validate_containers ไม่บังคับ | boolean | ตรวจสอบหมายเลขตู้คอนเทนเนอร์ทั้งหมดตาม ISO 6346 (ค่าเริ่มต้น: true) |
GET /v1/status
ตรวจสอบสถานะ API และการใช้งานบัญชีของคุณ ส่งคืนสถานะ API ปัจจุบัน รายละเอียดแผนของคุณ และโควตาคำขอที่เหลือสำหรับรอบการเรียกเก็บเงินปัจจุบัน
ส่งคืนสถานะความพร้อมใช้งาน API ข้อมูลแผนบัญชีของคุณ และสถิติการใช้งานปัจจุบัน ใช้เพื่อตรวจสอบโควตาหรือยืนยันการเชื่อมต่อ
ส่วนต่าง ๆ ของ B/L อ้างอิง
KabyTech API วิเคราะห์ส่วนมาตรฐานทั้งหมดของใบตราส่งสินค้าทางทะเล ด้านล่างนี้คือกลุ่มส่วนหลักที่ส่งคืนในการตอบกลับ โดยแต่ละส่วนมีฟิลด์ที่มีโครงสร้างหลายรายการ
| # | กลุ่มส่วน | คีย์ | คำอธิบาย |
|---|---|---|---|
| 1 | ส่วนหัว | header | หมายเลข B/L วันที่ออก ชนิด B/L (ต้นฉบับ สำเนา telex release) จำนวนต้นฉบับ ชื่อสายเรือและรหัส SCAC |
| 2 | ผู้ส่งสินค้า | shipper | ชื่อผู้ส่งสินค้า/ผู้ส่งออกเต็ม ที่อยู่จดทะเบียน โทรศัพท์/แฟกซ์ติดต่อ อีเมล เลขประจำตัวผู้เสียภาษี |
| 3 | ผู้รับสินค้า | consignee | ชื่อผู้รับสินค้า ที่อยู่เต็ม รายละเอียดการติดต่อ รองรับข้อความ "To Order" และ "To Order of" |
| 4 | ผู้รับแจ้ง | notify_party | ชื่อผู้รับแจ้ง ที่อยู่ การติดต่อ รองรับผู้รับแจ้งหลายรายด้วยฟิลด์ also_notify |
| 5 | เรือ & เที่ยวเรือ | vessel_voyage | ชื่อเรือ หมายเลข IMO ของ Lloyd's หมายเลขเที่ยวเรือ รัฐธง เรือขนส่งล่วงหน้า (หากเป็นเรือ feeder) |
| 6 | ท่าเรือ | ports | ท่าเรือต้นทาง (POL) ท่าเรือปลายทาง (POD) สถานที่รับสินค้า (POR) สถานที่ส่งมอบสินค้า (POD) — ทั้งหมดพร้อม UN/LOCODE |
| 7 | ตู้คอนเทนเนอร์ | containers | หมายเลขตู้คอนเทนเนอร์ (ตรวจสอบ ISO 6346 แล้ว) หมายเลขซีล ขนาด/ชนิด (20GP, 40HC ฯลฯ) น้ำหนักตู้เปล่า น้ำหนักรวม หีบห่อ เครื่องหมาย & หมายเลข รายละเอียดสินค้าต่อตู้คอนเทนเนอร์ |
| 8 | รายละเอียดสินค้า | goods | รายละเอียดสินค้ารวม รหัส HS เครื่องหมายและหมายเลข หีบห่อทั้งหมด ชนิดหีบห่อ น้ำหนักรวม การวัด (CBM) |
| 9 | ค่าระวาง & ค่าใช้จ่าย | freight | เงื่อนไขค่าระวาง (Prepaid/Collect) จำนวนค่าระวาง สกุลเงิน ค่าใช้จ่ายเพิ่มเติม อัตราแลกเปลี่ยน ค่าใช้จ่ายรวม |
| 10 | ข้อกำหนด & เงื่อนไข | terms | เขตอำนาจศาลที่ใช้บังคับ ข้อกำหนดหลัก ตัวบ่งชี้กฎ Hague-Visby ข้อกำหนดเพิ่มเติม |
รายละเอียดฟิลด์ในการตอบกลับ
การตอบกลับ API ทุกครั้งจะรวมฟิลด์ระดับบนสุดเหล่านี้ควบคู่กับข้อมูลส่วนโดยละเอียด ตัววิเคราะห์ B/L ดึงข้อมูล 45+ ฟิลด์จากเอกสารแต่ละฉบับ
original, copy, telex_release, express หรือ switch
name, address, contact, tax_id
name, address, contact อาจมี flag to_order
name, address, contact
name และ UN/LOCODE code
name และ UN/LOCODE code
name และ code
name และ code
number, iso6346_valid, seal, type, size_type_code, weight_kg, packages, package_type, description
Prepaid หรือ Collect
value (ตัวเลข), currency (ISO 4217)
field, message และ severity
รหัสข้อผิดพลาด
API ใช้รหัสสถานะ HTTP มาตรฐาน การตอบกลับข้อผิดพลาดทั้งหมดจะรวม JSON body ที่มีฟิลด์ error, message และ code
| สถานะ | รหัส | คำอธิบาย |
|---|---|---|
| 400 | invalid_document | ไม่สามารถอ่านเอกสารได้ กรุณาตรวจสอบการเข้ารหัสและพารามิเตอร์รูปแบบ |
| 400 | unsupported_format | รูปแบบเอกสารไม่รองรับ ใช้ pdf, png, jpg หรือ tiff |
| 401 | invalid_api_key | API key หายไป ไม่ถูกต้อง หรือหมดอายุ |
| 403 | plan_limit_exceeded | โควตาคำขอรายเดือนเกินแล้ว อัปเกรดแผนของคุณหรือรอการรีเซ็ต |
| 404 | bl_not_found | ไม่พบผลลัพธ์การวิเคราะห์สำหรับ ID ที่ระบุ ผลลัพธ์จะหมดอายุหลัง 90 วัน |
| 422 | parse_failed | อ่านเอกสารได้แต่ไม่สามารถดึงข้อมูล B/L ได้ กรุณาตรวจสอบเนื้อหาเอกสาร |
| 422 | container_validation_failed | หมายเลขตู้คอนเทนเนอร์หนึ่งรายการหรือมากกว่าไม่ผ่านการตรวจสอบเลขตรวจสอบ ISO 6346 |
| 429 | rate_limited | คำขอมากเกินไป กรุณาปฏิบัติตามขีดจำกัดอัตราสำหรับระดับแผนของคุณ |
| 500 | internal_error | ข้อผิดพลาดเซิร์ฟเวอร์ที่ไม่คาดคิด ลองส่งคำขอใหม่ หากยังเกิดขึ้นอยู่ กรุณาติดต่อฝ่ายสนับสนุน |
| 503 | service_unavailable | API ไม่พร้อมใช้งานชั่วคราวเนื่องจากการบำรุงรักษา โดยปกติไม่เกิน 5 นาที |
ขีดจำกัดอัตราการเรียกใช้
ขีดจำกัดอัตราแตกต่างกันตามระดับแผน ขีดจำกัดทั้งหมดใช้ต่อ API key ตามรายนาทีและรายเดือน ส่วนหัวขีดจำกัดอัตราจะรวมอยู่ในการตอบกลับทุกครั้ง
60
คำขอ/นาที
แผน Starter
300
คำขอ/นาที
แผน Professional
1,000
คำขอ/นาที
แผน Enterprise
| ส่วนหัวการตอบกลับ | คำอธิบาย |
|---|---|
X-RateLimit-Limit | จำนวนคำขอสูงสุดต่อนาทีสำหรับแผนของคุณ |
X-RateLimit-Remaining | คำขอที่เหลือในช่วงเวลานาทีปัจจุบัน |
X-RateLimit-Reset | Unix timestamp เมื่อหน้าต่างขีดจำกัดอัตรารีเซ็ต |
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 B/L API กับ CargoWise, SAP, Oracle TMS หรือระบบจัดการขนส่งสินค้าของคุณเอง