Получение данных о контрагенте - интеграция с сервисом ЗаЧестныйБизнес

Здесь мы рассмотрим интеграцию с сервисом За честный бизнес (ЗЧБ) - https://zachestnyibiznesapi.ru

Сервис возвращает большое количество информации по нужному контрагенту.

Аккаунт может быть трех степеней, в зависимости от степени методы могут выдавать дополнительную информацию. 

Каждый запрос имеет стоимость, по сравнению с ДАДАТА запросы дорогие, при общей схожести лучше информацию максимально тянуть из Дадаты, и только то чего там нет - из ЗЧБ.

Доступна информация:

  • Сведения ФНС (fns-card)
  • Фин. отчетность (fs)
  • Фин. отчетность ФНС (fs-fns)
  • ФССП (fssp-list)
  • Рейтинг (rating)
  • Судебные дела (court-arbitration)
  • Контакты (contacts)
  • Проверки (proverki)
  • РАФП (rafp)
  • ТОП закупок (zakupki-top)
  • Список сообщений по банкротству (bankrupt-message-list)
  • Карточка банкрота (bankrupt-card)
  • Список лизинговых договоров (lease-contracts-list)
  • Связанные организации (affilation-company)
  • Лицензии (licenses)
  • Важные факты/Риски (important-facts)
  • Проверка на наличие в реестре террористов (check-terror-fio)
  • Выписка из ЕГРЮЛ на требуемую дату (fns-card-report)
  • История изменений юр.адреса/руководителей/учредителей в организации 
  • Отчет по форме ФНС на требуемую дату (company-fns-requirements-info)
  • Проверка на наличие в реестре иноагентов (check-foreign-agent-fio)
  • и пр.

Пример вызова

https://zachestnyibiznesapi.ru/paid/data/bankrupt-message-list?id=***&api_key=token

вместо id чаще всего ИНН, но иногда ОГРН, надо смотреть описание метода.

Токен получаем после регистрации на сайте сервиса. 

формат на выходе - JSON, некоторые методы поддерживают XML.

Пример процедуры запроса к внешнему API (исходящий запрос API):

CREATE PROCEDURE [dbo].[api_zchb_get_request]
  @parameters ExtendedDictionaryParameter READONLY,  -- (Key, Value2)
  @username nvarchar(32)  -- current site user
AS
BEGIN
  declare @token nvarchar(max)=isnull((select value from as_settings where code='zchb_token'),'')
    declare @param nvarchar(max)=isnull((SELECT Value2 FROM @parameters WHERE [Key]='itemID'),'')
    declare @method nvarchar(max)='fssp-list'

  --обновляем
     insert as_trace(header,username,code,created) values('api_zchb_get,caller='+@caller+',method='+@method+',param='+@param,@username,'api_zchb_get',getdate())

  --select 1
     select '' Msg, 1 Result, @method RequestParameterForResponse,
        'https://zachestnyibiznesapi.ru/paid/data/'+@method+'?id='+@param+'&'+'api_key='+@token Url
END

Использовать API можно следующим образом (в таблице указываем название метода API - он будет вызываться до загрузки таблицы и поставлять в него данные)

CREATE PROCEDURE [dbo].[crud_zchb_fssp_getItems]
  @filters ExtendedDictionaryParameter READONLY,  
  @sort sql_variant,
  @direction nvarchar(8),
  @page int,
  @pageSize int,
  @username nvarchar(32)
AS
BEGIN
  declare @res nvarchar(max)=isnull((select Value2 from @filters where [Key]='zchb_get'),'')
  select  isnull(json_value(f.value,'$."Должник"'),'') name,
        isnull(json_value(f.value,'$."Адрес"'),'') desc_name,
      isnull(json_value(f.value,'$."НомИспПроизв"'),'') deloNum,
        isnull('От '+convert(nvarchar,dbo.srv_ddt2date(json_value(f.value,'$."ДатаВозбуждения"')+'000'),104),'') desc_deloNum,
            isnull(json_value(f.value,'$."Страховые взносы, включая пени"'),'') treb,
              isnull('Исп.документ '+json_value(f.value,'$."ДатаИспДок"'),'')+
                isnull(' от '+convert(nvarchar,dbo.srv_ddt2date(json_value(f.value,'$."ДатаИспДок"')+'000'),104),'') desc_treb,
            isnull(dbo.as_num(try_cast(json_value(f.value,'$."СуммаДолга"')as int),2)+' руб.','') dolg,
              isnull('Остаток долга '+dbo.as_num(try_cast(json_value(f.value,'$."ОстатокДолга"')as int),2)+' руб.','') desc_dolg,
            isnull(json_value(f.value,'$."ОтделСудебПрист"'),'') pristav,
        isnull(json_value(f.value,'$."АдрОтделаСудебПрист"'),'') desc_pristav
  into #res                
    from openjson(@res,'$.body.docs') f

    --select 1
    select * from #res
    order by name
    OFFSET @PageSize * (@Page - 1) ROWS  FETCH NEXT @PageSize ROWS ONLY
    
    --select 2
    select count(*) from #res
    drop table #res
    
END


Falcon Space - функциональная веб-платформа разработки на узком стеке MS SQL/Bootstrap. Вводная по Falcon Space
Насколько полезной была статья?

Google поиск по нашей документации

Выгода от использования Falcon Space

В 2-3 раза экономнее и быстрее, чем заказная разработка
Более гибкая, чем коробочные решения и облачные сервисы
Используйте готовые решения и изменяйте под свои потребности
Нужна бесплатная консультация?
Планируете делать веб-проект?
Сайт использует Cookie. Правила конфиденциальности OK