Ocost answers every document it read as ocost.document.v1. Ask for it with GET /public/v1/files/{file_id}/document or GET /public/v1/documents/{document_id}. The fields follow EN 16931, the norm behind XRechnung, ZUGFeRD and Peppol UBL. Each field names its business term (BT-…) or group (BG-…), so it maps to UBL or CII.
Validate against the JSON Schema or generate types from it. Fields and Values below list everything it holds.
An example
An incoming invoice with two lines at 19 % and 2 % Skonto within 14 days:
{
"schema": "ocost.document.v1",
"id": "01a1b08c-7aa1-7b52-9d4e-2f1f1c0c4f11",
"file_id": "01a1b08c-6e3a-7562-8f4a-7924722667b1",
"pages": [1],
"kind": "invoice",
"kind_detail": "invoice",
"direction": "incoming",
"type_code": "380",
"number": "RE-2026-1187",
"issue_date": "2026-11-03",
"due_date": "2026-12-03",
"delivery_date": "2026-10-30",
"invoicing_period_start": null,
"invoicing_period_end": null,
"valid_until": null,
"currency": "EUR",
"buyer_reference": null,
"order_reference": "PO-2316",
"order_references": ["PO-2316"],
"preceding_invoice": null,
"seller": {
"name": "Musterbüro Lieferant GmbH",
"vat_id": "DE123456789",
"tax_registration_id": null,
"legal_registration_id": "HRB 12345",
"address": { "street": "Beispielweg 4", "postal_code": "50667", "city": "Köln", "country": "DE" },
"contact": { "email": "rechnung@lieferant.example", "phone": null },
"website": null
},
"buyer": {
"name": "Beispiel Handel GmbH",
"vat_id": "DE987654321",
"tax_registration_id": null,
"legal_registration_id": null,
"address": { "street": "Hauptstraße 1", "postal_code": "40213", "city": "Düsseldorf", "country": "DE" },
"contact": null,
"website": null
},
"payee": null,
"deliver_to": null,
"other_parties": [],
"payment": {
"means_code": "58",
"means": "transfer",
"iban": "DE02120300000000202051",
"bic": null,
"terms": "14 Tage 2 % Skonto, 30 Tage netto",
"net_days": 30,
"paid_on": null
},
"early_payment_discounts": [
{ "days": 14, "percent": "2", "base_amount": null, "due_date": "2026-11-17" }
],
"totals": { "net": "1068.00", "tax": "202.92", "gross": "1270.92", "payable": null, "prices_include_vat": false },
"vat_breakdown": [
{ "category": "S", "rate": "19", "taxable_amount": "1068.00", "tax_amount": "202.92", "exemption_reason": null }
],
"lines": [
{
"id": "1", "name": "Bürostuhl ErgoPlus schwarz", "seller_item_id": "ES-200", "standard_item_id": null,
"quantity": "4", "unit": "H87", "price": "189.00", "base_quantity": null, "net_amount": "756.00",
"discount_percent": null, "vat_category": "S", "vat_rate": "19",
"ordered_quantity": null, "backordered_quantity": null, "batch": null, "pzn": null,
"attributes": { "colour": "schwarz" }
},
{
"id": "2", "name": "Montage", "seller_item_id": null, "standard_item_id": null,
"quantity": "4", "unit": "HUR", "price": "78.00", "base_quantity": null, "net_amount": "312.00",
"discount_percent": null, "vat_category": "S", "vat_rate": "19",
"ordered_quantity": null, "backordered_quantity": null, "batch": null, "pzn": null,
"attributes": {}
}
],
"deductions": [],
"card": null,
"worked_out": [],
"sources": {
"number": { "page": 1, "quote": "RE-2026-1187", "confidence": "read", "why": null },
"totals.gross": { "page": 1, "quote": "1.270,92 €", "confidence": "checked", "why": null },
"seller.vat_id": { "page": 1, "quote": "DE123456789", "confidence": "checked", "why": null }
},
"checks": [
{ "name": "vat", "passed": true, "sums": true, "fields": ["totals.net", "totals.tax"], "at": "19" },
{ "name": "gross", "passed": true, "sums": true, "fields": ["totals.net", "totals.tax", "totals.gross"], "at": null }
],
"tax_check": { "case": "standard", "missing": [] },
"attention": [],
"possible_duplicate_of": null,
"read_with": "reader"
}
Kind and direction
Branch on kind. It groups Ocost's many document types into a few, such as invoice, credit_note, delivery_note and contract. kind_detail names the exact type, for information. type_code gives the invoice's UNCL 1001 code, such as 380 for an invoice or 381 for a credit note.
direction says whether the document is incoming from a supplier, outgoing from your business, or unsure. Ocost works it out from the VAT ID, tax number and name in Settings › Company, so keep them right.
How values are written
| Value | Written as |
|---|
| Amounts and quantities | Decimal strings as printed, such as "1270.92". Never numbers, so use a decimal type. |
| Rates | Percent strings, such as "19" or "5.5". |
| Dates, currencies, countries | ISO 8601 (2026-11-03), ISO 4217 (EUR), ISO 3166-1 alpha-2 (DE). |
| Units | UNECE Recommendation 20 (H87 piece, HUR hour) or 21 (XCT carton). |
| Codes read wrong | null. A currency, country, unit, VAT category, IBAN or BIC that isn't a valid code is never passed on as printed. |
| Missing values | null, when not printed or when Ocost wasn't sure. Ocost never guesses. Over MCP, such a field is left out instead. |
How sure Ocost is
sources says, for each value by its path, where it was read: its page and its quote. Its confidence is one of three:
| Confidence | Meaning |
|---|
checked | A check confirmed it, or it came from an e-invoice. |
read | Nothing speaks against it. |
doubt | A check failed, and why names it. Or its words weren't found on its page. |
checks lists every check Ocost ran in code, with passed. The checks marked sums: true add up the amounts. Fill a bill without a person's look only when every one of them passed.
attention lists what a person should look at before booking, such as a possible duplicate. tax_check holds an incoming invoice's check against § 14 UStG.
from decimal import Decimal
document = session.get(f"{API}/files/{file_id}/document", timeout=15).json()
sums_hold = all(c["passed"] for c in document["checks"] if c["sums"])
gross = Decimal(document["totals"]["gross"]) if document["totals"]["gross"] else None
doubts = [path for path, s in document["sources"].items() if s["confidence"] == "doubt"]
const document = await fetch(`${API}/documents/${documentId}`, { headers: auth }).then((r) => r.json());
const sumsHold = document.checks.filter((c) => c.sums).every((c) => c.passed);
// Amounts are strings: keep them as strings, or use a decimal library.
console.log(document.number, document.totals.gross, sumsHold);
Versions
The shape is stable. Within v1, Ocost may add a value to a list, but never renames or removes a field or a value. Treat a kind you don't know as other, and never fail on an unknown value. A breaking change comes as ocost.document.v2 under /public/v2, and v1 stays for 12 more months.
Fields
Every field, written from Ocost's code. The JSON Schema holds the same.
Document
| Field | Type | Meaning |
|---|
schema | ocost.document.v1 | Always this |
id | uuid | The document |
file_id | uuid | The file it is in |
pages | list of integer | Its pages in the file, from 1 |
kind | enum, Values | What a document is, grouped so an integrator branches on few; the exact kind is kind_detail. |
kind_detail | enum, Values | The exact kind, one of Ocost's document types, for information |
direction | enum, Values | Whether the business received or issued it. |
type_code | string (380) or null | BT-3, UNCL 1001 |
number | string or null | BT-1 |
issue_date | date or null | BT-2 |
due_date | date or null | BT-9 |
delivery_date | date or null | BT-72 |
invoicing_period_start | date or null | BT-73 |
invoicing_period_end | date or null | BT-74 |
valid_until | date or null | A quote's |
currency | string (EUR) or null | BT-5, ISO 4217 |
buyer_reference | string or null | BT-10 |
order_reference | string or null | BT-13 |
order_references | list of string | Every order it names |
preceding_invoice | string or null | BT-25 |
seller | Party or null | BG-4 |
buyer | Party or null | BG-7 |
payee | Party or null | BG-10: when not the seller |
deliver_to | Address or null | BG-15 |
other_parties | list of OtherParty | Every other party named |
payment | Payment | BG-16. |
early_payment_discounts | list of EarlyPaymentDiscount | Skonto: XRechnung's #SKONTO# in BT-20. |
totals | Totals | BG-22. |
vat_breakdown | list of VatGroup | BG-23. |
lines | list of Line | BG-25. |
deductions | list of Deduction | A final invoice's: an earlier invoice it takes off. |
card | Card or null | What a document without fields of its own says: a title, a summary and its facts (deadlines first). |
worked_out | list of WorkedOut | An amount Ocost worked out because the one read can't be it. |
sources | map of Source | Per value, by its path |
checks | list of Check | A check Ocost ran in code, and whether it passed. |
tax_check | TaxCheck or null | An incoming invoice's § 14 UStG check (Germany's rules). |
attention | list of enum, Values | What a person should look at before booking it. |
possible_duplicate_of | uuid or null | An earlier document of the same kind, number and seller |
read_with | enum, Values | How Ocost read it |
Party
| Field | Type | Meaning |
|---|
name | string or null | BT-27 (seller), BT-44 (buyer) |
vat_id | string or null | BT-31, BT-48 |
tax_registration_id | string or null | BT-32: the tax number (Steuernummer) |
legal_registration_id | string or null | BT-30, BT-47: the register entry (HRB …) |
address | Address or null | BG-5, BG-8 |
contact | Contact or null | BG-6, BG-9 |
website | string or null | As printed: a host, with or without its scheme |
Address
| Field | Type | Meaning |
|---|
street | string or null | BT-35 (seller), BT-50 (buyer) |
postal_code | string or null | BT-38, BT-53 |
city | string or null | BT-37, BT-52 |
country | string (DE) or null | BT-40, BT-55: ISO 3166-1 alpha-2 |
OtherParty
| Field | Type | Meaning |
|---|
name | string or null | BT-27 (seller), BT-44 (buyer) |
vat_id | string or null | BT-31, BT-48 |
tax_registration_id | string or null | BT-32: the tax number (Steuernummer) |
legal_registration_id | string or null | BT-30, BT-47: the register entry (HRB …) |
address | Address or null | BG-5, BG-8 |
contact | Contact or null | BG-6, BG-9 |
website | string or null | As printed: a host, with or without its scheme |
role | enum, Values | What it is to the document |
printed_role | string or null | The words printed for its role |
Payment
| Field | Type | Meaning |
|---|
means_code | enum, Values or null | BT-81, UNCL 4461; null when it doesn't say or it was paid already |
means | enum, Values or null | The same, as a word |
iban | string (DE02120300000000202051) or null | BT-84, without spaces |
bic | string (BYLADEM1001) or null | BT-86 |
terms | string or null | BT-20, as printed |
net_days | integer or null | The days the terms give to pay in full from the issue date |
paid_on | date or null | The day it says it was paid or charged, where printed |
EarlyPaymentDiscount
| Field | Type | Meaning |
|---|
days | integer | |
percent | decimal | 2 for 2 % |
base_amount | decimal or null | What it is taken off, where printed; null: the amount due |
due_date | date or null | The last day for it: the issue date plus days |
Totals
| Field | Type | Meaning |
|---|
net | decimal or null | BT-109 |
tax | decimal or null | BT-110 |
gross | decimal or null | BT-112 |
payable | decimal or null | BT-115: what is left to pay; null when it is the gross |
prices_include_vat | boolean | Its lines' prices and amounts include VAT (a receipt) |
VatGroup
| Field | Type | Meaning |
|---|
category | enum, Values or null | BT-118 |
rate | decimal or null | BT-119, percent: 19 |
taxable_amount | decimal | BT-116 |
tax_amount | decimal | BT-117 |
exemption_reason | string or null | BT-120 |
Line
| Field | Type | Meaning |
|---|
id | string | BT-126: its position |
name | string | BT-153 |
seller_item_id | string or null | BT-155: the article number |
standard_item_id | string or null | BT-157: the GTIN (scheme 0160) |
quantity | decimal or null | BT-129 |
unit | string (C62) or null | BT-130: UNECE Rec 20 (C62, HUR, KGM) or Rec 21 (XCT); null when none is printed or it is no code |
price | decimal or null | BT-146: the net price |
base_quantity | decimal or null | BT-149: how many units price is for; null: one |
net_amount | decimal or null | BT-131 |
discount_percent | decimal or null | The line's discount: 5 |
vat_category | enum, Values or null | BT-151 |
vat_rate | decimal or null | BT-152, percent |
ordered_quantity | decimal or null | A delivery note's |
backordered_quantity | decimal or null | Still to come |
batch | string or null | Its batch (Charge), as printed |
pzn | string or null | A medicine's PZN |
attributes | map of string | What it is, as printed: colour, size, material, brand, … |
Deduction
| Field | Type | Meaning |
|---|
number | string or null | |
issue_date | date or null | |
net | decimal or null | |
tax | decimal or null | |
gross | decimal or null | |
Card
| Field | Type | Meaning |
|---|
title | string or null | |
summary | string or null | |
facts | list of Fact | |
WorkedOut
| Field | Type | Meaning |
|---|
field | enum, Values | Its path in this document |
printed | decimal or null | What was read |
rule | enum, Values | How Ocost worked an amount out. |
Source
| Field | Type | Meaning |
|---|
page | integer or null | Where it was read, from 1 |
quote | string or null | The words it was read from |
confidence | enum, Values | How sure Ocost is of a value, from its checks: never a model's grade. |
why | string or null | For a doubt: the failed check's name |
Check
| Field | Type | Meaning |
|---|
name | enum, Values | What it checked; sums says whether it is one of the sums |
passed | boolean | |
sums | boolean | One of the sums (total, vat, vat_net, vat_tax, gross, payable, signs, skonto, deduction, deductions, quantity): fill a bill only when all pass |
fields | list of string (totals.gross) | The paths it is about, as sources names them |
at | string or null | The rate or the line it is about |
TaxCheck
| Field | Type | Meaning |
|---|
case | enum, Values | Which German rules an incoming invoice is held to. |
missing | list of TaxItem | |
Contact
| Field | Type | Meaning |
|---|
email | string or null | BT-43, BT-58: an address as printed |
phone | string or null | BT-42, BT-57: as printed |
Fact
| Field | Type | Meaning |
|---|
label | string | What it is, in the document's words |
kind | enum, Values | What a fact on a document's card is. |
date | date or null | |
amount | decimal or null | |
currency | string (EUR) or null | ISO 4217, of amount |
number | decimal or null | |
text | string or null | |
page | integer or null | |
TaxItem
| Field | Type | Meaning |
|---|
item | enum, Values | What an invoice lacks, or has wrong, for its case. |
law | string | The paragraph that asks for it |
at_stake | boolean | Missing, it costs the input VAT deduction |
Values
Every list of values, written from Ocost's code. The JSON Schema and the API reference hold the same. A later Ocost may add a value within v1. Treat a kind you don't know as other, and leave any other unknown value aside. No value is renamed or removed in v1.
kind
What a document is, grouped so an integrator branches on few; the exact kind is kind_detail.
| Value | Meaning |
|---|
invoice | An invoice to pay: partial, final, advance, collective, recurring, self-billed (type_code says which) |
credit_note | A credit note |
invoice_correction | A corrected invoice |
receipt | A receipt: paid already |
pro_forma | A pro forma invoice: not to pay |
delivery_note | A delivery note |
order | An order: a purchase, service, work or project order |
order_confirmation | An order's or a reservation's confirmation |
quote | A quote (offer) |
contract | A contract: agreements, leases, insurance policies, mandates |
statement | A factor's statement |
payment_reminder | A payment reminder |
other | Anything else: kind_detail and card say what |
kind_detail
The exact kind, one of Ocost's document types, for information: branch on kind, which groups them (the guide's reference lists which).
Each kind_detail, by the kind it is:
| kind | kind_detail |
|---|
invoice | collective_invoice, invoice, recurring_rental_invoice, fee_invoice, advance_payment_invoice, credit_invoice, final_invoice, partial_invoice |
credit_note | credit_note |
invoice_correction | invoice_correction |
receipt | receipt, payment_voucher |
pro_forma | pro_forma_invoice |
delivery_note | delivery_note |
order | order, order_form, project_order, service_order, work_order, purchase_order |
order_confirmation | order_confirmation, reservation_confirmation |
quote | offer |
contract | agreement, contract, insurance_policy, mandate, lease_contract |
statement | statement |
payment_reminder | payment_reminder |
other | acceptance_protocol, bonus_payment_notification, certificate, certificate_of_destruction, cost_statement, court_order, reimbursement, customer_statistics, decision, final_report, lump_sum_overview, test_report, laboratory_report, logistics_appendix, maintenance_log, maintenance_report, request_for_medical_consultation, notification, payroll, pay_slip, prescription, work_record, recommendation, report, inquiry, requirement, separator_sheet, service_report, service_documentation, declaration, time_sheet, work_report, settlement_amount, electronic_summary, administrative_fee, copy_of_invoice, bailiff, membership_fee, enforcement_case, information, cost_calculation, fee_notice, invoice_audit, annex, direct_debit_advice, process_history, internal_project_information, bank_transaction_report, request_for_quotation, rejection, form |
direction
Whether the business received or issued it.
| Value | Meaning |
|---|
incoming | To the business: a supplier's |
outgoing | The business issued it |
unsure | Its parties don't say |
other_parties[].role
What another party is to the document; printed_role is its words.
| Value | Meaning |
|---|
seller | The seller |
buyer | The buyer |
invoicee | Who it is addressed to, when not the buyer (Rechnungsempfänger) |
service_recipient | Who receives the service, when not the buyer (Leistungsempfänger) |
payer | Who pays, when not the buyer |
payee | Who is paid, when not the seller |
ship_to | Where the goods go (Warenempfänger) |
carrier | Who carries the goods |
factor | Who bought the receivable |
debtor | Whose receivable it is (a factor's debtor) |
guarantor | Who guarantees it (Bürge) |
landlord | The landlord |
tenant | The tenant |
subtenant | The subtenant |
contractor | The contractor |
subcontractor | The subcontractor |
principal | Who commissions the work (Auftraggeber, Bauherr) |
agent | Who acts for a party: a property manager, a broker |
insurer | The insurer |
policyholder | The policyholder |
other | Any other role: printed_role says which |
payment.means_code
BT-81: how it is paid, UNCL 4461.
| Value | Meaning |
|---|
58 | SEPA credit transfer |
59 | SEPA direct debit |
48 | Bank card |
payment.means
How it is paid, as a word.
| Value | Meaning |
|---|
transfer | A credit transfer (means_code 58) |
direct_debit | A direct debit (59) |
card | A card (48) |
already_paid | It says it is paid already (no code) |
vat_breakdown[].category, lines[].vat_category
BT-118, BT-151: the VAT category, UNCL 5305 as EN 16931 uses it.
| Value | Meaning |
|---|
S | Standard rate |
Z | Zero rated goods |
E | Exempt from VAT |
AE | Reverse charge: the buyer owes the VAT |
K | Intra-community supply, VAT exempt |
G | Export outside the EU, free of VAT |
O | Outside the scope of VAT |
L | Canary Islands' IGIC |
M | Ceuta and Melilla's IPSI |
B | Transferred VAT (Italy's split payment) |
card.facts[].kind
What a fact on a document's card is.
| Value | Meaning |
|---|
deadline | A date something is due by; its label says what |
valid_from | The day it is valid from |
valid_until | The day it is valid until |
reference | A number naming something else |
amount | An amount |
party | Someone besides its issuer and recipient |
date | Any other date: an inspection, an acceptance |
other | Anything else |
worked_out[].field
The amount worked out, by its path.
| Value | Meaning |
|---|
totals.net | BT-109 |
totals.tax | BT-110 |
totals.gross | BT-112 |
worked_out[].rule
How Ocost worked an amount out.
| Value | Meaning |
|---|
groups | The VAT groups' sum |
net_tax | Net plus VAT |
skonto | The gross read was the amount less Skonto |
payable | The gross read was what is left to pay |
outside | The net with an amount outside the VAT groups: a deposit, a tip |
sources.*.confidence
How sure Ocost is of a value, from its checks: never a model's grade.
| Value | Meaning |
|---|
checked | A check confirmed it, or it came from an e-invoice |
read | Nothing speaks against it |
doubt | A check failed (why names it), or its words weren't on its page |
checks[].name
A check Ocost ran in code on what it read.
| Value | Sum | Meaning |
|---|
total | yes | A total was read |
vat | yes | A VAT group's VAT is its net × rate (at the rate) |
vat_net | yes | The VAT groups' nets add up to the net |
vat_tax | yes | The VAT groups' VAT adds up to the VAT |
gross | yes | Net plus VAT is the gross (the net, with no VAT printed) |
payable | yes | What is left to pay is between nothing and the gross |
signs | yes | No total is negative |
deduction | yes | A deducted invoice's net plus VAT is its gross (at which) |
deductions | yes | The gross less the deductions is what is left to pay |
quantity | yes | A delivered quantity is positive, or the line is backordered (at the line) |
skonto | yes | A Skonto is plausible: up to 10 %, within a year |
line | | A line's quantity × price, less its discount, is its net (at the line) |
lines_net | | The lines add up to the net (the gross, priced with VAT) |
lines_currency | | The lines are in another currency than the totals (at it) |
vat_lines | | A VAT group's net is its lines' (at the rate) |
iban | | The IBAN's check digits hold |
vat_id | | A German VAT ID's check digit holds |
issued_on | | The issue date is neither years ago nor ahead |
due_on | | The due date isn't before the issue date |
service | | The service period starts before it ends |
valid_until | | A quote holds until after its issue date |
delivery_on | | The delivery date is near the issue date |
stated | | The amounts stated in a second currency add up |
stated_rate | | The amounts in both currencies agree at the rate printed, else the ECB's (at the rate) |
payment_sum | | A contract's payment: net plus VAT is its gross (at which) |
payment_vat | | A contract's payment: its VAT is its net × rate |
payment_sign | | A contract's payment: its amounts are positive |
step | | A stepped rent's step falls in the term, in order |
first_payment | | A contract's first payment falls in its term |
deposit | | A contract's deposit is positive |
tax_check.case
Which German rules an incoming invoice is held to.
| Value | Meaning |
|---|
standard | § 14 Abs. 4 UStG: an invoice with VAT |
small | § 33 UStDV: a small amount, up to 250 € |
reverse_charge | § 13b, § 14a Abs. 5 UStG: the business owes the VAT |
intra_eu | § 14a Abs. 3 UStG: an intra-community supply |
exempt | § 14 Abs. 4 Satz 1 Nr. 8 UStG: an exempt supply |
tax_check.missing[].item
What an invoice lacks, or has wrong, for its case.
| Value | Meaning |
|---|
supplier_name | The supplier's full name |
supplier_address | The supplier's full address |
supplier_tax_id | The supplier's tax number or VAT ID |
recipient_name | The recipient's full name |
recipient_address | The recipient's full address |
recipient_not_us | It is addressed to someone else than the business |
recipient_address_not_ours | It is addressed to an address that isn't the business's |
issued_on | The issue date |
number | The invoice number |
description | The quantity and kind of the goods or services |
service_date | The day of the supply or service |
net | The net per rate |
tax_rate | The VAT rate |
tax_amount | The VAT |
exemption_note | The note on why it is exempt |
reverse_charge_note | The note that the recipient owes the VAT (Steuerschuldnerschaft des Leistungsempfängers) |
intra_eu_note | The note that it is an intra-community supply |
supplier_vat_id | The supplier's VAT ID |
recipient_vat_id | The recipient's VAT ID |
vat_charged | German VAT charged where the business owes it itself (§ 13b): not deductible, and paying it pays VAT twice |
attention[]
What a person should look at before booking it.
| Value | Meaning |
|---|
sums | A check with sums: true failed |
outgoing | The business issued it |
possible_duplicate | An earlier document has its kind, number and seller (possible_duplicate_of) |
self_billed | A self-billed invoice (Gutschrift): the buyer issued it |
read_with
How Ocost read it: never a model's or provider's name.
| Value | Meaning |
|---|
e_invoice | From its XML, exactly |
reader | From its pages |
type_code
UNCL 1001, one to three digits. An e-invoice may carry a code not listed here. Where the document prints none, Ocost writes its kind's:
| Value | Meaning |
|---|
380 | Commercial invoice |
381 | Credit note |
384 | Corrected invoice |
389 | Self-billed invoice |
326 | Partial invoice |
386 | Prepayment invoice |
325 | Pro forma invoice |
875 | Partial construction invoice |
876 | Partial final construction invoice |
877 | Final construction invoice |
383 | Debit note |
393 | Factored invoice |
751 | Invoice information for accounting purposes |
81 | Credit note related to goods or services |
83 | Credit note related to financial adjustments |
261 | Self-billed credit note |
262 | Consolidated credit note, goods and services |
396 | Factored credit note |
532 | Forwarder's credit note |
sources
The paths that sources, checks[].fields and worked_out[].field name, n from 0. A later Ocost may add paths:
number, issue_date, due_date, delivery_date, valid_until, currency, order_reference, seller.name, buyer.name, seller.vat_id, buyer.vat_id, seller.contact.email, buyer.contact.email, seller.contact.phone, buyer.contact.phone, seller.website, buyer.website, seller.legal_registration_id, buyer.legal_registration_id, totals.net, totals.tax, totals.gross, totals.payable, payment.iban, payment.means_code, payment.paid_on, lines, other_parties[n].name, deductions[n].gross