Automate PO receiving discrepancies, from the dock count to the supplier credit
Updated · By Ecomsellertool editorial team
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.
| Step | What happens | Who runs it |
|---|---|---|
| 1 | The 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 |
| 2 | Each 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 |
| 3 | The variance decision table sorts every line: matched, inside tolerance, short, over, wrong SKU, damaged, or still to come on a later shipment. | Rule |
| 4 | Accepted units post to stock and become sellable; refused, damaged and wrong units are recorded on the receipt but kept out of available stock. | Rule |
| 5 | If 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 |
| 6 | The workflow drafts the supplier credit or return request with the PO, the receipt, the photos and the amount per line. | Rule |
| 7 | A person checks the evidence, decides each disputed line (credit, replacement, return, keep the extras or accept a substitute) and sends the request. | Person |
| 8 | When 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.
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
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 type | Rule that finds it | What runs automatically | Who decides |
|---|---|---|---|
| Matched | Received units equal ordered units on every line, same SKU, nothing damaged | Units post to stock, the receipt links to the PO, the bill can match | Nobody |
| Inside tolerance | Difference 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 supplier | Nobody, but the log is reviewed monthly |
| Short | Fewer units than ordered, beyond tolerance, and no later shipment expected | Accepted units post; bill held; credit request drafted for the missing units | Buyer approves the request, or asks for the units instead |
| Short, rest to come | Fewer units, but the supplier's ship notice says more is on the way | Line stays open for the balance; bill matched to this shipment only | Nobody until the balance is late |
| Over | More units than ordered, beyond tolerance | Extra units recorded but kept out of available stock; bill held if billed | Buyer: keep and pay, keep unbilled, or return |
| Wrong SKU or substitute | Supplier item code or barcode does not match the PO line | Units kept out of available stock; PO line treated as short; photos attached | Buyer: accept the substitute at a price, or return |
| Damaged or failed check | Warehouse marks units damaged, refused or failed inspection | Units recorded as rejected, never sellable; photos and delivery paperwork gathered | A person decides who bears it: supplier, carrier or you |
| No PO match | Units or a shipment with no open PO line | Held as unknown with the packing list | Buyer 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 price | Billed | Received | Damaged or wrong | Accepted | Decision | Credit requested |
|---|---|---|---|---|---|---|---|
| Tumbler 20 oz | $6.40 | 500 | 480 | 12 damaged | 468 | Credit the 32 | $204.80 |
| Lid set | $2.50 | 300 | 300 | 0 | 300 | Matched | $0.00 |
| Straw pack | $1.10 | 220 | 220 | 0 | 200 | 20 over the PO: return | $22.00 |
| Bottle brush, grey | $0.90 | 150 | 150 | 150 blue, wrong SKU | 0 | Return 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.
| Level | Fits when | What to watch |
|---|---|---|
| Platform receiving screens plus a shared sheet | A few suppliers, one warehouse | Someone must still compare codes, not only totals, and chase the credit |
| QuickBooks Online or Xero on their own | Receipts entered there, low volume | They record partial bills and credits; they do not compare a 3PL receipt with the PO |
| Zapier, Make or n8n | One 3PL with a usable receipt feed | Log 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 accounts | Several warehouses, split shipments, photos, supplier scorecards | Can 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.
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.
