Skip to main content

When a shipment is refused

Inventory debt exists so that a warehouse is not stopped by a counting problem. Most of the time it does exactly that. But some shipments still cannot go out below zero, and one kind of shipment cannot be undone once it has. This page lists every case, in the order you are likely to meet it.

Some are settings you chose, and you can loosen them. The rest are rules no setting can unlock, because owing the stock would be incoherent rather than merely risky.

What happensWhyWhat to do
The line offers no Ship AnywayAny one of five, and the line never says which: the product is serial-tracked · it is lot- or expiry-tracked · it is set never to ship below zero · the stock at this warehouse is consigned, or is accounted for outside SKU.io · policy is Block hereCheck in that order: the product, then the warehouse, then the company policy. Only two of the five are settings you can loosen; for the rest, receive the stock, ship from owned stock, or resolve it where the stock is held
The dispatch is refused and nothing shipsOne line on it is blocked by any of the aboveFix or remove that line, then dispatch again
You are asked to confirm firstPolicy is WarnRead the prompt, give a reason, confirm
The policy will not saveNo Inventory Debt Clearing account is mappedMap the account, then save
The void is refusedThe shipment's debt has already been repaidNothing — it is permanent
Nothing offers to ship below zero on a warehouse transfer, a manufacturing build or a vendor returnInventory debt covers sales fulfillment onlyReceive the stock first, or record the movement as a stock adjustment

Not enough stock, and this warehouse blocks it

Under the Block policy, a short line cannot ship. It stays backordered and waits for stock.

You normally meet this before you try anything: on the order's Fulfillment tab, a line in the Backordered — Awaiting Stock panel simply has no Ship Anyway button beside Move and Unallocate, and its fulfillable quantity stays capped at what it actually has reserved — zero.

If a dispatch is attempted anyway, it is refused and nothing ships. That includes the lines on the same dispatch that could have gone out: one blocked line stops the whole dispatch, because part-shipping and silently dropping the blocked line would under-ship with nothing on the record to say so.

The refusal names the order and every short line on it, and nothing else:

