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.

Author note

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