Picture of EasyPost Shipping

EasyPost Shipping

Show your customers live carrier rates at checkout, then buy shipping labels, share tracking links and handle customs and manifests through your own EasyPost account. Work through the lessons to set it up, or search Troubleshooting for an answer.
Topic hub

EasyPost Shipping

Show your customers live carrier rates at checkout, then buy shipping labels, share tracking links and handle customs and manifests through your own EasyPost account. Work through the lessons to set it up, or search Troubleshooting for an answer.

Updated 29 Oct 2026

Lessons

Understand it

Lesson 1 of 13 | 5 min

How EasyPost works with your storefront

The two parts of the integration, what happens from checkout to label, and what it does not do.

Rates need one part, the full integration needs both

Live rates show at checkout as soon as EasyPost is active in Delivery Computation. Labels, shipping from your orders, tracking links and manifests only work when EasyPost is also turned on in Connect Settings.

  1. Know the two parts

    EasyPost works with your storefront in two parts. You switch each part on in a different place.

    PartWhere you switch it onWhat it does
    Rates at checkoutConfiguration > Delivery > Delivery Computation, EasyPost row, Is activeAsks EasyPost for live carrier rates and shows them to your customers at the delivery step.
    Labels, tracking and manifests (the Connect side)Configuration > Settings > Integrations > Connect Settings, EasyPost ticked in Enabled Connect Plugin and in Connect Plugins to Handle DeliveryBuys shipping labels (automatically or from the order), saves the tracking link on the order, sends labels to a hotfolder, creates manifests and receives manifest updates from EasyPost.

    Turn on both parts for the full integration. With only the first part you get rates at checkout, but no labels, tracking or manifests. Turn EasyPost on and connect your keys shows you how.

  2. Your customer picks a rate at checkout

    When a customer reaches the Delivery method step, your storefront works out parcels from the weights and sizes of what is in the basket and asks EasyPost for rates. The carrier services that come back are listed with the carrier's logo, alongside any other delivery methods you offer.

    Rates are shown in your storefront's currency, converted with the exchange rates you set under Configuration > Currencies. Your carrier and service settings only choose which of the returned rates your customers see. They never create a rate of their own.

    The Delivery method step at checkout, with two store delivery methods and two live USPS rates from EasyPost, Priority and Express, each with the carrier logo
  3. The order keeps the chosen service

    When the customer places the order, the carrier and service they chose are saved with it. Your staff see them in the order's shipping information under Customer selected details.

  4. A shipping label is bought

    A label is bought in one of two ways:

    • Automatically, when Is Buy Shipping Instantly is ticked in the EasyPost settings. The label is bought once, when the order reaches certain points, for example when its payment is marked as paid. Buy shipping labels lists them.
    • By your staff, from the order. On the order's Delivery info tab, click Show shipping information, check the parcels, then click Create Shipment.

    Once the label is bought, the label and a tracking link are saved on the order. Your customer sees the tracking link on their order in My Account.

  5. Some carriers need a manifest

    Some carriers need a manifest, also called a scan form. It lists your shipments with a barcode the carrier scans. For each carrier that needs one, you tick Requires manifesting and set a time. At that time each day your storefront creates a manifest of the orders placed for that carrier since the last one. EasyPost tells your storefront when the scan form is ready, and the file can be copied to a hotfolder. See Manifests (scan forms).

  6. What EasyPost gives you

    • Live rates from your carriers at checkout.
    • Shipping labels bought through your EasyPost account, automatically or by your staff.
    • A tracking link saved on each order and shown to your customer.
    • Customs details sent with international shipments (International shipping and customs).
    • Manifests for carriers that need them.

  7. Know who owns what

    • The EasyPost account is yours. Your storefront connects to it with your account's API keys.
    • Your carriers are set up in your EasyPost account. You can use EasyPost's wallet carriers, whose postage is billed to your EasyPost wallet, or connect your own carrier accounts to use your own negotiated rates.
    • EasyPost sets its own plans and fees. See EasyPost's plans for current pricing.

    Set up your EasyPost account walks you through the EasyPost side.

  8. Know what it does not do

    • It never marks an order as shipped or delivered. Buying a label does not change this, and your customer's order page still shows Not shipped yet. Mark orders as shipped yourself as part of your normal dispatch (see How to manage orders in Shared Print Operations).
    • It does not check or correct addresses.
    • It does not create return labels.
    • It does not buy insurance, book carrier collections, or refund or void labels.
    • It uses one ship-from address per storefront (Ship-from details, measures and currencies).
    • It sends weights to EasyPost in ounces and sizes in inches. There is no kilogram or centimetre option.

Lesson 2 of 13 | 3 min

Plan your setup

Answer a few questions first, so you only work through the lessons your setup needs.

Decide before you change settings

Settings you do not need make rates harder to understand. Answer these questions first, then follow only the lessons your answers point to.

  1. Which carriers will you use?

    EasyPost's wallet carriers, your own carrier accounts, or both? Check each carrier is on EasyPost's carrier list. Your own carrier accounts need a paid EasyPost plan.

    Go to: Set up your EasyPost account, then Choose carriers and services.

  2. Who sets the delivery price?

    Do you want live carrier rates from EasyPost at checkout, or your own delivery prices with EasyPost used only for labels?

    Go to: Choose carriers and services for live rates, or Your own delivery prices with EasyPost labels.

  3. How will labels be bought?

    Automatically, by your staff from each order, or not at all? For rates only, leave Is Buy Shipping Instantly off and do not create shipments.

    Go to: Buy shipping labels.

  4. Will you keep your other delivery methods?

    Your existing delivery methods can show at checkout alongside the EasyPost rates. Decide which ones stay.

    Go to: Test it as a customer to see what your customers get.

  5. Do your products have real weights and sizes?

    Rates are worked out from the weights and sizes of what is in the basket. Missing or rough values give wrong rates.

    Go to: Ship-from details, measures and currencies, then Parcels: how your orders are measured.

  6. Do you ship abroad, or use a carrier that needs manifests?

    International orders need customs details. Some carriers need a daily manifest.

    Go to: International shipping and customs and Manifests (scan forms).

  7. Does the person setting it up have access?

    The admin who sets it up needs permission to manage Connect plugins, Connect settings and delivery settings.

    Go to: Turn EasyPost on and connect your keys.

Set it up

Lesson 3 of 13 | 6 min

Set up your EasyPost account

Get your EasyPost account ready: billing, carrier accounts, and the Production and Test API keys your storefront needs.

EasyPost's screens can change

These steps take place in your EasyPost dashboard, not in your storefront. They match EasyPost's screens at the time of writing. If yours look different, follow EasyPost's own help for the same task.

  1. Know what you need from EasyPost

    Before you turn EasyPost on in your storefront, you need:

    • an EasyPost account that you own
    • at least one carrier in that account
    • a Production API key and a Test API key from that account

  2. Open Account Settings

    Sign in to your EasyPost dashboard. In the left-hand menu, click Account Settings. The page has the tabs Billing, Carriers, Users, API Keys and Administration.

  3. Set up how you pay EasyPost

    Click the Billing tab and set up billing as EasyPost asks. Postage for EasyPost's wallet carriers is billed to your EasyPost wallet, so make sure it can be paid before you buy real labels.

  4. Open the Carriers tab

    Click the Carriers tab. It explains your two options:

    • EasyPost Wallet Carriers: ship at EasyPost's discounted rates, with postage billed to your EasyPost wallet.
    • My Carrier Accounts: connect your own carrier accounts to ship with your own negotiated rates.

    Click Add Carrier to connect one of your own carrier accounts.

    EasyPost Account Settings, Carriers tab, with the Add Carrier button highlighted and the EasyPost Wallet Carriers and My Carrier Accounts tabs below
  5. Add your carrier account

    The Add Carrier Account dialog opens. Type your carrier's name in Search carrier by name, or pick it from the logos, then fill in the details the carrier asks for. Each carrier asks for different details: EasyPost's carrier guides list them.

    Repeat this for each of your own carrier accounts. Your storefront can only offer carriers that are in your EasyPost account.

    The Add Carrier Account dialog in EasyPost, with the Search carrier by name box highlighted above a grid of carrier logos
  6. Check your EasyPost plan

    Since April 2026, using your own carrier accounts needs EasyPost's paid Bring Your Own Carrier Accounts plan. Check the plans and current prices on EasyPost's plan page and choose the one that fits how you ship.

  7. Open the API Keys tab

    Click the API Keys tab. Keys are listed in two sections, Production API Keys and Test API Keys. Each key is hidden, with copy and show links.

    EasyPost Account Settings, API Keys tab, with the Production API Keys section and the Test API Keys section highlighted, each key hidden with copy and show links
  8. Copy one Production key and one Test key

    Click copy on one key in Production API Keys and one key in Test API Keys. Note which section each key came from: do not try to tell them apart by how they look.

    You always need the Production key, even while you test, because your storefront reads your list of carriers with it. You enter both keys in Turn EasyPost on and connect your keys.

    Treat the keys like passwords. They give full access to your EasyPost account, so do not put them in emails or share them.

  9. Understand test mode and production mode

    Test keyProduction key
    LabelsSample labels that cannot be used to shipReal labels
    PostageNo real postage is chargedYou pay for every label you buy
    RatesMay not match your negotiated ratesYour negotiated rates, where your carrier account has them
    TrackingTest tracking onlyReal tracking

    A carrier account in EasyPost can hold separate details for production and for test. Use the Test key while you set up and test, then switch to the Production key to buy real labels.

  10. If a key is exposed, replace it

    On the API Keys tab, use Add Additional API Key to create a new key of the same type. Enter the new key in your storefront, then disable the old key in EasyPost.

Lesson 4 of 13 | 10 min

Turn EasyPost on and connect your keys

Switch on both parts of EasyPost in your admin area, enter your EasyPost API keys and check that they work.

Interactive walkthrough

Turn EasyPost on and connect your keys

Switch EasyPost on in Connect Settings and Delivery Computation, enter your API keys and check the connection.

  1. Setup
  1. Check you have what you need Your admin role needs permission to manage Connect plugins, Connect settings and delivery settings. Have your EasyPost test and production API keys ready.
  2. Open Connect Plugins
    Open Connect Plugins Go to Configuration > Plugins > Connect Plugins. The page opens on the Installed Plugins tab.
  3. Find the EasyPost row
    Find the EasyPost row Scroll down to the EasyPost row (system name Mis.EasyPost). If there is no EasyPost row, it isn't installed yet: contact Support before you go on.
  4. Open Connect Settings
    Open Connect Settings Go to Configuration > Settings > Integrations > Connect Settings. The Save button is at the top.
  5. Tick EasyPost under Enabled Connect Plugin
    Tick EasyPost under Enabled Connect Plugin In the Enabled Connect Plugin list, tick EasyPost. Leave the other plugins as they are.
  6. Tick it under Connect Plugins to Handle Delivery and save
    Tick it under Connect Plugins to Handle Delivery and save Tick EasyPost under Connect Plugins to Handle Delivery and click Save. This list only shows enabled, saved plugins: if EasyPost isn't there yet, save first, then tick it and save again.
  7. Open Delivery Computation
    Open Delivery Computation Go to Configuration > Delivery > Delivery Computation. The page is headed Delivery rate computation methods.
  8. Click Edit on the EasyPost row
    Click Edit on the EasyPost row Click Edit on the row whose system name is Mis.EasyPost. The separate built-in carrier rows, such as USPS and FedEx, are not EasyPost.
  9. Tick Is active and click Update
    Tick Is active and click Update Tick Is active, then click Update. This switches on live carrier rates at checkout.
  10. Open the EasyPost settings
    Open the EasyPost settings Back in Connect Plugins, click Configure on the EasyPost row. If the heading reads EasyPost Settings (disabled), go back and tick EasyPost in Connect Settings first.
  11. Enter your keys and click Save
    Enter your keys and click Save In Api Key, paste your test key while you test, or your production key when live. Production Api Key always holds your production key. Click Save.
  12. Click Check Connection
    Click Check Connection Go back to Connect Plugins and click Check Connection on the EasyPost row. It tests both keys against your EasyPost account.
  13. Read the result
    Read the result If your keys work, the banner reads Connect Connection was successful for plugin: Mis.EasyPost. If not, it starts Connect Connection failed and ends with the reason.
  14. Check your carriers came through Click Configure again and scroll to Carriers and Services. Your EasyPost carrier accounts are listed in Select carrier. If one is missing, connect it in your EasyPost account.

