Skip to main content

How POS sales deduct stock automatically

A walkthrough of what happens between a sale at your till and inventory updating in Stash. Useful for troubleshooting and team training.

Written by Jake
Updated today

How POS sales deduct stock automatically

Once your POS is connected, locations are mapped, products are synced, and Blueprints are linked, every sale at your till silently updates inventory in Stash. Here's exactly what happens behind the scenes β€” useful when you're troubleshooting or explaining to your team.

The flow, step by step

  1. A customer buys something at your POS. The cashier rings it up. The customer pays. The POS records the sale.

  2. Your POS sends a webhook to Stash. Within seconds (usually under 5), your POS provider's server pings Stash with the sale details: which product, how many, at which location.

  3. Stash matches the POS product to a Stash record. Stash looks up the product in its catalog (synced from your POS earlier). It identifies which Stash shop the sale belongs to via the location mapping.

  4. Stash checks for a Blueprint. If the POS product is linked to a Blueprint, Stash uses that to determine what to deduct. If there's no Blueprint, Stash deducts the matching inventory item directly (if name or SKU matches).

  5. Stash calculates the deduction. For each component in the Blueprint, Stash converts the recipe quantity into the inventory item's stored unit (using "Each container contains" if the item is in packaging).

  6. Stash deducts inventory. Each affected inventory item's quantity drops by the calculated amount. A transaction is logged with type consumption, source pos, and a reference to the original sale.

  7. Notifications fire. If any item dropped to or below its low stock threshold, a notification is sent to your team. See Managing notifications.

End-to-end latency is typically 2–10 seconds from sale to inventory update.

What you see in Stash after a sale

  • The inventory item's quantity drops

  • The item's transaction history shows a new consumption entry with the POS sale ID

  • If the new quantity is below threshold, a notification appears in the bell icon

  • The Order Planner and Dashboard KPIs update accordingly

What if the POS product isn't linked to a Blueprint?

Stash falls back to direct matching. If your POS product is called Soy Candle and you have an inventory item also called Soy Candle at the same shop, Stash deducts 1 from that item per sale. SKU matching also works.

This works for simple products you stock as-is (a candle, a bottle of water, a packaged snack). It doesn't work for recipes or bundles β€” those need Blueprints. See What is a Blueprint?

Refunds and voided sales

When you refund a sale or void a transaction in your POS, your POS sends a refund webhook to Stash. Stash reverses the deduction:

  • Inventory items go back up by the refunded amount

  • A new transaction is logged with type refund linked to the original sale

This works for both Blueprint-based deductions and direct matches.

What can break the flow

If you notice sales aren't deducting, check these in order (most common first):

  1. The POS connection is broken or expired (Integrations page shows a warning)

  2. The POS product isn't linked to a Blueprint (and direct matching by name/SKU also fails)

  3. The POS location isn't mapped to a Stash shop

  4. The Blueprint's components have unit conversion problems

  5. The Blueprint and POS product are at different shops

See Why my Blueprint isn't deducting stock for a full troubleshooting walkthrough.

Speed and reliability

  • Sales process within seconds in normal operation

  • If your POS provider has downtime, sales queue and replay when they're back

  • Stash is built to never double-deduct β€” each sale is processed exactly once

Related articles

Did this answer your question?