Pro
Most popularVolume pricing
illustrativepay for labels, not for seats
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.
USPS, UPS, FedEx, and DHL quoted together on each parcel from your Odoo delivery orders, from one account with no carrier connectors to configure.
Each label debits the quoted amount from a prepaid wallet to a dated ledger entry that carries your Odoo order or transfer reference.
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
| GoatLabels | Odoo native carrier connectors | Aggregator connector in Odoo | Enterprise multi-carrier system | |
|---|---|---|---|---|
| How Odoo orders arrive | A 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 covered | USPS, 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 setup | None. 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 Odoo | Returned 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 commitment | Free $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.
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.
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.
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.
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.
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.
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.
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"
}
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.
Volume pricing
illustrativepay for labels, not for seats
$0 / forever
Enough to test one Odoo export template before you script anything.
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.
GET /api/v1/shipments
200 OK · plan: free
Unlimited calls. The same wallet as the dashboard.
Put real parcels through the side-by-side quotes and compare against what those labels cost you on
ShippoPirate ShipShipStationLabel 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
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.
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.