Define meaning as well as column names
An invoice extraction schema tells Parzable which fields to return. A name such as Date is underspecified when an invoice includes an issue date, a service date, and a payment due date. Separate names and clear descriptions make your intended output easier to review.
In Parzable, open Schemas → Create New, name the schema, add fields, and save it. Then select that schema in Extract. Available field types are string, number, date, currency, and boolean. A selected type describes the intended field; it is not proof that a returned value satisfies a validation rule.
Start from the destination: which fields does your purchase register actually need? Keep the first schema small enough that a reviewer can compare every field with a source invoice.
A starter field dictionary
| Field | Type | Suggested description |
|---|---|---|
| Vendor | string | Business issuing the invoice; do not use the customer name. |
| Invoice number | string | Supplier’s invoice identifier, including prefixes and leading zeros. |
| Invoice date | date | Printed issue date; do not substitute the due date. Preserve ambiguity for review. |
| Currency | string | Explicit currency code or symbol as printed. Do not infer from address alone. |
| Subtotal | currency | Printed subtotal before tax; do not calculate a missing value. |
| Tax amount | currency | Printed total tax amount; not the tax percentage. |
| Total | currency | Printed invoice total including tax; keep remaining balance separate. |
The downloadable schema reference contains these fields in Parzable’s template shape. Use it as a reference while entering fields in the interface; the current UI does not provide a JSON import button.
Replace vague requests with observable instructions
Instead of “get the amount,” describe the printed label and the distinction that matters: “Extract the amount labelled Invoice total, including tax. Do not substitute Subtotal or Balance due.” If you need all three, create three fields. Do not ask the extraction step to calculate a missing amount and present it as printed evidence.
The current extraction prompt uses field names and descriptions and asks for N/A when a value is unavailable. Put important guidance in the description. A field type or format selection alone should not be treated as a guaranteed constraint on the AI response.
Keep identifiers as strings even when they contain only digits. An invoice number such as 00172 loses meaning if an import silently turns it into 172. Treat missing values explicitly in the destination rather than substituting zero.
Test the schema across different layouts
Try the schema on invoices from several suppliers, including one with both total and balance due, one with an ambiguous numeric date, and one with multiple pages. Compare the returned values with a manually checked reference. Change one description at a time so you can see which instruction helped.
Do not rename established fields midway through a reporting period without checking downstream column mappings. If you revise the schema, record the version in your own working notes and rerun only the documents that need it. Use a dedicated line-item plan when the target is one row per product; an invoice header schema does not establish that row structure.
Put the workflow to work
Try your own invoice in Parzable
Create an account, define a schema, and test a small sample. Review extracted values before using them. See current plans and page allowances.
Try Parzable