Back to top

API Documentation

Overview

Tiramizoo has 3 APIs:

  1. Order creation API (this document) This API can be used to create/upload new orders (either for tour or for point to point) and check the status of orders. It also can be used to display all service areas and time windows of the relevant process.

  2. Courier company API (http://tiramizoo.github.io/courier-company-api-doc/) This API can be used to list all couriers and all orders/offers of the specified courier company. It can also be used to create/update couriers/drivers and the used vehicles.

  3. Courier API (http://tiramizoo.github.io/courier-api-doc/) The Courier API is used by our app and therefore has all functionality of the app. It provides the courier driver his tours/offers and enables him to change the status of a stop (delivered, picked up, upload signature, error, …). You only need to implement this API if your couriers are using your own and not the tiramizoo driver app.

You can easily connect tiramizoo to your platform by programming against the corresponding REST/JSON API.

Please use sandbox.tiramizoo.com for testing purposes. It’s a full copy of the production environment.

The tiramizoo.com API uses the HTTPS protocol for communication and JSON for serialization of request and response bodies.
All URLs start with https://app.tiramizoo.com/api/v1.
SSL is mandatory.

Any programming language used in a web development context will usually feature libraries for conveniently accessing a restful JSON web service.
So do PHP, Ruby, Java, .Net and Python to name only a few.
Integrating restful JSON services usually is also much faster and easier than working with SOAP and other XML based or stateful services.

If you encounter a problem when using the API, please let us know.

API Tokens

You will need an API token for accessing the API. The API token on the sandbox and production systems is different – please contact your sales person to get them or login to your tiramizoo staff interface to access them.

Versioning

All API urls have to be prefixed with the API version, e.g. /v1/orders.

Authentication

Some API calls require authentication with an API token. We accept API tokens as an URL param named api_token or Api-Token header.
You must keep the API token secret.

You can always request a new API token.
In case of providing a wrong token, an 401 Unauthorized response will be returned.

Making Requests

Text payloads are supported only as UTF-8-encoded.

The following examples use the curl shell command and is rendered as a single copy-pastable line with a multiline representation for easy reading.

A minimal POST request to the quotes resource which doesn’t require authentication:

curl -v -H 'Content-Type: application/json' -d '{
    "pickup_postal_code": "14195",
    "delivery_postal_code": "12437"
  }' "https://sandbox.tiramizoo.com/api/v1/quotes"

Try it:

curl -v -H 'Content-Type: application/json' -d '{"pickup_postal_code":"14195","delivery_postal_code":"12437"}' "https://sandbox.tiramizoo.com/api/v1/quotes"

Error Codes & Responses

200 OK

The request succeeded.

201 Created

The resource was created.

204 No Content

The request has been processed and no content was returned.

400 Bad Request

The request was not valid. The request may be incorrect, or the data in the request is not in the correct format. Check the message details for more information concerning the bad request, correct the request data, and try the invocation again.

401 Unauthorized

The user is not authorized to access the requested resource.

403 Forbidden

The user is not granted to access the requested resource.

404 Not Found

The requested resource was not found or no corresponding data available.

405 Method Not Allowed

parameter or verb not supported.

406 Not Acceptable

Request of a format that is currently not supported.

422 Unprocessable Entity

Data supplied is not valid. See detailed errors in the response.

503 Service Unavailable

Application is offline for maintenance.

500 Internal Server Error

Server encountered an unexpected condition which prevented it from processing the request.

Orders

Order states

Order states

  • created - order is being processed by tiramizoo system

  • dispatched - courier has received order information

  • picked_up - order has been picked up from pickup address

  • pickup_failed - courier went to pickup location but couldn’t complete pickup up

    The reason could be one of (event type):

    • package_was_not_ready
    • sender_wants_to_cancel
    • sender_was_not_at_home
    • wrong_package_size
  • delivered - order has been delivered to delivery address

  • delivery_failed - courier went to delivery location but couldn’t deliver

    The reason could be one of (event type):

    • abort_delivery
    • address_not_found
    • failed_due_to_business_closed
    • name_not_found_on_doorbell
    • no_attempt_due_to_being_late
    • not_enough_money_for_payment
    • package_is_damaged
    • package_was_delivered_too_late
    • package_was_not_accepted
    • package_was_not_ordered
    • recipient_was_not_at_home
  • returned - courier returned delivery to pickup location

  • cancelled - order has been cancelled before courier started to process a delivery

  • created_at, dispatched_at, picked_up_at, pickup_failed_at, delivered_at, delivery_failed_at, returned_at, cancelled_at - timestamps for each state. When not present order hasn’t reached state yet.

  • To get a reason of pickup_failed or delivery_failed state please investigate type or order history parameter which contain details

"history": [
  {
    "retry_at": null,
    "type": "pick_up",
    "recorded_at": "2017-05-09T19:29:25+02:00",
    "signature": {
      "url": null,
      "name": null
    },
    "photo_proof": {
      "url": null,
      "name": null
    },
    "current_state": "picked_up"
  },
  {
    "retry_at": null,
    "type": "recipient_was_not_at_home",
    "recorded_at": "2017-05-09T20:05:00+02:00",
    "signature": {
      "url": null,
      "name": null
    },
    "photo_proof": {
      "url": null,
      "name": null
    },
    "current_state": "delivery_failed"
  }
]

The orders API provides a simple and quick way of order creation.
You need to specify the time when delivery should take place by giving a time window with before and after.

All requests require authentication (valid API_TOKEN More )

List Orders

List Orders
GET/orders{?api_token,external_id,page,per_page,from}

Example URI

GET https://sandbox.tiramizoo.com/api/v1/orders?api_token=jksdorj23hh&external_id=ABH78H&page=1&per_page=10&from=2012-01-05T11:45:34Z
URI Parameters
HideShow
api_token
string (required) Example: jksdorj23hh

authentication token

external_id
string (optional) Example: ABH78H

custom id that enables connecting tiramizoo orders with your internal infrastructure. This id does not need to be unique and can have variable length.

page
number (optional) Example: 1

page number, by default first page is returned.

per_page
number (optional) Example: 10

orders per page, by default 100 records are returned. Max number allowed is 100.

from
string (optional) Example: 2012-01-05T11:45:34Z

filters orders by parameter created_at later than provided

Request
HideShow
Headers
Content-Type: application/json
Response  201
HideShow
Headers
Content-Type: application/json
Body
{
  "orders": [
    {
      "uuid": "536b6b0a-39e9-4264-babf-3deeeb434056",
      "description": "rubber chicken and chunky bacon",
      "courier_information": "go go go; now now now",
      "external_id": "XHOCKF",
      "web_hook_url": null,
      "hazard_index": 0,
      "service_area_identifier": "berlin",
      "identifier": "V65JRH",
      "timezone": "Europe/Berlin",
      "state": "created",
      "delivery_type": "standard",
      "created_at": "2018-01-05T13:45:34+01:00",
      "dispatched_at": null,
      "picked_up_at": null,
      "pickup_failed_at": null,
      "delivered_to": null,
      "delivered_at": null,
      "delivery_failed_at": null,
      "returned_at": null,
      "cancelled_at": null,
      "cancellation_reason": null,
      "tracking_url": "http://www.tiramizoo.com/orders/1XGZ6JHASWKEP/tracking_status?locale=en",
      "tracking_code": "1XGZ6-JHAS-WKEP",
      "cancellable": false,
      "pickup": {
        "name": "I.P. Freely",
        "phone_number": "30049223333",
        "email": null,
        "address_line": "Im Dol 2",
        "city": null,
        "postal_code": "14195",
        "country_code": "de",
        "after": "2012-04-16T07:00:00+02:00",
        "before": "2012-04-16T07:30:00+02:00",
        "requirements": [],
        "information": "go go go",
        "eta": null
      },
      "delivery": {
        "name": "Mike Rotch",
        "phone_number": "30049224444",
        "email": null,
        "address_line": "Im Dol 48",
        "city": null,
        "postal_code": "14195",
        "country_code": "de",
        "after": "2012-04-16T07:30:00+02:00",
        "before": "2012-04-16T09:00:00+02:00",
        "requirements": [],
        "information": "now now now",
        "eta": null
      },
      "packages": [
        {
          "width": 10,
          "height": 20,
          "length": 30,
          "weight": 5,
          "quantity": 1,
          "description": "A fish",
          "category": null,
          "identifier": "D4DDD6E56DFC314C",
          "unpackable": false,
          "non_rotatable": false,
          "external_id": null,
          "barcode": {
            "symbology": "QR Code",
            "data": "D4DDD6E56DFC314C",
            "url": "http://www.tiramizoo.com/api/v1/barcodes/D4DDD6E56DFC314C.png"
          },
          "state": "pending"
        }
      ],
      "signature": {
        "url": null,
        "name": null
      },
      "labels_url": "http://www.tiramizoo.com/orders/1XGZ6JHASWKEP/labels.pdf",
      "events": [],
      "history": [],
      "courier_company_identifier": null,
      "courier_company_name": null,
      "courier_identifier": null,
      "courier_name": null,
      "tour_identifier": null
    }
  ],
  "meta": {
    "page": 1,
    "total_pages": 1,
    "per_page": 10
  }
}

Order

Create Order
POST/orders{?api_token}


Attribute name Type Required Description Available types:
delivery_type string More
hazard_index number dangerous goods carriage index, More
description string Order's description
web_hook_url string URL to be notified when the order's state changes.
Please check the WebHooks
to learn more about web hooks.
external_id string Custom id that enables connecting tiramizoo orders with your internal infrastructure.
This id needs to be unique and can have
variable length (max length: 255 chars)
pickup: object Pickup data
name string Sender's name
email string Sender's email address
address_line string Sender's address
country_code string Sender's country code
postal_code string Sender's postal code
city string Mandatory only if params lat & lng are present Sender's city
lat decimal Sender's latitiude
lng decimal Sender's longitude
phone_number string Sender's phone number
after string Pickup after
before string Pickup before
information string Pickup information for a courier
service_time string Additional service time
requirements: array Requirements to be performed on pickup
type string X Requirement type
  • age
    Use if age verification of sender
    is required.
  • security_code
    Use if courier has to authorize
    by security code.
  • loading_assistance
    Use if loading assistance is required.
    Doesn't have a value parameter.
  • custom
    Use for custom requirements.
  • signature
    Use if signature is required on pickup.
    Doesn't have a value parameter.
  • external_identifier_scanning
    Use if scanning is required.
  • tail_lift
    Use if tail lift is required.
  • courier
    Use if concrete courier should be assigned to given order. Value should be an identifier of the courier.
value string Value for requirement.
delivery: object Delivery data
name string Recipient's name
email string Recipient's email address
address_line string Recipient's address
country_code string Recipient's country code
postal_code string Recipient's postal code
city string Mandatory only if params lat & lng are present Recipient's city
lat decimal Recipient's latitiude
lng decimal Recipient's longitude
phone_number string Recipient's phone number
after string Delivery after
before string Delivery before
information string Delivery information for a courier
service_time string Additional service time
requirements: array Requirements to be performed on delivery
type string X Requirement type
  • age
    Use if age verification of recipient
    is required.
  • security_code
    Use if courier has to authorize
    by security code.
  • loading_assistance
    Use if loading assistance is required.
    Doesn't have a value parameter.
  • custom
    Use for custom requirements.
  • signature
    Use if signature is required on delivery.
    Doesn't have a value parameter.
  • external_identifier_scanning
    Use if scanning is required.
  • tail_lift
    Use if tail lift is required.
  • recipient_payment_confirmation
    Use if courier should collect payment during delivery.
value string Value for requirement.
packages: array Order packages
weight number Package weight
height number Package height
width number Package width
length number Package length
description string Package description
size string Package size
identifier string Package identifier
non_rotatable boolean Specify if package can be
rotated/turned around during transport
external_id string Custom id that enables connecting tiramizoo package with your internal infrastructure.
Can have variable length (max length: 255 chars)
pickup_state string Package current state.
Displayed only if account allows courier to cancel package on pickup and load only part of an order.
(feature can cancel package pickup)
  • pending
  • picked_up
  • not_picked_up

delivery.before and delivery.after required date and time defining time window provided as UTC in ISO 8601 format.
Valid values can be retrieved from Service Areas API.
If different values are provided they will be changed to first matching by delivery.before.
Information about the change will be logged in courier_information field.

Quick Delivery

To deliver as fast as possible using standard or express delivery, please set delivery_type parameter.
Possible values are: standard and express.

When delivery_type is set following parameters will be ignored:

  • pickup.after

  • pickup.befor

  • delivery.after

  • delivery.before

Example URI

POST https://sandbox.tiramizoo.com/api/v1/orders?api_token=jksdorj23hh
URI Parameters
HideShow
api_token
string (required) Example: jksdorj23hh

authentication token

Request  Create Order
HideShow
Headers
Content-Type: application/json
Body
{
  "description": "rubber chickens and chunky bacon",
  "web_hook_url": "http://api.myshop.com/deliveries/update_state",
  "external_id": "12345",
  "pickup": {
    "name": "I.P. Freely",
    "email": "alice@icealay.de",
    "address_line": "Im Dol 2",
    "country_code": "de",
    "postal_code": "14195",
    "city": "Berlin",
    "phone_number": "+491234567890",
    "after": "2012-04-17T10:00:00+02:00",
    "before": "2012-04-17T12:00:00+02:00",
    "information": "pickup-instructions",
    "service_time": "3",
    "requirements": [
      {
        "type": "age",
        "value": "20"
      },
      {
        "type": "signature"
      },
      {
        "type": "loading_assistance"
      },
      {
        "type": "tail_lift"
      },
      {
        "type": "external_identifier_scanning",
        "value": "\\A(104[0-9]{13}|Y?1010[0-9]{10})\\z"
      },
      {
        "type": "security_code",
        "value": "ABC734"
      },
      {
        "type": "courier",
        "value": "DB1KWL"
      },
      {
        "type": "custom",
        "value": "Custom requirement message"
      }
    ]
  },
  "delivery": {
    "name": "I.P. Freely",
    "email": "bob@obbay.de",
    "address_line": "Thujaweg 1",
    "country_code": "de",
    "postal_code": "12437",
    "city": "Berlin",
    "phone_number": "30049223333",
    "after": "2012-04-17T10:00:00+02:00",
    "before": "2012-04-17T12:00:00+02:00",
    "information": "delivery-instructions",
    "service_time": "5",
    "requirements": [
      {
        "type": "age",
        "value": "20"
      },
      {
        "type": "signature"
      },
      {
        "type": "loading_assistance"
      },
      {
        "type": "tail_lift"
      },
      {
        "type": "external_identifier_scanning",
        "value": "\\A(104[0-9]{13}|Y?1010[0-9]{10})\\z"
      },
      {
        "type": "security_code",
        "value": "ABC734"
      },
      {
        "type": "recipient_payment_confirmation",
        "value": "12.3"
      },
      {
        "type": "custom",
        "value": "Custom requirement message"
      }
    ]
  },
  "packages": [
    {
      "weight": 5,
      "height": 20,
      "width": 10,
      "length": 30,
      "description": "A fish",
      "size": "L",
      "identifier": "667C5E8D3523C5A9",
      "external_id:   `some_external_123`": "Hello, world!",
      "non_rotatable": false
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "description": {
      "type": "string",
      "description": "order's description"
    },
    "web_hook_url": {
      "type": "string",
      "description": "an optional parameter with an URL to be notified when the order's state changes. Please check the [WebHooks](#web-hooks) to learn more about web hooks."
    },
    "external_id": {
      "type": "string",
      "description": "an optional parameter with custom id that enables connecting tiramizoo orders with your internal infrastructure. This id needs to be unique and can have variable length. (max length: 255 chars)"
    },
    "pickup": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "Sender's name"
        },
        "email": {
          "type": "string",
          "description": "Sender's email"
        },
        "address_line": {
          "type": "string",
          "description": "Sender's address"
        },
        "country_code": {
          "type": "string",
          "description": "Sender's country code"
        },
        "postal_code": {
          "type": "string",
          "description": "Sender's postal code"
        },
        "city": {
          "type": "string",
          "description": "Sender's city"
        },
        "phone_number": {
          "type": "string",
          "description": "Sender's phone number"
        },
        "after": {
          "type": "string",
          "description": "Pickup after"
        },
        "before": {
          "type": "string",
          "description": "Pickup before"
        },
        "information": {
          "type": "string",
          "description": "Pickup information for a courier"
        },
        "service_time": {
          "type": "string",
          "description": "Additional service time"
        },
        "requirements": {
          "type": "array",
          "items": [
            {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "age",
                    "security_code",
                    "loading_assistance",
                    "custom",
                    "signature",
                    "external_identifier_scanning",
                    "tail_lift"
                  ],
                  "description": "requirement type"
                },
                "value": {
                  "type": "string",
                  "description": "Requirement value. `types: loading_assistance, tail_lift and signature` doesn’t have value parameter."
                }
              }
            },
            {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "signature"
                  ],
                  "description": "requirement type"
                }
              }
            },
            {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "loading_assistance"
                  ],
                  "description": "requirement type"
                }
              }
            },
            {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "tail_lift"
                  ],
                  "description": "requirement type"
                }
              }
            },
            {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "external_identifier_scanning"
                  ],
                  "description": "requirement type"
                },
                "value": {
                  "type": "string",
                  "description": "scanning regex"
                }
              }
            },
            {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "security_code"
                  ],
                  "description": "requirement type"
                },
                "value": {
                  "type": "string",
                  "description": "security code"
                }
              }
            },
            {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "courier"
                  ],
                  "description": "requirement type"
                },
                "value": {
                  "type": "string",
                  "description": "courier's identifier"
                }
              }
            },
            {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "custom"
                  ],
                  "description": "requirement type"
                },
                "value": {
                  "type": "string",
                  "description": "custom requirement message"
                }
              }
            }
          ],
          "description": "Requirements to be performed on pickup"
        }
      },
      "description": "pickup data"
    },
    "delivery": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "Recipient's name"
        },
        "email": {
          "type": "string",
          "description": "Recipient's email"
        },
        "address_line": {
          "type": "string",
          "description": "Recipient's address"
        },
        "country_code": {
          "type": "string",
          "description": "Recipient's country code"
        },
        "postal_code": {
          "type": "string",
          "description": "Recipient's postal code"
        },
        "city": {
          "type": "string",
          "description": "Recipient's city"
        },
        "phone_number": {
          "type": "string",
          "description": "Recipient's phone number"
        },
        "after": {
          "type": "string",
          "description": "Delivery after"
        },
        "before": {
          "type": "string",
          "description": "Delivery before"
        },
        "information": {
          "type": "string",
          "description": "Delivery information for a courier"
        },
        "service_time": {
          "type": "string",
          "description": "Additional service time"
        },
        "requirements": {
          "type": "array",
          "items": [
            {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "age",
                    "security_code",
                    "loading_assistance",
                    "custom",
                    "signature",
                    "external_identifier_scanning",
                    "tail_lift"
                  ],
                  "description": "requirement type"
                },
                "value": {
                  "type": "string",
                  "description": "requirement type value. Requirements `type: loading_assistance, tail_lift and signature` doesn’t have value parameter."
                }
              }
            },
            {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "signature"
                  ],
                  "description": "requirement type"
                }
              }
            },
            {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "loading_assistance"
                  ],
                  "description": "requirement type"
                }
              }
            },
            {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "tail_lift"
                  ],
                  "description": "requirement type"
                }
              }
            },
            {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "external_identifier_scanning"
                  ],
                  "description": "requirement type"
                },
                "value": {
                  "type": "string",
                  "description": "scanning regex"
                }
              }
            },
            {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "security_code"
                  ],
                  "description": "requirement type"
                },
                "value": {
                  "type": "string",
                  "description": "security code"
                }
              }
            },
            {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "recipient_payment_confirmation"
                  ],
                  "description": "requirement type"
                },
                "value": {
                  "type": "string",
                  "description": "value to be paid"
                }
              }
            },
            {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "custom"
                  ],
                  "description": "requirement type"
                },
                "value": {
                  "type": "string",
                  "description": "custom requirement message"
                }
              }
            }
          ],
          "description": "Requirements to be performed on delivery"
        }
      },
      "description": "delivery data"
    },
    "packages": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "weight": {
            "type": "number",
            "description": "Package weight"
          },
          "height": {
            "type": "number",
            "description": "Package height"
          },
          "width": {
            "type": "number",
            "description": "Package width"
          },
          "length": {
            "type": "number",
            "description": "Package length"
          },
          "description": {
            "type": "string",
            "description": "Package description"
          },
          "size": {
            "type": "string",
            "description": "Package size"
          },
          "identifier": {
            "type": "string",
            "description": "Package identifier"
          },
          "external_id:   `some_external_123`": {
            "type": "string",
            "description": "Package external id"
          },
          "non_rotatable": {
            "type": "boolean",
            "description": "Specify if package can be rotated during transport"
          }
        }
      },
      "description": "Order packages"
    }
  }
}
Response  201
HideShow

