Invovate ← Вернуться к Генератору Счетов

API Генератора Счетов

Создавайте профессиональные PDF-счета программно через простой REST API

v1.0

Обзор

API счетов Invovate позволяет разработчикам создавать профессиональные счета с помощью одного HTTP POST-запроса. Можно выбрать структурированный JSON-ответ со всеми расчетами или прямую загрузку PDF-файла. API поддерживает 11 языков, более 20 валют и 5 дизайнерских шаблонов — идеально для фрилансеров, SaaS-компаний и бухгалтерских приложений.

Бесплатный старт

40 запросов/час, без карты

JSON или PDF

Выберите формат вывода

Расчет НДС

По строке или глобально (20%/10%)

Многоязычный

ru, en, de, fr, es и другие

Базовый URL:
https://invovate.com/api

Быстрый старт

Создайте первый счет за три шага:

Шаг 1 — Создать аккаунт
Зарегистрируйтесь бесплатно на invovate.com и подтвердите адрес электронной почты.
Шаг 2 — Получить API-ключ
Перейдите в панель управления и нажмите «Создать API-ключ». Ключ начинается с inv_.
Шаг 3 — Первый запрос
curl -X POST https://invovate.com/api/generate-invoice \ -H "Content-Type: application/json" \ -H "Authorization: Bearer inv_vashApiKlyuch" \ -d '{ "from": {"name": "ООО Мой Бизнес"}, "to": {"name": "ООО Клиент"}, "items": [{"description": "Разработка сайта", "quantity": 1, "unit_price": 150000, "tax_rate": 20}], "invoice": {"currency": "USD", "language": "ru"} }'

Аутентификация

API поддерживает три метода аутентификации:

1. API-ключ (рекомендуется для серверной стороны)

Authorization: Bearer inv_vashApiKlyuchZdes

2. Cookie сессии (для веб-приложений)

При авторизации через браузер cookie inv_session отправляется автоматически.

3. Анонимный (без аутентификации)

Запросы без аутентификации возможны, но ограничены выводом в формате JSON и лимитируются по IP-адресу. Подходит для тестирования API.

Безопасность: Никогда не включайте API-ключ в клиентский код и не храните его в Git-репозитории. Используйте переменные среды на сервере.

Лимиты и тарифы

ТарифЦенаВ часВ неделю
Бесплатный$040400
Starter$9/мес2004 000
Pro$29/мес1 00040 000
EnterpriseПо запросуБез лимитаБез лимита

Лимиты возвращаются в заголовках ответа:

X-RateLimit-Limit-Hourly: 40 X-RateLimit-Remaining-Hourly: 39 X-RateLimit-Reset-Hourly: 1712123456 X-RateLimit-Limit-Weekly: 400 X-RateLimit-Remaining-Weekly: 399 X-RateLimit-Reset-Weekly: 1712345678

Создать счет

POST
/api/generate-invoice

Создает счет и возвращает либо JSON со всеми расчетами, либо бинарный PDF-файл.

Формат запроса

Отправитель (from)

ПолеТипОбязательноеОписание
from.namestringДаНазвание вашей компании
from.addressstringНетАдрес вашей компании
from.emailstringНетВаш email
from.tax_idstringНетИНН / КПП

Получатель (to)

ПолеТипОбязательноеОписание
to.namestringДаНазвание клиента или компании
to.addressstringНетАдрес клиента
to.emailstringНетEmail клиента

Данные счета (invoice)

ПолеТипПо умолчаниюОписание
invoice.numberstringАвтоНомер счета
invoice.datestringСегодняДата выставления (ГГГГ-ММ-ДД)
invoice.due_datestringСрок оплаты (ГГГГ-ММ-ДД)
invoice.currencystringUSDКод валюты (напр. USD, EUR)
invoice.languagestringenКод языка (напр. ru)
invoice.termsstringУсловия оплаты
invoice.po_numberstringНомер заказа на поставку

Позиции (items массив)

ПолеТипОбязательноеОписание
descriptionstringДаОписание товара или услуги
quantitynumberДаКоличество
unit_pricenumberДаЦена за единицу (без НДС)
discountnumberНетСкидка (процент или сумма)
discount_typestringpercent"percent" или "amount"
tax_ratenumberНетСтавка НДС для строки (напр. 20)

Другие поля

ПолеТипОписание
global_taxnumberОбщая ставка НДС (применяется если нет строковой)
global_discountnumberСкидка на итого
amount_paidnumberУже оплаченная сумма (для частичной оплаты)
notesstringПримечания внизу счета
templatestringИмя шаблона: classic, modern, bold, minimal, navy
outputstring"json" (по умолчанию) или "pdf"

Формат ответа

JSON-ответ (output: "json")

{ "success": true, "invoice": { "number": "СЧ-2026-042", "date": "2026-04-03", "due_date": "2026-05-03", "currency": "USD", "language": "ru", "template": "classic", "from": { "name": "ООО Мой Бизнес", "tax_id": "7701234567" }, "to": { "name": "ООО Клиент" }, "items": [ { "description": "Разработка сайта", "quantity": 1, "unit_price": 2000, "discount": 0, "tax_rate": 20, "tax_amount": 400.00, "line_total": 2400.00 } ], "subtotal": 2000.00, "total_tax": 400.00, "grand_total": 2400.00, "amount_paid": 0, "balance_due": 2400.00, "notes": "Spasibo za sotrudnichestvo!" }, "meta": { "processing_ms": 11, "credits_remaining": { "hourly": 39, "weekly": 399 } } }

