Skip to content

DaData

Пакет: dadata==20.7.0
Документация: https://dadata.ru/api/

Назначение

DaData — сервис стандартизации и обогащения данных. Используется для:

  • Автозаполнения реквизитов контрагентов по ИНН
  • Верификации банковских реквизитов по БИК
  • Стандартизации адресов
  • Верификации адресов доставки в TMS

Конфигурация

env
DADATA_TOKEN=your_api_token
DADATA_SECRET=your_secret_key

Endpoints в системе

EndpointОписание
GET /api/v2/dadata/party/?query=ИННПоиск организации по ИНН
GET /api/v2/dadata/bank/?query=БИКПоиск банка по БИК
GET /api/v2/dadata/address/?query=адресСтандартизация адреса

Backend-код

Файлы

  • app/helpers/dadata_view.py — View для проксирования запросов к DaData
  • app/tms/views.py — валидация адресов доставки
  • app/counterparty/tasks.py — обогащение данных контрагента

Пример использования

python
from dadata import Dadata

dadata = Dadata(token=settings.DADATA_TOKEN, secret=settings.DADATA_SECRET)

# Поиск организации по ИНН
result = dadata.find_by_id("party", "7707083893")
company = result[0]
print(company['value'])          # ПАО СБЕРБАНК
print(company['data']['inn'])    # 7707083893
print(company['data']['address']['value'])  # г Москва, ул Вавилова, д 19

# Поиск банка по БИК
bank = dadata.find_by_id("bank", "044525225")[0]
print(bank['value'])             # ПАО СБЕРБАНК
print(bank['data']['correspondent_account'])  # 30101810400000000225

Frontend-код

libs/dadata/

typescript
// libs/dadata/src/lib/dadata.service.ts
@Injectable({ providedIn: 'root' })
export class DadataService {
  findParty(inn: string): Observable<DadataParty[]> {
    return this.http.get<DadataParty[]>(
      `${this.apiUrl}/dadata/party/?query=${inn}`
    )
  }

  findBank(bik: string): Observable<DadataBank[]> {
    return this.http.get<DadataBank[]>(
      `${this.apiUrl}/dadata/bank/?query=${bik}`
    )
  }
}

DaData-директивы

В libs/contact-components/dadata-directives.module.ts — директивы для автозаполнения полей форм:

  • [dadataParty] — автозаполнение при вводе ИНН
  • [dadataBank] — автозаполнение при вводе БИК
  • [dadataAddress] — подсказки адресов

Лимиты API

ТарифЗапросов/день
Бесплатный10 000
Paidот 100 000

Обработка ошибок

При недоступности DaData система продолжает работу — пользователь вводит данные вручную. DaData используется как вспомогательный инструмент, не как обязательное условие.