Skip to main content

Delivery promise

Every quote and delivery carries a schedule. Within a state the promise is a two-day range: earliest_delivery is its first day and deliver_by is its last. pickup_by is when Reeds will have collected the parcel. All of them fall inside Reeds' working hours (Lagos time).

"schedule": {
"pickup_by": "2026-10-26T19:00:00+01:00",
"deliver_by": "2026-10-27T19:00:00+01:00",
"earliest_delivery": "2026-10-26T19:00:00+01:00"
}

Show your customer the range: here, Monday 26 or Tuesday 27 October.

The rules​

  • The clock starts when a delivery is booked and ready, not when it was quoted or a draft was created. A quote's schedule is the promise if you book it now: booked later, after a cut-off, the delivery gets later dates.
  • Within a state, the time you book decides the range:
Booked and readyPicked upDelivered
Monday to Friday, before 13:45That dayThat day or the next working day
Monday to Friday, 13:45 or laterNext working dayThat day or the working day after
Saturday, before 11:45That dayThat day or the next working day
Saturday, 11:45 or laterNext working dayThat day or the working day after
Sunday or a public holiday, any timeNext working dayThat day or the working day after
  • Close of business is 19:00, when riders finish. pickup_by, earliest_delivery and deliver_by are all written at that time. For earliest_delivery, use only the date: the parcel can arrive at any time that day.
  • Working days are Monday to Saturday. Sundays and public holidays don't count, so a range that starts on Saturday ends on Monday.
  • A future pickup_date counts as booked at the start of that date: Reeds picks up that day, or on the next working day if the date is a Sunday or public holiday.

Worked examples​

These assume no public holiday unless stated, and a within-state delivery booked and ready at the time shown.

Booked and readyPicked up byDelivered
Monday 10:00Monday 19:00Monday or Tuesday
Monday 13:44Monday 19:00Monday or Tuesday
Monday 13:45Tuesday 19:00Tuesday or Wednesday
Friday 10:00Friday 19:00Friday or Saturday
Friday 15:00Saturday 19:00Saturday or Monday
Saturday 11:44Saturday 19:00Saturday or Monday
Saturday 11:45Monday 19:00Monday or Tuesday
Sunday, any timeMonday 19:00Monday or Tuesday
Saturday 13:00, with a public holiday on MondayTuesday 19:00Tuesday or Wednesday
Tuesday 10:00, with a public holiday on WednesdayTuesday 19:00Tuesday or Thursday (Wednesday is skipped)

When the promise moves​

If Reeds expects to miss the promise, deliver_by moves and a delivery.schedule_changed webhook fires with a reason. The new deliver_by is the whole promise from then on, so earliest_delivery becomes null, and previous_schedule keeps the range you had. Read data.delivery.schedule from the event, and update the date you show your customer.

Whenever earliest_delivery is null, show deliver_by alone.

Public holidays, including holidays announced at short notice, are taken into account when the schedule is worked out.

Inter-state deliveries​

Inter-state delivery (Lagos to the FCT) isn't available through the API. It takes 3 to 5 working days when booked with Reeds directly. A quote on that route returns available: false with INTERSTATE_NOT_AVAILABLE.

Next steps​