# Canada Post Wallet Guide

The Canada Post Wallet account is an integrated carrier account provided directly through EasyPost. This option provides immediate access to Canada Post
shipping without requiring users to register directly with Canada Post. This streamlined setup offers a wide range of domestic and
international shipping services through the Wallet integration, which allows access to pre-negotiated discounted rates, streamlined
account setup, and consistent tracking.

---

## Prerequisites

### Account Registration

Sign up for an EasyPost account to obtain a **Test** and **Production** API
key. See Authentication and Key Management for more information.

> Note: Negotiated rates are only available in Production mode.

Please review the Getting Started Guide for more information.

### Carrier Setup

#### Create via EasyPost Dashboard

1. Log in to EasyPost and navigate to **Account Settings**.
2. Select the **Carriers** tab.
3. Select the **EasyPost Wallet Carriers** tab.
4. Find Canada Post in the list of carriers and select **Create Account** to complete the account creation process.

![Steps to create a Canada Post Wallet Account in the EasyPost web UI](https://docs.easypost.com/images/guides/canada-post/canada-post-account-web-ui.png)

#### Create via API

The API structure specified by EasyPost can also be used to create a new Canada Post Wallet Carrier account.

```shell
curl -X POST https://api.easypost.com/v2/carrier_accounts \
  -u "$EASYPOST_API_KEY": \
  -H 'Content-Type: application/json' \
  -d '{
  "carrier_account": {
    "type": "CanadaPostAccount",
    "payment_mode": "aggregation"
  }
}'
```

> Note: For carrier setup in **Forge**, refer to the
  Forge section of the Help Center.

### Software Requirements

Download an EasyPost Client Library or utilize the REST API with cURL.

### Documentation Review

Examine the EasyPost Objects section to understand the API's structure, which is critical for constructing
requests and interpreting responses.

Related:

- [Getting Started Guide](https://docs.easypost.com/guides/getting-started)
- [Manage Carrier Accounts](https://app.easypost.com/account/settings?tab=carriers)

---

## Rates

Special prenegotiated rates are available for Wallet accounts. These rates will be returned in CAD, but charged in USD through the EasyPost Wallet
based on the current exchange rate.

### Surcharges

Rate responses include itemized surcharges when applicable. These may include `fuel`, `dangerous_goods`, `address_correction`, or other fees. Each surcharge
is returned in a `surcharges` array within the `rate` and `shipment` objects and includes:

- `type`: Carrier-specific surcharge code.
- `category`: Standardized surcharge category used across all participating carriers.
- `amount`: Fee amount.
- `currency`: ISO 4217 format (e.g., `USD`).

For a full list of surcharge categories and descriptions, see the Surcharge Details in the Rate Response documentation.

---

## Billing

Canada Post is an aggregate carrier. The shipping workflow may involve multiple carrier services combined into one, with EasyPost managing billing, tracking, and carrier
relationships.

Billing is managed entirely through EasyPost Wallet:

- All charges are consolidated and billed through Easypost.
- Rates are pre-negotiated; no direct billing occurs between the shipper and Canada Post.
- Bill-on-Scan: Charges are applied when the carrier first scans the package.

This process allows EasyPost to provide a unified shipping solution using multiple underlying carrier services while consolidating charges into a single
EasyPost-managed transaction.

Related:

- [EasyPost Wallet and Bring Your Own Account Plans](https://support.easypost.com/hc/en-us/articles/39984592062605-EasyPost-Wallet-and-Bring-Your-Own-Carrier-Account-Plans)
- [Billing & Payments](https://support.easypost.com/hc/en-us/articles/360042414212-Billing-Payments)

---

## Service Levels

Canada Post delivers five days per week (Monday-Friday), except during holidays. The service levels through Wallet accounts include:

Service levels are generated from live carrier metadata and are not included in this file. Retrieve them from the Carrier Metadata endpoint: https://docs.easypost.com/docs/carrier-metadata. Use `carrier=canadapost`.

---

## Predefined Packages

There are no predefined packages for Canada Post.

---

## Generating Shipping Labels

With EasyPost, the process for generating shipping labels for the Canada Post Wallet carrier account is the same as generating them for any other carrier.

Review the Getting Started Guide for help generating a shipping label.

### One-Call Buys

One-call buys enable streamlined label purchasing through the EasyPost API by consolidating multiple operations into a single API request.
This feature is designed to simplify and accelerate the shipping process by combining the creation of a shipment, retrieval of rates,
and purchasing the shipping label into one efficient step.

See Reducing API Response Times for more information.

### Manifests

Manifesting is not required.

### Supported Options

#### Voiding and Refunds

Voiding labels is supported.

#### Label Formats

Canada Post labels are available in PDF, PNG, ZPL, and EPL2 formats.

#### QR Codes

EasyPost supports three types of QR code forms for domestic shipments through Canada Post:

- **RMA (box-free, label-free) QR code**: Used for returns where the recipient does not need to provide packaging or print a label.
- **Returns label QR code**: Used for returns where the recipient does not need to print the label.
- **Outbound label QR code**: Used for outbound shipments where the sender does not print the label.

Please refer to the Canada Post - QR Codes Help Center article for details.

Related:

- [Shipment Documentation](https://docs.easypost.com/docs/shipments)
- [Reducing API Response Times](https://support.easypost.com/hc/en-us/articles/360048825772-Reducing-API-Response-Times)

---

## Hazardous Materials (HAZMAT)

Hazardous Materials (or Dangerous Goods) as defined by the Transportation of Dangerous Goods Regulations,
are non-mailable matter. Canada Post will not accept packages that contain dangerous goods or that display dangerous goods symbols, except for
lithium batteries described in the ABCs of mailing.

Related:

- [Transportation of Dangerous Goods Regulations](https://laws-lois.justice.gc.ca/eng/regulations/SOR-2001-286/index.html)
- [Canada Post ABCs of Mailing](https://www.canadapost-postescanada.ca/cpc/en/support/articles/abcs-of-mailing/overview.page)

---

## Pickups

**Canada Post Wallet accounts do not support pickups.** All shipments must be dropped off at an eligible Canada Post location. Pickup scheduling
is not available through the EasyPost API for Wallet accounts.

---

## Tracking

EasyPost simplifies package tracking by offering two methods:

- Tracking with an existing number and carrier.
- Using a Tracker included with an EasyPost-purchased shipping label.

The service integrates webhooks for timely shipment updates. For detailed information on tracking methods, visit the Tracking Guide.

Related:

- [Trackers Documentation](https://docs.easypost.com/docs/trackers)
- [Trackers Guide](https://docs.easypost.com/guides/tracking-guide)

---

## Additional Resources

### Carrier Metadata

The Carrier Metadata endpoint can programmatically return information about service levels, predefined packages,
supported features, and shipment options.

Use this information to quickly integrate and make educated decisions about the mix of carriers for shipping needs. Additionally,
the Carrier Metadata endpoint is available to retrieve comprehensive information
about all carriers on the EasyPost platform, enhancing decision-making for carrier services.

### Support and Troubleshooting

In addition to the guidance provided in our Carrier Guides, EasyPost offers support to assist with FAQs, troubleshooting issues, and inquiries
related to the EasyPost platform.

Please visit the Help Center for more information.

Related:

- [Carrier Metadata](https://docs.easypost.com/docs/carrier-metadata)
- [Help Center](https://support.easypost.com/hc/en-us)

---

## Talk to a Shipping Expert

For questions about getting started with the EasyPost API please talk to a Shipping Expert or Contact Support.

Related:

- [Talk to a Shipping Expert](https://www.easypost.com/talk-to-easypost)
- [Contact Support](https://support.easypost.com/hc/requests/new)