Skip to content

Folder sync

A job watches an inbound folder, converts every incoming invoice to the configured target format and files it in the outbound folder. Several jobs run in parallel. This is the local answer to “many files” — and the only tool that works without intervention.

Field Meaning
Name freely chosen; left empty, the inbound path appears in the list
Inbound is watched
Outbound where the result is filed
Error folder where anything unprocessable is moved
Target format XRechnung, ZUGFeRD, …
“Write even when there are findings” default off: an invalid invoice stays put rather than delegating the fault to the recipient. Can be switched off if the target system validates for itself
Active whether the job is currently running

All three folders must be set, and the outbound folder must not sit inside the inbound one — otherwise the job consumes itself.

What ensures reliability behind the scenes

Section titled “What ensures reliability behind the scenes”
Measure Why
Stability window (2 s) A file watcher reports when a file is created, not when it is complete. Without a wait, half-finished uploads would be processed — the large ones by preference. Both size and timestamp must stay constant
A polling pass (10 s) alongside the watcher On network drives (SMB) the watcher reports unreliably; on macOS events are lost under heavy load
Atomic writing a temporary file, then a rename — at the far end of the outbound folder there is usually another watcher sitting
Duplicate protection via a content hash but only successful passes count; otherwise a single failure would be final
Error folder leaving an unprocessable file in the inbound folder would mean retrying it on every pass — the one broken file would mask all those behind it

At the same time it is the log you actually want: per file the name, the content hash, the outcome (converted, failed, rejected, duplicate), the reason or the detected source format, the name of the generated file and the time. It sits as a SQLite file next to the settings.