Structured Data
Every processed document includes an event_type, amount, currency, and a structured_data object with type-specific fields extracted by AI. The fields vary depending on the document's event_type.
If the document has not been processed yet or the type could not be determined, all fields are null.
invoice
| Field | Type | Description |
line_items | [{ description, quantity, unit_price, total, tax_rate }] | Individual line items on the invoice. |
tax_breakdown | { net_amount, tax_amount, tax_rate, gross_amount } | Tax calculation summary. |
payment_method | string | null | One of: bank_transfer, direct_debit, card, paypal. |
order_number | string | null | Referenced order or purchase number. |
delivery_date | YYYY-MM-DD | null | Delivery or service date. |
recurring | { is_recurring, frequency } | null | Whether this is a recurring invoice (monthly, quarterly, yearly). |
offer
| Field | Type | Description |
line_items | [{ description, quantity, unit_price, total }] | Offered line items. |
valid_until | YYYY-MM-DD | null | Offer expiration date. |
terms | string | null | Brief summary of key terms. |
credit_note
| Field | Type | Description |
original_invoice_ref | string | null | Reference to the original invoice. |
reason | string | null | Reason for the credit note. |
line_items | [{ description, quantity, unit_price, total }] | Credited line items. |
contract
| Field | Type | Description |
contract_type | string | One of: rental, employment, service, insurance, subscription, other. |
parties | [{ name, role }] | Contract parties and their roles. |
start_date | YYYY-MM-DD | null | Contract start date. |
end_date | YYYY-MM-DD | null | Contract end date. |
termination_notice | { period_months, deadline } | null | Notice period and deadline for termination. |
auto_renewal | boolean | null | Whether the contract auto-renews. |
monthly_cost | { value, currency } | null | Monthly cost if applicable. |
key_terms | [string] | 1-3 key terms summarized as bullet points. |
policy
| Field | Type | Description |
policy_type | string | One of: health, liability, property, vehicle, life, legal, other. |
insured_object | string | null | What is insured. |
coverage_amount | { value, currency } | null | Maximum coverage amount. |
deductible | { value, currency } | null | Deductible amount. |
premium_frequency | string | null | Payment frequency: monthly, quarterly, semi-annual, annual. |
cancellation_deadline | YYYY-MM-DD | null | Deadline to cancel the policy. |
notice
| Field | Type | Description |
notice_type | string | One of: price_change, termination, renewal, rate_adjustment, information, warning, other. |
effective_date | YYYY-MM-DD | null | When the notice takes effect. |
action_required | boolean | Whether the recipient needs to act. |
action_deadline | YYYY-MM-DD | null | Deadline for required action. |
previous_value | string | null | Previous value (e.g. old price). |
new_value | string | null | New value (e.g. new price). |
receipt
| Field | Type | Description |
payment_method | string | null | One of: cash, card, bank_transfer, paypal, other. |
items | [{ description, amount }] | Purchased items. |
location | string | null | Store or purchase location. |
tax_breakdown | { net_amount, tax_amount, tax_rate } | null | Tax calculation summary. |
payslip
| Field | Type | Description |
employer | string | null | Employer name. |
pay_period | { start, end } | null | Pay period date range (YYYY-MM-DD). |
gross_salary | { value, currency } | null | Gross salary amount. |
net_salary | { value, currency } | null | Net salary amount. |
deductions | [{ description, amount, type }] | Deductions with type: tax, social_security, insurance, other. |
bonuses | [{ description, amount }] | Bonus payments. |
hours_worked | number | null | Hours worked in the period. |
tax_class | string | null | Tax class (German: Steuerklasse). |
letter
| Field | Type | Description |
letter_type | string | One of: information, request, complaint, confirmation, reminder, other. |
response_required | boolean | Whether a response is expected. |
response_deadline | YYYY-MM-DD | null | Deadline to respond. |
statement
Bank statements (event_type = "statement") are processed by a dedicated extraction pipeline that parses transactions, balances, and statement metadata. The extracted data is returned as structured_data, and is also available via dedicated endpoints (see the Statements section).
| Field | Type | Description |
opening_balance | number | null | Starting balance (Alter Saldo), signed. |
closing_balance | number | null | Ending balance (Neuer Saldo), signed. |
opening_balance_date | YYYY-MM-DD | null | Date of the opening balance. |
closing_balance_date | YYYY-MM-DD | null | Date of the closing balance. |
account_iban | string | null | IBAN of the account the statement belongs to. |
statement_period | { start, end } | null | Statement period as ISO 8601 dates. |
auszugsnummer | string | null | Statement number if present. |
bank_name | string | null | Detected bank (e.g. ING, Sparkasse, Kontist). |
currency | string | Statement currency, defaults to EUR. |
transactions | [{ date, value_date, amount, currency, counterparty, counterparty_iban, reference, type, transaction_type }] | Extracted transactions. type is debit or credit; transaction_type is the raw bank label (Lastschrift, Dauerauftrag, Kartenzahlung, etc.). |
transaction_count | number | Number of extracted transactions. |
extracted_at | datetime | When the extraction ran. |