Enable proof-of-delivery requirements on a task by setting the completionDetails.requirePhoto and completionDetails.requireSignature fields to true when creating or updating the task via the Onfleet REST API.
The driver captures photo and signature in the Onfleet Driver mobile app when marking the task complete; Onfleet stores the media and attaches URLs to the completion record.
Subscribe to the task.succeeded webhook event; the payload includes a completionDetails object with a photoUploadId, signatureUploadId, and the signed media URLs.
Retrieve full completion details at any time via GET https://onfleet.com/api/v2/tasks/{id} and inspect the completionDetails.photoUploadUrl and completionDetails.signatureUploadUrl fields.
Download and archive the media files to your own storage before the signed URLs expire; build a nightly reconciliation job to catch any tasks where POD was not captured.
Expose the photoUploadUrl and signatureUploadUrl to your customer-service tooling so agents can instantly retrieve delivery proof when handling claims.
Known gotchas
Signed media URLs returned in webhooks and GET responses are temporary; download and store the files in your own object storage if you need long-term retention.
Setting requirePhoto or requireSignature to true enforces collection in the app but does not guarantee image quality — train drivers and consider a fallback review queue for blurry or missing images.
Completion data is only available after the task reaches a terminal state (succeeded or failed); polling task status before completion will return null for completionDetails.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp