DaData Integration for Company Details Autocomplete on Your Website

DaData Integration for Company Details Autocomplete on Your Website

Development and maintenance of all types of websites:

Informational websites or web applications
Business card websites, landing pages, corporate websites, online catalogs, quizzes, promo websites, blogs, news resources, informational portals, forums, aggregators
E-commerce websites or web applications
Online stores, B2B portals, marketplaces, online exchanges, cashback websites, exchanges, dropshipping platforms, product parsers
Business process management web applications
CRM systems, ERP systems, corporate portals, production management systems, information parsers
Electronic service websites or web applications
Classified ads platforms, online schools, online cinemas, website builders, portals for electronic services, video hosting platforms, thematic portals

These are just some of the technical types of websites we work with, and each of them can have its own specific features and functionality, as well as be customized to meet the specific needs and goals of the client.

Our competencies:

Frequently Asked Questions

Latest works

  • image_web-applications_feedme_466_0.webp
    Development of a web application for FEEDME
    1281
  • image_ecommerce_furnoro_435_0.webp
    Development of an online store for the company FURNORO
    1237
  • image_crm_enviok_479_0.webp
    Development of a web application for Enviok
    977
  • image_crm_chasseurs_493_0.webp
    CRM development for Chasseurs
    1025
  • image_website-sbh_0.webp
    Website development for SBH Partners
    1103
  • image_website-_0.webp
    Website development for Red Pear
    550

DaData Integration for Company Details Autocomplete on Your Website

An INN input error is one of the most common issues on legal entity registration forms. A client accidentally transposes digits, and the application goes through with incorrect details. DaData solves this instantly: autocomplete by partial INN or company name. Our experience — 80+ integrations, from online stores to banking personal accounts. Form fill time reduced by 80%, input errors reduced by 95%.

Take a typical case: an online store with a complex counterparty registration form. Manually filling 12 fields takes 3–5 minutes; with autocomplete it takes 30 seconds. DaData under the hood makes a single request to EGRUL and returns clean JSON. No need to parse FNS XML.

DaData is the de facto standard for company details autocomplete on Russian websites. The service can return a list of companies with full details based on a partial INN or name: INN, OGRN, KPP, legal address, CEO name, status (active/liquidated). Similarly for banks — by BIC it returns bank name, correspondent account, address.

What Data Does DaData Return?

DaData is a suggestion service (analogous to Google Places, but for Russian details). It queries EGRUL/EGRIP and Central Bank of Russia data in real time. In JSON response: for legal entities — inn, kpp, ogrn, name, address, management, state; for banks — bic, correspondent_account, name. All fields are pre-parsed — no need to parse FNS XML. According to DaData documentation, the free plan allows up to 10,000 requests per day.

How to Get a Token and Start?

Register at dadata.ru, go to Personal Account → API Keys. Two keys: Token (for requests) and Secret (for standardization). For suggestions only Token is needed. Free plan: 10,000 requests per day. Sufficient for most forms.

DaData vs Alternatives

DaData is 5 times faster than direct FNS requests and supports autocomplete by partial query. Direct FNS service returns XML that must be parsed — slow and unreliable. DaData returns ready JSON.

Criteria DaData Direct FNS Request
Response speed ~300 ms ~1.5 s
Autocomplete by partial query Yes No
Response format JSON (ready) XML (requires parsing)
Free limit 10,000 requests/day 1,000 requests/day
Search by name Yes Only by INN/OGRN

Organization Suggestions and INN Lookup

Endpoint: POST https://suggestions.dadata.ru/suggestions/api/4_1/rs/suggest/party. Example in Laravel combining suggestion and exact INN lookup:

$response = Http::withHeaders([ 'Authorization' => 'Token ' . config('services.dadata.token'), 'Content-Type' => 'application/json', ])->post('https://suggestions.dadata.ru/suggestions/api/4_1/rs/suggest/party', [ 'query' => $query, 'count' => 5, 'status' => ['ACTIVE'], ]); $suggestions = $response->json('suggestions', []); // Exact INN lookup $response = Http::withHeaders([...])->post('https://suggestions.dadata.ru/suggestions/api/4_1/rs/findById/party', [ 'query' => '7736207543', ]); $party = $response->json('suggestions.0.data'); 

