Skip to content

Check the mandatory details

Before an incoming invoice goes to approval, the card “Check invoice” with “Check mandatory details” checks, as a hint and no legal review, the mandatory details of § 14 (4) UStG, with no script and no AI call: that the invoice number, the invoice date, the gross total, the net and tax lines, the vendor’s and the recipient’s name and address, the delivery or service date, the quantity and kind of the goods or services, the tax number (without a VAT ID) and, on an invoice without tax, a tax exemption or reverse-charge note are there, and that the sum, the VAT ID’s format, the IBAN, the currency and a price reduction it mentions are plausible. It compares the recipient with your company’s name and address. When something is open or different (“Incomplete”), accounting clears it up first: its task shows the hint of what is missing. The hint is no legal review, and “Complete” approves nothing.

The workflow starts for every document of the type incoming-invoice. Its file workflow.yaml:

$schema: 'https://docs.acriva.de/schemas/workflow.schema.json'
format: 1
schemaVersion: 7
sdk: '1.0.0'
key: mandatory-details
name: Pflichtangaben prüfen
template: custom
trigger:
documentType: incoming-invoice
fields: []
start: details
steps:
- kind: invoiceCheck
name: details
label: Pflichtangaben prüfen
check: mandatoryDetails
next: approval
onDeviation: clarify
- kind: humanTask
name: clarify
label: Pflichtangaben klären
taskKind: review
assignees: []
fallback:
kind: role
role: Buchhaltung
options:
excludeRequester: false
excludeActorsOfSteps: []
pickFile: false
next: approval
onRejected: rejected
- kind: humanTask
name: approval
label: Freigabe
taskKind: approve
assignees: []
fallback:
kind: role
role: Geschäftsführung
options:
excludeRequester: true
excludeActorsOfSteps: []
pickFile: false
next: approved
onRejected: rejected
- kind: end
name: approved
label: Freigegeben
outcome: approved
- kind: end
name: rejected
label: Zurückgewiesen
outcome: rejected