Handelswerk
invoice audit
Rebuilds an invoice from its lines and compares the result with the stated totals. Line by line it checks quantity times unit price against the line total, applies line and document discounts in the right order, groups the net amounts by tax rate and computes the tax per group, then compares net, tax and gross with what the document claims.
POST https://handel.halowerk.com/v1/invoice-auditEingaben
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| lines | array | Ja | The invoice lines. |
| stated_net | number | Nein | Net total as stated on the invoice. |
| stated_tax | number | Nein | Tax total as stated. |
| stated_gross | number | Nein | Gross total as stated. |
| document_discount_pct | number | Nein | Discount on the whole document, applied after line discounts. |
| default_tax_rate | number | Nein | Tax rate for lines that do not carry one. |
| currency | string | Nein | |
| invoice_date | string | Nein | Invoice date as YYYY-MM-DD. |
| due_date | string | Nein | Due date as YYYY-MM-DD. |
| reverse_charge | boolean | Nein | Whether the invoice claims the reverse charge. |
| customer_vat_number | string | Nein | Customer VAT number, required for the reverse charge. |
| country | string | Nein | Country whose standard rates the tax rates are checked against. |
Vollständiges Eingabeschema anzeigen
{
"type": "object",
"required": [
"lines"
],
"additionalProperties": false,
"properties": {
"lines": {
"type": "array",
"minItems": 1,
"maxItems": 500,
"description": "The invoice lines.",
"items": {
"type": "object",
"required": [
"quantity",
"unit_price"
],
"additionalProperties": false,
"properties": {
"description": {
"type": "string",
"maxLength": 300
},
"quantity": {
"type": "number"
},
"unit_price": {
"type": "number"
},
"line_total": {
"type": "number",
"description": "The stated line total. Recomputed if absent."
},
"tax_rate": {
"type": "number",
"minimum": 0,
"maximum": 100,
"description": "Tax rate in percent for this line."
},
"discount_pct": {
"type": "number",
"minimum": 0,
"maximum": 100,
"description": "Discount on this line in percent."
}
}
}
},
"stated_net": {
"type": "number",
"description": "Net total as stated on the invoice."
},
"stated_tax": {
"type": "number",
"description": "Tax total as stated."
},
"stated_gross": {
"type": "number",
"description": "Gross total as stated."
},
"document_discount_pct": {
"type": "number",
"minimum": 0,
"maximum": 100,
"description": "Discount on the whole document, applied after line discounts."
},
"default_tax_rate": {
"type": "number",
"minimum": 0,
"maximum": 100,
"description": "Tax rate for lines that do not carry one."
},
"currency": {
"type": "string",
"minLength": 3,
"maxLength": 3,
"default": "EUR"
},
"invoice_date": {
"type": "string",
"maxLength": 10,
"description": "Invoice date as YYYY-MM-DD."
},
"due_date": {
"type": "string",
"maxLength": 10,
"description": "Due date as YYYY-MM-DD."
},
"reverse_charge": {
"type": "boolean",
"default": false,
"description": "Whether the invoice claims the reverse charge."
},
"customer_vat_number": {
"type": "string",
"maxLength": 20,
"description": "Customer VAT number, required for the reverse charge."
},
"country": {
"type": "string",
"minLength": 2,
"maxLength": 2,
"description": "Country whose standard rates the tax rates are checked against."
}
}
}Veröffentlichtes Eingabebeispiel
{
"lines": [
{
"description": "Synthetic example item",
"quantity": 2,
"unit_price": 10,
"tax_rate": 19
}
],
"stated_net": 20,
"stated_tax": 3.8,
"stated_gross": 23.8,
"currency": "EUR"
}Ergebnis & Dokumentation
Veröffentlichtes Ergebnisschema anzeigen
{
"$ref": "https://handel.halowerk.com/v1/invoice-audit/schema#/outputSchema"
}Veröffentlichtes Ergebnisbeispiel öffnen
Maschinenlesbare Dokumentation dieses Hubs
Quelle dieser Seite: der veröffentlichte HALOWERK-Katalog. Stand: 2026-11-01, 15:19 UTC.
Weitere Endpunkte dieses Hubs
- Handelswerk0,005 USDC
allergen check
POSThttps://handel.halowerk.com/v1/allergen-checkReturns what a product declares about allergens: the allergen tags, the trace warnings, the ingredients text in its original language, and the completeness of the record. The distinction it holds to throughout is between not declared and no
- Handelswerk0,006 USDC
container load
POSThttps://handel.halowerk.com/v1/container-loadLoads a package list into one loading space and returns the plan, not an estimate. The floor starts as one free surface; packages are sorted by footprint, then height, then weight, then identifier, and each one is placed on the lowest, then
- Handelswerk0,004 USDC
delivery note json
POSThttps://handel.halowerk.com/v1/delivery-note-jsonAdds structured delivery-note extraction alongside the existing invoice extractor and purchase-order matcher; does not duplicate invoice-extract or filing-to-json. Strict namespace-aware XML parsing, no model or foreign API. Only supplied s