Extract data from purchase orders
Unstract reads the purchase orders your customers send, as emailed PDFs, spreadsheets, scans or order emails, maps their part numbers to your SKUs and creates the sales order in your ERP or order management system.
| ITEM/DESCRIPTION | QTY | UNIT PRICE | AMOUNT |
|---|---|---|---|
| HF-20114 Hex bolt M10 x 40, zinc, box of 100 | 60 | 18.75 | 1,125.00 |
| HF-20187 Flange nut M10, box of 100 | 60 | 9.40 | 564.00 |
| HF-31502 Flat washer M10, box of 250 | 40 | 7.85 | 314.00 |
| HF-44610 Threadlocker, medium, 50 ml | 24 | 12.60 | 302.40 |
| HF-52008 Socket cap screw M8 x 25, box of 100 | 35 | 21.30 | 745.50 |
| Subtotal | 3,050.90 | ||
| Freight, prepay and add | 95.00 | ||
| Order total | 3,145.90 |
partial ship OK if bolts on time — J.R.
All amounts in USD. Ship to Dock 3. Show our PO no. on every packing slip.
{ "customer": "Harlow Fabrication", "po_number": "HF-PO-77318", "po_date": "Oct 26, 2026", "required_by": "Nov 9, 2026", "terms": "Net 45", "currency": "USD", "subtotal": 3050.9, "freight": 95, "order_total": 3145.9, "confidence": 0.96}
Trusted by finance teams around the globe
Every customer sends its own purchase order
A tidy PDF out of a large customer's procurement system is the easy case. The order desk inbox also gets these.
Purchase orders still faxed from the customer's plant
Three customers, three names for the part number
Quantities changed and dates added by hand before sending
PO, drawing, your quote and a change order in one email
Blanket orders sent as a release schedule in a spreadsheet
Order entry staff retype each customer's PO line by line and look up every part number, so orders sit in the inbox, acknowledgments go out late, and a wrong price or ship-to reaches the invoice.
Unstract reads each purchase order in the customer's own layout, extracts the header and every line, checks parts, prices and dates against your records, and creates the sales order in your ERP or order management system.
Read, check and enter customer orders on one platform
Parse the purchase order, extract its fields, run order intake around it. Use one product on its own, or stack all three so clean orders enter themselves.
Parse purchase orders with part numbers, quantities and dates in place
Get the full text of a customer purchase order, whether it came as a PDF from the buyer's procurement system, a fax from the plant, a phone photo or a list typed into an email, with its line table kept. The customer's part number stays beside its description, a line that wraps stays one item, and a requested date printed per line stays on that line.
Pass the text to your own LLM, or make parsing the first step of your order intake workflow.
Learn more about LLMWhispererTurn customer purchase orders into sales order records
List the fields a sales order needs, from customer and ship-to down to each line's part number, quantity, price and requested date, and every PO returns in one JSON structure whatever the buyer's layout. Teams that went looking for a sales order parser get the checks as well: a price below your current list or a part number with no SKU mapped comes back flagged with the reason.
Call it as an API from your order entry screen, run it as an ETL pipeline from the orders mailbox, or make it one step in an orchestrated order intake process.
Learn more about Document StudioRun customer order intake from the inbox to a sales order
Describe your purchase order intake in plain English and Flow's agents build the workflow. Customer POs arrive as PDFs, spreadsheets and email bodies or come down from customer portals; each one is read, its part numbers are mapped to your SKUs, prices are checked against the contract or price list, and the ship-to is matched to the customer master. Clean orders become sales orders in your ERP or order management system, such as NetSuite or SAP S/4HANA, and the customer gets an acknowledgment by email. You approve the workflow once, and it runs identically on every PO.
Set the conditions for a person to step in: a price mismatch, an unknown part, a ship date you can't meet, or a new ship-to address. Only those POs stop, and the customer service rep sees the PO beside the draft order with the reason marked.
Learn more about FlowExtract purchase order data now. Automate order entry when you're ready.
Start for free lets you parse and extract your own customers' POs today. Automating SKU mapping, price checks and order creation starts with a consultation.
Customer purchase orders and the order paperwork around them
Documents
- Customer purchase orders
- Buyer's orders
- Blanket purchase orders
- Release orders and schedules
- Purchase order change requests
- Client supply order forms
- Order forms sent as spreadsheets
- Orders typed in an email body
- Insertion orders
- Sales order acknowledgements
- Purchase requisition forms
- Material requisitions
- Inventory requisition forms
- Quotes referenced on the PO
- Customer price agreements
- Packing slips
Fields captured
For the teams that turn customer orders into shipments
POs arrive as draft sales orders with SKUs already mapped, so reps spend the day on the orders that need a call to the customer.
Order volume, pricing exceptions and time from PO to acknowledgment tracked by customer, so contract and price-list problems show up early.
Hundreds of customers' layouts and part numbering read by one setup, so a new account starts ordering without a template or a portal.
A customer order for stock you don't hold reaches your buyers as soon as it is entered, so the supplier PO for a backorder goes out the same day.
Faster acknowledgments, fewer order errors
Keep your customers' orders and prices confidential
Purchase orders show who your customers are, what they buy and the price you agreed with each one. In a competitor's hands, that's your price list.




