> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://api-docs.zippd.com/llms.txt.
> For full documentation content, see https://api-docs.zippd.com/llms-full.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://api-docs.zippd.com/_mcp/server.

# Order a Non-Dedicated Delivery

If you're unsure which type of delivery you need, have a read of our [article](/managing-orders/types) on the different order types.

Placing an order for a non-dedicated delivery with Zippd requires all delivery data upfront. This will include things like:

* Pick-up and drop-off addresses
* Details about the goods
* Additional data that can be referenced later for your team's benefit

Only accounts that have set up credit agreements with us will be able to place orders using our API.

Placing an order is as simple as sending a `POST` request to our API. Take a look at the [endpoint reference](api:POST/api/v1/api/v1/orders-non-dedicated) for specifics on the data required.

## Pricing

It is not possible to receive pricing estimates for this type of order. Currently, pricing for non-dedicated deliveries is agreed during account set-up and configured on the account level.

## Location Addresses

You can provide either a pick-up address only, a drop-off address only, or both addresses. Anything else will result in a 422 failure response.

### Examples

Send only the drop-off address:

```json
{
    // Other data
    "order_locations": [
        {
            "is_collection": false,
            "address": {
                // Address data
            }
        }
    ]
    // Other data
}
```

When both locations are provided, the address data in each object will be treated separately. This means you can pull a previously used address for one location and add a new address for the other:

```json
{
    // Other data
    "order_locations": [
        {
            "is_collection": true,
            "address": {
                "id": 57358
            }
        },
        {
            "is_collection": false,
            "address": {
                "address_line_1": "123 Grovesby Road",
                "city": "Manchester",
                "postcode": "M1 2AB"
            }
        }
    ]
    // Other data
}
```

When using the `id` field for an address object, the API will return with an error response if any of the following fields are also in the object:
`address_line_1`, `city`, `postcode`, `contact_name`

Our system makes use of latitude/longitude coordinates for geographical processes such as calculating distances and displaying points on maps. If you have the coordinates for your addresses, you can provide them with the `latitude` and `longitude` items in the `address` object:

```json
{
    // Other data
    "order_locations": [
        {
            "is_collection": true,
            "address": {
                "address_line_1": "123 Grovesby Road",
                "city": "Manchester",
                "postcode": "M1 2AB",
                "latitude": 51.234567,
                "longitude": -2.123456
            }
        }
    ]
    // Other data
}
```

Where the `latitude` and `longitude` items have not been provided, the API will geocode the address on your behalf.

## Date and Time

These types of orders cannot be placed in advance, only on the day of. This means that the endpoint does not accept any date parameters.

Additionally, pick-up time is agreed prior, and set on the account level; drop-off, if applicable, is determined by our route optimisation technology.

## Get Updates on Order Progress

Through webhooks, you can receive status updates about your orders as they happen. See the [documentation](/following-your-delivery/receive-updates-via-webhooks).

You can also make requests to the API the retrieve order data as and when you need it. See the [API reference](api:GET/api/v1/api/v1/orders).