How to implement Ship From Store with Canada Post web services

Posted on May 29, 2014 by @ship_cpc in Shipping Solutions

As we discussed in an earlier post, Ship From Store is a critical part of your business’ omnichannel strategy.  In this article, we highlight the 5 key steps developers need to follow to implement Ship From Store using Canada Post web services.

You’ll also learn the programming details for creating Ship From Store shipping labels and considerations for developing an administrative tool for store staff.

Before you begin, note that you need to be a member of our Developer Program. If you’re not already a member, learn more about the program and how to join.

1. Implement 2 types of contract shipping web services Your Ship From Store solution will need to include 2 types of contract shipping:

  • No manifest shipping: Stores who ship fewer than 50 parcels a day do not need a manifest (hard-copy proof of payment normally presented at pickup). To identify a shipment that does not require a manifest, set the transmit-shipment element to true in your Create Shipment request. When you submit the request, order details are transmitted to Canada Post and you are billed for the shipment. The no manifest process is illustrated below.

No manifest shipping

  • Manifest shipping process: Stores who regularly ship more than 50 parcels a day will use this process. Manifest shipping follows the standard contract shipping process illustrated below. A successful completion of the process produces a manifest: hard-copy proof of payment presented at pickup.

Manifest shipping

2. Create a Ship From Store shipping label Creating a Ship From Store shipping label follows the standard contract shipping process, but several of the request elements have specific Ship From Store requirements. For example, each individual store must have its own Canada Post customer number.

The table below lists the Create Shipment elements that have special implications for Ship From Store solutions. For the full list of fields required for a Create Shipment request, refer to our contract shipping documentation: REST | SOAP.

Create Shipment request elements relevant to Ship From Store


Request element Description Rationale
  • mailed by customer (in the REST header)

  • mailed-by (in the body of the SOAP request)
This element reflects the customer number of the Ship From Store location. Each location must have its own customer number. Customer numbers are tied to one address. Canada Post pickup services use the address associated with the customer number. To ensure we pick up shipments at the right location, each Ship From Store location will need its own customer number.
mobo Use the same customer number you provided in the mailed by customer field.  
  • Set this element to true to indicate a shipment where no manifest is required.
  • Prefix it by the version number of the namespace, for example: <v6:transmit-shipment>true</v6:transmit-shipment>
  • The shipment will be transmitted immediately. A Transmit Shipments call is not required.
  • This element can only be used for stores that ship fewer than 50 parcels a day.
  • When you submit your Create Shipment request, you will be charged for the shipment immediately.
  • Your shipment cannot be voided.
sender The sender structure contains the address of the individual Ship From Store location. Shipping rates are based on where the parcel is shipped from. To ensure accurate shipping charges, the sender address will need to reflect the Ship From Store location.
settlement-info structure:
paid-by-customer Enter the main customer number for the company, not the customer number of the individual store. This ensures that all shipping charges are rolled up into one bill for the company’s main office.
contract-id All stores should use the main contract number for the company. This ensures that negotiated shipping discounts will be applied to all shipments.
intended-method-of-payment Allow a choice of payment by credit card or account. This allows for maximum payment flexibility. For example, in the event of temporary account issues, shipments could be paid for by credit card.

3. Create a return label Before you create your return label, determine where the returned merchandise will go. Depending on the inventory management policies of the retailer, the orders may go back to the Ship From Store location or to a central warehouse. You can create return labels using our dedicated returns web services (authorized and open) or using your Create Shipment request. These 3 methods are described below:

  • Authorized return – Use this method if you want to authorize return labels and make them available to customers upon request. This method requires the sender address.
  • Open return – Use this method if you do not need to authorize the return. Only the address of the return location is required.
  • In-the-box return – Use this method if you want to include a return label in the package with the original shipment. Create the return label within your Create Shipment request, as shown below.

Create shipment request element for return labels

Request element Description Rationale
Return-spec structure:
return-recipient The return-recipient structure contains the address where you want the item to be returned. Consider whether you want the returns to go back to the individual Ship From Store location or if you want to send them to a central warehouse.

 4. Complete the shipping process After you have printed your shipping labels, perform the following mandatory web service calls to complete the shipping process and produce a manifest. Note: These calls are only required for the manifest shipping process.

The above calls are required to ensure shipping and billing data is transmitted to Canada Post and that store staff can provide the manifest required at pickup. Performing these calls also ensures you avoid any extra charges.

5. Include administrative functionality To allow the merchant to manage the functionality of your Ship From Store solution, you will need to create an administrative tool. Consider designing the tool to allow users to perform the following tasks:

  • Control global settings – A merchant’s central administrator could use the tool to:
  • Control individual Ship From Store functions – each individual store would use the tool to manage and fulfill orders. Functions could include the following:
    • A printable order page that displays orders to be fulfilled.
    • An edit function to accommodate shopper modifications to ship-to addresses.
    • A print button to create each shipping label. The print button triggers the required contract shipping processes in the background.
    • The same print button could also print the return shipping label for in-the-box return labels.
    • A summary screen that shows store staff when they’ve completed their orders for the day.
  • Improve efficiency and accuracy  – Keep these suggestions in mind to reduce time spent by store staff preparing shipments. You'll also get the most accurate rating and addressing data and will minimize data entry:
    • Ensure the weight of each of your items is associated with your sku numbers so the weight can be pre-populated for each order. Store staff will not have to estimate parcel weights. This will minimize your risk of overstating the weight of your parcels.
    • Restrict shipping materials to a set number of shipping boxes for which dimensions are known. This helps you get more accurate shipping rates.
    • Ensure that orders sent to a store for fulfilment have pre-populated origin and destination addresses in the system to reduce data entry time.
    • Include the ability to split shipments when multi-part orders cannot fit in one box.
    • Use AddressComplete to help store staff capture accurate customer addresses for creating new orders or capturing shopper information for loyalty programs.

Sample ship from store


Sample ship from store

By following the 5 steps described above, you’ll ensure a smooth implementation of your Ship From Store program. If you have any questions, please contact our technical experts at If you are not already a member, join our Developer Program to get started.



Contact us about our e-commerce solutions for your business.

Contact Us

Or call:

1 (866) 282-7173

Mon – Fri (9 a.m. – 5 p.m. EST)

Developer Program

Integrate our web services directly into your e-commerce platform, website or custom applications using our APIs.

Join Now FREE