pickup_signature, delivery_signature, return_signature - are optional

Headers
Content-Type: application/json
Body
{
  "uuid": "2a9eeeb3-16ba-4184-b894-c9734f613e93",
  "description": null,
  "courier_information": "pickup-instructions; delivery-instructions",
  "external_id": "external id",
  "web_hook_url": "http://api.myshop.com/deliveries/update_state",
  "hazard_index": 10,
  "service_area_identifier": "berlin",
  "identifier": "ZVW8GV",
  "timezone": "Europe/Berlin",
  "state": "created",
  "delivery_type": "standard",
  "created_at": "2012-04-16T09:00:00+02:00",
  "dispatched_at": null,
  "picked_up_at": null,
  "pickup_failed_at": null,
  "delivered_to": null,
  "delivered_at": null,
  "delivery_failed_at": null,
  "returned_at": null,
  "cancelled_at": null,
  "cancellation_reason": null,
  "tracking_url": "http://www.tiramizoo.com/orders/ID4K7EHQX62RA/tracking_status?locale=en",
  "tracking_code": "ID4K7-EHQX-62RA",
  "cancellable": true,
  "pickup": {
    "name": "Alice Icealay",
    "phone_number": "+491234567890",
    "email": "alice@icealay.de",
    "address_line": "Im Dol 1",
    "city": "Berlin",
    "postal_code": "14195",
    "country_code": "de",
    "after": "2012-04-17T10:00:00+02:00",
    "before": "2012-04-17T12:00:00+02:00",
    "requirements": [
      {
        "type": "custom",
        "value": "please knock twice"
      }
    ],
    "information": "pickup-instructions",
    "eta": null
  },
  "delivery": {
    "name": "Bob Obbay",
    "phone_number": "+490987654321",
    "email": "bob@obbay.de",
    "address_line": "Thujaweg 1",
    "city": "Berlin",
    "postal_code": "12437",
    "country_code": "de",
    "after": "2012-04-17T10:00:00+02:00",
    "before": "2012-04-17T12:00:00+02:00",
    "requirements": [
      {
        "type": "custom",
        "value": "please knock twice"
      },
      {
        "type": "signature"
      }
    ],
    "information": "delivery-instructions",
    "eta": null
  },
  "packages": [
    {
      "width": 2,
      "height": 8,
      "length": 5,
      "weight": 2,
      "quantity": 1,
      "description": null,
      "category": null,
      "identifier": "18A24901BE5D49C3",
      "unpackable": false,
      "non_rotatable": false,
      "external_id": null,
      "barcode": {
        "symbology": "QR Code",
        "data": "18A24901BE5D49C3",
        "url": "http://www.tiramizoo.com/api/v1/barcodes/18A24901BE5D49C3.png"
      },
      "state": "pending"
    }
  ],
  "signature": {
    "url": null,
    "name": null
  },
  "labels_url": "http://www.tiramizoo.com/orders/ID4K7EHQX62RA/labels.pdf",
  "events": [],
  "history": [],
  "courier_company_identifier": null,
  "courier_company_name": null,
  "courier_identifier": null,
  "courier_name": null,
  "tour_identifier": null
}
Response  422
HideShow

422 Validation Error - some of required parameters are missing or
invalid in the request. Please fix parameters and retry the request.

Headers
Content-Type: application/json
Body
{
  "code": "validation_error",
  "message": "validation error",
  "errors": [
    {
      "field": "delivery_name",
      "code": "blank",
      "message": "Delivery name can't be blank"
    }
  ]
}
Response  401
HideShow

Unauthorized request

Request  Quick Delivery
HideShow
Headers
Content-Type: application/json
Body
{
  "delivery_type": "express",
  "description": "rubber chickens and chunky bacon",
  "web_hook_url": "http://api.myshop.com/deliveries/update_state",
  "external_id": "12345",
  "pickup": {
    "name": "I.P. Freely",
    "email": "alice@icealay.de",
    "address_line": "Im Dol 2",
    "country_code": "de",
    "postal_code": "14195",
    "city": "Berlin",
    "phone_number": "+491234567890",
    "information": "pickup-instructions",
    "requirements": [
      {
        "type": "age",
        "value": "20"
      },
      {
        "type": "signature"
      },
      {
        "type": "loading_assistance"
      },
      {
        "type": "tail_lift"
      },
      {
        "type": "external_identifier_scanning",
        "value": "\\A(104[0-9]{13}|Y?1010[0-9]{10})\\z"
      },
      {
        "type": "security_code",
        "value": "ABC734"
      },
      {
        "type": "courier",
        "value": "DB1KWL"
      },
      {
        "type": "custom",
        "value": "Custom requirement message"
      }
    ]
  },
  "delivery": {
    "name": "I.P. Freely",
    "email": "bob@obbay.de",
    "address_line": "Thujaweg 1",
    "country_code": "de",
    "postal_code": "12437",
    "city": "Berlin",
    "phone_number": "30049223333",
    "information": "delivery-instructions",
    "requirements": [
      {
        "type": "age",
        "value": "20"
      },
      {
        "type": "signature"
      },
      {
        "type": "loading_assistance"
      },
      {
        "type": "tail_lift"
      },
      {
        "type": "external_identifier_scanning",
        "value": "\\A(104[0-9]{13}|Y?1010[0-9]{10})\\z"
      },
      {
        "type": "security_code",
        "value": "ABC734"
      },
      {
        "type": "courier",
        "value": "DB1KWL"
      },
      {
        "type": "custom",
        "value": "Custom requirement message"
      }
    ]
  },
  "packages": [
    {
      "weight": 5,
      "height": 20,
      "width": 10,
      "length": 30,
      "description": "A fish",
      "size": "L",
      "identifier": "667C5E8D3523C5A9",
      "non_rotatable": false
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "delivery_type": {
      "type": "string",
      "enum": [
        "express"
      ]
    },
    "description": {
      "type": "string",
      "description": "order's description"
    },
    "web_hook_url": {
      "type": "string",
      "description": "an optional parameter with an URL to be notified when the order's state changes. Please check the [WebHooks](#web-hooks) to learn more about web hooks."
    },
    "external_id": {
      "type": "string",
      "description": "an optional parameter with custom id that enables connecting tiramizoo orders with your internal infrastructure. This id needs to be unique and can have variable length. (max length: 255 chars)"
    },
    "pickup": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "Sender's name"
        },
        "email": {
          "type": "string",
          "description": "Sender's email"
        },
        "address_line": {
          "type": "string",
          "description": "Sender's address"
        },
        "country_code": {
          "type": "string",
          "description": "Sender's country code"
        },
        "postal_code": {
          "type": "string",
          "description": "Sender's postal code"
        },
        "city": {
          "type": "string",
          "description": "Sender's city"
        },
        "phone_number": {
          "type": "string",
          "description": "Sender's phone number"
        },
        "information": {
          "type": "string",
          "description": "Pickup information for a courier"
        },
        "requirements": {
          "type": "array",
          "items": [
            {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "age",
                    "security_code",
                    "loading_assistance",
                    "custom",
                    "signature",
                    "external_identifier_scanning",
                    "tail_lift"
                  ],
                  "description": "requirement type"
                },
                "value": {
                  "type": "string",
                  "description": "requirement type value. Requirements `type: loading_assistance and signature` doesn’t have value parameter."
                }
              }
            },
            {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "signature"
                  ],
                  "description": "requirement type"
                }
              }
            },
            {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "loading_assistance"
                  ],
                  "description": "requirement type"
                }
              }
            },
            {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "tail_lift"
                  ],
                  "description": "requirement type"
                }
              }
            },
            {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "external_identifier_scanning"
                  ],
                  "description": "requirement type"
                },
                "value": {
                  "type": "string",
                  "description": "scanning regex"
                }
              }
            },
            {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "security_code"
                  ],
                  "description": "requirement type"
                },
                "value": {
                  "type": "string",
                  "description": "security code"
                }
              }
            },
            {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "courier"
                  ],
                  "description": "requirement type"
                },
                "value": {
                  "type": "string",
                  "description": "courier's identifier"
                }
              }
            },
            {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "custom"
                  ],
                  "description": "requirement type"
                },
                "value": {
                  "type": "string",
                  "description": "custom requirement message"
                }
              }
            }
          ],
          "description": "Requirements to be performed on pickup"
        }
      },
      "description": "pickup data"
    },
    "delivery": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "Recipient's name"
        },
        "email": {
          "type": "string",
          "description": "Recipient's email"
        },
        "address_line": {
          "type": "string",
          "description": "Recipient's address"
        },
        "country_code": {
          "type": "string",
          "description": "Recipient's country code"
        },
        "postal_code": {
          "type": "string",
          "description": "Recipient's postal code"
        },
        "city": {
          "type": "string",
          "description": "Recipient's city"
        },
        "phone_number": {
          "type": "string",
          "description": "Recipient's phone number"
        },
        "information": {
          "type": "string",
          "description": "Delivery information for a courier"
        },
        "requirements": {
          "type": "array",
          "items": [
            {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "age",
                    "security_code",
                    "loading_assistance",
                    "custom",
                    "signature",
                    "external_identifier_scanning",
                    "tail_lift"
                  ],
                  "description": "requirement type"
                },
                "value": {
                  "type": "string",
                  "description": "requirement type value. Requirements `type: loading_assistance and signature` doesn’t have value parameter.ring]) - requirement type value"
                }
              }
            },
            {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "signature"
                  ],
                  "description": "requirement type"
                }
              }
            },
            {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "loading_assistance"
                  ],
                  "description": "requirement type"
                }
              }
            },
            {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "tail_lift"
                  ],
                  "description": "requirement type"
                }
              }
            },
            {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "external_identifier_scanning"
                  ],
                  "description": "requirement type"
                },
                "value": {
                  "type": "string",
                  "description": "scanning regex"
                }
              }
            },
            {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "security_code"
                  ],
                  "description": "requirement type"
                },
                "value": {
                  "type": "string",
                  "description": "security code"
                }
              }
            },
            {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "courier"
                  ],
                  "description": "requirement type"
                },
                "value": {
                  "type": "string",
                  "description": "courier's identifier"
                }
              }
            },
            {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "custom"
                  ],
                  "description": "requirement type"
                },
                "value": {
                  "type": "string",
                  "description": "custom requirement message"
                }
              }
            }
          ],
          "description": "Requirements to be performed on delivery"
        }
      },
      "description": "delivery data"
    },
    "packages": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "weight": {
            "type": "number",
            "description": "Package weight"
          },
          "height": {
            "type": "number",
            "description": "Package height"
          },
          "width": {
            "type": "number",
            "description": "Package width"
          },
          "length": {
            "type": "number",
            "description": "Package length"
          },
          "description": {
            "type": "string",
            "description": "Package description"
          },
          "size": {
            "type": "string",
            "description": "Package size"
          },
          "identifier": {
            "type": "string",
            "description": "Package identifier"
          },
          "non_rotatable": {
            "type": "boolean",
            "description": "Specify if package can be rotated during transport"
          }
        }
      },
      "description": "Order packages"
    }
  },
  "required": [
    "delivery_type"
  ]
}
Response  201
HideShow

