Extracting Data from Insurance Documents
Apryse Server SDK recovers the structure of an insurance file first. Page geometry, headers, and tables come from a deterministic foundation, so the same page produces the same structure on every run. Purpose-built AI in Smart Data Extraction then reads that structure and returns key-value pairs, form fields, and page categories, each with a confidence score.
The ACORD forms list decides your route. Fixed-layout forms such as ACORD 25, 125, 126, 130, and 140, plus loss notices ACORD 1 through 4, fit template extraction, where you define each field once. Claims packets with no consistent layout fit template-free key-value extraction. Your application owns routing, thresholds, and the claims system. The Apryse Server SDK processes documents inside your infrastructure.
Support Matrix
Each column is a separately obtained component. Match the column to the document you receive.
A claims packet is one file holding several documents. A first notice of loss, a repair estimate, a police report, and a fax cover sheet arrive together, each from a different sender with its own layout. Two carriers describe the same loss with different labels, field order, and page counts.
Scanned and faxed pages hold pixels, not text. The OCR Module, a separate add-on, converts image-based PDFs into searchable text with position data. Handwritten annotations need the Handwriting ICR Module, a separate add-on that reads handwriting and returns text with position data as JSON. Both run inside your infrastructure.
Mixed document types in one file break any extractor that assumes one layout per file. Template matching handles the forms with fixed layouts. The rest of the packet needs template-free reading, plus page-level classification so your code can see which pages belong together.
ACORD Forms
ACORD is the Association for Cooperative Operations Research and Development, the non-profit standards body for the insurance industry. It publishes two things that people both call ACORD: numbered forms, and data standards.
The ACORD Forms List
This page works with the forms below. Each is a fixed-layout form: the printed fields sit where the form defines them, and a scan can shift or skew them.
ACORD revises its forms by edition date. Treat each edition you receive as its own template.
The ACORD Data Model
The ACORD Data Model is a different asset from a form. It is a logical entity-relationship structure, generated from ACORD's Information Model, that you can use to design physical data models and data warehouses. ACORD's XML, JSON, and AL3 standards carry insurance data between systems as messages.
Reading a form produces values. Your code maps each value to your own schema, or to an ACORD message format if your carriers expect one.
Fixed-Layout Forms with Template Extraction
Fixed layout is where template extraction fits. You define a form's fields once in the Template Designer, a Windows application. Your code then classifies each incoming scan against a collection of templates and extracts the fields the matched template defines.
Classification works at form level and page level, and a template can span several pages. Extraction tolerates deformation between the template layout and the scan, and recognition boxes define which part of the page each field reads. Field types include text, OMR, image, and barcode. Results come back typed as text, checkbox, image, barcode, blank, table, or table row, and every extracted field carries a confidence score.
Template Extraction is a separate library for .NET and Java. It is not part of the Apryse Server SDK, and your data stays on-premises. Check out the following resources:
- Visit the template extraction page
- Read ACORD form extraction in .NET for a .NET walkthrough that builds a template and classifies a scan
- Lastly, template extraction for ACORD forms overviews exporting extracted fields to JSON inside a document management system.
Worked Example 1: Named ACORD Fields
This example uses C# and the Template Extraction library. It classifies a scanned ACORD 25 against your templates, extracts the fields the matched template defines, and writes each named field with its confidence score as JSON. The Template Extraction samples include a Java version.
The field names come from your template, and the values below are illustrative:
Claims Packets and First Notice of Loss
A claims packet takes three steps in your code: classify, split, extract. Classification assigns each page one of 24 fixed categories with a confidence score. Your code groups consecutive pages by category, then splits the file with the Server SDK page manipulation API. Extraction then runs on each resulting document.
Document classification works at page level, which fits packets that mix document types. The category set is fixed. Check the classification docs for the list before you map categories to your packet's document types.
Claim documents with no consistent layout go to key-value extraction. It identifies label and value pairs with no template setup, such as a policy number beside its value. Each pair returns a confidence score, and every result carries page numbers and bounding boxes.
Flat PDFs with printed fields go through form field identification. It detects visual fields and returns them as JSON or as fillable PDF fields, each with a confidence score.
A confidence score is a measure per result, not a verdict. Your code sets the threshold and decides what happens below it.
Worked Example 2: A Claim Field with Its Confidence Score
This example uses C# on Windows or Linux x64. It needs the Smart Data Extraction add-on module, a separate download from the base Apryse Server SDK. See the modules documentation for download and installation. The code extracts key-value pairs from a claim packet and keeps the pairs at or above a confidence threshold that you set.
The Smart Data Extraction output reports each pair's page, bounding box, and a confidence between 0.0 and 1.0. The code above reduces it to the claim fields your application stores. The values below are illustrative:
Policy Documents and Loss Runs
Policy documents are long and structured: declarations, coverage forms, endorsements. Document structure recognition parses headers, footers, lists, images, paragraphs, and styling into JSON with page numbers and bounding boxes. Markdown output keeps heading levels, lists, and tables for retrieval pipelines over policy wording.
Loss runs and schedules arrive as tables. Table extraction recovers rows, columns, and table structure, including merged cells, multi-row headers, nested tables, and tables that continue across pages. It works on PDF and scanned documents and exports to JSON or Excel.
Table results do not include a confidence score. Validate them in your own code, for example by checking that loss run line items sum to the stated total.
Loss Run Tables as JSON
Each table cell in the JSON reports its zero-based row and column start, optional row and column spans, and a bounding box. Header cells and data cells carry different types, so your code can tell a column label from a loss run line. The table extraction guide documents the call, and the table JSON specification documents the cell structure.
Reading Barcodes and Claim Fields from the Same Document
Claims cover sheets often carry a barcode that identifies the claim or policy. The Barcode Module detects barcodes in PDF documents, returns each barcode's location and bounding box, and decodes its content. It reads over 100 barcode types, including QR, DataMatrix, PDF417, Code 128, GS1-128, USPS 4-State, and Royal Mail 4-State. Extraction profiles tune the read for low-quality scans, small barcodes, and skewed barcodes. Read barcode extraction for the capability. The module is a separate add-on for the Apryse Server SDK and requires its own add-on license.
Reading barcodes through a device camera is a Scanbot SDK use case, not a Barcode Module use case. The BarcodeTest sample ships in the main SDK download, and the barcode guide documents the call.
Worked Example 3: A Barcode and Claim Fields from the Same PDF
This example uses C# on Windows or Linux x64. It needs the Smart Data Extraction add-on module and the Barcode Module, each a separate download from the base Apryse Server SDK. The code runs both modules on one PDF and returns a single record: the decoded barcode and the claim fields.
Both modules report positions in the same coordinate system, with the same origin, units, and page reference. Your code can compare a barcode's position with a field's position and match them without converting coordinates.
The record joins the decoded barcode to the claim fields from the same document. The values below are illustrative:
Structured Output into a Claims or Policy Admin System
Smart Data Extraction returns JSON with page numbers and bounding boxes, and exports tables to Excel. JSON is the hand-off point. Your application reads it, maps it to your claims or policy admin schema, and stores it. Bounding boxes let you draw each value's source location on the page for overlay or annotation.
Apryse supplies building blocks for your own intelligent document processing (IDP) workflow. It is not a turnkey IDP platform.
Getting Started
Install the Smart Data Extraction module for your language:
- .NET: expand the module archive into the SDK Lib directory
- Node.js: npm install @pdftron/data-extraction
- Python, Windows and Linux: pip install --extra-index-url=https://pypi.apryse.com apryse-data-extraction
- Java: add the DataExtractionModuleWindows or DataExtractionModuleLinux Maven dependency
- C++: expand the module archive into the SDK directory
- Template Extraction: .NET API reference and Java API reference
The DataExtractionTest sample ships in the main SDK download. Get your trial key at dev.apryse.com.
For the Technical Evaluator
Sizing a claims intake build comes down to three splits:
Deployment
You host the SDK on your own servers, VMs, or containers, and the support matrix states platforms and licensing.
Scope
The SDK reads documents and returns JSON, and it provides no work queue, job scheduler, or batch orchestration, so your application owns the loop over packets.
Ownership
Your application owns thresholds, review, storage, and the claims system, and Apryse owns the document layer.
Where Documents Are Processed
The Apryse Server SDK is a self-hosted library. It runs on your on-premises servers, in your private cloud, or in containers you manage, and it processes documents locally. Documents are not sent to Apryse or to a third-party service.
Extraction does not require an LLM. Passing results to one is a separate step that you choose to add. For a fully disconnected deployment, confirm activation requirements with Apryse during evaluation. By default the SDK sends limited usage metadata to Apryse: API call names and counts, page counts, SDK version, and SDK language. A no-tracking license key is available on request.
This page covers what you call and what comes back. The outcome, the document types in buyer language, and the compliance story for insurance document workflows live on the industry page.
Frequently Asked Questions
Any fixed-layout ACORD form you can define as a template, including ACORD 25, 125, 126, 130, 140, and loss notices ACORD 1 through 4. You build one template per form edition in the Template Designer. Template Extraction then classifies each scan against your templates before it extracts the fields.
Fixed-layout ACORD forms use a template, which you define once in the Template Designer. Claims packets and other varied-layout documents do not. Key-value extraction identifies label and value pairs with no template setup and returns a confidence score for each pair.
Your code splits it, using page categories from Smart Data Extraction. Document classification assigns each page one of 24 fixed categories with a confidence score. Your code groups consecutive pages by category and splits the PDF with the Server SDK page manipulation API.
Yes, as two operations on the same PDF. Both modules report positions in the same coordinate system, so your code can match a barcode to the fields near it without converting coordinates. The Barcode Module decodes the barcodes and returns their locations, and Smart Data Extraction returns the claim fields. The Barcode Module is a separate add-on that requires its own add-on license.
No. Smart Data Extraction, the Barcode Module, the OCR and Handwriting ICR Modules, and Template Extraction run inside infrastructure you control. The Apryse Server SDK transmits no document content to Apryse. By default it sends limited usage metadata, and a no-tracking license key is available on request.