Fulfillment blocked on sales order …: insufficient allocation. SKU … (line #…): requested 1, allocated 0

Read it as this line has nothing reserved against it — the message does not mention the policy, so it will not tell you that a Block setting is what stopped you rather than a missing allocation.

What to do. Either wait for the receipt, or loosen the policy. The policy is resolved for each shipment from the product, the warehouse and the company in that order — see which policy applies to a shipment and turn on shipping below zero.

note

A product switched to Never ship this product below zero produces exactly the same result, and it wins over the warehouse and the company. A product can only ever make the rule stricter, never looser, so this is worth checking when a warehouse you know is set to Warn still refuses one item.

Shipping this would take stock below zero

Under Warn, this is not really a refusal — it is a question. The first attempt is turned back and the Ship without stock? prompt opens instead, carrying every short line, its estimated unit cost and the basis behind it. Nothing has happened: no shipment, no note on the order, nothing recorded.

Confirming re-sends the same shipment with your acknowledgement attached, keeping the provider, method, date and tracking you already filled in. See ship an order when the stock isn't there.

Confirming needs the inventory.debt.acknowledge permission. Without it, ask somebody who holds it, or backorder the line.

Stock that can never be owed

Four things put stock permanently beyond debt: serial tracking, lot or expiry tracking, consignment, and a warehouse whose stock is accounted for outside SKU.io. None of them is policy. They outrank all three policy levels — the product switch, the warehouse's own setting and the company policy — and they refuse at Allow exactly as they do at Block, because in each case owing the stock would mean recording something untrue.

All four look identical on screen, and none of them says anything. The line sits in Backordered — Awaiting Stock with only Move and Unallocate beside it, and the panel's hint stops at "…Unallocate releases it." — the sentence offering Ship Anyway is not there either, because no line in the panel can carry debt. There is no message, no tooltip and no reason given anywhere on the order:

A backordered line for a serial-tracked product showing only Move and Unallocate — no Ship Anyway, and no explanation

So when a line you expected to be shippable is not, the order will not tell you why. Work through this list instead: check the product first (serial, lot, consignment, or Never ship this product below zero), then the warehouse, then the company policy.

Serial-tracked products

A serial number identifies one specific physical unit. You cannot ship a serial you do not hold, and inventing one to satisfy a shipment would put a number on a certificate for goods that do not exist.

What to do. Receive the units and their serials, then ship. If the goods genuinely left and you are catching up after the fact, raise a stock take for what is really on the shelf.

Lot- and expiry-tracked products

Lot tracking exists so you can say which batch a customer received and when it expires. A lot that has not been received has no batch number and no expiry, and earliest-expiry picking has nothing to pick from. This applies whichever lot rules the product uses.

What to do. Receive the lot, then ship.

Consigned stock

Stock a supplier still owns is not yours to spend. Owing inventory for it makes no sense, because you never held an inventory position in it — the sale already recognises what you owe the supplier through the consignment arrangement instead.

The rule covers the product and warehouse as a whole: if any consigned stock sits in that pool, the pool cannot ship below zero, even where owned stock sits beside it.

What to do. Ship from owned stock, or receive more.

Warehouses whose stock is kept elsewhere

Some warehouses do not hold a stock position in SKU.io at all, because somebody else keeps the ledger for them. Marketplace-managed warehouses — Amazon FBA, Amazon AWD, Walmart WFS, TikTok FBT — and supplier, dropship and virtual warehouses all work this way.

There is no position to owe, so there is nothing to record. Nothing about inventory debt applies at these warehouses.

What to do. Whatever the shortfall is, it has to be resolved where the stock is actually held, not here.

note

The same four bind a sales channel's shipments, but nothing is refused there — the channel's parcel has already gone, and a shipment that has happened is recorded rather than turned back. What changes is where it is recorded: a channel shipment of serial- or lot-tracked stock raises no claim, and the line is listed on the Fulfillment Debt report under Shipped, Not on the Ledger for somebody to reconcile by hand. See debt the sales channel created.

Operations other than shipping a sale

Inventory debt applies to sales fulfillment only. Warehouse transfers, manufacturing consumption and vendor returns cannot go below zero and cannot raise a claim, and there is no setting that adds them. As with the four rules above, nothing on screen names the rule: the operation simply behaves as though shipping below zero had never been switched on.

Stock takes and inventory adjustments are refused for a different and simpler reason: they record a physical count, and a shelf cannot hold minus two. They can only ever add stock — which is how a catch-up count retires a claim. See Clear debt no delivery will repay.

The policy will not save

Switching the policy away from Block is refused while no Inventory Debt Clearing account is mapped, and the field says so. Without the account, a shipment below zero would go out with no entry behind it.

What to do. Map the account under Accounting → Settings → Nominal Code Mappings, then set the policy. The full sequence is in turn on shipping below zero. Switching back to Block never needs the account.

Undoing a shipment that went out on debt

A shipment made below zero can be voided or deleted like any other — unless its debt has already been repaid, in whole or in part. Then it is refused, and nothing changes.

  • Nothing repaid — the void goes through. The claim goes with it and the shipment's own entry is reversed.
  • Partly repaid — refused. One repaid unit out of four is enough.
  • Fully repaid — refused.

The reason is that repayment spent real stock. A receipt gave up units to settle that claim and the cost correction was posted against them. Undoing the shipment now would leave that stock consumed with nothing to explain it and understate your inventory by exactly the repaid quantity.

There is no action in this version that reverses a repayment, so in practice a repaid debt shipment cannot be undone at all. Check before you start: on Inventory → Fulfillment Debt, set Status to All statuses and read the claim's Outstanding column — 3 / 3 means nothing has been repaid, 2 / 4 means it has. See undo a shipment that went out on debt.

If the goods genuinely never left, record that as a restocked return or a positive adjustment rather than a void. The stock is really back on the shelf, and either of those says so honestly.

Next steps

Last verified: