# Canada Post from ShipStation

Canada Post from ShipStation offers both domestic and international shipping services for shipments originating in Canada.

This guide provides developers with the details needed to build Canada Post from ShipStation shipping capabilities into your ShipStation V2 API workflows.

ShipStation V2 API also allows you to connect your own existing Canada Post account and the requirements and service details are different than those for Canada Post from ShipStation. For details about connecting and using your own Canada Post account with ShipStation V2 API, see our [Canada Post Guide](/apis/docs/carriers/canadapost-guide).

## Requirements

`carrier_code`: `canada_post_walleted`

* A ShipStation V2 API account based in Canada.
* ShipStation Carriers must be activated for the account and have a positive account balance to create labels. See our [Using ShipStation Carriers page](/apis/shipengine/docs/carriers/setup) for details about activating in your account.
* A weight value is required for all shipments.


## Rates

Canada Post from ShipStation supports [rate shopping](/apis/shipengine/docs/rates/rates) with ShipStation V2 API.

## Service Details

Available Canada Post from ShipStation services are provided below. Please note that carriers may update their available services at any time. To ensure you are always using valid services, you can use the [list carrier services](/apis/shipengine/docs/reference/list-carrier-services) endpoint at any time.

### Domestic Services

| Service | API Code |
|  --- | --- |
| Regular Parcel (Carbon Neutral) | `regular_parcel` |
| Expedited Parcel (Carbon Neutral) | `expedited_parcel` |
| Xpresspost | `xpresspost` |
| Priority | `priority` |


### International Services

"USA" services ship from Canada to the US only.

| Service | API Code |
|  --- | --- |
| Expedited Parcel USA | `expedited_parcel_usa` |
| Priority Worldwide Envelope USA | `priority_worldwide_envelope_usa` |
| Priority Worldwide pak USA | `priority_worldwide_pak_usa` |
| Priority Worldwide Parcel USA | `priority_worldwide_parcel_usa` |
| Small Packet Air - USA | `small_packet_air_usa` |
| Tracked Packet - USA | `tracked_packet_usa` |
| Xpresspost USA | `xpresspost_usa` |
| Xpresspost International | `xpresspost_international` |
| International Parcel Air | `international_parcel_air` |
| International Parcel Surface | `international_parcel_surface` |
| Priority Worldwide Envelope Intl | `priority_worldwide_envelope_international   ` |
| Priority Worldwide pak Intl | `priority_worldwide_pak_international   ` |
| Priority Worldwide parcel Intl | `priority_worldwide_parcel_international   ` |
| Small Packet International Air | `small_packet_international_air   ` |
| Small Packet International Surface | `small_packet_international_surface` |
| Tracked Packet - International | `tracked_packet_international` |


### Return Services

Canada Post from ShipStation supports creating return labels for all domestic services. Return labels cannot be voided.

Review the [Return Labels page](/apis/shipengine/docs/shipping/returns) for details on creating return labels with ShipStation V2 API.

### Packages

Canada Post from ShipStation does not specify [carrier package types](/apis/shipengine/docs/shipping/carrier-packaging). You can use [custom package types](/apis/shipengine/docs/shipping/custom-package-types) or the generic `package` package type.

### Adding Shipment Insurance

Canada Post from ShipStation does not support adding carrier insurance to shipments created with ShipStation V2 API.

## Label Support

* Label sizes: 4" x 6"
* Label formats: PDF


### Label Reference Fields

Canada Post from ShipStation supports adding [custom label messages](/apis/shipengine/docs/labels/messages).

* Label message 1 and 2 supported


The following international services do not have a place for label messages to actually appear:

* Small Packet Air
* Small Packet Surface
* Tracked Packet International
* Tracked Packet USA


### Multi-Package Labels

Canada Post from ShipStation does not support creating [multi-package shipments](/apis/shipengine/docs/shipping/multi-package).

### Label Branding

Canada Post from ShipStation does not support [label branding](/apis/shipengine/docs/labels/branding).

### Voiding Labels

Canada Post from ShipStation supports voiding labels with ShipStation V2 API. You must wait 60 minutes after label creation before you can void a label and voiding must be done within 15 days of label creation.

See our [Void a Label page](/apis/shipengine/docs/labels/voiding) for details about voiding labels with ShipStation V2 API.

### Paperless Labels

Canada Post from ShipStation supports creating paperless labels for domestic services only.

See our [Paperless Labels page](/apis/shipengine/docs/labels/paperless) for details about creating paperless labels with ShipStation V2 API.

### Customs Declarations

International labels will either include a CN22 or CN23 form depending on the declared value. If it's over $500, a separate CN23 form will be included with the label. Customs declarations forms for international shipments can be downloaded from the `forms_download` object in the label response.

The Canada Post API now has character limits for SKU and Customs Descriptions:

* SKU: 15 characters limit
* Custom Description: 45 characters limit.


When a customs description exceeds the limit, you will receive an error on your label request.

## Delivery Confirmation

| Confirmation Type | API Code | Description |
|  --- | --- | --- |
| Delivery | `Delivery` | Delivery confirmation is requested. |
| Signature | `Signature` | Signature is required for the shipment to be delivered. This signature may be a neighbor, building manager, or the recipient can authorize the release of the package (without being present). |
| Proof of Age Required - 18 | `AdultSignature` | An adult signature is required for the shipment to be delivered. |
| Proof of Age Required - 19 | `DirectSignature` | A signature of somebody at the address is required. |


See our [Delivery Confirmation page](/apis/shipengine/docs/shipping/delivery-confirmation) for more details about using the `confirmation` property.

## Advanced Options

Canada Post from ShipStation supports certain [advanced options](/apis/shipengine/docs/carriers/advanced-options), which you can add to the `shipment` object when creating a shipment or label.

| Option | Type | Default Value | Description |
|  --- | --- | --- | --- |
| `dry_ice` | *boolean* | `false` | Indicates the shipment includes dry ice. Used in conjunction with the `dry_ice_weight` object. |
| `non_machinable` | boolean | `false` | Indicates that the package cannot be processed through sorting machines. |


To ensure you always have the most up-to-date information about a carrier's advanced options, use the [list carrier options call](/apis/shipengine/docs/reference/list-carrier-options).

## Manifests

Canada Post from ShipStation does not require [manifesting](/apis/shipengine/docs/shipping/manifests) your shipments.

## Scheduling Pickups

Canada Post from ShipStation does not support [scheduling pickups](/apis/shipengine/docs/shipping/pickups) using ShipStation V2 API.

## Service Points (PUDO)

Canada Post from ShipStation does not support shipping to [service points](/apis/shipengine/docs/pick-up-drop-off/pudo-intro).

## Tracking

Canada Post from ShipStation supports receiving tracking updates. Review our ​[Track a Package guides​](/apis/shipengine/docs/tracking/tracking)​ for details on tracking with the ShipStation V2 API.