- Encrypted in transit and at rest.
- Customer purchase orders are never used for model training.
- Access by role, sales region and customer account, with every edit to an extracted order recorded.
- You set retention: POs are kept as long as your order and audit records require, then deleted.
- Self-hosted deployment for sellers who keep customer pricing and order history inside their own environment.
What order desk and sales ops teams ask before they start
Three kinds: template OCR that maps fixed zones per customer, EDI for the few customers who can send it, and LLM-based extraction that reads any layout. Unstract is the third kind. LLMWhisperer parses the PO, Document Studio extracts the fields, and Flow runs the order intake around them.
Start with a week of real customer POs. Describe the fields your sales order needs, test the extraction on those files, then deploy it as an API your order entry screen calls or as a pipeline that watches the orders mailbox. Add SKU mapping and price checks once the extraction holds up.
It reads each value by what it means, not by where it sits. "PO #", "Order No." and "Your Ref" fill the same field, and a first-time customer's PO returns the same record as one from an account that orders every week, with no template built for it.
A purchase order parser alone gives you text and fields. The order desk still has to map each customer part number to your SKU and check the price. Unstract does both before the order is created, and stops only the lines that fail.
Yes. LLMWhisperer corrects skew and fax noise and reads handwriting, such as a quantity crossed out and rewritten or a date added in pen. Sales order OCR then carries on as it would for a clean PDF from the customer's procurement system.
Flow looks each customer part number up in your cross-reference table or item master. A known number maps silently; an unknown one stops for a customer service rep, and once the rep maps it, the next PO with that part goes straight through.
Clean orders post as sales orders in your ERP or order management system, such as NetSuite or SAP S/4HANA, through Flow's connectors or an import file you already use. The customer gets an order acknowledgment by email from the same run.
Yes. Each document is classified first, so a blanket PO, a release against it and a change request are each read as what they are. A change request updates the open sales order and shows the old and new quantity, price or date side by side.
The line is flagged with both prices, the PO's and your contract or list price, and the order waits for a customer service rep. The rep accepts the customer's price or confirms the correct one with the buyer before the acknowledgment goes out.
Unstract is SOC 2, ISO 27001, GDPR and HIPAA compliant. POs are encrypted in transit and at rest, never used to train models, and kept only as long as you set. Sellers that need customer pricing to stay in-house can self-host; see the Trust Center.
In a consultation we set it up around your customers' PO layouts, your item master and price lists, and your exception rules, and most order desks create their first live sales orders within days. To try the extraction now, start for free and upload a customer PO.
Bring a week of customer purchase orders to the consultation
Clean PDFs, faxes, spreadsheet orders, change requests and the awkward ones, with your price list. We run them live and show every line, every SKU match and each exception.









