[Shippo] Address Validation API は Invalid な Zip Code を渡しても Valid な Zip Code が取得できる
Shippo の Address Validation API は Invalid な Zip Code を渡しても Valid な Zip Code が取得できるようでした。
 
Zip Code の validation をしたくて Shippo の Address Validation API を利用して、検証できないか確認したのが本記事の内容です。
以下、サンプルコードです。
Request
US では存在しない zip=a という値で validate の API Request を送ってみました。
curl https://api.goshippo.com/addresses/ \\
    -H "Authorization: ShippoToken " \\
    -d name="Shawn Ippotle" \\
    -d company="Shippo" \\
    -d street1="215 Clayton St." \\
    -d city="San Francisco" \\
    -d state="CA" \\
    -d zip=a \\
    -d country="US" \\
    -d email="[email protected]"\\
    -d validate=true
 Response
API Response は “object_state”: “VALID”, “zip”: “94117-1913” という正しい値が返ってくることを確認しました。
{
  "object_state":"VALID",
  "object_purpose":"QUOTE",
  "object_source":"VALIDATOR",
  "object_created":"2019-09-10T12:50:31.681Z",
  "object_updated":"2019-09-10T12:50:31.689Z",
  "object_id":"5cee8f0855514008a9688f9199df6fa6",
  "object_owner":"[email protected]",
  "name":"Shawn Ippotle",
  "company":"Shippo",
  "street_no":"",
  "street1":"215 Clayton St",
  "street2":"",
  "street3":"",
  "city":"San Francisco",
  "state":"CA",
  "zip":"94117-1913",
  "country":"US",
  "longitude":-122.44938,
  "latitude":37.77335,
  "phone":"",
  "email":"[email protected]",
  "is_residential":true,
  "ip":"",
  "messages":[
  ],
  "metadata":"",
  "test":true
}
Address Validation API では、入力値の zip を validate することはできないようでした。しかし、country, state, city, street1 などを元に、正しい zip が取得できるので、API Response の zip を利用する実装にしておけば困らないのかなと思いました。
以上、Shippo の Address Validation API で Zip Code も検証したい、現場からお送りしました。