ฟีเจอร์ โมดูล แอปคนขับ ดาวน์โหลดแอปคนขับ (APK) ราคา เกี่ยวกับเรา API Documentation English
ธีม
→ เข้าสู่ระบบ
Integration API · v1

OrcaTMS API Documentation

REST API ให้ระบบภายนอก (เช่น WMS/ERP) สร้างงานขนส่ง เช็คสถานะ ยกเลิก ดึงหลักฐานการส่ง (POD) และส่งพิกัด GPS เข้าสู่ OrcaTMS ได้ ทุก endpoint คืน JSON และยืนยันตัวตนด้วย API key

01ภาพรวม

OrcaTMS Integration API ออกแบบมาให้เชื่อมต่อระบบคลังสินค้า (WMS) หรือ ERP เข้ากับงานขนส่งได้อัตโนมัติ — สร้างงานจากคำสั่งซื้อ ติดตามสถานะจนส่งมอบ และรับหลักฐาน POD กลับไปยังระบบต้นทาง

  • ทุกคำขอและคำตอบเป็น JSON
  • ยืนยันตัวตนด้วย API key (ไม่ใช้ล็อกอินผู้ใช้) — ผูกกับองค์กร (tenant) จากตัวคีย์เอง
  • สร้างงานแบบ idempotent ด้วย external_ref — ส่งซ้ำได้โดยไม่เกิดงานซ้ำ

02Base URL

EnvironmentBase URL
Productionhttps://tms.trs-nextgen.com/api/public/api/v1
Dev (Laragon)http://tms-project.test/backend-api/public/api/v1

ตัวอย่างในเอกสารนี้ใช้ตัวแปร {BASE} แทน base URL ด้านบน

03การยืนยันตัวตน (Authentication)

ส่ง API key มากับทุกคำขอผ่าน header (เลือกได้ 1 แบบ):

X-API-Key: tmsk_xxxxxxxx_yyyyyyyyyyyyyyyy
# หรือ
Authorization: Bearer tmsk_xxxxxxxx_yyyyyyyyyyyyyyyy

การสร้าง API key

ผู้ดูแลระบบสร้างคีย์ได้ที่ Dashboard → ตั้งค่า → การใช้งานระบบ → แท็บ “API ระบบภายนอก”

  • เลือก scope ที่ต้องการ
  • คีย์เต็มจะแสดงครั้งเดียวตอนสร้าง — เก็บให้ปลอดภัย (ระบบเก็บเฉพาะ hash)
  • เพิกถอน (revoke) คีย์ได้ตลอดเวลา

04Scopes

Scopeใช้ทำอะไร
public.readอ่านข้อมูลงาน / รถ / ตำแหน่ง / POD
jobs.writeสร้าง / ยกเลิกงานขนส่ง
gps.ingestส่งพิกัด GPS เข้าระบบ
💡
WMS ที่สร้างงาน + ติดตามสถานะ ต้องการ jobs.write + public.read

05Rate limit

  • อ่าน (public.read): 120 คำขอ/นาที ต่อคีย์
  • เขียน (jobs.write): 120 คำขอ/นาที ต่อคีย์
  • GPS ingest: 600 คำขอ/นาที ต่อคีย์
  • เกินโควตา → 429 พร้อม header Retry-After, X-RateLimit-Remaining

06รูปแบบ Response

// สำเร็จ
{ "status": "success", "data": { ... } }
// ผิดพลาด
{ "status": "error", "message": "..." }
HTTPความหมาย
200สำเร็จ / idempotent (มีอยู่แล้ว)
201สร้างสำเร็จ
400 / 422ข้อมูลไม่ถูกต้อง
401API key ไม่ถูกต้อง / ถูกยกเลิก
403คีย์ไม่มี scope ที่ต้องใช้
404ไม่พบข้อมูล
409สถานะไม่อนุญาต
429เรียกถี่เกิน / เกินโควตา

07สร้างงานขนส่ง

POST{BASE}/jobsscope: jobs.write

สร้างงานขนส่งใหม่จากคำสั่งของ WMS · idempotent ด้วย external_ref

Request body

