GoatLabelsGoatLabels
For operations and IT teams that run Odoo.

Odoo shipping labels from one account


Odoo export in. Four carriers out.

You can print Odoo shipping labels with Odoo's native carrier connectors or by sending delivery orders to GoatLabels as a CSV export or a REST API call. GoatLabels rate-shops USPS, UPS, FedEx, and DHL from one account on Free at $0 a month or Pro at $40 a month. It has no native Odoo app and does not write tracking back into Odoo for you.

Four carriers per delivery order

USPS, UPS, FedEx, and DHL quoted together on each parcel from your Odoo delivery orders, from one account with no carrier connectors to configure.

UPSFedExDHLUSPSall quoted
One accountNo carrier setup.
Odoo export500 rows per file.
REST APIUnlimited calls.

Freight cost by Odoo reference

Each label debits the quoted amount from a prepaid wallet to a dated ledger entry that carries your Odoo order or transfer reference.

VisaMastercardAmerican ExpressApple PayGoogle PayBitcoinEthereumTether (USDT)
Prepaid walletCard or ACH.
Pro $40 flatUnlimited shipments.
Dated ledgerReference on each line.
Odoo shipping label options, compared

What are the ways to print Odoo shipping labels?

Odoo's native connectors are a good fit for teams that already hold carrier accounts and want labels created inside the delivery order. GoatLabels is a file and API handoff for Odoo multi-carrier shipping from one account, without setting up each carrier. Odoo facts are from the Odoo 19.0 documentation, read 2026-10-06.

Updated

Odoo shipping label options, compared, sources checked 2026-10-06
 GoatLabelsOdoo native carrier connectorsAggregator connector in OdooEnterprise multi-carrier system
How Odoo orders arriveA CSV exported from an Odoo list view, up to 500 rows per import, or a REST API call from a script beside Odoo.Inside Odoo. The shipping method sits on the order and the label is created from the delivery order.Inside Odoo, through a connector that passes the shipment to the aggregator.Integrated with Odoo by the vendor or a partner as an implementation project.
Carriers coveredUSPS, UPS, FedEx, and DHL from one account, plus an international network. US and Singapore origins.Odoo 19.0 lists DHL Express, FedEx, and UPS for all regions, US Postal Service for the United States, and Bpost for Belgium.Odoo 19.0 lists Envia.com and EasyPost, and Sendcloud for some European countries.Depends on the vendor and on the carrier contracts you hold.
Carrier setupNone. Labels are bought on GoatLabels' accounts. You cannot bring your own carrier accounts or negotiated rates.Set up per carrier in Odoo. Check Odoo's docs for what each connector asks for.Set up the aggregator connector in Odoo. Check Odoo's docs and the aggregator's own terms.Your own carrier contracts, configured during the project.
Tracking back in OdooReturned by the API and on signed webhooks. Your script or import posts it to Odoo; there is no automatic write-back.Native, because the shipment is created in Odoo.Handled by the connector once it is configured.Handled by the integration.
Price and commitmentFree $0 a month with 50 shipments, or Pro $40 a month flat with unlimited shipments. No contract.Not stated here. Check Odoo's pricing page for your edition and apps.Not stated here. Check the aggregator's pricing page.Quoted by sales, typically with implementation fees.

Third-party details checked on from each vendor's own pages: Odoo 19.0 documentation: third-party shipping carriers; Odoo 19.0 documentation: export and import data; Odoo 19.0 documentation: external JSON-2 API; Odoo 19.0 documentation: webhooks in Studio automation rules. Plans and features change, so confirm on the vendor's current page before you decide.

Does Odoo print shipping labels on its own?

Yes, Odoo shipping label printing is built in through its native shipping connectors. The Odoo 19.0 documentation lists DHL Express, FedEx, and UPS for all regions, US Postal Service for the United States, Bpost for Belgium, Sendcloud for some European countries, and the aggregators Envia.com and EasyPost.

