Extract purchase orders to structured JSON

Purchase orders document what a buyer is ordering: line items, quantities, prices, delivery terms, and payment conditions. Every company formats POs differently. Sensible converts PO data into structured JSON for order management, invoice matching, and procurement analytics.

Why purchase orders defeat one-size-fits-all extraction

Every company formats POs differently. Line items, shipping terms, and conditions appear anywhere.

Company-Specific Layouts

No two companies format POs the same way. SAP outputs differ from Oracle. Custom ERP exports look different still. Sensible's hybrid extraction adapts to each layout while enforcing your procurement schema.

Line Item Complexity

SKUs, unit prices, quantities, discounts, delivery dates, freight class: sometimes all in one dense row. Every field per line item gets extracted, handling multi-page tables and varying column structures across companies.

Terms and Conditions Extraction

Payment terms, Incoterms, ship-to addresses, and compliance clauses appear in different sections depending on the company. LLM parsing locates them; deterministic rules extract and validate each against your expected format.

Fields we extract

Line item and header fields cover procurement workflows. Customize the schema for your ERP integration.

Header

Buyer name/address, vendor name/address, PO number, PO date, ship-to address, bill-to address, payment terms, shipping method

Line items

Line number, SKU/part number, description, quantity, unit price, unit of measure, discount, tax, extended amount, requested delivery date

Terms and totals

Subtotal, tax total, shipping cost, total amount, FOB point, freight terms, special instructions, approval signatures


{ /* SenseML: purchase order extraction */
"fields": [
{
"method": {
"id": "queryGroup",
"queries": [
{
// PO number
"id": "po_number",
"description": "purchase order number, PO #, PO number, order number"
},
{
// PO date
"id": "po_date",
"description": "PO date, order date, date issued",
"type": { "id": "date" }
},
{
// Total amount
"id": "total_amount",
"description": "total amount, PO total, order total, grand total",
"type": { "id": "currency" }
},
{
// Vendor name
"id": "vendor",
"description": "vendor name, supplier name, ship from, sold by"
}
// Additional fields for line items, delivery date, payment terms, etc.
]
}
}
]
}
Government Purchase Order

Federal or state government procurement order with FAR/DFAR compliance fields.

Blanket Purchase Order

Long-term PO covering recurring purchases with periodic releases.

Standard Purchase Order

Buyer-issued PO with line items, quantities, unit prices, and delivery terms.

Supported PO formats

Sensible processes POs from any company or procurement system. New formats can be configured in hours using SenseML. Extraction logic is explicit, version-controlled, and testable against sample documents.

By system

SAP, Oracle, NetSuite, Coupa, Ariba, Jaggaer, QuickBooks, manual/handwritten POs

By type

Standard POs, blanket/standing POs, contract POs, planned POs, drop-ship POs, government POs (SF-1449)

Trusted by operations and engineering teams at

Common Questions

Answers about PO format support, line item extraction, and ERP integration.

Does Sensible validate PO totals?

Yes. Validation rules verify that line item extended prices sum to the subtotal and that tax and shipping charges produce the correct grand total. Discrepancies are flagged automatically.

Does Sensible extract delivery scheduling from POs?

Yes. Sensible captures requested delivery dates, ship dates, partial shipment allowances, and delivery location details for each line item when specified on the PO.

What terms does Sensible capture from purchase orders?

Sensible extracts payment terms, delivery terms (Incoterms), ship-to and bill-to addresses, required delivery date, FOB point, and any special instructions.

How does Sensible extract line items from purchase orders?

Sensible extracts each line item with item number, description, quantity, unit price, unit of measure, and extended price. Multi-page PO tables are stitched into a single array.

Do you support webhooks?

Yes. Sensible sends extraction results to your webhook endpoint when processing completes. You can also poll the API for status.

Does Sensible support human review?

Yes. Sensible flags extractions with low confidence for human review. You can configure review thresholds and workflows.

What security certifications does Sensible have?

Sensible is SOC 2 Type II certified and HIPAA compliant. Data is encrypted in transit and at rest.

How long is document data retained?

Document data is stored indefinitely by default. Custom retention policies are available and can be configured for same-day deletion if needed.

Is there a free trial?

Yes. Sensible offers a 14-day free trial on the Growth plan. No credit card required to start.

How is pricing structured?

Sensible uses per-document pricing for predictable costs. No token-based billing or usage surprises. Volume discounts are available for higher throughput.

How do I integrate with Sensible?

Sensible provides REST APIs and SDKs for Python and Node.js. Most integrations take a few hours. Webhooks, Zapier, and direct API calls are all supported.

What file formats does Sensible support?

Sensible processes PDFs (native or scanned), Microsoft Word (DOC, DOCX), spreadsheets (XLSX, XLS, CSV), single-page images (JPEG, PNG), multi-page images (TIFF), and email bodies with attachments.

How accurate is the extraction?

Accuracy depends on document quality and configuration. Most production deployments achieve 95%+ accuracy with proper validation rules and confidence signals.

How fast is document processing?

Processing speed depends on document size, page count, OCR requirements, and which extraction methods are used. Simple single-page documents process in seconds. Larger or more complex documents that use LLM-based extraction take longer.