{
  "external_ref": "WMS-ORD-100245",
  "customer": { "name": "บริษัท ลูกค้า จำกัด", "phone": "0891234567" },
  "pickup": { "name": "คลังสินค้า A แหลมฉบัง", "latitude": 13.0827, "longitude": 100.8836 },
  "deliveries": [
    { "name": "ห้างเซ็นทรัล ชลบุรี", "latitude": 13.3611, "longitude": 100.9847 },
    { "name": "โลตัส ระยอง", "latitude": 12.6807, "longitude": 101.2812 }
  ],
  "dest_province": "ชลบุรี",
  "booking_no": "BK-778", "requested_date": "2026-07-20"
}
ฟิลด์จำเป็นหมายเหตุ
external_refแนะนำรหัสอ้างอิงของ WMS (กันสร้างซ้ำ + ค้นหา)
customer{"id":5} หรือ {"name","phone"}
pickupจุดรับ — name + พิกัด หรือ url
deliveriesจุดส่งอย่างน้อย 1 จุด — รองรับ Multi-drop
dest_provinceใช้กับการจ่ายงานอัตโนมัติ

Response 201

{ "status": "success", "data": { "id": 251, "job_number": "J26070001", "status": "confirmed" } }

08ค้นหา / รายการงาน

GET{BASE}/jobsscope: public.read

ดึงรายการงาน กรองด้วย query string ได้ เช่น ?status=on_trip, ?external_ref=WMS-ORD-100245, ?page=1

09รายละเอียด / สถานะงาน

GET{BASE}/jobs/{id}scope: public.read

คืนรายละเอียดงานพร้อมสถานะปัจจุบัน จุดรับ-ส่ง คนขับ/รถที่มอบหมาย และความคืบหน้า

10หลักฐานการส่ง (POD)

GET{BASE}/jobs/{id}/podscope: public.read

ดึงหลักฐานการส่งมอบ — ลายเซ็นผู้รับ รูปถ่าย ค่า SHA-256 เวลาส่ง และผู้รับแยกรายจุด (Multi-drop)

11ยกเลิกงาน

POST{BASE}/jobs/{id}/cancelscope: jobs.write

ยกเลิกงานที่ยังไม่ปิด · หากงานปิด/เสร็จแล้วจะได้ 409

{ "reason": "ลูกค้ายกเลิกคำสั่งซื้อ" }

12รถ & ตำแหน่ง

GET{BASE}/vehiclesscope: public.read
GET{BASE}/vehicles/{id}/locationscope: public.read

รายการรถขององค์กร และตำแหน่งล่าสุดของรถแต่ละคัน (ละติจูด/ลองจิจูด ความเร็ว เวลาที่อัปเดต)

13ส่งพิกัด GPS เข้าระบบ

PUT{BASE}/gps/cartrackscope: gps.ingest

รับพิกัดจากผู้ให้บริการ GPS ภายนอก (เช่น Cartrack) เข้าสู่ระบบติดตาม — ผูกกับองค์กรจากตัวคีย์ รองรับอัตราสูง

14สถานะงาน (status)

statusความหมาย
draftแบบร่าง ยังไม่ยืนยัน
confirmedยืนยันแล้ว รอจัดรถ/มอบหมาย
assigned / acceptedมอบหมายคนขับแล้ว / คนขับรับงานแล้ว
on_trip / in_progressกำลังวิ่งงาน
completedส่งมอบครบและปิดงาน
cancelledยกเลิก

15Webhooks — รับการแจ้งเตือนกลับ WMS

ตั้งค่า Webhook URL ได้ที่ Dashboard → ตั้งค่า → Webhooks · ระบบจะยิง POST ไปยัง URL ของคุณเมื่อสถานะงานเปลี่ยน

POST <your-webhook-url>
X-TMS-Signature: sha256=...
{
  "event": "job.status_changed",
  "job_number": "J26070001",
  "external_ref": "WMS-ORD-100245",
  "status": "completed",
  "occurred_at": "2026-07-20T15:22:01Z"
}
🔒
ตรวจสอบ X-TMS-Signature ด้วย signing secret ก่อนประมวลผล เพื่อยืนยันว่าคำขอมาจาก OrcaTMS จริง
ต้องการ API key หรือความช่วยเหลือ? ติดต่อทีมงานเข้าสู่ระบบ