BGM+312) when the Geschäftsvorfall
is free of errors, a Verarbeitbarkeitsfehlermeldung (BGM+313) when it
is not. APERAK AHB 1.1 (01.04.2026), ch. 2.4:
Das Ergebnis der Verarbeitbarkeitsprüfung aller in einer Übertragungsdatei enthaltenen Geschäftsvorfälle hat der Empfänger der Übertragungsdatei dem Absender unverzüglich, jedoch spätestens bis zum nächsten Werktag 12 Uhr gesetzlicher deutscher Zeit nach Eingang der Übertragungsdatei, per APERAK mitzuteilen […]Saying nothing is not one of the options. Two deadlines apply:
This is the mirror image of what the bridge already receives: the positive
APERAKs partners send for our PARTIN and Zuordnungsermächtigung messages are
their side of the same obligation.
What the bridge sends
One APERAK per Geschäftsvorfall, bundled into a single interchange back to the sender (AHB ch. 2.2.1):RFF+ACE— the interchange reference of the message being answered, withDTM+171carrying that interchange’s UNB clock.RFF+AGO— the document number (BGM1004) of the answered message.RFF+TN— the Vorgangsnummer, only for IFTSTA, INSRPT, UTILMD and UTILTS (condition [16]). A UTILMD with 20 Vorgängen is therefore answered by 20 Anerkennungsmeldungen in one envelope; a PARTIN, which has no Vorgänge, by exactly one withoutRFF+TN.NAD+MS/NAD+MRwith each party’s own code-list qualifier (293 BDEW, 9 GS1) — as everywhere else in the bridge.
Only the positive answer is automated
A message the bridge cannot even parse is not auto-rejected. Guessing an error code produces a wrong rejection, which is worse for the partner than a late one — so such a message raises anaperak_needs_review warning for a
human instead, and no BGM+313 is invented. Negative answers stay a
deliberate act.
Running it
The loop rides on the 15-minute orchestrator (AUTO_APERAK, on by default),
which leaves head-room even against the 45-minute UTILMD deadline. Each
interchange is acknowledged once; the ledger aperak_sent.json in the audit
share keys on MakoFlow’s message id.
In the console the PARTIN tab has Empfangene Nachrichten quittieren:
Prüfen lists what is open, Prüfen & quittieren sends. Over the API:
late), and how many are left for the next run (remaining,
capped by APERAK_MAX_PER_RUN so a backlog cannot stall the orchestrator).