Отчетность через интернет

Отправить расчет электронного листа нетрудоспособности

Отправить расчет электронного листа нетрудоспособности

Расчет по сформированному электронному больничному листу (ЭЛН) можно отправить в Фонд социального страхования. После обработки расчета, ФСС пришлет ответ, который нужно получить и расшифровать в вашей системе.

1. Отправьте ЭЛН в ФСС
2. Получите и расшифруйте ответ

Для отправки расчета ЭЛН:

  1. Авторизуйтесь на online.sbis.ru с помощью O-Auth под пользователем с правами «Бухгалтер по отчетности».

    Если вы уже вошли на портал, добавьте заголовки запросов «X-SBISAccessTokenX» и «SBISDeviceId». Повторная авторизация запрещена.

  2. Подготовьте файл расчета ЭЛН. Для отправки расчета используйте служебный формат СБИС.

    Пример:

    <?xml version="1.0" encoding="windows-1251"?>
    <eln:prParseReestrFile
            xmlns:eln="http://ru/ibs/fss/ln/ws/FileOperationsLn.wsdl">
            <eln:request>
                    <eln:regNum>7736043300</eln:regNum>
                    <eln:pXmlFile>
                            <eln:ROWSET eln:version="1.1" eln:software="СБИС" eln:version_software="2.4.615" eln:author="ДобродомоваОльгаПавловна" eln:phone="123-432" eln:email="qwert@ya.ru">
                                    <eln:ROW Id="ELN_900000020587">
                                            <eln:LN_CODE>900000020587</eln:LN_CODE>
                                            <eln:SNILS>51287574805</eln:SNILS>
                                            <eln:EMPLOYER>Байт, ООО</eln:EMPLOYER>
                                            <eln:EMPL_FLAG>1</eln:EMPL_FLAG>
                                            <eln:EMPL_REG_NO>7736043300</eln:EMPL_REG_NO>
                                            <eln:EMPL_PARENT_NO>77361</eln:EMPL_PARENT_NO>
                                            <eln:APPROVE1>ДобродомоваОльгаПавловна</eln:APPROVE1>
                                            <eln:APPROVE2>ДобродомоваОльгаПавловна</eln:APPROVE2>
                                            <eln:BASE_AVG_SAL>1800000.00</eln:BASE_AVG_SAL>
                                            <eln:BASE_AVG_DAILY_SAL>2465.75</eln:BASE_AVG_DAILY_SAL>
                                            <eln:INSUR_YY>4</eln:INSUR_YY>
                                            <eln:INSUR_MM>2</eln:INSUR_MM>
                                            <eln:NOT_INSUR_YY>0</eln:NOT_INSUR_YY>
                                            <eln:NOT_INSUR_MM>0</eln:NOT_INSUR_MM>
                                            <eln:CALC_CONDITION1>43</eln:CALC_CONDITION1>
                                            <eln:CALC_CONDITION2>44</eln:CALC_CONDITION2>
                                            <eln:CALC_CONDITION3>45</eln:CALC_CONDITION3>
                                            <eln:FORM1_DT
                                                    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true">
                                            </eln:FORM1_DT>
                                            <eln:RETURN_DATE_EMPL>2001-01-01</eln:RETURN_DATE_EMPL>
                                            <eln:DT1_LN>2018-10-01</eln:DT1_LN>
                                            <eln:DT2_LN>2018-10-09</eln:DT2_LN>
                                            <eln:EMPL_PAYMENT>4500.00</eln:EMPL_PAYMENT>
                                            <eln:FSS_PAYMENT>9000.00</eln:FSS_PAYMENT>
                                            <eln:PAYMENT>13500.00</eln:PAYMENT>
                                            <eln:CORRECTION_REASON>01</eln:CORRECTION_REASON>
                                            <eln:CORRECTION_NOTE>новыеданные18</eln:CORRECTION_NOTE>
                                            <eln:LN_HASH>0EB585EE2DBC03D2602AD48045A6713B</eln:LN_HASH>
                                    </eln:ROW>
                            </eln:ROWSET>
                    </eln:pXmlFile>
            </eln:request>
    </eln:prParseReestrFile>
    
  3. Отправьте расчет ЭЛН в файловое хранилище и получите идентификатор объекта.
  4. Вызовите метод «СБИС.ЗаписатьКомплект».

    Комментарий

    • Идентификатор комплекта в поле «Расширение.ИдентификаторКомплекта» совпадает с идентификатором комплекта отправленного запроса ЭЛН.
    • Идентификатор в поле «Сведения.Описание.ИдентификаторВложения» должен совпасть со значением поля «Вложение.Идентификатор».
    • Значение полей «Тип», «Подтип», «Вложение.Подтип», «Вложение.ВерсияФормата», «Вложение.ПодверсияФормата» нужно всегда указывать согласно справочнику типов документов и типов вложений.
  5. Вызовите метод «СБИС.ПодготовитьДействие».

  6. Подпишите криптографический хеш, который получен в ответе «СБИС.ПодготовитьДействие». Чтобы подписать хеш используйте функцию WinAPI CryptSignHash или ее аналог.

    ФСС требует подписывать расчет ЭЛН тремя подписями: страхователя, руководителя и главного бухгалтера. Это может быть подпись одного и того же лица, но в трех копиях.

  7. Вызовите метод «СБИС.ВыполнитьДействие».

Итог:расчет ЭЛН отправлен через online.sbis.ru. После его обработки ФСС пришлет на него зашифрованный ответ. Ответ может содержать перечень ошибок в файле расчета.

Теперь нужно получить и расшифровать ответ.

Чтобы получить ответ ФСС:

  1. Вызовите метод «СБИС.СписокСлужебныхЭтапов». В параметрах укажите реквизиты организации, по которой будете обрабатывать служебные этапы. Метод вернет несколько этапов для обработки.
  2. Для этапа ответа вызовите метод «СБИС.ПодготовитьДействие». Он вернет ссылку на зашифрованное тело файла.
  3. Скачайте тело зашифрованного файла по ссылке в объекте «Этап.Вложение.Файл.Ссылка».
  4. Чтобы обеспечить конфиденциальность передаваемых данных сервис высылает ответ, который зашифрован по стандарту «XMLEncryptionSyntaxandProcessing(W3C)».

    Шифрование сессионного ключа и данных происходит по алгоритму ГОСТ 28147-89. Описание алгоритмов в спецификации сервиса Страхователя ФСС.

    С учетом этих особенностей, для расшифровки в вашей информационной системе нужно создать собственную реализацию по работе с «Encrypted XML». При этом можно пользоваться низкоуровневыми функциями «Crypto API».

    На вход передайте тело сообщения ответа, которое приведено в примере выше.

  5. Вызовите метод «СБИС.ВыполнитьДействие» и передайте расшифрованные данные на вход в поле «ДвоичныеДанные».
  6. Когда все служебные этапы будут обработаны, получите свежие ответы с online.sbis.ru. Для этого вызовите метод «СБИС.СписокИзменений». Вместе с ответами с сайта, команда вернет расшифрованные вами ответы.

    Комментарий

    • Метод «СБИС.СписокИзменений» вернет в поле «Событие» список завершенных событий документооборота по всем документам в кабинете контрагента. К каждому событию приложены расшифрованные файлы и подписи.
    • В полученном списке документов и событий необходимо отфильтровать события по запросу ЭЛН.
      К запросу ЭЛН относятся документы со значением полей «Документ.Тип»=«РеестрФСС» и «Документ.Расширение.ПодТип»=«GETPRIVATELDATA».
      Расчет ЭЛН прикреплен к событию с полем «Документ.Событие.Название»=«ответ».
    • Значения полей «Состояние» и «Событие.Группа» описывают состояние документооборота по больничному.
  7. Скачайте файл по ссылке в поле «Событие.Вложение.Файл». Ссылка находится в событии «Ответ», вложение с подтипом «PRPARSEREESTRFILERESPONSE».

    Пример файла ответа:

    <?xml version="1.0" encoding="UTF-8"?>
    <ns1:prParseReestrFileResponse
            xmlns:ns1="http://ru/ibs/fss/ln/ws/FileOperationsLn.wsdl"
            xmlns:ns2="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
            <ns1:WSResult>
                    <ns1:REQUEST_ID>LNDATAINS_7736043300_2018_11_12_00005</ns1:REQUEST_ID>
                    <ns1:STATUS>1</ns1:STATUS>
                    <ns1:MESS>OK</ns1:MESS>
                    <ns1:INFO>
                            <ns1:ROWSET>
                                    <ns1:ROW>
                                            <ns1:ROW_NO>1</ns1:ROW_NO>
                                            <ns1:LN_CODE>900000020587</ns1:LN_CODE>
                                            <ns1:LN_HASH>DF2B39E0A4AFF112D39EC11190DAB53E</ns1:LN_HASH>
                                            <ns1:LN_STATE>060</ns1:LN_STATE>
                                            <ns1:STATUS>1</ns1:STATUS>
                                    </ns1:ROW>
                            </ns1:ROWSET>
                    </ns1:INFO>
            </ns1:WSResult>
    </ns1:prParseReestrFileResponse>