Check Connection reports success and your EasyPost carriers are listed in the EasyPost settings.

Keep your API keys secret

Your API keys give full access to your EasyPost account. Only paste them into the Api Key and Production Api Key fields. Don't send them by email or chat, and don't show them in screenshots. If a key is ever exposed, add a new key in your EasyPost dashboard, disable the old one, then paste the new key here and click Save.

  1. Before you start: your admin role needs permission to manage Connect plugins (to open Connect Plugins, Configure and Check Connection), Connect settings (to open Connect Settings) and delivery settings (to open Delivery Computation). You also need your EasyPost test and production API keys (see Set up your EasyPost account).

  2. Open Connect Plugins

    In the admin area, go to Configuration > Plugins > Connect Plugins. The Connect Plugins page opens on the Installed Plugins tab. The list has the columns Plugin name, System name and Actions.

    Admin menu with Configuration > Plugins > Connect Plugins highlighted and the Connect Plugins list on the Installed Plugins tab
  3. Find EasyPost in the list

    Scroll down to the EasyPost row. Its system name is Mis.EasyPost and its Actions are Configure and Check Connection. An Enabled tag appears next to the name once EasyPost is ticked in Connect Settings (the next steps).
    If there is no EasyPost row on the Installed Plugins tab, EasyPost isn't installed on your storefront yet. Contact Support before you go on.

    Connect Plugins list with the EasyPost row highlighted, showing the Enabled tag, system name Mis.EasyPost and the Configure and Check Connection buttons
  4. Open Connect Settings

    Go to Configuration > Settings > Integrations > Connect Settings. The Connect Settings page opens with a Save button at the top.

    Admin menu with Configuration > Settings > Integrations > Connect Settings highlighted and the Connect Settings page open
  5. Tick EasyPost under Enabled Connect Plugin

    Next to Enabled Connect Plugin there is a list of tick boxes. Tick EasyPost. Leave the other plugins as they are.

    Enabled Connect Plugin list on Connect Settings with the EasyPost box ticked
  6. Tick EasyPost under Connect Plugins to Handle Delivery, then save

    Scroll down to Connect Plugins to Handle Delivery and tick EasyPost there too. Then scroll back up and click Save.
    Connect Plugins to Handle Delivery only lists plugins that are already enabled and saved. So if you have just ticked EasyPost under Enabled Connect Plugin and it isn't in this list yet, click Save first, then tick EasyPost here and click Save again. When the page reloads, check that EasyPost is ticked in both lists.
    These two ticks switch on the label side of EasyPost: buying labels, tracking links and manifests. Leave Verbose Logging Enabled off unless you are troubleshooting.

    Connect Settings with EasyPost ticked under Connect Plugins to Handle Delivery and Verbose Logging Enabled left unticked
  7. Open Delivery Computation

    Go to Configuration > Delivery > Delivery Computation. The page is headed Delivery rate computation methods.

    Admin menu with Configuration > Delivery > Delivery Computation highlighted and the Delivery rate computation methods list
  8. Edit the EasyPost row

    Find the EasyPost row (system name Mis.EasyPost) and click Edit in the Edit column. The Is active box on that row becomes tickable and Update and Cancel buttons appear.
    Use the row whose system name is Mis.EasyPost. Your storefront also has separate built-in carrier rows such as USPS (US Postal Service) and FedEx; those are not EasyPost.

    Delivery rate computation methods list with the EasyPost row highlighted
  9. Tick Is active and click Update

    Tick Is active, then click Update. This switches on the rates side of EasyPost: live carrier rates at checkout.
    Rates at checkout only need Is active. Labels, tracking links and manifests also need the Connect Settings ticks from the steps above. Set up both for the full integration.

    EasyPost row in edit mode with Is active ticked and the Update and Cancel buttons
  10. Open the EasyPost settings

    Go back to Configuration > Plugins > Connect Plugins and click Configure on the EasyPost row. (The Configure button on the EasyPost row in Delivery Computation opens the same page.) The EasyPost Settings page opens, with a (Back to plugin list) link and a Save button.
    If the heading reads EasyPost Settings (disabled), EasyPost isn't ticked under Enabled Connect Plugin. Go back to Connect Settings and fix that first.

    Connect Plugins list with the Configure button on the EasyPost row highlighted
  11. Enter your API keys and save

    The Api Keys group is at the top. Paste your keys from your EasyPost dashboard like this:

    Your storefrontApi KeyProduction Api Key
    Live (real labels)Your production keyYour production key
    TestingYour test keyYour production key (always)
    Api Key is used for every rate, label and manifest request, so it decides whether you are in test mode or live. Production Api Key is only used to read the list of carriers on your EasyPost account (and by Check Connection), which is why it always holds your production key.
    While Api Key holds your test key, labels are test labels that can't be used to ship, and rates may not match your negotiated rates. Don't rely on what a key looks like to tell test from production: check which one you copied in EasyPost.
    Click Save.

    EasyPost Settings page with the Api Keys group highlighted, showing the Api Key and Production Api Key fields with their values hidden
  12. Click Check Connection

    Click (Back to plugin list), or go to Configuration > Plugins > Connect Plugins. On the EasyPost row, click Check Connection. It tests both keys against your EasyPost account.

    Connect Plugins list with the Check Connection button on the EasyPost row circled
  13. Read the result

    A banner shows the result on the same page. If your keys work, it reads Connect Connection was successful for plugin: Mis.EasyPost.
    If something is wrong, the banner starts Connect Connection failed. Plugin: Mis.EasyPost and ends with the reason:

    Reason at the end of the bannerWhat to do
    Api Key not configuredThe Api Key field is empty. Paste your key and click Save.
    Production Api Key not configuredThe Production Api Key field is empty. Paste your production key and click Save.
    Api Key is not validEasyPost rejected the key in Api Key. Copy it again from your EasyPost dashboard.
    Production Api Key is not validEasyPost rejected the key in Production Api Key. Copy your production key again.
    Api Key and Production Api Key are not validBoth fields hold the same key and EasyPost rejected it. Copy your production key again.
    A successful check proves your keys work. It doesn't prove that rates will come back at checkout: that also needs your ship-from details, measures, currencies, parcels and services (the next lessons).

    Connect Plugins page with the green banner Connect Connection was successful for plugin: Mis.EasyPost
  14. Check your carriers came through. Click Configure on the EasyPost row again and scroll down to the Carriers and Services group. Your EasyPost carrier accounts are listed in the Select carrier dropdown. If the group shows only a warning that the carriers and services settings will be available after you enter valid keys, your Production Api Key is empty or not valid. If one carrier is missing, it isn't connected in your EasyPost account. Your storefront keeps the carrier list for up to 30 seconds, so after adding a carrier in EasyPost, wait 30 seconds and reload the page. You choose the services shoppers see in Choose carriers and services.

Lesson 5 of 13 | 6 min

Ship-from details, measures and currencies

Give EasyPost your ship-from address, and check that your storefront has the measures and currencies EasyPost needs.

A missing currency hides rates

If EasyPost returns a rate in a currency that isn't in your Configuration > Currencies list, every rate from that request is dropped, not only the rates in that currency. Shoppers may then see no EasyPost rates at all.

  1. Go to Configuration > Plugins > Connect Plugins and click Configure on the EasyPost row. On the EasyPost Settings page, scroll down to the Vendor Info group. This is your ship-from address. Your storefront has one ship-from address, used for every EasyPost shipment.

  2. Fill in Vendor Info

    Fill in the ship-from fields:

    • Vendor Name
    • Vendor's Company Name
    • Vendor's Street1
    • Vendor's City
    • Vendor's State Province (Abbreviation), for example TX
    • Vendor's Zip Postal Code
    • Vendor's Country (Two Letter Iso Code) (next step)
    • Vendor's Phone
    • Vendor's Email
    Vendor's Company Name, Vendor's Phone and Vendor's Zip Postal Code are essential: if any of them is empty, your storefront can't get rates. There is no second street line.
    Vendor Name is the name used to sign customs forms. It isn't part of the ship-from address.

    Vendor Info group on EasyPost Settings with the ship-from fields highlighted; street and phone values hidden
  3. Use the two-letter country code

    In Vendor's Country (Two Letter Iso Code), type the two-letter ISO code of the country you ship from, for example GB for the United Kingdom or US for the United States. Don't type UK or the full country name. If this field is empty or the code is wrong, no EasyPost rates come back at checkout.
    Click Save at the top of the page.

    Vendor's Country (Two Letter Iso Code) field highlighted with the value US
  4. Check you have an ounce weight

    EasyPost works in ounces and inches. Your storefront uses two measures to convert your product weights and sizes for EasyPost.
    Go to Configuration > Measures > Measure Weights. The Weights list must have a row whose System keyword is ounce. It doesn't have to be your primary weight. Don't change its system keyword.
    If the row is missing, EasyPost rates fail with the error Could not load "ounce" measure weight.

    Weights list with the ounce row highlighted, system keyword ounce
  5. Check you have an inches dimension

    Go to Configuration > Measures > Measure Dimensions. The Dimensions list must have a row whose System keyword is inches. It doesn't have to be your primary dimension. Don't change its system keyword.
    If the row is missing, EasyPost rates fail with the error Could not load "inches" measure dimension.
    The names of these two rows are the units shown next to the parcel limits in Parcels: how your orders are measured.

    Dimensions list with the inch row highlighted, system keyword inches
  6. Check your currencies

    EasyPost returns each rate in the currency the carrier service is quoted in, for example US dollars for USPS. Your storefront converts it into your store currency using the Rate you set for that currency.
    Go to Configuration > Currencies and check that:

    • every currency your carriers quote in is in the list (see the warning below), and
    • its Rate is correct.
    The rate makes a real difference. With US Dollar at a Rate of 1.0000 against a pound store currency, a $8.74 USPS rate shows at checkout as £8.74. With a Rate of 1.2500, the same rate shows as £6.99. To change a rate, click Edit on that currency's row.
    For more on currencies, see Storefront Configuration Problem Solvers ("How do I manage Storefront Currency?").

    Configuration > Currencies list with the US Dollar row highlighted, showing currency code USD and its rate
Lesson 6 of 13 | 10 min

Parcels: how your orders are measured

