Ähnlichen Kontakt als andere Firma markieren
Benötigte Berechtigung:contacts:write(Kontakte anlegen und ändern)
Echte Wirkung
/api/contact/{id}/similar/dismissKein Testversand aus der Dokumentation: Dieser Aufruf ist nicht als rein lesend gekennzeichnet. Nutze das Codebeispiel.
Sagt, dass die Kontakte contactId und {id} verschiedene Firmen oder Personen sind, etwa zwei Privatkunden mit gleichem Namen. Das entspricht dem Link „Nicht dieselbe“ im Hinweis der App. Lassen sich keine Belege mehr verschieben, heißt derselbe Link dort „Hinweis ausblenden“. Der Aufruf blendet nur den Hinweis an beiden Kontakten aus. Er lässt sich deshalb auch nutzen, wenn es dieselbe Firma ist und sich nichts mehr zusammenführen lässt. Danach steht keiner der beiden mehr in der Liste des anderen (GET /api/contact/{id}/similar). Die Antwort ist die Liste, die für {id} übrig bleibt. Kontakte und Belege ändern sich nicht, auch nicht das updatedAt der Kontakte. Ein zweiter Aufruf mit demselben Paar ändert nichts. Zurücknehmen lässt sich die Markierung nicht, auch nicht in der App; zusammenführen lassen sich die beiden weiter mit POST /api/contact/{id}/merge. Fehlt contactId oder ist es die ID von {id} selbst, antwortet die API mit 400 InvalidContactWrite. Gibt es in der eigenen Firma keinen Kontakt mit einer der beiden IDs, antwortet sie mit 404.
Benötigt einen Schlüssel mit der Berechtigung contacts:write.
AuthentifizierungBearer <bm_…>Empfohlen: Authorization: Bearer bm_…. Der Schlüssel wird nur einmal angezeigt; nie in URLs, Logs oder Frontend-Code ablegen.
id*stringID des Kontakts (UUID).
uuidIdempotency-Key*stringStabiler Schlüssel für genau diese Änderung: 1–128 druckbare ASCII-Zeichen ohne Leerzeichen. Bei Wiederholungen denselben Schlüssel und unveränderten Inhalt senden; das Ergebnis wird nicht nochmals erzeugt.
^[!-~]+$1 <= length <= 128application/json- body
Der ähnliche Kontakt, der als andere Firma oder Person markiert wird.
contactId?stringID des ähnlichen Kontakts: das Feld id eines Eintrags aus GET /api/contact/{id}/similar.
uuidErfolg.
application/json- response
[index: integer]?Ein ähnlicher Kontakt.
curl --fail-with-body "https://app.bimetrics.de/api/contact/497f6eca-6276-4993-bfeb-53cbbbba6f08/similar/dismiss" \ -H "Authorization: Bearer $BIMETRICS_API_KEY" \ -H "Idempotency-Key: rechnung-2026-001" \ -H "Content-Type: application/json" \ -d '{}'[]Ähnliche Kontakte lesen GET
Liefert bis zu fünf andere Kontakte, die nach denselben Regeln wie bei der Zuordnung neuer Belege dieselbe Firma sein könnten, den ähnlichsten zuerst. Die App zeigt sie im Kontakt als Hinweis „Es gibt einen ähnlichen Kontakt“. Eine andere USt-IdNr. oder eine andere Rechtsform auf beiden Seiten schließt einen Kontakt aus, eine andere Postleitzahl oder eine Rechtsform nur auf einer Seite nicht. Gehören zwei Kontakte zur selben Firma, verschiebt `POST /api/contact/{id}/merge` die Belege des Kontakts `{id}` zum Kontakt `targetContactId`. `sourceId` und `targetId` nennen die Richtung, die die App dafür nimmt: vom Kontakt mit weniger Belegen zum Kontakt mit mehr. `movable` gibt an, wie viele Belege sich dabei verschieben lassen. Ist der Wert 0 und bleiben alle Belege endgültig, nennt `blockedBy` den häufigsten Grund: `exported` oder `issued`, `deleted` nur, wenn alle Belege storniert sind. Sonst fehlt das Feld, und die Vorschau nennt die Gründe. Kontakte, die als andere Firma markiert sind, in der App mit „Nicht dieselbe“ oder mit `POST /api/contact/{id}/similar/dismiss`, stehen nicht in der Liste. Benötigt einen Schlüssel mit der Berechtigung `contacts:read` oder `read`.
Bankzugänge lesen GET
Liefert je Bankkonto den Stand des Bankzugangs, über den seine Umsätze kommen, wie die App unter Einstellungen › Bank. Läuft er ab (`validUntil`) oder steht er auf `reconnect_required` oder `expired`, kommen keine neuen Umsätze, bis jemand ihn in der App erneuert. Bankkonten ohne Bankzugang fehlen. Benötigt einen Schlüssel mit der Berechtigung `read`.