At a Glance
- Manifest-first receiving matches every Metrc manifest to your delivery before you can receive it
- Freshness rules key on the packaged date Metrc records on each package — not expiration dates, which cannabis transfers rarely carry
- Default rules flag Flower and Pre-Rolls over 60 days old, Concentrates, Vapes, and Edibles over 120 — tunable by category, vendor, or SKU
- The Confirm Physical Receipt dialog flags stale product, quantity gaps, and mismatches so you resolve them before Metrc acceptance
- Rejected product goes back with the driver and comes off the invoice automatically; the vendor gets an itemized notice
Manifest-first receiving connects the state's Metrc record to your delivery before anything is received, so the two questions that decide whether you overpay — did the right quantity arrive, and is the product fresh enough to sell — get answered at the dock instead of after the check clears. It works for both wholesale and consignment cannabis deliveries.
Match the Metrc manifest before you receive
Before a cannabis delivery can move to Received, the platform matches its Metrc manifest to the delivery. Most matches happen automatically — off the invoice number or the products on it — the moment an inbound transfer syncs. Anything the platform can't match with confidence waits in an Incoming Metrc Manifests table under your Incoming tab, where you can Match to delivery, Create delivery from the manifest, or Ignore it.
That match is a precondition for receiving a cannabis delivery. If Metrc is down or a transfer hasn't synced yet, anyone on your team who can receive is able to override with a reason — the dock keeps moving, and the override is logged. A Metrc Status column on the deliveries list shows each delivery as In-Transit, Received, or Partially Rejected at a glance.
Freshness rules: reject product that's too old
Cannabis is perishable, so the platform evaluates every package against a freshness rule. The rule keys on the packaged date — how long ago the product was packaged, read straight from Metrc — because expiration and sell-by fields are almost never populated on cannabis transfers. Rules resolve from most specific to least: a SKU rule beats a vendor rule, which beats a category rule, which beats your default.
Out of the box, the platform applies these recommended maximum-age limits, and you can change any of them in Deliveries → Settings:
| Category | Flag when packaged more than |
|---|---|
| Flower | 60 days ago |
| Pre-Rolls | 60 days ago |
| Concentrates | 120 days ago |
| Vapes | 120 days ago |
| Edibles | 120 days ago |
Set a threshold to match how your shelf actually moves — tighter on fast-moving flower, looser on shelf-stable edibles — or add a rule for a specific vendor or SKU when one product needs its own standard.
Dock-time warnings in Confirm Physical Receipt
When you open the Confirm Physical Receipt dialog on a matched delivery, the platform has already compared the manifest to the invoice line by line and read the packaged date on every package. Three kinds of discrepancy are flagged right on the line, in plain English:
- Fails freshness rules — for example, "packaged 03/23/2026 (108 days; your Flower rule is 60). Reject package …4821 in Metrc."
- Quantity mismatch — "Invoice qty 10 · Metrc manifest qty 8" when the vendor billed more than the manifest shows.
- On the invoice, not on the manifest — a billed line with no matching Metrc package — and the reverse, product on the manifest that isn't on the invoice.
You resolve each one before Metrc acceptance. For stale or discrepant product, you reject the package during Metrc acceptance and it goes back with the driver — it never enters your inventory. See the receiving SOP for how the disposition step fits into your team's dock routine.
What happens to rejected product
Rejecting product at the dock adjusts the payable through the same receive-and-reconcile flow you already use — the amount you sent back comes off the invoice, so you only pay for what you kept. Nothing about the payment math changes; the rejected lines simply don't count toward it.
The vendor automatically receives an itemized notice: which product was rejected, its package tag, how old it was, the rule it missed, and the amount coming off the invoice. Because it's grounded in the shared Metrc record, the vendor conversation starts from facts, not a dispute. Every rejected package also lands in a read-only Rejected tab on your deliveries dashboard, so there's a permanent traceability record.
Know before the truck arrives
Because the platform matches manifests while they're still in transit, it can warn you ahead of time. When an inbound manifest on a matched delivery contains packages that fail your freshness rules, your admin and inventory team get a notification and an email — so your team walks up to the dock already knowing which packages to reject, instead of finding out after they've signed for them.
Wholesale and consignment
Manifest matching, the receive gate, dock-time warnings, and rejection all work the same way on consignment deliveries as on wholesale. The one difference is what happens with the vendor: because you haven't paid for consignment product up front, a rejection is a swap or a pickup rather than a credit, and the notice omits the deduction line. Either way, stale product is caught and turned away at the dock before it reaches your shelf. For the payment-time check that runs later on wholesale deliveries, see how ShelfSpace checks invoices against Metrc before you pay.