Skip to main content

Extract data from pro forma invoices

A pro forma invoice is a commitment quote, not a demand for payment. A supplier issues it before the goods ship, so the buyer can open a letter of credit, register the shipment for an import licence, or budget the landed cost, and a customs authority can read a declared value from it before the commercial invoice exists. Because it precedes the sale rather than closing it, a pro forma carries a validity window instead of a due date, and the amount it states stays provisional until the final invoice replaces it.

Even as a preliminary document, a pro forma follows the EN 16931 semantic model that governs European invoicing. It names the supplier and buyer with their VAT identifiers and postal addresses, sets one ISO 4217 currency for every amount, lists the goods as line items priced net of VAT, and closes with a subtotal, a total without VAT, the tax amount, and the gross total. Delivery terms appear as an Incoterms code, since a CIP Oslo basis and an FCA Mannheim basis change what the buyer owes on top of the goods.

Talonic converts the pro forma into the same structured record a compliant invoice would produce, so procurement, trade finance, and customs teams work from typed fields rather than a PDF. A quote from Rheinwerk Antriebstechnik GmbH to Nordic Automation AS, issued 2026-07-01 and valid until 2026-07-31 in EUR, returns its two priced lines, a 19% VAT breakdown, and a gross total of 42,602.00 EUR that a buyer checks against the purchase order before the shipment is booked.

What gets extracted from pro forma invoices

Document NumberPF-2026-0417
Issue Date2026-07-01
Validity / Expiration Date2026-07-31
SupplierRheinwerk Antriebstechnik GmbHWith VAT ID and address
BuyerNordic Automation AS
CurrencyEURISO 4217 code
Delivery TermsCIP Oslo (Incoterms 2020)
Line Items2 lines: name, quantity, net price, line net amount, VAT rate
Total Without VAT35,800.00 EUR
Total With VAT42,602.00 EUR

How extraction works for pro forma invoices

Pro forma invoices reach a buyer as supplier PDFs, quote-tool exports, and scanned attachments, and no two suppliers lay one out the same way. Talonic classifies the document and binds it to the EN 16931 field set held in the Field Registry, so the buyer reference, the contract and purchase order references, the payment means code, and the validity date resolve to their Business Terms regardless of the label the supplier printed. Line prices are read net of any line discount, each line is tied to its VAT category and rate, and the VAT breakdown is checked to foot to the tax amount and the gross total. Because a pro forma often supports a customs valuation, the declared currency and the Incoterms basis are kept explicit rather than inferred. Confidence scores and pixel-region provenance for every field follow DIN SPEC 91491, letting a trade-finance analyst trace a figure back to the source page.

Sample extraction

A pre-shipment pro forma invoice with two priced lines

{
  "document_number": "PF-2026-0417",
  "document_date": "2026-07-01",
  "expiration_date": "2026-07-31",
  "supplier": {
    "name": "Rheinwerk Antriebstechnik GmbH",
    "tax_id": "DE811457902",
    "city": "Mannheim",
    "country_code": "DE"
  },
  "buyer": {
    "name": "Nordic Automation AS",
    "tax_id": "NO987654321MVA",
    "city": "Oslo",
    "country_code": "NO"
  },
  "currency": "EUR",
  "purchase_order_reference": "PO-NA-2026-3391",
  "delivery_terms": "CIP Oslo (Incoterms 2020)",
  "line_items": [
    {
      "line_id": "1",
      "item_name": "Industrial servo motor, 7.5 kW",
      "quantity": 40,
      "quantity_unit_code": "C62",
      "item_net_price": 850,
      "line_net_amount": 34000,
      "item_vat_category_code": "S",
      "item_vat_rate": 19
    },
    {
      "line_id": "2",
      "item_name": "Motor mounting bracket set",
      "quantity": 40,
      "quantity_unit_code": "C62",
      "item_net_price": 45,
      "line_net_amount": 1800,
      "item_vat_category_code": "S",
      "item_vat_rate": 19
    }
  ],
  "subtotal_amount": 35800,
  "total_amount_without_vat": 35800,
  "vat_breakdown": [
    {
      "vat_category_code": "S",
      "vat_category_taxable_amount": 35800,
      "vat_category_rate": 19,
      "vat_category_tax_amount": 6802
    }
  ],
  "tax_amount": 6802,
  "total_amount": 42602
}

Frequently asked

How is a pro forma invoice different from a commercial invoice?

A pro forma is issued before the sale to confirm price and terms, so it carries a validity date rather than a due date and its amount is provisional until the final invoice replaces it. The field set is the same, which is why the extraction maps it to the identical EN 16931 structure.

Does it foot the VAT breakdown to the totals?

Yes. Each line is tied to its VAT category and rate, and the VAT breakdown is checked to foot to the tax amount and the gross total, so a pro forma whose lines do not reconcile to its stated total is flagged.

Are the delivery terms and currency captured for customs use?

The Incoterms code and the single ISO 4217 currency are kept explicit, because a pro forma often supports a customs valuation where the basis, such as CIP versus FCA, changes the declared value.

What identifiers does it pull for matching?

The buyer reference, the purchase order reference, and the contract reference are captured alongside the supplier and buyer VAT identifiers, so the pro forma can be matched to the order it quotes.

What fields are extracted from pro forma invoices?

Talonic returns pro forma invoices as schema-validated, typed fields. Common fields include Document Number, Issue Date, Validity / Expiration Date, Supplier, and more, each normalized (dates to ISO 8601, amounts as numbers) and mapped to a stable key so the output shape stays the same across layouts.

How accurate is extraction from pro forma invoices, and how is confidence reported?

Every extracted cell carries a confidence score from 0.0 to 1.0 and a provenance pointer back to the source page and region, so low-confidence values can be reviewed against the original before the data is trusted downstream. There is no single accuracy number: confidence is reported per field so you can gate on it.

Can I use pro forma invoices extraction in production?

Yes. The same engine behind this guide is available as a production REST API and Node SDK with sync, async, and streaming modes, schema versioning, signed webhooks, and EU-resident processing. Start free with an API key, then scale on usage-based pricing.

What does it cost to extract data from pro forma invoices?

There is a free tier for prototyping and agent evaluation with no credit card. Paid usage is credit-based at 1,000 credits per euro: page ingestion is 100 credits per page and registry-resolved queries are free. See talonic.com/pricing for current rates.

Ready to extract from your own pro forma invoices?

  • GDPR
  • HIPAA
  • ISO 27001 / 42001 aligned
  • DIN SPEC 91491 co-author
  • EU-resident infrastructure

Author note

Reviewed by Talonic engineering · last reviewed 2026-07-06