Receiving and expected arrivals
When you buy stock that will land at your 3PL rather than your own dock, the warehouse needs to know it is coming. VeraCore calls that an Expected Arrival — elsewhere in the industry, an Advance Ship Notice.
The single most important thing about it:
Sending one changes nothing about your available quantity. It tells the warehouse to expect a delivery, so the dock can plan and check goods in against something. Stock appears only when VeraCore actually receives the goods and reports the new balance on the next inventory mirror.
Everything else on this page follows from that. An announcement is cheap, safe to send early, and safe to cancel — right up until the goods arrive.
What gets sent
An Expected Arrival is a header plus lines, built from one SKU.io purchase order:
| Part | Contents |
|---|---|
| Header | The reference VeraCore will know it by, your client PO number, the receiving facility, the anticipated arrival date, how it is travelling, and how it is loaded |
| Lines | One per PO line: the VeraCore item and the quantity expected |
Two header fields accept only a fixed set of values, because VeraCore rejects anything else — shipping method (Motor Freight, Air, or Rail) and load type (Palletized, Parcel, or Floor-Loaded). Both are pickers in the UI for exactly that reason. The values are listed in the statuses reference.
What has to be in place first
An announcement can only reference things VeraCore already knows about:
- The receiving facility must be mapped. The arrival names a VeraCore facility, which comes from your warehouse mappings.
- The items must exist at VeraCore. You cannot announce an arrival of a product the warehouse has never heard of — see Push products to VeraCore.
Both are one-time setup for a given warehouse and catalogue. When an announcement errors, one of those two is usually why.
The two ways an announcement gets sent
Attended — the button
On the purchase order, Send to VeraCore pushes the announcement immediately. This path is always available: it does not care whether auto-push is on, and it does not care whether the sync schedule is paused. It is a deliberate act by a person, so nothing gates it.
Unattended — auto-push on approval
Turn on Auto-push Expected Arrivals on the Inventory Sync settings tab and SKU.io announces purchase orders for you.
The trigger is approval. When a purchase order is approved, the announcement goes out.
Approval is the only purchase-order transition this app raises an event for. There is no separate Ordered event — a PO's status can move without anything being broadcast for an integration to listen to. Approval is the hook that exists, so approval is the trigger.
If your workflow does not use approval, use the manual Send to VeraCore button instead. It stays available whether or not the switch is on.
The announcement is dispatched only after the purchase order has been fully written to the database, so the warehouse can never be told about a PO that a later failure rolled back.
Three conditions must all hold for the unattended path:
- Automatic sync is enabled for the connection;
- Auto-push Expected Arrivals is on;
- The sync schedule is Active, not paused.
If an arrival for that PO already exists and is locked, the auto-push is skipped rather than attempted.
The lifecycle
| Status | What it means | What you can do |
|---|---|---|
| Pending | Created in SKU.io, not yet sent | Edit, send, delete |
| Sent | Announced to VeraCore, awaiting goods | Edit, cancel |
| Received | VeraCore has received it | Nothing — see below |
| Error | The push or a reconciliation failed | Read Last Error, fix, retry |
| Cancelled | Pulled back before receiving | Nothing |
Note what has no arrow out of it. Received is terminal, and there is no path from Cancelled back to Sent — a cancelled announcement is re-announced by creating a new one, not by reviving the old one.
Received is a one-way door
Once VeraCore marks an arrival as Received, its header and lines can no longer be edited or deleted through the API — that is VeraCore's rule, not SKU.io's. The row shows a lock indicator, and the Cancel announcement? action disappears.
This is why editing an announcement is a race worth being aware of: an arrival can be locked by the warehouse between the moment you open it and the moment you save. Filter by Receiving started to see everything already past that line.
If something needs to change after receiving, it is a conversation with your 3PL — and a stock adjustment on the SKU.io side, not an edit here.
Reconciliation
Sent announcements are re-checked against VeraCore every hour: SKU.io asks what the warehouse now knows about each one and updates the status and lock state accordingly. That is how an arrival moves from Sent to Received without anyone touching it.
Reconciliation is also where errors surface, which is why an arrival can be sitting quietly at Sent one hour and show Error with a reason the next.
Receiving has no capability switch of its own
The Sync settings tab has five capability switches — tracking, inventory, and products inbound; orders and products outbound. None of them covers receiving.
Expected arrivals are therefore gated only by the connection's overall sync state: pause the schedule and the reconciliation job stops, but there is no "receiving off" switch to look for. The nearest thing is the Auto-push Expected Arrivals toggle, which controls only the unattended half.
Where to go next
- Announce a purchase order to the warehouse — the step-by-step, both paths.
- Track and cancel expected arrivals — watching the queue and pulling one back.
- The inventory model — why the stock does not appear until the mirror runs.