Response for one organization:

{ "value": "OOO \"YANDEKS\"", "unrestricted_value": "OOO \"YANDEKS\"", "data": { "inn": "7736207543", "kpp": "770401001", "ogrn": "1027700229193", "name": { "full_with_opf": "OBSHCHESTVO S OGRANICHENNOY OTVETSTVENNOST'YU \"YANDEKS\"" }, "management": { "name": "VOLOZH ARKADIY YUR'YEVICH", "post": "GENERAL'NY DIREKTOR" }, "address": { "value": "g Moskva, ul L'va Tolstogo, d 16" }, "state": { "status": "ACTIVE" } } } 

When a company is selected from the list, the form auto-fills: INN, KPP, OGRN, legal address, CEO name — all from a single response.

Bank Suggestions (BIK)

Similar endpoint: /suggest/bank or /findById/bank. Example:

$response = Http::withHeaders([ 'Authorization' => 'Token ' . config('services.dadata.token'), 'Content-Type' => 'application/json', ])->post('https://suggestions.dadata.ru/suggestions/api/4_1/rs/suggest/bank', [ 'query' => '044525225', ]); $bank = $response->json('suggestions.0.data'); // $bank['bic'] => '044525225' // $bank['correspondent_account'] => '30101810400000000225' // $bank['name']['payment'] => 'Sberbank' 

How to Securely Integrate DaData Without Exposing the Token?

If you don't want to expose the token to clients, use a backend proxy. We implement a controller wrapper with caching that accepts requests from the frontend and forwards them to DaData. Your token remains on the server.

Details of proxy controller implementation in Laravel

The controller accepts POST requests from the frontend, validates the suggestion type (party/bank), makes a request to DaData with the server token, and returns the result. Optionally caches responses in Redis for 24 hours.

Frontend Without Backend Proxy

DaData supports direct requests from the browser. To do this, add your domain to the allowed origins list in your DaData cabinet settings. Then requests go directly from JS:

import { DaDataSuggestions } from 'react-dadata'; import 'react-dadata/dist/react-dadata.css'; <DaDataSuggestions token="YOUR_TOKEN" type="party" onChange={(suggestion) => { setInn(suggestion?.data?.inn ?? ''); setKpp(suggestion?.data?.kpp ?? ''); setOgrn(suggestion?.data?.ogrn ?? ''); }} /> 

The react-dadata library is a ready-made React component. Similar components exist for Vue and vanilla JS.

Caching to Save Quota

INN lookups can be cached — company data changes rarely. A simple Laravel example:

$data = Cache::remember("party_{$inn}", now()->addHours(24), function () use ($inn) { return $this->fetchFromDadata($inn); }); 

Caching reduces quota consumption and speeds up repeated requests. 24-hour TTL is a reasonable compromise.

Typical Implementation Scenario

A legal entity registration form on a website: "INN or company name" field with DaData suggestions. When a selection is made, other fields (KPP, OGRN, address, director) auto-fill. This eliminates input errors and reduces form fill time from 3–5 minutes to 30 seconds.

What's Included in the Work

  • Analysis of the form and identification of suggestion types (legal entities, banks, addresses).
  • Architecture design: whether a proxy controller and caching are needed.
  • Implementation of backend proxy and frontend component (React/Vue/vanilla JS).
  • Testing edge cases: sole proprietors, LLCs, liquidated organizations, incorrect INNs.
  • Deployment and integration with your system.
  • Documentation for usage (code comments, README).
  • Team training (30-minute online call).
  • Post-release support for 2 weeks.

Integration Process and Timeframes

Step Duration
Analysis 1–2 hours
Design 1–2 hours
Implementation 4–8 hours
Testing 2–4 hours
Deployment 1–2 hours

Basic integration takes 2–4 hours. Complex projects with additional caching — up to 2 days.

Order DaData integration for your website — reduce form fill time by 5 times. Contact us to get a ready solution with proxy and frontend component. We'll evaluate your project and prepare a proposal.