Choose how your storefront turns each order into parcels, set realistic parcel limits and give every product a real weight and size, so EasyPost returns the right rates.

Never leave the parcel limits at 1

Auto Calculated Parcel Max Weight and Auto Calculated Parcel Max Size both start at 1. At 1 ounce and 1 inch, almost every order is split into many parcels and the rates come back hugely inflated. Always set real values, and never leave them empty.

  1. Go to Configuration > Plugins > Connect Plugins, click Configure on the EasyPost row and scroll down to the Parcels group. These settings decide how each order is turned into parcels before your storefront asks EasyPost for rates. Carriers price by weight and size, so these settings have a big effect on the rates shoppers see. A good starting point for most stores is Order and Auto calculated, the defaults.

  2. Choose how parcels are built

    Parcels Allocation Level decides how many parcels at least:

    • Order (default): the whole order.
    • OrderLine: at least one parcel per order line.
    • OrderLineQuantity: at least one parcel per unit, so large quantities mean many parcels.
    Parcel Size Calculation decides where the parcel sizes come from:
    OptionWhat it sends to EasyPost
    Auto calculated (default)Parcels worked out from your products' weights and sizes, at the allocation level you chose, within your max weight and size.
    Predefined ParcelsOnly the boxes in your Predefined parcels list, with their sizes and weights.
    Predefined Parcels NamesThe predefined boxes with their names as well as their sizes and weights. The here link in the hint shows the supported names.
    Predefined Parcels Names and Auto calculatedTwo requests to EasyPost, one for each approach. Shoppers can choose from all the services returned.
    Predefined Parcels Names and Predefined parcelsTwo requests to EasyPost, one for each approach. Shoppers can choose from all the services returned.

    Parcels group with Parcels Allocation Level set to Order and Parcel Size Calculation set to Auto calculated
  3. Set real parcel limits

    These two limits are used by Auto calculated (and the combination with it). When a calculated parcel is heavier or bigger than the limit, it is split into several equal, smaller parcels.

    • Auto Calculated Parcel Max Weight: the heaviest parcel, in ounces.
    • Auto Calculated Parcel Max Size: the largest parcel, in inches, measured as a girth figure: 2 × length + 2 × height + width, using the way round that gives the largest figure. It is not the longest side. For example, a 12 × 9 × 2 inch box counts as 2 × 12 + 2 × 9 + 2 = 44 inches.
    Set both to the smallest limits among the carriers and services you use. The unit in brackets after each label is the name of your store's ounce and inches measures, so it may not read exactly as in the screenshot.

    Auto Calculated Parcel Max Weight and Max Size fields highlighted with real values
  4. Add predefined parcels (Predefined modes only)

    Skip this step if you use Auto calculated. The Predefined parcels list is only used by the Predefined options.
    Click Add new parcel. A new row appears with the name Double click to set. Fill in its Name, Height (inches), Width (inches), Length (inches) and Weight (ounce). These are always in inches and ounces. Repeat for each box, use Delete to remove one, then click Save. If you choose a Predefined option, add at least one parcel.
    Things to know:

    • Your storefront doesn't pick the best-fitting box. Every box in the list is sent.
    • With Parcels Allocation Level set to Order and boxes that have their own weight, the rate is the same whatever quantity is ordered. (If Use Infigo calculated weight in parcels fills in a box's weight, the weight follows the order.) With OrderLine or OrderLineQuantity, the boxes repeat per line or per unit.
    • Use Infigo calculated weight in parcels: when ticked, a box with weight 0 takes the weight your storefront calculates for the order.

    Predefined parcels list with the Add new parcel button circled and one parcel row with Name, Height, Width, Length and Weight columns
  5. Turn on cube root

    Go to Configuration > Settings > Delivery Settings. Tick Use cube root for determining total package dimension and click Save. With it on, Auto calculated estimates a parcel from the cube root of the items' combined size, roughly a cube-shaped box. With it off, parcels come out larger and orders split into more parcels.

    Delivery Settings page with Use cube root for determining total package dimension ticked
  6. Give every product a weight and size

    Auto calculated can only be as good as your product data. Go to Catalogue > Products > Product Management and open the product. The weight and size are not on the Product Info tab: click the Product variants tab, then Edit on the variant. Fill in Weight, Length, Width and Height for one unit. Enter them in your store's units, shown in brackets after each field. Your storefront converts them to ounces and inches for EasyPost. Click Save.
    A product with weight 0 can still get rates, but they won't be right. For more on weights and dimensions, see Change Weight / Dimensional Units & Apply Them to Products.

    Product variant edit page with Weight 2 lb and Length 12, Width 9, Height 2 inch highlighted
  7. Multiply Quantity by Record Count (in the General group of EasyPost Settings) is off by default. When it's on, the quantity is multiplied by the record count for parcel calculation, so orders for products with records can weigh far more. Leave it off unless you need it.

  8. Check the parcels before you buy a label. When you create a shipment by hand, look at the parcels in the order's shipping panel and change them if they don't match what you will send, before you click Create Shipment. See Buy shipping labels. Before you load your whole catalogue, test with one product that has a real weight and size (Test it as a customer).

Lesson 7 of 13 | 10 min

Choose carriers and services

Decide which carrier services your customers can pick at checkout, what they are called, what order they appear in and what extra you charge.

Keep your carriers connected in EasyPost

The carrier list comes from your EasyPost production account. If you save the EasyPost settings while a carrier is missing from that account, its service settings and manifest settings on your storefront are deleted. Check your carriers in EasyPost before you save.

  1. Open the EasyPost settings

    Go to Configuration > Plugins > Connect Plugins. On the EasyPost row, click Configure. The EasyPost Settings page opens. Scroll down to the Carriers and Services box.
    If the box shows only a warning instead of a carrier list, your Production Api Key is blank or not valid, or your EasyPost account has no carrier accounts yet. Go back to Turn EasyPost on and connect your keys and Set up your EasyPost account.

  2. Pick a carrier

    Open the Select carrier dropdown and choose a carrier. The list shows the carrier accounts connected in your EasyPost production account. If a carrier is missing, it is not connected in EasyPost: add it there first.
    The table below lists that carrier's services, with the columns Services, Friendly Name, Enabled for Checkout, Order and Actions. Repeat the next steps for each carrier you use.

    Carriers and Services box with USPS chosen in the Select carrier dropdown and the services table below
  3. To switch every service of the selected carrier on or off in one go, click Select checkout actions and choose Enable all the services or Disable all the services. This table only filters the rates EasyPost sends back. It never creates a rate: a ticked service appears at checkout only when EasyPost returns a rate for it.

  4. Edit a service

    In the row of the service you want to change, click Edit in the Actions column. A Service configuration pop-up opens. The service name at the top is locked for the built-in services.
    You can only delete services you added yourself. The built-in services have no working Delete button.

    Services table with the Edit button highlighted on the Priority row
  5. Set how the service shows at checkout

    In the pop-up:

    • Enabled for Checkout: tick to offer this service at checkout when EasyPost returns a rate for it. Untick to hide it.
    • Enabled for connect plugins: tick to allow this service to be chosen when you link one of your own delivery methods to EasyPost (see Your own delivery prices with EasyPost labels).
    • Friendly Name: the name customers see instead of the name EasyPost sends. Leave it blank to keep EasyPost's name.
    • Order: lower numbers appear first. Services with the same number are sorted by price, cheapest first. The default is 10.
    Click Save in the pop-up.

    Service configuration pop-up with Enabled for Checkout, Enabled for connect plugins, Friendly Name, Additional Classes and Order highlighted
  6. Add a service EasyPost offers but the list does not

    If a carrier service you want is not in the table, click Add Service below the table. In the pop-up, type the service code in the service name field exactly as EasyPost names it, set the other fields and click Save. Add Service adds a service to the selected carrier. It cannot add a carrier.

    Add Service button below the services table, with an unticked GroundAdvantage row above it
  7. Check for new services that start switched off. On the first load, every built-in service is ticked for checkout. After that:

    • a service EasyPost returns that the list does not know is added to the table automatically, with Enabled for Checkout unticked, Enabled for connect plugins ticked and an Order one higher than the current highest;
    • built-in services added later to a carrier that already has services start with both boxes unticked.
    These services do not show at checkout until you tick Enabled for Checkout. Look through the table again after your first test checkout.

  8. Choose signature and Saturday delivery

    Scroll up to the General box. Signature and Saturday delivery each have three options:

    • None (the default): show only options without it.
    • Required: show only options with it.
    • Optional: show both.
    Trap: Optional doubles the rate requests to EasyPost and can make the same service appear more than once at checkout, once plain and once marked Signed or Saturday.

    Signature and Saturday delivery dropdowns in the General box, both set to None
  9. Choose the rate type

    In Rate type, choose which EasyPost price customers see:

    • Rate (the default): the actual rate quote for the service.
    • Retail Rate: the in-store rate given with no account.
    • List Rate: the non-negotiated rate for having an account with the carrier.
    If EasyPost sends no price of the type you chose for a rate, Rate is used for that rate.

    Rate type dropdown set to Rate, with the explanation of Rate, Retail Rate and List Rate
  10. Add your own fees

    To add a mark-up on top of EasyPost's price, scroll up to the Shipping Fees box:

    • Additional Shipping Fee type: Absolute amount adds the fee as an amount; Percentage raises the rate by that percentage.
    • Additional Shipping Fee Per Parcel and Additional Shipping Fee Per Order: the fee values. The per-order fee is added once per order.
    Each service's Service configuration pop-up has the same three fee fields. If you set both, the fees in this box and the service's own fees are added together. Leave the fees at 0 if you do not want a mark-up.

    Shipping Fees box with Additional Shipping Fee type set to Absolute amount and both fee fields at 0
  11. Show delivery days or dates

    In the General box, Show Delivery Date/Days adds the carrier's delivery estimate after each rate at checkout. Choose No (the default), Delivery Days or Delivery Date. The estimate is the carrier's transit time as EasyPost sends it. It does not include your production time.
    Use Easypost Delivery Days in delivery offsets (off by default) uses those delivery days to work out the delivery offset for each method, and replaces the day offset set in your delivery restriction. Only turn it on if you have a delivery restriction set up correctly.

    Show Delivery Date/Days dropdown set to No, with Use Easypost Delivery Days in delivery offsets below it
  12. Click Save at the top of the EasyPost Settings page. Then check the result at checkout, as described in Test it as a customer.

Lesson 8 of 13 | 6 min

Test it as a customer

Go through your own checkout to the delivery step and check that EasyPost rates come back the way you set them up.

Leave Debug Mode off

On the EasyPost Settings page, the General box has a Debug Mode tick box. It adds the parcel calculation details to the delivery option text that shoppers see. It is not a logging switch. Keep it unticked on a live storefront.

  1. Make sure the product you test with has a real weight, length, width and height on its variant. EasyPost works out parcels and prices from these values, so a product with no weight or size gives you rates that tell you little. See Change Weight / Dimensional Units & Apply Them to Products.

  2. Shop as a customer would. You can sign in as a test customer, or impersonate a customer from the admin area: see Impersonate a Customer. Add the product to the basket and start the checkout.

  3. Enter a delivery address in a country your carriers ship to, and continue until you reach the Delivery method step.

  4. Check the EasyPost rates

    EasyPost options show with the carrier's logo and an information icon, next to any other delivery methods your storefront offers. Check that:

    • the services you ticked in Enabled for Checkout appear, with your Friendly Name if you set one;
    • they appear in the Order you chose;
    • the prices include any fees you added.
    Prices show in your storefront's currency. EasyPost sends them in the currency of the quote and your storefront converts them with the exchange rates under Configuration > Currencies, so check those rates too.

    Delivery method step at checkout listing Standard and Premium, then USPS Priority and Express rates with the USPS logo
  5. With a test API key, EasyPost sends test rates. They may not match your real negotiated prices, and not every service you ticked may come back. Check prices again once you switch to your production key.

  6. If no EasyPost options appear, either EasyPost returned no rates for that basket and address, or a setup problem on your storefront stopped the request (for example ship-from details, measures or a missing currency). The checkout may show No shipping options found or an error message. Work through Start here: no EasyPost rates at checkout in the troubleshooting section.

  7. Know when the delivery step is skipped

    Go to Configuration > Settings > Order Settings. In the Checkout Flow section, the setting "Hide delivery method step if only one options is available" hides the Delivery method step when there is exactly one option. If it is ticked and only one option comes back during your test, you will not see the step at all. See Shorten Your Checkout: Skip the Steps You Don't Need.

    Order Settings, Checkout Flow section, with the hide delivery method step setting ticked
  8. Check that Debug Mode is off

    Back on the EasyPost Settings page, make sure Debug Mode in the General box is unticked. If you need detail on what EasyPost did, turn on Verbose Logging Enabled under Configuration > Settings > Integrations > Connect Settings instead, and turn it off when you are done. See the Verbose Logging section of Other Integration Problem Solvers.

    Debug Mode tick box in the General box of the EasyPost settings, unticked

Run it every day

Lesson 9 of 13 | 12 min

Buy shipping labels

Buy labels automatically when an order reaches a set point, or create them yourself from the order page, and find the label and tracking link afterwards.

Production keys buy real postage

With your test API key, labels are test labels: they cost nothing and cannot be used to ship. With your production key, every label bought, by any of the routes below, is real postage on your EasyPost account. Practise with the test key.

  1. Decide whether labels are bought automatically

    On the EasyPost Settings page (Configuration > Plugins > Connect Plugins, EasyPost row, Configure), find Is Buy Shipping Instantly in the General box. It is off by default.

    • Ticked: a label is bought automatically for each EasyPost order, subject to the rules in the next two steps.
    • Unticked: no label is bought automatically. You create labels from the order page (steps 6 to 10). Leave it unticked if you only want EasyPost rates at checkout.
    Click Save after any change.
    The hint under the setting mentions checkout only. The full list of moments when a label is bought is in the next step.

    Is Buy Shipping Instantly tick box in the General box of the EasyPost settings
  2. When it is ticked, the label is bought when the order reaches one of these points:

    • the order status changes to Complete or Confirmed;
    • an order line is approved;
    • the payment status changes to Paid;
    • an order line's production status changes to Complete;
    • output is created for an order line;
    • your storefront sends the order on to its Connect plugins, following the rules in Connect Settings.
    It runs only for orders with at least one line that needs shipping and an EasyPost rate or a delivery method mapped with Connect Link, and only once per order. If the order is not ready to send on at that point, nothing is bought then, and a later point can buy it.

  3. International orders are held back from automatic buying unless Use accurate customs info is ticked. The order's shipping lines get the status Connect Additional Action Required and no label is bought. See International shipping and customs.

  4. Choose the label date

    Send calculated DispatchBy as label date when buying controls the date on the label. When it is ticked, your storefront sends the dispatch date worked out from your production restrictions as the label date, both when it asks EasyPost for rates at checkout and when the label is bought. If approval delays leave that date in the past, the carrier can refuse the label. If long production times push it far ahead, carriers can drop services at checkout. Untick the setting if that happens. See Production Restrictions and the Delivery Countdown Feature.

    Send calculated DispatchBy as label date when buying tick box in the General box
  5. Send labels to a hotfolder

    In the Plugin Artifacts box:

    • Labels (Paperwork) Hotfolder Id: the id of the hotfolder that receives the label. The hint under the field lists your available hotfolders.
    • Packaging Slip hot folder and Job Ticket hot folder: hotfolder ids for copies of the packaging slip and job ticket. Leave them empty if you do not want them.
    Trap: the packaging slip and job ticket hotfolders do nothing unless Labels (Paperwork) Hotfolder Id is also set. See Hotfolders and Print Locations.

    Plugin Artifacts box with the Labels (Paperwork) Hotfolder Id, Packaging Slip hot folder and Job Ticket hot folder fields
  6. Create a label by hand: open the order

    Open the order in your admin area. On the Edit order details page, click the Delivery info tab.

    Edit order details page with the Delivery info tab highlighted
  7. Click Show shipping information

    Scroll to the bottom of the tab. Next to Delivery Info, click Show shipping information. The EasyPost shipping panel opens in a pop-up on the same page.

    Delivery info tab with the Show shipping information button highlighted at the bottom
  8. Check what the customer chose

    Customer selected details shows the carrier, the service, and whether delivery confirmation and Saturday delivery were chosen at checkout. The label is bought for this carrier and service.

    Customer selected details showing USPS, Priority, Delivery confirmation False and Saturday delivery False
  9. Check the parcels

    The grid lists the parcels worked out for the order, with height, width and length in inches and weight in ounces. Check them against what you will actually send before you create the shipment. To change them, delete a parcel with Delete, add one with Add new parcel (its cells read Double click to set: double-click a cell to type a value), or pick one of your predefined parcels from the dropdown and click Add predefined parcel.

    Parcel grid with one parcel, 6 by 9 by 12 inches and 33 ounces, plus Add new parcel and Add predefined parcel
  10. Click Create Shipment

    Click Create Shipment once. This buys the label from EasyPost. With a test key it is a test label at no cost. With a production key it is real postage.

    Create Shipment button below Customer selected details
  11. Find the label

    The panel now shows Postage labels. Click Label 1 (one button per label) to open the label so you can print it.

    Postage labels section with a Label 1 button
  12. Find the tracking link

    Tracking Urls holds an EasyPost tracking link for each label. The link is saved on the order. To share it with your customer, see Tracking for your customers.

    Tracking Urls section with a Tracking Url 1 button
  13. Recreate a label if you need to

    Under Actions, Recreate shipping label makes a new label for an order that already has one. With a production key it can buy new postage, so use it only when you need a replacement.

    Actions section with the Recreate shipping label button highlighted
  14. Re-triggering the order from Shared Print Operations buys a label only when the order has no EasyPost shipment linked yet, for example when the automatic purchase did not run. It buys even when Is Buy Shipping Instantly is off. If a shipment is already linked, you see Can not retrigger - EasyPost Order was already created: use Recreate shipping label instead.

  15. Statuses you may see: after a label is bought, Connect Notified and the custom status Shipment Created. Connect Additional Action Required means an international order is waiting for customs information. Connect Failed means no EasyPost order was created. EasyPost never sets an order to Shipped or Delivered, so mark orders as shipped the way you do today. See How to manage orders in Shared Print Operations.

Lesson 10 of 13 | 5 min

Tracking for your customers

Where the tracking link appears once a label is bought, and how to put it in the email your customers get when their order ships.

EasyPost does not mark orders as shipped

Your storefront saves the tracking link, but EasyPost never sets an order to Shipped or Delivered. Your team still marks orders as shipped in the usual way.

  1. Buy the label first

    A tracking link exists only after a label has been bought, automatically or by your team (see Buy shipping labels). When the label is bought, your storefront saves EasyPost's public tracking link on the order. You can see it in the order's shipping information panel under Tracking Urls.

  2. See what your customer sees

    Your customer opens their account, goes to Orders (some storefronts show it as My Orders) and opens the order. In the Delivery Address card they see Tracking information: followed by the tracking link. The link opens EasyPost's tracking page, which shows the latest tracking details each time it is opened.

    Customer order page in My Account showing Tracking information with a track.easypost.com link in the Delivery Address card
  3. Check the link on the admin order page

    In your admin area, open the order and click the Delivery info tab. The Tracking number field holds the tracking link that was saved when the label was bought.

  4. Open the email template you send when an order ships

    Open the email message template that goes to your customer when their order ships. If you are not sure where your templates are, see Email Template Problem Solvers (section "A Summary of all Email Message Templates").

  5. Add the tracking token

    Type %Order.TrackingInformation% where you want the tracking link to appear, then save the template. When the email is sent, the token is replaced with the order's tracking link (or links, if there is more than one).

    The token %Order.ShippingInfo% also includes the EasyPost shipping information, if you already use it. For the full list of tokens, see Editable content tokens.

  6. Mark the order as shipped

    Because EasyPost never updates the order status, the customer's order page shows Not shipped yet until your team marks it as shipped. To do this in Shared Print Operations, see How to manage orders in Shared Print Operations.

Lesson 11 of 13 | 6 min

Your own delivery prices with EasyPost labels

Charge customers your own delivery price, such as a fixed rate or a price by weight, and still buy the label through EasyPost.

Where the price comes from

With a mapped delivery method, the customer pays the price set on your delivery method. EasyPost does not work out a rate for it. EasyPost is used only to buy the label for the carrier and service you map.

  1. Check what you need first

    Before you start:

  2. Set up your own delivery method

    Create the delivery method that holds your price, for example a fixed rate or a price by weight. For how to set these up, see Managing the basic of shipping and payment (fixed rate) or Richer Shipping Weight Tiers with Bulk CSV Management (by weight).

  3. Open Delivery Methods

    In your admin area, go to Configuration > Delivery > Delivery Methods. You see the Delivery methods list, with Connect Link and Edit buttons in the Actions column of each row.

    Admin menu with Configuration > Delivery > Delivery Methods highlighted and the Delivery methods list
  4. Click Connect Link

    On the row of the delivery method you want to use, click the green Connect Link button. A separate browser window opens, titled Connect Link: Delivery Method - followed by the method's name.

    Delivery methods list with the green Connect Link button highlighted on the Standard Delivery row
  5. Choose the carrier and service

    In that window, make sure Connect Plugin shows EasyPost. Then:

    • Carrier: choose the carrier that will carry these parcels. It starts as Not selected.
    • Service: choose the service. Only services with Enabled for connect plugins ticked are listed. If you gave the service a Friendly Name, that name is shown.
    If the window says "Please configure Carriers Mapping in EasyPost Connect Settings", no carriers are set up yet. Go back to Choose carriers and services.

    Connect Link pop-up for the Standard Delivery method with the Carrier and Service dropdowns highlighted
  6. Set the extra options

    • Delivery Confirmation: tick only if this delivery method should use the carrier's delivery confirmation (signature).
    • Saturday Delivery: tick only if this delivery method should use Saturday delivery.
    • Predefined parcel name: leave empty unless you use predefined parcels. If you do, type the name of a parcel you set up on the EasyPost settings page (see Parcels: how your orders are measured).

  7. Leave External Id to fill itself

    As you make your choices, External Id: is built for you from the carrier, service and options. Do not type in it.

  8. Save the mapping

    Click Save External Reference. The delivery method is now linked to that EasyPost carrier and service.

  9. Repeat steps 4 to 8 for each delivery method you want EasyPost labels for. Each delivery method can be linked to a different carrier or service.

  10. Buy labels as usual

    Customers choose your delivery method at checkout and pay your price. If Is Buy Shipping Instantly is on, the label is bought for the carrier and service you mapped, in the same way as for EasyPost rates (see Buy shipping labels).

International and manifests

Lesson 12 of 13 | 12 min

International shipping and customs

Set the customs details EasyPost sends with international shipments, your tax identifiers, and who pays import duties.

International orders and automatic labels

If Use accurate customs info is off, labels for international orders are not bought automatically. The order lines are set to Connect Additional Action Required with the message "Shipment required, please provide customs information", and your team creates the shipment by hand.

  1. Know when an order is international

    An order is treated as international when the delivery country is different from the country in Vendor's Country (Two Letter Iso Code) (see Ship-from details, measures and currencies). International shipments need customs information, which you set in this lesson. All the settings below are on the EasyPost settings page: Configuration > Plugins > Connect Plugins, then Configure on the EasyPost row.

  2. Set the customs fallbacks

    Scroll to the Customs Info group. These values are used for any product that has no customs values of its own:

    • Fallback Content Type: Documents, Gift, Merchandise, Returned goods, Sample or Other. The default is Other.
    • Fallback Content Explanation: a short description of your goods. The default is the placeholder text "Content Explanation", so replace it.
    • Fallback HsTariffNumber: the tariff code for your most common goods. The default is 4810.13.5000. Check that it is right for what you sell.

    Customs Info group with Fallback Content Type, Fallback Content Explanation and Fallback HsTariffNumber highlighted
  3. Set customs values on each product

    Where a product needs its own values, open the product variant in your admin area and click its Connect Link button. A separate browser window opens. Check that Connect Plugin shows EasyPost, then set:

    • Order Content Type: Documents, Gift, Merchandise, Returned goods, Sample or Other.
    • Order Content Explanation: what the product is.
    • HS Tariff Number: the product's tariff code.
    Click Save External Reference. Values set on a product win over the fallbacks. Repeat for each product. For more about this window, see Using the Connect Link popup to map records to your MIS.

  4. Decide on Use accurate customs info

    In the Customs Info group, Use accurate customs info is off by default. When you tick it, the customs items sent to EasyPost are:

    • grouped by HS tariff number (one customs item per tariff);
    • weighted at total quantity × unit weight, converted to ounces;
    • valued at total quantity × unit price;
    • in your storefront's primary currency.
    It also lets labels for international orders be bought automatically. Before you tick it, give every product a unit weight (see Parcels: how your orders are measured).

    Use accurate customs info checkbox with its explanation list highlighted
  5. If accurate customs is off: create the shipment by hand

    With Use accurate customs info off, international order lines stop at Connect Additional Action Required. Open the order's shipping information panel (see Buy shipping labels). For an international order the panel shows Order Lines to put in Parcels:. Drag each order line into a parcel, then click Create Shipment.

  6. Set EEL / PFC for US exports

    These fields matter only if you ship from the US to other countries:

    • EEL Pfc Threshold Value: default 2500, in your store currency.
    • EEL Pfc Value Under Threshold: sent when the goods are worth the threshold or less. The default is NOEEI 30.37(a).
    • EEL Pfc Over Threshold: sent when the goods are worth more than the threshold. It is empty by default, so fill it in if you send higher-value exports.
    For the values EasyPost accepts, see EasyPost's customs documentation.

    EEL Pfc Threshold Value, EEL Pfc Over Threshold and EEL Pfc Value Under Threshold fields highlighted
  7. Add your tax identifiers

    Scroll to the Sender Tax Identifiers group. These are sent with every shipment.

    • Issuing Country: the two-letter country code that issued your IDs, for example GB. Leave it empty to use the Vendor's Country.
    • Click Add Identifier. In the Tax Identifier pop-up, choose the Tax ID Type (for example EORI, IOSS, VAT or UKIMS), type the Tax ID, and fill in Issuing Country only if this ID was issued by a different country. Click Save.
    Repeat for each ID. The rows appear in the table with Type, Tax ID and Issuing Country.

    Sender Tax Identifiers group with Issuing Country, the Add Identifier button and an empty tax identifier table
  8. Stay within the limits

    EasyPost accepts at most 8 tax identifiers per shipment, counting your IDs and the customer's together. Your storefront does not count them for you, so keep the total at 8 or fewer. Which ID types a carrier accepts depends on the carrier. See EasyPost's tax identifiers documentation.

  9. Add a customer's tax identifiers (if needed)

    For IDs that belong to the receiver, open the customer in your admin area and click their Connect Link button. In the EasyPost section:

    • Issuing Country: leave empty to use the country of the customer's shipping address.
    • Click Add Identifier and fill in the pop-up in the same way as for your own IDs.
    • Click Save. You see "Customer tax identifiers saved successfully."
    Tip: type %Customer.VAT% as the Tax ID to use the VAT number saved on the customer. Make sure the customer has a VAT number saved.

  10. Choose who pays import duties (DDP)

    To pay the duties yourself (DDP), add the Incoterm option. In Carriers and Services you can add it in three places: Global Specific Options (every shipment), Carrier Specific Options (one carrier) or Service Specific Options (in a service's Edit pop-up). They are applied in that order, global first.

    1. Click Add Option.
    2. In the Shipping option pop-up, open the Property dropdown and choose Incoterm string.
    3. In Value, type DDP.
    4. Click Save, then save the settings page.
    EasyPost lists DAP, not DDU. Any incoterm other than DDP means the recipient pays the duties.

    Shipping option pop-up with Property set to Incoterm and Value DDP
Lesson 13 of 13 | 8 min

Manifests (scan forms)

Set up a daily manifest for carriers that need one, and register your webhook link in EasyPost so the scan forms come back to your storefront.

EasyPost's screens can change

The EasyPost steps below match EasyPost's dashboard at the time of writing. If a screen looks different, follow EasyPost's own help for adding a webhook.

  1. Check whether your carrier needs a manifest

    A manifest (EasyPost calls it a scan form) lists your shipments with a barcode the carrier scans. EasyPost's carrier guides and Help Centre say:

    • Royal Mail: manifests are required. If you don't create one, EasyPost manifests outstanding Royal Mail shipments at the end of the day.
    • Canada Post: required for contract customers.
    • Australia Post: manifests are called Order Summaries.
    • DPD UK and DHL Express: not supported or required.
    For other carriers, check the carrier's guide in EasyPost's carrier list. Set up manifests only for carriers that need them.

  2. Open the carrier on the EasyPost settings page

    Go to Configuration > Plugins > Connect Plugins and click Configure on the EasyPost row. In the Carriers and Services group, choose the carrier in Select carrier.

  3. Tick Requires manifesting

    Under Manifesting easypost orders, tick Requires manifesting. Three more fields appear, and all three are required:

    • Manifest time (CRON expression): when the manifest is created each day, in your storefront's time. The default 0 17 * * 1-6 means 17:00, Monday to Saturday. The tooltip links to crontab.guru if you want to build a different time.
    • Manifest reference: filled in for you with your store and carrier. You can keep it.
    • Manifest hotfolder: choose the hotfolder the manifest file is saved to.
    Each manifest includes all the orders for this carrier since the last one.
    The screenshot is an example only: tick Requires manifesting just for carriers that need manifests.

    Requires manifesting ticked, with Manifest time, Manifest reference and Manifest hotfolder fields below
  4. Click Save at the top of the settings page. Repeat steps 2 and 3, and save, for each carrier that needs a manifest.

  5. Set a fallback manifest hotfolder (optional)

    In the Manifest Files group, Manifest files hot folder is used when a carrier has no hotfolder of its own. Type the id of a hotfolder from the Available HotFolders list, or leave it empty. For more about hotfolders, see Hotfolders and Print Locations.

    Manifest Files group with the Manifest files hot folder field highlighted
  6. Copy your Webhook Link

    At the bottom of the settings page, find the Webhook actions card. Copy the address in the Webhook Link column. The Webhook Description says which EasyPost events your storefront handles: scan_form.created and scan_form.updated. Copy the link from here rather than typing it.

    Webhook actions card with the Webhook Link and Webhook Description columns highlighted
  7. Open Webhooks & Events in EasyPost

    Sign in to your EasyPost dashboard and click Webhooks & Events in the menu. The page lists Production Webhooks and Test Webhooks. Click Add Webhook.

    EasyPost Webhooks page with the Add Webhook button highlighted
  8. Add the webhook

    In the Add Webhook form:

    • Environment: choose the one that matches the key in your storefront's Api Key field. Choose Test while you use a test key and Production when you go live.
    • Webhook URL: paste the Webhook Link you copied.
    • Webhook Secret (Optional): you can leave this empty.
    Click Create Webhook. When you switch from a test key to a production key, add a Production webhook too.

    EasyPost Add Webhook form with Environment, Webhook URL and Webhook Secret (Optional) fields
  9. Know what you will see

    When EasyPost sends the scan form back, the order lines are set to Connect Manifested and the manifest file is saved to the carrier's Manifest hotfolder (or the fallback hotfolder). You may also see the statuses Shipment in Manifest and Excluded from Manifest. There is no button to create a manifest on demand. Manifests run on the schedule you set.

Troubleshooting

Something not working? Search for your problem, or pick a question below.

No rates or wrong rates

Start here: no EasyPost rates at checkout

Check these setup points in this order:

  1. EasyPost's status page, in case EasyPost itself has a problem (see How do I check whether EasyPost is having problems?).
  2. In Configuration > Delivery > Delivery Computation, the EasyPost row has Is active ticked on this storefront.
  3. Api Key holds the key for the mode you want: your test key while testing, your production key when live.
  4. On the EasyPost Settings page (Configuration > Plugins > Connect Plugins, then Configure on the EasyPost row), under Vendor Info, every required ship-from field is filled in and Vendor's Country (Two Letter Iso Code) is a two-letter code such as GB or US.
  5. If you use Auto calculated parcels, Auto Calculated Parcel Max Weight and Auto Calculated Parcel Max Size are filled in (a blank Max Size stops rates) and not left at the default of 1, which splits baskets into many parcels and inflates rates.
  6. At least one service in Carriers and Services has Enabled for Checkout ticked.
  7. In EasyPost, under Account Settings > Carriers, the carrier you expect is connected.

If all of these are right, turn on verbose logging and look at the log for the request.

How do I turn on verbose logging?

Checkout only tells your customers that something went wrong. The reason is written to your store's log, but only while verbose logging is on.

  1. Go to Configuration > Settings > Integrations > Connect Settings.
  2. Tick Verbose Logging Enabled.
  3. Check Verbose logging areas. Keep Get Price, Create Quote, Create Order and Webhooks ticked unless you only need one area. Clearing every area stops area logging.
  4. Save the page.
  5. Repeat the problem, for example go to the delivery step at checkout, and note the time.
  6. Read the new log entries, or send the time of your test to support.
  7. Untick Verbose Logging Enabled when you have finished. The entries are large, so don't leave it on.

If Disable verbose logging platform wide is set, verbose logging stays off for your store. Do not use the plugin's Debug Mode for this: it shows the details to shoppers at checkout.

Connect Settings page with the Verbose Logging Enabled checkbox highlighted, and the Verbose logging areas Get Price, Create Quote, Create Order and Webhooks below it
How do I check whether EasyPost is having problems?

If rates or labels stop working for every order at once, check EasyPost's own status page before you change any settings.

  1. Open easypoststatus.com.
  2. Look at the parts that matter to you, for example API, Label Purchases, Webhooks or your carrier.
  3. If EasyPost reports a problem or maintenance, wait for it to clear, then try again.
Why does checkout say "No shipping options found"?

Your customers see No shipping options found when no EasyPost rate came back. Work through these checks in order.

  1. Rates are switched on. Go to Configuration > Delivery > Delivery Computation and check the EasyPost row has Is active ticked.
  2. Your ship-from details are complete. On the EasyPost Settings page (Configuration > Plugins > Connect Plugins, then Configure on the EasyPost row), under Vendor Info, fill in Vendor's Company Name, Vendor's Phone and Vendor's Zip Postal Code. Enter Vendor's Country (Two Letter Iso Code) as a two-letter code such as GB or US.
  3. Your store has the measures EasyPost needs. In Configuration > Measures, you need a weight measure with the system keyword ounce and a dimension measure with the system keyword inches.
  4. Your currencies exist. Every currency EasyPost quotes in must be set up in Configuration > Currencies. If one is missing, every rate from that request is lost.
  5. Parcel limits are filled in. Under Parcels, Auto Calculated Parcel Max Size must not be blank.
  6. The services are switched on. Under Carriers and Services, pick each carrier in Select carrier and check Enabled for Checkout is ticked for the services you want. This list only filters the rates EasyPost returns. It never creates a rate.
  7. Your carrier accounts work. In your EasyPost account, check the carrier is connected under Account Settings > Carriers.
  8. EasyPost itself is working. Check easypoststatus.com.

If something fails part-way, checkout can show a technical message instead, for example Object reference not set to an instance of an object. Look it up in the error messages below. Still stuck? Turn on verbose logging, repeat the checkout and read the log.

Check Connection works but no rates show. Why?

Check Connection only proves EasyPost accepts your keys. It lists your carrier accounts with the Production Api Key and lists shipments with the Api Key. It does not ask for a rate, so it can pass while checkout still shows no rates.

Next, work through Why does checkout say "No shipping options found"? above. The most common gaps are Is active not ticked in Configuration > Delivery > Delivery Computation, incomplete Vendor Info, and services not ticked as Enabled for Checkout.

Connect Plugins list with the green banner Connect Connection was successful for plugin: Mis.EasyPost
Why are my EasyPost rates much higher than expected?

High rates nearly always come from how parcels are built, or from extra charges added on top. On the EasyPost Settings page (Configuration > Plugins > Connect Plugins, then Configure on the EasyPost row), check these in order.

  1. Parcel limits left at 1. Under Parcels, Auto Calculated Parcel Max Weight and Auto Calculated Parcel Max Size both start at 1. Left like that, one order is split into many tiny parcels and every parcel is charged. Set them to the real limits of the parcels you send.
  2. Parcels Allocation Level. OrderLineQuantity makes at least one parcel per unit. OrderLine makes at least one per order line.
  3. Predefined parcels. In Predefined Parcels mode, every box in the Predefined parcels grid is quoted together.
  4. Multiply Quantity by Record Count. If it is ticked, quantity is multiplied by record count when parcels are worked out.
  5. Cube root. Check Use cube root for determining total package dimension in Configuration > Settings > Delivery Settings. It is used to estimate the size of stacked items.
  6. Your own fees. The fees under Shipping Fees and any fees on a service are added together.
  7. Rate type. Rate type set to Retail Rate or List Rate shows a price other than the rate you actually pay (Rate).
  8. Test mode. With a test key, EasyPost returns retail or slightly discounted rates, not your negotiated rates (USPS through the EasyPost Wallet is an exception).
  9. Exchange rate. Rates are converted into your store currency with the exchange rate in Configuration > Currencies. Check it is up to date.
Why is an order split into lots of small parcels?

When the items in a parcel group are heavier than Auto Calculated Parcel Max Weight or bigger than Auto Calculated Parcel Max Size, the group is split into several parcels. The goods are shared out across them, so each parcel sent to EasyPost is smaller than the real goods and the carrier charges for every one.

  1. On the EasyPost Settings page (Configuration > Plugins > Connect Plugins, then Configure on the EasyPost row), under Parcels, replace the default 1 in both max fields with real limits. Max Weight is in ounces. Max Size is a girth figure in inches: 2 × length + 2 × height + width.
  2. Give every product variant a real weight and real dimensions. Products with no dimensions are sent at the minimum size of 1 inch.
  3. Turn on Use cube root for determining total package dimension in Configuration > Settings > Delivery Settings.
  4. Run a test checkout and compare the rate with what you expect.
Why is the shipping price the same for 1 or 1,000 items?

This happens when Parcel Size Calculation is set to Predefined Parcels. With Parcels Allocation Level set to Order, every box in the Predefined parcels grid is quoted at its fixed size and weight, whatever is in the basket. The storefront does not pick a best-fitting box.

  1. On the EasyPost Settings page (Configuration > Plugins > Connect Plugins, then Configure on the EasyPost row), under Parcels, set Parcel Size Calculation to Auto calculated.
  2. Set real values in the two max fields.
  3. Make sure every product variant has a real per-unit weight and size.

If you must keep predefined boxes, Use Infigo calculated weight in parcels fills in the calculated weight for any box whose weight is 0.

A service I want doesn't show at checkout
  1. On the EasyPost Settings page (Configuration > Plugins > Connect Plugins, then Configure on the EasyPost row), under Carriers and Services, pick the carrier in Select carrier.
  2. Find the service in the table and check Enabled for Checkout is ticked. If not, click Edit, tick it and click Save. Services EasyPost returns that the storefront did not know about are added switched off for checkout, and so are built-in services added to a carrier later.
  3. If the service is not in the table at all, click Add Service and type the service code exactly as EasyPost names it. For example, UPS GroundSaver is added this way.
  4. Remember the table only filters what EasyPost sends back. It never creates a rate.
Why does the same service appear two or more times?
  1. On the EasyPost Settings page (Configuration > Plugins > Connect Plugins, then Configure on the EasyPost row), under General, check Signature and Saturday delivery. Optional shows every service both with and without that option, so services repeat with "Signed" or "Saturday" in the name. Choose None or Required to show each service once.
  2. In your EasyPost account, under Account Settings > Carriers, check you have only one account connected for that carrier.
  3. In Configuration > Delivery > Delivery Computation, check no other active method also returns rates for the same carrier.
A carrier is missing from Carriers and Services

The Carriers and Services list shows the carrier accounts in your EasyPost account, read with the Production Api Key. If the box only shows "The carriers and services settings will be availble after you enter valid ApiKeys and save it", your Production Api Key is blank or not valid.

  1. In your EasyPost account, open Account Settings > Carriers and check the carrier is connected. If not, click Add Carrier. It must be on your production account, even while you test.
  2. On the EasyPost Settings page (Configuration > Plugins > Connect Plugins, then Configure on the EasyPost row), check Production Api Key holds your production key, then click Save.
  3. Wait about a minute and reload the page. The carrier list is kept for a short time before it is read again.

Watch out: if you save the settings while a carrier is missing from your production EasyPost account, its service settings and manifest settings are deleted. Reconnect the carrier in EasyPost before you save.

Shoppers can see parcel calculation details in the delivery options

This is the plugin's Debug Mode. It writes the parcel calculation into the delivery option text your customers see.

  1. On the EasyPost Settings page (Configuration > Plugins > Connect Plugins, then Configure on the EasyPost row), under General, untick Debug Mode.
  2. Click Save.

Keep it off on a live store. To investigate a problem, use verbose logging instead.

The delivery step is skipped at checkout

If only one delivery option is available and the order setting below is ticked, checkout skips the delivery step, so your customers never see the list of rates.

  1. Go to Configuration > Settings > Order Settings.
  2. Find Hide delivery method step if only one options is available under Checkout Flow.
  3. Untick it if your customers should always see and confirm the delivery step, then save.

If you expected several EasyPost services but only one shows, see A service I want doesn't show at checkout.

Order Settings page, Checkout Flow section, with Hide delivery method step if only one options is available highlighted
Where does EasyPost get the weight from?

For each item in the basket, your storefront sends EasyPost a weight worked out like this:

  • If the item's job has its own weight, that weight is used. A pricing script can set this weight.
  • Otherwise the product variant's weight is used, plus any weight added by the attributes the customer chose.

Things to know:

  • If a pricing script sets the weight to 0, 0 is used. A parcel that ends up under 1 ounce is sent to EasyPost as 1 ounce, so you still get a rate, but it is the rate for a 1-ounce parcel.
  • For MegaEdit products with Adjust ME weight ticked, the job weight is recalculated from the product, its attributes and the pages or stock, and that weight is what EasyPost receives. This can raise rates.
  • Use Infigo calculated weight in parcels only fills in a parcel's weight when the parcel's own weight is 0. It applies to predefined parcels and to parcels you add by hand in the order's shipping panel.

If rates look wrong, check the weight on the exact product variant you are testing with, and any pricing script that sets weight.

Labels

Why wasn't a label bought automatically?

Labels are only bought automatically when Is Buy Shipping Instantly is ticked on the EasyPost Settings page (Configuration > Plugins > Connect Plugins, then Configure on the EasyPost row), under General. It is off by default. When it is on, the purchase is tried when one of these happens:

  • the order status changes to Complete or Confirmed;
  • an order line is approved;
  • the payment status becomes Paid;
  • a line's production status becomes Complete;
  • output is created for an order line;
  • the order is sent to Connect plugins, following Send to Connect plugins when in Connect Settings.

Even then, nothing is bought if:

  • no line in the order has shipping enabled;
  • the order's delivery method is not an EasyPost rate or a delivery method mapped with Connect Link;
  • the order is not ready yet;
  • a label has already been bought for the order (it runs once only);
  • the order is international and Use accurate customs info is off. The lines then show Connect Additional Action Required.

To ship the order now, open it in your admin area, go to the Delivery info tab, click Show shipping information and click Create Shipment.

A label purchase failed

A failed automatic purchase is logged as Could not dispatch the consignment. If no EasyPost order could be created, the lines show Connect Failed with "EasyPost Order was not created".

  1. Open the order, go to the Delivery info tab and click Show shipping information. If EasyPost or the carrier sent an error, it shows under Easypost error response:.
  2. If you pay through your EasyPost Wallet, check it has funds or that auto-reload is on. Label purchases fail when it is empty.
  3. In your EasyPost account, check the carrier account is connected and its details are complete.
  4. Check easypoststatus.com for problems with label purchases.
  5. Fix the cause, then create the shipment in the same panel with Create Shipment.
  6. If you can't see a cause, turn on verbose logging and try again.
How do I make a new label for an order that already has one?
  1. Open the order, go to the Delivery info tab and click Show shipping information.
  2. Under Actions, click Recreate shipping label.

Re-trigger only works when no EasyPost order is linked to the order yet. Otherwise it shows "Can not retrigger - EasyPost Order was already created", and you should use Recreate shipping label instead.

Your storefront cannot refund or void a label.

Shipping information panel after purchase: Actions with Recreate shipping label highlighted, plus Postage labels, Jobs and Tracking Urls
Labels are not arriving in my hotfolder

Every label you buy is always available in the order's shipping panel under Postage labels. Copies only go to a hotfolder if you set one.

  1. On the EasyPost Settings page (Configuration > Plugins > Connect Plugins, then Configure on the EasyPost row), find Plugin Artifacts.
  2. Enter a hotfolder id in Labels (Paperwork) Hotfolder Id. The hint under the field lists the hotfolders you can use.
  3. If you also want packaging slips or job paperwork copied, fill in Packaging Slip hot folder and the Job Ticket hot folder field below it. These do nothing unless Labels (Paperwork) Hotfolder Id is set.
  4. Click Save.

Without a labels hotfolder, the log notes "There is no Hotfolder to save the Consignment labels". Files are copied when a label is bought.

International orders

An international order is stuck at "Connect Additional Action Required"

With Is Buy Shipping Instantly on, an international order is not bought automatically while Use accurate customs info is off. Its lines show Connect Additional Action Required with "Mis.EasyPost Shipment required, please provide customs information". An order counts as international when the delivery country is different from Vendor's Country.

To ship this order now:

  1. Open the order, go to the Delivery info tab and click Show shipping information.
  2. Drag each line from Order Lines to put in Parcels: into a parcel, so every parcel has its contents.
  3. Click Create Shipment.

To let future international orders buy automatically: on the EasyPost Settings page (Configuration > Plugins > Connect Plugins, then Configure on the EasyPost row), under Customs Info, tick Use accurate customs info and click Save. Every product then needs a real unit weight, because customs weights are worked out from them.

Customs details on my labels are wrong or missing

Customs details come from each product first, then from the plugin's fallbacks.

  1. Per product: on the product variant, click Connect Link, check that Connect Plugin shows EasyPost and set Order Content Type, Order Content Explanation and HS Tariff Number. Click Save External Reference. Attribute combinations have the same pop-up.
  2. Fallbacks: on the EasyPost Settings page (Configuration > Plugins > Connect Plugins, then Configure on the EasyPost row), under Customs Info, set Fallback Content Type, Fallback Content Explanation and Fallback HsTariffNumber. These are used for any product without its own values.
  3. Weights and values: tick Use accurate customs info to group items by HS tariff number, with weight = total quantity × unit weight and value = total quantity × unit price, in your storefront's primary currency.
  4. US exports (EEL/PFC): EEL Pfc Value Under Threshold (default NOEEI 30.37(a)) is sent for goods below EEL Pfc Threshold Value (default 2500, in your store currency). EEL Pfc Over Threshold is sent for goods above it. It is blank by default, so fill it in if you ship higher-value goods from the US.
How do I add EORI, VAT or IOSS numbers to shipments?

Your own numbers (sender):

  1. On the EasyPost Settings page (Configuration > Plugins > Connect Plugins, then Configure on the EasyPost row), find Sender Tax Identifiers.
  2. Optionally set Issuing Country as a two-letter code. If you leave it empty, Vendor's Country is used.
  3. Click Add Identifier, choose the Tax ID Type (for example EORI, IOSS, VAT or UKIMS), enter the Tax ID and click Save. Repeat for each number.
  4. Click Save at the top of the settings page.

Your customer's numbers (receiver): on the customer's record in your admin area, click Connect Link and add identifiers the same way. Typing %Customer.VAT% as the Tax ID uses the customer's VAT number. If that customer has no VAT number, the log says the placeholder was found but the VAT number is empty.

EasyPost accepts at most 8 tax identifiers per shipment, sender and receiver together. Which types each carrier accepts varies, so check with EasyPost for your carrier.

How do I ship DDP, so I pay the duties?
  1. On the EasyPost Settings page (Configuration > Plugins > Connect Plugins, then Configure on the EasyPost row), go to Carriers and Services.
  2. Choose where to add the option: Global Specific Options (every shipment), Carrier Specific Options (the carrier in Select carrier), or Service Specific Options (in a service's Edit window).
  3. Click Add Option. In Property, choose Incoterm string. In Value, type DDP. Click Save.
  4. Click Save on the settings page.

Options are applied global first, then carrier, then service. With DDP you pay the duties. EasyPost treats any other incoterm as the recipient paying, and it documents DAP rather than DDU.

Tracking and manifests

Why is my order never marked Shipped or Delivered?

Your storefront does not take delivery updates from EasyPost. The only EasyPost events your storefront handles are scan form (manifest) events. Mark orders as shipped in your usual way.

These are the statuses EasyPost's part of your storefront can set:

StatusMeaning
Connect NotifiedThe label was bought.
Shipment CreatedThe label was bought and the shipment exists in EasyPost.
Connect Additional Action RequiredAn international order needs customs details before a label can be bought.
Connect FailedNo EasyPost order could be created.
Shipment in ManifestThe shipment is waiting for, or included in, the carrier's manifest.
Connect ManifestedEasyPost confirmed the scan form.
Excluded from ManifestThe order could not be added to a manifest after several attempts.
Scan forms (manifests) are not arriving
  1. On the EasyPost Settings page (Configuration > Plugins > Connect Plugins, then Configure on the EasyPost row), under Carriers and Services, pick the carrier and check Requires manifesting is ticked, with Manifest time (CRON expression), Manifest reference and Manifest hotfolder filled in. The manifest is created at that time (storefront time) with the orders placed for this carrier since the last one.
  2. Copy the Webhook Link from the Webhook actions card at the bottom of the same page.
  3. In your EasyPost account, open Webhooks & Events and check a webhook with that URL exists. Its Environment must match the key in Api Key: Test while you test, Production when live. If it is missing, click Add Webhook, paste the URL and click Create Webhook.
  4. Check a hotfolder is set: the carrier's Manifest hotfolder, or Manifest files hot folder under Manifest Files as a fallback. Without one, the log says "The manifest hotfolder is not set for carrier" or "There is no Hotfolder to save the manifest files".
  5. Check your carrier uses scan forms at all. EasyPost says DPD UK and DHL Express do not support or need them.

There is no button to create a manifest straight away. To change when manifests are created, change the carrier's Manifest time (CRON expression).

Bottom of the EasyPost Settings page: Manifest Files with Manifest files hot folder, and the Webhook actions card showing the Webhook Link to register in EasyPost
An order shows "Excluded from Manifest"

If an order can't be added to a manifest, it is tried again a few times. After that it gets the status Excluded from Manifest, with a note starting "Excluded from manifest after" and the number of attempts.

  1. Check the order has a label: open it, go to the Delivery info tab and click Show shipping information.
  2. Contact support with the order number so it can be queued again.

Error messages

Check Connection says "Connect Connection failed"

After you click Check Connection on Configuration > Plugins > Connect Plugins, a failure banner ends with one of these messages:

MessageWhat to do
Api Key not configured / Production Api Key not configuredThat field is blank. Fill it in on the EasyPost Settings page and click Save.
Api Key is not valid / Production Api Key is not validEasyPost rejected that key. Copy it again from Account Settings > API Keys in EasyPost and check it has not been disabled.
Api Key and Production Api Key are not validThe same key is in both fields and EasyPost rejected it. Copy your production key again.

When the keys work you see "Connect Connection was successful for plugin: Mis.EasyPost".

"Could not load "ounce" measure weight" or "inches" measure dimension

The full message starts "EasyPost shipping service. Could not load". Your store is missing a measure EasyPost needs, so no rates come back.

  1. Go to Configuration > Measures.
  2. Check there is a weight measure with the system keyword ounce and a dimension measure with the system keyword inches. Add the missing one.
  3. Run a test checkout.
"currency cannot be loaded"

This log message starts with a currency code, for example USD. EasyPost quoted in a currency your store does not have, and every rate from that request was lost. It is logged under "Something went wrong while creating the EasyPost shipping order."

  1. Go to Configuration > Currencies.
  2. Add the currency named in the message, with a correct exchange rate.
  3. Run a test checkout.
"Origin Easypost setting ... is not set" or "Object reference not set to an instance of an object"

Both often point to your ship-from details on the EasyPost Settings page (Configuration > Plugins > Connect Plugins, then Configure on the EasyPost row), under Vendor Info.

  • Origin Easypost setting postal code / Company from / Phone from is not set: fill in Vendor's Zip Postal Code, Vendor's Company Name and Vendor's Phone. Rates can't be requested without them.
  • Object reference not set to an instance of an object: often Vendor's Country (Two Letter Iso Code) is blank or not a two-letter code your store knows. Enter a code such as GB or US (not UK).

Click Save, then run a test checkout.

"Attempted to divide by zero" or "no predefined/default parcel defined"

Both come from the Parcels settings on the EasyPost Settings page (Configuration > Plugins > Connect Plugins, then Configure on the EasyPost row).

  • Attempted to divide by zero. Auto Calculated Parcel Max Size is blank. Enter a real value.
  • Predefined parcel usage configured, but there is no predefined/default parcel defined. Parcel Size Calculation uses predefined parcels but the Predefined parcels grid is empty. Add your boxes, or switch to Auto calculated.

Click Save, then run a test checkout.

"The easypost carrier ... is not found in Mis settings" and other carrier setup messages
  • The easypost carrier ... is not found in Mis settings (log): EasyPost returned a carrier your EasyPost settings don't have yet. Open the EasyPost Settings page (Configuration > Plugins > Connect Plugins, then Configure on the EasyPost row), check the carrier now shows in Carriers and Services, set up its services and click Save.
  • There are no hardcoded carrier with name (log): the carrier is not in the storefront's built-in carrier list. Contact support.
  • Please configure Carriers Mapping in EasyPost Connect Settings (in a Connect Link pop-up): no carriers are set up yet. Set up Carriers and Services first, then open Connect Link again.
"Something went wrong while adding custom information"

The full message is "Something went wrong while adding custom information. please contact the administrator". It appears when the customs details for an international rate could not be built.

  1. Check the customs values on the product variant's Connect Link and the fallbacks under Customs Info on the EasyPost Settings page (Configuration > Plugins > Connect Plugins, then Configure on the EasyPost row).
  2. Turn on verbose logging, repeat the checkout and read the log entry for the cause.
"There is no shipping methods available" or "Shipping address is not set"
  • Your order cannot be completed at this time as there is no shipping methods available for it: no delivery method of any kind was available for the order. Work through Why does checkout say "No shipping options found"? and check your other delivery methods.
  • Shipping address is not set or Shipping country is not set: the order has no delivery address or country yet, so EasyPost can't be asked for rates. Enter the address and try again.
Messages in the order's shipping information panel

You may see these after clicking Show shipping information on the order's Delivery info tab.

MessageWhat to do
Please create some parcels first.Click Add new parcel or Add predefined parcel before Create Shipment.
Please assign all Order Lines to Parcels first / All Parcels should contain Parcel InformationInternational order: drag every order line into a parcel, or use Add Shipment Information, then try again.
Auto-calculated weight is not possible... Enter a weight bigger than 0 or assign orderlines to the parcel.Use Infigo calculated weight in parcels is on and a parcel has weight 0 and no lines. Enter a weight or assign lines.
The shipping method is not an EasyPost shipping methodThe order was not placed with an EasyPost rate or a delivery method mapped with Connect Link, so EasyPost can't buy its label.
Manifest messages in the log
  • Could not find carrier settings by name='...' for manifesting easypost orders: the carrier's settings are no longer in Carriers and Services, for example because the carrier was removed from your EasyPost account. Reconnect it in EasyPost, then set up Requires manifesting again.
  • Could not parse the ... setting with value - '...' for carrier name='...': a manifest setting such as Manifest time (CRON expression) is not valid. Correct it and click Save.
  • Couldn't create the carrier manifest batch: EasyPost could not create the manifest. Check the carrier uses scan forms, and check easypoststatus.com.

Carrier notes

FedEx: reconnect with multi-factor sign-in

Since 1 March 2026, your own FedEx account in EasyPost must be connected using FedEx's multi-factor sign-in (MFA). The older connection method is no longer available. If FedEx rates or labels stop working, reconnect the FedEx account in your EasyPost account under Account Settings > Carriers.

DHL Express: no domestic shipping in the US or Canada

DHL Express does not offer domestic services within the US or Canada, so it won't return rates for those orders. Use another carrier for them. DHL Express does not support or need manifests.

DPD UK: rates show as 0.01

DPD UK returns a placeholder rate of $0.01 until your negotiated rate card is installed. Get your rate card from DPD UK and send it to EasyPost support, who install it for you. You can't upload it yourself. Interlink Express is now part of DPD UK and works the same way. DPD UK does not support or need manifests.

Royal Mail: rate cards, manifests and handling instructions
  • Royal Mail does not give real-time rates. Services not covered by your contract show $0.01 until EasyPost installs your negotiated rate card. Royal Mail bills you for postage directly.
  • EasyPost has two Royal Mail carriers, Royal Mail and Royal Mail v3. New Royal Mail v3 accounts need your registered billing postcode.
  • Royal Mail needs a daily manifest. If you don't create one, EasyPost manifests outstanding Royal Mail shipments at the end of each day.
  • If Royal Mail rejects shipments with empty handling instructions, tick Avoid Sending Empty Handling Instructions under General on the EasyPost Settings page.
USPS: manifests and payment

EasyPost manifests USPS shipments automatically every night, around 10 PM Pacific time. USPS bought through your EasyPost Wallet is paid from your Wallet balance, so keep it funded or turn on auto-reload.

Canada Post: manifests for contract customers

If you have a Canada Post contract, you must manifest your shipments with a scan form, otherwise Canada Post charges a fee per shipment. Turn on Requires manifesting for Canada Post. Retail customers don't need to.

Australia Post: account and manifests

You request a shipper account from Australia Post. To connect it in EasyPost you need the account number, API key, secret key and your print-as-you-go setting. Australia Post calls manifests Order Summaries, and how they work depends on the print-as-you-go setting.

My carrier isn't available through EasyPost

EasyPost does not currently offer PostNL, APC Overnight, InXpress, Parcelforce or Royal Mail Click & Drop. Check EasyPost's carrier list for the latest.

For a carrier that isn't on EasyPost, use one of your storefront's own delivery methods.

Which carriers can I use, and do I need my own carrier account?

EasyPost offers two kinds of carrier account:

  • EasyPost Wallet carriers: accounts EasyPost provides, paid from your EasyPost wallet. Each one only covers certain origin countries, and many are for shipments from the US. Check EasyPost's Wallet page for where you ship from.
  • Your own carrier accounts: your own contract with a carrier, added in EasyPost under Account Settings > Carriers > Add Carrier. If no Wallet carrier covers the country you ship from, you need one of these. Using your own carrier accounts needs EasyPost's Bring Your Own Carrier Accounts plan; check EasyPost's current pricing.

Credentials and sign-in problems for your own carrier accounts are fixed in the EasyPost dashboard, not in your storefront.

For the full list of carriers EasyPost supports, see EasyPost's carrier guides.

Questions

What does EasyPost cost, who pays, and can I use my own carrier contract?

EasyPost sets its own prices, so check EasyPost's plans for current costs. You pay EasyPost and your carriers directly, from your own EasyPost account:

  • EasyPost Wallet carriers are paid from your EasyPost Wallet. Keep it funded or turn on auto-reload, otherwise label purchases fail.
  • Your own carrier accounts are billed by the carrier for postage, and EasyPost bills its plan and label fees.

To use your own carrier account, for example your Royal Mail or DPD contract, your EasyPost account needs EasyPost's Bring Your Own Carrier Accounts plan (required since April 2026). Then add the account in EasyPost under Account Settings > Carriers > Add Carrier. On EasyPost's Wallet plan, your own carrier accounts are switched off and hidden, but not deleted.

How do I switch between test and live?

Both keys are on the EasyPost Settings page (Configuration > Plugins > Connect Plugins, then Configure on the EasyPost row), under Api Keys. Copy them from your EasyPost account under Account Settings > API Keys.

ModeApi KeyProduction Api Key
TestingYour test keyYour production key
LiveYour production keyYour production key

Api Key is used for every rate, label and manifest. Production Api Key is only used to list your carriers, which is why it always holds the production key. Click Save, then Check Connection.

If you use manifests, also check that a webhook with your Webhook Link exists for the matching Environment (Test or Production) in EasyPost's Webhooks & Events, and add one if not. If a label is bought automatically for an order placed under the old key, a new EasyPost order is created under the current key.

Am I charged for labels bought in test mode?

No. With a test key, EasyPost does not charge postage. Test labels are samples that can't be used to ship, and test tracking is not real.

Test rates are retail or slightly discounted rates, not your negotiated rates (USPS through the EasyPost Wallet is an exception), so expect prices to change when you go live.

Can I show EasyPost rates without buying labels?

Yes. Leave Is Buy Shipping Instantly unticked and don't click Create Shipment in the order's shipping panel. Your customers still see live rates at checkout.

Can I charge my own delivery prices and still use EasyPost labels?

Yes. Map one of your own delivery methods, such as a fixed rate or shipping by weight method, to an EasyPost service with the green Connect Link button in Configuration > Delivery > Delivery Methods. Your customers pay the delivery method's price. The label is bought from EasyPost for the service you mapped.

Only services with Enabled for connect plugins ticked can be chosen in the mapping.

Can I offer EasyPost only for some countries?

Not inside the EasyPost settings. Use your storefront's own tools instead:

  • the usage rule Usage requirement by Shipping Country;
  • departments, which control which delivery methods each group of customers gets;
  • your own delivery methods mapped to EasyPost with Connect Link.
Can I use kilograms and centimetres?

Your products can keep your store's own weight and size units. They are converted to ounces and inches before they are sent, because EasyPost works only in ounces and inches. For that, your store needs the ounce and inches measures.

The EasyPost settings themselves (the parcel max weight and size, and predefined parcel sizes) are entered in ounces and inches.

Can I hide or rename a service?

Yes. On the EasyPost Settings page (Configuration > Plugins > Connect Plugins, then Configure on the EasyPost row), under Carriers and Services, pick the carrier and click Edit on the service.

  • Untick Enabled for Checkout to hide it.
  • Type a Friendly Name to show your own name instead of EasyPost's.
  • Set Order to sort it. Lower values come first. Services with the same value are sorted by price.

To switch a whole carrier's services on or off at once, use Select checkout actions.

Can I add a mark-up to EasyPost rates?

Yes. On the EasyPost Settings page (Configuration > Plugins > Connect Plugins, then Configure on the EasyPost row), under Shipping Fees, set Additional Shipping Fee type to Absolute amount or Percentage, then fill in Additional Shipping Fee Per Parcel and/or Additional Shipping Fee Per Order. Each service's Edit window has the same fee fields. Fees set on the page and on a service are added together.

Why do delivery dates at checkout ignore my production time?

Show Delivery Date/Days shows the carrier's own transit time from EasyPost. It does not include your production time. If that misleads your customers, set it to No.

If you use delivery restrictions, Use Easypost Delivery Days in delivery offsets uses EasyPost's delivery days in place of the day offset set in the restriction.

What can't EasyPost do from my storefront?

From your storefront, EasyPost does not:

  • ship from more than one address (each storefront has one ship-from address, under Vendor Info);
  • verify addresses;
  • create returns or return labels;
  • book pickups;
  • add insurance;
  • refund or void labels;
  • change the label format or size;
  • update orders to Shipped or Delivered.

The reference sent with each shipment is set by your storefront and can't be changed.

I can't see the EasyPost settings pages

Your admin role needs these permissions:

PermissionGives access to
Manage Mis PluginsConnect Plugins list, Configure, Check Connection
Manage Mis SettingsConnect Settings
Manage Shipping SettingsDelivery Methods and Delivery Computation

Ask whoever manages admin roles on your storefront to add them.

Do I need both Connect Settings and Delivery Computation?

For the full integration, yes. Each part does a different job.

  • Configuration > Delivery > Delivery Computation, EasyPost Is active: live rates at checkout.
  • Configuration > Settings > Integrations > Connect Settings, EasyPost ticked in Enabled Connect Plugin and Connect Plugins to Handle Delivery: labels, the order's shipping panel, tracking and manifests.
Does free shipping on a product work with EasyPost?

Only partly. EasyPost rate requests ignore a product's free-shipping setting, so a free-shipping item still adds its weight to the rate. Your storefront sets delivery to zero only when every item in the basket has free shipping, or the customer has a role with free shipping.

If you need an item to add nothing to the rate, turn shipping off for that product instead. Items with shipping turned off are left out of the EasyPost request.

Can I show my own delivery methods next to EasyPost rates?

Yes. Every delivery computation method that is active adds its options to the same list at checkout. If, for example, Fixed Rate Shipping and EasyPost both have Is active ticked in Configuration > Delivery > Delivery Computation, your customers see your fixed-rate methods and the live EasyPost rates together.

To control who sees what, use the Usage rules button on each row in Delivery Computation, or departments. Apart from your EasyPost service settings (such as Enabled for Checkout), only usage rules and departments remove options from this list.

To set up the fixed-rate methods themselves, see Managing the basics of shipping and payment. To charge your own price but still buy an EasyPost label, map the method with Connect Link instead.

How do I switch EasyPost off?

EasyPost has two switches. Turn off the parts you no longer want:

  • Rates at checkout: in Configuration > Delivery > Delivery Computation, click Edit on the EasyPost row, untick Is active and click Update.
  • Labels, tracking and manifests: in Configuration > Settings > Integrations > Connect Settings, untick EasyPost under Enabled Connect Plugin and click Save. EasyPost webhook messages are then refused.

Before you switch off rates, make sure another delivery method is active, or your customers will have nothing to choose at checkout.

About this topic

What EasyPost is

EasyPost is a shipping service that connects your storefront to many carriers through one account. With it, your storefront can show live carrier rates at checkout, buy shipping labels, save tracking links on orders, send customs details for international orders and create manifests (scan forms) for carriers that need them.

Who owns what

  • Your EasyPost account is yours. You sign up with EasyPost, choose a plan, add a payment method and copy your API keys into your storefront.
  • Your carrier accounts are connected inside your EasyPost account, under Account Settings > Carriers. Your storefront only shows the carriers connected there.
  • Label costs are billed by EasyPost, from your EasyPost Wallet for EasyPost Wallet carriers. With your own carrier accounts, the carrier bills postage and EasyPost bills its plan and label fees. See EasyPost's plans for prices.
  • Your storefront holds the EasyPost settings: which services customers see, any fees you add, parcel rules, customs details and where labels go.

Where to get help

  • Problems with your EasyPost account, wallet, plan or carrier accounts: contact EasyPost.
  • EasyPost service problems: check easypoststatus.com.
  • Problems with the settings in your storefront: work through the troubleshooting above, then contact support with the time of a test and, if you can, verbose log entries.

Search terms

Topic hub | EasyPost ShippingLast updated: 29 Oct 2026
Incomplete