pickup_signature, delivery_signature, return_signature - are optional

Headers
Content-Type: application/json
Body
{
  "uuid": "66165380-8dcd-43f3-b2f0-4b9a98aab446",
  "description": null,
  "courier_information": "pickup-instructions; delivery-instructions",
  "external_id": "external id",
  "web_hook_url": "http://api.myshop.com/deliveries/update_state",
  "hazard_index": 10,
  "service_area_identifier": "berlin",
  "identifier": "VTVSPD",
  "timezone": "Europe/Berlin",
  "state": "created",
  "delivery_type": "express",
  "created_at": "2012-04-16T09:00:00+02:00",
  "dispatched_at": null,
  "picked_up_at": null,
  "pickup_failed_at": null,
  "delivered_to": null,
  "delivered_at": null,
  "delivery_failed_at": null,
  "returned_at": null,
  "cancelled_at": null,
  "cancellation_reason": null,
  "tracking_url": "http://www.tiramizoo.com/orders/696LRBSTCNPQL/tracking_status?locale=en",
  "tracking_code": "696LR-BSTC-NPQL",
  "cancellable": false,
  "pickup": {
    "name": "Alice Icealay",
    "phone_number": "+491234567890",
    "email": "alice@icealay.de",
    "address_line": "Im Dol 1",
    "city": "Berlin",
    "postal_code": "14195",
    "country_code": "de",
    "after": "2012-04-16T09:00:00+02:00",
    "before": "2012-04-16T11:00:00+02:00",
    "requirements": [],
    "information": "pickup-instructions",
    "eta": null
  },
  "delivery": {
    "name": "Bob Obbay",
    "phone_number": "+490987654321",
    "email": "bob@obbay.de",
    "address_line": "Thujaweg 1",
    "city": "Berlin",
    "postal_code": "12437",
    "country_code": "de",
    "after": "2012-04-16T09:00:00+02:00",
    "before": "2012-04-16T11:00:00+02:00",
    "requirements": [
      {
        "type": "signature"
      }
    ],
    "information": "delivery-instructions",
    "eta": null
  },
  "packages": [
    {
      "width": 2,
      "height": 8,
      "length": 5,
      "weight": 2,
      "quantity": 1,
      "description": null,
      "category": null,
      "identifier": "CF15BF5EE9575406",
      "unpackable": false,
      "non_rotatable": false,
      "external_id": null,
      "barcode": {
        "symbology": "QR Code",
        "data": "CF15BF5EE9575406",
        "url": "http://www.tiramizoo.com/api/v1/barcodes/CF15BF5EE9575406.png"
      },
      "state": "pending"
    }
  ],
  "signature": {
    "url": null,
    "name": null
  },
  "labels_url": "http://www.tiramizoo.com/orders/696LRBSTCNPQL/labels.pdf",
  "events": [],
  "history": [],
  "courier_company_identifier": null,
  "courier_company_name": null,
  "courier_identifier": null,
  "courier_name": null,
  "tour_identifier": null
}
Response  422
HideShow

422 Validation Error - some of required parameters are missing or
invalid in the request. Please fix parameters and retry the request.

Headers
Content-Type: application/json
Body
{
  "code": "validation_error",
  "message": "validation error",
  "errors": [
    {
      "field": "pickup_name",
      "code": "blank",
      "message": "Pickup name can't be blank"
    }
  ]
}
Response  401
HideShow

Unauthorized request

Show Order
GET/orders/{id}{?api_token}

Example URI

GET https://sandbox.tiramizoo.com/api/v1/orders/VZQSWU?api_token=jksdorj23hh
URI Parameters
HideShow
api_token
string (required) Example: jksdorj23hh

authentication token

id
string (required) Example: VZQSWU

unique order identifier, could be either:

  • VZQSWU - identifier, or

  • a505ff78-67c5-4fbd-ab4f-a8db81f2c45a - uuid

Request
HideShow
Headers
Content-Type: application/json
Response  200
HideShow

pickup_signature, delivery_signature, return_signature - are optional

Headers
Content-Type: application/json
Body
{
  "uuid": "ca8dcb4c-ef0f-4564-a87a-64b40fbeb944",
  "description": "rubber chicken and chunky bacon",
  "courier_information": "go go go; now now now",
  "external_id": "MEO55Y",
  "web_hook_url": null,
  "hazard_index": 0,
  "service_area_identifier": "berlin",
  "identifier": "QSMZTK",
  "timezone": "Europe/Berlin",
  "state": "created",
  "delivery_type": "standard",
  "created_at": "2012-04-16T05:00:00+02:00",
  "dispatched_at": null,
  "picked_up_at": null,
  "pickup_failed_at": null,
  "delivered_to": null,
  "delivered_at": null,
  "delivery_failed_at": null,
  "returned_at": null,
  "cancelled_at": null,
  "cancellation_reason": null,
  "tracking_url": "http://www.tiramizoo.com/orders/JMTFOQO254JST/tracking_status?locale=en",
  "tracking_code": "JMTFO-QO25-4JST",
  "cancellable": false,
  "pickup": {
    "name": "I.P. Freely",
    "phone_number": "30049223333",
    "email": null,
    "address_line": "Im Dol 2",
    "city": null,
    "postal_code": "14195",
    "country_code": "de",
    "after": "2012-04-16T07:00:00+02:00",
    "before": "2012-04-16T07:30:00+02:00",
    "requirements": [],
    "information": "go go go",
    "eta": null
  },
  "delivery": {
    "name": "Mike Rotch",
    "phone_number": "30049224444",
    "email": null,
    "address_line": "Im Dol 48",
    "city": null,
    "postal_code": "14195",
    "country_code": "de",
    "after": "2012-04-16T07:30:00+02:00",
    "before": "2012-04-16T09:00:00+02:00",
    "requirements": [],
    "information": "now now now",
    "eta": null
  },
  "packages": [
    {
      "width": 10,
      "height": 20,
      "length": 30,
      "weight": 5,
      "quantity": 1,
      "description": "A fish",
      "category": null,
      "identifier": "9785C3F6170F3FF8",
      "unpackable": false,
      "non_rotatable": false,
      "external_id": null,
      "barcode": {
        "symbology": "QR Code",
        "data": "9785C3F6170F3FF8",
        "url": "http://www.tiramizoo.com/api/v1/barcodes/9785C3F6170F3FF8.png"
      },
      "state": "pending"
    }
  ],
  "signature": {
    "url": null,
    "name": null
  },
  "labels_url": "http://www.tiramizoo.com/orders/JMTFOQO254JST/labels.pdf",
  "events": [],
  "history": [],
  "courier_company_identifier": null,
  "courier_company_name": null,
  "courier_identifier": null,
  "courier_name": null,
  "tour_identifier": null
}

Show Order by external ID
GET/orders/by_external_id/{external_id}{?api_token}

Example URI

GET https://sandbox.tiramizoo.com/api/v1/orders/by_external_id/QSWU?api_token=jksdorj23hh
URI Parameters
HideShow
api_token
string (required) Example: jksdorj23hh

authentication token

external_id
string (required) Example: QSWU

custom id that enables connecting tiramizoo order with your internal infrastructure.

  • QSWU - external ID
Request
HideShow
Headers
Content-Type: application/json
Response  200
HideShow

pickup_signature, delivery_signature, return_signature - are optional

Headers
Content-Type: application/json
Body
{
  "uuid": "ca8dcb4c-ef0f-4564-a87a-64b40fbeb944",
  "description": "rubber chicken and chunky bacon",
  "courier_information": "go go go; now now now",
  "external_id": "MEO55Y",
  "web_hook_url": null,
  "hazard_index": 0,
  "service_area_identifier": "berlin",
  "identifier": "QSMZTK",
  "timezone": "Europe/Berlin",
  "state": "created",
  "delivery_type": "standard",
  "created_at": "2012-04-16T05:00:00+02:00",
  "dispatched_at": null,
  "picked_up_at": null,
  "pickup_failed_at": null,
  "delivered_to": null,
  "delivered_at": null,
  "delivery_failed_at": null,
  "returned_at": null,
  "cancelled_at": null,
  "cancellation_reason": null,
  "tracking_url": "http://www.tiramizoo.com/orders/JMTFOQO254JST/tracking_status?locale=en",
  "tracking_code": "JMTFO-QO25-4JST",
  "cancellable": false,
  "pickup": {
    "name": "I.P. Freely",
    "phone_number": "30049223333",
    "email": null,
    "address_line": "Im Dol 2",
    "city": null,
    "postal_code": "14195",
    "country_code": "de",
    "after": "2012-04-16T07:00:00+02:00",
    "before": "2012-04-16T07:30:00+02:00",
    "requirements": [],
    "information": "go go go",
    "eta": null
  },
  "delivery": {
    "name": "Mike Rotch",
    "phone_number": "30049224444",
    "email": null,
    "address_line": "Im Dol 48",
    "city": null,
    "postal_code": "14195",
    "country_code": "de",
    "after": "2012-04-16T07:30:00+02:00",
    "before": "2012-04-16T09:00:00+02:00",
    "requirements": [],
    "information": "now now now",
    "eta": null
  },
  "packages": [
    {
      "width": 10,
      "height": 20,
      "length": 30,
      "weight": 5,
      "quantity": 1,
      "description": "A fish",
      "category": null,
      "identifier": "9785C3F6170F3FF8",
      "unpackable": false,
      "non_rotatable": false,
      "external_id": null,
      "barcode": {
        "symbology": "QR Code",
        "data": "9785C3F6170F3FF8",
        "url": "http://www.tiramizoo.com/api/v1/barcodes/9785C3F6170F3FF8.png"
      },
      "state": "pending"
    }
  ],
  "signature": {
    "url": null,
    "name": null
  },
  "labels_url": "http://www.tiramizoo.com/orders/JMTFOQO254JST/labels.pdf",
  "events": [],
  "history": [],
  "courier_company_identifier": null,
  "courier_company_name": null,
  "courier_identifier": null,
  "courier_name": null,
  "tour_identifier": null
}

Cancel Order
PUT/orders/{id}

Only orders in cancellable state can be cancelled

{
  // ...
  "cancellable": true
  // ...
}

Example URI

PUT https://sandbox.tiramizoo.com/api/v1/orders/VZQSWU
URI Parameters
HideShow
id
string (required) Example: VZQSWU

unique order identifier, could be either:

  • VZQSWU - identifier, or

  • a505ff78-67c5-4fbd-ab4f-a8db81f2c45a - uuid

Request
HideShow
Headers
Content-Type: application/json
Body
{
  "api_token": "jksdorj23hh",
  "state": "cancelled",
  "external_id": "AABBCC"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "api_token": {
      "type": "string",
      "description": "authentication token"
    },
    "state": {
      "type": "string"
    },
    "external_id": {
      "type": "string",
      "description": "custom id that enables connecting tiramizoo order with your internal infrastructure. This id does not need to be unique and can have variable length."
    }
  },
  "required": [
    "api_token",
    "state"
  ]
}
Response  200
HideShow

pickup_signature, delivery_signature, return_signature - are optional

