Photo Proof-of-Delivery
Deliveroo Express includes a Photo Proof of Delivery (PPOD) feature that provides visual confirmation of completed deliveries. When an order is delivered without a direct handover, riders capture a photo showing where the order was placed. This feature enhances transparency for customers, reduces disputes, and supports greater accuracy and trust across the Deliveroo Express experience.

Steps for Integrators to Enable Photo Proof of Delivery (PPOD)
- Customer places an order
- The customer makes an order through your system.
- Send the delivery request to Deliveroo
- Pass the order details to Deliveroo and request that a photo proof of delivery is required.
- Deliveroo returns a Delivery ID, which you should store.
- Deliveroo assigns a rider
- Deliveroo will automatically allocate a rider to complete the delivery.
- Rider completes the delivery with photo proof
- When the rider delivers the order, they take a photo as proof.
- Deliveroo will send the delivery status - Delivered
- Once the delivery is marked as “Delivered,” you can confirm this using either webhooks or by checking the delivery status through the API.
- Retrieve delivery files from Get Delivery
- Request the delivery files linked to the Delivery ID. These files details will include the photo/file ID.
- Use file details and download link
- Each file will have a File ID associated with that Delivery ID.
- Request a signed URL from Deliveroo to access the file. The URL will also come with an expiry time.
- Download and store the photo
- Use the signed URL to download the proof-of-delivery photo.
- Save the photo securely in your own system before the URL expires.
Note
- The downloaded files do not include a file extension (e.g., .jpg). Please ensure you manually add the appropriate extension after downloading the images from the URL.
- A single order may have multiple file IDs when large orders require more than one rider. In such cases, each file ID must be called individually to retrieve its corresponding photo.
Example Paylod JSONs
{
.
..
...
"dropoff_details": {
"notes": "Call me when you've arrived!",
"phone_number": "+44XXXXXXX",
"verification": {
"type": "PHOTO" //This will triger the PPOD for that Delivery
}
}
}
{
"event": "delivery.update_status",
"body": {
"delivery_id": "e49db1e9-3cd4-4d1a-9e69-b0c9e3732c0a",
"external_ref_id": "Testing-XXX",
"status": {
"effective_at": "2025-11-20T16:55:37Z",
"effective_at_nano": "2025-11-20T16:55:37.528Z",
"status": "REQUESTED"
},
"verification": {
"type": "PHOTO",
"value": ""
}
}
}
{
.
..
...
"delivery_files": [
{
"file_id": "string",
"rider_id": "string", //Rider 1
"type": "DELIVERY_PROOF"
},
{
"file_id": "string",
"rider_id": "string", //Rider 2 (If it is Large Order)
"type": "DELIVERY_PROOF"
}
]
}
{
"url": "https://uploads.deliveroo.com/view/XX_vUAD77-9Ux3vv71m77-977-977-9OAbvv70ZcO-_vSw=",
"expires_at": "2025-09-25T15:06:43.205Z"
}
Updated about 5 hours ago
