Сервис предназначен для выполнения электронной подписи документов и команд отправляемых в налоговую (Украина).
А текже для проверки подписи и декодирования ответа налоговой.
Сервис может работать в двух режимах: с предустановленым приватным ключом (как правило Key-6.dat)
и с передачей ключа вместе с сообщением, если сервис используют несколько компаний.
Во втором случае следует запускать сервис с https протоколом.
Устанавливается как обычное приложение для Node.
Под виндовс (для использованиея например в 1С) можно скачать готовую (portable) сборку
Настройка в основном выполняется в файле config.js
//Настройки сервера
host: # IP адрес хоста
port: # порт
usessl: # Использовать SSL
key: # SSL ключ
cert: # SSL сертификат
passphrase: # пароль к ключу
//ключ подписи если используется встроеный
keyFileName: # приватный ключ выданый АЦСК
keyPassword: # пароль к ключу
certificateFileName: # сертификат
файлы ключей и cертификатов должны быть в папке resources
Запуск:
npm i
npm run start
Все запросы выполняются методом POST. Данные в теле запрос в виде json файла в UTF-8
route: /
method: GET
status: 200 OK
body:
{
"success": true
}
route: /check
method: POST
body:
{
"serversidekey":true
}
при передаче ключа
body:
{
"serversidekey":false,
"key": base64 кодированый файл ключа,
"cert": base64 кодированый файл сертификата,
"password": пароль к ключу
}
status: 200 OK
body:
{
"success": true,
"owner": владелец ключа,
"owner": идентификатор ключа (может понадобится указать в настройках терминала в налоговой)
}
в случае ошибки
status: 200 OK
body:
{
"success": true,
"error": текст ошибки
}
route: /sign
method: POST
body:
{
"serversidekey":true,
"data": base64 кодированное подписываемое сообщение
}
при передаче ключа
body:
{
"serversidekey":false,
"data": base64 кодированеое подписываемое сообщение
"key": base64 кодированый файл ключа,
"cert": base64 кодированый файл сертификата,
"password": пароль к ключу
}
status: 200 OK
body:
{
"success": true,
"data": подписаное сообщение
}
в случае ошибки
status: 200 OK
body:
{
"success": true,
"error": текст ошибки
}
Запрос в налоговую выполняется по адресу
http://fs.tax.gov.ua:8609/fs/doc для документов
http://fs.tax.gov.ua:8609/fs/cmd для команд
route: /decrypt
method: POST
body:
{
"serversidekey":true,
"data": base64 кодированеое подписываемое подлписаное сообщение
}
при передаче ключа
body:
{
"data": base64 кодированеое подписаное сообщение
}
status: 200 OK
body:
{
"success": true,
"data": содержимое сообщения
}
в случае ошибки
status: 200 OK
body:
{
"success": true,
"error": текст ошибки
}
Для jks файлов (приват банк) ичпользуются соответственно методы
/checkjks
/signjks
с тем отличием что не нужен файл сертификата поскольку сертификаты хранятся в jks контейнере вместе с ключами