How to Integrate ShipStation with Odoo 20 · Calibre Consulting

Connect Odoo to ShipStation for rates and labels.

Set up Odoo's native ShipStation app: one delivery method per carrier and service, live rates on quotations, and labels bought when the delivery is validated.

This guide shows how to connect Odoo to ShipStation so that Odoo quotes a live shipping rate on a quotation and buys the shipping label when your team validates the delivery. The connector is an Odoo app called ShipStation Shipping, so there is no custom code and no outside connector to maintain. Each delivery method in Odoo is tied to one carrier and one service in your ShipStation account. The steps were verified on Odoo 20 Enterprise and are written for the person who sets up shipping.

Before you start

Get your key from ShipStation

  1. Sign in to ShipStation as the account owner and go to Settings, Account, API Settings.
  2. Select V2 API in the version list and click Generate API Key. The first time, ShipStation emails a verification link; after you verify, generate again, choose an expiry of 3, 6 or 12 months and copy the key. ShipStation shows it only once.
  3. Go to Settings, Account, Shipping, Carriers and switch on each carrier you plan to use. Odoo loads its carrier list from your ShipStation account.

Odoo accepts V2 keys only; a V1 key is refused. ShipStation offers no sandbox key to ShipStation account holders, so the key you paste is always a live one.

Install the app

  1. Open the Apps app and search for ShipStation.
  2. Click Activate on ShipStation Shipping.

The install creates a delivery method called ShipStation, a ShipStation delivery product and a default package type called Package.

Odoo 20 Apps search for ShipStation showing the ShipStation Shipping app with an Activate button
ShipStation Shipping in the Apps app.

Create one delivery method per carrier and service

  1. Open the Inventory app, then go to Configuration, Delivery Methods. Open ShipStation, or click New.
  2. Give the method a name your sales team will recognise, such as UPS Ground. Set Provider to ShipStation.
  3. Leave Integration Level on Get Rate and Create Shipment. Get Rate only prices the shipment and never buys a label.
  4. Choose an Invoicing Policy. Estimated cost charges the customer the rate shown on the quotation. Real cost replaces it with the label's actual cost after the delivery is validated. Margin on Rate and Additional margin add your markup to either.
Inventory Configuration menu open with Delivery Methods under the Delivery heading
Inventory, Configuration, Delivery Methods.
ShipStation delivery method form with Provider, Integration Level, Invoicing Policy and the Test Environment button
The delivery method form. The Test Environment button sits above the form.
  1. On the ShipStation Configuration tab, paste the key into ShipStation API Key. Choose a ShipStation Label Layout (4x6 or Letter) and a ShipStation Label Format (PDF, PNG or ZPL). Letter works only with PDF. If you choose a ShipStation Insurance Provider, also set Insurance Percentage on the main form.
  2. Click the sync icon next to ShipStation Service Name. The ShipStation Carrier Selector lists the carriers in your ShipStation account, with tags showing which services are domestic, international, multi-package or support returns. Pick a carrier, then one service, and click Save. The service name now shows on the tab, and any package types that carrier offers are added to Odoo.
  3. Set ShipStation Default Package to a package type that suits the service. It needs a length, width and height, or Odoo stops with an error before asking ShipStation.
  4. Repeat for every carrier and service you sell. If you duplicate a method, Odoo clears the key and the service on the copy, so paste the key and sync again.
ShipStation Configuration tab with API key, label layout and format, insurance, confirmation and the sync icon
The ShipStation Configuration tab. The sync icon is next to ShipStation Service Name.

If ShipStation does not accept the key, the sync stops with the message below. Check that it is a V2 key, that it has not expired, and that your plan includes API access.

Validation Error: ShipStation refused the API key. Make sure it is an active V2 production key
The message when ShipStation refuses the key.

Test first, then go live

A new ShipStation delivery method starts in test mode, shown by the Test Environment button above the form. In test mode Odoo still buys each label with your live key and then voids it straight away. The warning on the form says charges can still occur, so test with a cheap service. Click Test Environment to switch the method to Production when you are ready.

Labels are bought only on operation types with Generate Shipping Labels ticked. To check, go to Inventory, Configuration, Operations Types and open Delivery Orders. It is ticked by default on each warehouse's delivery operation type.

Delivery Orders operation type with Generate Shipping Labels ticked
Generate Shipping Labels on the Delivery Orders operation type.

Ship an order

  1. In the Sales app, create a quotation and click Shipping below the order lines.
  2. In Add a delivery method, choose your ShipStation method. Odoo asks ShipStation for the rate and shows it as Cost. Get all rates prices every available method at once. Click Add to put the shipping line on the quotation.
  3. Confirm the order. The delivery order shows the method as Carrier on its Additional Info tab.
  4. Validate the delivery order. Odoo sends the shipment to ShipStation, buys the label, fills in Tracking Reference and attaches the label file to the delivery order's chatter, the message log beside the form.
Add a delivery method dialog with ShipStation in the Delivery Method list and the Get all rates link
Choosing the ShipStation method on a quotation.
Delivery order Additional Info tab with Carrier ShipStation, Tracking Reference, Weight and Weight for shipping
Shipping Information on the delivery order before validation.

If ShipStation cannot create the label, Odoo shows the reason and does not validate the delivery order. A method that was never synced stops with this message, on the quotation and again at Validate.

Invalid Operation: No carrier is set on ShipStation. To use ShipStation, you'll need to sync your carriers with your account
Validate stops until the method has a carrier and service.

Check that it worked

With the method still in test mode, create a quotation for a customer with a full address and a product that has a weight. In Add a delivery method, Cost shows a price rather than an error. Confirm the order and validate the delivery order. The chatter shows "Shipment created into ShipStation" with the tracking number and the label file, followed by a note that the shipment was cancelled because the method is not in production. Once the method is in Production, Tracking Reference keeps the number and a Tracking button opens the tracking link ShipStation returns.

Cancel and return labels

What the connector does not do

Steps verified on Odoo 20. Menus and labels can differ on other versions.

Common questions

Does Odoo have a native ShipStation integration?

Yes. Odoo 20 Enterprise includes the ShipStation Shipping app, and Odoo Online databases on version 19.4 have it too. Odoo 19.0 and Community do not include it.

Which ShipStation API key does Odoo need?

A V2 API key, generated in ShipStation under Settings, Account, API Settings by the account owner. Odoo refuses V1 keys, and ShipStation's help centre says API access needs a Standard or Accelerate plan or higher.

When does Odoo buy the ShipStation label?

When the delivery order is validated, provided the delivery method's Integration Level is Get Rate and Create Shipment and the operation type has Generate Shipping Labels ticked. The quotation only fetches a rate.

Does Odoo send open orders to ShipStation?

No. Odoo does not push orders for picking in ShipStation. A shipment appears in ShipStation's Orders tab once Odoo has bought its label.

Can I test the ShipStation connector without paying for labels?

Not entirely. In test mode Odoo buys each label with your live key and voids it straight away, and the form warns that charges can still occur, so test with a cheap service.

Talk to the team.

If you are setting this up, or Odoo is not behaving the way this guide describes, book a 30-minute call. We will look at your configuration and tell you what it needs. Calgary studio, in-house team, no offshore handoffs.

Book the call →