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 Status | Event Description | Correlating Order Status | Event Frequency | Webhook is Called/Frequency |
---|---|---|---|---|
new | New order created in Skipcart system, either by Partner API or order entry system in Skipcart | new | Once | No |
cancelled | Order is cancelled by partner | cancelled | Once | No |
queued | Driver nearby completing another delivery has indicated they want to accept another delivery before completing their current one | queued | Once | No |
confirmed | Order is assigned to a specific driver (new orders & rejected driver orders) | confirmed | Once | Yes Immediately |
enroute_to_pickup | Driver is on the way to store for pickup | confirmed | Every 30 seconds | Yes When within 15 minute of arrival to store, every 30 seconds |
geofence_at_pickup | Driver enters the pickup location geofence | confirmed | Every 30 seconds | Yes Immediately |
arrived_at_store | Driver arrives at store for pickup and confirms arrival in Skipcart app | confirmed | Once | Yes Immediately |
partner_rejected | Partner rejects driver partner for delivery and new driver to be identified | new | Once | No |
pickup_not_ready | Driver is at the store for pickup but the order is not ready | new | Once | No |
out_for_delivery | Store pickup has been completed and order is enroute to customer destination | out_for_delivery | Once | Yes Called when driver indicates via driver app they have picked up delivery contents |
enroute_to_delivery | Store pickup has been completed and order is enroute to customer destination | out_for_delivery | Every 30 seconds | Yes Every 30 seconds |
delivered | Order is delivered to customer | delivered | Once | Yes Immediately |
customer_refused | Customer refuses to accept the order | out_for_delivery | Once | No |
order_expired | Order timed out. Default delivery window is 60 minutes. | out_for_delivery | Once | No |
return_started | Event is triggered when order_expired or customer_refused events occur to notify partner of pending return | out_for_delivery | Once | Yes Immediately |
return_enroute_to_store | Driver enroute to store to complete return | out_for_delivery | Every 30 seconds | Yes Every 30 seconds |
geofence_at_return | Driver enters the store to complete return | out_for_delivery | Every 30 seconds | Every 30 seconds |
return_at_store | Driver reached store to complete return | out_for_delivery | Once | Yes Immediately |
return_delivered | Order is returned to store and store representative acknowledges return on driver's Skipcart app | delivered | Once | Yes Immediately |
schedule_failed | Skipcart systems could not return the schedule (reason code included in response) | schedule_failed | Once | No (Quote Partners) Yes (Legacy Partners) Immediately |
delivery_proof_uploaded | Delivery proofs are uploaded to Skipcart. This occurs at a separate interval than delivered and return_delivered events to allow time for images to be received | delivered | Once | Yes Immediately |
driver_cancelled_pickup | Driver has accepted an order and subsequently cancels it before out_for_delivery event | new | Once | Yes Immediately |
skipcart_cancelled | If there are no drivers to deliver an order by the delivery window + 30 additional minutes, Skipcart automatically cancels the order | cancelled | Once | Yes Immediately once time limit reached |
retailer_cancelled | Partner/merchant cancels the order | cancelled | Once | No |
geofence_customer_dropoff | When driver arrives at customer dropoff location, this event triggers automatically once driver enters the geofence (supresses enroute_to_delivery event when triggered) | out_for_delivery | Every 30 seconds when within geofence | Yes Every 30 seconds |
at_dropoff | Driver arrives at customer door/entrance and marks 'Complete Delivery' in Skipcart app. Also triggers signature capture in the Skipcart driver app. | out_for_delivery | Once | Yes Immediately |
close_order | Customer is unavailable or refuses the delivery. Will return a reason code in response. | close_order | Once | Yes Immediately |