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

FieldTypeDescription
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_methodstring | nullOne of: bank_transfer, direct_debit, card, paypal.
order_numberstring | nullReferenced order or purchase number.
delivery_dateYYYY-MM-DD | nullDelivery or service date.
recurring{ is_recurring, frequency } | nullWhether this is a recurring invoice (monthly, quarterly, yearly).

offer

FieldTypeDescription
line_items[{ description, quantity, unit_price, total }]Offered line items.
valid_untilYYYY-MM-DD | nullOffer expiration date.
termsstring | nullBrief summary of key terms.

credit_note

FieldTypeDescription
original_invoice_refstring | nullReference to the original invoice.
reasonstring | nullReason for the credit note.
line_items[{ description, quantity, unit_price, total }]Credited line items.

contract

FieldTypeDescription
contract_typestringOne of: rental, employment, service, insurance, subscription, other.
parties[{ name, role }]Contract parties and their roles.
start_dateYYYY-MM-DD | nullContract start date.
end_dateYYYY-MM-DD | nullContract end date.
termination_notice{ period_months, deadline } | nullNotice period and deadline for termination.
auto_renewalboolean | nullWhether the contract auto-renews.
monthly_cost{ value, currency } | nullMonthly cost if applicable.
key_terms[string]1-3 key terms summarized as bullet points.

policy

FieldTypeDescription
policy_typestringOne of: health, liability, property, vehicle, life, legal, other.
insured_objectstring | nullWhat is insured.
coverage_amount{ value, currency } | nullMaximum coverage amount.
deductible{ value, currency } | nullDeductible amount.
premium_frequencystring | nullPayment frequency: monthly, quarterly, semi-annual, annual.
cancellation_deadlineYYYY-MM-DD | nullDeadline to cancel the policy.

notice

FieldTypeDescription
notice_typestringOne of: price_change, termination, renewal, rate_adjustment, information, warning, other.
effective_dateYYYY-MM-DD | nullWhen the notice takes effect.
action_requiredbooleanWhether the recipient needs to act.
action_deadlineYYYY-MM-DD | nullDeadline for required action.
previous_valuestring | nullPrevious value (e.g. old price).
new_valuestring | nullNew value (e.g. new price).

receipt

FieldTypeDescription
payment_methodstring | nullOne of: cash, card, bank_transfer, paypal, other.
items[{ description, amount }]Purchased items.
locationstring | nullStore or purchase location.
tax_breakdown{ net_amount, tax_amount, tax_rate } | nullTax calculation summary.

payslip

FieldTypeDescription
employerstring | nullEmployer name.
pay_period{ start, end } | nullPay period date range (YYYY-MM-DD).
gross_salary{ value, currency } | nullGross salary amount.
net_salary{ value, currency } | nullNet salary amount.
deductions[{ description, amount, type }]Deductions with type: tax, social_security, insurance, other.
bonuses[{ description, amount }]Bonus payments.
hours_workednumber | nullHours worked in the period.
tax_classstring | nullTax class (German: Steuerklasse).

letter

FieldTypeDescription
letter_typestringOne of: information, request, complaint, confirmation, reminder, other.
response_requiredbooleanWhether a response is expected.
response_deadlineYYYY-MM-DD | nullDeadline 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).

FieldTypeDescription
opening_balancenumber | nullStarting balance (Alter Saldo), signed.
closing_balancenumber | nullEnding balance (Neuer Saldo), signed.
opening_balance_dateYYYY-MM-DD | nullDate of the opening balance.
closing_balance_dateYYYY-MM-DD | nullDate of the closing balance.
account_ibanstring | nullIBAN of the account the statement belongs to.
statement_period{ start, end } | nullStatement period as ISO 8601 dates.
auszugsnummerstring | nullStatement number if present.
bank_namestring | nullDetected bank (e.g. ING, Sparkasse, Kontist).
currencystringStatement 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_countnumberNumber of extracted transactions.
extracted_atdatetimeWhen the extraction ran.