# Quote a Delivery
Before committing to a delivery booking, you can request a quote to retrieve available carrier options, estimated delivery windows, and pricing for a given order. This is useful when you want to surface delivery options to customers at checkout or make routing decisions before dispatching.
***
## Endpoint
```
POST {{domain}}/{{tenant_id}}/deliveries/quote-next-available
```
**Authentication:** Bearer token required via the `Authorization` header.
***
## Request Payload
```json title="POST /{{tenant_id}}/deliveries/quote-next-available"
{
"store_id": "rendr-test",
"ready_for_pickup_at": "2022-03-04T10:00:00+11:00",
"address": {
"address": "7 Howard Street",
"address2": "Level 3",
"city": "Richmond",
"state": "VIC",
"post_code": "3121"
},
"line_items": [
{
"code": "sku-code-001",
"name": "SKU Item Name #001",
"price_cents": 999,
"quantity": 2
},
{
"code": "sku-code-002",
"name": "SKU Item Name #002",
"price_cents": 1999,
"quantity": 2
},
{
"code": "sku-code-003",
"name": "SKU Item Name #003",
"price_cents": 9999,
"quantity": 3
}
],
"parcels": [
{
"reference": "PARCEL_001",
"length_cm": 20,
"width_cm": 40,
"height_cm": 60,
"weight_kg": 1,
"quantity": 1,
"type": "carton"
},
{
"reference": "PARCEL_002",
"length_cm": 10,
"width_cm": 10,
"height_cm": 10,
"weight_kg": 1,
"quantity": 1,
"type": "satchel"
}
],
"product_types": {
"alcohol": false,
"tobacco": false,
"prescription_meds_s2": true,
"prescription_meds_s4": false,
"prescription_meds_s8": false,
"high_value": false
}
}
```
***
## Parameters
### Top-Level Fields
| Field | Type | Required | Description |
| --------------------- | ----------------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `store_id` | String | Yes\* | The ID of the delivery pickup store/location, preconfigured by your Rendr implementation partner. Determines the origin point for quote calculations. |
| `store_reference` | String | No\* | Your internal location identifier preconfigured by your Rendr implementation partner. Can be used instead of `store_id`. |
| `ready_for_pickup_at` | String (ISO 8601) | No | The earliest date and time the order will be ready for carrier collection. If your fulfilment workflow requires pick/pack time, include that buffer here. Provide the value in ISO 8601 format including timezone offset (e.g. `2024-03-04T10:00:00+11:00`). If omitted, Rendr assumes the order is ready immediately. |
Either `store_id` or `store_reference` must be provided. If both are supplied, `store_id` takes precedence.
### Address Fields
The `address` object specifies the delivery destination used to calculate carrier availability, estimated windows, and pricing.
| Field | Type | Required | Description |
| ------------------- | ------ | -------- | ------------------------------------------------------------------------------------------------------------------------------- |
| `address.address` | String | No | The street address of the delivery destination — e.g. `7 Howard Street`. Format: `[Street Number] [Street Name] [Street Type]`. |
| `address.address2` | String | No | A secondary address line for unit, apartment, or level information — e.g. `Unit 1`, `Level 3`. |
| `address.city` | String | Yes | The city, town, or village of the delivery address. |
| `address.state` | String | Yes | The abbreviated state or territory in which the delivery address exists — e.g. `VIC`, `NSW`. |
| `address.post_code` | String | Yes | The Australian postcode of the delivery address. |
### Line Items
The `line_items` array describes the products included in the order. This information is used to assess regulated product handling requirements and calculate insured value.
| Field | Type | Required | Description |
| -------------------------- | ------ | -------- | ---------------------------------------------------------------------------------------------------------------------------- |
| `line_items[].code` | String | Yes | The SKU or product code for the line item as it exists in your system. |
| `line_items[].name` | String | Yes | The human-readable name of the product. Presented to the customer, store fulfilment team, and delivery driver. |
| `line_items[].price_cents` | Number | Yes | The unit price of the item in cents — e.g. `999` = \$9.99. Used for insured value calculations and high-value item handling. |
| `line_items[].quantity` | Number | Yes | The number of units of this line item in the order. Used to determine total order size and weight. |
### Parcels
The `parcels` array defines the physical packages that will make up the delivery. Accurate dimensions and weights are required for Rendr to determine carrier eligibility and calculate rates.
| Field | Type | Required | Description |
| ----------------------- | ------ | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `parcels[].reference` | String | Yes | A unique reference for this parcel within the delivery — e.g. `PARCEL_001`. Used to identify individual packages during packing and carrier handoff. |
| `parcels[].description` | String | No | A short description of the parcel shown to store staff in the Workbench portal to assist with packing. |
| `parcels[].type` | String | No | The parcel packaging type. Accepted values: `carton`, `crate`, `hanging_bag`, `length`, `pallet`, `satchel`, `skid`. If omitted, a default parcel type will be applied. |
| `parcels[].length_cm` | Number | Yes | The length of the parcel in centimetres. |
| `parcels[].width_cm` | Number | Yes | The width of the parcel in centimetres. |
| `parcels[].height_cm` | Number | Yes | The height of the parcel in centimetres. |
| `parcels[].weight_kg` | Number | Yes | The weight of the parcel in kilograms. |
| `parcels[].quantity` | Number | Yes | The number of identical parcels at these dimensions. Use `quantity: 2` rather than duplicating the parcel object for multiple boxes of the same size. |
Accurate parcel dimensions and weights are critical for quote accuracy. Incorrect measurements may result in quotes that do not reflect actual carrier pricing or eligibility at the point of booking.
***
## Sample Response
A successful quote response returns a `data` object keyed by delivery type. Each key represents an available service level and includes pricing, estimated delivery window, and — depending on your account configuration — carrier details.
```json title="200 OK"
{
"data": {
"fast": {
"price_cents": 1000,
"currency": "AUD",
"from_datetime": "2026-01-24T11:41:00+11:00",
"to_datetime": "2026-01-24T14:41:00+11:00",
"num_days": 0
},
"flexible": {
"price_cents": 900,
"currency": "AUD",
"from_datetime": "2026-01-24T11:41:00+11:00",
"to_datetime": "2026-01-24T16:41:00+11:00",
"num_days": 0
},
"standard": {
"price_cents": 800,
"currency": "AUD",
"from_datetime": "2026-01-24T11:41:00+11:00",
"to_datetime": "2026-01-31T11:41:00+11:00",
"provider": "Australia Post",
"service": "PARCEL POST + SIGNATURE",
"carrier_code": "3J55",
"num_days": 7
},
"express": {
"price_cents": 700,
"currency": "AUD",
"from_datetime": "2026-01-24T11:41:00+11:00",
"to_datetime": "2026-01-26T11:41:00+11:00",
"provider": "Australia Post",
"service": "EXPRESS POST + SIGNATURE",
"carrier_code": "3D55",
"num_days": 2
}
}
}
```
### Response Fields
Each delivery type object in `data` can contain the following fields:
| Field | Type | Description |
| --------------- | ----------------- | ---------------------------------------------------------------------------------------------------- |
| `price_cents` | Number | The quoted delivery price in cents — e.g. `1000` = \$10.00 AUD. |
| `currency` | String | The currency for the quoted price. Currently always `AUD`. |
| `from_datetime` | String (ISO 8601) | The start of the estimated delivery window. |
| `to_datetime` | String (ISO 8601) | The end of the estimated delivery window. |
| `num_days` | Number | The estimated number of business days for delivery. `0` indicates same-day delivery. |
| `provider` | String | The carrier name — e.g. `Australia Post`. Only present on BYOC accounts (see below). |
| `service` | String | The specific carrier service level — e.g. `EXPRESS POST + SIGNATURE`. Only present on BYOC accounts. |
| `carrier_code` | String | The internal carrier service code used by Rendr for booking. Only present on BYOC accounts. |
Not all delivery types will always be returned. Rendr only includes options where a compliant carrier is available for the given origin, destination, parcel dimensions, and account configuration.
### BYOC Accounts
If your account is configured with **Bring Your Own Carrier (BYOC)**, the response will include `provider`, `service`, and `carrier_code` fields on applicable delivery types. These fields identify the specific carrier and service that Rendr has matched for the shipment, giving you full visibility into the routing decision before booking.