DaData Laravel Package - PHP SDK Laravel пакет для взаимодействия с API DaData.ru от sushi-market
- PHP >= 7.4 , 8.0, 8.1
- Laravel 8.75.0 - 10.0
- guzzlehttp/guzzle 7
Вы можете установить пакет через composer:
composer require sushi-market/laravel-dadata
Публикация конфигурационного файла. Выполните artisan
команду
php artisan vendor:publish --provider="SushiMarket\DaData\DaDataServiceProvider"
Настройка проекта осществляется через .env
вашего проекта. Вам необходимо указать три параметра
DADATA_TOKEN
- token для раоты с API DaDataDADATA_SECRET
- secret для работы с API DaDataDADATA_TIMEOUT
- максимальное время ожидания ответа от API сервисов DaData в секундах. По умолчанию это значение равно 10 секунд.
Пример .env
DADATA_TOKEN="c32c33ebaf450067d64516fbe041d2a8a6d4211f"
DADATA_SECRET="adccd63ac28701442e26b7eef57eb5eb0a72143e"
DADATA_TIMEOUT=10
- Работа с адресами
- Стандартизация адреса
- Подсказки по адресам
- Определение адреса по координатам
- Определение адреса по IP
- Определение адреса по КЛАДР или ФИАС коду
- Определение ближайшего отделения Почты России по адресу
- Определение отделения Почты России почтовому индексу
- Определение отделения Почты России по координатам
- Определение идентификатора города в СДЭК, Boxberry и DPD
- Адрес в ФИАС по идентификатору
- Работа с именами
- Работа с электорнными (email) адресами
- Работа с телефонными номерами
- Работа с компаниями
- Работа с банками
- Работа с паспортами
DaDataAddress::standardization(string $address)
- разбивает адрес из строки по отдельным полям (регион, город, улица, дом, квартира) согласно КЛАДР/ФИАС. Определяет почтовый индекс, часовой пояс, ближайшее метро, координаты, стоимость квартиры и другую информацию об адресе.
Основные кейсы:
- Разбивает адрес по отдельным полям (регион, город, улица, дом, квартира).
- Рассчитывает корректный индекс по данным Почты России.
- Определяет координаты.
- Показывает округ и район города, ближайшее метро, площадь и стоимость квартиры.
- Достает коды КЛАДР, ФИАС, ОКАТО, ОКТМО и ИФНС.
Пример вызова
<?php
namespace App;
use SushiMarket\DaData\Facades\DaDataAddress;
/**
* Class DaData
* @package App\DaData
*/
class DaData
{
/**
* DaData standardization example
*
* @return void
*/
public function standardizationExample() : void
{
$dadata = DaDataAddress::standardization('мск сухонска 11/-89');
dd($dadata);
}
}
Пример ответа
array:1 [
0 => array:80 [
"source" => "мск сухонска 11/-89"
"result" => "г Москва, ул Сухонская, д 11, кв 89"
"postal_code" => "127642"
"country" => "Россия"
"country_iso_code" => "RU"
"federal_district" => "Центральный"
"region_fias_id" => "0c5b2444-70a0-4932-980c-b4dc0d3f02b5"
"region_kladr_id" => "7700000000000"
"region_iso_code" => "RU-MOW"
"region_with_type" => "г Москва"
"region_type" => "г"
"region_type_full" => "город"
"region" => "Москва"
"area_fias_id" => null
"area_kladr_id" => null
"area_with_type" => null
"area_type" => null
"area_type_full" => null
"area" => null
"city_fias_id" => null
"city_kladr_id" => null
"city_with_type" => null
"city_type" => null
"city_type_full" => null
"city" => null
"city_area" => "Северо-восточный"
"city_district_fias_id" => null
"city_district_kladr_id" => null
"city_district_with_type" => "р-н Северное Медведково"
"city_district_type" => "р-н"
"city_district_type_full" => "район"
"city_district" => "Северное Медведково"
"settlement_fias_id" => null
"settlement_kladr_id" => null
"settlement_with_type" => null
"settlement_type" => null
"settlement_type_full" => null
"settlement" => null
"street_fias_id" => "95dbf7fb-0dd4-4a04-8100-4f6c847564b5"
"street_kladr_id" => "77000000000283600"
"street_with_type" => "ул Сухонская"
"street_type" => "ул"
"street_type_full" => "улица"
"street" => "Сухонская"
"house_fias_id" => "5ee84ac0-eb9a-4b42-b814-2f5f7c27c255"
"house_kladr_id" => "7700000000028360004"
"house_type" => "д"
"house_type_full" => "дом"
"house" => "11"
"block_type" => null
"block_type_full" => null
"block" => null
"flat_type" => "кв"
"flat_type_full" => "квартира"
"flat" => "89"
"flat_area" => "34.6"
"square_meter_price" => "198113"
"flat_price" => "6854710"
"postal_box" => null
"fias_id" => "5ee84ac0-eb9a-4b42-b814-2f5f7c27c255"
"fias_code" => "77000000000000028360004"
"fias_level" => "8"
"fias_actuality_state" => "0"
"kladr_id" => "7700000000028360004"
"capital_marker" => "0"
"okato" => "45280583000"
"oktmo" => "45362000"
"tax_office" => "7715"
"tax_office_legal" => "7715"
"timezone" => "UTC+3"
"geo_lat" => "55.8782557"
"geo_lon" => "37.65372"
"beltway_hit" => "IN_MKAD"
"beltway_distance" => null
"qc_geo" => 0
"qc_complete" => 0
"qc_house" => 2
"qc" => 0
"unparsed_parts" => null
"metro" => array:3 [
0 => array:3 [
"distance" => 1.1
"line" => "Калужско-Рижская"
"name" => "Бабушкинская"
]
1 => array:3 [
"distance" => 1.2
"line" => "Калужско-Рижская"
"name" => "Медведково"
]
2 => array:3 [
"distance" => 2.5
"line" => "Калужско-Рижская"
"name" => "Свиблово"
]
]
]
]
Описани ответа
Название | Длина | Описание |
---|---|---|
source |
250 | Исходный адрес одной строкой |
result |
500 | Стандартизованный адрес одной строкой |
postal_code |
6 | Индекс |
country |
120 | Страна |
country_iso_code |
2 | ISO-код страны |
federal_district |
20 | Федеральный округ |
region_fias_id |
36 | ФИАС-код региона |
region_kladr_id |
19 | КЛАДР-код региона |
region_iso_code |
6 | ISO-код региона |
region_with_type |
131 | Регион с типом |
region_type |
10 | Тип региона (сокращенный) |
region_type_full |
50 | Тип региона |
region |
120 | Регион |
area_fias_id |
36 | ФИАС-код района |
area_kladr_id |
19 | КЛАДР-код района |
area_with_type |
131 | Район в регионе с типом |
area_type |
10 | Тип района в регионе (сокращенный) |
area_type_full |
50 | Тип района в регионе |
area |
120 | Район в регионе |
city_fias_id |
36 | ФИАС-код города |
city_kladr_id |
19 | КЛАДР-код города |
city_with_type |
131 | Город с типом |
city_type |
10 | Тип города (сокращенный) |
city_type_full |
50 | Тип города |
city |
120 | Город |
city_area |
120 | Административный округ (только для Москвы) |
city_district_fias_id |
36 | ФИАС-код района города (заполняется, только если район есть в ФИАС) |
city_district_kladr_id |
19 | КЛАДР-код района города (не заполняется) |
city_district_with_type |
131 | Район города с типом |
city_district_type |
10 | Тип района города (сокращенный) |
city_district_type_full |
50 | Тип района города |
city_district |
120 | Район города |
settlement_fias_id |
36 | ФИАС-код населенного пункта |
settlement_kladr_id |
19 | КЛАДР-код населенного пункта |
settlement_with_type |
131 | Населенный пункт с типом |
settlement_type |
10 | Тип населенного пункта (сокращенный) |
settlement_type_full |
50 | Тип населенного пункта |
settlement |
120 | Населенный пункт |
street_fias_id |
36 | ФИАС-код улицы |
street_kladr_id |
19 | КЛАДР-код улицы |
street_with_type |
131 | Улица с типом |
street_type |
10 | Тип улицы (сокращенный) |
street_type_full |
50 | Тип улицы |
street |
120 | Улица |
house_fias_id |
36 | ФИАС-код дома |
house_kladr_id |
19 | КЛАДР-код дома |
house_type |
10 | Тип дома (сокращенный) |
house_type_full |
50 | Тип дома |
house |
50 | Дом |
block_type |
10 | Тип корпуса/строения (сокращенный) |
block_type_full |
50 | Тип корпуса/строения |
block |
50 | Корпус/строение |
flat_type |
10 | Тип квартиры (сокращенный) |
flat_type_full |
50 | Тип квартиры |
flat |
50 | Квартира |
flat_area |
50 | Площадь квартиры |
square_meter_price |
50 | Рыночная стоимость м² |
flat_price |
50 | Рыночная стоимость квартиры |
postal_box |
50 | Абонентский ящик |
fias_id |
36 | ФИАС-код адреса (идентификатор ФИАС) |
HOUSE.HOUSEGUID — если дом найден в ФИАС |
||
ADDROBJ.AOGUID — в противном случае |
||
fias_code |
Иерархический код адреса в ФИАС (СС+РРР+ГГГ+ППП+СССС+УУУУ+ДДДД) | |
fias_level |
2 | Уровень детализации, до которого адрес найден в ФИАС |
fias_actuality_state |
Признак актуальности адреса в ФИАС | |
kladr_id |
19 | КЛАДР-код адреса |
capital_marker |
1 | Признак центра района или региона |
okato |
11 | Код ОКАТО |
oktmo |
11 | Код ОКТМО |
tax_office |
4 | Код ИФНС для физических лиц |
tax_office_legal |
4 | Код ИФНС для организаций |
timezone |
50 | Часовой пояс города для России, часовой пояс страны — для иностранных адресов. Если у страны несколько поясов, вернёт минимальный и максимальный через слеш: UTC+5/UTC+6 |
geo_lat |
12 | Координаты: широта |
geo_lon |
12 | Координаты: долгота |
beltway_hit |
8 | Внутри кольцевой? |
beltway_distance |
3 | Расстояние от кольцевой в км. Заполнено, только если beltway_hit = OUT_MKAD или OUT_KAD, иначе пустое |
qc_geo |
5 | Код точности координат |
qc_complete |
5 | Код пригодности к рассылке |
qc_house |
5 | Признак наличия дома в ФИАС |
qc |
5 | Код проверки адреса |
unparsed_parts |
250 | Нераспознанная часть адреса. Для адреса «Москва, Митинская улица, 40, вход с торца» вернет «ВХОД, С, ТОРЦА» |
metro |
Список ближайших станций метро (до трёх штук) |
Координаты есть у 97% домов в Москве, 91% в Санкт-Петербурге, 69% в других городах-миллиониках и 47% по остальной России. Площадь и стоимость есть у 70% квартир в России.
Exceptions
При вызове методов, вы можете обрабатывать коды исключений и их сообщения
Код | Описание |
---|---|
400 |
Некорректный запрос |
401 |
В запросе отсутствует API-ключ или секретный ключ или в запросе указан несуществующий ключ |
403 |
Не подтверждена почта или недостаточно средств для обработки запроса, пополните баланс |
405 |
Запрос сделан с методом, отличным от POST |
429 |
Слишком много запросов в секунду или новых соединений в минуту |
5xx |
Произошла внутренняя ошибка сервиса |
Более детальную информацию вы можете получить из сообщения исключения.
Пример получения сообщения исключения
<?php
namespace App;
use SushiMarket\DaData\Facades\DaDataAddress;
/**
* Class DaData
* @package App\DaData
*/
class DaData
{
/**
* DaData standardization example
*
* @return void
*/
public function standardizationExample() : void
{
try {
$dadata = DaDataAddress::standardization('мск сухонска 11/-89');
dd($dadata);
} catch (\Exception $e) {
dd($e->getMessage());
}
}
}
DaDataAddress::prompt(string $query, int $count, int $language, array $locations, array $locations_geo, array $locations_boost, array $from_bound, array $to_bound)
Ищет адреса по любой части адреса от региона до дома («тверская нижний 12» → «Нижегородская обл, г Нижний Новгород, ул Тверская, д 12»). Также ищет почтовому индексу («105568» → «г Москва, ул Магнитогорская»).
Основные кейсы:
- Работает по всем странам мира (по России до дома, по остальным странам — до города). Ищет и показывает результаты как на русском языке («Самара, пр-кт Металлургов»), так и на английском («Russia, gorod Samara, prospekt Metallurgov»).
- Находит актуальные адреса по историческим названиям (Свердловск → Екатеринбург) и синонимам (Питер → Санкт-Петербург).
- Ищет по частичному совпадению («москва болот» → «г Москва, Болотная наб»), но только в последнем слове запроса («мос болот» не найдет).
- Исправляет опечатки («самара авиционная») и запросы в неправильной раскладке («vjcrdf» → «москва»). -️ Раскладывает выбранный адрес на гранулярные части (от региона до квартиры). -️ Поддерживает гранулярные подсказки по отдельным частям адреса (регионы, города, улицы, дома). -️ Подсказывает адреса в конкретных регионах, районах, городах и населенных пунктах. Понимает названия («Петергоф»), коды КЛАДР («7800000800000») и ФИАС («8f238984-812b-4bb1-850b-49749fb5c56d»). -️ Учитывает, где вы находитесь (в связке с методом город по IP-адресу).
Важно знать, что использовать данный метод не рекомендуется если вы
- Хотите автоматически, без участия человека, обработать адреса из базы или файла.
- Транслитерировать строки, например
moskva suhonskaja 11 → 127642
вг Москва, ул Сухонская, д 11
.
Подсказки не подходят для автоматической обработки адресов. Они предлагают варианты, но не гарантируют, что угадали правильно. Поэтому окончательное решение всегда должен принимать человек.
Для автоматической обработки и транслитерации используйте DaDataAddress::standardization(string $address)
метод.
Параметры вызова
Название | Тип | Optional | Default value | Описание |
---|---|---|---|---|
query |
string |
false |
Текст запроса | |
count |
int |
true |
10 | Колличество результатов. Максимум 20 |
language |
int |
true |
1 | Язык ответа. Он может быть русский значение language = 1 или английским, значение language = 2 . Мы призываем использовать константы Language::RU или Language::EN |
locations |
array |
true |
[] | Ограничение по родителю (страна, регион, район, город, улица) |
locations_geo |
array |
true |
[] | Ограничение по радиусу окружности |
locations_boost |
array |
true |
[] | Приоритет города при ранжировании |
from_bound |
array |
true |
[] | Гранулярные подсказки по адресу |
to_bound |
array |
true |
[] | Гранулярные подсказки по адресу |
Пример вызова
<?php
namespace App;
use SushiMarket\DaData\Enums\Language;
use SushiMarket\DaData\Facades\DaDataAddress;
/**
* Class DaData
* @package App\DaData
*/
class DaData
{
/**
* DaData prompt example
*
* @return void
*/
public function promptExample() : void
{
$dadata = DaDataAddress::prompt('москва хабар', 2, Language::RU);
dd($dadata);
}
}
Пример ответа
array:1 [
"suggestions" => array:2 [
0 => array:3 [
"value" => "г Москва, ул Хабаровская"
"unrestricted_value" => "г Москва, ул Хабаровская"
"data" => array:81 [
"postal_code" => null
"country" => "Россия"
"country_iso_code" => "RU"
"federal_district" => null
"region_fias_id" => "0c5b2444-70a0-4932-980c-b4dc0d3f02b5"
"region_kladr_id" => "7700000000000"
"region_iso_code" => "RU-MOW"
"region_with_type" => "г Москва"
"region_type" => "г"
"region_type_full" => "город"
"region" => "Москва"
"area_fias_id" => null
"area_kladr_id" => null
"area_with_type" => null
"area_type" => null
"area_type_full" => null
"area" => null
"city_fias_id" => "0c5b2444-70a0-4932-980c-b4dc0d3f02b5"
"city_kladr_id" => "7700000000000"
"city_with_type" => "г Москва"
"city_type" => "г"
"city_type_full" => "город"
"city" => "Москва"
"city_area" => null
"city_district_fias_id" => null
"city_district_kladr_id" => null
"city_district_with_type" => null
"city_district_type" => null
"city_district_type_full" => null
"city_district" => null
"settlement_fias_id" => null
"settlement_kladr_id" => null
"settlement_with_type" => null
"settlement_type" => null
"settlement_type_full" => null
"settlement" => null
"street_fias_id" => "32fcb102-2a50-44c9-a00e-806420f448ea"
"street_kladr_id" => "77000000000713400"
"street_with_type" => "ул Хабаровская"
"street_type" => "ул"
"street_type_full" => "улица"
"street" => "Хабаровская"
"house_fias_id" => null
"house_kladr_id" => null
"house_type" => null
"house_type_full" => null
"house" => null
"block_type" => null
"block_type_full" => null
"block" => null
"flat_type" => null
"flat_type_full" => null
"flat" => null
"flat_area" => null
"square_meter_price" => null
"flat_price" => null
"postal_box" => null
"fias_id" => "32fcb102-2a50-44c9-a00e-806420f448ea"
"fias_code" => "7700000000000007134"
"fias_level" => "7"
"fias_actuality_state" => "0"
"kladr_id" => "77000000000713400"
"geoname_id" => "524894"
"capital_marker" => "0"
"okato" => "45263564000"
"oktmo" => "45305000"
"tax_office" => "7718"
"tax_office_legal" => "7718"
"timezone" => null
"geo_lat" => "55.821168"
"geo_lon" => "37.82608"
"beltway_hit" => null
"beltway_distance" => null
"metro" => null
"qc_geo" => "2"
"qc_complete" => null
"qc_house" => null
"history_values" => array:1 [
0 => "ул Черненко"
]
"unparsed_parts" => null
"source" => null
"qc" => null
]
]
1 => array:3 [
"value" => "г Москва, поселение Московский, г Московский, ул Хабарова"
"unrestricted_value" => "г Москва, поселение Московский, г Московский, ул Хабарова"
"data" => array:81 [
"postal_code" => null
"country" => "Россия"
"country_iso_code" => "RU"
"federal_district" => null
"region_fias_id" => "0c5b2444-70a0-4932-980c-b4dc0d3f02b5"
"region_kladr_id" => "7700000000000"
"region_iso_code" => "RU-MOW"
"region_with_type" => "г Москва"
"region_type" => "г"
"region_type_full" => "город"
"region" => "Москва"
"area_fias_id" => "762758bb-18b9-440f-bc61-8e1e77ff3fd8"
"area_kladr_id" => "7701100000000"
"area_with_type" => "поселение Московский"
"area_type" => "п"
"area_type_full" => "поселение"
"area" => "Московский"
"city_fias_id" => "fbcf1fff-1d7c-445e-ad92-b71c08b8aba3"
"city_kladr_id" => "7701100200000"
"city_with_type" => "г Московский"
"city_type" => "г"
"city_type_full" => "город"
"city" => "Московский"
"city_area" => null
"city_district_fias_id" => null
"city_district_kladr_id" => null
"city_district_with_type" => null
"city_district_type" => null
"city_district_type_full" => null
"city_district" => null
"settlement_fias_id" => null
"settlement_kladr_id" => null
"settlement_with_type" => null
"settlement_type" => null
"settlement_type_full" => null
"settlement" => null
"street_fias_id" => "4d70a35d-9246-4d9c-bcf1-90812ad056a3"
"street_kladr_id" => "77011002000003700"
"street_with_type" => "ул Хабарова"
"street_type" => "ул"
"street_type_full" => "улица"
"street" => "Хабарова"
"house_fias_id" => null
"house_kladr_id" => null
"house_type" => null
"house_type_full" => null
"house" => null
"block_type" => null
"block_type_full" => null
"block" => null
"flat_type" => null
"flat_type_full" => null
"flat" => null
"flat_area" => null
"square_meter_price" => null
"flat_price" => null
"postal_box" => null
"fias_id" => "4d70a35d-9246-4d9c-bcf1-90812ad056a3"
"fias_code" => "7701100200000000037"
"fias_level" => "7"
"fias_actuality_state" => "0"
"kladr_id" => "77011002000003700"
"geoname_id" => "857690"
"capital_marker" => "0"
"okato" => "45297565001"
"oktmo" => "45952000"
"tax_office" => "7751"
"tax_office_legal" => "7751"
"timezone" => null
"geo_lat" => "55.59483"
"geo_lon" => "37.35963"
"beltway_hit" => null
"beltway_distance" => null
"metro" => null
"qc_geo" => "2"
"qc_complete" => null
"qc_house" => null
"history_values" => null
"unparsed_parts" => null
"source" => null
"qc" => null
]
]
]
]
Описание ответа
Название | Описание |
---|---|
value |
Адрес одной строкой (как показывается в списке подсказок) |
unrestricted_value |
Адрес одной строкой (полный, с индексом) |
data |
Вложенный массив данных аналагичный структуре выдачи метода DaDataAddress::standardization(string $address) |
Exceptions
При вызове методов, вы можете обрабатывать коды исключений и их сообщения
Код | Описание |
---|---|
400 |
Некорректный запрос |
401 |
В запросе отсутствует API-ключ |
403 |
Не подтверждена почта или недостаточно средств для обработки запроса, пополните баланс |
405 |
Запрос сделан с методом, отличным от POST |
413 |
Слишком большая длина запроса или слишком много условий |
429 |
Слишком много запросов в секунду или новых соединений в минуту |
5xx |
Произошла внутренняя ошибка сервиса |
Более детальную информацию вы можете получить из сообщения исключения.
Пример получения сообщения исключения
<?php
namespace App;
use SushiMarket\DaData\Enums\Language;
use SushiMarket\DaData\Facades\DaDataAddress;
/**
* Class DaData
* @package App\DaData
*/
class DaData
{
/**
* DaData prompt example
*
* @return void
*/
public function promptExample() : void
{
try {
$dadata = DaDataAddress::prompt('москва хабар', 2, Language::RU);
dd($dadata);
} catch (\Exception $e) {
dd($e->getMessage());
}
}
}
DaDataAddress::geolocate(float $lat, float $lon, int $count, int $radius_meters, int $language)
Находит ближайшие адреса (дома, улицы, города) по географическим координатам. Только для России.
Параметры вызова
Название | Тип | Optional | Default value | Описание |
---|---|---|---|---|
lat |
float |
false |
Географическая широта | |
lon |
float |
false |
Географическая долгота | |
count |
int |
true |
10 | Количество результатов (максимум — 20) |
radius_meters |
int |
true |
100 | Радиус поиска в метрах (максимум – 1000) |
language |
int |
true |
1 | Язык ответа. Он может быть русский значение language = 1 или английским, значение language = 2 . Мы призываем использовать константы Language::RU или Language::EN |
Пример вызова
<?php
namespace App;
use SushiMarket\DaData\Facades\DaDataAddress;
/**
* Class DaData
* @package App\DaData
*/
class DaData
{
/**
* DaData geolocate example
*
* @return void
*/
public function geolocateExample() : void
{
$dadata = DaDataAddress::geolocate('55.878', '37.653', 2);
dd($dadata);
}
}
Пример ответа
array:1 [
"suggestions" => array:2 [
0 => array:3 [
"value" => "г Москва, ул Сухонская, д 11"
"unrestricted_value" => "127642, г Москва, ул Сухонская, д 11"
"data" => array:81 [
"postal_code" => "127642"
"country" => "Россия"
"country_iso_code" => "RU"
"federal_district" => null
"region_fias_id" => "0c5b2444-70a0-4932-980c-b4dc0d3f02b5"
"region_kladr_id" => "7700000000000"
"region_iso_code" => "RU-MOW"
"region_with_type" => "г Москва"
"region_type" => "г"
"region_type_full" => "город"
"region" => "Москва"
"area_fias_id" => null
"area_kladr_id" => null
"area_with_type" => null
"area_type" => null
"area_type_full" => null
"area" => null
"city_fias_id" => "0c5b2444-70a0-4932-980c-b4dc0d3f02b5"
"city_kladr_id" => "7700000000000"
"city_with_type" => "г Москва"
"city_type" => "г"
"city_type_full" => "город"
"city" => "Москва"
"city_area" => null
"city_district_fias_id" => null
"city_district_kladr_id" => null
"city_district_with_type" => null
"city_district_type" => null
"city_district_type_full" => null
"city_district" => null
"settlement_fias_id" => null
"settlement_kladr_id" => null
"settlement_with_type" => null
"settlement_type" => null
"settlement_type_full" => null
"settlement" => null
"street_fias_id" => "95dbf7fb-0dd4-4a04-8100-4f6c847564b5"
"street_kladr_id" => "77000000000283600"
"street_with_type" => "ул Сухонская"
"street_type" => "ул"
"street_type_full" => "улица"
"street" => "Сухонская"
"house_fias_id" => "5ee84ac0-eb9a-4b42-b814-2f5f7c27c255"
"house_kladr_id" => "7700000000028360004"
"house_type" => "д"
"house_type_full" => "дом"
"house" => "11"
"block_type" => null
"block_type_full" => null
"block" => null
"flat_type" => null
"flat_type_full" => null
"flat" => null
"flat_area" => null
"square_meter_price" => null
"flat_price" => null
"postal_box" => null
"fias_id" => "5ee84ac0-eb9a-4b42-b814-2f5f7c27c255"
"fias_code" => "77000000000000028360004"
"fias_level" => "8"
"fias_actuality_state" => "0"
"kladr_id" => "7700000000028360004"
"geoname_id" => "524894"
"capital_marker" => "0"
"okato" => "45280583000"
"oktmo" => "45362000"
"tax_office" => "7715"
"tax_office_legal" => "7715"
"timezone" => null
"geo_lat" => "55.878315"
"geo_lon" => "37.65372"
"beltway_hit" => null
"beltway_distance" => null
"metro" => null
"qc_geo" => "0"
"qc_complete" => null
"qc_house" => null
"history_values" => null
"unparsed_parts" => null
"source" => null
"qc" => null
]
]
1 => array:3 [
"value" => "г Москва, ул Сухонская, д 11А"
"unrestricted_value" => "127642, г Москва, ул Сухонская, д 11А"
"data" => array:81 [
"postal_code" => "127642"
"country" => "Россия"
"country_iso_code" => "RU"
"federal_district" => null
"region_fias_id" => "0c5b2444-70a0-4932-980c-b4dc0d3f02b5"
"region_kladr_id" => "7700000000000"
"region_iso_code" => "RU-MOW"
"region_with_type" => "г Москва"
"region_type" => "г"
"region_type_full" => "город"
"region" => "Москва"
"area_fias_id" => null
"area_kladr_id" => null
"area_with_type" => null
"area_type" => null
"area_type_full" => null
"area" => null
"city_fias_id" => "0c5b2444-70a0-4932-980c-b4dc0d3f02b5"
"city_kladr_id" => "7700000000000"
"city_with_type" => "г Москва"
"city_type" => "г"
"city_type_full" => "город"
"city" => "Москва"
"city_area" => null
"city_district_fias_id" => null
"city_district_kladr_id" => null
"city_district_with_type" => null
"city_district_type" => null
"city_district_type_full" => null
"city_district" => null
"settlement_fias_id" => null
"settlement_kladr_id" => null
"settlement_with_type" => null
"settlement_type" => null
"settlement_type_full" => null
"settlement" => null
"street_fias_id" => "95dbf7fb-0dd4-4a04-8100-4f6c847564b5"
"street_kladr_id" => "77000000000283600"
"street_with_type" => "ул Сухонская"
"street_type" => "ул"
"street_type_full" => "улица"
"street" => "Сухонская"
"house_fias_id" => "abc31736-35c1-4443-a061-b67c183b590a"
"house_kladr_id" => "7700000000028360005"
"house_type" => "д"
"house_type_full" => "дом"
"house" => "11А"
"block_type" => null
"block_type_full" => null
"block" => null
"flat_type" => null
"flat_type_full" => null
"flat" => null
"flat_area" => null
"square_meter_price" => null
"flat_price" => null
"postal_box" => null
"fias_id" => "abc31736-35c1-4443-a061-b67c183b590a"
"fias_code" => "77000000000000028360005"
"fias_level" => "8"
"fias_actuality_state" => "0"
"kladr_id" => "7700000000028360005"
"geoname_id" => "524894"
"capital_marker" => "0"
"okato" => "45280583000"
"oktmo" => "45362000"
"tax_office" => "7715"
"tax_office_legal" => "7715"
"timezone" => null
"geo_lat" => "55.878212"
"geo_lon" => "37.652016"
"beltway_hit" => null
"beltway_distance" => null
"metro" => null
"qc_geo" => "0"
"qc_complete" => null
"qc_house" => null
"history_values" => null
"unparsed_parts" => null
"source" => null
"qc" => null
]
]
]
]
Описание ответа
Название | Описание |
---|---|
value |
Адрес одной строкой (как показывается в списке подсказок) |
unrestricted_value |
Адрес одной строкой (полный, с индексом) |
data |
Вложенный массив данных аналагичный структуре выдачи метода DaDataAddress::standardization(string $address) |
Exceptions
При вызове методов, вы можете обрабатывать коды исключений и их сообщения
Код | Описание |
---|---|
400 |
Некорректный запрос |
401 |
В запросе отсутствует API-ключ |
403 |
Не подтверждена почта или недостаточно средств для обработки запроса, пополните баланс |
405 |
Запрос сделан с методом, отличным от POST |
413 |
Слишком большая длина запроса или слишком много условий |
429 |
Слишком много запросов в секунду или новых соединений в минуту |
5xx |
Произошла внутренняя ошибка сервиса |
Более детальную информацию вы можете получить из сообщения исключения.
Пример получения сообщения исключения
<?php
namespace App;
use SushiMarket\DaData\Facades\DaDataAddress;
/**
* Class DaData
* @package App\DaData
*/
class DaData
{
/**
* DaData geolocate example
*
* @return void
*/
public function geolocateExample() : void
{
try {
$dadata = DaDataAddress::geolocate('55.878', '37.653', 2);
dd($dadata);
} catch (\Exception $e) {
dd($e->getMessage());
}
}
}
DaDataAddress::iplocate(string $ip, int $count, int $language)
определяет город по IP адресу.
Основные кейсы:
- Поддерживает как IPv4, так и IPv6 адреса
- Возвращает детальную информацию о городе, в том числе почтовый индекс.
- "Я тебя по айпи вычислю!"
Параметры вызова
Название | Тип | Optional | Default value | Описание |
---|---|---|---|---|
ip |
string |
false |
IPv4 или IPv6 | |
count |
int |
true |
10 | Количество результатов (максимум — 20) |
language |
int |
true |
1 | Язык ответа. Он может быть русский значение language = 1 или английским, значение language = 2 . Мы призываем использовать константы Language::RU или Language::EN |
Пример вызова
<?php
namespace App;
use SushiMarket\DaData\Facades\DaDataAddress;
/**
* Class DaData
* @package App\DaData
*/
class DaData
{
/**
* DaData iplocate example
*
* @return void
*/
public function iplocateExample() : void
{
$dadata = DaDataAddress::iplocate('46.226.227.20', 2);
dd($dadata);
}
}
Пример ответа
array:1 [
"location" => array:3 [
"value" => "г Краснодар"
"unrestricted_value" => "350000, Краснодарский край, г Краснодар"
"data" => array:81 [
"postal_code" => "350000"
"country" => "Россия"
"country_iso_code" => "RU"
"federal_district" => "Южный"
"region_fias_id" => "d00e1013-16bd-4c09-b3d5-3cb09fc54bd8"
"region_kladr_id" => "2300000000000"
"region_iso_code" => "RU-KDA"
"region_with_type" => "Краснодарский край"
"region_type" => "край"
"region_type_full" => "край"
"region" => "Краснодарский"
"area_fias_id" => null
"area_kladr_id" => null
"area_with_type" => null
"area_type" => null
"area_type_full" => null
"area" => null
"city_fias_id" => "7dfa745e-aa19-4688-b121-b655c11e482f"
"city_kladr_id" => "2300000100000"
"city_with_type" => "г Краснодар"
"city_type" => "г"
"city_type_full" => "город"
"city" => "Краснодар"
"city_area" => null
"city_district_fias_id" => null
"city_district_kladr_id" => null
"city_district_with_type" => null
"city_district_type" => null
"city_district_type_full" => null
"city_district" => null
"settlement_fias_id" => null
"settlement_kladr_id" => null
"settlement_with_type" => null
"settlement_type" => null
"settlement_type_full" => null
"settlement" => null
"street_fias_id" => null
"street_kladr_id" => null
"street_with_type" => null
"street_type" => null
"street_type_full" => null
"street" => null
"house_fias_id" => null
"house_kladr_id" => null
"house_type" => null
"house_type_full" => null
"house" => null
"block_type" => null
"block_type_full" => null
"block" => null
"flat_type" => null
"flat_type_full" => null
"flat" => null
"flat_area" => null
"square_meter_price" => null
"flat_price" => null
"postal_box" => null
"fias_id" => "7dfa745e-aa19-4688-b121-b655c11e482f"
"fias_code" => "23000001000000000000000"
"fias_level" => "4"
"fias_actuality_state" => "0"
"kladr_id" => "2300000100000"
"geoname_id" => "542420"
"capital_marker" => "2"
"okato" => "03401000000"
"oktmo" => "03701000001"
"tax_office" => "2300"
"tax_office_legal" => "2300"
"timezone" => null
"geo_lat" => "45.0401604"
"geo_lon" => "38.9759647"
"beltway_hit" => null
"beltway_distance" => null
"metro" => null
"qc_geo" => "4"
"qc_complete" => null
"qc_house" => null
"history_values" => null
"unparsed_parts" => null
"source" => null
"qc" => null
]
]
]
Описание ответа
Название | Описание |
---|---|
value |
Адрес одной строкой (как показывается в списке подсказок) |
unrestricted_value |
Адрес одной строкой (полный, с индексом) |
data |
Вложенный массив данных аналагичный структуре выдачи метода DaDataAddress::standardization(string $address) |
Exceptions
При вызове методов, вы можете обрабатывать коды исключений и их сообщения
Код | Описание |
---|---|
400 |
Некорректный запрос |
401 |
В запросе отсутствует API-ключ |
403 |
Не подтверждена почта или недостаточно средств для обработки запроса, пополните баланс |
405 |
Запрос сделан с методом, отличным от POST |
413 |
Слишком большая длина запроса или слишком много условий |
429 |
Слишком много запросов в секунду или новых соединений в минуту |
5xx |
Произошла внутренняя ошибка сервиса |
Более детальную информацию вы можете получить из сообщения исключения.
Пример получения сообщения исключения
<?php
namespace App;
use SushiMarket\DaData\Facades\DaDataAddress;
/**
* Class DaData
* @package App\DaData
*/
class DaData
{
/**
* DaData geolocate example
*
* @return void
*/
public function geolocateExample() : void
{
try {
$dadata = DaDataAddress::iplocate('46.226.227.20', 2);
dd($dadata);
} catch (\Exception $e) {
dd($e->getMessage());
}
}
}
DaDataAddress::id(string $ip, int $count, int $language)
определяет адреса по КЛАДР или ФИАС коду.
Основные кейсы:
- Поиск по КЛАДР-код, только для России;
- ФИАС-код, только для России;
- Идентификатор OpenStreetMap, только для Белоруссии;
- Идентификатор GeoNames, для всех остальных стран.
Параметры вызова
Название | Тип | Optional | Default value | Описание |
---|---|---|---|---|
id |
string |
false |
Текст запроса | |
count |
int |
true |
10 | Количество результатов (максимум — 20) |
language |
int |
true |
1 | Язык ответа. Он может быть русский значение language = 1 или английским, значение language = 2 . Мы призываем использовать константы Language::RU или Language::EN |
Пример вызова
<?php
namespace App;
use SushiMarket\DaData\Enums\Language;
use SushiMarket\DaData\Facades\DaDataAddress;
/**
* Class DaData
* @package App\DaData
*/
class DaData
{
/**
* DaData ID example
*
* @return void
*/
public function idExample() : void
{
$dadata = DaDataAddress::id('9120b43f-2fae-4838-a144-85e43c2bfb29', 2, Language::RU);
dd($dadata);
}
}
Пример ответа
array:1 [
"suggestions" => array:1 [
0 => array:3 [
"value" => "г Москва, ул Снежная"
"unrestricted_value" => "129323, г Москва, р-н Свиблово, ул Снежная"
"data" => array:81 [
"postal_code" => "129323"
"country" => "Россия"
"country_iso_code" => "RU"
"federal_district" => "Центральный"
"region_fias_id" => "0c5b2444-70a0-4932-980c-b4dc0d3f02b5"
"region_kladr_id" => "7700000000000"
"region_iso_code" => "RU-MOW"
"region_with_type" => "г Москва"
"region_type" => "г"
"region_type_full" => "город"
"region" => "Москва"
"area_fias_id" => null
"area_kladr_id" => null
"area_with_type" => null
"area_type" => null
"area_type_full" => null
"area" => null
"city_fias_id" => "0c5b2444-70a0-4932-980c-b4dc0d3f02b5"
"city_kladr_id" => "7700000000000"
"city_with_type" => "г Москва"
"city_type" => "г"
"city_type_full" => "город"
"city" => "Москва"
"city_area" => "Северо-восточный"
"city_district_fias_id" => null
"city_district_kladr_id" => null
"city_district_with_type" => "р-н Свиблово"
"city_district_type" => "р-н"
"city_district_type_full" => "район"
"city_district" => "Свиблово"
"settlement_fias_id" => null
"settlement_kladr_id" => null
"settlement_with_type" => null
"settlement_type" => null
"settlement_type_full" => null
"settlement" => null
"street_fias_id" => "9120b43f-2fae-4838-a144-85e43c2bfb29"
"street_kladr_id" => "77000000000268400"
"street_with_type" => "ул Снежная"
"street_type" => "ул"
"street_type_full" => "улица"
"street" => "Снежная"
"house_fias_id" => null
"house_kladr_id" => null
"house_type" => null
"house_type_full" => null
"house" => null
"block_type" => null
"block_type_full" => null
"block" => null
"flat_type" => null
"flat_type_full" => null
"flat" => null
"flat_area" => null
"square_meter_price" => null
"flat_price" => null
"postal_box" => null
"fias_id" => "9120b43f-2fae-4838-a144-85e43c2bfb29"
"fias_code" => "77000000000000026840000"
"fias_level" => "7"
"fias_actuality_state" => "0"
"kladr_id" => "77000000000268400"
"geoname_id" => "524901"
"capital_marker" => "0"
"okato" => "45280580000"
"oktmo" => "45361000"
"tax_office" => "7716"
"tax_office_legal" => "7716"
"timezone" => null
"geo_lat" => "55.8523466"
"geo_lon" => "37.6469376"
"beltway_hit" => null
"beltway_distance" => null
"metro" => null
"qc_geo" => "2"
"qc_complete" => null
"qc_house" => null
"history_values" => null
"unparsed_parts" => null
"source" => null
"qc" => null
]
]
]
]
Описание ответа
Название | Описание |
---|---|
value |
Адрес одной строкой (как показывается в списке подсказок) |
unrestricted_value |
Адрес одной строкой (полный, с индексом) |
data |
Вложенный массив данных аналагичный структуре выдачи метода DaDataAddress::standardization(string $address) |
Exceptions
При вызове методов, вы можете обрабатывать коды исключений и их сообщения
Код | Описание |
---|---|
400 |
Некорректный запрос |
401 |
В запросе отсутствует API-ключ |
403 |
Не подтверждена почта или недостаточно средств для обработки запроса, пополните баланс |
405 |
Запрос сделан с методом, отличным от POST |
413 |
Слишком большая длина запроса или слишком много условий |
429 |
Слишком много запросов в секунду или новых соединений в минуту |
5xx |
Произошла внутренняя ошибка сервиса |
Более детальную информацию вы можете получить из сообщения исключения.
Пример получения сообщения исключения
<?php
namespace App;
use SushiMarket\DaData\Enums\Language;
use SushiMarket\DaData\Facades\DaDataAddress;
/**
* Class DaData
* @package App\DaData
*/
class DaData
{
/**
* DaData geolocate example
*
* @return void
*/
public function geolocateExample() : void
{
try {
$dadata = DaDataAddress::id('9120b43f-2fae-4838-a144-85e43c2bfb29', 2, Language::RU);
dd($dadata);
} catch (\Exception $e) {
dd($e->getMessage());
}
}
}
DaDataAddress::postalUnitByAddress(string $address, int $count, int $language)
определяет ближайшее почтовые отделения по адресу
Если интернет-магазин доставляет покупки почтой по России, хорошо бы подсказать человеку, где и когда он может забрать посылку. В этом поможет справочник почтовых отделений — в нём есть точный адрес, координаты и часы работы отделения, а ещё отметка, если оно временно закрыто.
Параметры вызова
Название | Тип | Optional | Default value | Описание |
---|---|---|---|---|
address |
string |
false |
Адресс | |
count |
int |
true |
10 | Количество результатов (максимум — 20) |
language |
int |
true |
1 | Язык ответа. Он может быть русский значение language = 1 или английским, значение language = 2 . Мы призываем использовать константы Language::RU или Language::EN |
Пример вызова
<?php
namespace App;
use SushiMarket\DaData\Enums\Language;
use SushiMarket\DaData\Facades\DaDataAddress;
/**
* Class DaData
* @package App\DaData
*/
class DaData
{
/**
* DaData fine postal unit by address example
*
* @return void
*/
public function postalUnitByAddressExample() : void
{
$dadata = DaDataAddress::postalUnitByAddress('дежнева 2а', 2, Language::RU);
dd($dadata);
}
}
Пример ответа
array:1 [
"suggestions" => array:1 [
0 => array:3 [
"value" => "127642"
"unrestricted_value" => "г Москва, проезд Дежнёва, д 2А"
"data" => array:15 [
"postal_code" => "127642"
"is_closed" => false
"type_code" => "ГОПС"
"address_str" => "г Москва, проезд Дежнёва, д 2А"
"address_kladr_id" => "7700000000000"
"address_qc" => "0"
"geo_lat" => 55.872127
"geo_lon" => 37.651223
"schedule_mon" => "08:00-20:00"
"schedule_tue" => "08:00-20:00"
"schedule_wed" => "08:00-20:00"
"schedule_thu" => "08:00-20:00"
"schedule_fri" => "08:00-20:00"
"schedule_sat" => "09:00-18:00"
"schedule_sun" => "09:00-18:00"
]
]
]
]
Описание ответа
Название | Описание |
---|---|
value |
Адрес одной строкой (как показывается в списке подсказок) |
unrestricted_value |
Адрес одной строкой (полный, с индексом) |
data |
Вложенный массив рассмотренный ниже |
Описание вложенного массива data
Название | Описание |
---|---|
value |
Адрес одной строкой (как показывается в списке подсказок) |
postal_code |
Индекс |
is_closed |
true , если отделение закрыто, иначе false |
type_code |
Тип отделения |
address_str |
Адрес одной строкой |
address_kladr_id |
КЛАДР-код населённого пункта |
address_qc |
Код проверки адреса |
geo_lat |
Широта |
geo_lon |
Долгота |
schedule_mon |
Режим работы в понедельник |
schedule_tue |
Режим работы во вторник |
schedule_wed |
Режим работы в среду |
schedule_thu |
Режим работы в четверг |
schedule_fri |
Режим работы в пятницу |
schedule_sat |
Режим работы в субботу |
schedule_sun |
Режим работы в воскресенье |
Exceptions
При вызове методов, вы можете обрабатывать коды исключений и их сообщения
Код | Описание |
---|---|
400 |
Некорректный запрос |
401 |
В запросе отсутствует API-ключ |
403 |
Не подтверждена почта или недостаточно средств для обработки запроса, пополните баланс |
405 |
Запрос сделан с методом, отличным от POST |
413 |
Слишком большая длина запроса или слишком много условий |
429 |
Слишком много запросов в секунду или новых соединений в минуту |
5xx |
Произошла внутренняя ошибка сервиса |
Более детальную информацию вы можете получить из сообщения исключения.
DaDataAddress::postalUnitById(int $code, int $count, int $language)
определяет адреса почтовых отделений почтовому коду
Параметры вызова
Название | Тип | Optional | Default value | Описание |
---|---|---|---|---|
code |
int |
false |
Индекс | |
count |
int |
true |
10 | Количество результатов (максимум — 20) |
language |
int |
true |
1 | Язык ответа. Он может быть русский значение language = 1 или английским, значение language = 2 . Мы призываем использовать константы Language::RU или Language::EN |
Пример вызова
<?php
namespace App;
use SushiMarket\DaData\Enums\Language;
use SushiMarket\DaData\Facades\DaDataAddress;
/**
* Class DaData
* @package App\DaData
*/
class DaData
{
/**
* DaData fine postal unit by zip example
*
* @return void
*/
public function postalUnitByIdExample() : void
{
$dadata = DaDataAddress::postalUnitById(127642, 2, Language::RU);
dd($dadata);
}
}
Пример ответа
array:1 [
"suggestions" => array:1 [
0 => array:3 [
"value" => "127642"
"unrestricted_value" => "г Москва, проезд Дежнёва, д 2А"
"data" => array:15 [
"postal_code" => "127642"
"is_closed" => false
"type_code" => "ГОПС"
"address_str" => "г Москва, проезд Дежнёва, д 2А"
"address_kladr_id" => "7700000000000"
"address_qc" => "0"
"geo_lat" => 55.872127
"geo_lon" => 37.651223
"schedule_mon" => "08:00-20:00"
"schedule_tue" => "08:00-20:00"
"schedule_wed" => "08:00-20:00"
"schedule_thu" => "08:00-20:00"
"schedule_fri" => "08:00-20:00"
"schedule_sat" => "09:00-18:00"
"schedule_sun" => "09:00-18:00"
]
]
]
]
Описание ответа
Название | Описание |
---|---|
value |
Адрес одной строкой (как показывается в списке подсказок) |
unrestricted_value |
Адрес одной строкой (полный, с индексом) |
data |
Вложенный массив рассмотренный ниже |
Описание вложенного массива data
Название | Описание |
---|---|
value |
Адрес одной строкой (как показывается в списке подсказок) |
postal_code |
Индекс |
is_closed |
true , если отделение закрыто, иначе false |
type_code |
Тип отделения |
address_str |
Адрес одной строкой |
address_kladr_id |
КЛАДР-код населённого пункта |
address_qc |
Код проверки адреса |
geo_lat |
Широта |
geo_lon |
Долгота |
schedule_mon |
Режим работы в понедельник |
schedule_tue |
Режим работы во вторник |
schedule_wed |
Режим работы в среду |
schedule_thu |
Режим работы в четверг |
schedule_fri |
Режим работы в пятницу |
schedule_sat |
Режим работы в субботу |
schedule_sun |
Режим работы в воскресенье |
Exceptions
При вызове методов, вы можете обрабатывать коды исключений и их сообщения
Код | Описание |
---|---|
400 |
Некорректный запрос |
401 |
В запросе отсутствует API-ключ |
403 |
Не подтверждена почта или недостаточно средств для обработки запроса, пополните баланс |
405 |
Запрос сделан с методом, отличным от POST |
413 |
Слишком большая длина запроса или слишком много условий |
429 |
Слишком много запросов в секунду или новых соединений в минуту |
5xx |
Произошла внутренняя ошибка сервиса |
Более детальную информацию вы можете получить из сообщения исключения.
DaDataAddress::postalUnitByGeoLocate(float $lat, float $lon, int $radius_meters, int $count, int $language)
определяет адреса почтовых отделений по координатам
Параметры вызова
Название | Тип | Optional | Default value | Описание |
---|---|---|---|---|
lat |
int |
false |
Широта | |
lon |
int |
false |
Долгота | |
radius_meters |
int |
false |
1000 | Радиус поиска в метрах. Максимум 1000 |
count |
int |
true |
10 | Количество результатов (максимум — 20) |
language |
int |
true |
1 | Язык ответа. Он может быть русский значение language = 1 или английским, значение language = 2 . Мы призываем использовать константы Language::RU или Language::EN |
Пример вызова
<?php
namespace App;
use SushiMarket\DaData\Enums\Language;
use SushiMarket\DaData\Facades\DaDataAddress;
/**
* Class DaData
* @package App\DaData
*/
class DaData
{
/**
* DaData fine postal unit by GEO
*
* @return void
*/
public function postalUnitByGeoLocateExample() : void
{
$dadata = DaDataAddress::postalUnitByGeoLocate('55.878', '37.653', 1000, 2, Language::RU);
dd($dadata);
}
}
Пример ответа
array:1 [
"suggestions" => array:2 [
0 => array:3 [
"value" => "127642"
"unrestricted_value" => "г Москва, проезд Дежнёва, д 2А"
"data" => array:15 [
"postal_code" => "127642"
"is_closed" => false
"type_code" => "ГОПС"
"address_str" => "г Москва, проезд Дежнёва, д 2А"
"address_kladr_id" => "7700000000000"
"address_qc" => "0"
"geo_lat" => 55.872127
"geo_lon" => 37.651223
"schedule_mon" => "08:00-20:00"
"schedule_tue" => "08:00-20:00"
"schedule_wed" => "08:00-20:00"
"schedule_thu" => "08:00-20:00"
"schedule_fri" => "08:00-20:00"
"schedule_sat" => "09:00-18:00"
"schedule_sun" => "09:00-18:00"
]
]
1 => array:3 [
"value" => "127221"
"unrestricted_value" => "г Москва, ул Полярная, д 16 к 1"
"data" => array:15 [
"postal_code" => "127221"
"is_closed" => false
"type_code" => "ГОПС"
"address_str" => "г Москва, ул Полярная, д 16 к 1"
"address_kladr_id" => "7700000000000"
"address_qc" => "0"
"geo_lat" => 55.876607
"geo_lon" => 37.637308
"schedule_mon" => "08:00-20:00"
"schedule_tue" => "08:00-20:00"
"schedule_wed" => "08:00-20:00"
"schedule_thu" => "08:00-20:00"
"schedule_fri" => "08:00-20:00"
"schedule_sat" => "09:00-18:00"
"schedule_sun" => "09:00-18:00"
]
]
]
]
Описание ответа
Название | Описание |
---|---|
value |
Адрес одной строкой (как показывается в списке подсказок) |
unrestricted_value |
Адрес одной строкой (полный, с индексом) |
data |
Вложенный массив рассмотренный ниже |
Описание вложенного массива data
Название | Описание |
---|---|
value |
Адрес одной строкой (как показывается в списке подсказок) |
postal_code |
Индекс |
is_closed |
true , если отделение закрыто, иначе false |
type_code |
Тип отделения |
address_str |
Адрес одной строкой |
address_kladr_id |
КЛАДР-код населённого пункта |
address_qc |
Код проверки адреса |
geo_lat |
Широта |
geo_lon |
Долгота |
schedule_mon |
Режим работы в понедельник |
schedule_tue |
Режим работы во вторник |
schedule_wed |
Режим работы в среду |
schedule_thu |
Режим работы в четверг |
schedule_fri |
Режим работы в пятницу |
schedule_sat |
Режим работы в субботу |
schedule_sun |
Режим работы в воскресенье |
Exceptions
При вызове методов, вы можете обрабатывать коды исключений и их сообщения
Код | Описание |
---|---|
400 |
Некорректный запрос |
401 |
В запросе отсутствует API-ключ |
403 |
Не подтверждена почта или недостаточно средств для обработки запроса, пополните баланс |
405 |
Запрос сделан с методом, отличным от POST |
413 |
Слишком большая длина запроса или слишком много условий |
429 |
Слишком много запросов в секунду или новых соединений в минуту |
5xx |
Произошла внутренняя ошибка сервиса |
Более детальную информацию вы можете получить из сообщения исключения.
DaDataAddress::delivery(string $code)
помогает решить сзадачу определения идентификатора города в СДЭК, Boxberry и DPD
Службы доставки часто используют собственные идентификаторы городов, и требуют от магазина указывать их в заказе.
Метод DaDataAddress::delivery(string $code)
определяет идентификатор города в службе доставке на основании КЛАДР-кода города.
Параметры вызова
Название | Тип | Optional | Default value | Описание |
---|---|---|---|---|
code |
string |
false |
Код |
Пример вызова
<?php
namespace App;
use SushiMarket\DaData\Facades\DaDataAddress;
/**
* Class DaData
* @package App\DaData
*/
class DaData
{
/**
* DaData define city code by delivery code
*
* @return void
*/
public function deliveryExample() : void
{
$dadata = DaDataAddress::delivery('3100400100000');
dd($dadata);
}
}
Пример ответа
array:1 [
"suggestions" => array:1 [
0 => array:3 [
"value" => "3100400100000"
"unrestricted_value" => "fe7eea4a-875a-4235-aa61-81c2a37a0440"
"data" => array:5 [
"kladr_id" => "3100400100000"
"fias_id" => "fe7eea4a-875a-4235-aa61-81c2a37a0440"
"boxberry_id" => "01929"
"cdek_id" => "344"
"dpd_id" => "196006461"
]
]
]
]
Описание ответа
Название | Описание |
---|---|
value |
Адрес одной строкой (как показывается в списке подсказок) |
unrestricted_value |
Адрес одной строкой (полный, с индексом) |
data |
Вложенный массив рассмотренный ниже |
Описание вложенного массива data
Название | Описание |
---|---|
kladr_id |
КЛАДР-код города |
fias_id |
ФИАС-код города |
boxberry_id |
Идентификатор города по справочнику Boxberry |
cdek_id |
Идентификатор города по справочнику СДЭК |
dpd_id |
Идентификатор города по справочнику DPD |
Exceptions
При вызове методов, вы можете обрабатывать коды исключений и их сообщения
Код | Описание |
---|---|
400 |
Некорректный запрос |
401 |
В запросе отсутствует API-ключ |
403 |
Не подтверждена почта или недостаточно средств для обработки запроса, пополните баланс |
405 |
Запрос сделан с методом, отличным от POST |
413 |
Слишком большая длина запроса или слишком много условий |
429 |
Слишком много запросов в секунду или новых соединений в минуту |
5xx |
Произошла внутренняя ошибка сервиса |
Более детальную информацию вы можете получить из сообщения исключения.
DaDataAddress::fias(string $code)
Находит адрес в справочнике ФИАС по коду КЛАДР или ФИАС.
ФИАС-коды домов иногда меняются, а метод ищет только по актуальным кодам. Поэтому рекомендуем помимо ФИАС-кода дома сохранять адрес одной строкой — иначе не получится восстановить адрес, когда ФИАС-код изменится.
По КЛАДР-коду метод ищет только до улицы, потому что в ФИАС нет КЛАДР-кодов домов.
Параметры вызова
Название | Тип | Optional | Default value | Описание |
---|---|---|---|---|
code |
string |
false |
ФИАС код |
Пример вызова
<?php
namespace App;
use SushiMarket\DaData\Facades\DaDataAddress;
/**
* Class DaData
* @package App\DaData
*/
class DaData
{
/**
* DaData get city by FIAS code
*
* @return void
*/
public function fiasExample() : void
{
$dadata = DaDataAddress::fias('9120b43f-2fae-4838-a144-85e43c2bfb29');
dd($dadata);
}
}
Пример ответа
array:1 [
"suggestions" => array:1 [
0 => array:3 [
"value" => "г Москва, ул Снежная"
"unrestricted_value" => "129323, г Москва, ул Снежная"
"data" => array:64 [
"postal_code" => "129323"
"region_fias_id" => "0c5b2444-70a0-4932-980c-b4dc0d3f02b5"
"region_kladr_id" => "7700000000000"
"region_with_type" => "г Москва"
"region_type" => "г"
"region_type_full" => "город"
"region" => "Москва"
"area_fias_id" => null
"area_kladr_id" => null
"area_with_type" => null
"area_type" => null
"area_type_full" => null
"area" => null
"city_fias_id" => null
"city_kladr_id" => null
"city_with_type" => null
"city_type" => null
"city_type_full" => null
"city" => null
"city_district_fias_id" => null
"city_district_kladr_id" => null
"city_district_with_type" => null
"city_district_type" => null
"city_district_type_full" => null
"city_district" => null
"settlement_fias_id" => null
"settlement_kladr_id" => null
"settlement_with_type" => null
"settlement_type" => null
"settlement_type_full" => null
"settlement" => null
"planning_structure_fias_id" => null
"planning_structure_kladr_id" => null
"planning_structure_with_type" => null
"planning_structure_type" => null
"planning_structure_type_full" => null
"planning_structure" => null
"street_fias_id" => "9120b43f-2fae-4838-a144-85e43c2bfb29"
"street_kladr_id" => "77000000000268400"
"street_with_type" => "ул Снежная"
"street_type" => "ул"
"street_type_full" => "улица"
"street" => "Снежная"
"house_fias_id" => null
"house_kladr_id" => null
"house_type" => null
"house" => null
"block" => null
"building_type" => null
"building" => null
"fias_id" => "9120b43f-2fae-4838-a144-85e43c2bfb29"
"fias_code" => "7700000000000002684"
"fias_level" => "7"
"fias_actuality_state" => "0"
"kladr_id" => "77000000000268400"
"capital_marker" => "0"
"okato" => "45280580000"
"oktmo" => "45361000"
"cadastral_number" => null
"tax_office" => "7716"
"tax_office_legal" => "7716"
"history_values" => null
"source" => null
"qc" => null
]
]
]
]
Описание ответа
Название | Описание |
---|---|
value |
Адрес одной строкой (как показывается в списке подсказок) |
unrestricted_value |
Адрес одной строкой (полный, с индексом) |
data |
Вложенный массив данных аналагичный структуре выдачи метода DaDataAddress::standardization(string $address) |
Exceptions
При вызове методов, вы можете обрабатывать коды исключений и их сообщения
Код | Описание |
---|---|
400 |
Некорректный запрос |
401 |
В запросе отсутствует API-ключ |
403 |
Не подтверждена почта или недостаточно средств для обработки запроса, пополните баланс |
405 |
Запрос сделан с методом, отличным от POST |
413 |
Слишком большая длина запроса или слишком много условий |
429 |
Слишком много запросов в секунду или новых соединений в минуту |
5xx |
Произошла внутренняя ошибка сервиса |
Более детальную информацию вы можете получить из сообщения исключения.
Пример получения сообщения исключения
<?php
namespace App;
use SushiMarket\DaData\Facades\DaDataAddress;
/**
* Class DaData
* @package App\DaData
*/
class DaData
{
/**
* DaData define city by FIAS code
*
* @return void
*/
public function fiasExample() : void
{
try {
$dadata = DaDataAddress::fias('9120b43f-2fae-4838-a144-85e43c2bfb29');
dd($dadata);
} catch (\Exception $e) {
dd($e->getMessage());
}
}
}
DaDataName::fias(string $name)
Разбивает ФИО из строки по отдельным полям (фамилия, имя, отчество). Определяет пол и склоняет по падежам.
Основные кейсы
- Исправляет опечатки и транслитерирует.
- Проставляет пол.
- Склоняет по падежам (кого? кому? кем?).
Параметры вызова
Название | Тип | Optional | Default value | Описание |
---|---|---|---|---|
name |
string |
false |
ФИО |
Пример вызова
<?php
namespace App;
use SushiMarket\DaData\Facades\DaDataName;
/**
* Class DaData
* @package App\DaData
*/
class DaData
{
/**
* DaData name standardization
*
* @return void
*/
public function nameExample() : void
{
$dadata = DaDataName::standardization('Срегей владимерович иванов');
dd($dadata);
}
}
Пример ответа
array:1 [
0 => array:10 [
"source" => "Срегей владимерович иванов"
"result" => "Иванов Сергей Владимирович"
"result_genitive" => "Иванова Сергея Владимировича"
"result_dative" => "Иванову Сергею Владимировичу"
"result_ablative" => "Ивановым Сергеем Владимировичем"
"surname" => "Иванов"
"name" => "Сергей"
"patronymic" => "Владимирович"
"gender" => "М"
"qc" => 1
]
]
Описание ответа
Название | Описание |
---|---|
source |
Исходное ФИО одной строкой |
result |
Стандартизованное ФИО одной строкой |
result_genitive |
ФИО в родительном падеже (кого?) |
result_dative |
ФИО в дательном падеже (кому?) |
result_ablative |
ФИО в творительном падеже (кем?) |
surname |
Фамилия |
name |
Имя |
patronymic |
Отчество |
gender |
Пол. М - мужской (male), Ж - женский (female), НД - не удалось однозначно определить |
qc |
Код проверки. Таблица кодов проверка ниже |
Коды проверки (параметр ответа qc
)
qc |
Нужна ручная проверка? | Описание |
---|---|---|
0 | нет | Исходное значение распознано уверенно |
2 | нет | Исходное значение пустое или заведомо «мусорное» |
1 | да | Исходное значение распознано с допущениями или не распознано |
Exceptions
При вызове методов, вы можете обрабатывать коды исключений и их сообщения
Код | Описание |
---|---|
400 |
Некорректный запрос |
401 |
В запросе отсутствует API-ключ |
403 |
Не подтверждена почта или недостаточно средств для обработки запроса, пополните баланс |
405 |
Запрос сделан с методом, отличным от POST |
413 |
Слишком большая длина запроса или слишком много условий |
429 |
Слишком много запросов в секунду или новых соединений в минуту |
5xx |
Произошла внутренняя ошибка сервиса |
Более детальную информацию вы можете получить из сообщения исключения.
Пример получения сообщения исключения
<?php
namespace App;
use SushiMarket\DaData\Facades\DaDataName;
/**
* Class DaData
* @package App\DaData
*/
class DaData
{
/**
* DaData define city by FIAS code
*
* @return void
*/
public function nameExample() : void
{
try {
$dadata = DaDataName::standardization('Срегей владимерович иванов');
dd($dadata);
} catch (\Exception $e) {
dd($e->getMessage());
}
}
}
DaDataName::prompt(string $name, int $count, int $gender, array $parts)
Помогает человеку быстро ввести ФИО на веб-форме или в приложении.
Основные кейсы
- Подсказывает ФИО одной строкой или отдельно фамилию, имя, отчество.
- Исправляет клавиатурную раскладку («fynjy» → «Антон»).
- Определяет пол.
Метод не предназначен для выполнения следующих задач
- Автоматически (без участия человека) обработать ФИО из базы или файла.
- Транслитерировать (Juliia Somova → Юлия Сомова).
- Склонять по падежам (кого? кому? кем?).
Подсказки не подходят для автоматической обработки ФИО. Они предлагают варианты, но не гарантируют, что угадали правильно. Поэтому окончательное решение всегда должен принимать человек.
Для автоматической обработки, транслитерации и склонения по падежам используйте DaDataName::fias(string $name)
метод ФИО, описание которого вы найдете выше.
Параметры вызова
Название | Тип | Optional | Default value | Описание |
---|---|---|---|---|
query |
string |
false |
Текст запроса | |
count |
int |
true |
10 | Количество результатов. Максимум 20 |
gender |
int |
true |
0 | Пол. Для управления пола, мы советуем использовать константы класса Gender , Неизвестный пол Gender::UNKNOWN , Gender::MALE - мужской, Gender::FEMALE - женский |
parts |
array |
true |
[] | Подсказки по фасти ФИО |
Формирования массива подсказок по фасти ФИО parts
Для формирования, воспользуйтесь набором констант классаа Parts
.
Только имена:
use SushiMarket\DaData\Enums\Gender;
use SushiMarket\DaData\Enums\Parts;
...
$data = DaDataName::prompt('Викто', 2, Gender::UNKNOWN, [Parts::NAME]);
Имена и отчества:
use SushiMarket\DaData\Enums\Gender;
use SushiMarket\DaData\Enums\Parts;
...
$data = DaDataName::prompt('Викто', 2, Gender::UNKNOWN, [Parts::NAME, Parts::PATRONYMIC);
Имена и фамилии:
use SushiMarket\DaData\Enums\Gender;
use SushiMarket\DaData\Enums\Parts;
...
$data = DaDataName::prompt('Викто', 2, Gender::UNKNOWN, [Parts::NAME, Parts::SURNAME]);
Пример вызова
<?php
namespace App;
use SushiMarket\DaData\Enums\Gender;
use SushiMarket\DaData\Enums\Parts;
use SushiMarket\DaData\Facades\DaDataName;
/**
* Class DaData
* @package App\DaData
*/
class DaData
{
/**
* DaData name prompt
*
* @return void
*/
public function nameExample() : void
{
$dadata = DaDataName::prompt('Викто', 2, Gender::UNKNOWN, [Parts::NAME]);
dd($dadata);
}
}
Пример ответа
array:1 [
"suggestions" => array:2 [
0 => array:3 [
"value" => "Виктор"
"unrestricted_value" => "Виктор"
"data" => array:6 [
"surname" => null
"name" => "Виктор"
"patronymic" => null
"gender" => "MALE"
"source" => null
"qc" => "0"
]
]
1 => array:3 [
"value" => "Виктория"
"unrestricted_value" => "Виктория"
"data" => array:6 [
"surname" => null
"name" => "Виктория"
"patronymic" => null
"gender" => "FEMALE"
"source" => null
"qc" => "0"
]
]
]
]
Описание ответа
Название | Описание |
---|---|
value |
Исходное ФИО одной строкой |
unrestricted_value |
Стандартизованное ФИО одной строкой |
data['surname'] |
Фамилия |
data['name'] |
Имя |
data['patronymic'] |
Отчество |
data['gender'] |
Пол. MALE - мужской (male), FEMALE - женский (female), UNKNOWN - не удалось однозначно определить |
data['source'] |
Не используется |
date['qc'] |
Код проверки. 0 - все части ФИО известны, 1 - в ФИО есть неизвестная часть |
Exceptions
При вызове методов, вы можете обрабатывать коды исключений и их сообщения
Код | Описание |
---|---|
400 |
Некорректный запрос |
401 |
В запросе отсутствует API-ключ |
403 |
Не подтверждена почта или недостаточно средств для обработки запроса, пополните баланс |
405 |
Запрос сделан с методом, отличным от POST |
413 |
Слишком большая длина запроса или слишком много условий |
429 |
Слишком много запросов в секунду или новых соединений в минуту |
5xx |
Произошла внутренняя ошибка сервиса |
Более детальную информацию вы можете получить из сообщения исключения.
Пример получения сообщения исключения
<?php
namespace App;
use SushiMarket\DaData\Enums\Gender;
use SushiMarket\DaData\Enums\Parts;
use SushiMarket\DaData\Facades\DaDataName;
/**
* Class DaData
* @package App\DaData
*/
class DaData
{
/**
* DaData name prompt
*
* @return void
*/
public function nameExample() : void
{
try {
$dadata = DaDataName::prompt('Викто', 2, Gender::UNKNOWN, [Parts::NAME]);
dd($dadata);
} catch (\Exception $e) {
dd($e->getMessage());
}
}
}
DaDataName::email(string $email)
Исправляет опечатки и проверяет на одноразовый адрес. Классифицирует адреса на личные, корпоративные и «ролевые».
Основные кейсы
- Проверяет формат адреса.
- Исправляет распространённые опечатки.
- Проверяет, не «одноразовый» ли адрес.
- Классифицирует адреса на личные (
@mail.ru
,@yandex.ru
), корпоративные (@myshop.ru
) и «ролевые» (info@
,support@
).
Параметры вызова
Название | Тип | Optional | Default value | Описание |
---|---|---|---|---|
email |
string |
false |
Пример вызова
<?php
namespace App;
use SushiMarket\DaData\Facades\DaDataEmail;
/**
* Class DaData
* @package App\DaData
*/
class DaData
{
/**
* DaData email
*
* @return void
*/
public function emailExample() : void
{
$dadata = DaDataEmail::standardization('serega@yandex/ru');
dd($dadata);
}
}
Пример ответа
array:1 [
0 => array:6 [
"source" => "serega@yandex/ru"
"email" => "serega@yandex.ru"
"local" => "serega"
"domain" => "yandex.ru"
"type" => "PERSONAL"
"qc" => 4
]
]
Описание ответа
Название | Описание |
---|---|
source |
Исходный email |
email |
Стандартизованный email |
local |
Локальная часть адреса (то, что до @ ) |
domain |
Домен (то, что послу @ ) |
type |
Тип адреса. PERSONAL — личный (@mail.ru, @yandex.ru). CORPORATE — корпоративный (@myshop.ru). ROLE — «ролевой» (info@, support@). DISPOSABLE — одноразовый (@temp-mail.ru) |
qc |
Код проверки |
Коды проверки (параметр ответа qc
)
qc |
Нужна ручная проверка? | Описание |
---|---|---|
0 | нет | Корректное значение. Соответствует общепринятым правилам, реальное существование адреса не проверяется |
2 | нет | Пустое или заведомо «мусорное» значение |
3 | нет | «Одноразовый» адрес. Домены 10minutemail.com, getairmail.com, temp-mail.ru и аналогичные |
1 | да | Некорректное значение. Не соответствует общепринятым правилам |
4 | да | Исправлены опечатки |
Exceptions
При вызове методов, вы можете обрабатывать коды исключений и их сообщения
Код | Описание |
---|---|
400 |
Некорректный запрос |
401 |
В запросе отсутствует API-ключ |
403 |
Не подтверждена почта или недостаточно средств для обработки запроса, пополните баланс |
405 |
Запрос сделан с методом, отличным от POST |
413 |
Слишком большая длина запроса или слишком много условий |
429 |
Слишком много запросов в секунду или новых соединений в минуту |
5xx |
Произошла внутренняя ошибка сервиса |
Более детальную информацию вы можете получить из сообщения исключения.
Пример получения сообщения исключения
<?php
namespace App;
use SushiMarket\DaData\Facades\DaDataEmail;
/**
* Class DaData
* @package App\DaData
*/
class DaData
{
/**
* DaData email
*
* @return void
*/
public function nameExample() : void
{
try {
$dadata = DaDataEmail::standardization('serega@yandex/ru');
dd($dadata);
} catch (\Exception $e) {
dd($e->getMessage());
}
}
}
DaDataEmail::prompt(string $email, int $count)
Помогает человеку быстро ввести адрес электоронной почты на веб-форме или в приложении.
Основные кейсы
- Подсказывает локальную (до «собачки») и доменную (после «собачки») части эл. почты.
- Исправляет опечатки (yadex.ru → yandex.ru).
Метод не предназначен для выполнения следующих задач
- Автоматически (без участия человека) проверить адреса из базы или файла.
- Классифицировать адреса на личные (@mail.ru, @yandex.ru), корпоративные (@myshop.ru) и «ролевые» (info@, support@).
- Склонять по падежам (кого? кому? кем?).
Подсказки не подходят для автоматической обработки email. Они предлагают варианты, но не гарантируют, что угадали правильно. Поэтому окончательное решение всегда должен принимать человек.
Для автоматической обработки и классификации адресов используйте DaDataName::email(string $email)
Параметры вызова
Название | Тип | Optional | Default value | Описание |
---|---|---|---|---|
email |
string |
false |
Текст запроса | |
count |
int |
true |
10 | Количество результатов. Максимум 20 |
Пример вызова
<?php
namespace App;
use SushiMarket\DaData\Facades\DaDataEmail;
/**
* Class DaData
* @package App\DaData
*/
class DaData
{
/**
* DaData name prompt
*
* @return void
*/
public function nameExample() : void
{
$dadata = DaDataEmail::prompt('anton@', 2);
dd($dadata);
}
}
Пример ответа
array:1 [
"suggestions" => array:2 [
0 => array:3 [
"value" => "anton@mail.ru"
"unrestricted_value" => "anton@mail.ru"
"data" => array:5 [
"local" => "anton"
"domain" => "mail.ru"
"type" => null
"source" => null
"qc" => null
]
]
1 => array:3 [
"value" => "anton@gmail.com"
"unrestricted_value" => "anton@gmail.com"
"data" => array:5 [
"local" => "anton"
"domain" => "gmail.com"
"type" => null
"source" => null
"qc" => null
]
]
]
]
Описание ответа
Название | Описание |
---|---|
value |
Email одной строкой |
unrestricted_value |
Равно полю value |
data['local'] |
Локальная часть адреса (то, что до @ ) |
data['domain'] |
Домен (то, что послу @ ) |
data['type'] |
Зарезервированы для автоматической обработки адресов через DaDataName::email(string $email) метод |
data['source'] |
Зарезервированы для автоматической обработки адресов через DaDataName::email(string $email) метод |
data['qc'] |
Зарезервированы для автоматической обработки адресов через DaDataName::email(string $email) метод |
Exceptions
При вызове методов, вы можете обрабатывать коды исключений и их сообщения
Код | Описание |
---|---|
400 |
Некорректный запрос |
401 |
В запросе отсутствует API-ключ |
403 |
Не подтверждена почта или недостаточно средств для обработки запроса, пополните баланс |
405 |
Запрос сделан с методом, отличным от POST |
413 |
Слишком большая длина запроса или слишком много условий |
429 |
Слишком много запросов в секунду или новых соединений в минуту |
5xx |
Произошла внутренняя ошибка сервиса |
Более детальную информацию вы можете получить из сообщения исключения.
Пример получения сообщения исключения
<?php
namespace App;
use SushiMarket\DaData\Facades\DaDataEmail;
/**
* Class DaData
* @package App\DaData
*/
class DaData
{
/**
* DaData email prompt
*
* @return void
*/
public function nameExample() : void
{
try {
$dadata = DaDataEmail::prompt('anton@', 2);
dd($dadata);
} catch (\Exception $e) {
dd($e->getMessage());
}
}
}
DaDataPhone::standardization(string $phone);
Проверяет телефон по справочнику Россвязи, определяет оператора с учётом переноса номеров, заполняет страну, город и часовой пояс.
Основные кейсы
- Проверяет телефон.
- Проставляет актуальный код города / DEF-код.
- Восстанавливает оператора. Учитывает переносы номера между операторами.
- Определяет страну, регион, город и часовой пояс.
Параметры вызова
Название | Тип | Optional | Default value | Описание |
---|---|---|---|---|
phone |
string |
false |
Текст запроса |
Пример вызова
<?php
namespace App;
use SushiMarket\DaData\Facades\DaDataPhone;
/**
* Class DaData
* @package App\DaData
*/
class DaData
{
/**
* DaData phone exmaple
*
* @return void
*/
public function phoneExample() : void
{
$dadata = DaDataPhone::standardization('раб 846)231.60.14 *139');
dd($dadata);
}
}
Пример ответа
array:1 [
0 => array:14 [
"source" => "раб 846)231.60.14 *139"
"type" => "Стационарный"
"phone" => "+7 846 231-60-14 доб. 139"
"country_code" => "7"
"city_code" => "846"
"number" => "2316014"
"extension" => "139"
"provider" => "ООО "СИПАУТНЭТ""
"country" => "Россия"
"region" => "Самарская область"
"city" => "Самара"
"timezone" => "UTC+4"
"qc_conflict" => 0
"qc" => 0
]
]
Описание ответа
Название | Описание |
---|---|
source |
Строка запроса |
type |
Тип телефона, может возвращать: Мобильный , Стационарный , Прямой мобильный , Колл-центр , Неизвестный . |
phone |
Стандартизованный телефон одной строкой |
country_code |
Код страны |
city_code |
Код города / DEF-код |
number |
Локальный номер телефона |
extension |
Добавочный номер |
provider |
Оператор связи (только для России) |
country |
Страна |
region |
Регион (только для России) |
city |
Город (только для стационарных телефонов) |
timezone |
Часовой пояс города для России, часовой пояс страны — для иностранных телефонов. Если у страны несколько поясов, вернёт минимальный и максимальный через слеш: UTC+5/UTC+6 |
qc_conflict |
Признак конфликта телефона с адресом. 0 - Телефон соответствует адресу, 2 - Города адреса и телефона отличаются, 3 - Регионы адреса и телефона отличаются |
qc |
Код проверки |
Коды проверки qc
Код | Треубется ручная проверка? | Описание |
---|---|---|
0 |
Нет | Российский телефон, распознан уверенно |
7 |
Нет | Иностранный телефон, распознан уверенно |
2 |
Нет | Телефон пустой или заведомо «мусорный» |
1 |
Да | Телефон распознан с допущениями или не распознан |
3 |
Да | Обнаружено несколько телефонов, распознан первый |
Exceptions
При вызове методов, вы можете обрабатывать коды исключений и их сообщения
Код | Описание |
---|---|
400 |
Некорректный запрос |
401 |
В запросе отсутствует API-ключ |
403 |
Не подтверждена почта или недостаточно средств для обработки запроса, пополните баланс |
405 |
Запрос сделан с методом, отличным от POST |
413 |
Слишком большая длина запроса или слишком много условий |
429 |
Слишком много запросов в секунду или новых соединений в минуту |
5xx |
Произошла внутренняя ошибка сервиса |
Более детальную информацию вы можете получить из сообщения исключения.
Пример получения сообщения исключения
<?php
namespace App;
use SushiMarket\DaData\Facades\DaDataPhone;
/**
* Class DaData
* @package App\DaData
*/
class DaData
{
/**
* DaData phone exmaple
*
* @return void
*/
public function nameExample() : void
{
try {
$dadata = DaDataPhone::standardization('раб 846)231.60.14 *139');
dd($dadata);
} catch (\Exception $e) {
dd($e->getMessage());
}
}
}
DaDataCompany::id(string $id', int $count, string $kpp, int $branch_type, int $type)
- Находит компанию или индивидуального предпринимателя по ИНН, КПП, ОГРН. Возвращает реквизиты компании, учредителей, руководителей, сведения о налоговой, ПФР и ФСС, финансы, лицензии, реестр МСП и другую информацию о компании.
Находит компанию или ИП по ИНН или ОГРН. Возвращает все доступные сведения о компании, в отличие от метода suggest, который возвращает только базовые поля.
Пример вызова
<?php
namespace App;
use SushiMarket\DaData\Enums\BranchType;
use SushiMarket\DaData\Enums\CompanyType;
use SushiMarket\DaData\Facades\DaDataCompany;
/**
* Class DaData
* @package App\DaData
*/
class DaData
{
/**
* DaData find organization by FIAS or OGRN ID example
*
* @return void
*/
public function idExample() : void
{
$dadata = DaDataCompany::id('7707083893', 1, null, BranchType::MAIN, CompanyType::LEGAL);
dd($dadata);
}
}
Параметры вызова
Название | Тип | Optional | Default value | Описание |
---|---|---|---|---|
id |
string |
false |
Текст запроса | |
count |
int |
true |
10 | Количество результатов. Максимум 20 |
kpp |
int |
true |
null | КПП для поиска по филиалам, см.`` |
branch_type |
int |
true |
1 | Головная организация BranchType::MAIN или филиал BranchType::BRANCH |
type |
int |
true |
1 | Юрлицо CompanyType::LEGAL или индивидуальный предприниматель CompanyType::INDIVIDUAL |
Пример ответа
array:1 [
"suggestions" => array:1 [
0 => array:3 [
"value" => "ПАО СБЕРБАНК"
"unrestricted_value" => "ПАО СБЕРБАНК"
"data" => array:33 [
"kpp" => "773601001"
"capital" => null
"management" => array:3 [
"name" => "Греф Герман Оскарович"
"post" => "ПРЕЗИДЕНТ, ПРЕДСЕДАТЕЛЬ ПРАВЛЕНИЯ"
"disqualified" => null
]
"founders" => null
"managers" => null
"branch_type" => "MAIN"
"branch_count" => 88
"source" => null
"qc" => null
"hid" => "588a141bc5e17cbc976ec2d0d54149af49d5a4ca16e26ed2effafdf06841d645"
"type" => "LEGAL"
"state" => array:4 [
"status" => "ACTIVE"
"actuality_date" => 1601942400000
"registration_date" => 677376000000
"liquidation_date" => null
]
"opf" => array:4 [
"type" => "2014"
"code" => "12247"
"full" => "Публичное акционерное общество"
"short" => "ПАО"
]
"name" => array:5 [
"full_with_opf" => "ПУБЛИЧНОЕ АКЦИОНЕРНОЕ ОБЩЕСТВО "СБЕРБАНК РОССИИ""
"short_with_opf" => "ПАО СБЕРБАНК"
"latin" => null
"full" => "СБЕРБАНК РОССИИ"
"short" => "СБЕРБАНК"
]
"inn" => "7707083893"
"ogrn" => "1027700132195"
"okpo" => "00032537"
"okato" => "45293554000"
"oktmo" => "45397000000"
"okogu" => "4100104"
"okfs" => "41"
"okved" => "64.19"
"okveds" => null
"authorities" => null
"documents" => null
"licenses" => null
"finance" => null
"address" => array:3 [
"value" => "г Москва, ул Вавилова, д 19"
"unrestricted_value" => "117312, г Москва, Академический р-н, ул Вавилова, д 19"
"data" => array:81 [
"postal_code" => "117312"
"country" => "Россия"
"country_iso_code" => "RU"
"federal_district" => "Центральный"
"region_fias_id" => "0c5b2444-70a0-4932-980c-b4dc0d3f02b5"
"region_kladr_id" => "7700000000000"
"region_iso_code" => "RU-MOW"
"region_with_type" => "г Москва"
"region_type" => "г"
"region_type_full" => "город"
"region" => "Москва"
"area_fias_id" => null
"area_kladr_id" => null
"area_with_type" => null
"area_type" => null
"area_type_full" => null
"area" => null
"city_fias_id" => "0c5b2444-70a0-4932-980c-b4dc0d3f02b5"
"city_kladr_id" => "7700000000000"
"city_with_type" => "г Москва"
"city_type" => "г"
"city_type_full" => "город"
"city" => "Москва"
"city_area" => "Юго-западный"
"city_district_fias_id" => null
"city_district_kladr_id" => null
"city_district_with_type" => "Академический р-н"
"city_district_type" => "р-н"
"city_district_type_full" => "район"
"city_district" => "Академический"
"settlement_fias_id" => null
"settlement_kladr_id" => null
"settlement_with_type" => null
"settlement_type" => null
"settlement_type_full" => null
"settlement" => null
"street_fias_id" => "25f8f29b-b110-40ab-a48e-9c72f5fb4331"
"street_kladr_id" => "77000000000092400"
"street_with_type" => "ул Вавилова"
"street_type" => "ул"
"street_type_full" => "улица"
"street" => "Вавилова"
"house_fias_id" => "93409d8c-d8d4-4491-838f-f9aa1678b5e6"
"house_kladr_id" => "7700000000009240170"
"house_type" => "д"
"house_type_full" => "дом"
"house" => "19"
"block_type" => null
"block_type_full" => null
"block" => null
"flat_type" => null
"flat_type_full" => null
"flat" => null
"flat_area" => null
"square_meter_price" => null
"flat_price" => null
"postal_box" => null
"fias_id" => "93409d8c-d8d4-4491-838f-f9aa1678b5e6"
"fias_code" => "77000000000000009240170"
"fias_level" => "8"
"fias_actuality_state" => "0"
"kladr_id" => "7700000000009240170"
"geoname_id" => "524901"
"capital_marker" => "0"
"okato" => "45293554000"
"oktmo" => "45397000"
"tax_office" => "7736"
"tax_office_legal" => "7736"
"timezone" => "UTC+3"
"geo_lat" => "55.7001865"
"geo_lon" => "37.5802234"
"beltway_hit" => "IN_MKAD"
"beltway_distance" => null
"metro" => array:3 [
0 => array:3 [
"name" => "Ленинский проспект"
"line" => "Калужско-Рижская"
"distance" => 0.8
]
1 => array:3 [
"name" => "Площадь Гагарина"
"line" => "МЦК"
"distance" => 0.8
]
2 => array:3 [
"name" => "Академическая"
"line" => "Калужско-Рижская"
"distance" => 1.5
]
]
"qc_geo" => "0"
"qc_complete" => null
"qc_house" => null
"history_values" => null
"unparsed_parts" => null
"source" => "117997, ГОРОД МОСКВА, УЛИЦА ВАВИЛОВА, 19"
"qc" => "0"
]
]
"phones" => null
"emails" => null
"ogrn_date" => 1029456000000
"okved_type" => "2014"
"employee_count" => null
]
]
]
]
Описание ответа
Таблицу описания полного ответа вы можете получить на старнице Организация по ИНН или ОГРН в разделе "Что в ответе".
Описани ответа data['address']
Название | Длина | Описание |
---|---|---|
source |
250 | Исходный адрес одной строкой |
result |
500 | Стандартизованный адрес одной строкой |
postal_code |
6 | Индекс |
country |
120 | Страна |
country_iso_code |
2 | ISO-код страны |
federal_district |
20 | Федеральный округ |
region_fias_id |
36 | ФИАС-код региона |
region_kladr_id |
19 | КЛАДР-код региона |
region_iso_code |
6 | ISO-код региона |
region_with_type |
131 | Регион с типом |
region_type |
10 | Тип региона (сокращенный) |
region_type_full |
50 | Тип региона |
region |
120 | Регион |
area_fias_id |
36 | ФИАС-код района |
area_kladr_id |
19 | КЛАДР-код района |
area_with_type |
131 | Район в регионе с типом |
area_type |
10 | Тип района в регионе (сокращенный) |
area_type_full |
50 | Тип района в регионе |
area |
120 | Район в регионе |
city_fias_id |
36 | ФИАС-код города |
city_kladr_id |
19 | КЛАДР-код города |
city_with_type |
131 | Город с типом |
city_type |
10 | Тип города (сокращенный) |
city_type_full |
50 | Тип города |
city |
120 | Город |
city_area |
120 | Административный округ (только для Москвы) |
city_district_fias_id |
36 | ФИАС-код района города (заполняется, только если район есть в ФИАС) |
city_district_kladr_id |
19 | КЛАДР-код района города (не заполняется) |
city_district_with_type |
131 | Район города с типом |
city_district_type |
10 | Тип района города (сокращенный) |
city_district_type_full |
50 | Тип района города |
city_district |
120 | Район города |
settlement_fias_id |
36 | ФИАС-код населенного пункта |
settlement_kladr_id |
19 | КЛАДР-код населенного пункта |
settlement_with_type |
131 | Населенный пункт с типом |
settlement_type |
10 | Тип населенного пункта (сокращенный) |
settlement_type_full |
50 | Тип населенного пункта |
settlement |
120 | Населенный пункт |
street_fias_id |
36 | ФИАС-код улицы |
street_kladr_id |
19 | КЛАДР-код улицы |
street_with_type |
131 | Улица с типом |
street_type |
10 | Тип улицы (сокращенный) |
street_type_full |
50 | Тип улицы |
street |
120 | Улица |
house_fias_id |
36 | ФИАС-код дома |
house_kladr_id |
19 | КЛАДР-код дома |
house_type |
10 | Тип дома (сокращенный) |
house_type_full |
50 | Тип дома |
house |
50 | Дом |
block_type |
10 | Тип корпуса/строения (сокращенный) |
block_type_full |
50 | Тип корпуса/строения |
block |
50 | Корпус/строение |
flat_type |
10 | Тип квартиры (сокращенный) |
flat_type_full |
50 | Тип квартиры |
flat |
50 | Квартира |
flat_area |
50 | Площадь квартиры |
square_meter_price |
50 | Рыночная стоимость м² |
flat_price |
50 | Рыночная стоимость квартиры |
postal_box |
50 | Абонентский ящик |
fias_id |
36 | ФИАС-код адреса (идентификатор ФИАС) |
HOUSE.HOUSEGUID — если дом найден в ФИАС |
||
ADDROBJ.AOGUID — в противном случае |
||
fias_code |
Иерархический код адреса в ФИАС (СС+РРР+ГГГ+ППП+СССС+УУУУ+ДДДД) | |
fias_level |
2 | Уровень детализации, до которого адрес найден в ФИАС |
fias_actuality_state |
Признак актуальности адреса в ФИАС | |
kladr_id |
19 | КЛАДР-код адреса |
capital_marker |
1 | Признак центра района или региона |
okato |
11 | Код ОКАТО |
oktmo |
11 | Код ОКТМО |
tax_office |
4 | Код ИФНС для физических лиц |
tax_office_legal |
4 | Код ИФНС для организаций |
timezone |
50 | Часовой пояс города для России, часовой пояс страны — для иностранных адресов. Если у страны несколько поясов, вернёт минимальный и максимальный через слеш: UTC+5/UTC+6 |
geo_lat |
12 | Координаты: широта |
geo_lon |
12 | Координаты: долгота |
beltway_hit |
8 | Внутри кольцевой? |
beltway_distance |
3 | Расстояние от кольцевой в км. Заполнено, только если beltway_hit = OUT_MKAD или OUT_KAD, иначе пустое |
qc_geo |
5 | Код точности координат |
qc_complete |
5 | Код пригодности к рассылке |
qc_house |
5 | Признак наличия дома в ФИАС |
qc |
5 | Код проверки адреса |
unparsed_parts |
250 | Нераспознанная часть адреса. Для адреса «Москва, Митинская улица, 40, вход с торца» вернет «ВХОД, С, ТОРЦА» |
metro |
Список ближайших станций метро (до трёх штук) |
Координаты есть у 97% домов в Москве, 91% в Санкт-Петербурге, 69% в других городах-миллиониках и 47% по остальной России. Площадь и стоимость есть у 70% квартир в России.
Exceptions
При вызове методов, вы можете обрабатывать коды исключений и их сообщения
Код | Описание |
---|---|
400 |
Некорректный запрос |
401 |
В запросе отсутствует API-ключ или секретный ключ или в запросе указан несуществующий ключ |
403 |
Не подтверждена почта или недостаточно средств для обработки запроса, пополните баланс |
405 |
Запрос сделан с методом, отличным от POST |
429 |
Слишком много запросов в секунду или новых соединений в минуту |
5xx |
Произошла внутренняя ошибка сервиса |
Более детальную информацию вы можете получить из сообщения исключения.
Пример получения сообщения исключения
<?php
namespace App;
use SushiMarket\DaData\Enums\BranchType;
use SushiMarket\DaData\Enums\CompanyType;
use SushiMarket\DaData\Facades\DaDataCompany;
/**
* Class DaData
* @package App\DaData
*/
class DaData
{
/**
* DaData find organization by FIAS or OGRN ID example
*
* @return void
*/
public function idExample() : void
{
try {
$dadata = DaDataCompany::id('7707083893', 1, null, BranchType::MAIN, CompanyType::LEGAL);
dd($dadata);
} catch (\Exception $e) {
dd($e->getMessage());
}
}
}
DaDataCompany::prompt(string $company, int $count, array $status, int $type, string $locations, string $locations_boost);
Помогает человеку быстро ввести реквизиты организации на веб-форме или в приложении.
Ищет компании и индивидуальных предпринимателей:
- По ИНН, ОГРН и КПП;
- Названию (полному и краткому);
- ФИО (для индивидуальных предпринимателей);
- ФИО руководителя компании;
- Адресу до улицы;
Основные кейсы:
- Ищет по комбинации ИНН, названия и адреса в одном запросе («7736050003 Газ» → «ПАО Газпром», «вавилова сбер» → «ПАО Сбербанк»).
- Находит конкретный филиал, если указать в запросе КПП («сбербанк 540602001» → «Сибирский банк ПАО Сбербанк»).
- Понимает слитное и раздельное написание («альфабанк» = «Альфа-Банк»).
- Ищет по частичному совпадению в ИНН / ОГРН («77094209» → «ООО Акварель») и названиях («росне» → «ПАО «НК «Роснефть»).
- Подсказывает только организации или только ИП, или и тех и других. Умеет искать только в действующих или ликвидированных компаниях. Может ограничить подсказки конкретным регионом России.
- Учитывает, где вы находитесь (в связке с методом Определение адреса по IP).
- Возвращает основные реквизиты компании из ЕГРЮЛ: краткое и полное название, ОПФ, адрес, ОГРН, ИНН, КПП, ОКВЭД, статус организации, ФИО и должность руководителя.
- В связке с методом Организация по ИНН возвращает вагон дополнительной информации: количество сотрудников, все коды ОКВЭД, сведения о налоговой, ПФР и ФСС, документы и лицензии, учредители и руководители, финансовые показатели, реестр малого и среднего бизнеса.
Данный метод не прдназначен:
- ля 50% компаний налоговая служба пока не сообщает КПП филиалов. Такие филиалы можно найти по ИНН, городу и улице филиала. Например, «7724261610 москва мясницкая» → «Филиал ФГУП "Почта России" (г Москва)».
Пример вызова
<?php
namespace App;
use SushiMarket\DaData\Enums\CompanyStatus;
use SushiMarket\DaData\Enums\CompanyType;
use SushiMarket\DaData\Facades\DaDataCompany;
/**
* Class DaData
* @package App\DaData
*/
class DaData
{
/**
* DaData prompt organization by string
*
* @return void
*/
public function promptExample() : void
{
$dadata = DaDataCompany::prompt('сбербанк', 1, [CompanyStatus::ACTIVE], CompanyType::LEGAL);
dd($dadata);
}
}
Параметры вызова
Название | Тип | Optional | Default value | Описание |
---|---|---|---|---|
company |
string |
false |
Текст запроса | |
count |
int |
true |
10 | Количество результатов. Максимум 20 |
status |
int |
true |
null | Ограничение по статусу организации. |
type |
int |
true |
1 | Ограничение по типу организации. |
locations |
string |
true |
null | Ограничение по региону или городу. Двухзначные коды необходимо передавать строкой через , запятую. Список кодов |
locations_boost |
string |
true |
null | Приоритет города при ранжировании. |
Формирование status
- ограничение по статусу организации
Чтобы искать только действующие компании, сформироуйте массив status как
...
use SushiMarket\DaData\Enums\CompanyStatus;
...
$status = [
CompanyStatus::ACTIVE
];
Поиск только среди ликвидируемых и ликвидированных компаний:
...
use SushiMarket\DaData\Enums\CompanyStatus;
...
$status = [
CompanyStatus::LIQUIDATING,
CompanyStatus::LIQUIDATED,
];
Формирование type
- Ограничение по типу организации.
Тип поиска только по юридическим лицам
...
use SushiMarket\DaData\Enums\CompanyStatus;
...
$type = CompanyStatus::LEGAL;
Тип поиска только по индивидуальным предпринимателям
...
use SushiMarket\DaData\Enums\CompanyStatus;
...
$type = CompanyStatus::INDIVIDUAL;
Пример ответа
array:1 [
"suggestions" => array:1 [
0 => array:3 [
"value" => "ПАО СБЕРБАНК"
"unrestricted_value" => "ПАО СБЕРБАНК"
"data" => array:33 [
"kpp" => "773601001"
"capital" => null
"management" => array:3 [
"name" => "Греф Герман Оскарович"
"post" => "ПРЕЗИДЕНТ, ПРЕДСЕДАТЕЛЬ ПРАВЛЕНИЯ"
"disqualified" => null
]
"founders" => null
"managers" => null
"branch_type" => "MAIN"
"branch_count" => 88
"source" => null
"qc" => null
"hid" => "588a141bc5e17cbc976ec2d0d54149af49d5a4ca16e26ed2effafdf06841d645"
"type" => "LEGAL"
"state" => array:4 [
"status" => "ACTIVE"
"actuality_date" => 1601942400000
"registration_date" => 677376000000
"liquidation_date" => null
]
"opf" => array:4 [
"type" => "2014"
"code" => "12247"
"full" => "Публичное акционерное общество"
"short" => "ПАО"
]
"name" => array:5 [
"full_with_opf" => "ПУБЛИЧНОЕ АКЦИОНЕРНОЕ ОБЩЕСТВО "СБЕРБАНК РОССИИ""
"short_with_opf" => "ПАО СБЕРБАНК"
"latin" => null
"full" => "СБЕРБАНК РОССИИ"
"short" => "СБЕРБАНК"
]
"inn" => "7707083893"
"ogrn" => "1027700132195"
"okpo" => "00032537"
"okato" => "45293554000"
"oktmo" => "45397000000"
"okogu" => "4100104"
"okfs" => "41"
"okved" => "64.19"
"okveds" => null
"authorities" => null
"documents" => null
"licenses" => null
"finance" => null
"address" => array:3 [
"value" => "г Москва, ул Вавилова, д 19"
"unrestricted_value" => "117312, г Москва, Академический р-н, ул Вавилова, д 19"
"data" => array:81 [
"postal_code" => "117312"
"country" => "Россия"
"country_iso_code" => "RU"
"federal_district" => "Центральный"
"region_fias_id" => "0c5b2444-70a0-4932-980c-b4dc0d3f02b5"
"region_kladr_id" => "7700000000000"
"region_iso_code" => "RU-MOW"
"region_with_type" => "г Москва"
"region_type" => "г"
"region_type_full" => "город"
"region" => "Москва"
"area_fias_id" => null
"area_kladr_id" => null
"area_with_type" => null
"area_type" => null
"area_type_full" => null
"area" => null
"city_fias_id" => "0c5b2444-70a0-4932-980c-b4dc0d3f02b5"
"city_kladr_id" => "7700000000000"
"city_with_type" => "г Москва"
"city_type" => "г"
"city_type_full" => "город"
"city" => "Москва"
"city_area" => "Юго-западный"
"city_district_fias_id" => null
"city_district_kladr_id" => null
"city_district_with_type" => "Академический р-н"
"city_district_type" => "р-н"
"city_district_type_full" => "район"
"city_district" => "Академический"
"settlement_fias_id" => null
"settlement_kladr_id" => null
"settlement_with_type" => null
"settlement_type" => null
"settlement_type_full" => null
"settlement" => null
"street_fias_id" => "25f8f29b-b110-40ab-a48e-9c72f5fb4331"
"street_kladr_id" => "77000000000092400"
"street_with_type" => "ул Вавилова"
"street_type" => "ул"
"street_type_full" => "улица"
"street" => "Вавилова"
"house_fias_id" => "93409d8c-d8d4-4491-838f-f9aa1678b5e6"
"house_kladr_id" => "7700000000009240170"
"house_type" => "д"
"house_type_full" => "дом"
"house" => "19"
"block_type" => null
"block_type_full" => null
"block" => null
"flat_type" => null
"flat_type_full" => null
"flat" => null
"flat_area" => null
"square_meter_price" => null
"flat_price" => null
"postal_box" => null
"fias_id" => "93409d8c-d8d4-4491-838f-f9aa1678b5e6"
"fias_code" => "77000000000000009240170"
"fias_level" => "8"
"fias_actuality_state" => "0"
"kladr_id" => "7700000000009240170"
"geoname_id" => "524901"
"capital_marker" => "0"
"okato" => "45293554000"
"oktmo" => "45397000"
"tax_office" => "7736"
"tax_office_legal" => "7736"
"timezone" => "UTC+3"
"geo_lat" => "55.7001865"
"geo_lon" => "37.5802234"
"beltway_hit" => "IN_MKAD"
"beltway_distance" => null
"metro" => array:3 [
0 => array:3 [
"name" => "Ленинский проспект"
"line" => "Калужско-Рижская"
"distance" => 0.8
]
1 => array:3 [
"name" => "Площадь Гагарина"
"line" => "МЦК"
"distance" => 0.8
]
2 => array:3 [
"name" => "Академическая"
"line" => "Калужско-Рижская"
"distance" => 1.5
]
]
"qc_geo" => "0"
"qc_complete" => null
"qc_house" => null
"history_values" => null
"unparsed_parts" => null
"source" => "117997, ГОРОД МОСКВА, УЛИЦА ВАВИЛОВА, 19"
"qc" => "0"
]
]
"phones" => null
"emails" => null
"ogrn_date" => 1029456000000
"okved_type" => "2014"
"employee_count" => null
]
]
]
]
Описание ответа
Таблицу описания полного ответа вы можете получить на старнице API подсказок по организациям в разделе "Что в ответе".
Exceptions
При вызове методов, вы можете обрабатывать коды исключений и их сообщения
Код | Описание |
---|---|
400 |
Некорректный запрос |
401 |
В запросе отсутствует API-ключ или секретный ключ или в запросе указан несуществующий ключ |
403 |
Не подтверждена почта или недостаточно средств для обработки запроса, пополните баланс |
405 |
Запрос сделан с методом, отличным от POST |
429 |
Слишком много запросов в секунду или новых соединений в минуту |
5xx |
Произошла внутренняя ошибка сервиса |
Более детальную информацию вы можете получить из сообщения исключения.
Пример получения сообщения исключения
<?php
namespace App;
use SushiMarket\DaData\Enums\CompanyStatus;
use SushiMarket\DaData\Enums\CompanyType;
use SushiMarket\DaData\Facades\DaDataCompany;
/**
* Class DaData
* @package App\DaData
*/
class DaData
{
/**
* DaData prompt organization by string
*
* @return void
*/
public function promptExample() : void
{
try {
$dadata = DaDataCompany::prompt('сбербанк', 1, [CompanyStatus::ACTIVE], CompanyType::LEGAL);
dd($dadata);
} catch (\Exception $e) {
dd($e->getMessage());
}
}
}
DaDataCompany::affiliated(string $code, int $count, array $scope)
Находит организации по ИНН учредителей и руководителей. Работает для физлиц и юрлиц.
Часто учредитель или директор не ограничивается участием в одном юрлице, а фигурирует в нескольких. Порой — в десятках разных компаний. Знать об этом полезно как для оценки надёжности контрагента, так и для более эффективного маркетинга и продаж. Чтобы облегчить поиск аффилированных компаний, «Дадата» находит организации по ИНН учредителей и руководителей.
Ищет по ИНН физлиц и юрлиц.
Данный метод не удается протестировать из-за того, что все получаем 403
, Operation party/findAffiliated is not permitted
Пример вызова
<?php
namespace App;
use SushiMarket\DaData\Enums\CompanyScope;
use SushiMarket\DaData\Facades\DaDataCompany;
/**
* Class DaData
* @package App\DaData
*/
class DaData
{
/**
* DaData find affiliated organization exmaple
*
* @return void
*/
public function affiliatedExample() : void
{
$dadata = DaDataCompany::affiliated('7736207543', 1, [CompanyScope::MANAGERS]);
dd($dadata);
}
}
Параметры вызова
Название | Тип | Optional | Default value | Описание |
---|---|---|---|---|
code |
string |
false |
Текст запроса | |
count |
int |
true |
10 | Количество результатов. Максимум 20 |
scope |
array |
true |
[] | КПП для поиска по филиалам |
**Формирование scope
- **
Описание ответа
Таблицу описания полного ответа вы можете получить на старнице Поиск аффилированных компаний в разделе "Что в ответе".
Exceptions
При вызове методов, вы можете обрабатывать коды исключений и их сообщения
Код | Описание |
---|---|
400 |
Некорректный запрос |
401 |
В запросе отсутствует API-ключ или секретный ключ или в запросе указан несуществующий ключ |
403 |
Не подтверждена почта или недостаточно средств для обработки запроса, пополните баланс |
405 |
Запрос сделан с методом, отличным от POST |
429 |
Слишком много запросов в секунду или новых соединений в минуту |
5xx |
Произошла внутренняя ошибка сервиса |
Более детальную информацию вы можете получить из сообщения исключения.
Пример получения сообщения исключения
<?php
namespace App;
use SushiMarket\DaData\Enums\CompanyScope;
use SushiMarket\DaData\Facades\DaDataCompany;
/**
* Class DaData
* @package App\DaData
*/
class DaData
{
/**
* DaData find affiliated organization exmaple
*
* @return void
*/
public function affiliatedExample() : void
{
try {
$dadata = DaDataCompany::affiliated('7736207543', 1, [CompanyScope::MANAGERS]);
dd($dadata);
} catch (\Exception $e) {
dd($e->getMessage());
}
}
}
DaDataBank::id(string $bank);
Находит банк по любому из идентификаторов: БИК, SWIFT, ИНН, ИНН + КПП (для филиалов), рег. номеру, присвоенному Банком России. Возвращает реквизиты банка, корр. счёт, адрес и статус (действующий / на ликвидации).
Ищет кредитные организации по:
- БИК;
- SWIFT;
- ИНН;
- ИНН плюс КПП;
- Названию;
Ищет только по точному совпадению, для частичного совпадения используйте метод DaDataBank::prompt(string $bank, int $count, array $status, array $type, string $locations, string $locations_boost)
Пример вызова
<?php
namespace App;
use SushiMarket\DaData\Facades\DaDataBank;
/**
* Class DaData
* @package App\DaData
*/
class DaData
{
/**
* DaData prompt bank by string
*
* @return void
*/
public function promptExample() : void
{
$dadata = DaDataBank::id('044525225');
dd($dadata);
}
}
Параметры вызова
Название | Тип | Optional | Default value | Описание |
---|---|---|---|---|
bank |
string |
false |
Текст запроса |
Пример ответа
array:1 [
"suggestions" => array:1 [
0 => array:3 [
"value" => "ПАО Сбербанк"
"unrestricted_value" => "ПАО Сбербанк"
"data" => array:14 [
"opf" => array:3 [
"type" => "BANK"
"full" => null
"short" => null
]
"name" => array:3 [
"payment" => "ПАО СБЕРБАНК"
"full" => null
"short" => "ПАО Сбербанк"
]
"bic" => "044525225"
"swift" => "SABRRUMM"
"inn" => "7707083893"
"kpp" => "773601001"
"okpo" => null
"correspondent_account" => "30101810400000000225"
"registration_number" => "1481"
"payment_city" => "г Москва"
"state" => array:4 [
"status" => "ACTIVE"
"actuality_date" => 1602547200000
"registration_date" => 677376000000
"liquidation_date" => null
]
"rkc" => null
"address" => array:3 [
"value" => "г Москва, ул Вавилова, д 19"
"unrestricted_value" => "117312, г Москва, Академический р-н, ул Вавилова, д 19"
"data" => array:81 [
"postal_code" => "117312"
"country" => "Россия"
"country_iso_code" => "RU"
"federal_district" => "Центральный"
"region_fias_id" => "0c5b2444-70a0-4932-980c-b4dc0d3f02b5"
"region_kladr_id" => "7700000000000"
"region_iso_code" => "RU-MOW"
"region_with_type" => "г Москва"
"region_type" => "г"
"region_type_full" => "город"
"region" => "Москва"
"area_fias_id" => null
"area_kladr_id" => null
"area_with_type" => null
"area_type" => null
"area_type_full" => null
"area" => null
"city_fias_id" => "0c5b2444-70a0-4932-980c-b4dc0d3f02b5"
"city_kladr_id" => "7700000000000"
"city_with_type" => "г Москва"
"city_type" => "г"
"city_type_full" => "город"
"city" => "Москва"
"city_area" => "Юго-западный"
"city_district_fias_id" => null
"city_district_kladr_id" => null
"city_district_with_type" => "Академический р-н"
"city_district_type" => "р-н"
"city_district_type_full" => "район"
"city_district" => "Академический"
"settlement_fias_id" => null
"settlement_kladr_id" => null
"settlement_with_type" => null
"settlement_type" => null
"settlement_type_full" => null
"settlement" => null
"street_fias_id" => "25f8f29b-b110-40ab-a48e-9c72f5fb4331"
"street_kladr_id" => "77000000000092400"
"street_with_type" => "ул Вавилова"
"street_type" => "ул"
"street_type_full" => "улица"
"street" => "Вавилова"
"house_fias_id" => "93409d8c-d8d4-4491-838f-f9aa1678b5e6"
"house_kladr_id" => "7700000000009240170"
"house_type" => "д"
"house_type_full" => "дом"
"house" => "19"
"block_type" => null
"block_type_full" => null
"block" => null
"flat_type" => null
"flat_type_full" => null
"flat" => null
"flat_area" => null
"square_meter_price" => null
"flat_price" => null
"postal_box" => null
"fias_id" => "93409d8c-d8d4-4491-838f-f9aa1678b5e6"
"fias_code" => "77000000000000009240170"
"fias_level" => "8"
"fias_actuality_state" => "0"
"kladr_id" => "7700000000009240170"
"geoname_id" => "524901"
"capital_marker" => "0"
"okato" => "45293554000"
"oktmo" => "45397000"
"tax_office" => "7736"
"tax_office_legal" => "7736"
"timezone" => "UTC+3"
"geo_lat" => "55.7001865"
"geo_lon" => "37.5802234"
"beltway_hit" => "IN_MKAD"
"beltway_distance" => null
"metro" => array:3 [
0 => array:3 [
"name" => "Ленинский проспект"
"line" => "Калужско-Рижская"
"distance" => 0.8
]
1 => array:3 [
"name" => "Площадь Гагарина"
"line" => "МЦК"
"distance" => 0.8
]
2 => array:3 [
"name" => "Академическая"
"line" => "Калужско-Рижская"
"distance" => 1.5
]
]
"qc_geo" => "0"
"qc_complete" => "5"
"qc_house" => "2"
"history_values" => null
"unparsed_parts" => null
"source" => "117997, г Москва, ул Вавилова, 19"
"qc" => "0"
]
]
"phones" => null
]
]
]
]
Описание ответа
Таблицу описания полного ответа вы можете получить на старнице Банк по БИК, SWIFT, ИНН или регистрационному номеру в разделе "Что в ответе".
Exceptions
При вызове методов, вы можете обрабатывать коды исключений и их сообщения
Код | Описание |
---|---|
400 |
Некорректный запрос |
401 |
В запросе отсутствует API-ключ или секретный ключ или в запросе указан несуществующий ключ |
403 |
Не подтверждена почта или недостаточно средств для обработки запроса, пополните баланс |
405 |
Запрос сделан с методом, отличным от POST |
429 |
Слишком много запросов в секунду или новых соединений в минуту |
5xx |
Произошла внутренняя ошибка сервиса |
Более детальную информацию вы можете получить из сообщения исключения.
Пример получения сообщения исключения
<?php
namespace App;
use SushiMarket\DaData\Facades\DaDataBank;
/**
* Class DaData
* @package App\DaData
*/
class DaData
{
/**
* DaData prompt bank by string
*
* @return void
*/
public function promptExample() : void
{
try {
$dadata = DaDataBank::id('044525225');
dd($dadata);
} catch (\Exception $e) {
dd($e->getMessage());
}
}
}
DaDataBank::prompt(string $bank, int $count, array $status, array $type, string $locations, string $locations_boost)
Помогает человеку быстро ввести реквизиты банка на веб-форме или в приложении.
Ищет кредитные организации по:
- БИК;
- SWIFT;
- ИНН;
- ИНН плюс КПП;
- Названию;
Основные кейсы:
- Фильтрует по типу: банки, НКО и филиалы, а также РКЦ и другие организации;
- Умеет искать как действующие банки, так и банки на ликвидации;
- Учитывает, где вы находитесь (геолокация до города);
Пример вызова
<?php
namespace App;
use SushiMarket\DaData\Enums\BankStatus;
use SushiMarket\DaData\Enums\BankType;
use SushiMarket\DaData\Facades\DaDataBank;
/**
* Class DaData
* @package App\DaData
*/
class DaData
{
/**
* DaData prompt bank by string
*
* @return void
*/
public function promptExample() : void
{
$dadata = DaDataBank::prompt('сбербанк', 1, [BankStatus::ACTIVE], [BankType::BANK]);
dd($dadata);
}
}
Параметры вызова
Название | Тип | Optional | Default value | Описание |
---|---|---|---|---|
bank |
string |
false |
Текст запроса | |
count |
int |
true |
10 | Количество результатов. Максимум 20 |
status |
array |
true |
null | Ограничение по статусу банка |
type |
array |
true |
1 | Ограничение по типу банка |
locations |
string |
true |
null | Ограничение по региону или городу. Двухзначные коды необходимо передавать строкой через , запятую. Список кодов |
locations_boost |
string |
true |
null | Приоритет города при ранжировании. |
Формирование status
- ограничение по статусу организации
Чтобы искать только действующие банки, сформироуйте массив status как
...
use SushiMarket\DaData\Enums\BankStatus;
...
$status = [
BankStatus::ACTIVE
];
Поиск только среди ликвидируемых и ликвидированных банков:
...
use SushiMarket\DaData\Enums\BankStatus;
...
$status = [
BankStatus::LIQUIDATING,
BankStatus::LIQUIDATED,
];
Формирование type
- Ограничение по типу банка.
Доступные типы организаций в классе SushiMarket\DaData\Enums\BankType
Тип | Тип организации |
---|---|
BankType::BANK |
Банк |
BankType::BANK_BRANCH |
Филиал банка |
BankType::NKO |
Небанковская кредитная организация |
BankType::NKO_BRANCH |
Филиал небанковской кредитной организации |
BankType::OTHER |
Другое |
BankType::RKC |
РКЦ / ГРКЦ |
Тип поиска только по банкам и филиалам банков
...
use SushiMarket\DaData\Enums\BankType;
...
$type = [BankType::BANK, BankType::BANK_BRANCH]
Тип поиска только по РКЦ/ГРКЦ
...
use SushiMarket\DaData\Enums\BankType;
...
$type = [BankType::BANK, BankType::RKC]
Пример ответа
array:1 [
"suggestions" => array:1 [
0 => array:3 [
"value" => "ПАО Сбербанк"
"unrestricted_value" => "ПАО Сбербанк"
"data" => array:14 [
"opf" => array:3 [
"type" => "BANK"
"full" => null
"short" => null
]
"name" => array:3 [
"payment" => "ПАО СБЕРБАНК"
"full" => null
"short" => "ПАО Сбербанк"
]
"bic" => "044525225"
"swift" => "SABRRUMM"
"inn" => "7707083893"
"kpp" => "773601001"
"okpo" => null
"correspondent_account" => "30101810400000000225"
"registration_number" => "1481"
"payment_city" => "г Москва"
"state" => array:4 [
"status" => "ACTIVE"
"actuality_date" => 1602547200000
"registration_date" => 677376000000
"liquidation_date" => null
]
"rkc" => null
"address" => array:3 [
"value" => "г Москва, ул Вавилова, д 19"
"unrestricted_value" => "117312, г Москва, Академический р-н, ул Вавилова, д 19"
"data" => array:81 [
"postal_code" => "117312"
"country" => "Россия"
"country_iso_code" => "RU"
"federal_district" => "Центральный"
"region_fias_id" => "0c5b2444-70a0-4932-980c-b4dc0d3f02b5"
"region_kladr_id" => "7700000000000"
"region_iso_code" => "RU-MOW"
"region_with_type" => "г Москва"
"region_type" => "г"
"region_type_full" => "город"
"region" => "Москва"
"area_fias_id" => null
"area_kladr_id" => null
"area_with_type" => null
"area_type" => null
"area_type_full" => null
"area" => null
"city_fias_id" => "0c5b2444-70a0-4932-980c-b4dc0d3f02b5"
"city_kladr_id" => "7700000000000"
"city_with_type" => "г Москва"
"city_type" => "г"
"city_type_full" => "город"
"city" => "Москва"
"city_area" => "Юго-западный"
"city_district_fias_id" => null
"city_district_kladr_id" => null
"city_district_with_type" => "Академический р-н"
"city_district_type" => "р-н"
"city_district_type_full" => "район"
"city_district" => "Академический"
"settlement_fias_id" => null
"settlement_kladr_id" => null
"settlement_with_type" => null
"settlement_type" => null
"settlement_type_full" => null
"settlement" => null
"street_fias_id" => "25f8f29b-b110-40ab-a48e-9c72f5fb4331"
"street_kladr_id" => "77000000000092400"
"street_with_type" => "ул Вавилова"
"street_type" => "ул"
"street_type_full" => "улица"
"street" => "Вавилова"
"house_fias_id" => "93409d8c-d8d4-4491-838f-f9aa1678b5e6"
"house_kladr_id" => "7700000000009240170"
"house_type" => "д"
"house_type_full" => "дом"
"house" => "19"
"block_type" => null
"block_type_full" => null
"block" => null
"flat_type" => null
"flat_type_full" => null
"flat" => null
"flat_area" => null
"square_meter_price" => null
"flat_price" => null
"postal_box" => null
"fias_id" => "93409d8c-d8d4-4491-838f-f9aa1678b5e6"
"fias_code" => "77000000000000009240170"
"fias_level" => "8"
"fias_actuality_state" => "0"
"kladr_id" => "7700000000009240170"
"geoname_id" => "524901"
"capital_marker" => "0"
"okato" => "45293554000"
"oktmo" => "45397000"
"tax_office" => "7736"
"tax_office_legal" => "7736"
"timezone" => "UTC+3"
"geo_lat" => "55.7001865"
"geo_lon" => "37.5802234"
"beltway_hit" => "IN_MKAD"
"beltway_distance" => null
"metro" => array:3 [
0 => array:3 [
"name" => "Ленинский проспект"
"line" => "Калужско-Рижская"
"distance" => 0.8
]
1 => array:3 [
"name" => "Площадь Гагарина"
"line" => "МЦК"
"distance" => 0.8
]
2 => array:3 [
"name" => "Академическая"
"line" => "Калужско-Рижская"
"distance" => 1.5
]
]
"qc_geo" => "0"
"qc_complete" => "5"
"qc_house" => "2"
"history_values" => null
"unparsed_parts" => null
"source" => "117997, г Москва, ул Вавилова, 19"
"qc" => "0"
]
]
"phones" => null
]
]
]
]
Описание ответа
Таблицу описания полного ответа вы можете получить на старнице API подсказок по банкамм в разделе "Что в ответе".
Exceptions
При вызове методов, вы можете обрабатывать коды исключений и их сообщения
Код | Описание |
---|---|
400 |
Некорректный запрос |
401 |
В запросе отсутствует API-ключ или секретный ключ или в запросе указан несуществующий ключ |
403 |
Не подтверждена почта или недостаточно средств для обработки запроса, пополните баланс |
405 |
Запрос сделан с методом, отличным от POST |
429 |
Слишком много запросов в секунду или новых соединений в минуту |
5xx |
Произошла внутренняя ошибка сервиса |
Более детальную информацию вы можете получить из сообщения исключения.
Пример получения сообщения исключения
<?php
namespace App;
use SushiMarket\DaData\Enums\BankStatus;
use SushiMarket\DaData\Enums\BankType;
use SushiMarket\DaData\Facades\DaDataBank;
/**
* Class DaData
* @package App\DaData
*/
class DaData
{
/**
* DaData prompt bank by string
*
* @return void
*/
public function promptExample() : void
{
try {
$dadata = DaDataBank::prompt('сбербанк', 1, [BankStatus::ACTIVE], BankType::BANK);
dd($dadata);
} catch (\Exception $e) {
dd($e->getMessage());
}
}
}
DaDataPassport::standardization(string $id)
Проверяет паспорт по справочнику недействительных паспортов МВД.
Основные кейсы:
- Проверяет формат серии и номера;
- Проверяет паспорт по справочнику недействительных паспортов МВД;
Пример вызова
<?php
namespace App;
use SushiMarket\DaData\Facades\DaDataPassport;
/**
* Class DaData
* @package App\DaData
*/
class DaData
{
/**
* DaData passport
*
* @return void
*/
public function passportExample() : void
{
$dadata = DaDataPassport::standardization('4509 235857');
dd($dadata);
}
}
Параметры вызова
Название | Тип | Optional | Default value | Описание |
---|---|---|---|---|
id |
string |
false |
Текст запроса |
Пример ответа
array:1 [
0 => array:4 [
"source" => "4509 235857"
"series" => "45 09"
"number" => "235857"
"qc" => 0
]
]
Описание ответа
Название | Длина | Описание |
---|---|---|
source |
100 |
Исходная серия и номер одной строкой |
series |
20 |
Серия |
number |
20 |
Номер |
qc |
5 |
Код проверки. |
qc |
Нужна ручная проверка? | Описание |
---|---|---|
0 | нет | Действующий паспорт |
2 | нет | Исходное значение пустое |
1 | да | Неправильный формат серии или номера |
100 | да | Недействительный паспорт |
Exceptions
При вызове методов, вы можете обрабатывать коды исключений и их сообщения
Код | Описание |
---|---|
400 |
Некорректный запрос |
401 |
В запросе отсутствует API-ключ или секретный ключ или в запросе указан несуществующий ключ |
403 |
Не подтверждена почта или недостаточно средств для обработки запроса, пополните баланс |
405 |
Запрос сделан с методом, отличным от POST |
429 |
Слишком много запросов в секунду или новых соединений в минуту |
5xx |
Произошла внутренняя ошибка сервиса |
Более детальную информацию вы можете получить из сообщения исключения.
Пример получения сообщения исключения
<?php
namespace App;
use SushiMarket\DaData\Facades\DaDataPassport;
/**
* Class DaData
* @package App\DaData
*/
class DaData
{
/**
* DaData passport
*
* @return void
*/
public function passportExample() : void
{
try {
$dadata = DaDataPassport::standardization('4509 235857');
dd($dadata);
} catch (\Exception $e) {
dd($e->getMessage());
}
}
}
DaDataPassport::fns(string $passport, int $count)
Моментально заполняет организацию, выдавшую паспорт, по коду подразделения
Самое утомительное поле при вводе паспорта — «Кем выдан». Писать какое-нибудь «Отделом внутренних дел Медведевского района республики Марий Эл» муторно. Поэтому мы сделали подсказки по полю «Паспорт выдан...».
Пример вызова
<?php
namespace App;
use SushiMarket\DaData\Facades\DaDataPassport;
/**
* Class DaData
* @package App\DaData
*/
class DaData
{
/**
* DaData FNS
*
* @return void
*/
public function fnsExample() : void
{
$dadata = DaDataPassport::fms('772 053', 2);
dd($dadata);
}
}
Параметры вызова
Название | Тип | Optional | Default value | Описание |
---|---|---|---|---|
id |
string |
false |
Текст запроса | |
count |
int |
true |
10 | Количество результатов. Максимум 20 |
Пример ответа
array:1 [
"suggestions" => array:2 [
0 => array:3 [
"value" => "ОВД ЗЮЗИНО Г. МОСКВЫ"
"unrestricted_value" => "ОВД ЗЮЗИНО Г. МОСКВЫ"
"data" => array:4 [
"code" => "772-053"
"name" => "ОВД ЗЮЗИНО Г. МОСКВЫ"
"region_code" => "77"
"type" => "2"
]
]
1 => array:3 [
"value" => "ОВД ЗЮЗИНО Г. МОСКВЫ ПАСПОРТНЫЙ СТОЛ 1"
"unrestricted_value" => "ОВД ЗЮЗИНО Г. МОСКВЫ ПАСПОРТНЫЙ СТОЛ 1"
"data" => array:4 [
"code" => "772-053"
"name" => "ОВД ЗЮЗИНО Г. МОСКВЫ ПАСПОРТНЫЙ СТОЛ 1"
"region_code" => "77"
"type" => "2"
]
]
]
]
Описание ответа
Название | Описание |
---|---|
value |
Значение одной строкой (как показывается в списке подсказок) |
unrestricted_value |
== value |
data['code'] |
Код подразделения |
data['name'] |
Название подразделения в творительном падеже («кем выдан?») |
data['region_code'] |
Код региона (2 цифры) |
data['type'] |
Вид подразделения (1 цифра). 0 — подразделение ФМС, 1 — ГУВД или МВД региона, 2 — УВД или ОВД района или города, 3 — отделение полиции |
Exceptions
При вызове методов, вы можете обрабатывать коды исключений и их сообщения
Код | Описание |
---|---|
400 |
Некорректный запрос |
401 |
В запросе отсутствует API-ключ или секретный ключ или в запросе указан несуществующий ключ |
403 |
Не подтверждена почта или недостаточно средств для обработки запроса, пополните баланс |
405 |
Запрос сделан с методом, отличным от POST |
429 |
Слишком много запросов в секунду или новых соединений в минуту |
5xx |
Произошла внутренняя ошибка сервиса |
Более детальную информацию вы можете получить из сообщения исключения.
Пример получения сообщения исключения
<?php
namespace App;
use MoveMoveIo\DaData\Facades\DaDataPassport;
/**
* Class DaData
* @package App\DaData
*/
class DaData
{
/**
* DaData FNS
*
* @return void
*/
public function fnsExample() : void
{
try {
$dadata = DaDataPassport::fms('772 053', 2);
dd($dadata);
} catch (\Exception $e) {
dd($e->getMessage());
}
}
}