Rating
Get Rates – REST
Summary
Name: | Get Rates |
---|---|
Reason to Call: | To get a list of services, prices and transit times for a shipment. |
Input: | Basic address and parcel information |
Output: | Service(s), price(s), transit time(s) and expected delivery date |
Error Example: | No services are appropriate for the shipment of the defined parcel. Validate the parcel criteria against product specifications. |
Typical prior call: | No directly related prior calls |
Typical next call: | Create Shipment or Create Non-Contract Shipment |
Version history: | Release notes |
Request Details
Request – Structure for Get Rates
Endpoint
POST https://XX/rs/ship/price |
|
---|---|
Replace... | With... |
XX (Development) |
ct.soa-gw.canadapost.ca* |
XX (Production) |
soa-gw.canadapost.ca |
*If you’re not a commercial customer of Canada Post with a contract, but you are developing a third-party shipping solution intended for commercial customers, please see important information about how to test contract shipping in our sandbox environment.
HTTP Headers
HTTP Header Variable |
Value |
---|---|
Accept |
application/vnd.cpc.ship.rate-v4+xml (Note: */* in place of the header value will return an error) |
Content-Type |
application/vnd.cpc.ship.rate-v4+xml (Note: */* in place of the header value will return an error) |
Authorization |
Basic {Base64 encoding of userid:password} |
Accept-language |
en-CA or fr-CA |
Body
<?xml version="1.0" encoding="utf-8"?
>
<mailing-scenario xmlns=”http://www.canadapost.ca/ws/ship/rate-v4”>
xxx
</mailing-scenario>
Request – Elements
This section describes the XML elements of this service. The exact hierarchical structure of the XML inputs is shown in a diagram below this table.
Element Name | Type | Required / Optional | Description | ||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
mailing-scenario |
complex |
required |
This is the overall XML structure for the request input information. |
||||||||||||||||||||||||||||||||||||
customer-number |
simple |
conditionally required |
The customer number of the owner of the mail (mailed on behalf of customer). (numeric – up to 10 digits) This element is required to obtain discounted rates for commercial customers and Solutions for Small Business members. It must be omitted to obtain counter (i.e., consumer) rates. |
||||||||||||||||||||||||||||||||||||
contract-id |
simple |
conditionally required |
This element is required to obtain discounted rates for commercial customers when the customer-number element is provided. The contract-id element must be omitted for Solutions for Small Business members or general businesss users. (numeric – up to 10 digits) |
||||||||||||||||||||||||||||||||||||
promo-code |
simple |
optional |
If you have a promotional discount code, enter it here. The discount amount will be returned in the response under the adjustment structure. |
||||||||||||||||||||||||||||||||||||
quote-type |
simple |
optional |
Either commercial or counter.
Defaults to "commercial" if not specified. |
||||||||||||||||||||||||||||||||||||
expected-mailing-date |
simple |
optional |
The expected mailing date for the parcel. This date is used in calculations of the expected delivery date, however all rate quotes are based on the current system date. (YYYY-MM-DD date format) |
||||||||||||||||||||||||||||||||||||
options |
complex |
optional |
Structure containing the list of options desired for the shipment. |
||||||||||||||||||||||||||||||||||||
option |
complex |
required |
May occur 1 … 20 times. Holds the option code and qualifier for a selected option. |
||||||||||||||||||||||||||||||||||||
option-code |
simple |
required |
(10 alphanumeric) Holds the Canada Post-specific option code Valid values: |
||||||||||||||||||||||||||||||||||||
option-amount |
simple |
required depending on option-code |
Required for COV – the amount of insurance to be purchased. 5.2 digits e.g. 99999.99 |
||||||||||||||||||||||||||||||||||||
parcel-characteristics |
complex |
required |
Details of the parcel such as weight, dimensions and appearance. |
||||||||||||||||||||||||||||||||||||
weight |
simple |
required |
The weight of the parcel in kilograms. (99.999) Contained within parcel-characteristics. |
||||||||||||||||||||||||||||||||||||
dimensions |
complex |
optional |
Details of the parcel dimensions in centimeters. |
||||||||||||||||||||||||||||||||||||
length |
simple |
required |
Longest dimension. (3.1 digits e.g. 999.9 pattern) |
||||||||||||||||||||||||||||||||||||
width |
simple |
required |
Second longest dimension. (3.1 digits e.g. 999.9 pattern) |
||||||||||||||||||||||||||||||||||||
height |
simple |
required |
Shortest dimension. (3.1 digits e.g. 999.9 pattern) |
||||||||||||||||||||||||||||||||||||
unpackaged |
simple |
optional |
true | false
|
||||||||||||||||||||||||||||||||||||
mailing-tube |
simple |
optional |
true | false
|
||||||||||||||||||||||||||||||||||||
oversized |
simple |
optional |
true | false
|
||||||||||||||||||||||||||||||||||||
services |
complex |
optional |
Specifies the services to rate for this mailing scenario. |
||||||||||||||||||||||||||||||||||||
service-code |
simple |
required |
May occur 1 … 20 times. A specific service to be rated. If no instances of service-code are included in the request, all services applicable to the shipment and destination will be rated and returned.
|
||||||||||||||||||||||||||||||||||||
origin-postal-code |
simple |
required |
Postal Code from which the parcel will be sent. |
||||||||||||||||||||||||||||||||||||
destination |
complex |
required |
Defines the destination of the parcel. |
||||||||||||||||||||||||||||||||||||
domestic |
complex |
choice |
Defines the destination in Canada. |
||||||||||||||||||||||||||||||||||||
postal-code |
simple |
required |
The destination Postal Code. Format ANANAN (only accepted with uppercase) |
||||||||||||||||||||||||||||||||||||
united-states |
complex |
choice |
Defines destination in the United States. |
||||||||||||||||||||||||||||||||||||
zip-code |
simple |
required |
Used when country code = US. Format is 5 digits or 5-4 (for extended Zip Codes) E.g. 12345 or 12345-6789 |
||||||||||||||||||||||||||||||||||||
international |
complex |
choice |
Defines an international destination (destination other than the United States or Canada). Only one of international, us-destination or domestic can be specified. |
||||||||||||||||||||||||||||||||||||
country-code |
simple |
required |
The destination country code. Standard 2-character country code (valid country code other than CA or US) |
||||||||||||||||||||||||||||||||||||
postal-code |
simple |
optional |
The Postal Code field can be provided if the customer would like to receive a Guaranteed date for a Kahala Posts Group (KPG) country. |
Request – XML Diagram
The following is the hierarchical structure of the XML to be used for providing the shipping input information.
Response Details
Response – Elements
The following table describes the XML fields in the response. For a detailed view of the hierarchy of the response, see the diagram below.
Response Elements | ||
---|---|---|
Element Name | Type | Description |
price-quotes |
complex |
One or more price quotes depending on the number of postal services available or selected for the shipment. |
price-quote |
complex |
Costs and delivery standards for one particular postal-service. |
service-code |
simple |
The code for the mail service being quoted. |
service-link |
simple |
|
service-name |
simple |
Service name in preferred language. |
price-details |
complex |
Contains the detailed breakdown of the costs for this shipment if sent using this service. |
base |
simple |
(numeric 99999.99) Base cost of the shipment before taxes |
taxes |
complex |
Contains details on taxes charged for this shipment if sent using this service. (Will not contain all three tax type elements at once.) |
gst |
simple |
(numeric 99999.99) Goods and services tax. |
pst |
simple |
Provincial sales tax. |
hst |
simple |
(numeric 99999.99) Harmonized sales tax. |
percent |
attribute of HST, PST or GST |
numeric 999.99 value 1 to 100 Indicates the percentage of the tax applied to the base amount. |
adjustments |
complex |
Structure containing details of the adjustments to a price. |
adjustment |
complex |
Structure containing details of an adjustment to a price. |
adjustment-code |
simple |
Code identifying the adjustment. AUTDISC – Automation discount |
adjustment-name |
simple |
Adjustment name in preferred language. |
adjustment-cost |
simple |
(9999.99 numeric) Amount of the adjustment in dollars and cents. |
qualifier |
complex |
Contains the qualifier for the adjustment if applicable. |
percent |
simple |
numeric 999.99 value 1 to 100 If the adjustment is based on a percentage value the percentage will be returned. E.g. fuel surcharge |
due |
simple |
(numeric 99999.99) Total cost of the shipment if sent using this service including the cost of selected or required options, surcharges, discounts and taxes. |
options |
complex |
This structure contains the options that were selected and will also show free options and the parcel characteristics of mailing tube, unpackaged or oversize if selected or warranted by dimensions. |
option |
complex |
This structure contains details about a single option. |
option-code |
simple |
(10 alphanumeric) The unique code for the option. Structure to show additional details about the option if available. |
option-name |
simple |
Option name in preferred language. |
option-price |
simple |
(5.2 digits e.g. 99999.99 pattern) Cost of this option for the current parcel. |
qualifier |
complex |
(12 alphanumeric) Contains additional details about the option if available. |
step-size |
simple |
Indicates the step size for additional step pricing. E.g. the amount of coverage purchased in one step such as $100. |
step-cost |
simple |
(5.2 digits e.g. 99999.99 pattern) |
included-amount |
simple |
(5.2 digits e.g. 99999.99 pattern) |
max-value |
simple |
(5.2 digits e.g. 99999.99 pattern) |
included |
simple |
Indicates that the option is included at no charge. |
percent |
simple |
numeric 999.99 value 1 to 100 If the option is based on a percentage value the percentage will be returned. |
weight-details |
complex |
Will be empty if dimensions were not provided or actual parcel weight exceeds standard density weight for the dimensions. |
cubed-weight |
simple |
The volumetric equivalent of the actual weight (VE) of the package. VE is not a unit of measure, a mass or a volume. It allows for more accurate pricing of an item given its weight and the space it occupies. |
service-standard |
complex |
Contains details about package delivery if the quoted service is selected. |
am-delivery |
simple |
true | false Indicates whether a.m. delivery is defined as part of the service standard for this service. |
guaranteed-delivery |
simple |
true | false Indicates if the delivery date is guaranteed. |
expected-transit-time |
simple |
(99 numeric) Indicates the number of days from drop-off or pickup to 1st delivery attempt. |
expected-delivery-date |
simple |
(YYYY-MM-DD date format) The estimated date of delivery, starting from the expected mailing-date. |
Response – XML Diagram
The following diagrams show the response structure. Either price-quotes or messages (error response) will be returned.
Response – Possible Error Responses
A correctly structured request may receive a business rule validation error related to the validity of the parcel specifications and origin/destination or customer and contract selected. In this case, the HTTP error code will be 400 and there will be diagnostic message text in the preferred language (English or French).
Code | Message |
---|---|
1622 |
The expected-mailing-date must not be in the past. |
7050 |
The {0} option requires the {1} option. Please add the prerequisite or remove the option. |
9111 |
No services are appropriate for the shipment of the defined parcel. Validate the parcel criteria against product specifications. |
9112 |
The service {0} is not available for the specified country or customer/contract. |
For details, see Structure of the HTTP response.
Examples
Sample REST XML Request – Get Rates
<mailing-scenario xmlns="http://www.canadapost.ca/ws/ship/rate-v4">
<customer-number>1234567</customer-number>
<parcel-characteristics>
<weight>1</weight>
</parcel-characteristics>
<origin-postal-code>K2B8J6</origin-postal-code>
<destination>
<domestic>
<postal-code>J0E1X0</postal-code>
</domestic>
</destination>
</mailing-scenario>
Sample REST XML Response – Get Rates
<price-quotes>
<price-quote>
<service-code>DOM.EP</service-code>
<service-link rel="service" href="https://ct.soa-gw.canadapost.ca/rs/ship/service/DOM.EP?country=CA" media-type="application/vnd.cpc.ship.rate-v4+xml"></service-link>
<service-name>Expedited Parcel</service-name>
<price-details>
<base>9.59</base>
<taxes>
<gst>0.00</gst>
<pst>0</pst>
<hst>0</hst>
</taxes>
<due>10.21</due>
<options>
<option>
<option-code>DC</option-code>
<option-name>Delivery confirmation</option-name>
<option-price>0</option-price>
</option>
</options>
<adjustments>
<adjustment>
<adjustment-code>AUTDISC</adjustment-code>
<adjustment-name>Automation discount</adjustment-name>
<adjustment-cost>-0.29</adjustment-cost>
<qualifier>
<percent>3.000</percent>
</qualifier>
</adjustment>
<adjustment>
<adjustment-code>FUELSC</adjustment-code>
<adjustment-name>Fuel surcharge</adjustment-name>
<adjustment-cost>0.91</adjustment-cost>
<qualifier>
<percent>9.75</percent>
</qualifier>
</adjustment>
</adjustments>
</price-details>
<weight-details></weight-details>
<service-standard>
<am-delivery>false</am-delivery>
<guaranteed-delivery>true</guaranteed-delivery>
<expected-transit-time>2</expected-transit-time>
<expected-delivery-date>2011-10-24</expected-delivery-date>
</service-standard>
</price-quote>
<price-quote>
<service-code>DOM.PC</service-code>
<service-link rel="service" href="https://ct.soa-gw.canadapost.ca/rs/ship/service/DOM.PC?country=CA" media-type="application/vnd.cpc.ship.rate-v4+xml"></service-link>
<service-name>Priority Courier</service-name>
<price-details>
<base>22.64</base>
<taxes>
<gst>0.00</gst>
<pst>0</pst>
<hst>0</hst>
</taxes>
<due>25.20</due>
<options>
<option>
<option-code>DC</option-code>
<option-name>Delivery confirmation</option-name>
<option-price>0</option-price>
</option>
</options>
<adjustments>
<adjustment>
<adjustment-code>AUTDISC</adjustment-code>
<adjustment-name>Automation discount</adjustment-name>
<adjustment-cost>-0.68</adjustment-cost>
<qualifier>
<percent>3.000</percent>
</qualifier>
</adjustment>
<adjustment>
<adjustment-code>FUELSC</adjustment-code>
<adjustment-name>Fuel surcharge</adjustment-name>
<adjustment-cost>3.24</adjustment-cost>
<qualifier>
<percent>14.75</percent>
</qualifier>
</adjustment>
</adjustments>
</price-details>
<weight-details></weight-details>
<service-standard>
<am-delivery>false</am-delivery>
<guaranteed-delivery>true</guaranteed-delivery>
<expected-transit-time>1</expected-transit-time>
<expected-delivery-date>2011-10-21</expected-delivery-date>
</service-standard>
</price-quote>
<price-quote>
<service-code>DOM.RP</service-code>
<service-link rel="service" href="https://ct.soa-gw.canadapost.ca/rs/ship/service/DOM.RP?country=CA" media-type="application/vnd.cpc.ship.rate-v4+xml"></service-link>
<service-name>Regular Parcel</service-name>
<price-details>
<base>9.59</base>
<taxes>
<gst>0.00</gst>
<pst>0</pst>
<hst>0</hst>
</taxes>
<due>10.21</due>
<options>
<option>
<option-code>DC</option-code>
<option-name>Delivery confirmation</option-name>
<option-price>0</option-price>
<qualifier>
<included>true</included>
</qualifier>
</option>
</options>
<adjustments>
<adjustment>
<adjustment-code>AUTDISC</adjustment-code>
<adjustment-name>Automation discount</adjustment-name>
<adjustment-cost>-0.29</adjustment-cost>
<qualifier>
<percent>3.000</percent>
</qualifier>
</adjustment>
<adjustment>
<adjustment-code>FUELSC</adjustment-code>
<adjustment-name>Fuel surcharge</adjustment-name>
<adjustment-cost>0.91</adjustment-cost>
<qualifier>
<percent>9.75</percent>
</qualifier>
</adjustment>
</adjustments>
</price-details>
<weight-details></weight-details>
<service-standard>
<am-delivery>false</am-delivery>
<guaranteed-delivery>false</guaranteed-delivery>
<expected-transit-time>4</expected-transit-time>
<expected-delivery-date>2011-10-26</expected-delivery-date>
</service-standard>
</price-quote>
<price-quote>
<service-code>DOM.XP</service-code>
<service-link rel="service" href="https://ct.soa-gw.canadapost.ca/rs/ship/service/DOM.XP?country=CA" media-type="application/vnd.cpc.ship.rate-v4+xml"></service-link>
<service-name>Xpresspost</service-name>
<price-details>
<base>12.26</base>
<taxes>
<gst>0.00</gst>
<pst>0</pst>
<hst>0</hst>
</taxes>
<due>13.64</due>
<options>
<option>
<option-code>DC</option-code>
<option-name>Delivery confirmation</option-name>
<option-price>0</option-price>
</option>
</options>
<adjustments>
<adjustment>
<adjustment-code>AUTDISC</adjustment-code>
<adjustment-name>Automation discount</adjustment-name>
<adjustment-cost>-0.37</adjustment-cost>
<qualifier>
<percent>3.000</percent>
</qualifier>
</adjustment>
<adjustment>
<adjustment-code>FUELSC</adjustment-code>
<adjustment-name>Fuel surcharge</adjustment-name>
<adjustment-cost>1.75</adjustment-cost>
<qualifier>
<percent>14.75</percent>
</qualifier>
</adjustment>
</adjustments>
</price-details>
<weight-details></weight-details>
<service-standard>
<am-delivery>false</am-delivery>
<guaranteed-delivery>true</guaranteed-delivery>
<expected-transit-time>2</expected-transit-time>
<expected-delivery-date>2011-10-24</expected-delivery-date>
</service-standard>
</price-quote>
</price-quotes>