GoatLabelsGoatLabels
For operations and IT teams running an OMS.

Order management system shipping integration for parcels


Release event in. Tracking back.

Order management system shipping integration turns an order release event into a purchased carrier label and sends tracking back to the order. GoatLabels does this through a REST API or a bulk CSV import, rate-shopping USPS, UPS, FedEx, and DHL on each parcel, on Free at $0 a month or Pro at $40 flat. It has no native OMS connector, so your team builds the handoff.

A label for every release

When your OMS releases an order to fulfillment, USPS, UPS, FedEx, and DHL are quoted on the parcel from one account, with no carrier contracts.

UPSFedExDHLUSPSrate-shopped
Release to labelBy API or CSV file.
Four carriersOne all-in number each.
Signed webhooksTracking back, replayable.

Label cost by order number

Each label debits a prepaid wallet and writes a dated ledger line carrying the order reference your OMS sent.

VisaMastercardAmerican ExpressApple PayGoogle PayBitcoinEthereumTether (USDT)
Prepaid walletCard, ACH, and more.
Pro $40 flatUnlimited shipments.
Order referenceOn every ledger line.
OMS shipping integration routes, compared

How can an order management system buy parcel labels?

An OMS decides what ships and from where, but order management shipping software rarely prints the carrier label itself. There are four common routes: an API and file handoff to a label service, the shipping features inside the OMS, a connected shipping app, or an enterprise multi-carrier system. GoatLabels is the first route. The table shows what each one asks of you.

Updated

OMS shipping integration routes, compared, sources checked 2026-10-06
 GoatLabelsAn OMS's built-in shippingA connected shipping appEnterprise multi-carrier system
How a released order arrivesYour code calls the REST API on the release event, or you import a CSV of up to 500 released orders.Inside the OMS, where the feature exists. Check which carriers and regions your edition covers.A packaged app syncs orders out of the OMS. You install it, map fields, and keep it current.Connected by the vendor or a partner as an implementation project.
Carrier accounts neededNone. Labels are bought on GoatLabels' accounts, and your own negotiated rates cannot be added.Usually your own. Microsoft documents that Dynamics 365 Supply Chain needs a rate engine you develop with the carrier or a carrier hub service.Usually your own accounts, sometimes with the app's own rates as well.Your own carrier contracts, often across many carriers.
Rate shopping per parcelUSPS, UPS, FedEx, and DHL quoted on every parcel, one all-in number per carrier.Depends on the OMS and on the carriers you have connected.Across the carrier accounts you connect to the app.Rule-based across your contracted carriers.
Tracking back to the orderReturned by the API at purchase and on signed, replayable webhooks. Your code writes it to the OMS.Native, because the shipment record lives in the OMS.Written back by the app once the mapping is configured.Written back by the integration.
Price and commitmentFree at $0 a month with 50 shipments, or Pro at $40 a month flat with unlimited shipments. No contract.Part of the OMS license or an added module. Not stated generically.An app fee, a platform subscription, or both.Varies by vendor. Check the vendor's pricing page and ask about implementation work.

Third-party details checked on from each vendor's own pages: Microsoft Learn: small parcel shipping in Dynamics 365 SCM (viewed 2026-10-06). Plans and features change, so confirm on the vendor's current page before you decide.

What is order management system shipping integration?

Order management system shipping integration is the handoff that takes an order the OMS has released to fulfillment, buys a carrier label for it, and returns the tracking number to the order record. The OMS owns the decision about what ships, from which location, and when. The label service owns the OMS carrier integration side: carrier choice, rates, and the label itself.

The handoff has a clear start and end. It starts with a release event or a list of released orders, and it ends when the order shows a tracking number that customer service and the buyer can see. Everything between those two points is either a packaged connector or code and files your team controls.

How does an OMS release event trigger a shipping label?

A small service on your side listens for the release event and calls the GoatLabels REST API to create the shipment, read the carrier quotes, and buy the label your rule selects. Many order systems can publish that event to a queue, a webhook, or a workflow step, so check which of those your OMS supports before you design the service.

Send an Idempotency-Key with each purchase call. Order events are often delivered more than once, and the key means a repeated event returns the first label instead of buying a second. Live and test keys let you run the whole flow against test orders before any wallet funds are spent, and rate-limit headers tell the service when to slow down.

