--- sidebar_label: 'Delivery promise' sidebar_position: 2 --- # Delivery promise Future Ordering bases delivery reservations on a promise to deliver to a specific address at a specific time for a specific cost. Once a customer has entered delivery information: ![Delivery information](./images/delivery-information-image.png) Future Ordering sends a request to your specified endpoint. :::note You need to provide details about this endpoint. For more information about token validation, see the section on [validating access tokens](../exposing-custom-api/validating-access-tokens.md). ::: ## Promise request `POST https://your-example-url.com/your-route` ```json { "requestedStoreInformations": [ { "legacyStoreId": 12345, "storeId": "store-a1b2c3", "promiseTimes": [ "2026-04-16T14:30:00+00:00", "2026-04-16T15:00:00+00:00" ] }, { "legacyStoreId": 67890, "storeId": "store-d4e5f6", "promiseTimes": [ "2026-04-16T16:00:00+00:00" ] } ], "recipientPd": { "name": "Jane Doe", "phoneNumber": "+1234567890", "notes": "Leave at the front door", "courierFacingName": "Jane", "dropOffLocation": { "address": { "line1": "Kungsgatan 1", "line2": null, "city": "Stockholm", "buildingNumber": "1", "postalCode": "111 43", "countryIsoCode": "SE" }, "position": { "latitude": "59.3293", "longitude": "18.0686", "format": "dd" } } }, "isRefresh": false } ``` ## Promise response :::note Future Ordering supports customers to configure the guest experience for either selecting one promise automatically, or letting the guest choose from all available options. Return one promise for each store and promise time when possible. ::: The promise is added to the order, and its cost is shown to the customer in the basket. Future Ordering also refreshes promises automatically (`isRefresh: true`) when `validUntil` is about to expire. ```json { "promises": [ { "recipientPd": { "name": "Jane Doe", "phoneNumber": "+1234567890", "notes": "Leave at the front door", "courierFacingName": "Jane", "dropOffLocation": { "address": { "line1": "Kungsgatan 1", "line2": null, "city": "Stockholm", "buildingNumber": "1", "postalCode": "111 43", "countryIsoCode": "SE" }, "position": { "latitude": "59.3293", "longitude": "18.0686", "format": "dd" } } }, "storeId": "store-a1b2c3", "servicesStoreId": 12345, "estimatedDropOffTime": "2026-04-16T15:30:00+00:00", "estimatedPickupTime": "2026-04-16T14:45:00+00:00", "deliveryFee": { "title": "Standard Delivery", "price": { "amount": 4900, "isVatIncluded": true, "vat": [ { "type": "25%", "percent": 25.0 } ] } }, "code": "promise-abc123", "dspName": "FastCourier", "provider": "fast-courier-api", "validUntil": "2026-04-16T14:50:00+00:00", "status": "valid", "error": null }, { "recipientPd": { "name": "Jane Doe", "phoneNumber": "+1234567890", "notes": "Leave at the front door", "courierFacingName": "Jane", "dropOffLocation": { "address": { "line1": "Kungsgatan 1", "line2": null, "city": "Stockholm", "buildingNumber": "1", "postalCode": "111 43", "countryIsoCode": "SE" }, "position": { "latitude": "59.3293", "longitude": "18.0686", "format": "dd" } } }, "storeId": "store-d4e5f6", "servicesStoreId": 67890, "estimatedDropOffTime": "2026-04-16T16:15:00+00:00", "estimatedPickupTime": "2026-04-16T15:30:00+00:00", "deliveryFee": { "title": "Express Delivery", "price": { "amount": 7900, "isVatIncluded": true, "vat": [ { "type": "25%", "percent": 25.0 } ] } }, "code": "promise-def456", "dspName": "SpeedyRide", "provider": null, "validUntil": "2026-04-16T15:35:00+00:00", "status": "invalid", "error": { "code": "STORE_CLOSED", "message": "The store is currently closed", "data": null, "innerError": null } } ] } ```