Each connector is set up per carrier in Odoo, so check Odoo's documentation for what a given carrier needs before you plan the work. For a team that already holds carrier accounts and wants the label created inside the delivery order, the native route is a sound choice and keeps tracking in Odoo with no extra step.

How do I export Odoo delivery orders to buy labels in bulk?

Select the delivery orders in an Odoo list view, export them, and import the file into GoatLabels. Odoo 19.0 documents export from list views in two formats, .csv and .xls, and lets you add and reorder fields and save the selection as a named export template, so the same columns come out every day.

Choose the .csv format. GoatLabels accepts up to 500 rows per file, prints the Odoo delivery order labels, and names the row and field of any error. One bad row does not fail the batch, so a delivery order with a missing postal code is held back alone while the rest of the wave gets labels. Include the Odoo order or transfer number as the reference column.

Can Odoo buy shipping labels through an API?

Yes, with a small script or service that sits between Odoo and the GoatLabels REST API. The script reads the delivery orders that are ready, creates each shipment, reads the four carrier quotes, and buys the one your rule picks. Odoo 19.0 documents an External JSON-2 API, new in that version, that such a script can use to read and update records.

GoatLabels allows unlimited API calls on every plan, with live and test keys and Idempotency-Key support, so a retry after a timeout does not buy a second label. Odoo Studio documents webhooks in automation rules as inbound, meaning an external system posts to Odoo. Your script can use that or the Odoo API to put the tracking number on the delivery order.

How do label costs get matched to Odoo orders?

Every label debits the quoted amount from a prepaid wallet and writes a dated ledger entry that carries the reference you sent. If that reference is the Odoo sales order or transfer number, the ledger export joins straight to your orders and gives finance a freight cost per order.

A multi-carton order produces several labels, each its own ledger line with the same reference, so the total per order is a simple sum. Carrier re-weigh adjustments post to the same ledger. GoatLabels does not post into Odoo accounting; your import or script does that from the ledger export or the API.

When is GoatLabels the wrong choice for Odoo shipping labels?

It is the wrong choice if you want labels created inside the Odoo delivery order with no export or script, or if you ship on your own negotiated carrier contracts. GoatLabels has no native Odoo app and no bring-your-own carrier accounts, and Odoo's native connectors serve both of those needs.

It is also parcel only, so it does not book LTL or freight, and it offers no SSO, SLA, or sub-accounts. Teams outside the US and Singapore origins, or teams that rely on a carrier such as Bpost, should stay with the Odoo connector for that carrier. As Odoo shipping software, GoatLabels fits teams that want four carriers quoted from one account today.

Comparing routes for other ERPs too? See ERP shipping integration. Starting with the export route? Read bulk shipping labels from CSV.

Public API v1

A script beside Odoo that buys the label.

Odoo holds the ship-to address, the packages, and the weights. A small script reads the delivery orders that are ready, calls the GoatLabels REST API to rate-shop and buy, and posts the tracking number back to Odoo. Calls are unlimited on every plan, with live and test keys, Idempotency-Key support, signed replayable webhooks, and rate-limit headers.

Read ready delivery orders, then create and buy
Idempotency-Key so a retry never buys twice
Signed, replayable webhooks for tracking events
OpenAPI 3.1 spec to generate a client
Read the API docs Get an API key$0 per API call
curl https://api.goatlabels.io/api/v1/shipments
POST /api/v1/shipments
Authorization: Bearer sk_live_…
Idempotency-Key: ord_8421

{
  "to": { "name": "Joyce", "city": "Berlin", "country": "DE" },
  "parcel": { "weight": 2.6, "weight_unit": "lb" },
  "service": "fedex_intl_priority"
}
Pay for labels, not a tier

Two plans. No contract.

Free is $0 a month with 50 shipments a month. Pro is $40 a month flat with unlimited shipments and cheaper label rates. Bulk CSV, 13 connectors, and the REST API come with both, and labels are paid from a prepaid wallet.

