PurchaseOrders turns a supplier PO into SAP-ready data. Upload a PDF, scan, or photo and the AI pulls the PO number, vendor, material numbers, quantities, and net prices into a clean Excel, CSV, or JSON file. From there your team loads it through the migration cockpit, a BAPI, or the purchase order OData service instead of keying it into ME21N. Try it on a real order below.
Submit your purchase orders
Drop documents here, or click to file
Up to 50 files per batch
Uploading...
SAP has several ways to create a purchase order programmatically. None of them read a PDF. So the order a supplier emailed you has to become structured rows before any of those doors will open, and in most US finance and procurement teams that transcription happens in ME21N, by hand.
Creating a purchase order in ME21N means entering the vendor, purchasing organization, group, and then every item line with material number, quantity, unit, plant, and net price. For a long order that is a few hundred keystrokes per document.
BAPI_PO_CREATE1, the function module behind the ME21N transaction, expects header and item structures. The migration cockpit wants a filled staging template. The OData service wants JSON. All of them start from data you do not have yet.
SAP will not post a line to a vendor or material number it does not recognize. Extracted supplier and material values have to be clean enough to map to your existing master data, or the load fails item by item.
The Legacy System Migration Workbench sits on the S/4HANA simplification list with restricted use and no further development, and its screen recordings do not work against Fiori. Teams that leaned on LSMW now need another route for bulk purchase order loads.
The AI reads the supplier document and hands you structured, column-consistent data. Your Basis or ABAP team then loads it through whichever SAP path your landscape already sanctions. You stay fully in control of what posts.
Export one row per line item with consistent headers, so the file maps into an S/4HANA migration cockpit staging template or feeds a Winshuttle-style upload without hand-cleaning columns first.
Every row comes back with the supplier part or material number, description, quantity, unit of measure, and net price, which are exactly the item fields a purchase order load needs.
Developers take JSON from the API and populate BAPI_PO_CREATE1 header and item structures, or post to the purchase order OData service (API_PURCHASEORDER_PROCESS_SRV) in S/4HANA. No PDF parsing to build yourself.
PDFs, scans, and photos from any vendor are read the same way. The AI identifies fields by meaning, so a new supplier layout does not require a new template or a mapping change.
Running SAP alongside other systems is common in US groups after an acquisition. The same extraction feeds a NetSuite import, a Dynamics 365 Business Central import, a Sage import, and QuickBooks, so one tool covers every target. For the general method, see how to import purchase orders to your ERP. If you only need the file, use the PO PDF to Excel converter or the CSV export. Accuracy on the item table is covered in purchase order line item extraction, developers should read the purchase order API docs, and high-volume teams start with bulk purchase order processing.
An honest look at the realistic routes, and where document extraction fits into each of them.
| Extract, then load | ME21N by hand | Custom PDF interface | |
|---|---|---|---|
| Reads the supplier PDF or scan | AI extracts every field | A person reads it | You build and maintain it |
| Line-item table | Captured, one row per item | Keyed line by line | Depends on your parser |
| Effort per order | Seconds plus a review | Several minutes | Zero, after months of build |
| New supplier layout | Works immediately | Works, still typed | Often needs code changes |
| Bulk backlog | Up to 100 POs per batch | One at a time | Batch capable |
| Load path into SAP | Migration cockpit, BAPI, or OData | Direct posting | BAPI or OData |
| Who owns the risk | Your team reviews before posting | Typos post silently | Your developers |
PurchaseOrders extracts purchase order documents into structured data. It does not post to SAP for you. SAP creates purchase orders through ME21N, BAPI_PO_CREATE1, the S/4HANA migration cockpit, or the purchase order OData service, and every route requires the vendor and material master records to exist first. LSMW remains on the S/4HANA simplification list with restricted use. Confirm the current load path and field names with your Basis or ABAP team before a production run.
Turn a supplier PDF into rows your SAP load path will accept.
Drag in a PDF, scan, or photo from any vendor. No template, no mapping, no setup.
Tip: Multi-page orders and several suppliers in one batch are fine.
You get the PO number, vendor, order and delivery dates, terms, totals, and every item line with material or part number, quantity, unit of measure, and net price.
Download CSV or Excel for a migration cockpit staging template, or take JSON and drive BAPI_PO_CREATE1 or the purchase order OData service. Review inside SAP before you post.
Turn the order into structured rows, then use one of SAP's load paths: the S/4HANA migration cockpit with a purchase order staging template, the BAPI_PO_CREATE1 function module, or the purchase order OData service. Because none of these read a PDF, extract the supplier document into CSV or JSON first, then map the fields and post.
Not on its own. Standard SAP transactions expect keyed entry or structured input, so a supplier PDF has to be converted into fields first. AI extraction reads the document and returns the vendor, PO number, material numbers, quantities, and net prices as data that a BAPI, OData call, or import template will accept.
BAPI_PO_CREATE1 is the standard function module that creates a purchase order in SAP, using the same logic as the ME21N transaction. You pass a header structure plus item, schedule line, and condition tables. It is the usual choice for programmatic or bulk purchase order creation from external data.
LSMW still ships in S/4HANA on-premise but sits on the simplification list with restricted use and no ongoing development, and its screen recordings do not work on Fiori apps. SAP points new bulk loads at the S/4HANA migration cockpit, or at BAPIs for scenarios the cockpit does not cover.
Yes. S/4HANA exposes a purchase order OData service, API_PURCHASEORDER_PROCESS_SRV, that reads and creates purchase orders. It requires a vendor and material master that already exist, so the extracted supplier and material values need to map to your master data before the call will succeed.
Yes. Extract a batch of supplier orders into one consolidated CSV with a row per line item, then load them through a migration cockpit staging template or a program that loops BAPI_PO_CREATE1. The slow part is producing the file, which is what batch extraction removes.
No. It produces clean, structured PO data and stops there. Your team, or your integration, performs the load through the SAP path your landscape allows, which keeps authorizations, validations, and release strategies exactly where your auditors expect them.
The PO number, order and delivery dates, vendor name and address, ship-to and bill-to, payment and delivery terms, currency, and every item line with part or material number, description, quantity, unit of measure, unit price, and line total, plus document totals and tax where printed.