DaData
Пакет: dadata==20.7.0
Документация: https://dadata.ru/api/
Назначение
DaData — сервис стандартизации и обогащения данных. Используется для:
- Автозаполнения реквизитов контрагентов по ИНН
- Верификации банковских реквизитов по БИК
- Стандартизации адресов
- Верификации адресов доставки в TMS
Конфигурация
env
DADATA_TOKEN=your_api_token
DADATA_SECRET=your_secret_keyEndpoints в системе
| 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 для проксирования запросов к DaDataapp/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']) # 30101810400000000225Frontend-код
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 используется как вспомогательный инструмент, не как обязательное условие.