PDF-ответ (output: "pdf")

Возвращает бинарный PDF-файл со следующими заголовками:

Content-Type: application/pdf Content-Disposition: attachment; filename="invoice.pdf"

Коды ошибок

{ "success": false, "error": { "message": "Необходима хотя бы одна позиция" } }
HTTP-статусЗначение
400Ошибка валидации — проверьте формат запроса
401Требуется аутентификация или API-ключ недействителен
403Email не подтвержден
429Превышен лимит запросов
500Внутренняя ошибка сервера

Endpoints авторизации

МетодПутьОписание
POST/api/auth/registerСоздать аккаунт с email и паролем
POST/api/auth/loginВойти в систему, возвращает cookie сессии
POST/api/auth/logoutВыйти из системы
GET/api/auth/meПолучить данные текущего пользователя и API-ключ
POST/api/auth/generate-api-keyСоздать новый API-ключ (требуется подтвержденный email)

Примеры кода

cURL — PDF-счет с НДС

curl -X POST https://invovate.com/api/generate-invoice \ -H "Content-Type: application/json" \ -H "Authorization: Bearer inv_vashApiKlyuch" \ -d '{ "from": { "name": "ООО Веб Студия Москва", "address": "ул. Тверская 1, Москва 125009", "tax_id": "7701234567", "email": "[email protected]" }, "to": { "name": "ООО Компания Клиент", "address": "Невский пр. 10, Санкт-Петербург 191011", "email": "[email protected]" }, "invoice": { "number": "СЧ-2026-042", "date": "2026-04-03", "due_date": "2026-05-03", "currency": "USD", "language": "ru", "terms": "Оплата в течение 30 дней" }, "items": [ {"description": "Разработка сайта", "quantity": 1, "unit_price": 3000, "tax_rate": 20}, {"description": "SEO консультации", "quantity": 10, "unit_price": 100, "tax_rate": 20} ], "notes": "Spasibo za sotrudnichestvo!", "template": "classic", "output": "pdf" }' --output invoice.pdf

JavaScript (Node.js)

// Создание счета через Invovate API const response = await fetch('https://invovate.com/api/generate-invoice', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'Bearer inv_vashApiKlyuch' }, body: JSON.stringify({ from: { name: 'OOO Moj Biznes', tax_id: '7701234567' }, to: { name: 'OOO Klient', email: '[email protected]' }, invoice: { number: 'SCH-001', currency: 'USD', language: 'ru', due_date: '2026-05-03' }, items: [{ description: 'Konsultirovanie', quantity: 8, unit_price: 150, tax_rate: 20 }], output: 'json' }) }); const data = await response.json(); if (data.success) { console.log('Итого с НДС:', data.invoice.grand_total, 'USD'); console.log('Осталось запросов (за час):', data.meta.credits_remaining.hourly); }

Python

import requests API_KEY = "inv_vashApiKlyuch" URL = "https://invovate.com/api/generate-invoice" # Создание счета для российского клиента invoice = { "from": { "name": "IP Razrabotchik", "tax_id": "771234567890" }, "to": { "name": "OOO Klient", "address": "ul. Tverskaya 1, Moskva" }, "invoice": { "number": "SCH-2026-001", "currency": "USD", "language": "ru", "terms": "Oplata v techenie 30 dnej" }, "items": [ {"description": "Dizajn logo", "quantity": 1, "unit_price": 500, "tax_rate": 20}, {"description": "Vizitki", "quantity": 3, "unit_price": 80, "tax_rate": 20} ], "output": "pdf" } response = requests.post(URL, json=invoice, headers={"Authorization": f"Bearer {API_KEY}"}) if response.status_code == 200: with open("invoice.pdf", "wb") as f: f.write(response.content) print("Schet sohranyon: invoice.pdf") else: print(f"Oshibka: {response.json()['error']['message']}")

Поддерживаемые языки

КодЯзыкНаправление
ruРусскийLTR
enАнглийскийLTR
deНемецкийLTR
frФранцузскийLTR
nlНидерландскийLTR
esИспанскийLTR
itИтальянскийLTR
ptПортугальскийLTR
hiХиндиLTR
jaЯпонскийLTR
arАрабскийRTL

PDF-шаблоны

НазваниеСтиль
classicСиний акцент, чередующиеся серые строки (по умолчанию)
modernБирюзовый/голубой, чистый современный дизайн
boldТемный антрацитовый заголовок, высокий контраст
minimalСветло-серый, без границ
navyТемно-синий заголовок с золотой линией акцента

Поддерживаемые валюты

USD, EUR, GBP, JPY, CAD, AUD, CHF, CNY, INR, AED, SAR, SGD, NZD, KRW, BRL, MXN, ZAR, SEK, NOK, DKK