Download OpenAPI specification:Download
BOND, the post-purchase company, is changing the game of last-mile delivery experience.
Bond’s tech-driven network of nano distribution centers (NDCs) enables brands to provide fast, convenient, and friendly deliveries. With in-city storage, same-day delivery, next day scheduled delivery and scheduled returns, Bond offers D2C brands the most advanced and personalized last-mile solutions in the industry.
Welcome to Bond’s core API Reference!
Current API Version is 1.0
The Bond platform offers a post-purchase and last-mile delivery solution that integrates directly into your current flow and systems. Our API configures and manipulates Bond features and capabilities to seamlessly fit your business order needs. To use our API, make sure to set up your Bond account by contacting your Bond Account Manager or Bond Support, and checking that the prerequisite features are enabled for your account. Most user actions within Bond API can be performed programmatically using the REST API
Gets all the sites
| timeslot | string Should be "true" if timeslot data should be included in the response |
| geometry | string Should be "true" if geometry data should be included in the response |
[- {
- "id": "string",
- "name": "string",
- "isActive": true,
- "region": "string",
- "address": {
- "formatted": "string",
- "country": "string",
- "countryCode": "string",
- "state": "string",
- "stateCode": "string",
- "city": "string",
- "street": "string",
- "streetNumber": "string",
- "zip": "string",
- "coordinates": {
- "longitude": 0,
- "latitude": 0
}
}, - "shiftParameters": {
- "serviceTime": 0,
- "workingHoursInADay": 0,
- "maxPackagesPerRoute": 0,
- "numberOfVehicles": 0,
- "numberOfDrivers": 0
}, - "carriers": [
- "Bond"
], - "configurations": [
- {
- "name": "string",
- "geometry": {
- "type": "string",
- "coordinates": [
- {
- "longitude": 0,
- "latitude": 0
}
]
}, - "openingHours": [
- {
- "day": 0,
- "timeslots": [
- {
- "start": "string",
- "end": "string",
- "isActive": true
}
]
}
]
}
]
}
]This endpoint should answer your question: which sites could serve my upcoming order from a specific address?
object (Address) |
{- "address": {
- "address1": "228 Park Ave S",
- "address2": "Apartment 1",
- "zipcode": "10003",
- "city": "New York",
- "state": "NY",
- "country": "US"
}
}{- "sites": [
- {
- "id": "5e37090877955425238646e2",
- "name": "Upper East side"
}
]
}Gets a single site matching the given ID
| id | string site ID |
| timeslot | string Should be "true" if timeslot data should be included in the response |
| geometry | string Should be "true" if geometry data should be included in the response |
{- "id": "string",
- "name": "string",
- "isActive": true,
- "region": "string",
- "address": {
- "formatted": "string",
- "country": "string",
- "countryCode": "string",
- "state": "string",
- "stateCode": "string",
- "city": "string",
- "street": "string",
- "streetNumber": "string",
- "zip": "string",
- "coordinates": {
- "longitude": 0,
- "latitude": 0
}
}, - "shiftParameters": {
- "serviceTime": 0,
- "workingHoursInADay": 0,
- "maxPackagesPerRoute": 0,
- "numberOfVehicles": 0,
- "numberOfDrivers": 0
}, - "carriers": [
- "Bond"
], - "configurations": [
- {
- "name": "string",
- "geometry": {
- "type": "string",
- "coordinates": [
- {
- "longitude": 0,
- "latitude": 0
}
]
}, - "openingHours": [
- {
- "day": 0,
- "timeslots": [
- {
- "start": "string",
- "end": "string",
- "isActive": true
}
]
}
]
}
]
}The following endpoints should enable you interact with our state of the art inventory management capabilities.
Get the current inventory available for sale in the site.
Attention!
if some query skus are not registered in the site, a 206 response will be return and the quantity part of the product will be null.
| skus | Array of strings Example: skus=BO-12,BO-11 comma separated list of skus to get inventory availability for. |
{- "siteId": "5e37090877955425238646e2",
- "inventory": [
- {
- "sku": "BO-12",
- "name": "Bond Doll",
- "quantity": {
- "onHand": 100,
- "committed": 30,
- "available": 70
}
}
]
}Our automatic ordering function makes fulfillment as easy as pie! Whether it be for order delivery, service fulfillment, or package return requests.
Each order should be set for a single customer, delivery address, and delivery date. Updating orders is just as simple and can be done as often as necessary to communicate exact delivery needs.
Each order will have an assigned status to reflect its position in the delivery lifecycle:
When creating an order, an order “type” should always be set. The type will initiate the workflow (aka process):
Check whether an order is valid and supported by bond, without creating it.
| type required | string (OrderType) The order type PACK-DELIVER PACK-DELIVER DELIVER RETURN |
| displayId | string The order display Id given by the brand |
| brandOrderId | string The order Id given by the brand |
| creationDate | string <date-time> The order's creation date and time (in ISO8601 format). |
| requestedDeliveryDate | string <date> YYYY-MM-DD The order's requested date to deliver (in the order's address timezone). |
| readinessDate | string <date-time> not yet supported |
object The order's customer contact. | |
required | object The recipient of the order. |
| notes | string |
| externalTrackingNumber | string Generate a special tracking number from the external tracking number and Bond prefix. |
| batchId | string Use batches to organize similar orders together, by whatever criteria you choose. |
Array of objects (Item) The order items. |
{- "type": "PACK-DELIVER",
- "displayId": "display-acme-201",
- "brandOrderId": "acmem-201",
- "creationDate": "2020-02-10T08:00:00Z",
- "requestedDeliveryDate": "2020-02-11",
- "readinessDate": "2020-02-11T10:00:00Z",
- "customer": {
- "brandContactId": "256",
- "name": "John Smith",
- "email": "mr.smith@example.com",
- "phone": "+1-917-685-3957",
- "zipcode": "10003-1502",
- "address1": "228 Park Ave S",
- "address2": "428 Park Ave S",
- "city": "New York",
- "state": "NY",
- "country": "USA",
- "notes": "Leave in front of the door"
}, - "receiver": {
- "brandContactId": "256",
- "name": "John Smith",
- "email": "mr.smith@example.com",
- "phone": "+1-917-685-3957",
- "zipcode": "10003-1502",
- "address1": "228 Park Ave S",
- "address2": "428 Park Ave S",
- "city": "New York",
- "state": "NY",
- "country": "USA",
- "notes": "Leave in front of the door"
}, - "notes": "Make sure it's fresh",
- "externalTrackingNumber": "1527348963",
- "batchId": "batch-1763",
- "items": [
- {
- "sku": "12",
- "quantity": 2,
- "name": "Bond Hat"
}
]
}{- "isValid": false,
- "message": "The order was rejected because the address is not supported."
}Create a new order to be delivered with Bond
| type required | string (OrderType) The order type PACK-DELIVER PACK-DELIVER DELIVER RETURN |
| displayId | string The order display Id given by the brand |
| brandOrderId | string The order Id given by the brand |
| creationDate | string <date-time> The order's creation date and time (in ISO8601 format). |
| requestedDeliveryDate | string <date> YYYY-MM-DD The order's requested date to deliver (in the order's address timezone). |
| readinessDate | string <date-time> not yet supported |
object The order's customer contact. | |
required | object The recipient of the order. |
| notes | string |
| externalTrackingNumber | string Generate a special tracking number from the external tracking number and Bond prefix. |
| batchId | string Use batches to organize similar orders together, by whatever criteria you choose. |
Array of objects (Item) The order items. |
{- "type": "PACK-DELIVER",
- "displayId": "display-acme-201",
- "brandOrderId": "acmem-201",
- "creationDate": "2020-02-10T08:00:00Z",
- "requestedDeliveryDate": "2020-02-11",
- "readinessDate": "2020-02-11T10:00:00Z",
- "customer": {
- "brandContactId": "256",
- "name": "John Smith",
- "email": "mr.smith@example.com",
- "phone": "+1-917-685-3957",
- "zipcode": "10003-1502",
- "address1": "228 Park Ave S",
- "address2": "428 Park Ave S",
- "city": "New York",
- "state": "NY",
- "country": "USA",
- "notes": "Leave in front of the door"
}, - "receiver": {
- "brandContactId": "256",
- "name": "John Smith",
- "email": "mr.smith@example.com",
- "phone": "+1-917-685-3957",
- "zipcode": "10003-1502",
- "address1": "228 Park Ave S",
- "address2": "428 Park Ave S",
- "city": "New York",
- "state": "NY",
- "country": "USA",
- "notes": "Leave in front of the door"
}, - "notes": "Make sure it's fresh",
- "externalTrackingNumber": "1527348963",
- "batchId": "batch-1763",
- "items": [
- {
- "sku": "12",
- "quantity": 2,
- "name": "Bond Hat"
}
]
}{- "id": "BOuQ84HaQZ",
- "displayId": "display-acme-201",
- "brandOrderId": "acmem-201",
- "status": "DONE",
- "type": "PACK-DELIVER",
- "site": {
- "id": "5e37090877955425238646e2",
- "name": "Upper East side"
}, - "location": "Customer",
- "creationDate": "2020-02-10T08:00:00Z",
- "requestedDeliveryDate": "2020-02-11",
- "requestedDeliveryWindow": {
- "windowStart": "08:00",
- "windowEnd": "10:30"
}, - "readinessDate": "2020-02-11T10:00:00Z",
- "expectedArrivalDate": "2020-02-11T12:30:00Z",
- "actualArrivalDate": "2020-02-11T12:32:10Z",
- "customer": {
- "brandContactId": "256",
- "name": "John Smith",
- "email": "mr.smith@example.com",
- "phone": "+1-917-685-3957",
- "zipcode": "10003-1502",
- "address1": "228 Park Ave S",
- "address2": "428 Park Ave S",
- "city": "New York",
- "state": "NY",
- "country": "USA",
- "notes": "Leave in front of the door"
}, - "receiver": {
- "brandContactId": "256",
- "name": "John Smith",
- "email": "mr.smith@example.com",
- "phone": "+1-917-685-3957",
- "zipcode": "10003-1502",
- "address1": "228 Park Ave S",
- "address2": "428 Park Ave S",
- "city": "New York",
- "state": "NY",
- "country": "USA",
- "notes": "Leave in front of the door"
}, - "packages": [
- {
- "id": "BOuQ84HaQZ00",
- "brandPackageId": "XG23DA",
- "items": [
- {
- "sku": "12",
- "quantity": 2,
- "name": "Bond Hat"
}
], - "dimensions": {
- "unit": "IMPERIAL",
- "height": 1,
- "width": 6,
- "length": 9,
- "weight": 2.25
}, - "specialCondition": "Extremly heavy, handle with care"
}
], - "items": [
- {
- "sku": "12",
- "quantity": 2,
- "name": "Bond Hat"
}
], - "batchId": "batch-1763",
- "notes": "Make sure it's fresh",
- "history": [
- {
- "event": "ORDER_CREATED",
- "timestamp": "2021-02-15T16:34:37.000Z"
}, - {
- "event": "STATUS_CHANGED",
- "timestamp": "2021-02-16T09:47:56.000Z",
- "data": {
- "oldStatus": "PENDING",
- "newStatus": "READY_FOR_DELIVERY"
}
}, - {
- "event": "STATUS_CHANGED",
- "timestamp": "2021-02-17T09:47:56.000Z",
- "data": {
- "oldStatus": "READY_FOR_DELIVERY",
- "newStatus": "ON_THE_WAY"
}
}, - {
- "event": "STATUS_CHANGED",
- "timestamp": "2021-02-17T09:57:56.000Z",
- "data": {
- "oldStatus": "ON_THE_WAY",
- "newStatus": "DONE"
}
}
]
}List and filter orders
| status | Array of strings (OrderStatus) Items Enum: "PENDING" "READY_FOR_DELIVERY" "ON_THE_WAY" "SERVICING" "DONE" "CANCELLED" Example: status=DONE filter by order status |
| type | Array of strings (OrderType) Items Enum: "PACK-DELIVER" "DELIVER" "RETURN" Example: type=PACK-DELIVER filter by order type |
| creation_start | string <date-time> range start of the creation date |
| creation_end | string <date-time> range end of the creation date |
| requested_delivery_start | string <date-time> range start of the requested delivery date |
| requested_delivery_end | string <date-time> range end of the requested delivery date |
| page | number Default: 1 items page |
| per_page | number [ 1 .. 200 ] Default: 50 number of items to show in each page (between 1-200). |
[- {
- "id": "BOuQ84HaQZ",
- "displayId": "display-acme-201",
- "brandOrderId": "acmem-201",
- "status": "DONE",
- "type": "PACK-DELIVER",
- "site": {
- "id": "5e37090877955425238646e2",
- "name": "Upper East side"
}, - "location": "Customer",
- "creationDate": "2020-02-10T08:00:00Z",
- "requestedDeliveryDate": "2020-02-11",
- "requestedDeliveryWindow": {
- "windowStart": "08:00",
- "windowEnd": "10:30"
}, - "readinessDate": "2020-02-11T10:00:00Z",
- "expectedArrivalDate": "2020-02-11T12:30:00Z",
- "actualArrivalDate": "2020-02-11T12:32:10Z",
- "customer": {
- "brandContactId": "256",
- "name": "John Smith",
- "email": "mr.smith@example.com",
- "phone": "+1-917-685-3957",
- "zipcode": "10003-1502",
- "address1": "228 Park Ave S",
- "address2": "428 Park Ave S",
- "city": "New York",
- "state": "NY",
- "country": "USA",
- "notes": "Leave in front of the door"
}, - "receiver": {
- "brandContactId": "256",
- "name": "John Smith",
- "email": "mr.smith@example.com",
- "phone": "+1-917-685-3957",
- "zipcode": "10003-1502",
- "address1": "228 Park Ave S",
- "address2": "428 Park Ave S",
- "city": "New York",
- "state": "NY",
- "country": "USA",
- "notes": "Leave in front of the door"
}, - "packages": [
- {
- "id": "BOuQ84HaQZ00",
- "brandPackageId": "XG23DA",
- "items": [
- {
- "sku": "12",
- "quantity": 2,
- "name": "Bond Hat"
}
], - "dimensions": {
- "unit": "IMPERIAL",
- "height": 1,
- "width": 6,
- "length": 9,
- "weight": 2.25
}, - "specialCondition": "Extremly heavy, handle with care"
}
], - "items": [
- {
- "sku": "12",
- "quantity": 2,
- "name": "Bond Hat"
}
], - "batchId": "batch-1763",
- "notes": "Make sure it's fresh",
- "history": [
- {
- "event": "ORDER_CREATED",
- "timestamp": "2021-02-15T16:34:37.000Z"
}, - {
- "event": "STATUS_CHANGED",
- "timestamp": "2021-02-16T09:47:56.000Z",
- "data": {
- "oldStatus": "PENDING",
- "newStatus": "READY_FOR_DELIVERY"
}
}, - {
- "event": "STATUS_CHANGED",
- "timestamp": "2021-02-17T09:47:56.000Z",
- "data": {
- "oldStatus": "READY_FOR_DELIVERY",
- "newStatus": "ON_THE_WAY"
}
}, - {
- "event": "STATUS_CHANGED",
- "timestamp": "2021-02-17T09:57:56.000Z",
- "data": {
- "oldStatus": "ON_THE_WAY",
- "newStatus": "DONE"
}
}
]
}
]Update an existing order
| prefix required | string Enum: "bond-order" "brand-order" "bond-package" "brand-package" order id type:
|
| id required | string |
| brandOrderId | string The order Id given by the brand |
| status | string Value: "CANCELLED" Change the current status of the order. |
| requestedDeliveryDate | string <date> The order's requested date to deliver (in the order's address timezone). |
object | |
| readinessDate | string <date-time> not yet supported |
object The order's customer contact details. | |
object The recipient of the order. | |
Array of objects The brand package ids which will be deliveded by Bond. | |
Array of objects (Item) The order items. If a | |
| notes | string Notes left by the customer when placing the order. |
| batchId | string Use batches to organize similar orders together, by whatever criteria you choose. * Updating with |
{- "brandOrderId": "string",
- "status": "CANCELLED",
- "requestedDeliveryDate": "2020-02-11",
- "requestedDeliveryWindow": {
- "windowStart": "08:00",
- "windowEnd": "10:30"
}, - "readinessDate": "2020-02-11T10:00:00Z",
- "customer": {
- "brandContactId": "256",
- "name": "John Smith",
- "email": "mr.smith@example.com",
- "phone": "+1-917-685-3957",
- "zipcode": "10003-1502",
- "address1": "228 Park Ave S",
- "address2": "428 Park Ave S",
- "city": "New York",
- "state": "NY",
- "country": "USA",
- "notes": "Leave in front of the door"
}, - "receiver": {
- "brandContactId": "256",
- "name": "John Smith",
- "email": "mr.smith@example.com",
- "phone": "+1-917-685-3957",
- "zipcode": "10003-1502",
- "address1": "228 Park Ave S",
- "address2": "428 Park Ave S",
- "city": "New York",
- "state": "NY",
- "country": "USA",
- "notes": "Leave in front of the door"
}, - "packages": [
- {
- "id": "BOuQ84HaQZ00",
- "brandPackageId": "XG23DA",
- "items": [
- {
- "sku": "12",
- "quantity": 2,
- "name": "Bond Hat"
}
], - "dimensions": {
- "unit": "IMPERIAL",
- "height": 1,
- "width": 6,
- "length": 9,
- "weight": 2.25
}, - "specialCondition": "Extremly heavy, handle with care"
}
], - "items": [
- {
- "sku": "12",
- "quantity": 2,
- "name": "Bond Hat"
}
], - "notes": "Make sure it's fresh",
- "batchId": "batch-1763"
}{- "id": "BOuQ84HaQZ",
- "displayId": "display-acme-201",
- "brandOrderId": "acmem-201",
- "status": "DONE",
- "type": "PACK-DELIVER",
- "site": {
- "id": "5e37090877955425238646e2",
- "name": "Upper East side"
}, - "location": "Customer",
- "creationDate": "2020-02-10T08:00:00Z",
- "requestedDeliveryDate": "2020-02-11",
- "requestedDeliveryWindow": {
- "windowStart": "08:00",
- "windowEnd": "10:30"
}, - "readinessDate": "2020-02-11T10:00:00Z",
- "expectedArrivalDate": "2020-02-11T12:30:00Z",
- "actualArrivalDate": "2020-02-11T12:32:10Z",
- "customer": {
- "brandContactId": "256",
- "name": "John Smith",
- "email": "mr.smith@example.com",
- "phone": "+1-917-685-3957",
- "zipcode": "10003-1502",
- "address1": "228 Park Ave S",
- "address2": "428 Park Ave S",
- "city": "New York",
- "state": "NY",
- "country": "USA",
- "notes": "Leave in front of the door"
}, - "receiver": {
- "brandContactId": "256",
- "name": "John Smith",
- "email": "mr.smith@example.com",
- "phone": "+1-917-685-3957",
- "zipcode": "10003-1502",
- "address1": "228 Park Ave S",
- "address2": "428 Park Ave S",
- "city": "New York",
- "state": "NY",
- "country": "USA",
- "notes": "Leave in front of the door"
}, - "packages": [
- {
- "id": "BOuQ84HaQZ00",
- "brandPackageId": "XG23DA",
- "items": [
- {
- "sku": "12",
- "quantity": 2,
- "name": "Bond Hat"
}
], - "dimensions": {
- "unit": "IMPERIAL",
- "height": 1,
- "width": 6,
- "length": 9,
- "weight": 2.25
}, - "specialCondition": "Extremly heavy, handle with care"
}
], - "items": [
- {
- "sku": "12",
- "quantity": 2,
- "name": "Bond Hat"
}
], - "batchId": "batch-1763",
- "notes": "Make sure it's fresh",
- "history": [
- {
- "event": "ORDER_CREATED",
- "timestamp": "2021-02-15T16:34:37.000Z"
}, - {
- "event": "STATUS_CHANGED",
- "timestamp": "2021-02-16T09:47:56.000Z",
- "data": {
- "oldStatus": "PENDING",
- "newStatus": "READY_FOR_DELIVERY"
}
}, - {
- "event": "STATUS_CHANGED",
- "timestamp": "2021-02-17T09:47:56.000Z",
- "data": {
- "oldStatus": "READY_FOR_DELIVERY",
- "newStatus": "ON_THE_WAY"
}
}, - {
- "event": "STATUS_CHANGED",
- "timestamp": "2021-02-17T09:57:56.000Z",
- "data": {
- "oldStatus": "ON_THE_WAY",
- "newStatus": "DONE"
}
}
]
}Get order details
| prefix required | string Enum: "bond-order" "brand-order" "bond-package" "brand-package" order id type:
|
| id required | string |
{- "id": "BOuQ84HaQZ",
- "displayId": "display-acme-201",
- "brandOrderId": "acmem-201",
- "status": "DONE",
- "type": "PACK-DELIVER",
- "site": {
- "id": "5e37090877955425238646e2",
- "name": "Upper East side"
}, - "location": "Customer",
- "creationDate": "2020-02-10T08:00:00Z",
- "requestedDeliveryDate": "2020-02-11",
- "requestedDeliveryWindow": {
- "windowStart": "08:00",
- "windowEnd": "10:30"
}, - "readinessDate": "2020-02-11T10:00:00Z",
- "expectedArrivalDate": "2020-02-11T12:30:00Z",
- "actualArrivalDate": "2020-02-11T12:32:10Z",
- "customer": {
- "brandContactId": "256",
- "name": "John Smith",
- "email": "mr.smith@example.com",
- "phone": "+1-917-685-3957",
- "zipcode": "10003-1502",
- "address1": "228 Park Ave S",
- "address2": "428 Park Ave S",
- "city": "New York",
- "state": "NY",
- "country": "USA",
- "notes": "Leave in front of the door"
}, - "receiver": {
- "brandContactId": "256",
- "name": "John Smith",
- "email": "mr.smith@example.com",
- "phone": "+1-917-685-3957",
- "zipcode": "10003-1502",
- "address1": "228 Park Ave S",
- "address2": "428 Park Ave S",
- "city": "New York",
- "state": "NY",
- "country": "USA",
- "notes": "Leave in front of the door"
}, - "packages": [
- {
- "id": "BOuQ84HaQZ00",
- "brandPackageId": "XG23DA",
- "items": [
- {
- "sku": "12",
- "quantity": 2,
- "name": "Bond Hat"
}
], - "dimensions": {
- "unit": "IMPERIAL",
- "height": 1,
- "width": 6,
- "length": 9,
- "weight": 2.25
}, - "specialCondition": "Extremly heavy, handle with care"
}
], - "items": [
- {
- "sku": "12",
- "quantity": 2,
- "name": "Bond Hat"
}
], - "batchId": "batch-1763",
- "notes": "Make sure it's fresh",
- "history": [
- {
- "event": "ORDER_CREATED",
- "timestamp": "2021-02-15T16:34:37.000Z"
}, - {
- "event": "STATUS_CHANGED",
- "timestamp": "2021-02-16T09:47:56.000Z",
- "data": {
- "oldStatus": "PENDING",
- "newStatus": "READY_FOR_DELIVERY"
}
}, - {
- "event": "STATUS_CHANGED",
- "timestamp": "2021-02-17T09:47:56.000Z",
- "data": {
- "oldStatus": "READY_FOR_DELIVERY",
- "newStatus": "ON_THE_WAY"
}
}, - {
- "event": "STATUS_CHANGED",
- "timestamp": "2021-02-17T09:57:56.000Z",
- "data": {
- "oldStatus": "ON_THE_WAY",
- "newStatus": "DONE"
}
}
]
}Update a delivery status for an order, this will force update the order status. Please be noted, this update will not update external services.
| prefix required | string Enum: "bond-order" "brand-order" "bond-package" "brand-package" order id type:
|
| id required | string |
| newStatus | string Enum: "READY_FOR_DELIVERY" "ON_THE_WAY" "DONE" "CANCELLED" The new delivery status to set the order to |
{- "newStatus": "DONE"
}{- "message": "Unauthorized"
}It is possible to generate a label for any or your orders or packages, using this label API. Send your Bond Order ID or list of Order IDs and get back a single PDF file with all Labels and Picking slips (if exists) Please note: when using Shopify, generating the label might set the Shopify order as fulfillment done.
| bondIds | Array of strings an array of bond's unique order ids |
| onlyLabel | boolean Default: false print only the label (without packing slip) |
{- "bondIds": [
- "BOuQ84HaQZ",
- "BaNQC4H1qZ"
], - "onlyLabel": true
}{- "message": "Invalid request"
}Scheduling allows you to offer your end-users the option to choose their preferred date and time for Bond delivery or return pickup.
We offer 2 call types: Retrieve the list of all available dates and time slots Retrieve the list of time slots for a specific date
Bond will replay back with the list of relevant time slots according to the call, and the recommended best date and time slot per the call field.
Please note - an action will only be active on our systems once the timeslot was chosed, otherwise - the suggested times will be freed back for the next users.
This section will present the flow to create a scheduled order:
Create a temporary inactive order and Bond will create a unique tracking number to be used later. This will Creating a scheduling session, to get back the available time slots for your customer to choose from.
Once the user selected his wished time slot, the selection will be validated, to ensure we will be able to fulfil the customer request, and if the selected time slot is available, the order scheduling process will be completed, and a new order will be created at Bond
To cancel a previously scheduled order please refer to the Order Update and update the order to CANCELLED.
For service aggregators, please be noted that access will be done through the Brand API Key and not via a generic one.
Create a new draft order and a scheduling session
| type required | string (OrderType) The order type PACK-DELIVER PACK-DELIVER DELIVER RETURN |
| displayId | string The order display Id given by the brand |
| brandOrderId | string The order Id given by the brand |
| creationDate | string <date-time> The order's creation date and time (in ISO8601 format). |
| requestedDeliveryDate | string <date> YYYY-MM-DD The order's requested date to deliver (in the order's address timezone). |
| readinessDate | string <date-time> not yet supported |
object The order's customer contact. | |
required | object The recipient of the order. |
| notes | string |
| externalTrackingNumber | string Generate a special tracking number from the external tracking number and Bond prefix. |
| batchId | string Use batches to organize similar orders together, by whatever criteria you choose. |
Array of objects (Item) The order items. |
{- "type": "PACK-DELIVER",
- "displayId": "display-acme-201",
- "brandOrderId": "acmem-201",
- "creationDate": "2020-02-10T08:00:00Z",
- "requestedDeliveryDate": "2020-02-11",
- "readinessDate": "2020-02-11T10:00:00Z",
- "customer": {
- "brandContactId": "256",
- "name": "John Smith",
- "email": "mr.smith@example.com",
- "phone": "+1-917-685-3957",
- "zipcode": "10003-1502",
- "address1": "228 Park Ave S",
- "address2": "428 Park Ave S",
- "city": "New York",
- "state": "NY",
- "country": "USA",
- "notes": "Leave in front of the door"
}, - "receiver": {
- "brandContactId": "256",
- "name": "John Smith",
- "email": "mr.smith@example.com",
- "phone": "+1-917-685-3957",
- "zipcode": "10003-1502",
- "address1": "228 Park Ave S",
- "address2": "428 Park Ave S",
- "city": "New York",
- "state": "NY",
- "country": "USA",
- "notes": "Leave in front of the door"
}, - "notes": "Make sure it's fresh",
- "externalTrackingNumber": "1527348963",
- "batchId": "batch-1763",
- "items": [
- {
- "sku": "12",
- "quantity": 2,
- "name": "Bond Hat"
}
]
}{- "bond_id": "437fa207-cd7d-488d-b71e-a4663f6bd788",
- "availableTimeslots": [
- {
- "id": 0,
- "date": "2020-12-31T00:00:00.000Z",
- "windows": [
- {
- "id": 1,
- "windowStart": "08:00",
- "windowEnd": "10:30"
}
]
}
]
}Select a specific timeslot and truly create the order
| bond_id required | string <uuid> |
| date | dateYYYY-MM-DD |
| windowStart | string^\d{1,2}\:\d{1,2}$ a window start time - hour and minutes, in 24 hour format |
| windowEnd | string^\d{1,2}\:\d{1,2}$ a window end time - hour and minutes, in 24 hour format |
{- "date": "2020-12-31T00:00:00.000Z",
- "windowStart": "08:00",
- "windowEnd": "10:30"
}{- "id": "BOuQ84HaQZ",
- "displayId": "display-acme-201",
- "brandOrderId": "acmem-201",
- "status": "DONE",
- "type": "PACK-DELIVER",
- "site": {
- "id": "5e37090877955425238646e2",
- "name": "Upper East side"
}, - "location": "Customer",
- "creationDate": "2020-02-10T08:00:00Z",
- "requestedDeliveryDate": "2020-02-11",
- "requestedDeliveryWindow": {
- "windowStart": "08:00",
- "windowEnd": "10:30"
}, - "readinessDate": "2020-02-11T10:00:00Z",
- "expectedArrivalDate": "2020-02-11T12:30:00Z",
- "actualArrivalDate": "2020-02-11T12:32:10Z",
- "customer": {
- "brandContactId": "256",
- "name": "John Smith",
- "email": "mr.smith@example.com",
- "phone": "+1-917-685-3957",
- "zipcode": "10003-1502",
- "address1": "228 Park Ave S",
- "address2": "428 Park Ave S",
- "city": "New York",
- "state": "NY",
- "country": "USA",
- "notes": "Leave in front of the door"
}, - "receiver": {
- "brandContactId": "256",
- "name": "John Smith",
- "email": "mr.smith@example.com",
- "phone": "+1-917-685-3957",
- "zipcode": "10003-1502",
- "address1": "228 Park Ave S",
- "address2": "428 Park Ave S",
- "city": "New York",
- "state": "NY",
- "country": "USA",
- "notes": "Leave in front of the door"
}, - "packages": [
- {
- "id": "BOuQ84HaQZ00",
- "brandPackageId": "XG23DA",
- "items": [
- {
- "sku": "12",
- "quantity": 2,
- "name": "Bond Hat"
}
], - "dimensions": {
- "unit": "IMPERIAL",
- "height": 1,
- "width": 6,
- "length": 9,
- "weight": 2.25
}, - "specialCondition": "Extremly heavy, handle with care"
}
], - "items": [
- {
- "sku": "12",
- "quantity": 2,
- "name": "Bond Hat"
}
], - "batchId": "batch-1763",
- "notes": "Make sure it's fresh",
- "history": [
- {
- "event": "ORDER_CREATED",
- "timestamp": "2021-02-15T16:34:37.000Z"
}, - {
- "event": "STATUS_CHANGED",
- "timestamp": "2021-02-16T09:47:56.000Z",
- "data": {
- "oldStatus": "PENDING",
- "newStatus": "READY_FOR_DELIVERY"
}
}, - {
- "event": "STATUS_CHANGED",
- "timestamp": "2021-02-17T09:47:56.000Z",
- "data": {
- "oldStatus": "READY_FOR_DELIVERY",
- "newStatus": "ON_THE_WAY"
}
}, - {
- "event": "STATUS_CHANGED",
- "timestamp": "2021-02-17T09:57:56.000Z",
- "data": {
- "oldStatus": "ON_THE_WAY",
- "newStatus": "DONE"
}
}
]
}Use this to select\update a specific time slot for a temporary or an existing order. Selecting a time slot for a temporary order will make it active (Status: Pending).
| bond_id required | string <uuid> |
[- {
- "id": 0,
- "date": "2020-12-31T00:00:00.000Z",
- "windows": [
- {
- "id": 1,
- "windowStart": "08:00",
- "windowEnd": "10:30"
}
]
}
]Subscribe to a webhook in order to recieve updates on changes in orders
| callbackUrl required | string the url webhooks will be triggered to. |
| secret | string string that will be used to create the hash for validating the message |
| eventTypes | Array of strings (WebhookType) Items Enum: "ORDER_CREATED" "ORDER_STATUS_UPDATED" "ORDER_DETAILS_UPDATED" |
{- "secret": "My-Special-Secret111",
- "eventTypes": [
- "ORDER_CREATED"
]
}{- "id": "3e4172cf8df637503a5ee822",
- "callbackUrl": "string",
- "eventTypes": [
- "ORDER_CREATED"
]
}{- "eventTypes": "ORDER_CREATED",
- "payload": {
- "id": "BOuQ84HaQZ",
- "displayId": "display-acme-201",
- "brandOrderId": "acmem-201",
- "status": "DONE",
- "type": "PACK-DELIVER",
- "site": {
- "id": "5e37090877955425238646e2",
- "name": "Upper East side"
}, - "location": "Customer",
- "creationDate": "2020-02-10T08:00:00Z",
- "requestedDeliveryDate": "2020-02-11",
- "requestedDeliveryWindow": {
- "windowStart": "08:00",
- "windowEnd": "10:30"
}, - "readinessDate": "2020-02-11T10:00:00Z",
- "expectedArrivalDate": "2020-02-11T12:30:00Z",
- "actualArrivalDate": "2020-02-11T12:32:10Z",
- "customer": {
- "brandContactId": "256",
- "name": "John Smith",
- "email": "mr.smith@example.com",
- "phone": "+1-917-685-3957",
- "zipcode": "10003-1502",
- "address1": "228 Park Ave S",
- "address2": "428 Park Ave S",
- "city": "New York",
- "state": "NY",
- "country": "USA",
- "notes": "Leave in front of the door"
}, - "receiver": {
- "brandContactId": "256",
- "name": "John Smith",
- "email": "mr.smith@example.com",
- "phone": "+1-917-685-3957",
- "zipcode": "10003-1502",
- "address1": "228 Park Ave S",
- "address2": "428 Park Ave S",
- "city": "New York",
- "state": "NY",
- "country": "USA",
- "notes": "Leave in front of the door"
}, - "packages": [
- {
- "id": "BOuQ84HaQZ00",
- "brandPackageId": "XG23DA",
- "items": [
- {
- "sku": "12",
- "quantity": 2,
- "name": "Bond Hat"
}
], - "dimensions": {
- "unit": "IMPERIAL",
- "height": 1,
- "width": 6,
- "length": 9,
- "weight": 2.25
}, - "specialCondition": "Extremly heavy, handle with care"
}
], - "items": [
- {
- "sku": "12",
- "quantity": 2,
- "name": "Bond Hat"
}
], - "batchId": "batch-1763",
- "notes": "Make sure it's fresh",
- "history": [
- {
- "event": "ORDER_CREATED",
- "timestamp": "2021-02-15T16:34:37.000Z"
}, - {
- "event": "STATUS_CHANGED",
- "timestamp": "2021-02-16T09:47:56.000Z",
- "data": {
- "oldStatus": "PENDING",
- "newStatus": "READY_FOR_DELIVERY"
}
}, - {
- "event": "STATUS_CHANGED",
- "timestamp": "2021-02-17T09:47:56.000Z",
- "data": {
- "oldStatus": "READY_FOR_DELIVERY",
- "newStatus": "ON_THE_WAY"
}
}, - {
- "event": "STATUS_CHANGED",
- "timestamp": "2021-02-17T09:57:56.000Z",
- "data": {
- "oldStatus": "ON_THE_WAY",
- "newStatus": "DONE"
}
}
]
}
}[- {
- "id": "3e4172cf8df637503a5ee822",
- "callbackUrl": "string",
- "eventTypes": [
- "ORDER_CREATED"
]
}
]Each webhook will contain the X-Bond-Signature-256 header which contains the response signature.
We use an HMAC-SHA256 hexdigest to compute the signature.
You can valdiate the message with the secret you sent when subscribing to the webhook, and the entire message body as the HMAC message.
For more information on HMAC-SHA256 validation, check this article.
Following request-body is send as POST request on the URL used to register the callback:
| eventType | string (WebhookType) Enum: "ORDER_CREATED" "ORDER_STATUS_UPDATED" "ORDER_DETAILS_UPDATED" |
object (Order) |
{- "eventType": "ORDER_CREATED",
- "payload": {
- "id": "BOuQ84HaQZ",
- "displayId": "display-acme-201",
- "brandOrderId": "acmem-201",
- "status": "DONE",
- "type": "PACK-DELIVER",
- "site": {
- "id": "5e37090877955425238646e2",
- "name": "Upper East side"
}, - "location": "Customer",
- "creationDate": "2020-02-10T08:00:00Z",
- "requestedDeliveryDate": "2020-02-11",
- "requestedDeliveryWindow": {
- "windowStart": "08:00",
- "windowEnd": "10:30"
}, - "readinessDate": "2020-02-11T10:00:00Z",
- "expectedArrivalDate": "2020-02-11T12:30:00Z",
- "actualArrivalDate": "2020-02-11T12:32:10Z",
- "customer": {
- "brandContactId": "256",
- "name": "John Smith",
- "email": "mr.smith@example.com",
- "phone": "+1-917-685-3957",
- "zipcode": "10003-1502",
- "address1": "228 Park Ave S",
- "address2": "428 Park Ave S",
- "city": "New York",
- "state": "NY",
- "country": "USA",
- "notes": "Leave in front of the door"
}, - "receiver": {
- "brandContactId": "256",
- "name": "John Smith",
- "email": "mr.smith@example.com",
- "phone": "+1-917-685-3957",
- "zipcode": "10003-1502",
- "address1": "228 Park Ave S",
- "address2": "428 Park Ave S",
- "city": "New York",
- "state": "NY",
- "country": "USA",
- "notes": "Leave in front of the door"
}, - "packages": [
- {
- "id": "BOuQ84HaQZ00",
- "brandPackageId": "XG23DA",
- "items": [
- {
- "sku": "12",
- "quantity": 2,
- "name": "Bond Hat"
}
], - "dimensions": {
- "unit": "IMPERIAL",
- "height": 1,
- "width": 6,
- "length": 9,
- "weight": 2.25
}, - "specialCondition": "Extremly heavy, handle with care"
}
], - "items": [
- {
- "sku": "12",
- "quantity": 2,
- "name": "Bond Hat"
}
], - "batchId": "batch-1763",
- "notes": "Make sure it's fresh",
- "history": [
- {
- "event": "ORDER_CREATED",
- "timestamp": "2021-02-15T16:34:37.000Z"
}, - {
- "event": "STATUS_CHANGED",
- "timestamp": "2021-02-16T09:47:56.000Z",
- "data": {
- "oldStatus": "PENDING",
- "newStatus": "READY_FOR_DELIVERY"
}
}, - {
- "event": "STATUS_CHANGED",
- "timestamp": "2021-02-17T09:47:56.000Z",
- "data": {
- "oldStatus": "READY_FOR_DELIVERY",
- "newStatus": "ON_THE_WAY"
}
}, - {
- "event": "STATUS_CHANGED",
- "timestamp": "2021-02-17T09:57:56.000Z",
- "data": {
- "oldStatus": "ON_THE_WAY",
- "newStatus": "DONE"
}
}
]
}
}