Pro

Most popular
$40/ month
Unlimited shipments on one flat plan
Cheaper label rates
Four carriers rate-shopped on every parcel
The same API and wallet as Free

Volume pricing

illustrative
less volumemore volume

pay for labels, not for seats

Free

$0 / forever

Enough to test one Odoo export template before you script anything.

50 shipments a month at $0
USPS, UPS, FedEx, and DHL rate-shopped on every parcel
REST API with unlimited calls
Bulk CSV import, up to 500 rows per file
13 store connectors included

The assistant is included

The in-app assistant drafts a label from a pasted order or email for you to confirm. It is part of the product, not an add-on.

Web, every planTelegram, Pro

API on every plan

GET /api/v1/shipments

200 OK · plan: free

Unlimited calls. The same wallet as the dashboard.

Bring last month's shipments

Put real parcels through the side-by-side quotes and compare against what those labels cost you on

ShippoPirate ShipShipStation
No contractNo card for FreeFour carriers
USPSUPSFedExDHL

Label prices are quoted live from USPS, UPS, FedEx, and DHL and shown as one number, the same number that leaves your wallet. Other vendors' plans move, so compare against their current pricing page. Full pricing details

Odoo shipping labels: FAQ

Does GoatLabels have an Odoo app or module?
No. GoatLabels has no native Odoo shipping integration: no app, module, or connector. Odoo delivery orders come in as a CSV export of up to 500 rows per file or through the REST API, which has unlimited calls on every plan. Someone on your side owns the export template or the script.
Which carriers can I use for Odoo orders with GoatLabels?
USPS, UPS, FedEx, and DHL, rate-shopped on every parcel from one account with one all-in number per carrier, plus an international network. Parcels ship from US and Singapore origins. You cannot add your own carrier accounts or negotiated rates.
How much does it cost to print Odoo shipping labels with GoatLabels?
The software is $0 a month on Free with 50 shipments a month, or $40 a month flat on Pro with unlimited shipments and cheaper label rates. CSV import and the API are on both plans. Labels are paid from a prepaid wallet, and there is no contract.
Will tracking numbers appear on the Odoo delivery order?
Only if your own script or import puts them there. GoatLabels returns tracking through the API when the label is bought and on signed webhooks as the parcel moves. It does not write into Odoo, so a script using the Odoo API, or a manual import, updates the delivery order.
Can I keep Odoo's native connectors and use GoatLabels too?
Yes. Nothing in GoatLabels changes your Odoo configuration, because orders leave Odoo as an export or an API read. You can keep an Odoo connector for one carrier account you hold and send the remaining parcels to GoatLabels to compare four carriers.
Can I talk to someone about my Odoo setup first?
Yes. Email contact@goatlabels.io with your Odoo version, your monthly parcel volume, and a sample delivery order export if you have one. We check the file against the bulk importer, price the parcels across USPS, UPS, FedEx, and DHL, and show the API and the ledger. There is nothing to sign.

Related reading: ERP shipping integration, bulk shipping labels from CSV, the shipping API for developers, B2B shipping software, multi-carrier shipping software.

ERP shipping guides: Acumatica shipping software, Business Central shipping software, Dynamics 365 Supply Chain shipping, Epicor shipping software, ERP shipping integration, Infor shipping software, NetSuite shipping software, Oracle ERP Cloud shipping, QuickBooks Enterprise shipping software, Sage shipping software, SAP Business One shipping software, SAP S/4HANA parcel shipping, Xero shipping labels, Zoho Inventory shipping labels.

Test it on one Odoo export.

Odoo delivery orders in, labels out.
No carrier setup.

Export a CSV from Odoo or call the API, compare USPS, UPS, FedEx, and DHL on each parcel, then decide. Free is $0 a month; Pro is $40 flat with unlimited shipments.

No contract. No card for the Free plan.