Skipcart webhooks enable the partner to be informed at each step throughout the order process.

Each webhook payload contains a single event (event_status) that is associated to a particular order status (order_status). As events are triggered on the Skipcart side, order stauses will also update accordingly.

A comprehensive list of all possible events can be found in the table below.

Event StatusEvent DescriptionCorrelating Order StatusEvent FrequencyWebhook is Called/Frequency
newNew order created in Skipcart system, either by Partner API or
order entry system in Skipcart
cancelledOrder is cancelled by partnercancelledOnceNo
queuedDriver nearby completing another delivery has indicated they want to accept another delivery before completing their current onequeuedOnceNo
confirmedOrder is assigned to a specific driver (new orders & rejected
driver orders)
enroute_to_pickupDriver is on the way to store for pickupconfirmedEvery 30 secondsYes
When within 15 minute of arrival to store, every 30 seconds
geofence_at_pickupDriver enters the pickup location geofenceconfirmedEvery 30 secondsYes
arrived_at_storeDriver arrives at store for pickup and confirms arrival in Skipcart appconfirmedOnceYes
partner_rejectedPartner rejects driver partner for delivery and new driver to be identifiednewOnceNo
pickup_not_readyDriver is at the store for pickup but the order is not readynewOnceNo
out_for_deliveryStore pickup has been completed and order is enroute to customer destinationout_for_deliveryOnceYes
Called when driver indicates via driver app they have picked up delivery contents
enroute_to_deliveryStore pickup has been completed and order is enroute to customer destinationout_for_deliveryEvery 30 secondsYes
Every 30 seconds
deliveredOrder is delivered to customerdeliveredOnceYes
customer_refusedCustomer refuses to accept the orderout_for_deliveryOnceNo
order_expiredOrder timed out. Default delivery window is 60 minutes.out_for_deliveryOnceNo
return_startedEvent is triggered when order_expired or customer_refused events occur to notify partner of pending returnout_for_deliveryOnceYes
return_enroute_to_storeDriver enroute to store to complete returnout_for_deliveryEvery 30 secondsYes
Every 30 seconds
geofence_at_returnDriver enters the store to complete returnout_for_deliveryEvery 30 secondsEvery 30 seconds
return_at_storeDriver reached store to complete returnout_for_deliveryOnceYes
return_deliveredOrder is returned to store and store representative acknowledges return on driver's Skipcart appdeliveredOnceYes
schedule_failedSkipcart systems could not return the schedule (reason code included in response)schedule_failedOnceNo (Quote Partners)
Yes (Legacy Partners)
delivery_proof_uploadedDelivery proofs are uploaded to Skipcart. This occurs at a separate interval than delivered and return_delivered events to allow time for images to be receiveddeliveredOnceYes
driver_cancelled_pickupDriver has accepted an order and subsequently cancels it before out_for_delivery eventnewOnceYes
skipcart_cancelledIf there are no drivers to deliver an order by the delivery window + 30 additional minutes, Skipcart automatically cancels the ordercancelledOnceYes
Immediately once time limit reached
retailer_cancelledPartner/merchant cancels the ordercancelledOnceNo
geofence_customer_dropoffWhen driver arrives at customer dropoff location, this event triggers automatically once driver enters the geofence (supresses enroute_to_delivery event when triggered)out_for_deliveryEvery 30 seconds when within geofenceYes
Every 30 seconds
at_dropoffDriver arrives at customer door/entrance and marks 'Complete Delivery' in Skipcart app. Also triggers signature capture in the Skipcart driver app.out_for_deliveryOnceYes
close_orderCustomer is unavailable or refuses the delivery. Will return a reason code in response.close_orderOnceYes