שילוב DaData להשלמה אוטומטית של פרטי חברות באתר שלך
שגיאת הזנת INN היא אחת הבעיות הנפוצות ביותר בטפסי רישום של ישויות משפטיות. לקוח מזיז ספרות בטעות, והאפליקציה מתקדמת עם פרטים שגויים. DaData פותר זאת באופן מיידי: השלמה אוטומטית לפי INN חלקי או שם חברה. הניסיון שלנו — למעלה מ-80 אינטגרציות, מחנויות מקוונות ועד חשבונות אישיים בבנקים. זמן מילוי הטופס קטן ב-80%, ושגיאות ההזנה קטנות ב-95%.
קחו מקרה טיפוסי: חנות מקוונת עם טופס רישום מורכב של צד שכנגד. מילוי ידני של 12 שדות אורך 3–5 דקות; עם השלמה אוטומטית זה לוקח 30 שניות. DaData מאחורי הקלעים מבצע בקשה אחת ל-EGRUL ומחזיר JSON נקי. אין צורך לנתח XML של שירות המס הפדרלי (FNS).
DaData הוא הסטנדרט דה פקטו להשלמה אוטומטית של פרטי חברות באתרים רוסיים. השירות יכול להחזיר רשימת חברות עם פרטים מלאים לפי INN חלקי או שם: INN, OGRN, KPP, כתובת חוקית, שם מנכ"ל, סטטוס (פעילה/מחוסלת). באופן דומה לבנקים — לפי BIC הוא מחזיר שם בנק, חשבון כתב, כתובת.
אילו נתונים DaData מחזיר?
DaData הוא שירות הצעות (אנלוגי ל-Google Places, אבל עבור פרטים רוסיים). הוא שואל את נתוני EGRUL/EGRIP והבנק המרכזי של רוסיה בזמן אמת. בתשובת JSON: עבור ישויות משפטיות — inn, kpp, ogrn, name, address, management, state; עבור בנקים — bic, correspondent_account, name. כל השדות מנותחים מראש — אין צורך לנתח XML של FNS. לפי תיעוד DaData, התוכנית החינמית מאפשרת עד 10,000 בקשות ביום.
איך מקבלים טוקן ומתחילים?
הירשמו ב-dadata.ru, עברו לחשבון אישי → מפתחות API. שני מפתחות: Token (לבקשות) ו-Secret (לסטנדרטיזציה). להצעות בלבד נדרש רק Token. תוכנית חינמית: 10,000 בקשות ביום. מספיק לרוב הטפסים.
DaData מול חלופות
DaData מהיר פי 5 מבקשות ישירות ל-FNS ותומך בהשלמה אוטומטית לפי שאילתה חלקית. שירות FNS הישיר מחזיר XML שחייבים לנתח — איטי ולא אמין. DaData מחזיר JSON מוכן.
| קריטריון | DaData | בקשה ישירה ל-FNS |
|---|---|---|
| מהירות תגובה | ~300 אלפיות השנייה | ~1.5 שניות |
| השלמה אוטומטית לפי שאילתה חלקית | כן | לא |
| פורמט תגובה | JSON (מוכן) | XML (דורש ניתוח) |
| מגבלה חינמית | 10,000 בקשות/יום | 1,000 בקשות/יום |
| חיפוש לפי שם | כן | רק לפי INN/OGRN |
הצעות ארגונים וחיפוש INN
נקודת קצה: POST https://suggestions.dadata.ru/suggestions/api/4_1/rs/suggest/party. דוגמה ב-Laravel המשלבת הצעה וחיפוש INN מדויק:
$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', []);
// Поиск по точному ИНН
$response = Http::withHeaders([...])->post('https://suggestions.dadata.ru/suggestions/api/4_1/rs/findById/party', [
'query' => '7736207543',
]);
$party = $response->json('suggestions.0.data');
תשובה עבור ארגון אחד:
{
"value": "ООО \"ЯНДЕКС\"",
"unrestricted_value": "ООО \"ЯНДЕКС\"",
"data": {
"inn": "7736207543",
"kpp": "770401001",
"ogrn": "1027700229193",
"name": {
"full_with_opf": "ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ \"ЯНДЕКС\""
},
"management": {
"name": "ВОЛОЖ АРКАДИЙ ЮРЬЕВИЧ",
"post": "ГЕНЕРАЛЬНЫЙ ДИРЕКТОР"
},
"address": {
"value": "г Москва, ул Льва Толстого, д 16"
},
"state": {
"status": "ACTIVE"
}
}
}כאשר נבחרת חברה מהרשימה, הטופס מתמלא אוטומטית: INN, KPP, OGRN, כתובת חוקית, שם מנכ"ל — הכל מתשובה אחת.
הצעות בנקים (BIK)
נקודת קצה דומה: $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', []); // Поиск по точному ИНН $response = Http::withHeaders([...])->post('https://suggestions.dadata.ru/suggestions/api/4_1/rs/findById/party', [ 'query' => '7736207543', ]); $party = $response->json('suggestions.0.data'); או { "value": "ООО \"ЯНДЕКС\"", "unrestricted_value": "ООО \"ЯНДЕКС\"", "data": { "inn": "7736207543", "kpp": "770401001", "ogrn": "1027700229193", "name": { "full_with_opf": "ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ \"ЯНДЕКС\"" }, "management": { "name": "ВОЛОЖ АРКАДИЙ ЮРЬЕВИЧ", "post": "ГЕНЕРАЛЬНЫЙ ДИРЕКТОР" }, "address": { "value": "г Москва, ул Льва Толстого, д 16" }, "state": { "status": "ACTIVE" } } } . דוגמה:
$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'] => 'Сбербанк' איך לשלב את DaData בצורה מאובטחת מבלי לחשוף את הטוקן?
אם אינכם רוצים לחשוף את הטוקן ללקוחות, השתמשו בפרוקסי בצד השרת. אנו מיישמים עטיפת בקר עם מטמון שמקבל בקשות מהפרונטאנד ומעביר אותן ל-DaData. הטוקן שלכם נשאר על השרת.
פרטי מימוש בקר פרוקסי ב-Laravel
הבקר מקבל בקשות POST מהפרונטאנד, מאמת את סוג ההצעה (party/bank), מבצע בקשה ל-DaData עם טוקן השרת, ומחזיר את התוצאה. אופציונלית, שומר תגובות במטמון Redis למשך 24 שעות.
פרונטאנד ללא פרוקסי בשרת
DaData תומך בבקשות ישירות מהדפדפן. לשם כך, הוסיפו את הדומיין שלכם לרשימת המקורות המותרים בהגדרות החשבון שלכם ב-DaData. אז הבקשות עוברות ישירות מ-JS:
import { DaDataSuggestions } from 'react-dadata';
import 'react-dadata/dist/react-dadata.css';
<DaDataSuggestions
token="ВАШ_ТОКЕН"
type="party"
onChange={(suggestion) => {
setInn(suggestion?.data?.inn ?? '');
setKpp(suggestion?.data?.kpp ?? '');
setOgrn(suggestion?.data?.ogrn ?? '');
}}
/>הספרייה /suggest/bank היא רכיב React מוכן. קיימים רכיבים דומים ל-Vue ו-JS ונילה.
מטמון לחיסכון במכסה
ניתן לשמור חיפושי INN במטמון — נתוני חברות משתנים לעיתים רחוקות. דוגמה פשוטה ב-Laravel:
$data = Cache::remember("party_{$inn}", now()->addHours(24), function () use ($inn) {
return $this->fetchFromDadata($inn);
});מטמון מפחית צריכת מכסה ומאיץ בקשות חוזרות. TTL של 24 שעות הוא פשרה סבירה.
תרחיש יישום טיפוסי
טופס רישום של ישות משפטית באתר: שדה "INN או שם חברה" עם הצעות DaData. כאשר מתבצעת בחירה, שדות אחרים (KPP, OGRN, כתובת, מנהל) מתמלאים אוטומטית. זה מבטל שגיאות הזנה ומקצר את זמן מילוי הטופס מ-3–5 דקות ל-30 שניות.
מה כלול בעבודה
- ניתוח הטופס וזיהוי סוגי ההצעות (ישויות משפטיות, בנקים, כתובות).
- עיצוב ארכיטקטורה: האם נדרשים בקר פרוקסי ומטמון.
- מימוש פרוקסי בשרת ורכיב פרונטאנד (React/Vue/JS ונילה).
- בדיקת מקרי קצה: עצמאים, חברות LLC, ארגונים מחוסלים, INN שגויים.
- פריסה ואינטגרציה עם המערכת שלכם.
- תיעוד לשימוש (הערות קוד, README).
- הדרכת צוות (שיחת וידאו של 30 דקות).
- תמיכה לאחר השקה למשך שבועיים.
תהליך האינטגרציה ולוחות זמנים
| שלב | משך |
|---|---|
| ניתוח | 1–2 שעות |
| עיצוב | 1–2 שעות |
| מימוש | 4–8 שעות |
| בדיקות | 2–4 שעות |
| פריסה | 1–2 שעות |
אינטגרציה בסיסית אורכת 2–4 שעות. פרויקטים מורכבים עם מטמון נוסף — עד יומיים.
הזמינו אינטגרציית DaData לאתר שלכם — קצרו את זמן מילוי הטופס פי 5. צרו קשר כדי לקבל פתרון מוכן עם פרוקסי ורכיב פרונטאנד. נעריך את הפרויקט שלכם ונכין הצעה.