Headers
Content-Type: application/json
Body
{
  "uuid": "fcf32ce9-7ab9-4a0c-96bd-04f62332396d",
  "description": "rubber chicken and chunky bacon",
  "courier_information": "go go go; now now now",
  "external_id": "AABBCC",
  "web_hook_url": null,
  "hazard_index": 0,
  "service_area_identifier": "berlin",
  "identifier": "FEGVZP",
  "timezone": "Europe/Berlin",
  "state": "delivery_failed",
  "delivery_type": "standard",
  "created_at": "2012-04-16T05:00:00+02:00",
  "dispatched_at": "2012-04-16T05:05:00+02:00",
  "picked_up_at": "2012-04-16T07:10:00+02:00",
  "pickup_failed_at": null,
  "delivered_to": null,
  "delivered_at": null,
  "delivery_failed_at": "2012-04-16T09:00:00+02:00",
  "returned_at": null,
  "cancelled_at": null,
  "cancellation_reason": null,
  "tracking_url": "http://www.tiramizoo.com/orders/FI4FH5L1HXQU8/tracking_status?locale=en",
  "tracking_code": "FI4FH-5L1H-XQU8",
  "cancellable": false,
  "pickup": {
    "name": "I.P. Freely",
    "phone_number": "30049223333",
    "email": null,
    "address_line": "Im Dol 2",
    "city": "Berlin",
    "postal_code": "14195",
    "country_code": "de",
    "after": "2012-04-16T07:00:00+02:00",
    "before": "2012-04-16T07:30:00+02:00",
    "requirements": [],
    "information": "go go go",
    "eta": null
  },
  "delivery": {
    "name": "Mike Rotch",
    "phone_number": "30049224444",
    "email": null,
    "address_line": "Im Dol 48",
    "city": "Berlin",
    "postal_code": "14195",
    "country_code": "de",
    "after": "2012-04-16T07:30:00+02:00",
    "before": "2012-04-16T09:00:00+02:00",
    "requirements": [],
    "information": "now now now",
    "eta": null
  },
  "packages": [
    {
      "width": 10,
      "height": 20,
      "length": 30,
      "weight": 5,
      "quantity": 1,
      "description": "A fish",
      "category": null,
      "identifier": "C222A7F4F684BF22",
      "unpackable": false,
      "non_rotatable": false,
      "external_id": null,
      "barcode": {
        "symbology": "QR Code",
        "data": "C222A7F4F684BF22",
        "url": "http://www.tiramizoo.com/api/v1/barcodes/C222A7F4F684BF22.png"
      },
      "state": "not_delivered"
    }
  ],
  "signature": {
    "url": null,
    "name": null
  },
  "labels_url": "http://www.tiramizoo.com/orders/FI4FH5L1HXQU8/labels.pdf",
  "events": [
    {
      "retry_at": null,
      "type": "abort_delivery",
      "recorded_at": "2012-04-16T09:00:00+02:00",
      "signature": {
        "url": null,
        "name": null
      },
      "photo_proof": {
        "url": null,
        "name": null
      },
      "current_state": "delivery_failed"
    }
  ],
  "history": [
    {
      "retry_at": null,
      "type": "abort_delivery",
      "recorded_at": "2012-04-16T09:00:00+02:00",
      "signature": {
        "url": null,
        "name": null
      },
      "photo_proof": {
        "url": null,
        "name": null
      },
      "current_state": "delivery_failed"
    }
  ],
  "courier_company_identifier": "QCQ9NT",
  "courier_company_name": null,
  "courier_identifier": null,
  "courier_name": null,
  "tour_identifier": null
}

Return process

Return process is activated in case order has been picked up, but for some reason it can not be delivered.
By default order will be delivered to pickup location in next 24 hours.

States involved

  • delivery_failed - courier went to delivery location but couldn’t deliver. Delivery is gonna be returned to pickup location

  • returned - courier returned delivery to pickup location

Additional information

When courier fails to deliver order state changes to delivery_failed and events parameter contains failure details

{
  // ...
  "state": "delivery_failed"
  "events": [
    type: "package_was_not_ordered",
    recorded_at: "2015-05-27T14:25:37+02:00",
    signature_name: "Bob Obbay",
    signature_url: "http://sandbox.tiramizoo.com/courier_api/v1/signatures/16e813d2-e054-4901-8b06-b8f7102f10fb.png"
  ]
  // ...
}

Possible delivery failure reasons (event types):

  • abort_delivery

  • address_not_found

  • failed_due_to_business_closed

  • name_not_found_on_doorbell

  • no_attempt_due_to_being_late

  • not_enough_money_for_payment

  • package_is_damaged

  • package_was_delivered_too_late

  • package_was_not_accepted

  • package_was_not_ordered

  • recipient_was_not_at_home

Quotes

Create quote

The Quotes API provides an easy way to verify service availability and packages.

Basic
POST/quotes

Basic: Service availability based on pickup and delivery postal code


Attribute name Type Required Description
api_token string Authentication token
pickup_country_code string X Pickup country code
pickup_postal_code string X Pickup postal code
delivery_country_code string X Delivery country code
delivery_postal_code string X Delivery postal code
packages: array Packages

weight

number Package weight

height

number Package height

width

number Package width

length

number Package length

quantity

number Quantity

description

string Package description

Example URI

