ParcelRadar.io
ParcelRadar.ioDeveloper Portal
← กลับไปที่ภาพรวม

API Reference

เอกสารอ้างอิง endpoint ทั้งหมดของ Parcel Radar API

การใช้งานจริง

นี่คือ API สำหรับใช้งานจริง

คอนโซลด้านล่างเรียกไปยังระบบ Parcel Radar จริง ไม่ใช่ sandbox กรอก X-API-Key เพื่อให้สิทธิ์แก่คำขอ จากนั้นจึงเรียกใช้ endpoint ใดก็ได้

Instant Quote — Synchronous

หนึ่งคำขอ หนึ่งการตอบกลับ: POST การจัดส่งของคุณไปที่ /quote แล้วการเรียกจะบล็อกไว้จนกว่าจะได้อัตราค่าจัดส่งจากผู้ให้บริการขนส่งทุกรายครบ (หรือหมดเวลา (timeout) ประมาณ 60 วินาที ซึ่งจะคืนค่า 504) เป็นวิธีเชื่อมต่อที่ง่ายที่สุด — เลือกวิธีนี้ เว้นแต่คุณต้องหลีกเลี่ยงการเปิดคำขอค้างไว้นานถึงหนึ่งนาที (เช่น serverless/edge functions ที่มี timeout สั้น หรือมีการทำงานพร้อมกันจำนวนมาก)

POSThttps://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
1POST /inquiry
202 · { inquiryId }id สำหรับ poll
2GET /inquiry?id={inquiryId}loop
{ status }จนกว่าจะ "ready"
3GET /results?inquiryId={inquiryId}
{ status, results[] }รายการที่ซื้อโฆษณาก่อน แล้วจึงราคาถูกที่สุด

เคล็ดลับการ poll: เว้นระยะ ~1–2 วินาทีระหว่างการ poll แต่ละครั้ง (จะใช้ exponential backoff แบบสั้น ๆ ก็ได้) และเลิกพยายามหลังจากประมาณ 60 วินาที — เพดานเดียวกับที่ /quote แบบ synchronous ใช้ มีเพียง POST /inquiry เท่านั้นที่ต้องใช้ X-API-Key ส่วนการเรียก poll และ results ต้องใช้เพียง inquiryId ที่ได้กลับมา

POSThttps://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 ด้านบนเพื่อเรียกใช้คำขอนี้
กดส่งคำขอเพื่อดูผลลัพธ์
GEThttps://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 ด้านบนเพื่อเรียกใช้คำขอนี้
กดส่งคำขอเพื่อดูผลลัพธ์
GEThttps://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 ด้านบนเพื่อเรียกใช้คำขอนี้
กดส่งคำขอเพื่อดูผลลัพธ์

Provider detail

ค้นหาเงื่อนไขการจัดส่งหรือ rate card ของผู้ให้บริการด้วย provider id ที่คืนมาในผลลัพธ์ของ quote

GEThttps://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 ด้านบนเพื่อเรียกใช้คำขอนี้
กดส่งคำขอเพื่อดูผลลัพธ์
GEThttps://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 ด้านบนเพื่อเรียกใช้คำขอนี้
กดส่งคำขอเพื่อดูผลลัพธ์

Address Book

ที่อยู่ผู้ส่ง/ผู้รับที่บันทึกไว้ของ tenant ของคุณ — เป็นสมุดเดียวกันกับที่สมาชิกจัดการใน Member Portal ดังนั้นการเปลี่ยนแปลงจะปรากฏที่นั่นด้วย ใช้ได้เฉพาะ partner lane การปิดที่อยู่จะยังคงเก็บไว้และแสดงในรายการ ส่วนการลบจะนำออก

GEThttps://api.parcelradar.io/api/partner/v1/address-book

แสดงรายการ address book

หนึ่งหน้าของที่อยู่ที่บันทึกไว้ของ tenant ของคุณ การเรียงลำดับใช้ค่าที่เก็บไว้ ดังนั้น `country` จะเรียงตาม ISO code แทนที่จะเป็นชื่อที่แปลตามภาษา ที่อยู่ที่ถูกปิดจะรวมอยู่ด้วยตามค่าเริ่มต้น

GET/api/partner/v1/address-book
กรอก X-API-Key ด้านบนเพื่อเรียกใช้คำขอนี้
กดส่งคำขอเพื่อดูผลลัพธ์
POSThttps://api.parcelradar.io/api/partner/v1/address-book

สร้างที่อยู่

บันทึกที่อยู่ใหม่ ต้องมี role flag อย่างน้อยหนึ่งค่าเป็น true; ที่อยู่หนึ่งสามารถเป็นได้ทั้งสองบทบาท และจะปรากฏในทั้งสองรายการ คืนค่าที่อยู่ตามที่เก็บไว้

POST/api/partner/v1/address-book
กรอก X-API-Key ด้านบนเพื่อเรียกใช้คำขอนี้
กดส่งคำขอเพื่อดูผลลัพธ์
PUThttps://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 ด้านบนเพื่อเรียกใช้คำขอนี้
กดส่งคำขอเพื่อดูผลลัพธ์
PATCHhttps://api.parcelradar.io/api/partner/v1/address-book/{id}/active

เปิดใช้งาน / ปิดใช้งานที่อยู่

เปิดหรือปิดที่อยู่ เป็นการปิดใช้งานแบบ soft: ที่อยู่ยังคงอยู่ในสมุดและยังคืนมาจากรายการ จึงสามารถเปิดกลับได้ Idempotent หากต้องการนำออกอย่างถาวร ให้ใช้ DELETE

PATCH/api/partner/v1/address-book/{id}/active
กรอก X-API-Key ด้านบนเพื่อเรียกใช้คำขอนี้
กดส่งคำขอเพื่อดูผลลัพธ์
DELETEhttps://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 ด้านบนเพื่อเรียกใช้คำขอนี้
กดส่งคำขอเพื่อดูผลลัพธ์

Orders

Your tenant's shipping orders, shared with the Member Portal. Partner lane only.

GEThttps://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 ด้านบนเพื่อเรียกใช้คำขอนี้
กดส่งคำขอเพื่อดูผลลัพธ์
POSThttps://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 ด้านบนเพื่อเรียกใช้คำขอนี้
กดส่งคำขอเพื่อดูผลลัพธ์
GEThttps://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 ด้านบนเพื่อเรียกใช้คำขอนี้
กดส่งคำขอเพื่อดูผลลัพธ์
PUThttps://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 ด้านบนเพื่อเรียกใช้คำขอนี้
กดส่งคำขอเพื่อดูผลลัพธ์
POSThttps://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

GEThttps://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 ด้านบนเพื่อเรียกใช้คำขอนี้
กดส่งคำขอเพื่อดูผลลัพธ์
POSThttps://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 ด้านบนเพื่อเรียกใช้คำขอนี้
กดส่งคำขอเพื่อดูผลลัพธ์
PUThttps://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 ด้านบนเพื่อเรียกใช้คำขอนี้
กดส่งคำขอเพื่อดูผลลัพธ์
GEThttps://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 ด้านบนเพื่อเรียกใช้คำขอนี้
กดส่งคำขอเพื่อดูผลลัพธ์
DELETEhttps://api.parcelradar.io/api/partner/v1/orders/{orderId}/documents/{docId}

ลบเอกสาร

นำเอกสารออกจาก order

DELETE/api/partner/v1/orders/{orderId}/documents/{docId}
กรอก X-API-Key ด้านบนเพื่อเรียกใช้คำขอนี้
กดส่งคำขอเพื่อดูผลลัพธ์