coolycow/laravel-dadata

Dadata API client for Laravel (https://dadata.ru)

Maintainers

Package info

github.com/coolycow/laravel-dadata

pkg:composer/coolycow/laravel-dadata

Transparency log

Statistics

Installs: 2 114

Dependents: 0

Suggesters: 0

Stars: 2

Open Issues: 0

v2.1.0 2026-07-23 18:23 UTC

This package is auto-updated.

Last update: 2026-07-23 18:25:08 UTC


README

Пакет для работы с DaData.ru в Laravel 10–13 (PHP 8.2+; для Laravel 13 нужен PHP 8.3+).

DaData — сервис автоматической проверки и исправления контактных данных: ФИО, адреса, телефоны, email, паспорта и реквизиты компаний.

Требования

  • PHP ^8.2 (Laravel 13 — PHP ^8.3)
  • Laravel / Illuminate ^10|^11|^12|^13
  • Guzzle ^7.8

Установка

composer require coolycow/laravel-dadata

Опубликовать конфиг:

php artisan vendor:publish --provider="Coolycow\Dadata\DadataServiceProvider"

Задать ключи в .env:

DADATA_TOKEN=your_token
DADATA_SECRET=your_secret

DADATA_SECRET нужен для API стандартизации (Clean). Для Suggest достаточно токена.

Использование

Подсказки (Suggest)

use Coolycow\Dadata\Facades\DadataSuggest;

// Всегда возвращает list<array> (пустой список, если совпадений нет)
$result = DadataSuggest::suggest('address', ['query' => 'Москва', 'count' => 2]);

$party = DadataSuggest::partyById('7707083893', ['branch_type' => 'MAIN']);

Типы: fio, address, party, email, bank и другие справочники DaData.

Стандартизация (Clean)

use Coolycow\Dadata\Facades\DadataClean;

$address = DadataClean::cleanAddress('мск сухонска 11/-89');
$phone = DadataClean::cleanPhone('тел 7165219 доб139');
$passport = DadataClean::cleanPassport('4509 235857');
$name = DadataClean::cleanName('Срегей владимерович иванов');
$email = DadataClean::cleanEmail('serega@yandex/ru');
$date = DadataClean::cleanDate('24/3/12');
$vehicle = DadataClean::cleanVehicle('форд фокус');

$balance = DadataClean::getBalance();
$stats = DadataClean::getStatistics();
$stats = DadataClean::getStatistics('2022-12-01');

$byIp = DadataClean::detectAddressByIp('8.8.8.8'); // Address|null

DI без фасадов

use Coolycow\Dadata\ClientClean;
use Coolycow\Dadata\ClientSuggest;

public function __construct(
    private ClientSuggest $suggest,
    private ClientClean $clean,
) {}

Клиенты зарегистрированы как singleton и принимают ClientInterface в конструкторе — удобно для тестов.

Исключения

Класс Когда
Coolycow\Dadata\Exception\AuthenticationException нет/неверный токен или secret, HTTP 401/403
Coolycow\Dadata\Exception\RequestException пустой запрос, HTTP 400/404/405/413
Coolycow\Dadata\Exception\RateLimitException HTTP 429
Coolycow\Dadata\Exception\ServerException HTTP 500
Coolycow\Dadata\Exception\DadataException прочие ошибки транспорта/парсинга

Разработка

composer install
composer test
composer phpstan

Ссылки