POST https://sandbox.tiramizoo.com/api/v1/quotes
Request
HideShow
Headers
Content-Type: application/json
Body
{
  "api_token": "jksdorj23hh",
  "pickup_country_code": "de",
  "pickup_postal_code": "14195",
  "delivery_country_code": "de",
  "delivery_postal_code": "14195",
  "packages": [
    {
      "weight": 5,
      "height": 20,
      "width": 10,
      "length": 30,
      "quantity": 30,
      "description": "Big pack"
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "api_token": {
      "type": "string",
      "description": "Authentication token"
    },
    "pickup_country_code": {
      "type": "string",
      "description": "Pickup country code"
    },
    "pickup_postal_code": {
      "type": "string",
      "description": "Pickup postal code"
    },
    "delivery_country_code": {
      "type": "string",
      "description": "Delivery country code"
    },
    "delivery_postal_code": {
      "type": "string",
      "description": "Delivery postal code"
    },
    "packages": {
      "type": "array",
      "description": "order packages"
    }
  },
  "required": [
    "pickup_country_code",
    "pickup_postal_code",
    "delivery_country_code",
    "delivery_postal_code"
  ]
}
Response  200
HideShow
Body
{
  "express_availability": {
    "from": "2018-04-13T14:10:00Z",
    "to": "2018-04-13T18:00:00Z",
    "earliest_possible_order_time": "2018-04-13T14:10:00Z",
    "latest_possible_order_time": "2018-04-13T16:00:00Z",
    "length": 120,
    "cut_off": 0
  },
  "express_time_window_length": 120,
  "time_windows": [
    {
      "delivery_type": "express",
      "cut_off": 0,
      "cut_off_two_man_handling": 0,
      "weekend": false,
      "preferred": true,
      "pickup": {
        "from": "2018-04-13T14:10:00Z",
        "to": "2018-04-13T16:10:00Z"
      },
      "delivery": {
        "from": "2018-04-13T14:10:00Z",
        "to": "2018-04-13T16:10:00Z"
      },
      "price": "10.0",
      "order_limit_exceeded": false,
      "order_near_limit_exceeded": false,
      "used_availability_percentage": 0,
      "availability": "open"
    },
    {
      "delivery_type": "standard",
      "cut_off": 60,
      "cut_off_two_man_handling": 240,
      "weekend": false,
      "preferred": true,
      "pickup": {
        "from": "2018-04-13T16:00:00Z",
        "to": "2018-04-13T18:00:00Z"
      },
      "delivery": {
        "from": "2018-04-13T16:00:00Z",
        "to": "2018-04-13T18:00:00Z"
      },
      "price": "10.0",
      "order_limit_exceeded": false,
      "order_near_limit_exceeded": false,
      "used_availability_percentage": 0,
      "availability": "open"
    }
  ]
}

Advanced
POST/quotes

Advanced: Service availability including addresses verification


Attribute name Type Required Description
api_token string Authentication token
pickup: object X Pickup data

address_line

string Sender’s address

country_code

string X Sender’s country code

postal_code

string X Sender’s postal code

city

string Sender’s city
delivery: object X Pickup data

address_line

string Recipient’s address

country_code

string X Recipient’s country code

postal_code

string X Recipient’s postal code

city

string Recipient’s city
packages: array Packages

weight

number Package weight

height

number Package height

width

number Package width

length

number Package length

quantity

number Quantity

description

string Package description

Example URI

POST https://sandbox.tiramizoo.com/api/v1/quotes
Request
HideShow
Headers
Content-Type: application/json
Body
{
  "api_token": "jksdorj23hh",
  "pickup": {
    "address_line": "Im Dol 2",
    "country_code": "de",
    "postal_code": "14195",
    "city": "Berlin"
  },
  "delivery": {
    "address_line": "Im Dol 2",
    "country_code": "de",
    "postal_code": "14195",
    "city": "Berlin"
  },
  "packages": [
    {
      "weight": 5,
      "height": 20,
      "width": 10,
      "length": 30,
      "quantity": 30,
      "description": "Big pack"
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "api_token": {
      "type": "string",
      "description": "Authentication token"
    },
    "pickup": {
      "type": "object",
      "properties": {
        "address_line": {
          "type": "string",
          "description": "Sender's address"
        },
        "country_code": {
          "type": "string",
          "description": "Sender's country code"
        },
        "postal_code": {
          "type": "string",
          "description": "Sender's postal code"
        },
        "city": {
          "type": "string",
          "description": "Sender's city"
        }
      },
      "required": [
        "country_code",
        "postal_code"
      ],
      "description": "pickup data"
    },
    "delivery": {
      "type": "object",
      "properties": {
        "address_line": {
          "type": "string",
          "description": "Recipient's address"
        },
        "country_code": {
          "type": "string",
          "description": "Recipient's country code"
        },
        "postal_code": {
          "type": "string",
          "description": "Recipient's postal code"
        },
        "city": {
          "type": "string",
          "description": "Recipient's city"
        }
      },
      "required": [
        "country_code",
        "postal_code"
      ],
      "description": "delivery data"
    },
    "packages": {
      "type": "array",
      "description": "order packages"
    }
  },
  "required": [
    "pickup",
    "delivery"
  ]
}
Response  200
HideShow

For specific pricing setup, we are also able to display order price and vehicle type.
For more information please contact support@tiramizoo.com.

Body
{
  "express_availability": {
    "from": "2018-04-13T14:10:00Z",
    "to": "2018-04-13T18:00:00Z",
    "earliest_possible_order_time": "2018-04-13T14:10:00Z",
    "latest_possible_order_time": "2018-04-13T16:00:00Z",
    "length": 120,
    "cut_off": 0
  },
  "express_time_window_length": 120,
  "time_windows": [
    {
      "delivery_type": "express",
      "cut_off": 0,
      "cut_off_two_man_handling": 0,
      "weekend": false,
      "preferred": true,
      "pickup": {
        "from": "2018-04-13T14:10:00Z",
        "to": "2018-04-13T16:10:00Z"
      },
      "delivery": {
        "from": "2018-04-13T14:10:00Z",
        "to": "2018-04-13T16:10:00Z"
      },
      "price": 12.4,
      "order_limit_exceeded": false,
      "order_near_limit_exceeded": false,
      "used_availability_percentage": 0,
      "availability": "open",
      "vehicle_type": "cargobike"
    },
    {
      "delivery_type": "standard",
      "cut_off": 60,
      "cut_off_two_man_handling": 240,
      "weekend": false,
      "preferred": true,
      "pickup": {
        "from": "2018-04-13T16:00:00Z",
        "to": "2018-04-13T18:00:00Z"
      },
      "delivery": {
        "from": "2018-04-13T16:00:00Z",
        "to": "2018-04-13T18:00:00Z"
      },
      "price": 12,
      "order_limit_exceeded": false,
      "order_near_limit_exceeded": false,
      "used_availability_percentage": 0,
      "availability": "open",
      "vehicle_type": "cargobike"
    }
  ]
}
Response  429
HideShow

Too many requests, please retry request in 30 seconds.

Service Areas

List Service Areas

List Service Areas
GET/service_areas{?api_token,standard_from,standard_to}

The API returns service_areas with postal codes and time windows (limited be default to next 7 days).

Example URI

GET https://sandbox.tiramizoo.com/api/v1/service_areas?api_token=b612a4efd56151b5c0f79bd5631f0ad1&standard_from=2018-04-10T08:29:00Z&standard_to=2018-04-15T08:29:00Z
URI Parameters
HideShow
api_token
string (required) Example: b612a4efd56151b5c0f79bd5631f0ad1

Authentication token

standard_from
string (optional) Example: 2018-04-10T08:29:00Z

Date and time as UTC in ISO 8601 format. Does not need to be provided together with standard to. Allows to specify start time for standard time windows.

standard_to
string (optional) Example: 2018-04-15T08:29:00Z

Date and time as UTC in ISO 8601 format. Does not need to be provided together with standard from parameter, in this case standard from is set to current time. Allows to specify end time for express time windows. Can not exceed 7 days limit.

Request
HideShow
Headers
Content-Type: application/json
Response  200
HideShow
Body
[
  {
    "identifier": "berlin",
    "name": "Berlin",
    "time_zone": "Europe/Berlin",
    "coverage_map_thumbnail_url": null,
    "coverage_map_url": null,
    "postal_codes": [
      "12437",
      "14195"
    ],
    "postal_codes_country_codes": [
      {
        "postal_code": "12437",
        "country_code": "de"
      },
      {
        "postal_code": "14195",
        "country_code": "de"
      }
    ],
    "express_availability": {
      "from": "2018-04-10T08:39:00Z",
      "to": "2018-04-10T16:00:00Z",
      "earliest_possible_order_time": "2018-04-10T08:39:00Z",
      "latest_possible_order_time": "2018-04-10T14:00:00Z",
      "length": 120,
      "cut_off": 0
    },
    "express_time_window_length": 120,
    "special_days": [],
    "time_windows": [
      {
        "delivery_type": "express",
        "cut_off": 0,
        "cut_off_two_man_handling": 0,
        "weekend": false,
        "availability": "open",
        "preferred": true,
        "pickup": {
          "from": "2018-04-10T08:39:00Z",
          "to": "2018-04-10T10:39:00Z"
        },
        "delivery": {
          "from": "2018-04-10T08:39:00Z",
          "to": "2018-04-10T10:39:00Z"
        }
      },
      {
        "delivery_type": "standard",
        "cut_off": 60,
        "cut_off_two_man_handling": 240,
        "weekend": false,
        "availability": "open",
        "preferred": true,
        "pickup": {
          "from": "2018-04-10T10:00:00Z",
          "to": "2018-04-10T12:00:00Z"
        },
        "delivery": {
          "from": "2018-04-10T10:00:00Z",
          "to": "2018-04-10T12:00:00Z"
        }
      },
      {
        "delivery_type": "standard",
        "cut_off": 60,
        "cut_off_two_man_handling": 240,
        "weekend": false,
        "availability": "open",
        "preferred": true,
        "pickup": {
          "from": "2018-04-10T11:00:00Z",
          "to": "2018-04-10T13:00:00Z"
        },
        "delivery": {
          "from": "2018-04-10T11:00:00Z",
          "to": "2018-04-10T13:00:00Z"
        }
      },
      {
        "delivery_type": "standard",
        "cut_off": 60,
        "cut_off_two_man_handling": 240,
        "weekend": false,
        "availability": "open",
        "preferred": true,
        "pickup": {
          "from": "2018-04-10T12:00:00Z",
          "to": "2018-04-10T14:00:00Z"
        },
        "delivery": {
          "from": "2018-04-10T12:00:00Z",
          "to": "2018-04-10T14:00:00Z"
        }
      },
      {
        "delivery_type": "standard",
        "cut_off": 60,
        "cut_off_two_man_handling": 240,
        "weekend": false,
        "availability": "open",
        "preferred": true,
        "pickup": {
          "from": "2018-04-10T13:00:00Z",
          "to": "2018-04-10T15:00:00Z"
        },
        "delivery": {
          "from": "2018-04-10T13:00:00Z",
          "to": "2018-04-10T15:00:00Z"
        }
      },
      {
        "delivery_type": "standard",
        "cut_off": 60,
        "cut_off_two_man_handling": 240,
        "weekend": false,
        "availability": "open",
        "preferred": true,
        "pickup": {
          "from": "2018-04-10T14:00:00Z",
          "to": "2018-04-10T16:00:00Z"
        },
        "delivery": {
          "from": "2018-04-10T14:00:00Z",
          "to": "2018-04-10T16:00:00Z"
        }
      },
      {
        "delivery_type": "standard",
        "cut_off": 60,
        "cut_off_two_man_handling": 240,
        "weekend": false,
        "availability": "open",
        "preferred": true,
        "pickup": {
          "from": "2018-04-10T15:00:00Z",
          "to": "2018-04-10T17:00:00Z"
        },
        "delivery": {
          "from": "2018-04-10T15:00:00Z",
          "to": "2018-04-10T17:00:00Z"
        }
      },
      {
        "delivery_type": "standard",
        "cut_off": 60,
        "cut_off_two_man_handling": 240,
        "weekend": false,
        "availability": "open",
        "preferred": true,
        "pickup": {
          "from": "2018-04-10T16:00:00Z",
          "to": "2018-04-10T18:00:00Z"
        },
        "delivery": {
          "from": "2018-04-10T16:00:00Z",
          "to": "2018-04-10T18:00:00Z"
        }
      }
    ]
  }
]

Show Service Area

Show Service Area
GET/service_areas/{postal_code}{?api_token,country_code,standard_from,standard_to}

The API returns first service area which contains postal_code. Service area is returned with time windows (limited be default to next 7 days)

Example URI

GET https://sandbox.tiramizoo.com/api/v1/service_areas/14195?api_token=b612a4efd56151b5c0f79bd5631f0ad1&country_code=de&standard_from=2018-04-10T08:29:00Z&standard_to=2018-04-12T12:00:00Z
URI Parameters
HideShow
postal_code
string (required) Example: 14195

Postal code which belongs to desired service area

api_token
string (required) Example: b612a4efd56151b5c0f79bd5631f0ad1

Authentication token

country_code
string (optional) Example: de

Country code. If omitted, de will be taken as the default

standard_from
string (optional) Example: 2018-04-10T08:29:00Z

Date and time as UTC in ISO8601 Date URI escaped format. Does not need to be provided together with standard to. Allows to specify start time for standard time windows.

standard_to
string (optional) Example: 2018-04-12T12:00:00Z

Date and time as UTC in ISO8601 Date URI escaped format. Does not need to be provided together with standard from parameter, in this case standard from is set to current time. Allows to specify end time for express time windows. Can not exceed 7 days limit.

Request
HideShow
Headers
Content-Type: application/json
Response  200
HideShow
Body
[
  {
    "identifier": "berlin",
    "name": "Berlin",
    "time_zone": "Europe/Berlin",
    "coverage_map_thumbnail_url": null,
    "coverage_map_url": null,
    "postal_codes": [
      "12437",
      "14195"
    ],
    "postal_codes_country_codes": [
      {
        "postal_code": "12437",
        "country_code": "de"
      },
      {
        "postal_code": "14195",
        "country_code": "de"
      }
    ],
    "express_availability": {
      "from": "2018-04-10T08:39:00Z",
      "to": "2018-04-10T16:00:00Z",
      "earliest_possible_order_time": "2018-04-10T08:39:00Z",
      "latest_possible_order_time": "2018-04-10T14:00:00Z",
      "length": 120,
      "cut_off": 0
    },
    "express_time_window_length": 120,
    "special_days": [
      {
        "date": "2018-04-12",
        "closed": false,
        "open_from": "2018-04-12T10:00:00Z",
        "open_to": "2018-04-12T11:00:00Z"
      }
    ],
    "time_windows": [
      {
        "delivery_type": "express",
        "cut_off": 0,
        "cut_off_two_man_handling": 0,
        "weekend": false,
        "availability": "open",
        "preferred": true,
        "pickup": {
          "from": "2018-04-10T08:39:00Z",
          "to": "2018-04-10T10:39:00Z"
        },
        "delivery": {
          "from": "2018-04-10T08:39:00Z",
          "to": "2018-04-10T10:39:00Z"
        }
      },
      {
        "delivery_type": "standard",
        "cut_off": 30,
        "cut_off_two_man_handling": 240,
        "weekend": false,
        "availability": "open",
        "preferred": true,
        "pickup": {
          "from": "2018-04-11T07:00:00Z",
          "to": "2018-04-11T09:00:00Z"
        },
        "delivery": {
          "from": "2018-04-11T07:00:00Z",
          "to": "2018-04-11T09:00:00Z"
        }
      }
    ]
  }
]

Time Windows

List Time Windows

List Time Windows
GET/time_windows{?api_token,service_area_identifier,from_date,to_date}

The API returns time windows (limited be default to next 7 days).

Example URI

GET https://sandbox.tiramizoo.com/api/v1/time_windows?api_token=b612a4efd56151b5c0f79bd5631f0ad1&service_area_identifier=berlin&from_date=2018-04-10T08:29:00Z&to_date=2018-04-15T08:29:00Z
URI Parameters
HideShow
api_token
string (required) Example: b612a4efd56151b5c0f79bd5631f0ad1

Authentication token

service_area_identifier
string (required) Example: berlin

Service area

from_date
string (optional) Example: 2018-04-10T08:29:00Z

Date and time as UTC in ISO 8601 format. Does not need to be provided together with to_date. Allows to specify start time for time windows.

to_date
string (optional) Example: 2018-04-15T08:29:00Z

Date and time as UTC in ISO 8601 format. Does not need to be provided together with from_date parameter, in this case from_date is set to current time. Allows to specify end time for time windows. Can not exceed 7 days limit.

Request
HideShow
Headers
Content-Type: application/json
Response  200
HideShow
Body
[
  {
    "delivery_type": "express",
    "cut_off": 0,
    "cut_off_two_man_handling": 0,
    "weekend": false,
    "order_limit_exceeded": false,
    "order_near_limit_exceeded": false,
    "used_availability_percentage": 0,
    "availability": "open",
    "precalculation_in_progress": false,
    "price": "10.0",
    "preferred": true,
    "pickup": {
      "from": "2019-02-18T07:10:00Z",
      "to": "2019-02-18T09:10:00Z"
    },
    "delivery": {
      "from": "2019-02-18T07:10:00Z",
      "to": "2019-02-18T09:10:00Z"
    },
    "max_delivery_available_km": 35
  },
  {
    "delivery_type": "standard",
    "cut_off": 60,
    "cut_off_two_man_handling": 240,
    "weekend": false,
    "order_limit_exceeded": false,
    "order_near_limit_exceeded": false,
    "used_availability_percentage": 0,
    "availability": "open",
    "precalculation_in_progress": false,
    "price": "10.0",
    "preferred": true,
    "pickup": {
      "from": "2019-02-18T09:00:00Z",
      "to": "2019-02-18T11:00:00Z"
    },
    "delivery": {
      "from": "2019-02-18T09:00:00Z",
      "to": "2019-02-18T11:00:00Z"
    },
    "max_delivery_available_km": 35
  },
  {
    "delivery_type": "standard",
    "cut_off": 60,
    "cut_off_two_man_handling": 240,
    "weekend": false,
    "order_limit_exceeded": false,
    "order_near_limit_exceeded": false,
    "used_availability_percentage": 0,
    "availability": "open",
    "precalculation_in_progress": false,
    "price": "10.0",
    "preferred": true,
    "pickup": {
      "from": "2019-02-18T10:00:00Z",
      "to": "2019-02-18T12:00:00Z"
    },
    "delivery": {
      "from": "2019-02-18T10:00:00Z",
      "to": "2019-02-18T12:00:00Z"
    },
    "max_delivery_available_km": 35
  },
  {
    "delivery_type": "standard",
    "cut_off": 60,
    "cut_off_two_man_handling": 240,
    "weekend": false,
    "order_limit_exceeded": false,
    "order_near_limit_exceeded": false,
    "used_availability_percentage": 0,
    "availability": "open",
    "precalculation_in_progress": false,
    "price": "10.0",
    "preferred": true,
    "pickup": {
      "from": "2019-02-18T11:00:00Z",
      "to": "2019-02-18T13:00:00Z"
    },
    "delivery": {
      "from": "2019-02-18T11:00:00Z",
      "to": "2019-02-18T13:00:00Z"
    },
    "max_delivery_available_km": 35
  },
  {
    "delivery_type": "standard",
    "cut_off": 60,
    "cut_off_two_man_handling": 240,
    "weekend": false,
    "order_limit_exceeded": false,
    "order_near_limit_exceeded": false,
    "used_availability_percentage": 0,
    "availability": "open",
    "precalculation_in_progress": false,
    "price": "10.0",
    "preferred": true,
    "pickup": {
      "from": "2019-02-18T12:00:00Z",
      "to": "2019-02-18T14:00:00Z"
    },
    "delivery": {
      "from": "2019-02-18T12:00:00Z",
      "to": "2019-02-18T14:00:00Z"
    },
    "max_delivery_available_km": 35
  },
  {
    "delivery_type": "standard",
    "cut_off": 60,
    "cut_off_two_man_handling": 240,
    "weekend": false,
    "order_limit_exceeded": false,
    "order_near_limit_exceeded": false,
    "used_availability_percentage": 0,
    "availability": "open",
    "precalculation_in_progress": false,
    "price": "10.0",
    "preferred": true,
    "pickup": {
      "from": "2019-02-18T13:00:00Z",
      "to": "2019-02-18T15:00:00Z"
    },
    "delivery": {
      "from": "2019-02-18T13:00:00Z",
      "to": "2019-02-18T15:00:00Z"
    },
    "max_delivery_available_km": 35
  },
  {
    "delivery_type": "standard",
    "cut_off": 60,
    "cut_off_two_man_handling": 240,
    "weekend": false,
    "order_limit_exceeded": false,
    "order_near_limit_exceeded": false,
    "used_availability_percentage": 0,
    "availability": "open",
    "precalculation_in_progress": false,
    "price": "10.0",
    "preferred": true,
    "pickup": {
      "from": "2019-02-18T14:00:00Z",
      "to": "2019-02-18T16:00:00Z"
    },
    "delivery": {
      "from": "2019-02-18T14:00:00Z",
      "to": "2019-02-18T16:00:00Z"
    },
    "max_delivery_available_km": 35
  },
  {
    "delivery_type": "standard",
    "cut_off": 60,
    "cut_off_two_man_handling": 240,
    "weekend": false,
    "order_limit_exceeded": false,
    "order_near_limit_exceeded": false,
    "used_availability_percentage": 0,
    "availability": "open",
    "precalculation_in_progress": false,
    "price": "10.0",
    "preferred": true,
    "pickup": {
      "from": "2019-02-18T15:00:00Z",
      "to": "2019-02-18T17:00:00Z"
    },
    "delivery": {
      "from": "2019-02-18T15:00:00Z",
      "to": "2019-02-18T17:00:00Z"
    },
    "max_delivery_available_km": 35
  },
  {
    "delivery_type": "standard",
    "cut_off": 60,
    "cut_off_two_man_handling": 240,
    "weekend": false,
    "order_limit_exceeded": false,
    "order_near_limit_exceeded": false,
    "used_availability_percentage": 0,
    "availability": "open",
    "precalculation_in_progress": false,
    "price": "10.0",
    "preferred": true,
    "pickup": {
      "from": "2019-02-18T16:00:00Z",
      "to": "2019-02-18T18:00:00Z"
    },
    "delivery": {
      "from": "2019-02-18T16:00:00Z",
      "to": "2019-02-18T18:00:00Z"
    },
    "max_delivery_available_km": 35
  },
  {
    "delivery_type": "standard",
    "cut_off": 60,
    "cut_off_two_man_handling": 240,
    "weekend": false,
    "order_limit_exceeded": false,
    "order_near_limit_exceeded": false,
    "used_availability_percentage": 0,
    "availability": "open",
    "precalculation_in_progress": false,
    "price": "10.0",
    "preferred": true,
    "pickup": {
      "from": "2019-02-18T17:00:00Z",
      "to": "2019-02-18T19:00:00Z"
    },
    "delivery": {
      "from": "2019-02-18T17:00:00Z",
      "to": "2019-02-18T19:00:00Z"
    },
    "max_delivery_available_km": 35
  },
  {
    "delivery_type": "standard",
    "cut_off": 60,
    "cut_off_two_man_handling": 240,
    "weekend": false,
    "order_limit_exceeded": false,
    "order_near_limit_exceeded": false,
    "used_availability_percentage": 0,
    "availability": "open",
    "precalculation_in_progress": false,
    "price": "10.0",
    "preferred": true,
    "pickup": {
      "from": "2019-02-19T07:00:00Z",
      "to": "2019-02-19T09:00:00Z"
    },
    "delivery": {
      "from": "2019-02-19T07:00:00Z",
      "to": "2019-02-19T09:00:00Z"
    },
    "max_delivery_available_km": 35
  },
  {
    "delivery_type": "standard",
    "cut_off": 60,
    "cut_off_two_man_handling": 240,
    "weekend": false,
    "order_limit_exceeded": false,
    "order_near_limit_exceeded": false,
    "used_availability_percentage": 0,
    "availability": "open",
    "precalculation_in_progress": false,
    "price": "10.0",
    "preferred": true,
    "pickup": {
      "from": "2019-02-19T08:00:00Z",
      "to": "2019-02-19T10:00:00Z"
    },
    "delivery": {
      "from": "2019-02-19T08:00:00Z",
      "to": "2019-02-19T10:00:00Z"
    },
    "max_delivery_available_km": 35
  },
  {
    "delivery_type": "standard",
    "cut_off": 60,
    "cut_off_two_man_handling": 240,
    "weekend": false,
    "order_limit_exceeded": false,
    "order_near_limit_exceeded": false,
    "used_availability_percentage": 0,
    "availability": "open",
    "precalculation_in_progress": false,
    "price": "10.0",
    "preferred": true,
    "pickup": {
      "from": "2019-02-19T09:00:00Z",
      "to": "2019-02-19T11:00:00Z"
    },
    "delivery": {
      "from": "2019-02-19T09:00:00Z",
      "to": "2019-02-19T11:00:00Z"
    },
    "max_delivery_available_km": 35
  },
  {
    "delivery_type": "standard",
    "cut_off": 60,
    "cut_off_two_man_handling": 240,
    "weekend": false,
    "order_limit_exceeded": false,
    "order_near_limit_exceeded": false,
    "used_availability_percentage": 0,
    "availability": "open",
    "precalculation_in_progress": false,
    "price": "10.0",
    "preferred": true,
    "pickup": {
      "from": "2019-02-19T10:00:00Z",
      "to": "2019-02-19T12:00:00Z"
    },
    "delivery": {
      "from": "2019-02-19T10:00:00Z",
      "to": "2019-02-19T12:00:00Z"
    },
    "max_delivery_available_km": 35
  },
  {
    "delivery_type": "standard",
    "cut_off": 60,
    "cut_off_two_man_handling": 240,
    "weekend": false,
    "order_limit_exceeded": false,
    "order_near_limit_exceeded": false,
    "used_availability_percentage": 0,
    "availability": "open",
    "precalculation_in_progress": false,
    "price": "10.0",
    "preferred": true,
    "pickup": {
      "from": "2019-02-19T11:00:00Z",
      "to": "2019-02-19T13:00:00Z"
    },
    "delivery": {
      "from": "2019-02-19T11:00:00Z",
      "to": "2019-02-19T13:00:00Z"
    },
    "max_delivery_available_km": 35
  },
  {
    "delivery_type": "standard",
    "cut_off": 60,
    "cut_off_two_man_handling": 240,
    "weekend": false,
    "order_limit_exceeded": false,
    "order_near_limit_exceeded": false,
    "used_availability_percentage": 0,
    "availability": "open",
    "precalculation_in_progress": false,
    "price": "10.0",
    "preferred": true,
    "pickup": {
      "from": "2019-02-19T12:00:00Z",
      "to": "2019-02-19T14:00:00Z"
    },
    "delivery": {
      "from": "2019-02-19T12:00:00Z",
      "to": "2019-02-19T14:00:00Z"
    },
    "max_delivery_available_km": 35
  },
  {
    "delivery_type": "standard",
    "cut_off": 60,
    "cut_off_two_man_handling": 240,
    "weekend": false,
    "order_limit_exceeded": false,
    "order_near_limit_exceeded": false,
    "used_availability_percentage": 0,
    "availability": "open",
    "precalculation_in_progress": false,
    "price": "10.0",
    "preferred": true,
    "pickup": {
      "from": "2019-02-19T13:00:00Z",
      "to": "2019-02-19T15:00:00Z"
    },
    "delivery": {
      "from": "2019-02-19T13:00:00Z",
      "to": "2019-02-19T15:00:00Z"
    },
    "max_delivery_available_km": 35
  },
  {
    "delivery_type": "standard",
    "cut_off": 60,
    "cut_off_two_man_handling": 240,
    "weekend": false,
    "order_limit_exceeded": false,
    "order_near_limit_exceeded": false,
    "used_availability_percentage": 0,
    "availability": "open",
    "precalculation_in_progress": false,
    "price": "10.0",
    "preferred": true,
    "pickup": {
      "from": "2019-02-19T14:00:00Z",
      "to": "2019-02-19T16:00:00Z"
    },
    "delivery": {
      "from": "2019-02-19T14:00:00Z",
      "to": "2019-02-19T16:00:00Z"
    },
    "max_delivery_available_km": 35
  },
  {
    "delivery_type": "standard",
    "cut_off": 60,
    "cut_off_two_man_handling": 240,
    "weekend": false,
    "order_limit_exceeded": false,
    "order_near_limit_exceeded": false,
    "used_availability_percentage": 0,
    "availability": "open",
    "precalculation_in_progress": false,
    "price": "10.0",
    "preferred": true,
    "pickup": {
      "from": "2019-02-19T15:00:00Z",
      "to": "2019-02-19T17:00:00Z"
    },
    "delivery": {
      "from": "2019-02-19T15:00:00Z",
      "to": "2019-02-19T17:00:00Z"
    },
    "max_delivery_available_km": 35
  },
  {
    "delivery_type": "standard",
    "cut_off": 60,
    "cut_off_two_man_handling": 240,
    "weekend": false,
    "order_limit_exceeded": false,
    "order_near_limit_exceeded": false,
    "used_availability_percentage": 0,
    "availability": "open",
    "precalculation_in_progress": false,
    "price": "10.0",
    "preferred": true,
    "pickup": {
      "from": "2019-02-19T16:00:00Z",
      "to": "2019-02-19T18:00:00Z"
    },
    "delivery": {
      "from": "2019-02-19T16:00:00Z",
      "to": "2019-02-19T18:00:00Z"
    },
    "max_delivery_available_km": 35
  },
  {
    "delivery_type": "standard",
    "cut_off": 60,
    "cut_off_two_man_handling": 240,
    "weekend": false,
    "order_limit_exceeded": false,
    "order_near_limit_exceeded": false,
    "used_availability_percentage": 0,
    "availability": "open",
    "precalculation_in_progress": false,
    "price": "10.0",
    "preferred": true,
    "pickup": {
      "from": "2019-02-19T17:00:00Z",
      "to": "2019-02-19T19:00:00Z"
    },
    "delivery": {
      "from": "2019-02-19T17:00:00Z",
      "to": "2019-02-19T19:00:00Z"
    },
    "max_delivery_available_km": 35
  },
  {
    "delivery_type": "standard",
    "cut_off": 60,
    "cut_off_two_man_handling": 240,
    "weekend": false,
    "order_limit_exceeded": false,
    "order_near_limit_exceeded": false,
    "used_availability_percentage": 0,
    "availability": "open",
    "precalculation_in_progress": false,
    "price": "10.0",
    "preferred": true,
    "pickup": {
      "from": "2019-02-20T07:00:00Z",
      "to": "2019-02-20T09:00:00Z"
    },
    "delivery": {
      "from": "2019-02-20T07:00:00Z",
      "to": "2019-02-20T09:00:00Z"
    },
    "max_delivery_available_km": 35
  },
  {
    "delivery_type": "standard",
    "cut_off": 60,
    "cut_off_two_man_handling": 240,
    "weekend": false,
    "order_limit_exceeded": false,
    "order_near_limit_exceeded": false,
    "used_availability_percentage": 0,
    "availability": "open",
    "precalculation_in_progress": false,
    "price": "10.0",
    "preferred": true,
    "pickup": {
      "from": "2019-02-20T08:00:00Z",
      "to": "2019-02-20T10:00:00Z"
    },
    "delivery": {
      "from": "2019-02-20T08:00:00Z",
      "to": "2019-02-20T10:00:00Z"
    },
    "max_delivery_available_km": 35
  },
  {
    "delivery_type": "standard",
    "cut_off": 60,
    "cut_off_two_man_handling": 240,
    "weekend": false,
    "order_limit_exceeded": false,
    "order_near_limit_exceeded": false,
    "used_availability_percentage": 0,
    "availability": "open",
    "precalculation_in_progress": false,
    "price": "10.0",
    "preferred": true,
    "pickup": {
      "from": "2019-02-20T09:00:00Z",
      "to": "2019-02-20T11:00:00Z"
    },
    "delivery": {
      "from": "2019-02-20T09:00:00Z",
      "to": "2019-02-20T11:00:00Z"
    },
    "max_delivery_available_km": 35
  },
  {
    "delivery_type": "standard",
    "cut_off": 60,
    "cut_off_two_man_handling": 240,
    "weekend": false,
    "order_limit_exceeded": false,
    "order_near_limit_exceeded": false,
    "used_availability_percentage": 0,
    "availability": "open",
    "precalculation_in_progress": false,
    "price": "10.0",
    "preferred": true,
    "pickup": {
      "from": "2019-02-20T10:00:00Z",
      "to": "2019-02-20T12:00:00Z"
    },
    "delivery": {
      "from": "2019-02-20T10:00:00Z",
      "to": "2019-02-20T12:00:00Z"
    },
    "max_delivery_available_km": 35
  },
  {
    "delivery_type": "standard",
    "cut_off": 60,
    "cut_off_two_man_handling": 240,
    "weekend": false,
    "order_limit_exceeded": false,
    "order_near_limit_exceeded": false,
    "used_availability_percentage": 0,
    "availability": "open",
    "precalculation_in_progress": false,
    "price": "10.0",
    "preferred": true,
    "pickup": {
      "from": "2019-02-20T11:00:00Z",
      "to": "2019-02-20T13:00:00Z"
    },
    "delivery": {
      "from": "2019-02-20T11:00:00Z",
      "to": "2019-02-20T13:00:00Z"
    },
    "max_delivery_available_km": 35
  },
  {
    "delivery_type": "standard",
    "cut_off": 60,
    "cut_off_two_man_handling": 240,
    "weekend": false,
    "order_limit_exceeded": false,
    "order_near_limit_exceeded": false,
    "used_availability_percentage": 0,
    "availability": "open",
    "precalculation_in_progress": false,
    "price": "10.0",
    "preferred": true,
    "pickup": {
      "from": "2019-02-20T12:00:00Z",
      "to": "2019-02-20T14:00:00Z"
    },
    "delivery": {
      "from": "2019-02-20T12:00:00Z",
      "to": "2019-02-20T14:00:00Z"
    },
    "max_delivery_available_km": 35
  },
  {
    "delivery_type": "standard",
    "cut_off": 60,
    "cut_off_two_man_handling": 240,
    "weekend": false,
    "order_limit_exceeded": false,
    "order_near_limit_exceeded": false,
    "used_availability_percentage": 0,
    "availability": "open",
    "precalculation_in_progress": false,
    "price": "10.0",
    "preferred": true,
    "pickup": {
      "from": "2019-02-20T13:00:00Z",
      "to": "2019-02-20T15:00:00Z"
    },
    "delivery": {
      "from": "2019-02-20T13:00:00Z",
      "to": "2019-02-20T15:00:00Z"
    },
    "max_delivery_available_km": 35
  },
  {
    "delivery_type": "standard",
    "cut_off": 60,
    "cut_off_two_man_handling": 240,
    "weekend": false,
    "order_limit_exceeded": false,
    "order_near_limit_exceeded": false,
    "used_availability_percentage": 0,
    "availability": "open",
    "precalculation_in_progress": false,
    "price": "10.0",
    "preferred": true,
    "pickup": {
      "from": "2019-02-20T14:00:00Z",
      "to": "2019-02-20T16:00:00Z"
    },
    "delivery": {
      "from": "2019-02-20T14:00:00Z",
      "to": "2019-02-20T16:00:00Z"
    },
    "max_delivery_available_km": 35
  },
  {
    "delivery_type": "standard",
    "cut_off": 60,
    "cut_off_two_man_handling": 240,
    "weekend": false,
    "order_limit_exceeded": false,
    "order_near_limit_exceeded": false,
    "used_availability_percentage": 0,
    "availability": "open",
    "precalculation_in_progress": false,
    "price": "10.0",
    "preferred": true,
    "pickup": {
      "from": "2019-02-20T15:00:00Z",
      "to": "2019-02-20T17:00:00Z"
    },
    "delivery": {
      "from": "2019-02-20T15:00:00Z",
      "to": "2019-02-20T17:00:00Z"
    },
    "max_delivery_available_km": 35
  },
  {
    "delivery_type": "standard",
    "cut_off": 60,
    "cut_off_two_man_handling": 240,
    "weekend": false,
    "order_limit_exceeded": false,
    "order_near_limit_exceeded": false,
    "used_availability_percentage": 0,
    "availability": "open",
    "precalculation_in_progress": false,
    "price": "10.0",
    "preferred": true,
    "pickup": {
      "from": "2019-02-20T16:00:00Z",
      "to": "2019-02-20T18:00:00Z"
    },
    "delivery": {
      "from": "2019-02-20T16:00:00Z",
      "to": "2019-02-20T18:00:00Z"
    },
    "max_delivery_available_km": 35
  },
  {
    "delivery_type": "standard",
    "cut_off": 60,
    "cut_off_two_man_handling": 240,
    "weekend": false,
    "order_limit_exceeded": false,
    "order_near_limit_exceeded": false,
    "used_availability_percentage": 0,
    "availability": "open",
    "precalculation_in_progress": false,
    "price": "10.0",
    "preferred": true,
    "pickup": {
      "from": "2019-02-20T17:00:00Z",
      "to": "2019-02-20T19:00:00Z"
    },
    "delivery": {
      "from": "2019-02-20T17:00:00Z",
      "to": "2019-02-20T19:00:00Z"
    },
    "max_delivery_available_km": 35
  },
  {
    "delivery_type": "standard",
    "cut_off": 60,
    "cut_off_two_man_handling": 240,
    "weekend": false,
    "order_limit_exceeded": false,
    "order_near_limit_exceeded": false,
    "used_availability_percentage": 0,
    "availability": "open",
    "precalculation_in_progress": false,
    "price": "10.0",
    "preferred": true,
    "pickup": {
      "from": "2019-02-21T07:00:00Z",
      "to": "2019-02-21T09:00:00Z"
    },
    "delivery": {
      "from": "2019-02-21T07:00:00Z",
      "to": "2019-02-21T09:00:00Z"
    },
    "max_delivery_available_km": 35
  },
  {
    "delivery_type": "standard",
    "cut_off": 60,
    "cut_off_two_man_handling": 240,
    "weekend": false,
    "order_limit_exceeded": false,
    "order_near_limit_exceeded": false,
    "used_availability_percentage": 0,
    "availability": "open",
    "precalculation_in_progress": false,
    "price": "10.0",
    "preferred": true,
    "pickup": {
      "from": "2019-02-21T08:00:00Z",
      "to": "2019-02-21T10:00:00Z"
    },
    "delivery": {
      "from": "2019-02-21T08:00:00Z",
      "to": "2019-02-21T10:00:00Z"
    },
    "max_delivery_available_km": 35
  },
  {
    "delivery_type": "standard",
    "cut_off": 60,
    "cut_off_two_man_handling": 240,
    "weekend": false,
    "order_limit_exceeded": false,
    "order_near_limit_exceeded": false,
    "used_availability_percentage": 0,
    "availability": "open",
    "precalculation_in_progress": false,
    "price": "10.0",
    "preferred": true,
    "pickup": {
      "from": "2019-02-21T09:00:00Z",
      "to": "2019-02-21T11:00:00Z"
    },
    "delivery": {
      "from": "2019-02-21T09:00:00Z",
      "to": "2019-02-21T11:00:00Z"
    },
    "max_delivery_available_km": 35
  },
  {
    "delivery_type": "standard",
    "cut_off": 60,
    "cut_off_two_man_handling": 240,
    "weekend": false,
    "order_limit_exceeded": false,
    "order_near_limit_exceeded": false,
    "used_availability_percentage": 0,
    "availability": "open",
    "precalculation_in_progress": false,
    "price": "10.0",
    "preferred": true,
    "pickup": {
      "from": "2019-02-21T10:00:00Z",
      "to": "2019-02-21T12:00:00Z"
    },
    "delivery": {
      "from": "2019-02-21T10:00:00Z",
      "to": "2019-02-21T12:00:00Z"
    },
    "max_delivery_available_km": 35
  },
  {
    "delivery_type": "standard",
    "cut_off": 60,
    "cut_off_two_man_handling": 240,
    "weekend": false,
    "order_limit_exceeded": false,
    "order_near_limit_exceeded": false,
    "used_availability_percentage": 0,
    "availability": "open",
    "precalculation_in_progress": false,
    "price": "10.0",
    "preferred": true,
    "pickup": {
      "from": "2019-02-21T11:00:00Z",
      "to": "2019-02-21T13:00:00Z"
    },
    "delivery": {
      "from": "2019-02-21T11:00:00Z",
      "to": "2019-02-21T13:00:00Z"
    },
    "max_delivery_available_km": 35
  },
  {
    "delivery_type": "standard",
    "cut_off": 60,
    "cut_off_two_man_handling": 240,
    "weekend": false,
    "order_limit_exceeded": false,
    "order_near_limit_exceeded": false,
    "used_availability_percentage": 0,
    "availability": "open",
    "precalculation_in_progress": false,
    "price": "10.0",
    "preferred": true,
    "pickup": {
      "from": "2019-02-21T12:00:00Z",
      "to": "2019-02-21T14:00:00Z"
    },
    "delivery": {
      "from": "2019-02-21T12:00:00Z",
      "to": "2019-02-21T14:00:00Z"
    },
    "max_delivery_available_km": 35
  },
  {
    "delivery_type": "standard",
    "cut_off": 60,
    "cut_off_two_man_handling": 240,
    "weekend": false,
    "order_limit_exceeded": false,
    "order_near_limit_exceeded": false,
    "used_availability_percentage": 0,
    "availability": "open",
    "precalculation_in_progress": false,
    "price": "10.0",
    "preferred": true,
    "pickup": {
      "from": "2019-02-21T13:00:00Z",
      "to": "2019-02-21T15:00:00Z"
    },
    "delivery": {
      "from": "2019-02-21T13:00:00Z",
      "to": "2019-02-21T15:00:00Z"
    },
    "max_delivery_available_km": 35
  },
  {
    "delivery_type": "standard",
    "cut_off": 60,
    "cut_off_two_man_handling": 240,
    "weekend": false,
    "order_limit_exceeded": false,
    "order_near_limit_exceeded": false,
    "used_availability_percentage": 0,
    "availability": "open",
    "precalculation_in_progress": false,
    "price": "10.0",
    "preferred": true,
    "pickup": {
      "from": "2019-02-21T14:00:00Z",
      "to": "2019-02-21T16:00:00Z"
    },
    "delivery": {
      "from": "2019-02-21T14:00:00Z",
      "to": "2019-02-21T16:00:00Z"
    },
    "max_delivery_available_km": 35
  },
  {
    "delivery_type": "standard",
    "cut_off": 60,
    "cut_off_two_man_handling": 240,
    "weekend": false,
    "order_limit_exceeded": false,
    "order_near_limit_exceeded": false,
    "used_availability_percentage": 0,
    "availability": "open",
    "precalculation_in_progress": false,
    "price": "10.0",
    "preferred": true,
    "pickup": {
      "from": "2019-02-21T15:00:00Z",
      "to": "2019-02-21T17:00:00Z"
    },
    "delivery": {
      "from": "2019-02-21T15:00:00Z",
      "to": "2019-02-21T17:00:00Z"
    },
    "max_delivery_available_km": 35
  },
  {
    "delivery_type": "standard",
    "cut_off": 60,
    "cut_off_two_man_handling": 240,
    "weekend": false,
    "order_limit_exceeded": false,
    "order_near_limit_exceeded": false,
    "used_availability_percentage": 0,
    "availability": "open",
    "precalculation_in_progress": false,
    "price": "10.0",
    "preferred": true,
    "pickup": {
      "from": "2019-02-21T16:00:00Z",
      "to": "2019-02-21T18:00:00Z"
    },
    "delivery": {
      "from": "2019-02-21T16:00:00Z",
      "to": "2019-02-21T18:00:00Z"
    },
    "max_delivery_available_km": 35
  },
  {
    "delivery_type": "standard",
    "cut_off": 60,
    "cut_off_two_man_handling": 240,
    "weekend": false,
    "order_limit_exceeded": false,
    "order_near_limit_exceeded": false,
    "used_availability_percentage": 0,
    "availability": "open",
    "precalculation_in_progress": false,
    "price": "10.0",
    "preferred": true,
    "pickup": {
      "from": "2019-02-21T17:00:00Z",
      "to": "2019-02-21T19:00:00Z"
    },
    "delivery": {
      "from": "2019-02-21T17:00:00Z",
      "to": "2019-02-21T19:00:00Z"
    },
    "max_delivery_available_km": 35
  },
  {
    "delivery_type": "standard",
    "cut_off": 60,
    "cut_off_two_man_handling": 240,
    "weekend": false,
    "order_limit_exceeded": false,
    "order_near_limit_exceeded": false,
    "used_availability_percentage": 0,
    "availability": "open",
    "precalculation_in_progress": false,
    "price": "10.0",
    "preferred": true,
    "pickup": {
      "from": "2019-02-22T07:00:00Z",
      "to": "2019-02-22T09:00:00Z"
    },
    "delivery": {
      "from": "2019-02-22T07:00:00Z",
      "to": "2019-02-22T09:00:00Z"
    },
    "max_delivery_available_km": 35
  },
  {
    "delivery_type": "standard",
    "cut_off": 60,
    "cut_off_two_man_handling": 240,
    "weekend": false,
    "order_limit_exceeded": false,
    "order_near_limit_exceeded": false,
    "used_availability_percentage": 0,
    "availability": "open",
    "precalculation_in_progress": false,
    "price": "10.0",
    "preferred": true,
    "pickup": {
      "from": "2019-02-22T08:00:00Z",
      "to": "2019-02-22T10:00:00Z"
    },
    "delivery": {
      "from": "2019-02-22T08:00:00Z",
      "to": "2019-02-22T10:00:00Z"
    },
    "max_delivery_available_km": 35
  },
  {
    "delivery_type": "standard",
    "cut_off": 60,
    "cut_off_two_man_handling": 240,
    "weekend": false,
    "order_limit_exceeded": false,
    "order_near_limit_exceeded": false,
    "used_availability_percentage": 0,
    "availability": "open",
    "precalculation_in_progress": false,
    "price": "10.0",
    "preferred": true,
    "pickup": {
      "from": "2019-02-22T09:00:00Z",
      "to": "2019-02-22T11:00:00Z"
    },
    "delivery": {
      "from": "2019-02-22T09:00:00Z",
      "to": "2019-02-22T11:00:00Z"
    },
    "max_delivery_available_km": 35
  },
  {
    "delivery_type": "standard",
    "cut_off": 60,
    "cut_off_two_man_handling": 240,
    "weekend": false,
    "order_limit_exceeded": false,
    "order_near_limit_exceeded": false,
    "used_availability_percentage": 0,
    "availability": "open",
    "precalculation_in_progress": false,
    "price": "10.0",
    "preferred": true,
    "pickup": {
      "from": "2019-02-22T10:00:00Z",
      "to": "2019-02-22T12:00:00Z"
    },
    "delivery": {
      "from": "2019-02-22T10:00:00Z",
      "to": "2019-02-22T12:00:00Z"
    },
    "max_delivery_available_km": 35
  },
  {
    "delivery_type": "standard",
    "cut_off": 60,
    "cut_off_two_man_handling": 240,
    "weekend": false,
    "order_limit_exceeded": false,
    "order_near_limit_exceeded": false,
    "used_availability_percentage": 0,
    "availability": "open",
    "precalculation_in_progress": false,
    "price": "10.0",
    "preferred": true,
    "pickup": {
      "from": "2019-02-22T11:00:00Z",
      "to": "2019-02-22T13:00:00Z"
    },
    "delivery": {
      "from": "2019-02-22T11:00:00Z",
      "to": "2019-02-22T13:00:00Z"
    },
    "max_delivery_available_km": 35
  },
  {
    "delivery_type": "standard",
    "cut_off": 60,
    "cut_off_two_man_handling": 240,
    "weekend": false,
    "order_limit_exceeded": false,
    "order_near_limit_exceeded": false,
    "used_availability_percentage": 0,
    "availability": "open",
    "precalculation_in_progress": false,
    "price": "10.0",
    "preferred": true,
    "pickup": {
      "from": "2019-02-22T12:00:00Z",
      "to": "2019-02-22T14:00:00Z"
    },
    "delivery": {
      "from": "2019-02-22T12:00:00Z",
      "to": "2019-02-22T14:00:00Z"
    },
    "max_delivery_available_km": 35
  },
  {
    "delivery_type": "standard",
    "cut_off": 60,
    "cut_off_two_man_handling": 240,
    "weekend": false,
    "order_limit_exceeded": false,
    "order_near_limit_exceeded": false,
    "used_availability_percentage": 0,
    "availability": "open",
    "precalculation_in_progress": false,
    "price": "10.0",
    "preferred": true,
    "pickup": {
      "from": "2019-02-22T13:00:00Z",
      "to": "2019-02-22T15:00:00Z"
    },
    "delivery": {
      "from": "2019-02-22T13:00:00Z",
      "to": "2019-02-22T15:00:00Z"
    },
    "max_delivery_available_km": 35
  },
  {
    "delivery_type": "standard",
    "cut_off": 60,
    "cut_off_two_man_handling": 240,
    "weekend": false,
    "order_limit_exceeded": false,
    "order_near_limit_exceeded": false,
    "used_availability_percentage": 0,
    "availability": "open",
    "precalculation_in_progress": false,
    "price": "10.0",
    "preferred": true,
    "pickup": {
      "from": "2019-02-22T14:00:00Z",
      "to": "2019-02-22T16:00:00Z"
    },
    "delivery": {
      "from": "2019-02-22T14:00:00Z",
      "to": "2019-02-22T16:00:00Z"
    },
    "max_delivery_available_km": 35
  },
  {
    "delivery_type": "standard",
    "cut_off": 60,
    "cut_off_two_man_handling": 240,
    "weekend": false,
    "order_limit_exceeded": false,
    "order_near_limit_exceeded": false,
    "used_availability_percentage": 0,
    "availability": "open",
    "precalculation_in_progress": false,
    "price": "10.0",
    "preferred": true,
    "pickup": {
      "from": "2019-02-22T15:00:00Z",
      "to": "2019-02-22T17:00:00Z"
    },
    "delivery": {
      "from": "2019-02-22T15:00:00Z",
      "to": "2019-02-22T17:00:00Z"
    },
    "max_delivery_available_km": 35
  },
  {
    "delivery_type": "standard",
    "cut_off": 60,
    "cut_off_two_man_handling": 240,
    "weekend": false,
    "order_limit_exceeded": false,
    "order_near_limit_exceeded": false,
    "used_availability_percentage": 0,
    "availability": "open",
    "precalculation_in_progress": false,
    "price": "10.0",
    "preferred": true,
    "pickup": {
      "from": "2019-02-22T16:00:00Z",
      "to": "2019-02-22T18:00:00Z"
    },
    "delivery": {
      "from": "2019-02-22T16:00:00Z",
      "to": "2019-02-22T18:00:00Z"
    },
    "max_delivery_available_km": 35
  },
  {
    "delivery_type": "standard",
    "cut_off": 60,
    "cut_off_two_man_handling": 240,
    "weekend": false,
    "order_limit_exceeded": false,
    "order_near_limit_exceeded": false,
    "used_availability_percentage": 0,
    "availability": "open",
    "precalculation_in_progress": false,
    "price": "10.0",
    "preferred": true,
    "pickup": {
      "from": "2019-02-22T17:00:00Z",
      "to": "2019-02-22T19:00:00Z"
    },
    "delivery": {
      "from": "2019-02-22T17:00:00Z",
      "to": "2019-02-22T19:00:00Z"
    },
    "max_delivery_available_km": 35
  },
  {
    "delivery_type": "standard",
    "cut_off": 60,
    "cut_off_two_man_handling": 240,
    "weekend": false,
    "order_limit_exceeded": false,
    "order_near_limit_exceeded": false,
    "used_availability_percentage": 0,
    "availability": "open",
    "precalculation_in_progress": false,
    "price": "10.0",
    "preferred": true,
    "pickup": {
      "from": "2019-02-25T07:00:00Z",
      "to": "2019-02-25T09:00:00Z"
    },
    "delivery": {
      "from": "2019-02-25T07:00:00Z",
      "to": "2019-02-25T09:00:00Z"
    },
    "max_delivery_available_km": 35
  },
  {
    "delivery_type": "standard",
    "cut_off": 60,
    "cut_off_two_man_handling": 240,
    "weekend": false,
    "order_limit_exceeded": false,
    "order_near_limit_exceeded": false,
    "used_availability_percentage": 0,
    "availability": "open",
    "precalculation_in_progress": false,
    "price": "10.0",
    "preferred": true,
    "pickup": {
      "from": "2019-02-25T08:00:00Z",
      "to": "2019-02-25T10:00:00Z"
    },
    "delivery": {
      "from": "2019-02-25T08:00:00Z",
      "to": "2019-02-25T10:00:00Z"
    },
    "max_delivery_available_km": 35
  },
  {
    "delivery_type": "standard",
    "cut_off": 60,
    "cut_off_two_man_handling": 240,
    "weekend": false,
    "order_limit_exceeded": false,
    "order_near_limit_exceeded": false,
    "used_availability_percentage": 0,
    "availability": "open",
    "precalculation_in_progress": false,
    "price": "10.0",
    "preferred": true,
    "pickup": {
      "from": "2019-02-25T09:00:00Z",
      "to": "2019-02-25T11:00:00Z"
    },
    "delivery": {
      "from": "2019-02-25T09:00:00Z",
      "to": "2019-02-25T11:00:00Z"
    },
    "max_delivery_available_km": 35
  },
  {
    "delivery_type": "standard",
    "cut_off": 60,
    "cut_off_two_man_handling": 240,
    "weekend": false,
    "order_limit_exceeded": false,
    "order_near_limit_exceeded": false,
    "used_availability_percentage": 0,
    "availability": "open",
    "precalculation_in_progress": false,
    "price": "10.0",
    "preferred": true,
    "pickup": {
      "from": "2019-02-25T10:00:00Z",
      "to": "2019-02-25T12:00:00Z"
    },
    "delivery": {
      "from": "2019-02-25T10:00:00Z",
      "to": "2019-02-25T12:00:00Z"
    },
    "max_delivery_available_km": 35
  },
  {
    "delivery_type": "standard",
    "cut_off": 60,
    "cut_off_two_man_handling": 240,
    "weekend": false,
    "order_limit_exceeded": false,
    "order_near_limit_exceeded": false,
    "used_availability_percentage": 0,
    "availability": "open",
    "precalculation_in_progress": false,
    "price": "10.0",
    "preferred": true,
    "pickup": {
      "from": "2019-02-25T11:00:00Z",
      "to": "2019-02-25T13:00:00Z"
    },
    "delivery": {
      "from": "2019-02-25T11:00:00Z",
      "to": "2019-02-25T13:00:00Z"
    },
    "max_delivery_available_km": 35
  },
  {
    "delivery_type": "standard",
    "cut_off": 60,
    "cut_off_two_man_handling": 240,
    "weekend": false,
    "order_limit_exceeded": false,
    "order_near_limit_exceeded": false,
    "used_availability_percentage": 0,
    "availability": "open",
    "precalculation_in_progress": false,
    "price": "10.0",
    "preferred": true,
    "pickup": {
      "from": "2019-02-25T12:00:00Z",
      "to": "2019-02-25T14:00:00Z"
    },
    "delivery": {
      "from": "2019-02-25T12:00:00Z",
      "to": "2019-02-25T14:00:00Z"
    },
    "max_delivery_available_km": 35
  },
  {
    "delivery_type": "standard",
    "cut_off": 60,
    "cut_off_two_man_handling": 240,
    "weekend": false,
    "order_limit_exceeded": false,
    "order_near_limit_exceeded": false,
    "used_availability_percentage": 0,
    "availability": "open",
    "precalculation_in_progress": false,
    "price": "10.0",
    "preferred": true,
    "pickup": {
      "from": "2019-02-25T13:00:00Z",
      "to": "2019-02-25T15:00:00Z"
    },
    "delivery": {
      "from": "2019-02-25T13:00:00Z",
      "to": "2019-02-25T15:00:00Z"
    },
    "max_delivery_available_km": 35
  },
  {
    "delivery_type": "standard",
    "cut_off": 60,
    "cut_off_two_man_handling": 240,
    "weekend": false,
    "order_limit_exceeded": false,
    "order_near_limit_exceeded": false,
    "used_availability_percentage": 0,
    "availability": "open",
    "precalculation_in_progress": false,
    "price": "10.0",
    "preferred": true,
    "pickup": {
      "from": "2019-02-25T14:00:00Z",
      "to": "2019-02-25T16:00:00Z"
    },
    "delivery": {
      "from": "2019-02-25T14:00:00Z",
      "to": "2019-02-25T16:00:00Z"
    },
    "max_delivery_available_km": 35
  },
  {
    "delivery_type": "standard",
    "cut_off": 60,
    "cut_off_two_man_handling": 240,
    "weekend": false,
    "order_limit_exceeded": false,
    "order_near_limit_exceeded": false,
    "used_availability_percentage": 0,
    "availability": "open",
    "precalculation_in_progress": false,
    "price": "10.0",
    "preferred": true,
    "pickup": {
      "from": "2019-02-25T15:00:00Z",
      "to": "2019-02-25T17:00:00Z"
    },
    "delivery": {
      "from": "2019-02-25T15:00:00Z",
      "to": "2019-02-25T17:00:00Z"
    },
    "max_delivery_available_km": 35
  },
  {
    "delivery_type": "standard",
    "cut_off": 60,
    "cut_off_two_man_handling": 240,
    "weekend": false,
    "order_limit_exceeded": false,
    "order_near_limit_exceeded": false,
    "used_availability_percentage": 0,
    "availability": "open",
    "precalculation_in_progress": false,
    "price": "10.0",
    "preferred": true,
    "pickup": {
      "from": "2019-02-25T16:00:00Z",
      "to": "2019-02-25T18:00:00Z"
    },
    "delivery": {
      "from": "2019-02-25T16:00:00Z",
      "to": "2019-02-25T18:00:00Z"
    },
    "max_delivery_available_km": 35
  },
  {
    "delivery_type": "standard",
    "cut_off": 60,
    "cut_off_two_man_handling": 240,
    "weekend": false,
    "order_limit_exceeded": false,
    "order_near_limit_exceeded": false,
    "used_availability_percentage": 0,
    "availability": "open",
    "precalculation_in_progress": false,
    "price": "10.0",
    "preferred": true,
    "pickup": {
      "from": "2019-02-25T17:00:00Z",
      "to": "2019-02-25T19:00:00Z"
    },
    "delivery": {
      "from": "2019-02-25T17:00:00Z",
      "to": "2019-02-25T19:00:00Z"
    },
    "max_delivery_available_km": 35
  }
]

Web Hooks

Order

Order
POST/web_hook_url

You can easily avoid pulling API by providing web_hook_url parameter while creating an order.
If so, we will POST to provided web_hook_url whenever order change state

To ensure that your API received, understood and accepted the request, we’ll check your response status code.
With response status code other than 2xx we assume that request has failed.
If so, we’ll retry with an exponential backoff using the formula (retry_count 4 + 15) i.e. 15, 16, 31, 96, 271, … seconds.
It will perform 25 retries over approximately 20 days.

The webhook payload contains exactly the same fields as the response body from Show Order request.

Keep in mind that the order of the webhook requests is not guaranteed,
though usually they are ordered by the timestamp of the status change.

Example URI

POST https://sandbox.tiramizoo.com/api/v1/web_hook_url
Request
HideShow
Headers
Content-Type: application/json
Body
{
  "uuid": "2a9eeeb3-16ba-4184-b894-c9734f613e93",
  "description": null,
  "courier_information": "pickup-instructions; delivery-instructions",
  "external_id": "external id",
  "web_hook_url": "http://api.myshop.com/deliveries/update_state",
  "hazard_index": 10,
  "service_area_identifier": "berlin",
  "identifier": "ZVW8GV",
  "timezone": "Europe/Berlin",
  "state": "created",
  "delivery_type": "standard",
  "created_at": "2012-04-16T09:00:00+02:00",
  "dispatched_at": null,
  "picked_up_at": null,
  "pickup_failed_at": null,
  "delivered_to": null,
  "delivered_at": null,
  "delivery_failed_at": null,
  "returned_at": null,
  "cancelled_at": null,
  "cancellation_reason": null,
  "tracking_url": "http://www.tiramizoo.com/orders/ID4K7EHQX62RA/tracking_status?locale=en",
  "tracking_code": "ID4K7-EHQX-62RA",
  "cancellable": true,
  "pickup": {
    "name": "Alice Icealay",
    "phone_number": "+491234567890",
    "email": "alice@icealay.de",
    "address_line": "Im Dol 1",
    "city": "Berlin",
    "postal_code": "14195",
    "country_code": "de",
    "after": "2012-04-17T10:00:00+02:00",
    "before": "2012-04-17T12:00:00+02:00",
    "requirements": [
      {
        "type": "custom",
        "value": "please knock twice"
      }
    ],
    "information": "pickup-instructions",
    "eta": null
  },
  "delivery": {
    "name": "Bob Obbay",
    "phone_number": "+490987654321",
    "email": "bob@obbay.de",
    "address_line": "Thujaweg 1",
    "city": "Berlin",
    "postal_code": "12437",
    "country_code": "de",
    "after": "2012-04-17T10:00:00+02:00",
    "before": "2012-04-17T12:00:00+02:00",
    "requirements": [
      {
        "type": "custom",
        "value": "please knock twice"
      },
      {
        "type": "signature"
      }
    ],
    "information": "delivery-instructions",
    "eta": null
  },
  "packages": [
    {
      "width": 2,
      "height": 8,
      "length": 5,
      "weight": 2,
      "quantity": 1,
      "description": null,
      "category": null,
      "identifier": "18A24901BE5D49C3",
      "unpackable": false,
      "non_rotatable": false,
      "external_id": null,
      "barcode": {
        "symbology": "QR Code",
        "data": "18A24901BE5D49C3",
        "url": "http://www.tiramizoo.com/api/v1/barcodes/18A24901BE5D49C3.png"
      },
      "state": "pending"
    }
  ],
  "signature": {
    "url": null,
    "name": null
  },
  "labels_url": "http://www.tiramizoo.com/orders/ID4K7EHQX62RA/labels.pdf",
  "events": [],
  "history": [],
  "courier_company_identifier": null,
  "courier_company_name": null,
  "courier_identifier": null,
  "courier_name": null,
  "tour_identifier": null
}
Response  200

Tour plan

Tour plan
POST/tour_plan_web_hook_url

We send information to the base location’s tour_plan_web_hook_url
whenever a new tour (which starts from this particular base location) is created.

Please respond to our POST request with the appropriate HTTP status code.

Example URI

POST https://sandbox.tiramizoo.com/api/v1/tour_plan_web_hook_url
Request
HideShow
Headers
Content-Type: application/json
Body
{
  "time_window": {
    "from": "2016-06-08T08:00:00+02:00",
    "to": "2016-06-08T11:00:00+02:00"
  },
  "tours": [
    {
      "id": "EDFIL1-1",
      "courier": "N1",
      "pick_up_at": "2016-06-08T08:00:00+02:00",
      "orders": [
        {
          "id": "ID1-0",
          "delivery_eta": "2016-06-08T08:00:00+02:00",
          "packages": [
            {
              "id": "AAAAAAAAAAAAA100",
              "size": "L"
            },
            {
              "id": "AAAAAAAAAAAAA101",
              "size": "L"
            }
          ]
        },
        {
          "id": "ID1-1",
          "delivery_eta": "2016-06-08T08:01:00+02:00",
          "packages": [
            {
              "id": "AAAAAAAAAAAAA110",
              "size": "L"
            },
            {
              "id": "AAAAAAAAAAAAA111",
              "size": "L"
            }
          ]
        },
        {
          "id": "ID1-2",
          "delivery_eta": "2016-06-08T08:02:00+02:00",
          "packages": [
            {
              "id": "AAAAAAAAAAAAA120",
              "size": "L"
            },
            {
              "id": "AAAAAAAAAAAAA121",
              "size": "L"
            }
          ]
        }
      ]
    },
    {
      "id": "EDFIL1-2",
      "courier": "N2",
      "pick_up_at": "2016-06-08T08:00:00+02:00",
      "orders": [
        {
          "id": "ID2-0",
          "delivery_eta": "2016-06-08T08:00:00+02:00",
          "packages": [
            {
              "id": "AAAAAAAAAAAAA200",
              "size": "L"
            },
            {
              "id": "AAAAAAAAAAAAA201",
              "size": "L"
            }
          ]
        },
        {
          "id": "ID2-1",
          "delivery_eta": "2016-06-08T08:01:00+02:00",
          "packages": [
            {
              "id": "AAAAAAAAAAAAA210",
              "size": "L"
            },
            {
              "id": "AAAAAAAAAAAAA211",
              "size": "L"
            }
          ]
        },
        {
          "id": "ID2-2",
          "delivery_eta": "2016-06-08T08:02:00+02:00",
          "packages": [
            {
              "id": "AAAAAAAAAAAAA220",
              "size": "L"
            },
            {
              "id": "AAAAAAAAAAAAA221",
              "size": "L"
            }
          ]
        }
      ]
    }
  ]
}
Response  200

Package Labelling Process

On order creation process tiramizoo service generates unique identifier for each package.

Generate identifier for a package

Packages representation
"packages": [
  {
    "width": 2,
    "height": 8.2,
    "length": 5,
    "weight": 2,
    "quantity": 1,
    "description": "chunky bacon",
    "category": null,
    "identifier": "3E39C50E40226436",
    "unpackable": false,
    "non_rotatable": false,
    "external_id": null,
    "barcode": {
      "symbology": "QR Code",
      "data": "3E39C50E40226436",
      "url": "https://sandbox.tiramizoo.com/api/v1/barcodes/3E39C50E40226436.png"
    },
    "pickup_state": "pending"
  },
  ...
]
  • barcode.symbology - QR Code

  • barcode.data - Data encoded

  • barcode.url - URL to download QR code label

Example barcode

Barcode

Tracking Page

For the successfully created order the response contains tracking_url parameter.

{
  ...
  "tracking_url" : "https://sandbox.tiramizoo.com/orders/TRACKING_CODE/tracking_status",
  ...
}

TRACKING_CODE - uniq, alphanumeric tracking code. Pattern:

  • the length could be from 8 to 13 characters *

  • the first 1 to 5 characters are associated with the account or are configurable *

  • last 8 characters are randomly generated and always uppercased

* - If your account has feature api_enabled than you are able to edit tracking code prefix, called short_code. Short-code must contain 1 to 5 alphanumeric characters. To do so please go to account’s dashboard

Examples:

  • DWJHREONREDW7 - with short_code provided DWJHR

  • EONREDW7 - without short_code:

On tracking page, you can check the current status of your order. Tracking Page example

Generated by aglio on 11 Oct 2021