Create, list, track, and poll deliveries.
flasho.deliveries
flasho.deliveries
create()
const { delivery } = await flasho.deliveries.create({
customerName: 'Ahmed Ali',
customerNumber: '99887766',
pickupLatitude: 29.3764,
pickupLongitude: 47.9785,
deliveryLatitude: 29.3117,
deliveryLongitude: 48.0034,
});
console.log(delivery.orderNumber); // FLH4001
console.log(delivery.status); // PENDING
console.log(delivery.estimatedPrice); // "1.250"Cash on delivery: set collectCash: true and pass cashAmount as a KWD string such as "12.500".
Scheduled: set isScheduled: true and scheduledDeliveryAt to an ISO 8601 UTC datetime.
list() and get()
const { deliveries } = await flasho.deliveries.list({ status: 'ENROUTE', limit: 20 });
const { delivery } = await flasho.deliveries.get(deliveries[0].id);
console.log(delivery.driverName, delivery.driverPhone);list() accepts status and limit (1–100, default 50).
poll()
Keep a tracking screen updated until the order finishes.
useEffect(() => {
let stopped = false;
flasho.deliveries.poll(deliveryId, {
intervalMs: 5000,
onUpdate: (delivery) => {
if (!stopped) setStatus(delivery.status);
},
});
return () => {
stopped = true;
};
}, [deliveryId]);poll() resolves on DELIVERED, CANCELLED, REJECTED, or FAILED. It throws if timeoutMs (default 15 minutes) is exceeded.
Order statuses
PENDING → REQUESTED → ACCEPTED → INPROGRESS → PICKEDUP → ENROUTE → DELIVERED
Terminal states: DELIVERED, CANCELLED, REJECTED, FAILED.