Automation library

Automate PO receiving discrepancies, from the dock count to the supplier credit

Updated · By Ecomsellertool editorial team

Short answer

When a supplier delivery does not match the purchase order, compare the receipt with the PO line by line, then sort each difference: short, over, wrong item or damaged. Small differences inside your tolerance post on their own. Larger ones hold the supplier's bill, and the workflow drafts the credit request for a person to approve. Stock counts only accepted units, and the PO closes when every line is settled.

  • Shopify receives purchase orders through a linked inventory transfer; accepted units become available at the destination, rejected units are recorded but add to no location (checked November 12, 2026).
  • A Shopify transfer stays In progress until every quantity is accounted for, then changes to Transferred.
  • QuickBooks Online lets you add only the received part of a purchase order to a bill, and closes the PO when all quantities are billed; purchase orders need the Plus or Advanced plan.
  • QuickBooks applies a vendor credit to the bill automatically in Pay bills; Xero's API keeps creating a supplier credit note and allocating it as two separate steps.
  • Bill to pay = what you accepted at the PO price, plus agreed charges; every other unit is a credit request until the supplier answers.
  • Rules compare, sort, hold and draft. A person decides on returns, substitutes, damage claims and every credit sent to a supplier.

The step map: who runs each step

Trigger: A receipt posted by your warehouse, 3PL or prep center against an open purchase order, or a supplier invoice that arrives for a PO with a receipt still open.

Each step of the workflow in order, and whether a fixed rule, an AI model or a person runs it
StepWhat happensWho runs it
1The receipt is read line by line: SKU, units counted, units damaged or refused, and the PO and shipment it belongs to. Lines with no matching PO line are kept as unknown, not guessed.Rule
2Each line is compared with the PO: units ordered, units already received on earlier shipments, unit price and the supplier item code. The difference is computed in units and in dollars at the PO price.Rule
3The variance decision table sorts every line: matched, inside tolerance, short, over, wrong SKU, damaged, or still to come on a later shipment.Rule
4Accepted units post to stock and become sellable; refused, damaged and wrong units are recorded on the receipt but kept out of available stock.Rule
5If any line is above tolerance, the supplier's bill for that PO is put on hold with the reason, and the bill-to-pay figure is computed from accepted units.Rule
6The workflow drafts the supplier credit or return request with the PO, the receipt, the photos and the amount per line.Rule
7A person checks the evidence, decides each disputed line (credit, replacement, return, keep the extras or accept a substitute) and sends the request.Person
8When the supplier answers, the credit or corrected invoice is matched to the request, the bill is released for the agreed amount, and the PO is closed or left open for the units still to come.Rule

7 rule steps · 0 AI model steps · 1 person step. A rule follows fixed logic you approve; an AI model handles messy input and its output is checked by rules; a person makes the calls listed below.

Person

What stays with a person

  • Every credit, return or replacement request before it goes to a supplier
  • Accepting over-shipped units or a substitute SKU, and at what price
  • Deciding who bears damage: the supplier, the carrier or your own team, under your terms with them
  • Releasing a held bill when the supplier disputes the count
  • Changing tolerances and the dollar limit above which a line needs a person
Tools

Which tools can run it

  • Your platform's PO receiving screens plus a shared sheet with the decision table, for a few suppliers
  • QuickBooks Online or Xero purchase orders, bills and credits, if receipts are entered there and volume is low
  • Zapier, Make or n8n connecting the 3PL receipt, the PO, an approval step and the bill hold, with a log of every run
  • Custom code on your accounts, for several warehouses, partial shipments, photos and supplier-level reporting

Systems it connects

  • Warehouse, 3PL or prep center receiving report
  • Shopify purchase orders and inventory transfers
  • QuickBooks Online or Xero bills and supplier credits
  • Purchasing system or PO sheet
  • Approval queue in Slack or email
  • Supplier email or EDI

Build size: Medium

The comparison is simple; the work is matching partial shipments to PO lines and keeping stock, the bill and the claim in step.

A purchase order says what you bought. The receiving report says what arrived. When the two disagree, three things go wrong at once: stock shows units you do not have, the supplier's invoice asks for money you do not owe, and nobody asks for the credit because the dock, the buyer and finance each assume someone else did. This recipe automates the stretch between the dock count and a settled bill. It starts where our supplier PO acknowledgement and ETA tracking recipe ends, at the receipt, and hands a clean figure to our supplier invoices to bills recipe. It is one page of our automation library.

What should happen for each kind of receiving difference?

This table is the core of the build, and you can run it today from a spreadsheet. Each row is one kind of variance, the rule that finds it, what runs on its own and who decides. Tolerances are yours to set per supplier, in units and in dollars; the ones in brackets are illustrative.

