Skip to content
LabelsDock

Everything in one place

Quote, clear, buy, track, reconcile.

One system from the moment an order arrives to the moment the carrier invoice is checked against the price we quoted you. Each item says how far along it is, because you deserve to know that before you commit.

Before you ship

What it will actually cost, and what the border will ask you for.

Customs, done for you

In build

Commercial invoice generated under your name, HS codes classified once per product and checked on every order, CUSMA origin where the goods qualify, DDP or DDU chosen per order — and a warning before you ship rather than a hold after.

Rate shopping, all-in

Built

Every eligible carrier and service compared on the landed total rather than the postage, with the breakdown showing which surcharges, fuel and duties made it up.

Envelope to pallet, one list

In build

Parcel, multi-piece and LTL freight quoted side by side, with the crossover shown rather than left for you to discover. Past a carrier’s weight ceiling we stop quoting parcel and start quoting freight.

Buying the label

The part that spends money — and everything that stops it spending twice.

Buying labels safely

Built

Every purchase carries an idempotency key, so a timeout or a retry returns the label you already bought instead of buying a second one. You are never charged twice for one order.

Voids and refunds

Built

An unused label is money you can get back. We watch the void window, flag labels that were never scanned, ask the carrier, and credit you what they actually returned — not what you paid. A void the carrier never answered gets chased until we know, so a label you can still use is never left unusable.

Nothing is left half-done

Built

If a carrier times out mid-purchase, we ask them what really happened rather than guessing — automatically, on a schedule, not when somebody remembers. A charge that never got recorded, or a record that never got charged, is found within minutes instead of at month end.

After it leaves you

What your customer sees, and what happens when a parcel goes wrong.

Tracking that reaches the buyer

Built

Every scan pushed to your systems and emailed to your customer under your name. Exceptions surface where somebody can act on them instead of sitting in a carrier portal.

Returns

Planned

Prepaid and scan-based labels, charged only if the customer actually uses them, linked to the original order so a return is not a second guessing game.

Insurance and claims

Planned

Declared-value coverage per shipment, priced per parcel. When something arrives broken we file the carrier claim, which is the part nobody wants to do.

Getting the orders in

Three ways work reaches us, none of them copy-and-paste.

Store connectors

Planned

Shopify first, then the marketplaces our merchants actually sell on. Deliberately few and deep rather than a long list of shallow ones — orders in, tracking back, no copy-and-paste.

Batch import

Planned

Drop in the spreadsheet your store already exports. Map the columns once; kilograms and centimetres welcome. One bad row never costs you the other 499.

An API you can trust with money

Built

Idempotency keys are required rather than optional, webhook signatures are verified before the payload is read, and every tenant is isolated in the database itself rather than by a remembered filter.

Running the account

Who is allowed to act, whose name is on it, and what it really cost.

Invoice reconciliation

Planned

Carriers rebill after the fact — a reweigh, a surcharge, a corrected address. We hold the quote we gave you, so we can compare it line by line against what they actually billed and tell you what changed. An auditor bought separately cannot do this: it was not there when the price was set.

Your brand, on your domain

Planned

The tracking page, the delivery email and the commercial invoice all carry your name on your own domain — not a page on ours with your logo dropped into it. Your customer never learns we exist.

Accounts for your team

In build

Each person signs in as themselves rather than sharing one key, so access can be given and taken away one person at a time. Removing somebody takes effect on their next click, not whenever their session happens to lapse.

Built means written and tested against a stubbed carrier. Nothing on this list has run against a live carrier account yet — which is why our first merchants pay nothing while we get it there.

Underneath all of it

The parts you should not have to take on faith.

None of this is a feature you would shop for. It is the floor, and it is worth knowing which bits of it are actually in place before you put your customer list on top of it.

Another merchant cannot read your shipments

Built

Every query is scoped to your account by the database itself, not by a filter somebody remembered to write. The rule is enforced one layer below our own code, so a mistake in ours cannot step over it — and a test that tries to read another account’s shipments has to fail before anything ships.

A forged carrier callback cannot move your money

Built

Carrier notifications arrive as ordinary web requests, so anyone can send one. We check the signature before we read the message, not after, and compare it in a way that does not leak whether a guess was close.

The contract you negotiated stays yours

In build

If you bring your own carrier account, those credentials are encrypted with a key the database never holds, so a copy of the data is not a copy of your account. The encryption is written and tested; connecting your own carrier account is not built yet, so nothing is relying on it in anger.

Built means written and covered by tests. Nothing on this site has run against a live carrier account yet — the same caveat as the list above, and it applies here too.

Think this fits what you ship?

Tell us what you send, where it goes, and what your current tool gets wrong. That is the whole first conversation.