About Shipping Guide
No applicable services found
When no services are applicable for the requested you've made an empty resultset is returned. Reasons can be that the shipment was too large or too small, or the requested shipment was outside the coverage area of the requested services. Your code should handle these cases, i.e. an empty result, and should not fail because of this.
How can I fix this? You could e.g. use a Cargo product when you want to send large shipments, or you could request other services and see which ones that fits your need and find your service by using What would you like to send?
Trace messages
Trace messages are meant as debug messages to the developer and are not intended to be parsed by the application. Parsing the trace messages may result in unexpected behaviour since they may change. The new Shipping Guide endpoint supports structured errors so it shouldn't be necessary to parse trace messages, but if you see the need feel free to contact us.
Volume, weight, dimensions and loading meter
Shipping Guide use measurement of the package to calculate price of the
Shipment. Shipping Guide accept measurements in Volume
,
Weight
and Dimensions(Length, Width and Height)
.
Either Volume
or Weight
or
Dimensions
must be present in the request. It is recommended to
request Shipping Guide with accurate measurements to get most precise price.
Apart from these measurements, Loading meter
is a kind of
measurement which can be sent in the request for CARGO services to get more
precise price information.
Pre-registered - EDI
It is possible to tell the Shipping Guide API that your parcel is registered
using EDI when it is shipped, there is a parameter edi
for
that. Using this parameter may limit the available services and affect the
price of others.
Holidays and Home Delivery
There is no home delivery on bank holidays. It can also happen that Bring will not do home delivery on certain days during Christmas or Easter. The services will not take this into account. This must be handled by clients. End-users should not get delivery dates for holidays.
More than one customer number with JSON
Now we can request for multiple services with multiple customer number in single REST request similar to that SOAP version. Way this has been made possible is to send product along with API customer number delimited with :. More details can be found in the section Get shipment prices and estimated delivery
Adjusting prices
We do not support price adjustments in the Shipping Guide API. The pricing model is very simple now. It should be very easy to do price adjustment at client side.
Should I handle warnings?
Ideally clients should not parse these warning codes for any logic as they are bound to change. These are supposed to be treated as informational data. Warnings are sent out when Shipping guide is able to validate the request but missed some part of response for example Price or lead time due to unavailability of external systems. Ideally clients should not parse these warning codes for any logic as they are bound to change. These are supposed to be treated as informational data. Warning codes are documented in xsd as well.
HTTP status codes in JSON interface
The JSON interface uses HTTP status codes to indicate the success or failure of an API request.
Here are some codes with added context :
- 400 - Bad Request. If request parameters are bad, or any of the mandatory request parameters is missing.
- 401 - Unauthorised request. If user has not sent Mybring authentication header or invaild X-MyBring-API-Uid/X-Mybring-API-Key
- 404 - If the request doesn't come from API domain URL (api.bring.com).
Additional service XXX is not applicable for product YYY
If a requested additional service is not supported on requested product, API will just ignore that additional service for price calculation and return info as a trace message. Supported list of value added services on services can be found in the section Value added Services.
Multiple packages (kolli) on rest endpoint
The package parameters supports postfixed indexes to differentiate different packages.
The supported parameters are:
- width
- height
- length
- weight
- volumeindm3
- volumespecial
- nonstackable
- numberofpallets
- loadingmeter
To specify weight for two different packages or kolli you can query like
this: weight0=200&weight1=250
A parameter without an index is the same as the zero index
Meaning weight0=200
and weight=200
is specifying
weight for the same package.