bimetricsEntwickler
Zuordnungen

Skonto einer Zuordnung prüfen

Als Markdown ansehen

Benötigte Berechtigung:read(Daten lesen)

GET
/api/match/{id}/cash-discount-preview

Sagt, ob sich der offene Betrag einer Zuordnung als Skonto ausgleichen lässt, und liefert, was der Nutzer vorher bestätigt: Belegnummer, Verwendungszweck, Belegbetrag, Zahlung, Skonto und Prozent. reference.otherNumbers nennt Nummern im Verwendungszweck, die wie eine Belegnummer aussehen, wenn die eigene dort fehlt: Die Zahlung kann zu einem anderen Beleg gehören. Es gilt dieselbe Prüfung wie beim ersten Zuordnen: ein gebuchter Euro-Umsatz und genau ein Beleg, bei erhaltenem Skonto auch mehrere Eingangsbelege desselben Lieferanten mit einem Steuersatz; höchstens 5 % Differenz und keine ausgeschlossene Kategorie oder Steuerart. Bei mehreren Belegen nennt cashDiscount.documents den Anteil jedes Belegs, anteilig nach Betrag, und reference.documents ihre Nummern. Liegt die Zahlung höchstens 5 % unter den Eingangsbelegen und gibt es trotzdem kein Skonto, sagt reason warum: supplier, category, taxRates oder documentAmount. Ist der Beleg in einer Fremdwährung und fehlt sein Euro-Betrag noch, ist die Differenz meist der Wechselkurs: dann kein Skonto (CashDiscountForeignCurrency). Passt die Zuordnung nicht, antwortet die API mit eligible: false und nennt in refusal den Code. Verändert nichts.

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

Authentifizierung

headerAuthentifizierungBearer <bm_…>

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

Pfadparameter

id*string

ID des Objekts in dieser Firma (UUID).

Formatuuid

Antworten

Erfolg.

application/json
  1. response

Ob sich der offene Betrag einer Zuordnung als Skonto ausgleichen lässt, und was das bucht. Speichert nichts.

cashDiscount?

Das Skonto, das bimetrics buchen würde: basisAmount ist der Belegbetrag, payableAmount die Zahlung.

eligible?boolean

True, wenn settleMatchCashDiscount das Skonto jetzt ausgleichen kann.

expectedVersions?

Für settleMatchCashDiscount, unverändert.

exportedBookings?boolean

True, wenn beteiligte Buchungen schon an DATEV exportiert sind. Über die API steht eligible dann auf false. In der App bleiben die Buchungen stehen, und das Skonto kommt mit dem Datum der Zahlung dazu. DATEV bekommt es erst, wenn der Monat der Zahlung noch einmal exportiert wird.

finalizedBookings?boolean

True, wenn beteiligte Buchungen festgeschrieben sind. Sie bleiben stehen, Storno und Neubuchung entstehen nur, wenn sich für DATEV etwas ändert. Das Skonto ist eine neue Buchung im Monat der Zahlung; eine schon abgegebene Umsatzsteuer-Voranmeldung für diesen Monat kann eine Berichtigung brauchen.

reason?string

Bei eligible: false, obwohl die Zahlung höchstens 5 % unter den Eingangsbelegen liegt: warum es kein Skonto gibt, supplier (verschiedene Lieferanten oder kein Kontakt), category (eine Position ohne Skonto, etwa Gebühren), taxRates (mehrere Belege mit verschiedenen Steuersätzen) oder documentAmount (die Differenz entspricht genau einem Beleg).

reference?

Was der Nutzer vor dem Bestätigen vergleicht.

refusal?string

Bei eligible: false: der Fehlercode, mit dem der Aufruf abgelehnt würde.

Beispielanfrage
curl --fail-with-body "https://app.bimetrics.de/api/match/497f6eca-6276-4993-bfeb-53cbbbba6f08/cash-discount-preview" \  -H "Authorization: Bearer $BIMETRICS_API_KEY"
Beispielantwort
{  "cashDiscount": {    "basisAmount": 11900,    "days": 10,    "deadline": {      "day": 11,      "month": 9,      "year": 2026    },    "discountAmount": 238,    "payableAmount": 11662,    "percent": "2",    "taxBreakdown": [      {        "basisAmount": 11900,        "netAmount": 10000,        "rate": "19",        "taxAmount": 1900,        "taxCategory": "S"      }    ]  },  "eligible": true,  "expectedVersions": {    "e21b3d18-17ea-4318-810c-919ec0a94dcb": "0e8ca8e3db88d8d5b74c965d0e17598a5909240c88376e0b0a4a23e53ee9356f"  },  "exportedBookings": false,  "finalizedBookings": false,  "reference": {    "documentNumber": "RE-2026-0142",    "paymentReference": "Rechnung RE-2026-0142"  }}

Offenen Betrag einer Zuordnung als Skonto ausgleichen POST

Gleicht den offenen Betrag einer Zuordnung als Skonto aus, wie „als Skonto ausgleichen“ in der App, ohne sie vorher aufzuheben. Eine Differenz allein beweist kein Skonto: Rufe das erst auf, wenn der Nutzer die Werte aus `previewMatchCashDiscount` bestätigt hat. bimetrics ersetzt die Zuordnung in einem Schritt durch eine neue über dieselben Belege und denselben Umsatz und bucht das Skonto mit anteiliger Steuerkorrektur wie beim ersten Zuordnen; `replacedMatchId` nennt die alte. Belegbetrag und Steuerangaben bleiben, der offene Betrag ist danach null. `expectedVersions` kommt unverändert aus `previewMatchCashDiscount`. Eine Wiederholung mit gleichem Schlüssel bucht nichts erneut. Nicht möglich, wenn die Zuordnung nicht passt oder schon ein Skonto ausgeglichen hat (`400 CashDiscountNotEligible`), bei einem Beleg in Fremdwährung, dessen Euro-Betrag noch fehlt (`400 CashDiscountForeignCurrency`), und wenn Buchungen schon an DATEV exportiert sind (`409 FinalizedBookingsLocked`). Andere festgeschriebene Buchungen bleiben stehen; storniert und neu gebucht werden sie nur, wenn sich für DATEV etwas ändert. Benötigt einen Schlüssel mit der Berechtigung `matching:write`.

Aufheben einer Zuordnung prüfen GET

Liefert die aktuellen Versionsbedingungen und IDs der Serienbelege, die beim Aufheben gelöscht würden. Verändert nichts. Prüfe die betroffenen Belege vor DELETE und sende expectedVersions unverändert. Benötigt einen Schlüssel mit der Berechtigung `read`.