Canada Post Guide

Want to use EasyPost to ship with Canada Post? This guide will break down all the necessary steps to make it happen using EasyPost to ship with Canada Post. It will cover:

Before you get started with onboarding your Canada Post account, we recommend generating a label through our API first to understand how the label generation will work. If you haven't generated your first shipping label with EasyPost, we recommend reading our Getting Started Guide to learn how.

Setting Up Your Canada Post Account

This article contains instructions on how to register for a Canada Post shipper account and how to register said account with EasyPost.

  • If you do not already have a Canada Post shipper account you can register for one on their website.
  • If you already have registered with Canada Post, log in to your account and verify that you have a valid payment method established by clicking on your account drop down menu (top right hand corner to the left of log out) and select My Profile. You will then see a Payment section where you can review your credit cards or other payment methods on file.

Log in into your EasyPost account and navigate to the Carrier Account Page. Here you can add a Canada Post carrier account to your EasyPost profile. When linking your Canada Post account to EasyPost you will be redirected to the Canada Post website to log into your account. This will authenticate your Canada Post account with EasyPost and all the relevant credentials will automatically be saved into the EasyPost system.

If you decide to add your Canada Post account via our API, please contact us at in order to confirm that it's enabled correctly.

Receiving Accurate Rates

Canada Post offers real time rates for EasyPost customers. Whether or not you have negotiated rates with Canada Post, it's their API that sends your rates to us. If you're not receiving the right rates for your account, contact your Canada Post representative ASAP.

Canada Post rates are based mostly around weight. They do not account for dimensions and do not have any predefined parcels. All you will need to submit is the weight of the parcel in order to receive a rate.

Transit Time
Max Dimensions (inches)
Max Weight (ounces)

Predefined Packages

Predefined Package
Dimensions (inches)
Weight (ounces)

Generating Shipping Labels

Generating shipping labels for Canada Post is exactly the same as generating them for any other carrier with EasyPost. See our Getting Started Guide for help generating your first shipping label.

EasyPost offers native Canada Post labels in PNG and ZPL formats.

Manifests and Pickups

Depending on what kind of customer you are - Retail or Contract - your manifesting requirements may differ. Canada Post doesn't require Retail customers to manifest their shipments. However, Contract customers are required to manifest their shipments, and will be charged a reassignment fee for every shipment they do not manifest. This is important to remember, because Canada Post will still pick up shipments that are not manifested, but they will charge you if you do so.

Because of this, we will send a notification to a Contract customer if they try to push shipments without a manifest - which you can create using our ScanForm object. If you'd like, we can turn off these notifications by marking all shipments as manifested on our API, but Canada Post will still charge you directly for non-manifested shipments that enter their mailstream.

Generating a manifest with EasyPost is simple:

  1. Create an empty Batch object
  2. Add shipments you'd like to manifest to the Batch
  3. Create a Manifest / ScanForm for the Batch
  4. Print out the manifest document for your Canada Post driver

Each shipment may only be included on one manifest - attempts to manifest a shipment more than once will be ignored. It's important to note this, since it's possible to create partial or incorrect manifests, which will result in Canada Post charging you a reassignment fee.

For example, if you add shipments 1 and 2 to a manifest, and then attempt to add 2 and 3, the second manifest will only contain shipment 3. You can inspect a Manifest / ScanForm's "tracking_codes" attribute to see which tracking codes were included.

For more information about creating Batches, check out our documentation on the links on the right.