Variance typeRule that finds itWhat runs automaticallyWho decides
MatchedReceived units equal ordered units on every line, same SKU, nothing damagedUnits post to stock, the receipt links to the PO, the bill can matchNobody
Inside toleranceDifference within your limit (for example 1 percent of the line or $25)Accepted units post; the bill-to-pay figure uses received units; logged by supplierNobody, but the log is reviewed monthly
ShortFewer units than ordered, beyond tolerance, and no later shipment expectedAccepted units post; bill held; credit request drafted for the missing unitsBuyer approves the request, or asks for the units instead
Short, rest to comeFewer units, but the supplier's ship notice says more is on the wayLine stays open for the balance; bill matched to this shipment onlyNobody until the balance is late
OverMore units than ordered, beyond toleranceExtra units recorded but kept out of available stock; bill held if billedBuyer: keep and pay, keep unbilled, or return
Wrong SKU or substituteSupplier item code or barcode does not match the PO lineUnits kept out of available stock; PO line treated as short; photos attachedBuyer: accept the substitute at a price, or return
Damaged or failed checkWarehouse marks units damaged, refused or failed inspectionUnits recorded as rejected, never sellable; photos and delivery paperwork gatheredA person decides who bears it: supplier, carrier or you
No PO matchUnits or a shipment with no open PO lineHeld as unknown with the packing listBuyer finds the PO or refuses the goods

Two rows do most of the damage when they are missed. Short is where you pay for stock you never had. Wrong SKU is where stock looks right in total but the wrong item sells out, because the count matched and nobody looked at the code. If a short line keeps recurring after the goods are shelved, our inventory count adjustments recipe is where the later gap is recorded with a cause code.

How do you work out what to pay and what to claim?

Price every line at the PO price, not the invoice price. A price difference is a separate check that belongs to the bill match. Then two formulas settle the money.

Credit requested (per line) = (units billed − units accepted) × PO unit price

Bill to pay = Σ (units accepted × PO unit price) + agreed freight and charges

Units accepted means counted, the right SKU and not damaged. Until the supplier answers, the credit is a request, not money, so the bill stays on hold for the disputed part. Here is how it reads for one illustrative PO; the numbers are examples, not client data.

Line (illustrative)PO unit priceBilledReceivedDamaged or wrongAcceptedDecisionCredit requested
Tumbler 20 oz$6.4050048012 damaged468Credit the 32$204.80
Lid set$2.503003000300Matched$0.00
Straw pack$1.10220220020020 over the PO: return$22.00
Bottle brush, grey$0.90150150150 blue, wrong SKU0Return all$135.00
Total$4,327.00$361.80

The invoice asks for $4,327.00. The bill to pay is $3,965.20, which is the accepted units at the PO price, and the credit requested is $361.80. The two add back to the invoice, which is the check that nothing was dropped. If the supplier sends replacements instead of a credit, the line stays open and the bill waits for the new receipt.

How does the receipt get compared with the PO?

Line by line, and across shipments. A PO often arrives in two or three deliveries, so the comparison uses units ordered minus units already received, not the original order. Match on your SKU and on the supplier's item code from your product master, so a substitute shows up as a wrong SKU rather than a match. Keep the warehouse's damaged and refused counts as their own field. A 3PL that sends one total per line hides exactly the units you need to claim, so ask for the split.

Shopify records this on the receipt itself. Its purchase orders help says that once a PO is marked Ordered, you create an inventory transfer for it to track shipments, receive inventory and add cost adjustments. Its page on receiving inventory from a purchase order says accepted units become available at the destination, rejected units are recorded on the transfer but add to no location's available quantity, and the transfer stays In progress until every quantity is accounted for, then changes to Transferred (both checked November 12, 2026). Shopify's guide to receiving and managing transfers adds that you can record why you chose an action with a note (checked November 12, 2026). Write the variance type into that note, so the reason travels with the receipt.

Large suppliers may send this as EDI. The X12 transaction set list includes the 861 Receiving Advice/Acceptance Certificate and the 812 Credit/Debit Adjustment (checked November 12, 2026). Most small suppliers will never use them, but they are a good model: a receipt and a credit are separate events, and your workflow should keep them apart even when both arrive as email.

How do you hold the bill and record the credit in QuickBooks or Xero?

Hold first, then record whichever correction the supplier agrees to. The bill match in our supplier invoices recipe waits for this receipt, so a short line becomes a held bill with a reason rather than a paid one.

In QuickBooks Online, Intuit's article on adding purchase orders to bills says you can add just the received part of a PO to a bill, adjusting each line's quantity, and that QuickBooks closes the PO once all quantities are added to bills, expenses or checks. Purchase orders need QuickBooks Online Plus or Advanced. Its article on vendor credits says QuickBooks applies the available credit to the bill automatically in Pay bills, and that a vendor credit on an inventory item puts that item back into inventory, with an inventory adjustment suggested for defective goods (all checked November 12, 2026). So decide with your accountant how a short shipment is recorded: bill only the received quantity from the PO, or bill in full and enter a credit coded so stock is not counted twice.

In Xero, the Accounting API specification has a credit note type ACCPAYCREDIT for supplier credits, statuses from DRAFT through AUTHORISED, and a separate call that creates an allocation for a credit note (checked November 12, 2026). That suits this flow: the workflow can save a draft credit note when the supplier agrees, and allocate it to the held bill once a person approves.

