บทนำ
CMR Consignment Note API สกัดข้อมูลที่มีโครงสร้างจากใบตราส่งสินค้าทางถนน CMR (Convention relative au contrat de transport international de Marchandises par Route) โดยใช้เทคโนโลยี OCR ขั้นสูงและการเรียนรู้ของเครื่อง ออกแบบมาโดยเฉพาะสำหรับการปฏิบัติตามข้อกำหนดของอนุภูมิภาคลุ่มแม่น้ำโขง (GMS) และความตกลงว่าด้วยการขนส่งข้ามพรมแดน (CBTA) โดย API รองรับข้อกำหนดเฉพาะของเอกสารขนส่งสินค้าทางถนนในอาเซียน
API มีคุณสมบัติ OCR อักษรไทย โดยเฉพาะสำหรับการแยกวิเคราะห์ทะเบียนรถ ช่วยให้สามารถสกัดข้อมูลป้ายทะเบียนรถไทยที่เขียนเป็น ทะเบียนรถ ได้อย่างแม่นยำทั้งในรูปแบบมาตรฐานและลายมือ รองรับเส้นทางถนน GMS หลักทั้งหมด: ไทย-ลาว (หนองคาย/มุกดาหาร), ไทย-กัมพูชา (อรัญประเทศ/ปอยเปต), ไทย-เมียนมา (แม่สอด/เมียวดี) และ ไทย-เวียดนาม (ผ่านลาว)
ความสามารถหลักประกอบด้วยการตรวจสอบหมายเลขใบอนุญาต CBTA, การตรวจสอบด่านชายแดนอาเซียนกับฐานข้อมูลด่านตรวจ GMS อย่างเป็นทางการ, การแยกวิเคราะห์ทะเบียนรถและรถพ่วงอักษรไทย, การสกัดข้อมูลใบอนุญาตขับขี่ และการระบุรหัสเส้นทาง GMS อัตโนมัติ API ส่งคืนฟิลด์ที่มีโครงสร้างมากกว่า 30 รายการพร้อมคะแนนความเชื่อมั่นของแต่ละฟิลด์
รูปแบบไฟล์ที่รองรับ: PDF, JPEG, PNG, TIFF (สูงสุด 20 MB ต่อไฟล์) เวลาประมวลผลเฉลี่ย: 0.9-1.8 วินาที ปรับแต่งสำหรับภาพที่ถ่ายจากมือถือของใบตราส่ง CMR ที่ด่านชายแดน
การยืนยันตัวตน
คำขอ API ทั้งหมดต้องมี API key ที่ถูกต้องในส่วนหัว Authorization โดยใช้รูปแบบ Bearer token API key ถูกกำหนดขอบเขตตามองค์กรของคุณ และสามารถสร้าง หมุนเวียน และเพิกถอนได้จากแดชบอร์ด
Authorization: Bearer YOUR_API_KEY
รับ API key ของคุณจาก dashboard.kabytech.com → Settings → API Keys แต่ละคีย์สามารถกำหนดสิทธิ์อย่างละเอียด (read, write, batch) และระดับการจำกัดอัตราการใช้งาน เราแนะนำให้สร้างคีย์แยกสำหรับสภาพแวดล้อมการพัฒนาและการใช้งานจริง
แนวปฏิบัติด้านความปลอดภัย:
- ห้ามเปิดเผย API key ในโค้ดฝั่งไคลเอนต์หรือที่เก็บสาธารณะ
- หมุนเวียนคีย์ทุก 90 วัน หรือทันทีหากถูกบุกรุก
- ใช้ตัวแปรสภาพแวดล้อมหรือตัวจัดการความลับเพื่อเก็บคีย์
- เปิดใช้งานรายการอนุญาต IP สำหรับคีย์การใช้งานจริงในแดชบอร์ด
เริ่มต้นอย่างรวดเร็ว
แยกวิเคราะห์ใบตราส่งสินค้าทางถนน CMR ได้ในไม่กี่วินาที อัปโหลดภาพเอกสารหรือ PDF และรับ JSON ที่มีโครงสร้างพร้อมฟิลด์ที่สกัดได้มากกว่า 30 รายการ รวมถึงทะเบียนรถอักษรไทยและข้อมูลใบอนุญาต CBTA
curl -X POST https://api.kabytech.com/v1/cmr/parse \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: multipart/form-data" \ -F "file=@/path/to/cmr-note.pdf" \ -F "language=th" \ -F "validate_checkpoint=true"
API ตรวจจับข้อความอักษรไทยสำหรับทะเบียนรถโดยอัตโนมัติ และใช้การตรวจสอบด่านตรวจอาเซียน สำหรับเอกสารที่ถ่ายภาพที่ด่านชายแดน ระบบปรับปรุงภาพจะแก้ไขการเอียง แสงสว่าง และความละเอียดต่ำก่อนการประมวลผล OCR
ตัวอย่างการตอบกลับสำหรับการขนส่งสินค้าเกษตรเส้นทางกรุงเทพ-หนองคาย-เวียงจันทน์:
{
"id": "job_cmr_4a7c1d9e2f5b",
"status": "completed",
"document_type": "cmr",
"data": {
"cmr_number": "CMRKBT2026012345",
"date_of_issue": "2026-03-20",
"sender": {
"name": "Chiang Mai Organic Farm Cooperative",
"address": "234 Huay Kaew Road, Muang, Chiang Mai 50200, Thailand",
"country": "TH",
"tax_id": "0105563012345"
},
"carrier": {
"name": "GMS Express Transport Co., Ltd.",
"address": "89 Mittraphap Road, Muang, Nong Khai 43000, Thailand",
"country": "TH",
"transport_license": "TH-DLT-2026-04567"
},
"consignee": {
"name": "Vientiane Fresh Market Import Co., Ltd.",
"address": "45 Lan Xang Avenue, Chanthabouly District, Vientiane, Laos",
"country": "LA"
},
"place_of_loading": "Chiang Mai Cold Storage Facility, Thailand",
"place_of_delivery": "Vientiane Morning Market Distribution Center, Laos",
"date_of_loading": "2026-03-20T06:00:00+07:00",
"goods_description": "Fresh organic longan (600 kg), dried longan (400 kg), organic jasmine rice (2000 kg)",
"hs_codes": ["0810.90", "0813.40", "1006.30"],
"gross_weight": "3200 kg",
"number_of_packages": 180,
"packaging_type": "Corrugated cartons (longan), woven polypropylene bags (rice)",
"volume_m3": 14.5,
"vehicle_registration": "กท 5678 กรุงเทพมหานคร",
"vehicle_registration_latin": "KT 5678 Bangkok",
"trailer_registration": "ผส 1234 นนทบุรี",
"trailer_registration_latin": "PS 1234 Nonthaburi",
"vehicle_type": "refrigerated_truck",
"driver_name": "Somchai Prasert",
"driver_license": "TH-51012345678",
"driver_nationality": "TH",
"border_checkpoint": "Nong Khai / Thanaleng",
"border_checkpoint_code": "GMS-NKI-TNL",
"customs_reference": "TH-LA-2026-007890",
"cbta_permit_number": "CBTA-GMS-2026-01234",
"cbta_permit_valid_until": "2026-12-31",
"gms_route_code": "R1",
"gms_corridor": "North-South Economic Corridor",
"phytosanitary_certificate": "TH-PHYTO-2026-003456",
"temperature_requirement": "2-8°C (longan), ambient (rice)",
"insurance_reference": "INS-GMS-2026-005678",
"special_instructions": "Maintain cold chain. Inspect at border for phytosanitary compliance."
},
"confidence": 0.95,
"field_confidences": {
"cmr_number": 0.99,
"sender.name": 0.97,
"vehicle_registration": 0.94,
"cbta_permit_number": 0.96,
"goods_description": 0.93,
"border_checkpoint": 0.98
},
"processing_time_ms": 1340,
"pages_processed": 2,
"thai_script_detected": true,
"checkpoint_validated": true
}POST /v1/cmr/parse
อัปโหลดใบตราส่งสินค้าทางถนน CMR เพื่อแยกวิเคราะห์ API รับไฟล์ PDF, JPEG, PNG และ TIFF ขนาดสูงสุด 20 MB ปรับแต่งสำหรับทั้งเอกสารสแกนที่ชัดเจนและภาพถ่ายจากมือถือที่ถ่ายที่ด่านชายแดนอาเซียน — ระบบปรับปรุงภาพจะแก้ไขการเอียง แสงไม่สม่ำเสมอ และการบดบังบางส่วนโดยอัตโนมัติ
OCR อักษรไทยเปิดใช้งานตามค่าเริ่มต้น ตัวแยกวิเคราะห์จะระบุรูปแบบทะเบียนรถไทย (ทะเบียนรถ) และแปลงเป็นอักษรละตินในฟิลด์คู่ขนานเพื่อการรวมเข้ากับระบบโลจิสติกส์ระหว่างประเทศ
พารามิเตอร์คำขอ
th (ไทย), en (อังกฤษ), lo (ลาว), km (เขมร), my (เมียนมา) ค่าเริ่มต้น: autonormal หรือ high ลำดับความสำคัญสูงใช้เครดิต 2 เท่า ค่าเริ่มต้น: normaltruetruefalsetruetrueฟิลด์การตอบกลับ
completed, processing หรือ failedcmr เสมอสำหรับใบตราส่งสินค้าทางถนนGET /v1/cmr/{id}
ดึงผลลัพธ์การแยกวิเคราะห์ของใบตราส่ง CMR ที่ส่งไว้ก่อนหน้าโดยใช้รหัสงาน ใช้ endpoint นี้เมื่อการแยกวิเคราะห์เริ่มต้นส่งคืนสถานะ "processing" หรือเพื่อดึงผลลัพธ์อีกครั้งในช่วงระยะเวลาเก็บรักษา
ผลลัพธ์จะถูกเก็บรักษาเป็นเวลา 30 วันหลังจากการแยกวิเคราะห์ หลังจากช่วงเวลานี้ รหัสงานจะหมดอายุและส่งคืนข้อผิดพลาด 404
พารามิเตอร์เส้นทาง
job_cmr_4a7c1d9e2f5b)พารามิเตอร์การสืบค้น
falsecmr_number,sender,vehicle_registration,border_checkpointcurl https://api.kabytech.com/v1/cmr/job_cmr_4a7c1d9e2f5b \ -H "Authorization: Bearer YOUR_API_KEY" \ -G -d "fields=cmr_number,sender,carrier,consignee,vehicle_registration,border_checkpoint,cbta_permit_number"
{
"id": "job_cmr_4a7c1d9e2f5b",
"status": "completed",
"document_type": "cmr",
"data": {
"cmr_number": "CMRKBT2026012345",
"sender": {
"name": "Chiang Mai Organic Farm Cooperative",
"address": "234 Huay Kaew Road, Muang, Chiang Mai 50200, Thailand",
"country": "TH"
},
"carrier": {
"name": "GMS Express Transport Co., Ltd.",
"address": "89 Mittraphap Road, Muang, Nong Khai 43000, Thailand",
"country": "TH"
},
"consignee": {
"name": "Vientiane Fresh Market Import Co., Ltd.",
"address": "45 Lan Xang Avenue, Chanthabouly District, Vientiane, Laos",
"country": "LA"
},
"vehicle_registration": "กท 5678 กรุงเทพมหานคร",
"vehicle_registration_latin": "KT 5678 Bangkok",
"border_checkpoint": "Nong Khai / Thanaleng",
"cbta_permit_number": "CBTA-GMS-2026-01234"
},
"confidence": 0.95,
"processing_time_ms": 1340
}POST /v1/cmr/batch
ส่งใบตราส่ง CMR สูงสุด 50 ฉบับสำหรับการประมวลผลแบบกลุ่ม เหมาะสำหรับการประมวลผลรายการข้ามพรมแดนรายวัน การตรวจสอบการปฏิบัติตามข้อกำหนดของกองยานพาหนะ หรือการแปลงเอกสาร CBTA ย้อนหลังเป็นดิจิทัล ไฟล์แต่ละไฟล์จะถูกประมวลผลอย่างอิสระและผลลัพธ์จะถูกรวบรวม
งานแบบกลุ่มทำงานแบบอะซิงโครนัสเสมอ ใช้ batch_id ที่ได้รับเพื่อสำรวจผลลัพธ์ หรือระบุ webhook_url เพื่อรับ callback เมื่อเอกสารทั้งหมดเสร็จสมบูรณ์
พารามิเตอร์คำขอ
autotrue3curl -X POST https://api.kabytech.com/v1/cmr/batch \ -H "Authorization: Bearer YOUR_API_KEY" \ -F "files[]=@cmr-bangkok-vientiane.pdf" \ -F "files[]=@cmr-aranyaprathet-poipet.pdf" \ -F "files[]=@cmr-mae-sot-myawaddy.jpg" \ -F "language=th" \ -F "validate_checkpoint=true" \ -F "webhook_url=https://your-server.com/webhooks/cmr-batch"
{
"batch_id": "batch_cmr_3n8k5w2j",
"status": "processing",
"total_files": 3,
"completed": 0,
"failed": 0,
"estimated_completion_seconds": 8,
"results_url": "https://api.kabytech.com/v1/cmr/batch/batch_cmr_3n8k5w2j"
}GET /v1/status
Endpoint ตรวจสอบสถานะสำหรับบริการแยกวิเคราะห์ CMR ส่งคืนสถานะการดำเนินงานปัจจุบัน เวอร์ชัน API และความลึกของคิว Endpoint นี้ไม่ต้องการการยืนยันตัวตน และสามารถใช้สำหรับการตรวจสอบและติดตามเวลาทำงาน
curl https://api.kabytech.com/v1/status{
"service": "cmr-parser",
"status": "operational",
"version": "2.4.1",
"queue_depth": 3,
"avg_processing_time_ms": 1280,
"supported_corridors": ["TH-LA", "TH-KH", "TH-MM", "TH-VN"],
"thai_ocr_engine": "active",
"cbta_database_updated": "2026-03-15T00:00:00Z",
"checkpoint_database_updated": "2026-03-20T00:00:00Z",
"uptime_percent": 99.98,
"last_incident": "2026-01-22T08:15:00Z"
}อ้างอิงส่วนต่าง ๆ ของ CMR
ใบตราส่ง CMR เป็นไปตามรูปแบบมาตรฐานที่กำหนดโดยอนุสัญญา CMR ซึ่งปรับใช้สำหรับการขนส่งข้ามพรมแดนอาเซียน/GMS API จับคู่ข้อมูลที่สกัดได้กับส่วนตรรกะเหล่านี้ซึ่งสอดคล้องกับหมายเลขช่องมาตรฐาน CMR แต่ละส่วนจัดกลุ่มฟิลด์ที่เกี่ยวข้องเพื่อให้เข้าถึงได้ง่าย
ส่วนหัวเอกสาร
ฟิลด์ระบุตัวตนหลักจากด้านบนของใบตราส่ง CMR
ส่วนคู่สัญญา (ผู้ส่ง / ผู้ขนส่ง / ผู้รับ)
คู่สัญญาทั้งสามฝ่ายของสัญญา CMR สอดคล้องกับช่อง CMR 1 (ผู้ส่ง), 2 (ผู้รับ) และ 16 (ผู้ขนส่ง)
name, address, country, tax_idname, address, countryname, address, country, transport_licensename และ segmentส่วนรายละเอียดยานพาหนะ
ข้อมูลยานพาหนะและคนขับจากช่อง 18 เอนจิน OCR อักษรไทยของ API จะแยกวิเคราะห์ทะเบียนรถไทย (ทะเบียนรถ) และให้ทั้งอักษรไทยต้นฉบับและการแปลงเป็นอักษรละติน
กท 5678 กรุงเทพฯ)truck, refrigerated_truck, tanker, flatbed, container_truckส่วนเส้นทาง
สถานที่รับ/ส่งสินค้าและรายละเอียดการข้ามพรมแดน ชื่อด่านตรวจอาเซียนจะถูกตรวจสอบกับฐานข้อมูล GMS อย่างเป็นทางการเมื่อเปิดใช้งาน validate_checkpoint
GMS-NKI-TNL)R1 (เหนือ-ใต้), R2 (ตะวันออก-ตะวันตก), R3 (ใต้) เป็นต้นส่วนสินค้า
รายละเอียดสินค้าจากช่อง CMR 6-12
ส่วนศุลกากรและชายแดน
ข้อมูลการปฏิบัติตาม CBTA การอ้างอิงศุลกากร และเอกสารการผ่านแดนเฉพาะสำหรับการขนส่งข้ามพรมแดน GMS
อ้างอิงฟิลด์การตอบกลับ
เอกสารอ้างอิงฉบับสมบูรณ์ของฟิลด์มากกว่า 30 รายการที่สกัดจากใบตราส่งสินค้าทางถนน CMR แต่ละฟิลด์มีคะแนนความเชื่อมั่น (0.0 ถึง 1.0) ในอ็อบเจกต์ field_confidences ฟิลด์ที่ไม่มีอยู่ในเอกสารต้นฉบับจะส่งคืนเป็น null
name, address, country, tax_idname, address, country, transport_licensename, address, countrycurrency, amount, termsprepaid, collect, third_partyรหัสข้อผิดพลาด
API ส่งคืนรหัสสถานะ HTTP มาตรฐานพร้อมเนื้อหาข้อผิดพลาด JSON ที่มี code สำหรับการประมวลผลด้วยโปรแกรม และ message ที่อ่านได้ง่าย ใช้ฟิลด์ code สำหรับการจัดการข้อผิดพลาดแบบโปรแกรม
Retry-Afterขีดจำกัดอัตราการใช้งาน
ขีดจำกัดอัตราการใช้งานถูกบังคับใช้ต่อ API key และแตกต่างกันตามระดับแผน ขีดจำกัดถูกบังคับใช้โดยใช้อัลกอริทึมหน้าต่างเลื่อน API ส่งคืนส่วนหัวขีดจำกัดอัตราการใช้งานกับทุกการตอบกลับ:
X-RateLimit-Limit— จำนวนคำขอสูงสุดที่อนุญาตต่อนาทีX-RateLimit-Remaining— คำขอที่เหลือในหน้าต่างปัจจุบันX-RateLimit-Reset— Unix timestamp เมื่อหน้าต่างรีเซ็ตRetry-After— จำนวนวินาทีที่ต้องรอก่อนลองใหม่ (เฉพาะการตอบกลับ 429)
SDK อย่างเป็นทางการ
KabyTech ให้บริการ SDK อย่างเป็นทางการสำหรับภาษาโปรแกรมยอดนิยมเพื่อลดความซับซ้อนในการรวมเข้ากับ CMR API SDK ทั้งหมดจัดการการยืนยันตัวตน การลองใหม่ การอัปโหลดไฟล์ และการแยกวิเคราะห์การตอบกลับโดยอัตโนมัติ
# Python pip install kabytech from kabytech import KabyTech client = KabyTech(api_key="YOUR_API_KEY") result = client.cmr.parse("cmr-note.pdf", language="th", validate_checkpoint=True) print(result.data.cmr_number) print(result.data.vehicle_registration) # Thai script print(result.data.vehicle_registration_latin) # Latin transliteration print(result.data.cbta_permit_number)
// Node.js npm install @kabytech/sdk const { KabyTech } = require("@kabytech/sdk"); const client = new KabyTech({ apiKey: "YOUR_API_KEY" }); const result = await client.cmr.parse("cmr-note.pdf", { language: "th", validateCheckpoint: true, validateCbta: true, transliterateThai: true }); console.log(result.data.cmrNumber); console.log(result.data.vehicleRegistration); console.log(result.data.borderCheckpoint); console.log(result.data.cbtaPermitNumber);
SDK เพิ่มเติมที่พร้อมใช้งาน: Go (go get github.com/kabytech/kabytech-go), Java (Maven Central: com.kabytech:kabytech-sdk), PHP (composer require kabytech/sdk) เอกสาร SDK ฉบับสมบูรณ์มีอยู่ที่ docs.kabytech.com/sdks