Sage 300 imports purchase orders from Excel or CSV through File, Import on the entry screen.
PDF, JPG, PNG, BMP, HEIC, TIFF
Submit your purchase orders
Drop documents here, or choose a file
Up to 50 files per batch
Uploading...
Sage 300 imports purchase orders from Excel or CSV through File, Import on the entry screen. It cannot read a PDF. Upload the purchase order and get the header and every line back as structured rows you drop into the template you exported from P/O Purchase Order Entry or O/E Order Entry.
Sage 300 has a perfectly good import. What it needs is a two-sheet file with codes it recognizes, and a PDF is neither.
Headers go on one sheet and lines on another, linked by a sequence number. Building that by hand from a PDF is slower than typing the order.
Supplier POs, customer orders and parent-company POs all look different. Template-based capture breaks on the first new format.
Vendor numbers, items, locations, terms and tax groups have to match Sage 300 exactly. The document shows names and part numbers, not your codes.
A 50-line order keyed by hand is where a quantity or unit cost slips. It surfaces at receipt or at the vendor invoice, weeks later.
Upload the purchase order. The AI returns the header fields and every line item as rows, split the same way the Sage 300 template splits them, so the import becomes a mapping step instead of a typing job.
No template to build per vendor or customer. Clean PDFs, scans and phone photos all work.
Order-level fields and line-level fields come back separately, ready for the header sheet and the lines sheet.
Item number, vendor item number, description, quantity, unit of measure and unit cost for each line.
The number printed on the document stays in its own column, so it never overwrites the PO number Sage 300 assigns.
Sage 300 does not ship a fixed purchase order template you download from a website. You generate it from the screen you want to load. Open P/O Purchase Order Entry, choose File, then Export, pick a file type, and tick the fields you want in the template. Fields shown in red are required and cannot be unticked. The file types on offer are Excel, single CSV file, CSV file, Access, ODBC and XML. Save Script stores those choices so the next export or import runs with the same settings.
When the template is filled in, you go back to the same screen and choose File, then Import. That is the whole native route. There is no separate import utility to buy, which is why most Sage 300 sites that key orders by hand are not short of an import. They are short of the data in the right shape.
A Sage 300 purchase order is two records, not one. The header lives in the purchase order view (PO0620) and each line lives in the detail view (PO0630). An Excel template therefore arrives with more than one sheet: one for the order headers and one for the lines, plus optional sheets for comments and optional fields if you ticked them.
The field that ties them together is PORHSEQ, the purchase order sequence key. In an import file it does not need to be a real key. You number the headers 1, 2, 3 and so on, one row per order on the header sheet, and give every line of that order the same PORHSEQ on the lines sheet. Sage 300 generates the real keys when the file loads. PORLREV carries the line number within the order.
This is where hand-built files go wrong. If a line carries the wrong PORHSEQ it lands on somebody else's order, and nothing about the import screen tells you. Check the line count per order after the first test load.
Purchase order numbers are normally assigned by the program from the prefix, length and next number set in P/O Options. You can keep that behavior on import. In the import dialog, right-click the PONUMBER field and choose Value to have the system generate the next sequential number instead of taking one from the file. That keeps your numbering clean and stops a supplier reference from being used as your own PO number.
The import references codes, it does not create them. The vendor number, terms code, tax group, ship-to location and every item number on the lines have to be set up in Sage 300 already. The vendor number also drives defaults: it sets the billing address, the default tax group and the payment terms, so a wrong vendor quietly brings the wrong terms with it. Reference and Description on the header are limited to 60 characters each, which matters when the source document has a long project name.
Back up the company database before the first import. Sage partners say this for a reason: an import writes real transactions, and there is no undo button for a batch that went in wrong.
If the purchase orders in your inbox come from customers rather than going out to suppliers, the target is O/E Order Entry, not P/O. The route is the same idea: export a template from the Order Entry screen, fill it, import it. The fields that matter from the customer document are the customer number, the ship-to location, the customer PO number and the inventory location for each line. Keep the customer PO number in its own field. It is what the buyer will quote when they call about the order, and it is not your order number.
PurchaseOrders reads the purchase order document, whether a supplier PDF, a scan or a customer order attached to an email, and returns the header and every line as structured data in Excel or CSV. You map the columns into the template you exported from Sage 300, apply your vendor and item cross-reference, and import. It does not connect to Sage 300, write to its database, run the import or create orders on its own. What it removes is the typing between a document and a template Sage 300 already knows how to load.
If you want to see the output first, the purchase order PDF to Excel converter shows the workbook shape, and long orders come down to purchase order line item extraction. For a weekend of orders at once, bulk purchase order upload clears the queue in one pass.
A US distributor or manufacturer on Sage 300 whose order desk or purchasing team keys purchase orders from PDFs: customer orders for O/E, or supplier and parent-company POs for P/O, often during a migration when open orders from an old system only exist as documents. If you are on a different Sage product, the routes differ: Sage 100 purchase order import uses Visual Integrator, Sage X3 purchase order import uses import templates on the PORDER tables, and purchase order to Sage Intacct covers the cloud CSV templates. Teams weighing a move off Sage 300 can read Sage 300 vs Sage Intacct for purchase orders, and the order desk side is covered by sales order entry automation.
What comes off the document and where it goes in P/O Purchase Order Entry. Field labels follow the Sage 300 help for the Purchase Order Entry screen.
| Sage 300 field | Sheet | Where it comes from | Note |
|---|---|---|---|
| PORHSEQ | Header and lines | Assigned by you: 1, 2, 3 per order | Links every line to its header |
| PO Number (PONUMBER) | Header | Let Sage 300 assign it | Right-click, Value, on import |
| Vendor Number | Header | Supplier name on the PO, mapped to your code | Sets terms and tax group |
| PO Date | Header | Order date on the document | Defaults to session date |
| Ship-To Location | Header | Delivery block on the PO | Must be a set-up location |
| Reference | Header | Project or job reference | Up to 60 characters |
| Item Number | Lines | Part number, mapped to your item | Item must exist |
| Quantity Ordered | Lines | Ordered quantity per line | With unit of measure |
| Unit Cost | Lines | Unit price printed on the line | Check currency |
| Expected Arrival Date | Lines | Line delivery date if printed | Optional |
Four steps from a PDF to purchase orders sitting in Sage 300.
In P/O Purchase Order Entry choose File, Export, pick Excel or CSV and tick the fields you use. Save Script keeps the setup.
Tip: Red fields are required and stay ticked.
Drop in the PDFs, scans or email attachments, one or a whole batch. No template setup on our side.
Tip: Customer orders and supplier POs both work.
Paste the header and line rows into the template, apply your vendor and item codes, and give each order a PORHSEQ repeated on its lines.
Tip: Keep one cross-reference sheet and reuse it.
Back up, then File, Import on the same screen. Set PONUMBER to Value so Sage 300 numbers the orders.
Tip: Test with two orders before the full batch.
Open P/O Purchase Order Entry, choose File, Export to generate a template with the fields you need, fill it in, then choose File, Import on the same screen and select the file. Excel, CSV, Access, ODBC and XML are supported. Back up the company data before the first import.
Yes, but you generate it yourself rather than downloading it. File, Export in P/O Purchase Order Entry creates a template containing the fields you tick, with the required fields locked in. Because it is built from your own system, it includes your optional fields and matches your version.
Through PORHSEQ, the purchase order sequence key. Number each order 1, 2, 3 on the header sheet and repeat that number on every line of the same order on the lines sheet. Sage 300 creates the real keys during the import, so the numbers only need to be consistent inside the file.
Yes. In the import dialog, right-click the PONUMBER field and choose Value so the system generates the next number from the prefix, length and next number set in P/O Options. That keeps your numbering sequence intact and stops a number printed on the source document from becoming your PO number.
Usually because a code in the file does not exist in Sage 300: a vendor number, item number, location, terms code or tax group. The import references codes and does not create them. The other common cause is a missing required field, which is why generating the template from the screen is safer than building one by hand.
Yes. The target is O/E Order Entry rather than P/O. Export a template from the Order Entry screen and fill in the customer number, ship-to, customer PO number and location for each line. Keep the customer PO number in its own field so it stays searchable and is never confused with your order number.
No. The native import reads structured files such as Excel, CSV, Access, ODBC and XML, not PDFs or scans. The data has to be pulled off the document first, either by hand or with an extraction tool that returns the header and lines as rows you paste into the template.
Yes. An import writes live transactions, and a batch that went in with the wrong vendor or quantities has to be corrected order by order. Take a backup, test with two or three orders, check the line counts and totals, then run the full file.
No. PurchaseOrders reads purchase order documents and returns structured data as Excel, CSV or JSON. It does not connect to Sage 300, write to its database or run the import. You load the file through the standard File, Import route, so everything stays under your control.
The selling side: customer orders into O/E.
The Sage 100 route: Visual Integrator.
Sage X3 and the PORDER tables.
Cloud CSV templates for Intacct.
Sage 50 and general Sage CSV.
Customer POs into sales orders.
Choose your plan