How does tracking get back into the order management system?

The tracking number comes back in the API response when the label is bought, and later tracking events arrive on signed webhooks that your endpoint verifies and then writes to the order. GoatLabels does not write into any OMS itself, so the update call to your order system is part of the service your team builds.

Webhooks can be replayed, which matters when your endpoint was down during a deploy or an outage. Replay the missed events rather than polling every open shipment. If one order ships in several cartons, each carton is its own label and its own tracking number, all carrying the same order reference so the OMS can attach them to one order.

Can I connect an OMS to shipping labels without writing code?

Yes, with a file. Export the orders your OMS has released as a CSV and import it into GoatLabels, which takes up to 500 rows per file and names the row and field behind any error. One bad row does not fail the batch, so the other orders in the wave still get labels while someone corrects the address.

The file route is manual in both directions: a person runs the export, and tracking numbers go back through whatever import your OMS offers. That is reasonable for a daily wave or a pilot. Once release volume is spread through the day, you can move the same flow to the API so labels follow the release event without a person in the loop.

When is GoatLabels the wrong fit for OMS shipping integration?

GoatLabels is the wrong fit if you need a vendor-supported connector installed in your OMS, labels on your own negotiated carrier contracts, LTL or freight booking, or a contractual SLA. It offers none of those. It is a parcel label service reached by CSV or API, with no SDK and no automatic write-back to any order system.

It also does not produce retailer compliance labels such as GS1-128 or any EDI document, so orders bound to a retailer's routing guide need other tooling. It suits teams whose OMS can emit a release event or an export, who have a developer or an operations analyst to own the handoff, and who want four carriers without opening carrier accounts.

Handing off from a warehouse system instead? See WMS shipping integration. Ready to design the event handler? Read the shipping API for developers.

Public API v1

A release event that ends in a tracking number.

Your OMS already holds the ship-to address, the order lines, and the fulfillment location. A service that listens for its release event can call the REST API to rate-shop and buy the label, then receive tracking on signed webhooks. Calls are unlimited on every plan, with live and test keys, Idempotency-Key support, an OpenAPI 3.1 spec, and rate-limit headers.

Create, quote, and buy from one release event
Idempotency-Key so duplicate events buy one label
Signed, replayable webhooks carry tracking back
OpenAPI 3.1 spec and test keys for the build
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 prove one release-to-label flow before you commit.

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

Order management system shipping integration: FAQ

Does GoatLabels have a native OMS connector?
No. GoatLabels has no packaged connector for any order management system. Released orders arrive through the REST API, an OMS shipping label API with unlimited calls on every plan, or through a bulk CSV import of up to 500 rows per file. The 13 native connectors are for stores and marketplaces only.
Which carriers can order management system shipping labels use?
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 bring your own carrier accounts or negotiated rates.
What does order management system shipping integration cost?
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. The API and CSV import are on both plans. Labels are paid from a prepaid wallet, and there is no contract. Your own development time is the other cost.
What happens if the OMS sends the same release event twice?
Nothing is bought twice if your service sends an Idempotency-Key with the purchase call. A repeated call with the same key returns the original result. Use a value that is stable per parcel, such as the order number plus the carton number.
Can one OMS order ship as several cartons?
Yes. One order can produce several labels, and each label is its own ledger line with its own tracking number and the same order reference. Your service decides how the order splits into cartons; GoatLabels does not plan cartonization.
Can I talk to someone about my OMS setup first?
Yes. Email contact@goatlabels.io with the name of your OMS, how it signals a released order, your monthly parcel volume, and a sample export if you have one. We check the data against the importer and the API, and price sample parcels across USPS, UPS, FedEx, and DHL.

Related reading: WMS shipping integration, ERP shipping integration, B2B ecommerce shipping software, the shipping API for developers.

WMS and order system shipping guides: Brightpearl shipping software, Cin7 shipping labels, Drop ship vendor shipping labels, EDI shipping labels, Extensiv shipping labels, Fishbowl shipping software, Linnworks shipping labels, ShipHero alternative, WMS shipping integration.

Prove it on one released order.

Released orders in, tracking back.
No connector to install.

Call the API from your release event or import a CSV, 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.