| .env.example | ||
| .gitignore | ||
| error.json | ||
| LICENSE | ||
| package-lock.json | ||
| package.json | ||
| README.MD | ||
| server.js | ||
FNS Receipt Service
Express-сервис на Node.js 22 для создания чеков через ФНС и отправки ссылки на чек по email.
Локальный запуск
npm install
cp .env.example .env
npm start
Сервис запустится на порту из PORT или на 4000 по умолчанию.
Переменные окружения
Заполните эти переменные в Timeweb Cloud в разделе переменных окружения:
INN=123456789012
PASSWORD=your_fns_password
APPNAME=Название проекта
ADMIN_EMAIL=admin@example.com
SMTP_HOST=smtp.example.com
SMTP_PORT=587
SMTP_USER=noreply@example.com
SMTP_PASS=email_app_password
SMTP_MAIL_FROM=noreply@example.com
API_PASS=strong_api_password
PORT=4000
HOST=0.0.0.0
API_PASS должен совпадать с api_pass в запросах к POST /api/v1/create-receipt.
Timeweb Cloud
Что заполнить при деплое:
| Поле | Значение |
|---|---|
| Runtime | Node.js 22 |
| Фреймворк | Express |
| Команда сборки | npm install |
| Зависимости | npm install |
| Команда запуска | npm start |
| Путь до директории проекта | /fns-receipt-service |
| Путь проверки состояния | /health |
Если Timeweb Cloud сам устанавливает зависимости, в поле команды сборки можно оставить npm install или не указывать команду сборки, если интерфейс позволяет.
API
Проверка состояния:
GET /health
Создание чека:
POST /api/v1/create-receipt
Content-Type: application/json
{
"api_pass": "strong_api_password",
"email": "client@example.com",
"items": [
{
"id": "order-1",
"name": "Услуга",
"price": 1000,
"quantity": 1
}
]
}