Skip to main content

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

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.

Promise request

POST https://your-example-url.com/your-route

{
"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.

{
"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
}
}
]
}