Anleitungen

Eine Adresse mit ihrer Postleitzahl abgleichen

Ein Kunde kann eine echte Straßenadresse und eine echte Postleitzahl eingeben, die tatsächlich nicht zusammengehören, meist weil Ziffern vertauscht oder eine alte Postleitzahl in eine neue Adresse übernommen wurde. Keines der beiden Felder allein verrät das Problem, denn jedes ist für sich gültig.

Jedes Feld unabhängig auflösen

Geokodieren Sie die vollständige Adresse mit /v1/forward, um zu sehen, zu welcher Postleitzahl sie tatsächlich aufgelöst wird, und fragen Sie separat die vom Kunden eingegebene Postleitzahl mit /v1/postcode ab, um zu sehen, welches Gebiet sie abdeckt.

GET /v1/forward?q=10 Downing Street, London&limit=1
{
  "status": "ok",
  "results": [
    {"formatted": "10 Downing Street, London, UK", "lat": 51.5033, "lon": -0.1276, "type": "address", "precision": "house", "confidence": 0.96, "place_id": "op678", "components": {"postcode": "SW1A 2AA", "city": "London"}}
  ]
}
GET /v1/postcode?code=SW1A 1AA&country=GB
{
  "status": "ok",
  "postcode": "SW1A 1AA",
  "country_code": "GB",
  "results": [{"lat": 51.5014, "lon": -0.1419, "components": {"city": "London", "region": "Greater London"}}]
}

Die beiden Ergebnisse vergleichen

Wenn die Postleitzahl-Komponente aus der Adressabfrage nicht mit der vom Kunden eingegebenen Postleitzahl übereinstimmt, wie in diesem Beispiel, ist das eine Abweichung, die markiert werden sollte, obwohl sowohl die Adresse als auch die Postleitzahl für sich als echt bestätigt wurden. Ein direkter Vergleich der beiden Komponenten ist zuverlässiger als ein Vergleich des Abstands zwischen den beiden Koordinatenpaaren, denn ein Postleitzahlgebiet kann so klein sein, dass selbst ein echter Treffer nicht genau auf den Koordinaten der Adresse liegt.

Ein zweites Beispiel: eine größere Abweichung, die früher erkannt werden sollte

Dieselbe Prüfung erkennt auch einen viel offensichtlicheren Fehler: eine Postleitzahl, die für ein ganz anderes Land oder eine ganz andere Region eingegeben wurde als die Straßenadresse selbst, etwa eine Postleitzahl im britischen Format zusammen mit einer Adresse, die tatsächlich in einem anderen Land liegt. Die Länderkomponente aus dem Adressergebnis mit dem für die Postleitzahlabfrage verwendeten Parameter country zu vergleichen, noch bevor der detailliertere Postleitzahlvergleich erfolgt, ist eine günstige erste Prüfung, die diese Art größerer Fehler frühzeitig herausfiltert.

Was bei einer Abweichung zu tun ist

Zeigen Sie dem Kunden beide Werte nebeneinander und bitten Sie ihn zu bestätigen, welcher korrekt ist, statt stillschweigend einen davon zu wählen oder die Bestellung direkt abzulehnen. Eine vertauschte Ziffer ist leicht korrigiert, sobald jemand darauf hinweist, und ein echter Sonderfall, bei dem eine Postleitzahl rechtmäßig eine Grenze zwischen zwei gängigen Werten abdeckt, ist selten genug, um ihn mit einer kurzen manuellen Bestätigung zu erledigen.

Ein häufiger Fehler, den Sie vermeiden sollten

Vergleichen Sie die beiden Koordinatenpaare nicht direkt mit einem Abstandsschwellenwert als Ersatz für den Vergleich der Postleitzahl-Komponenten selbst. Ein Postleitzahlgebiet kann geografisch so klein sein, dass selbst ein völlig korrekter Treffer einen gewissen Abstand zwischen dem repräsentativen Punkt der Postleitzahl und den konkreten Gebäudekoordinaten der Adresse zeigt, und ein Postleitzahlgebiet kann auch geografisch so groß sein, dass ein tatsächlich nicht zusammenpassendes Paar noch innerhalb eines großzügigen Abstandsschwellenwerts liegt. Der Vergleich des Postleitzahltexts selbst ist eine direktere und zuverlässigere Prüfung als der Versuch, eine Übereinstimmung aus dem Abstand abzuleiten.

Ein Sonderfall, den Sie berücksichtigen sollten

Ein Postleitzahlgebiet, das genau auf einer Grenze zwischen zwei Verwaltungsregionen liegt, kann rechtmäßig Komponenten liefern, die je nach auflösendem Endpunkt leicht unterschiedlich aussehen, auch wenn beide korrekt sind. Behandeln Sie eine nahe, aber nicht exakte Textübereinstimmung, etwa einen Unterschied nur in der Schreibweise eines Regionsnamens, nachsichtiger als eine völlig andere Postleitzahl.

Viele Bestellungen auf einmal prüfen

Für einen Stapel bestehender Bestellungen statt einer einzelnen neuen Einsendung akzeptieren beide Endpunkte ein Array per Bulk-POST. Ein Rückstau von Bestellungen lässt sich also prüfen, indem Sie die Adressen als eine Bulk-Anfrage an /v1/forward und die Postleitzahlen als weitere Bulk-Anfrage an /v1/postcode senden und dann die beiden Ergebnis-Arrays anhand der Position vergleichen.

Kosten der Anfragen

Diese Prüfung verwendet zwei Anfragen pro Bestellung, eine für die Adresse und eine für die Postleitzahl, die beide wie jede andere Abfrage auf Ihr Tageskontingent angerechnet werden. Das sind vertretbare Kosten, um einen Fehler zu erkennen, der sich sonst als fehlgeschlagene Lieferung zeigen würde.

Eine nicht passende Postleitzahl zu erkennen, bevor eine Bestellung verschickt wird, ist die zweite Anfrage für die Prüfung wert. Details zu beiden Endpunkten finden Sie in der Dokumentation zur Geokodierung und der Dokumentation zur Postleitzahlabfrage.