Instant Quote — Synchronous หนึ่งคำขอ หนึ่งการตอบกลับ: POST การจัดส่งของคุณไปที่ /quote แล้วการเรียกจะบล็อกไว้จนกว่าจะได้อัตราค่าจัดส่งจากผู้ให้บริการขนส่งทุกรายครบ (หรือหมดเวลา (timeout) ประมาณ 60 วินาที ซึ่งจะคืนค่า 504) เป็นวิธีเชื่อมต่อที่ง่ายที่สุด — เลือกวิธีนี้ เว้นแต่คุณต้องหลีกเลี่ยงการเปิดคำขอค้างไว้นานถึงหนึ่งนาที (เช่น serverless/edge functions ที่มี timeout สั้น หรือมีการทำงานพร้อมกันจำนวนมาก)
POST https://api.parcelradar.io/api/partner/v1/instant-quote/quote
ดึงอัตราค่าจัดส่งแบบเรียลไทม์ (sync) ส่งข้อมูลการจัดส่งและรับอัตราค่าจัดส่งแบบเรียลไทม์จากผู้ให้บริการขนส่งที่รองรับทุกรายในการเรียกครั้งเดียว บล็อกไว้จนกว่าการกระจายไปยังผู้ให้บริการขนส่งจะเสร็จสิ้น (หรือประมาณ 60 วินาที → 504)
POST /api/partner/v1/instant-quote/quote
ส่งคำขอ กรอก X-API-Key ด้านบนเพื่อเรียกใช้คำขอนี้ endpoint นี้จะรวบรวมอัตราค่าจัดส่งจากผู้ให้บริการที่รองรับทุกรายแบบเรียลไทม์ การตอบกลับจึงอาจใช้เวลานานกว่าการเรียก API ทั่วไปสองสามวินาที โปรดรอให้คำขอทำงานจนเสร็จ Instant Quote — Asynchronous ไม่บล็อก มีสามขั้นตอน: POST /inquiry เพื่อเริ่ม, GET /inquiry?id= เพื่อ poll จนกว่าสถานะจะไม่ใช่ "processing" แล้ว GET /results?inquiryId= เพื่อรับอัตราค่าจัดส่ง คืนอัตราค่าจัดส่งเดียวกันกับแบบ sync — เลือกวิธีนี้เมื่อคุณไม่ต้องการเปิดคำขอค้างไว้นาน ต้องการแสดง UI แบบค่อยเป็นค่อยไป หรือทำงานในสภาพแวดล้อมที่ timeout ของคำขอสั้น
ดึงอัตราค่าจัดส่งแบบเรียลไทม์ (async) สร้าง inquiry แล้ว poll จนกว่าจะ ready จากนั้นดึงผลลัพธ์ — เป็นอัตราค่าจัดส่งชุดเดียวกับ /quote แบบ synchronous โดยไม่ต้องเปิดคำขอค้างไว้ เรียก endpoint ทั้งสามนี้ตามลำดับ
แอปของคุณ
Parcel Radar API
202 · { inquiryId }id สำหรับ poll
2 GET /inquiry?id={inquiryId}loop
{ status }จนกว่าจะ "ready"
3 GET /results?inquiryId={inquiryId}
{ status, results[] }รายการที่ซื้อโฆษณาก่อน แล้วจึงราคาถูกที่สุด
เคล็ดลับการ poll: เว้นระยะ ~1–2 วินาทีระหว่างการ poll แต่ละครั้ง (จะใช้ exponential backoff แบบสั้น ๆ ก็ได้) และเลิกพยายามหลังจากประมาณ 60 วินาที — เพดานเดียวกับที่ /quote แบบ synchronous ใช้ มีเพียง POST /inquiry เท่านั้นที่ต้องใช้ X-API-Key ส่วนการเรียก poll และ results ต้องใช้เพียง inquiryId ที่ได้กลับมา
POST https://api.parcelradar.io/api/partner/v1/instant-quote/inquiry
สร้าง inquiry เริ่ม quote แบบ async คืนค่า inquiryId ทันทีสำหรับ poll — การกระจายไปยังผู้ให้บริการขนส่งทำงานอยู่เบื้องหลัง ใช้ body ของการจัดส่งเดียวกันกับ /quote
POST /api/partner/v1/instant-quote/inquiry
ส่งคำขอ กรอก X-API-Key ด้านบนเพื่อเรียกใช้คำขอนี้ GET https://api.parcelradar.io/api/partner/v1/instant-quote/inquiry
Poll สถานะของ inquiry ตรวจสอบว่า inquiry เสร็จแล้วหรือยัง Poll ทุก ๆ ประมาณ 1–2 วินาที จนกว่าสถานะจะไม่ใช่ "processing" แล้วจึงดึงผลลัพธ์
GET /api/partner/v1/instant-quote/inquiry
ส่งคำขอ กรอก X-API-Key ด้านบนเพื่อเรียกใช้คำขอนี้ GET https://api.parcelradar.io/api/partner/v1/instant-quote/results
ดึงผลลัพธ์ของ inquiry ดึงอัตราค่าจัดส่งรายผู้ให้บริการของ inquiry มีรูปแบบผลลัพธ์เดียวกันกับการตอบกลับของ /quote แบบ synchronous; results จะถูกเติมเมื่อสถานะเป็น "ready"
GET /api/partner/v1/instant-quote/results
ส่งคำขอ กรอก X-API-Key ด้านบนเพื่อเรียกใช้คำขอนี้ GET https://api.parcelradar.io/api/partner/v1/instant-quote/conditions
ดึงเงื่อนไขของผู้ให้บริการ เงื่อนไขการจัดส่งของผู้ให้บริการหนึ่งราย — incoterms, transit time, service network, features, weight config และ route coverage ส่ง provider id จากผลลัพธ์ของ /quote
GET /api/partner/v1/instant-quote/conditions
ส่งคำขอ กรอก X-API-Key ด้านบนเพื่อเรียกใช้คำขอนี้ GET https://api.parcelradar.io/api/partner/v1/instant-quote/ratecard
ดึง ratecard ของผู้ให้บริการ rate card ของผู้ให้บริการหนึ่งราย — display flags, banners และ (สำหรับผู้ให้บริการแบบ manual-rate) static price curve ส่ง provider id จากผลลัพธ์ของ /quote
GET /api/partner/v1/instant-quote/ratecard
ส่งคำขอ กรอก X-API-Key ด้านบนเพื่อเรียกใช้คำขอนี้ GET https://api.parcelradar.io/api/partner/v1/address-book
แสดงรายการ address book หนึ่งหน้าของที่อยู่ที่บันทึกไว้ของ tenant ของคุณ การเรียงลำดับใช้ค่าที่เก็บไว้ ดังนั้น `country` จะเรียงตาม ISO code แทนที่จะเป็นชื่อที่แปลตามภาษา ที่อยู่ที่ถูกปิดจะรวมอยู่ด้วยตามค่าเริ่มต้น
GET /api/partner/v1/address-book
ส่งคำขอ กรอก X-API-Key ด้านบนเพื่อเรียกใช้คำขอนี้ POST https://api.parcelradar.io/api/partner/v1/address-book
สร้างที่อยู่ บันทึกที่อยู่ใหม่ ต้องมี role flag อย่างน้อยหนึ่งค่าเป็น true; ที่อยู่หนึ่งสามารถเป็นได้ทั้งสองบทบาท และจะปรากฏในทั้งสองรายการ คืนค่าที่อยู่ตามที่เก็บไว้
POST /api/partner/v1/address-book
ส่งคำขอ กรอก X-API-Key ด้านบนเพื่อเรียกใช้คำขอนี้ PUT https://api.parcelradar.io/api/partner/v1/address-book/{id}
อัปเดตที่อยู่ การแทนที่ทั้งหมด (PUT): ส่งที่อยู่ให้ครบถ้วน — ฟิลด์ที่ไม่บังคับที่ไม่ได้ส่งจะถูกล้างเป็น null ไม่ส่ง `isActive` เพื่อคงสถานะเปิด/ปิดปัจจุบัน (สลับด้วย `PATCH /{id}/active`)
PUT /api/partner/v1/address-book/{id}
ส่งคำขอ กรอก X-API-Key ด้านบนเพื่อเรียกใช้คำขอนี้ PATCH https://api.parcelradar.io/api/partner/v1/address-book/{id}/active
เปิดใช้งาน / ปิดใช้งานที่อยู่ เปิดหรือปิดที่อยู่ เป็นการปิดใช้งานแบบ soft: ที่อยู่ยังคงอยู่ในสมุดและยังคืนมาจากรายการ จึงสามารถเปิดกลับได้ Idempotent หากต้องการนำออกอย่างถาวร ให้ใช้ DELETE
PATCH /api/partner/v1/address-book/{id}/active
ส่งคำขอ กรอก X-API-Key ด้านบนเพื่อเรียกใช้คำขอนี้ DELETE https://api.parcelradar.io/api/partner/v1/address-book/{id}
ลบที่อยู่ นำที่อยู่ออกอย่างถาวร ไม่สามารถย้อนกลับได้ และ id จะไม่สามารถอ้างถึงได้อีก หากต้องการเก็บไว้แต่ไม่ใช้งาน ให้ใช้ PATCH /{id}/active ด้วย `isActive: false` แทน
DELETE /api/partner/v1/address-book/{id}
ส่งคำขอ กรอก X-API-Key ด้านบนเพื่อเรียกใช้คำขอนี้ GET https://api.parcelradar.io/api/partner/v1/orders
List orders A page of the tenant's orders, newest first.
GET /api/partner/v1/orders
ส่งคำขอ กรอก X-API-Key ด้านบนเพื่อเรียกใช้คำขอนี้ POST https://api.parcelradar.io/api/partner/v1/orders
Create an order Create an order from the two required routing countries.
POST /api/partner/v1/orders
ส่งคำขอ กรอก X-API-Key ด้านบนเพื่อเรียกใช้คำขอนี้ GET https://api.parcelradar.io/api/partner/v1/orders/{id}
Get an order Fetch one order by id.
GET /api/partner/v1/orders/{id}
ส่งคำขอ กรอก X-API-Key ด้านบนเพื่อเรียกใช้คำขอนี้ PUT https://api.parcelradar.io/api/partner/v1/orders/{id}
Update an order Full replacement (PUT): send the complete order — omitted fields are cleared. Status is unchanged (use suspend).
PUT /api/partner/v1/orders/{id}
ส่งคำขอ กรอก X-API-Key ด้านบนเพื่อเรียกใช้คำขอนี้ POST https://api.parcelradar.io/api/partner/v1/orders/{id}/suspend
Suspend an order Put an order on hold (→ ON_HOLD). Only from CREATED or PROCESSING.
POST /api/partner/v1/orders/{id}/suspend
ส่งคำขอ กรอก X-API-Key ด้านบนเพื่อเรียกใช้คำขอนี้ Order Documents ไฟล์ที่แนบกับ Package Documents ของ order (invoice, packing list, …) โดย byte จะส่งแบบ base64 — ไม่ใช่ multipart และยังฝังไว้เป็น `attachments` ในการ GET order รายการเดียว ใช้ได้เฉพาะ partner lane
GET https://api.parcelradar.io/api/partner/v1/orders/{orderId}/documents
แสดงรายการเอกสารของ order Package Documents ที่อัปโหลดไว้ของ order (เฉพาะ metadata เรียงจากใหม่สุดก่อน) นี่คือ FILES — แยกจาก `documents` milestone (สถานะ JSON ของแท็บ) รายการเดียวกันนี้ถูกฝังไว้เป็น `attachments` ในการ GET order รายการเดียว
GET /api/partner/v1/orders/{orderId}/documents
ส่งคำขอ กรอก X-API-Key ด้านบนเพื่อเรียกใช้คำขอนี้ POST https://api.parcelradar.io/api/partner/v1/orders/{orderId}/documents
อัปโหลดเอกสารของ order แนบไฟล์เข้ากับ order โดย byte จะส่งเป็น base64 ใน `contentBase64` (ยอมรับ prefix แบบ `data:…;base64,`) — เป็น JSON ธรรมดา ไม่ใช่ multipart ขนาดหลังถอดรหัส ≤ 10 MB
POST /api/partner/v1/orders/{orderId}/documents
ส่งคำขอ กรอก X-API-Key ด้านบนเพื่อเรียกใช้คำขอนี้ PUT https://api.parcelradar.io/api/partner/v1/orders/{orderId}/documents/{docId}
อัปเดตเอกสาร แทนที่ metadata ของเอกสาร (name / description / docType) ใส่ `contentBase64` เพื่อแทนที่ byte ของไฟล์ด้วย; ไม่ใส่เพื่อคงไฟล์ที่จัดเก็บไว้
PUT /api/partner/v1/orders/{orderId}/documents/{docId}
ส่งคำขอ กรอก X-API-Key ด้านบนเพื่อเรียกใช้คำขอนี้ GET https://api.parcelradar.io/api/partner/v1/orders/{orderId}/documents/{docId}
ดาวน์โหลดเอกสาร ดึงเอกสารหนึ่งรายการพร้อม byte ของมัน (base64) ถอดรหัส `contentBase64` เป็น Blob/ไฟล์ แล้วบันทึกด้วยชื่อ `name`
GET /api/partner/v1/orders/{orderId}/documents/{docId}
ส่งคำขอ กรอก X-API-Key ด้านบนเพื่อเรียกใช้คำขอนี้ DELETE https://api.parcelradar.io/api/partner/v1/orders/{orderId}/documents/{docId}
ลบเอกสาร นำเอกสารออกจาก order
DELETE /api/partner/v1/orders/{orderId}/documents/{docId}
ส่งคำขอ กรอก X-API-Key ด้านบนเพื่อเรียกใช้คำขอนี้