ShipOS or a Direct Courier API: How to Decide Between a Delivery Layer and Your Own Integration
Back to blog
full stack·September 5, 2026·4 min read·By Yehonatan Saadia

ShipOS or a Direct Courier API: How to Decide Between a Delivery Layer and Your Own Integration

ShipOS is an Israeli multi-carrier delivery layer for online stores. When one integration is enough, and when a direct courier API is worth building instead.

Key takeaways

  • A delivery layer replaces one integration per carrier. It does not replace the commercial agreement with the carrier, which stays a precondition for connecting.
  • ShipOS publishes a WooCommerce plugin, a Shopify app and a Wix app, and states it offers a REST API for custom systems. No public API specification is published on its site.
  • The decision is not made on how many carrier logos are supported. It is made on whether the capability you need - pickup points, dual shipment, cash on delivery - exists for the specific carrier you ship with.
  • The real difference is status ownership: a layer gives you one normalised status model across carriers; a direct integration gives you exactly what the carrier sends, including whatever a layer would have collapsed.
  • One high-volume carrier is the case where a direct integration pays. Three mid-volume carriers is the case where it does not.

ShipOS is an Israeli delivery-management platform that sits between a store and the couriers: you integrate once with ShipOS, and it talks to the carriers. Its site lists Cheetah, HFD, Tapuz, YDM, Cargo, Orian, ZigZag and Wolt Drive among others. A direct courier API earns its cost when one carrier carries most of your volume.

What a delivery layer actually replaces

A delivery layer replaces three things, not one:

  • The per-carrier code. Instead of three integrations with three authentication schemes and three payload shapes, there is one connection.
  • The status translation. Every carrier describes the same reality in its own vocabulary. The layer maps them all into one model your store can show a customer.
  • The maintenance when the carrier side changes. A change on the carrier's side is absorbed by the layer vendor rather than by you.

What it does not replace is the commercial relationship. ShipOS's per-carrier pages state plainly that connecting requires an existing account with that carrier, and in some cases connection details supplied by a carrier representative - for Cheetah, a connection code and an authentication token entered in the licences screen. Rates, service levels and coverage remain your negotiation.

What does ShipOS connect to, and what do you still have to arrange yourself?

ShipOS publishes a couriers index in which every carrier gets its own page listing the capabilities supported for that carrier. That per-carrier detail matters more than the list of names, because the capabilities are not identical across carriers. The Cheetah page lists home delivery, pickup-point support, dual shipments, bulk label printing and cash on delivery. The HFD page adds collection from the customer back to the store, and shipment cancellation.

Four things stay yours after connecting:

  1. Opening an account and agreeing rates with each carrier you intend to dispatch to.
  2. Obtaining the connection credentials from the carrier and entering them in the platform.
  3. Deciding which carrier service maps to which shipping method in the store checkout.
  4. Handling exceptions: a rejected dispatch, an address that could not be found, a parcel that came back.

This recurs in every Israeli courier API integration: the technical part is usually the short part.

Aggregation layer versus a direct carrier API

CriterionDelivery layerDirect carrier integration
Number of integrationsOne, for all carriersOne per carrier
Switching carrierA configuration changeA new development project
Status modelUnified and normalisedWhatever the carrier actually sends
Access to carrier-specific fieldsOnly what the layer exposesFull
Third-party dependencyOne more vendor in the chainNone
Ongoing costSubscription or volume-based feeDevelopment and maintenance only
When the carrier changes somethingThe vendor absorbs itYou absorb it
Connection documentationThe vendor's setup guidesA spec the carrier gives you after you open an account

That last row is the crux. Most Israeli couriers publish no public API specification you can read before committing. The spec arrives from the carrier after an account is opened, sometimes after a signature. A direct integration therefore cannot be fully designed up front - it can only be estimated.

When is a direct integration the better build?

Four situations where the layer stops paying for itself:

  • One carrier carries most of the volume. The layer's value is multi-carrier. With a single dominant carrier you are paying for an option you do not exercise.
  • You need a field the layer does not expose. A special collection instruction, a courier note, a packaging type, a time window. If the carrier supports it and the layer does not pass it through, there is no way around it.
  • The flow does not start in the store. When orders originate in an ERP or a production system rather than a storefront, the natural connection is system-to-carrier, as in connecting an online store to an ERP.
  • Volume makes the fee material. At low volume the pricing model is uninteresting. At high volume it becomes a budget line worth calculating against a one-off build.

And one situation where staying on the layer is almost always right: three or more carriers, switched by region, price or load.

The costs that do not show up in the comparison

  • Switching cost. A direct integration to a carrier you drop is code you delete. A layer you drop is a setting you change.
  • Diagnosis cost. When a parcel is stuck, a layer adds one more party to ask before anyone knows whose fault it is.
  • Training cost. A support team that sees one screen learns one screen. A team that sees three carrier portals learns three.
  • Re-mapping cost. A unified status model is convenient until your store needs to distinguish two states the layer merged into one. That mapping then gets rebuilt on your side anyway.

What breaks in each model

On a layer: a capability exists at the carrier but is not exposed; a status the carrier sends is swallowed during normalisation; an outage at the vendor stops dispatch to every carrier simultaneously rather than one.

On a direct integration: every carrier needs its own failure handling; adding a fourth carrier is a project rather than a setting; an undocumented change on the carrier side surfaces when shipments stop going out, not before.

Both models break the same way in the end. If the order does not carry a stable shipment identifier and an event log, nobody can reconstruct what happened. The same applies to automating shipping labels in Israel, where a duplicate label is the symptom and the missing identifier is the cause.

What to decide before you choose

  • How many carriers will genuinely be in use over the next year, not how many are supported.
  • Which carrier-specific fields are critical to your process rather than merely nice to have.
  • Who maintains the code if you build direct, and what happens when that person is unavailable.
  • Which status model the customer sees, and which states you cannot afford to lose.
  • What the exit looks like from each option, before you need it.

Sources

#ShipOS#shipping#integration#couriers#ecommerce#אינטגרציה

Frequently asked questions

Does ShipOS publish a public API specification?

Its site states that a REST API is available for custom systems, ERPs and logistics platforms, but no public technical specification is published that you can read before connecting. In practice, connecting anything other than Shopify, WooCommerce or Wix means contacting them and receiving the details directly.

Does a delivery layer replace the agreement with the courier?

No. The ShipOS carrier pages state that an existing account with the carrier is required, and in some cases connection credentials supplied by a carrier representative. The layer replaces the development work against the carrier, not the negotiation over rates, service levels and coverage areas.

How many carriers justify moving to a layer?

A simple rule: two or more, or one with a clear intention to add another. With a single carrier at high volume, a direct integration gives full access to fields and statuses with no extra party in the chain and no ongoing volume-based cost.

What do you do when the carrier supports a capability but the layer does not?

Ask the layer vendor whether it is planned, and separately test whether the capability is genuinely critical or merely convenient. If it is critical and has no date, that is precisely when a direct integration to the one relevant carrier beats replacing your whole shipping stack.

Keep reading

Related service

Integrations

Make the systems you already pay for talk to each other.

Learn more →←

About the author

Yehonatan Saadia

Freelance automation, web & MVP developer

I'm Yehonatan Saadia, a senior developer who builds business automation, custom websites, and MVPs for small and mid-sized companies across the US, Europe, and Israel. These guides come from real client work, not theory.

Work with me

Have a project like this?

Tell me what you're trying to automate or build. I reply within 24 business hours with a few targeted questions, then we walk through it on a free 30-minute call, with no commitment. You come away with a scope, a timeline and a fixed price - or a straight answer that it isn't worth building.