# Ähnlichen Kontakt als andere Firma markieren (https://developer.bimetrics.de/reference/contacts/dismiss-similar-contact)

`POST https://app.bimetrics.de/api/contact/{id}/similar/dismiss`

operationId: `dismissSimilarContact` · Berechtigung (Scope): `contacts:write` · Bereich: Kontakte

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`.

> **Achtung:** Ändert Daten der Firma; wird atomar mit Idempotenzbeleg und Herkunft protokolliert.
>
> KI-Agenten fragen vor diesem Aufruf beim Nutzer nach.

### Authentifizierung

`Authorization: Bearer bm_…` (alternativ `X-API-KEY: bm_…`, nie beide zugleich).

### Parameter

| Name | Ort | Pflicht | Typ | Beschreibung |
| --- | --- | --- | --- | --- |
| `id` | path | ja | string (uuid) | ID des Kontakts (UUID). |
| `Idempotency-Key` | header | ja | string | Stabiler 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. |

### Request-Body (`application/json`)

 

Schema `DismissSimilarBody`.

| Feld | Typ | Beschreibung |
| --- | --- | --- |
| `contactId` | string (uuid) | ID des ähnlichen Kontakts: das Feld `id` eines Eintrags aus `GET /api/contact/{id}/similar`. |

### Beispiel

```sh
curl --fail-with-body "https://app.bimetrics.de/api/contact/{id}/similar/dismiss" \
  -H "Authorization: Bearer $BIMETRICS_API_KEY" \
  -H "Idempotency-Key: rechnung-2026-001" \
  -H "Content-Type: application/json" \
  -d '{"kind":"and","children":[],"limit":50,"offset":0}'
```

### Antworten

| Status | Beschreibung | Inhalt |
| --- | --- | --- |
| 200 | Erfolg. | `application/json`: Array<SimilarContact> |
| 400 | Ungültige Anfrage, z. B. ein Parameter mit ungültigem Wert wie eine ID, die keine UUID ist; korrigieren statt wiederholen. Mehr unter [Fehler](https://developer.bimetrics.de/errors). | `application/json`: Error |
| 401 | Kein gültiger Schlüssel: fehlt (`Unauthorized`), ist unbekannt, abgelaufen oder widerrufen oder wurde nicht in genau einem Header gesendet (`InvalidAPIKey`). Schlüssel prüfen, nicht wiederholen. Auch eine ID, die zu einer anderen Firma gehört, ergibt `401 Unauthorized`. | `application/json`: Error |
| 403 | Dem Schlüssel fehlt die Berechtigung für diese Route (`APIKeyPermissionDenied`), oder die Firma hat keinen API-Zugang (mehr), etwa nach Ende der Testphase oder des Abos (`APIUnavailable`). | `application/json`: Error |
| 404 | Nicht gefunden (`NotFound`). | `application/json`: Error |
| 409 | Versionskonflikt (`VersionConflict`), abweichender Inhalt für denselben Idempotency-Key (`IdempotencyConflict`), Dublette (`ContactDuplicate`) oder fachlich gesperrte Änderung. Aktuellen Zustand laden und prüfen; keinen anderen Schlüssel verwenden, um einen Konflikt zu umgehen. | `application/json`: Error |
| 413 | Die Anfrage ist zu groß (`APIRequestTooLarge`), siehe `x-bimetrics-limits`. | `application/json`: Error |
| 429 | Zu viele Anfragen; nach `Retry-After` Sekunden erneut senden. Mehr unter [Fehler](https://developer.bimetrics.de/errors). (Header: Retry-After) | `application/json`: Error |
| 500 | Serverfehler; die Anfrage später wiederholen. Mehr unter [Fehler](https://developer.bimetrics.de/errors). | `application/json`: Error |

#### Felder der Antwort 200

Array aus `SimilarContact`.

| Feld | Typ | Beschreibung |
| --- | --- | --- |
| `blockedBy` | string | Nur bei `movable` 0, wenn alle Belege endgültig bleiben: `exported`, `issued` oder, wenn alle storniert sind, `deleted`. Bei einem behebbaren Grund fehlt das Feld. |
| `companyName` | string | Name des Kontakts. |
| `customerNumber` | integer | Kontaktnummer. |
| `documentCount` | integer | Anzahl der Belege des Kontakts. |
| `id` | string (uuid) | ID des Kontakts. |
| `movable` | integer | Belege, die sich dabei verschieben ließen, nach denselben Prüfungen wie die Vorschau, ohne die Buchungsvorschau. Hat `sourceId` mehr als 50 Belege, zählen alle. |
| `sourceId` | string (uuid) | Kontakt, dessen Belege beim Zusammenführen wandern: `{id}` von `POST /api/contact/{id}/merge`. |
| `targetId` | string (uuid) | Kontakt, zu dem sie wandern: `targetContactId`. |
| `type` | string | Kontakttyp: `customer`, `supplier` oder `partner`. |

Verschachtelte Schemas stehen vollständig in der OpenAPI-Beschreibung: https://app.bimetrics.de/api/openapi.json
