Kontakte per Telefonnummer finden
Telefonnummern werden in Codemeta OS beim Speichern in internationale Notation
gebracht (+49 6561 60040). Damit Sie einen Kontakt trotzdem in jedem
Wählformat wiederfinden, führt die API neben der angezeigten Nummer einen
kanonischen, trennzeichenfreien Suchschlüssel (phoneDigits) — auf ihn zielen
beide hier gezeigten Wege.
Weg 1 — Exakte Suche (GET /parties?phoneDigits=)
Der direkte Weg, wenn Sie genau die Partei(en) mit einer bestimmten Nummer brauchen — programmatisch, ohne Ranking, ohne Teiltreffer.
Anmelden und Mandanten setzen (siehe Erstes Ticket, Schritte 1–2).
export TENANT="0192f2c0-8d1c-7a3b-9e4f-d3e7f1a2b5c8"Nach der Nummer filtern. Übergeben Sie die Nummer in beliebigem Format als
phoneDigits:curl -G https://os.codemeta.de/api/v1/parties \ -H "X-Tenant-Id: $TENANT" \ -b cookies.txt \ --data-urlencode "phoneDigits=004965616004388"Antwort lesen. Zurück kommt die normale Listenantwort — nur die Parteien, die exakt diese Nummer tragen (kein Suffix, keine Teiltreffer):
{ "data": [ { "id": "0193a1b2-…", "partyType": "PERSON", "displayName": "Berthold Marx", "contactChannels": [ { "type": "MOBILE", "value": "+49 6561 6004388" } ] } ], "meta": { "nextCursor": null, "hasMore": false, "limit": 50, "total": null } }
Brauchen Sie stattdessen die Beziehungskante selbst (mit personPartyId /
organizationPartyId), filtern Sie dieselbe Nummer auf den Beziehungen:
curl -G https://os.codemeta.de/api/v1/party_relationships \
-H "X-Tenant-Id: $TENANT" \
-b cookies.txt \
--data-urlencode "phoneDigits=004965616004388"
Weg 2 — Tolerante Suche (GET /search)
Der Weg für Anrufer-Erkennung und die Kommandopalette: er verzeiht Wählformatvarianten und Ländercode-Unterschiede und liefert nach Relevanz sortiert (exakte Nummerntreffer zuerst).
curl -G https://os.codemeta.de/api/v1/search \
-H "X-Tenant-Id: $TENANT" \
-b cookies.txt \
--data-urlencode "q=0049656160040" \
--data-urlencode "entities=parties"
Eine als telefonartig erkannte Anfrage (mindestens sechs Ziffern, nur Telefonzeichen) matcht über den kanonischen Ziffernschlüssel: Ein exakter Nummerntreffer wird nach oben gereiht, zusätzlich sorgt ein Abgleich der letzten acht Ziffern für Ländercode-Toleranz. Die Antwort ist nach Entitätstyp gruppiert:
{
"query": "0049656160040",
"results": {
"parties": [
{ "id": "0193c4d5-…", "displayName": "Autohaus Eifel-Mosel GmbH", "partyType": "ORGANIZATION" }
]
},
"totalGroups": 1
}
Welcher Weg wann?
| Kriterium | GET /parties?phoneDigits= |
GET /search |
|---|---|---|
| Trefferart | exakte Nummer | tolerant (exakt zuerst, dann Suffix) |
| Sortierung | Listensortierung (sort) |
Relevanz |
| Beziehungsnummern | ja (→ Person) | ja (→ Person) |
| Paginierung / Filter | volle Listenfeatures | pro Gruppe begrenzt (max. 100) |
| Typischer Einsatz | Integration, Abgleich | Kommandopalette, Anrufer-Erkennung |
Wie geht’s weiter?
- Partei anlegen – die Nummern landen in
contactChannelsmit TypPHONE,MOBILEoderFAX. - Konzept: Multi-Tenancy – warum jeder Request den
X-Tenant-Id-Header braucht.