Responses
The Quote API possible responses:
Status | Meaning | Description |
---|---|---|
200 | OK | Successful quote response |
400 | Bad Request | Returned when a quote request cannot be generated at all. If returned as text or HTML, the response is blank. |
403 | Forbidden | Returned when the API key given does not match a valid merchant account. |
500 | Internal Server Error | Returned when an unknown error occurs, or if there is a problem with the combination of the input or merchant account configuration. |
Note that if a quote request to a carrier can be generated, but one or more carriers can’t respond to the quote, then the quote request succeeds and a 400 Bad Request response is not given. The status of each individual quote is then determined from the response body. The 400 Bad Request response is only returned if the quote request can’t be processed.
Zero dollar quotes
In some cases, you can receive a 200 OK response, with a list of carriers. However, sometimes the carriers in the list might have returned a quote price of $0, meaning that they’re unable to accept the booking.
When this happens, the quote endpoint returns an error similar to $0 quote
or quote not available
. Shippit made changes to these error messages in August 2025 to make them more understandable.
This table shows the different error messages before and after August 2025:
Before August 2025 | After August 2025 |
---|---|
Calculated a $0 quote. Suburb/state/postcode mismatch | Unable to calculate quote. Please check if suburb, state, and postcode match correctly. |
Calculated a $0 quote. no valid rates returned | Unable to calculate quote. No valid shipping rates matched the request. Please check the service, product, or delivery. |
Product Code Not Found | Unable to calculate quote. One or more product codes are missing or invalid. Please check your product mappings. |
Contract for charge account expired or not valid | Unable to calculate quote. The contract linked to charge account 0007290406 is either expired or not yet active. |
no valid rates matched | Unable to calculate quote. No matching rates found for the selected details. |
Suburb is missing 1 mandatory English character | Unable to calculate quote. Suburb name must include at least one English character. Please update and try again. |
Missing or incorrect mandatory attribute | Unable to calculate quote. The request is missing one or more required fields. Please review the input and try again. |
Packaging type is invalid | Unable to calculate quote. The specified packaging type is invalid. Please check the packaging value and try again. |
InternalQuote::Rate::ToZoneNotFound or internal_quote “[To] courier, state - postcode, country” | Unable to calculate quote. Destination zone not found for the selected service. Please check the destination or carrier. |
State must not be longer than 3 characters | Unable to calculate quote. State value must be a 3-letter abbreviation (e.g. NSW, VIC). Please correct and try again. |
TNT: brisbane - 4000 | Unable to calculate quote. Destination zone not found for the selected service. Please check the destination or carrier. |
Connection timed out | Unable to calculate quote. The request timed out — please try again. |
Product not available on your contract | Unable to calculate quote. The product you’ve selected isn’t available under your contract. Please contact your carrier. |
State must be one of the following VIC,NT,WA,ACT,QLD,TAS,SA,NSW | Unable to calculate quote. The state must be one of: VIC, NT, WA, ACT, QLD, TAS, SA, or NSW. |
The product 3W05 you have entered is not available on your contract 0000500929 from lodgement 3108 to the destination 3122 | Unable to calculate quote. Product 3W05 is not available under contract 0000500929 for deliveries from 3108 to 3122. |
Examples
Example responses:
Successful quote response
{
"response": [
{
"courier_type": "CouriersPlease",
"quotes": [
{
"price": 20.4,
"estimated_transit_time": "3 business days"
}
],
"service_level": "standard",
"success": true
},
{
"courier_type": "eParcelExpress",
"quotes": [
{
"price": 30.4,
"estimated_transit_time": "1 business day"
}
],
"service_level": "express",
"success": true
},
{
"courier_type": "Priority",
"quotes": [
{
"delivery_date": "2014-09-18T00:00:00.000Z",
"delivery_window": "07:00-10:00",
"delivery_window_desc": "7AM-10AM",
"price": 24.24,
"courier_type": "Bonds"
},
{
"delivery_date": "2014-09-18T00:00:00.000Z",
"delivery_window": "10:00-13:00",
"delivery_window_desc": "10AM-1PM",
"price": 24.24,
"courier_type": "AlliedExpressP2P"
}
],
"service_level": "priority",
"success": true
},
{
"courier_type": "DoorDashOndemand",
"quotes": [
{
"price": 10.99,
"estimated_delivery_time": "2023-10-03T16:21:57.000+11:00"
}
],
"service_level": "on_demand",
"success": true
}
],
"count": 4
}
Successful quote response
{
"response": [
{
"courier_type": "SmartRoutingInternational",
"quotes": [
{
"price": 20.4,
"estimated_transit_time": "3 business days",
"customs_duty": 3.21,
"import_tax": 1.22,
"import_fee": 0.8,
"incoterm": "DDP"
}
],
"service_level": "standard",
"success": true
},
{
"courier_type": "JanioInternational",
"quotes": [
{
"price": 18.3,
"estimated_transit_time": "5 business days",
"incoterm": "DDU"
}
],
"service_level": "standard",
"success": true
},
{
"courier_type": "AramexInternational",
"quotes": [
{
"price": 30.4,
"estimated_transit_time": "4 business day"
}
],
"service_level": "express",
"success": true
},
{
"courier_type": "CouriersPlease",
"error": "cannot transport to country ID.",
"success": false
}
],
"count": 4
}
Failed quote responses
400 response:
{
"error": "bad_request",
"error_description": "Dutiable amount must be greater than 0 for international orders",
"success": false
}
Returned when the API key given does not match a valid merchant account:
{
"error": "invalid_merchant_account",
"error_description": "An unknown error has occurred."
}
Returned when an unknown error occurs. This can happen if Shippit has trouble with the combination of the input or merchant account configuration:
{
"error": "system",
"error_description": "An unknown error has occurred."
}