Das PostService-Plugin von JAXForms liefert in Adressfeldern Vorschläge für PLZ, Ort und Strasse. Es führt dazu keine eigene Adressliste, sondern fragt bei jeder Eingabe live den Adress-Webservice der Schweizerischen Post ab und übernimmt die gelieferten Werte unverändert ins Formular.
Diese Seite beschreibt den verwendeten Webservice, die Struktur von Request und Answer sowie Beispiele für die drei Suchen PLZ, Ort und Strasse.
Allgemeine Informationen
| Thema | Angabe |
|---|---|
| Anbieter | Post CH AG, Produkt «Adress Web Services» (Adressassistent) |
| Schnittstelle | REST/JSON über HTTPS |
| Methode für Vorschläge | POST /autocomplete2 (QueryAutoComplete2) |
| URL Produktion | https://webservices.post.ch:17023/IN_SYNSYN_EXT/REST/v1 |
| URL Integration | https://webservices-int.post.ch:17023/IN_SYNSYN_EXT_INT/REST/v1 |
| URL Test | https://webservices-int.post.ch:17029/IN_SYNSYN_EXT_TEST/REST/v1 (enthält laut Post nur rund 130'000 veraltete Referenzdatensätze aus ausgewählten PLZ-Gebieten) |
| Datengrundlage | Referenzdaten der Post («Swiss Post reference data»). Enthalten sind nur postalisch bediente Strassen und Gebäude der Schweiz und des Fürstentums Liechtenstein. |
Quelle der Angaben
Technische Spezifikation «Address web services REST» im Entwicklerportal der Post (Kapitel 4.4, 4.6, 7, 8, 9 und 11). Stand: 12.11.2026 sind die Seiten unter developer.post.ch nicht erreichbar; gelesen wurden die archivierten Fassungen vom 21.05.2026 und 10.06.2026.
https://web.archive.org/web/20260521015423/https://developer.post.ch/en/address-web-services-rest
Schnittstelle
Request
request*: {
HouseKey*: Zahl
HouseNumber*: Text
HouseNumberAddition*: Text
Onrp*: Zahl
Streetname*: Text
StrId*: Zahl
TownName*: Text
ZipAddition*: Text
Zipcode*: Text
}
zipOrderMode*: Zahl
| Feld | Typ | Vom Plugin befüllt | Beschreibung |
|---|---|---|---|
Zipcode | Text | ✔ | PLZ oder Anfang einer PLZ. Suchbegriff der PLZ-Suche, Einschränkung bei der Strassensuche. |
TownName | Text | ✔ | Ortsname oder Wortanfang davon. Suchbegriff der Ortssuche. |
Streetname | Text | ✔ | Strassenname oder Wortanfang davon. Suchbegriff der Strassensuche. |
HouseNumber | Text | ❌ | Hausnummer. Bleibt leer. |
HouseNumberAddition | Text | ❌ | Hausnummer-Zusatz. Bleibt leer. |
ZipAddition | Text | ❌ | PLZ-Zusatzziffer. Bleibt leer. |
Onrp | Zahl | ❌ | Ordnungsnummer Post (Schlüssel von PLZ/Ort). Immer 0. |
StrId | Zahl | ❌ | Schlüssel der Strasse. Immer 0. |
HouseKey | Zahl | ❌ | Schlüssel des Gebäudes. Immer 0. |
zipOrderMode | Zahl | ✔ | Sortierung der Treffer. Das Plugin sendet immer 0. |
Anmerkung: Das Plugin sendet immer alle Felder. Nicht verwendete Textfelder sind leer, nicht verwendete Schlüssel haben den Wert 0.
Answer
QueryAutoComplete2Result*: {
AutoCompleteResult*: [ {
HouseKey*: Zahl
HouseNumber*: Text
HouseNumberAddition*: Text
Onrp*: Zahl
StrId*: Zahl
Streetname*: Text
TownName*: Text
ZipAddition*: Text
Zipcode*: Text
} ]
Status*: Zahl
}
| Feld | Typ | Beschreibung |
|---|---|---|
Zipcode | Text | Vierstellige PLZ. |
ZipAddition | Text | PLZ-Zusatzziffer (fünfte und sechste Stelle). Unterscheidet gleichlautende vierstellige PLZ. |
TownName | Text | Ortsbezeichnung. JAXForms schreibt sie unverändert ins Ort-Feld. |
Onrp | Zahl | Ordnungsnummer Post. Eindeutiger, unveränderlicher Schlüssel von PLZ/Ort. |
Streetname | Text | Strassenname in der Schreibweise der Post. Leer bei Treffern auf Ortsebene. |
StrId | Zahl | Schlüssel der Strasse. 0 bei Treffern auf Ortsebene. |
HouseKey | Zahl | Schlüssel des Gebäudes. 0 bei Treffern auf Orts- oder Strassenebene. |
HouseNumber, HouseNumberAddition | Text | Hausnummer und Zusatz. Leer bei Treffern auf Orts- oder Strassenebene. |
Status | Zahl | 0 = Abfrage erfolgreich. Weitere Werte siehe «Verhaltensregeln». |
Verhaltensregeln
Suchebene
Die Suchebene (Ort, Strasse oder Gebäude) wird nicht über einen Parameter gewählt. Sie ergibt sich daraus, welche Felder im Request gefüllt sind.
| Suche im Plugin | Suchtyp | Gefüllte Felder | Treffer |
|---|---|---|---|
| PLZ | PLZ | Zipcode = Eingabe | Orte mit passender PLZ |
| Ort | ORT | TownName = Eingabe | Orte mit passendem Namen |
| Strasse | STRASSE | Streetname = Eingabe, Zipcode = Wert des PLZ-Felds im Formular | Strassen im Gebiet der PLZ |
Beispiel-Daten
Alle Requests gehen per POST an {BASIS_URL}/autocomplete2.
PLZ
Request: PLZ-Suche mit «1374»
{
"request" : {
"HouseKey" : 0,
"HouseNumber" : "",
"HouseNumberAddition" : "",
"Onrp" : 0,
"Streetname" : "",
"StrId" : 0,
"TownName" : "",
"ZipAddition" : "",
"Zipcode" : "1374"
},
"zipOrderMode" : 0
}
Answer: ein Ort, Ortsbezeichnung mit 23 Zeichen
{
"QueryAutoComplete2Result" : {
"AutoCompleteResult" : [ {
"HouseKey" : 0,
"HouseNumber" : "",
"HouseNumberAddition" : "",
"Onrp" : 588,
"StrId" : 0,
"Streetname" : "",
"TownName" : "Corcelles-sur-Chavornay",
"ZipAddition" : "00",
"Zipcode" : "1374"
} ],
"Status" : 0
}
}
Request: PLZ-Suche mit «2206»
{
"request" : {
"HouseKey" : 0,
"HouseNumber" : "",
"HouseNumberAddition" : "",
"Onrp" : 0,
"Streetname" : "",
"StrId" : 0,
"TownName" : "",
"ZipAddition" : "",
"Zipcode" : "2206"
},
"zipOrderMode" : 0
}
Answer: ein Ort, Ortsbezeichnung mit 25 Zeichen
{
"QueryAutoComplete2Result" : {
"AutoCompleteResult" : [ {
"HouseKey" : 0,
"HouseNumber" : "",
"HouseNumberAddition" : "",
"Onrp" : 1359,
"StrId" : 0,
"Streetname" : "",
"TownName" : "Les Geneveys-sur-Coffrane",
"ZipAddition" : "00",
"Zipcode" : "2206"
} ],
"Status" : 0
}
}
Ort
Request: Ortssuche mit «Les Gen» (aus dem Code abgeleitet, nicht aufgezeichnet)
{
"request" : {
"HouseKey" : 0,
"HouseNumber" : "",
"HouseNumberAddition" : "",
"Onrp" : 0,
"Streetname" : "",
"StrId" : 0,
"TownName" : "Les Gen",
"ZipAddition" : "",
"Zipcode" : ""
},
"zipOrderMode" : 0
}
Answer
[OFFEN: Answer der Ortssuche aus dem Debugging aufzeichnen und hier einfügen. Erwartet wird dieselbe Struktur wie bei der PLZ-Suche: Treffer auf Ortsebene mit leerem Streetname und StrId 0.]
Strasse
Request: Strassensuche mit «frankl», eingeschränkt auf die PLZ 8050 aus dem Formular
{
"request" : {
"HouseKey" : 0,
"HouseNumber" : "",
"HouseNumberAddition" : "",
"Onrp" : 0,
"Streetname" : "frankl",
"StrId" : 0,
"TownName" : "",
"ZipAddition" : "",
"Zipcode" : "8050"
},
"zipOrderMode" : 0
}
Answer: eine Strasse, mit Schlüssel der Strasse und des Orts
{
"QueryAutoComplete2Result" : {
"AutoCompleteResult" : [ {
"HouseKey" : 0,
"HouseNumber" : "",
"HouseNumberAddition" : "",
"Onrp" : 4468,
"StrId" : 66043,
"Streetname" : "Franklinstrasse",
"TownName" : "Zürich",
"ZipAddition" : "00",
"Zipcode" : "8050"
} ],
"Status" : 0
}
}