Как исправить адрес: примеры

В этом документе описаны реальные сценарии, в которых Address Validation API предоставляет сигналы ответа, которые могут потребовать исправления в вашей системе. Примеры рабочих процессов приведены в разделе Примеры рабочих процессов статьи Как создать логику проверки.

Примеры: fix

В этом разделе описаны распространенные примеры, когда Address Validation API предоставляет сигналы ответа, указывающие на более низкое качество информации об адресе.

Не указан город и почтовый индекс.

В этом примере показана запись, содержащая только почтовый адрес, без города и почтового индекса.

Адрес введен Регион
21 45 40th street США

Решение по отсутствующим городу и почтовому индексу

В примере ниже выделены важные сигналы из ответа.

{
  "inputGranularity": "PREMISE",
  "validationGranularity": "OTHER",
  "geocodeGranularity": "OTHER",
  "hasUnconfirmedComponents": true,
  "possibleNextAction": "FIX"
}

possibleNextAction – это первый признак того, что адрес может быть недействительным. Другие выделенные компоненты также поддерживают эту возможность, поэтому вы можете запросить addressComponents, чтобы узнать больше:

{
  "componentName": {
    "text": "21",
    "languageCode": "en"
  },
  "componentType": "street_number",
  "confirmationLevel": "UNCONFIRMED_BUT_PLAUSIBLE"
},
{
  "componentName": {
    "text": "45 40th street",
    "languageCode": "en"
  },
  "componentType": "route",
  "confirmationLevel": "UNCONFIRMED_BUT_PLAUSIBLE"
},
{
  "componentName": {
    "text": "United States",
    "languageCode": "en"
  },
  "componentType": "country",
  "confirmationLevel": "CONFIRMED"
}

Address Validation API возвращает только страну (США) как CONFIRMED. Все остальные компоненты адреса возвращаются как UNCONFIRMED_BUT_PLAUSIBLE, при этом некоторые важные данные, такие как населенный пункт и почтовый индекс, опускаются.

Не указан номер дома

В этом примере не указан номер дома.

Адрес введен Регион
Buckingham Palace Road, SW1W 9TQ London Великобритания

Вердикт для отсутствующего номера дома

{
    "inputGranularity": "PREMISE_PROXIMITY",
    "validationGranularity": "ROUTE",
    "geocodeGranularity": "ROUTE",
    "possibleNextAction": "FIX"
}

И снова possibleNextAction указывает на то, что адрес может быть недоступен для доставки. Кроме того, validationGranularity – ROUTE, что указывает на совпадение с улицей, но информации недостаточно, чтобы определить здание. Кроме того, в оценке отсутствует свойство addressComplete, поэтому оно равно false. Дальнейший запрос объекта address показывает отсутствующий тип компонента:

"missingComponentTypes": [
        "street_number"
      ]

Примеры пограничных случаев: исправление

В некоторых ситуациях выбор между исправлением, подтверждением или принятием адреса зависит от конкретного бизнес-сценария. Ниже приведены примеры ситуаций, которые не подпадают под определенную категорию.

Неподтвержденный номер дома

В этом сценарии Address Validation API не может подтвердить указанный номер дома, но указывает, что адрес полный.

Адрес введен Регион
84 Buckingham Palace Road, SW1W 9TQ, London Великобритания

Решение по неподтвержденному номеру дома

В примере ниже выделены важные сигналы.

{
  "inputGranularity": "PREMISE",
  "validationGranularity": "PREMISE_PROXIMITY",
  "geocodeGranularity": "PREMISE_PROXIMITY",
  "addressComplete" : true,
  "hasUnconfirmedComponents": true,
  "possibleNextAction": "ACCEPT"
}

Рекомендуем проверить сочетание детализации проверки только до уровня здания с неподтвержденными компонентами. Запрос свойства addressComponents показывает следующие неподтвержденные componentType:

{
  "componentName": {
    "text": "84",
    "languageCode": "en"
  },
  "componentType": "street_number",
  "confirmationLevel": "UNCONFIRMED_BUT_PLAUSIBLE"
}

В этом примере для свойства confirmation_level объекта street_number задано значение UNCONFIRMED_BUT_PLAUSIBLE. Unconfirmed означает, что сервис не может сопоставить номер дома 84 в своем наборе данных, а plausible – что данные компонента могут быть действительными.

Отсутствует номер помещения

В адресе отсутствует только номер квартиры или офиса. В противном случае Address Validation API может полностью проверить адрес. Как и в случае с любым отсутствующим компонентом адреса, addressComplete имеет значение false и поэтому не отображается при ручной проверке вердикта.

Например, клиент вводит действительный адрес офиса городского оценщика в Сан-Франциско, но не указывает номер комнаты.

Адрес введен Регион
1 Doctor Carlton B Goodlett Place, San Francisco, CA 94102 США

Вердикт для отсутствующего номера квартиры или офиса

В этом примере в оценке не указано свойство addressComplete, поэтому оно равно false. Это означает, что по крайней мере один элемент адреса не распознан, не найден или отсутствует.

{
  "inputGranularity": "PREMISE",
  "validationGranularity": "PREMISE",
  "geocodeGranularity": "PREMISE",
  "hasInferredComponents": true,
  "possibleNextAction": "CONFIRM_ADD_SUBPREMISES"
}

Запрос address возвращает следующие данные:

"missingComponentTypes": [
        "subpremise"
      ]

При дальнейшем запросе данные USPS предоставляют код dpvConfirmation, равный D, что также указывает на отсутствие дополнительного адреса.