Update route stop items
Updates the custom items for an imported stop or a Shopify order stop on a
route. For a stop that was previously imported via ImportStops (i.e. a stop
with an importedStopId), this sets or replaces the stop's list of items.
For a SHOPIFY_ORDER stop, this sets or replaces only the stop's custom
items (items with source = CUSTOM); the items taken from the Shopify
order are kept. Saved stops and manually created stops cannot be updated
via this RPC. The response will include the updated stop with the new
items. The route will be marked as not optimized after updating items, so
the caller should reoptimize the route if needed via ReoptimizeRoute. Items
are validated to ensure they meet the following constraints: maximum 250
items per stop, item names up to 1500 characters, quantities up to 100,000,
and weight up to 1,000,000,000 grams.
Authorization
bearerAuth Access token from /authenticate
In: header
Path Parameters
The ID of the route to update stop items.
The ID of the stop to update items for.
Header Parameters
A unique key for safely retrying this operation. For more information read our guide.
1 <= length <= 255Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
An item to be delivered at a stop.
Response Body
application/json
application/json
curl -X PUT "https://example.com/routes/rte-123e4567-e89b-12d3-a456-426614174000/stops/rst-123e4567-e89b-12d3-a456-426614174000/items" \ -H "Idempotency-Key: 550e8400-e29b-41d4-a716-446655440000" \ -H "Content-Type: application/json" \ -d '[ {} ]'{ "id": "rst-123e4567-e89b-12d3-a456-426614174000", "type": "DELIVERY", "deliveryStatus": "ATTEMPTED_DELIVERY", "breakStatus": "COMPLETED", "updatedAt": "2026-03-30T13:15:00Z", "duration": "300s", "plannedArrival": "2026-03-30T13:00:00Z", "note": "Leave at door.", "address": { "address1": "123 Main St", "address2": "Apt 3B", "city": "New York", "provinceCode": "NY", "countryCode": "US", "zip": "10001" }, "contact": { "firstName": "John", "lastName": "Doe", "company": "Roundtrip Systems Inc", "phone": "+14265551000", "email": "john.doe@roundtrip.ai" }, "plannedCoordinates": { "latitude": 40.7128, "longitude": -74.006 }, "items": [ { "name": "Bananas", "quantity": 5, "grams": 500, "sku": "BANANA-001", "source": "SHOPIFY_ORDER", "shopifyLineItemId": "14512345678901", "shopifyFulfillmentId": "5812345678901", "shopifyVariantId": "44512345678901", "shopifyProductId": "8812345678901" } ], "source": "IMPORTED_STOP", "shopifyOrderId": "6229749334323", "savedStopId": "sst-123e4567-e89b-12d3-a456-426614174000", "deliveredCoordinates": { "latitude": 0.1, "longitude": 0.1 }, "proofOfDeliveryNote": "Left at door.", "proofOfDeliveryPhotos": [ { "id": "att-123e4567-e89b-12d3-a456-426614174000", "createdAt": "2026-03-30T09:05:00Z", "url": "https://example.com/stop-attachment/attachment-2025-06-03-1" } ], "proofOfDeliverySignatures": [ { "id": "att-123e4567-e89b-12d3-a456-426614174000", "createdAt": "2026-03-30T09:05:00Z", "url": "https://example.com/stop-attachment/attachment-2025-06-03-1" } ], "tasks": [ { "id": "tsk-123e4567-e89b-12d3-a456-426614174000", "title": "Delivery checklist", "type": "TEXT_INPUT", "items": [], "input": { "value": "020123456789", "updatedAt": "2026-03-30T13:00:00Z", "inputMethod": "SCANNED" }, "requiredToMarkStopAsDelivered": true, "requiredToMarkStopAsAttempted": true } ], "priority": 8, "importedStopId": "ist-123e4567-e89b-12d3-a456-426614174000", "orderName": "#1234", "distanceMeters": 123.45, "updatedArrival": "2026-03-30T13:05:00Z", "timeWindows": [ { "start": { "hours": 9 }, "end": { "hours": 17 } } ], "deliveryDate": { "year": 2025, "month": 12, "day": 16 }, "attributes": [ { "key": "color", "value": "blue" } ], "clientStopId": "test-order-1234", "tags": [ "foo", "bar" ], "attemptedReason": "NOT_AVAILABLE", "attemptedNote": "Customer did not answer the door.", "customerRating": { "rating": 5, "comment": "Excellent delivery", "createdAt": "2026-03-30T18:00:00Z" }, "customSignatureDisclosure": "I acknowledge that I have received this delivery.", "shopifyOrder": { "orderNote": "Customer has paid.", "customerNote": "Leave at door." }, "proofOfDeliveryBarcodes": [ { "value": "123456789012", "createdAt": "2026-03-30T13:10:00Z" } ], "proofOfDeliveryBarcodeIssues": [ { "reason": "ITEM_MISSING", "note": "Item was not packed.", "createdAt": "2026-03-30T13:10:00Z" } ], "orderReferenceUrl": "https://orders.example.com/orders/148977776"}{ "code": 0, "message": "string", "details": [ { "@type": "string" } ]}