Chuyển đến nội dung
Afi Planner

Afi Planner có API kèm webhook không?

Trả lời ngắn

Có. Mọi gói Afi Planner, kể cả bản dùng thử miễn phí, đều có REST API (mô tả bằng OpenAPI 3.1) để tạo đơn, lập và gửi tuyến, đọc trạng thái, ETA và bằng chứng giao hàng, cùng webhook có chữ ký cho mọi thay đổi. Yêu cầu POST nhận Idempotency-Key nên gửi lại không bao giờ tạo đơn thứ hai, và mỗi webhook mang một số thứ tự để hệ thống của bạn sắp lại sự kiện đúng thứ tự sau khi gửi lại.

Cách hoạt động trong Afi Planner

Gửi lại không bao giờ nhân đôi đơn

Gửi header Idempotency-Key với yêu cầu POST: cùng khóa với cùng nội dung trong 24 giờ nhận lại câu trả lời đầu tiên thay vì làm thêm một lần. Đơn cũng mang mã đơn của chính bạn, nên gửi lại cùng mã cho cùng ngày sẽ cập nhật đơn đó, miễn là chưa có tài xế nào làm đơn. Khi tài xế đã làm, đơn được giữ nguyên làm hồ sơ giao hàng: gửi lại sẽ bị từ chối với 409 order_worked kèm id của đơn, và PATCH /api/v1/orders/{id} dùng để sửa các trường của đơn.

  • Cùng khóa với nội dung hoặc đường dẫn khác bị từ chối (409 idempotency_conflict)
  • Lần gửi lại tới khi yêu cầu đầu vẫn đang chạy cũng bị từ chối (409 idempotency_in_progress)
  • Tối đa 1.000 đơn mỗi yêu cầu theo lô, và 600 yêu cầu mỗi phút cho mỗi khóa
  • Kế hoạch của một ngày chứa tối đa số điểm giao mỗi kế hoạch của gói (500 với bản dùng thử miễn phí): lô có nhiều đơn mới hơn chỗ còn lại bị từ chối toàn bộ (403 kèm planFull)

Sự kiện sắp lại được đúng thứ tự

Mỗi webhook mang một số sequence: bộ đếm riêng của công ty, tăng một cho mỗi sự kiện, không bao giờ dùng lại. Lần gửi lại mang cùng id, sequence và nội dung như lần đầu, nên hệ thống của bạn chỉ áp dụng một sự kiện nếu sequence của nó lớn hơn sự kiện cuối đã áp dụng cho đơn đó. occurredAt cho biết lúc việc xảy ra, như giờ giao trong báo cáo.

  • order.created, order.updated, order.status_changed, order.loaded (tài xế xác nhận đã xếp đơn lên xe khi kiểm hàng), order.eta_changed, order.rescheduled_by_customer, order.instructions_changed, order.rated, order.not_attempted, order.moved_back, order.cancelled, order.deleted
  • plan.optimized, plan.job_failed, route.dispatched
  • Endpoint chỉ nghe vài loại sự kiện sẽ thấy sequence bị nhảy số (sự kiện gửi thử tới endpoint khác cũng làm nhảy số); nó chỉ tăng

Có chữ ký, có gửi lại, và nhìn thấy được

Mỗi yêu cầu được ký bằng HMAC-SHA256 kèm dấu thời gian trong header Afi-Signature. Trả về mã 2xx trong vòng 10 giây; lần gửi thất bại được thử lại với khoảng chờ tăng dần trong khoảng một ngày, và mọi lần thử hiện trong nhật ký gửi kèm mã HTTP, với “Send test” và “Retry now” trong Cài đặt.

Endpoint webhook với một lần gửi thử thành công và danh sách sự kiện gần đây

Câu hỏi thường gặp

API có tính thêm phí không?

Không. API và webhook có trong mọi gói, kể cả bản dùng thử miễn phí.

Nếu endpoint của chúng tôi bị sập thì sao?

Mỗi sự kiện được thử lại trong khoảng một ngày. Endpoint lỗi liên tục ba ngày liền sẽ bị tắt và hiện như vậy trong Cài đặt → Developers. Sự kiện phát sinh khi endpoint đang tắt (do bạn tắt hoặc do lỗi) không được giữ lại cho nó, và sequence không cho thấy đã bị bỏ lỡ: sau khi bật lại, hãy đọc lại đơn trong ngày bằng GET /api/v1/orders?day=.

Có app Shopify hay Zapier không?

Chưa có. Hiện bạn kết nối chúng qua API và webhook.

Thêm giải đáp

Lập tuyến ngày mai chỉ trong 3 phút

Bắt đầu dùng thử miễn phí 3 tháng. Không cần thẻ tín dụng, không cần cuộc gọi thiết lập, không cần cài đặt.