bimetricsEntwickler
Forderungen und Mahnungen

Mehrere Mahnungs-PDFs als ZIP laden

Als Markdown ansehen

Benötigte Berechtigung:sales:read(Ausgangsrechnungen und Entwürfe lesen)

GET
/api/reminder/pdfs

Liefert die gespeicherten Original-PDFs von bis zu 50 ausgestellten oder zurückgezogenen Mahnungen in einer ZIP-Datei, mit denselben Bytes wie downloadReminderPDF. Mehr als 50 IDs: 400 BulkLimitExceeded. Ist eine Mahnung ein Entwurf, antwortet die Route mit 400; fehlt eine oder gehört sie zu einer anderen Firma, mit 404. Dann gibt es keine ZIP-Datei. Es wird nichts versendet.

Benötigt einen Schlüssel mit der Berechtigung sales:read oder read.

Authentifizierung

headerAuthentifizierungBearer <bm_…>

Empfohlen: Authorization: Bearer bm_…. Der Schlüssel wird nur einmal angezeigt; nie in URLs, Logs oder Frontend-Code ablegen.

Query-Parameter

ids*string

1 bis 50 kommagetrennte IDs ausgestellter Mahnungen dieser Firma; Wiederholungen zählen mit, stehen in der Datei aber nur einmal.

Antworten

Eine ZIP-Datei mit dem Original-PDF jeder Mahnung, benannt nach ihrer Nummer, etwa MA-2026-0001.pdf.

response?unknownapplication/zip
Beispielanfrage
curl --fail-with-body "https://app.bimetrics.de/api/reminder/pdfs?ids=string" \  -H "Authorization: Bearer $BIMETRICS_API_KEY"
Beispielantwort
null

Mehrere Rechnungen auf einmal mahnen POST

Stellt für bis zu 25 überfällige Rechnungen je eine Mahnung der nächsten Stufe aus, wie der Mahnlauf in der App: Frist, Text und Mahngebühr aus den Einstellungen der Stufe, Verzugszinsen und Pauschale nach den Schaltern der Firma, Ausstellungsdatum heute. Jede Mahnung bekommt Nummer, Original-PDF und Forderungssnapshot wie bei `issueReminder`. Keine Buchung, kein Versand. Übersprungen werden stornierte Rechnungen (`cancelled`), solche mit ungeklärter Zahlung (`payment_unknown`), bezahlte (`settled`), mit Mahnsperre (`reminder_hold`), ohne Fälligkeit (`due_date_missing`), nicht überfällige (`not_overdue`), mit laufender Frist einer ausgestellten Mahnung (`active_reminder`), in den 3 Tagen danach (`reminder_wait`, siehe `remindAgainOn`), nach der 3. Mahnung (`levels_done`) und mit offenem Mahnungsentwurf (`open_draft`). Dazu `not_found` und `not_previewed`. Höchstens 25 Rechnungen je Aufruf (`400 BulkLimitExceeded`). Die Antwort nennt je Rechnung, was geschah: `change` ausgestellt, `skipped` mit Grund übersprungen, `failed` mit Code abgelehnt. Das ist ein Teilerfolg wie in der App, die Route antwortet mit `200`. Mit `dryRun` stellt sie nichts aus und zeigt Stufe, Frist und Beträge mit einer `version` je Rechnung. Zum Ausstellen gibst du diese als `expectedVersions` zurück, sonst antwortet die Route mit `400 ExpectedVersionRequired`. Es wird nur ausgestellt, was unter `change` stand und noch so aussieht: Hat sich eine Rechnung seit dem `dryRun` geändert, oder wären ihre Beträge heute andere (etwa nach Mitternacht), kommt sie mit `VersionConflict` in `failed`; die übrigen laufen. Jede Rechnung läuft als eigener Befehl mit eigenem Eintrag im Protokoll und zählt einzeln auf die Tagesgrenzen der Firma und der Testphase. Ein Idempotency-Key gilt für den ganzen Lauf, auch über mehrere Aufrufe: Eine Wiederholung stellt nichts doppelt aus und erledigt, was noch offen ist. `OutcomeUnknown` heißt, die Mahnung kann schon ausgestellt sein; eine Wiederholung mit demselben Key klärt das. Benötigt einen Schlüssel mit der Berechtigung `invoices:draft`.

Frist, Text und Gebühren der Mahnstufen lesen GET

Liefert für die Stufen 0 bis 3 Titel, Frist in Tagen, Text und Mahngebühr, mit denen neue Mahnungen beginnen, dazu die erlaubten Platzhalter, die Schalter für Verzugszinsen und Pauschale und den heute gültigen Basiszinssatz. Benötigt einen Schlüssel mit der Berechtigung `sales:read` oder `read`.