What should stay with a person?

Anything that changes what you pay or what you keep. Rules count, compare, sort, hold and draft. A person sends every credit or return request, because it goes to a supplier you want to keep. A person accepts extra units or a substitute, and at what price. A person decides who bears damage, because that rests on where it happened and on your terms with the supplier and the carrier. And a person releases a held bill when the supplier disputes the count. Every step in this recipe is a rule or a person; add an AI model only to read supplier emails and PDFs into fields, with low-confidence reads sent to a person unread.

Which tool should run it?

The simplest one that can see the receipt, the PO and the bill together.

LevelFits whenWhat to watch
Platform receiving screens plus a shared sheetA few suppliers, one warehouseSomeone must still compare codes, not only totals, and chase the credit
QuickBooks Online or Xero on their ownReceipts entered there, low volumeThey record partial bills and credits; they do not compare a 3PL receipt with the PO
Zapier, Make or n8nOne 3PL with a usable receipt feedLog every run and key each receipt by ID, so a retry does not post twice; see our Zapier vs Make vs n8n comparison
Custom code on your accountsSeveral warehouses, split shipments, photos, supplier scorecardsCan run on Ecomsellertool Growth OS beside replenishment and inventory

Short receipts feed back into purchasing. A supplier that ships short every time has a longer real lead time than its quote, which our replenishment page explains, and our low-stock alerts and draft purchase orders recipe should count only accepted units. Units that go missing later at a 3PL are a different gap, covered by our 3PL reconciliation page and the 3PL invoice audit recipe for receiving fees.

Who builds PO receiving workflows for ecommerce brands?

Ecomsellertool builds receiving and purchasing workflows on your own accounts and systems. We have built software on Amazon's seller APIs since 2017 and shipped 50+ tools for 100+ teams. We start with where your receipts, POs and bills live today and who approves a credit, then build the comparison, the decision table, the bill hold and the draft requests. Send a project brief below, or read how our workflow automation service works.

The building blocks are work we have shipped:

  • Receiving and vendors in one system. For EzBookPrep, a prep service, we built software with customer and vendor management, order receiving, billing and returns processing, plus alerts for the next action on each item.
  • Discrepancies tracked at a prep center. For Little Owl, a 3PL and FBA prep center, the client asked for software that tracks inventory, listings and discrepancies; the case study says it helped them track items that used to go missing in transit.

You keep your accounts, your data and the custom code we build; the Growth OS base is licensed to you.

Get this workflow built

Send us your version of this workflow

Describe the workflow you want automated. We reply with a written plan: scope, timeline and a fixed price.

A few sentences is enough: what happens today, who does it and how often.

Starts when you fill in the form

A quick private check that runs in your browser. No tracking, no puzzles.

A person reads every brief. You get a written plan within 2 business days; no obligation.

Frequently asked questions

What is a purchase order receiving discrepancy?

It is any difference between what the purchase order says you bought and what your warehouse actually received: fewer units, more units, a different SKU, or units that arrived damaged. Each one changes what you should pay the supplier and what you can sell, so it needs a decision before the bill is paid.

Should I pay the supplier invoice when the delivery was short?

Pay for what you accepted, not for what was billed. Hold the invoice, compute the bill to pay from accepted units at the PO price, and ask the supplier for a credit note or a corrected invoice for the rest. If the missing units are coming on a later shipment, leave that part of the PO open instead.

What tolerance should I set for receiving differences?

Set it per supplier from your history, and in both units and dollars. For example, a brand might let a difference of up to 1 percent of a line, or up to $25, post on its own, and send anything larger to a person. These numbers are illustrative; the right limits depend on your margins and how each supplier packs.

What do I do when a supplier ships more than I ordered?

Keep the extra units out of available stock until a buyer decides. The choices are to keep them and pay at the PO price, keep them only if the supplier agrees not to bill them, or return them at the supplier's cost. The workflow records the decision so the bill and the stock match it.

Who should pay for goods that arrived damaged?

It depends on where the damage happened and on your terms with the supplier and the carrier. Poor packing usually points to the supplier; damage in transit may be a carrier claim. A person decides, with the receiving photos and the delivery paperwork in front of them; the workflow only gathers that evidence.

Can QuickBooks or Xero handle short shipments on their own?

Partly. QuickBooks Online lets you add only the received part of a purchase order to a bill and closes the PO once every quantity is billed. Vendor credits apply to bills in Pay bills. Neither compares a 3PL receipt with the PO for you, which is the part a workflow adds.

Jaimin Dholakia, founder of Ecomsellertool
Jaimin Dholakia · Founder
Schedule a call

Get this workflow built on your own systems.

Prefer to talk the workflow through first? Schedule a free call with the engineers who would build it. Selling on Amazon? The free 24-hour diagnostic finds the operations gaps in your account: connect it with Login with Amazon, on Amazon’s own consent screen (we only read data; we never change listings, prices, stock or ads), and get a report within 24 hours of connecting, on business days.

Free · 30 minutes · Pick any open slot