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
Section titled “The workflow”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: 1schemaVersion: 7sdk: '1.0.0'key: mandatory-detailsname: Pflichtangaben prüfentemplate: customtrigger: documentType: incoming-invoicefields: []start: detailssteps: - 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