Группа компаний БИТ

REST API для 1С:Бухгалтерия

Готовый продукт: JSON и HTTP вместо OData — счета, акты, оплаты и поиск документов для B2B-платформ и интеграторов

137 250 ₽ лицензия
30 000 ₽ внедрение (опц.)
БП 3.0 3.0.190.22+

Для кого

REST API проще OData для счетов и актов

Молодым разработчикам не нужно неделями разбирать OData, метаданные и внутреннюю модель 1С. Достаточно знать HTTP и JSON — как в любом современном веб-сервисе.

OData / типовые веб-сервисы

  • Десятки сущностей и неочевидные связи
  • Долгий онбординг без 1С-разработчика
  • XML или громоздкие схемы обмена
  • Сложно отладить из Postman или curl

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

Четыре шага до первого счёта

1

Установите расширение

Штатными средствами 1С в конфигурацию «Бухгалтерия предприятия 3.0» (3.0.190.22+, в т.ч. КОРП).

2

Опубликуйте HTTP-сервис

Базовый URL: /{публикация}/hs/bit_http_api/. Создайте пользователя с ролью bitHttpApi_ОсновнаяРоль.

3

Отправьте POST

JSON с seller_inn, payer_inn и массивом items — счёт создаётся в 1С.

4

Подключите B2B-портал

Из PHP, Python, Node — обычный HTTP-клиент. Суммы передаются в копейках (целые числа).

curl -X POST "https://your-1c/hs/bit_http_api/invoices" \
  -u api_user:password \
  -H "Content-Type: application/json" \
  -d '{
    "seller_inn": "7799434926",
    "payer_inn": "770987654321",
    "items": [{"name": "Услуга", "price": 100000, "quantity": 1}]
  }'

Возможности

Что умеет API

Счета

CRUD, списки за период с фильтрами, статус оплаты, PDF, поле comment, поиск по комментарию, статус ЭДО.

v0.5.1 · v0.4.0

Счета-фактуры

Список с фильтрами, создание по акту, перезаполнение, пометка удаления и PDF.

v0.5.1

Контрагенты

Поиск по ИНН, создание и обновление реквизитов — перед выставлением счетов из CRM или B2B-портала.

Примеры запросов →

Для интеграторов

Контрагенты: запросы и ответы

Типовые сценарии для backend-разработчика: найти партнёра по ИНН перед выставлением счёта, создать карточку из CRM или обновить реквизиты. JSON, Basic Auth, те же URL, что в Swagger.

GET

Получить контрагента по ИНН

Перед POST /invoices проверьте, есть ли партнёр в 1С. Если карточки нет — ответ 404, создайте её через POST ниже.

Запрос

curl -X GET \
  "https://your-1c/hs/bit_http_api/counterparties/771234567890" \
  -u api_user:password

Ответ 200

{
  "inn": "771234567890",
  "kpp": "771301001",
  "name": "ООО Ромашка",
  "address": "г. Москва, ул. Ленина, 1",
  "account_number": "40702810500000012345",
  "bank_bik": "044525225",
  "email": "example@mail.ru"
}
POST

Создать контрагента

Обязательны inn и name; для юрлица — kpp. После создания используйте payer_inn в счёте.

Запрос

curl -X POST \
  "https://your-1c/hs/bit_http_api/counterparties" \
  -u api_user:password \
  -H "Content-Type: application/json" \
  -d '{
    "inn": "771234567890",
    "kpp": "771301001",
    "name": "ООО Ромашка",
    "address": "г. Москва, ул. Ленина, 1",
    "email": "example@mail.ru"
  }'

Ответ 201

{
  "inn": "771234567890",
  "kpp": "771301001",
  "name": "ООО Ромашка",
  "address": "г. Москва, ул. Ленина, 1",
  "account_number": null,
  "bank_bik": null,
  "email": "example@mail.ru"
}
PUT

Обновить реквизиты

Банковские реквизиты и контакты — без пересоздания карточки. ИНН в path не меняется.

Запрос

curl -X PUT \
  "https://your-1c/hs/bit_http_api/counterparties/771234567890" \
  -u api_user:password \
  -H "Content-Type: application/json" \
  -d '{
    "name": "ООО Ромашка",
    "account_number": "40702810500000012345",
    "bank_bik": "044525225",
    "email": "billing@romashka.ru"
  }'

Ответ 200

{
  "inn": "771234567890",
  "kpp": "771301001",
  "name": "ООО Ромашка",
  "address": "г. Москва, ул. Ленина, 1",
  "account_number": "40702810500000012345",
  "bank_bik": "044525225",
  "email": "billing@romashka.ru"
}

История продукта

Запрос заказчика — два контура

У клиента была своя B2B-платформа, отдельно от 1С:Бухгалтерия. API стал мостом между ними — не «для интернет-магазина», а для связки учёта и портала

Этап 2 — продукт для рынка

  • Другие компании с похожим разрывом портал ↔ 1С
  • Списки счетов, актов и СФ с фильтрами (v0.5.1)
  • УПД через is_upd, статусы ЭДО, поиск по комментарию

Практика

Кейс и материалы

Разработка расширения bit_http_api

Как связали B2B-платформу заказчика с 1С:Бухгалтерия и развили расширение для других компаний с похожей задачей.

Читать кейс →

Статья для разработчиков

Зачем отдельный REST-слой, чем он отличается от штатного обмена и с чего начать.

Обзор REST API →

OData в сервисы

Как обернуть сырой обмен 1С в операции для сайта, CRM и AI — на примере коммерческого предложения.

Читать →

Тестовый стенд за день

От установки bit_http_api до первого POST и проверки в Swagger — без опыта 1С.

Поднятие стенда →

Справочник

Документация HTTP-сервиса

1С:Бухгалтерия предприятия 3.0 (3.0.190.22+, в т.ч. КОРП) · расширение bit_http_api · актуальная версия 0.5.1

Важно (v0.5.1, breaking): методы списка GET /invoices, GET /acts, GET /tax-invoices при пустой выборке возвращают HTTP 200 и тело [], а не 404 «Документы не найдены». Код 404 по-прежнему означает «конкретный объект не найден» (по id / ИНН).

1. Общие положения

REST API для интеграции 1С:Бухгалтерия с внешними системами через HTTP-запросы. Расширение устанавливается штатными средствами 1С:Предприятие.

Рекомендуется отдельный пользователь с ролями: bitHttpApi_ОсновнаяРоль, базовые права БСП, добавление и изменение данных бухгалтерии, удалённый доступ (OData). Для PDF-печати отключите безопасный режим — требуется временный файл на сервере.

Стек: 1С:Предприятие 8.3 · JSON · Basic Auth. Суммы в JSON — целые числа в копейках.

2. Методы API

2.1. Общие параметры

  • Базовый URL: /{ваша_публикация}/hs/bit_http_api/
  • ID документа — два формата (с v0.1.3):
    • {полный_номер}_{дата} — пример: 0000-000596_20161227
    • {номер}_{дата}_{ИНН_продавца}_{ИНН_покупателя} — пример: 123_20161227_7799434926_2286004196
  • Дата в id и в фильтрах поиска — ГГГГММДД (пример: 20260801). В ответах поле dateГГГГ-ММ-ДД.
  • Печать PDF: query-параметр facsimile=0 отключает подписи и печати (v0.1.2). Ответ печати — JSON { "pdf_base64": "..." }
  • Заголовки:
Content-Type: application/json
Authorization: Basic {base64_credentials}

2.2.1. Счета

Метод Путь Параметры Описание Ответ
GET /invoices dateBegin, dateEnd, sellerInn, payerInn, offset, limit, comment Список счетов (v0.4.0). Важно (v0.5.1): пустая выборка → 200 + [], не 404. limit по умолчанию 10, offset — 0 Массив счетов
POST /invoices seller_inn, payer_inn, items[], comment Создание счёта Полная схема счёта
GET /invoices/{id} ?comment=1 — поиск по фрагменту в path (v0.2.0) Получение или поиск счёта Полная схема
PUT /invoices/{id} Все поля счёта Редактирование (нельзя при оплатах) Обновлённый счёт
DELETE /invoices/{id} Пометка удаления (нельзя при оплатах) HTTP 204
GET /invoices/{id}/print ?facsimile=0 PDF счёта { "pdf_base64": "..." }

2.2.2. Акты (в т.ч. УПД)

УПД в 1С — это акт (реализация) с признаком УПД (is_upd), не отдельный документ. Отдельный ресурс /upd не используется. Счёт-фактуру к акту/УПД оформляйте отдельно: POST /tax-invoices с act_id.

Метод Путь Параметры Описание Ответ
GET /acts dateBegin, dateEnd, sellerInn, payerInn, offset, limit, invoiceId, isUpd Список актов. isUpd=true|false — только УПД / только обычные акты (v0.5.1). Важно: пустая выборка → 200 + []. limit по умолчанию 10, offset — 0 Массив актов
POST /acts invoice_id, items[], is_upd Создание акта / УПД. СФ не создаётся автоматически Созданный акт
GET /acts/{id} Получение акта (tax_invoice_id, is_upd, поля ЭДО) Полная схема
PUT /acts/{id} Поля акта; is_upd необязателен Редактирование (нельзя при оплатах). Без is_upd в теле текущий признак УПД сохраняется (v0.5.1) Обновлённый акт
DELETE /acts/{id} Пометка удаления (нельзя при оплатах) HTTP 204
GET /acts/{id}/print ?facsimile=0 PDF акта; при is_upd: true — печатная форма УПД (v0.5.0) { "pdf_base64": "..." }

2.2.3. Счета-фактуры

Метод Путь Параметры Описание Ответ
GET /tax-invoices dateBegin, dateEnd, sellerInn, payerInn, offset, limit, actId Список СФ (v0.5.0). Важно (v0.5.1): пустая выборка → 200 + [], не 404. limit по умолчанию 10, offset — 0 Массив СФ
POST /tax-invoices act_id в JSON Создание СФ на основании акта (v0.3.0) Сущность «Счёт-фактура»
GET /tax-invoices/{id} id или реквизиты номер_дата_ИНН_ИНН Получение СФ Полная схема
PUT /tax-invoices/{id} тело необязательно Перезаполнение СФ по акту-основанию (v0.5.0) Обновлённая СФ
DELETE /tax-invoices/{id} Пометка удаления (v0.5.0) HTTP 204
GET /tax-invoices/{id}/print ?facsimile=0 PDF счёта-фактуры { "pdf_base64": "..." }

2.2.4. Контрагенты

Метод Путь Обязательные Ответ
POST /counterparties inn, name; kpp для юрлица Контрагент
GET /counterparties/{inn} Данные контрагента
PUT /counterparties/{inn} Обновлённые данные

2.3. Поля ЭДО (v0.5.0)

В ответах счетов, актов и счетов-фактур. API не опрашивает оператора ЭДО: только чтение локального регистра состояний. Отсутствие интеграции с ЭДО не ломает остальные методы.

Поле Тип Описание
edo_status string Код состояния ЭДО по объекту учёта; пустая строка, если записей нет / ЭДО недоступен
edo_status_presentation string Представление состояния; пустая строка при отсутствии данных

3. Обработка ошибок

Успешные ответы — JSON. Ошибки — текст (ограничение платформы 1С).

Код Пример Условие
400 «Не указаны обязательные поля: seller_inn» Валидация
401 «Требуется авторизация» Auth
403 «Документ имеет оплаты…» Бизнес-правило
404 «Контрагент с ИНН … не найден» / «Не найден документ id …» Объект по id/ИНН не найден. Важно: пустой результат списка (GET /invoices|acts|tax-invoices) — это не 404, а 200 + [] (v0.5.1)
405 «HTTP-метод не поддерживается» Неверный метод
409 «Контрагент уже существует» Конфликт
500 текст исключения Ошибка записи / печати

4. Схемы данных

Суммы — целые числа в копейках.

4.1. Счёт

{
  "id": "СЧ-2024-001_20240515",
  "number": "СЧ-2024-001",
  "date": "2024-05-15",
  "seller_inn": "7799434926",
  "payer": {
    "inn": "771234567890",
    "kpp": "771301001",
    "name": "ООО Ромашка",
    "address": "г. Москва, ул. Ленина, 1",
    "phone": "",
    "account_number": "40702810500000012345",
    "bank_bik": "044525225",
    "bank_name": "ПАО Банк",
    "bank_correspondent_account": "30101810100000000111",
    "director_name": "",
    "email": "example@mail.ru"
  },
  "status": "Оплачен",
  "comment": "идентификатор в B2B-платформе",
  "items": [
    { "name": "Услуга", "description": "Услуга", "price": 100000, "quantity": 2, "total": 200000 }
  ],
  "payments": [
    { "date": "2024-05-16", "amount": 200000, "payment_method": "…" }
  ],
  "total_amount": 200000,
  "paid_amount": 200000,
  "deleted": false,
  "edo_status": "",
  "edo_status_presentation": ""
}

4.2. Акт

{
  "id": "0000-000006_20260225",
  "number": "0000-000006",
  "date": "2026-02-25",
  "seller_inn": "228601494276",
  "payer": { "inn": "228601494276", "name": "ИП Антюхин Иван Иванович" },
  "invoice_id": "СЧ-2024-001_20240515",
  "tax_invoice_id": "0000-0000006_20260225",
  "is_upd": false,
  "items": [
    { "name": "Услуга", "description": "Услуга", "price": 109865, "quantity": 1, "total": 109865 }
  ],
  "total_amount": 269865,
  "deleted": false,
  "paid_amount": 0,
  "edo_status": "",
  "edo_status_presentation": ""
}

tax_invoice_id — id счёта-фактуры, если оформлен; иначе отсутствует / пусто (v0.3.0). is_upd — признак УПД (ЭтоУниверсальныйДокумент) (v0.5.0). На PUT /acts/{id} без поля в теле признак не меняется (v0.5.1).

4.3. Счёт-фактура

{
  "id": "0000-0000006_20260225",
  "number": "0000-0000006",
  "date": "2026-02-25",
  "seller_inn": "228601494276",
  "payer": { "inn": "228601494276", "name": "ИП Антюхин Иван Иванович" },
  "act_id": "0000-000006_20260225",
  "total_amount": 269865,
  "deleted": false,
  "edo_status": "",
  "edo_status_presentation": ""
}

4.4. Контрагент

{
  "inn": "771234567890",
  "kpp": "771301001",
  "name": "ООО Ромашка",
  "address": "г. Москва, ул. Ленина, 1",
  "account_number": "40702810500000012345",
  "bank_bik": "044525225",
  "email": "example@mail.ru"
}

5. Примеры запросов

5.1. Создание счёта с комментарием

POST /{публикация}/hs/bit_http_api/invoices
Content-Type: application/json
Authorization: Basic ...

{
  "seller_inn": "7799434926",
  "payer_inn": "770987654321",
  "comment": "order-8842",
  "items": [{ "name": "Услуга", "price": 1000000, "quantity": 1 }]
}

5.2. Список счетов за период (v0.4.0)

Важно (v0.5.1): если по фильтрам ничего не найдено — ответ 200 с телом [], не 404.

GET /{публикация}/hs/bit_http_api/invoices?dateBegin=20260201&dateEnd=20260228&sellerInn=7799434926&offset=0&limit=10
Authorization: Basic ...

5.3. Список актов по счёту (v0.4.0)

Важно (v0.5.1): пустая выборка → 200 + []. Фильтр УПД: ?isUpd=true.

GET /{публикация}/hs/bit_http_api/acts?invoiceId=СЧ-2024-001_20240515&limit=10
Authorization: Basic ...
GET /{публикация}/hs/bit_http_api/acts?dateBegin=20260801&dateEnd=20260818&isUpd=true&limit=10
Authorization: Basic ...

5.4. Поиск счёта по комментарию (v0.2.0)

GET /{публикация}/hs/bit_http_api/invoices/order-8842?comment=1
Authorization: Basic ...

5.5. Создание УПД через акт (v0.5.0)

POST /{публикация}/hs/bit_http_api/acts
Content-Type: application/json
Authorization: Basic ...

{
  "invoice_id": "0000-000039_20250727",
  "is_upd": true,
  "items": [
    {
      "name": "Технический осмотр транспортного средства",
      "price": 500000,
      "quantity": 1,
      "total": 500000
    }
  ]
}

Печать УПД:

GET /{публикация}/hs/bit_http_api/acts/{id}/print?facsimile=0
Authorization: Basic ...

5.6. Счёт-фактура по акту (v0.3.0)

POST /{публикация}/hs/bit_http_api/tax-invoices
Content-Type: application/json
Authorization: Basic ...

{ "act_id": "0000-000006_20260225" }

5.7. Список и обновление счетов-фактур (v0.5.0)

Важно (v0.5.1): пустая выборка списка → 200 + [], не 404.

GET /{публикация}/hs/bit_http_api/tax-invoices?dateBegin=20260801&dateEnd=20260804&offset=0&limit=50&actId=ТСББ-000135_20240325
Authorization: Basic ...
GET /{публикация}/hs/bit_http_api/tax-invoices/826_20251119_7805711112_7805077802
Authorization: Basic ...
PUT /{публикация}/hs/bit_http_api/tax-invoices/0ФБП-000002_20260107
Authorization: Basic ...
DELETE /{публикация}/hs/bit_http_api/tax-invoices/0ФБП-000002_20260107
Authorization: Basic ...

5.8. PDF без подписей и печатей (v0.1.2)

GET /{публикация}/hs/bit_http_api/invoices/СЧ-2024-001_20240515/print?facsimile=0
Authorization: Basic ...

5.9. Контрагенты

GET /{публикация}/hs/bit_http_api/counterparties/771234567890
Authorization: Basic ...
POST /{публикация}/hs/bit_http_api/counterparties
Content-Type: application/json
Authorization: Basic ...

{
  "inn": "771234567890",
  "kpp": "771301001",
  "name": "ООО Ромашка",
  "address": "г. Москва, ул. Ленина, 1",
  "email": "example@mail.ru"
}
PUT /{публикация}/hs/bit_http_api/counterparties/771234567890
Content-Type: application/json
Authorization: Basic ...

{
  "name": "ООО Ромашка",
  "account_number": "40702810500000012345",
  "bank_bik": "044525225",
  "email": "billing@romashka.ru"
}

6. История версий

0.5.1 18.08.2026
  • PUT /acts/{id} без is_upd в теле сохраняет текущий признак УПД
  • GET /acts?isUpd=true|false — фильтр списка по УПД
  • Важно (breaking): GET /invoices, GET /acts, GET /tax-invoices при пустой выборке возвращают HTTP 200 и [] вместо 404 «Документы не найдены». 404 остаётся для «объект по id/ИНН не найден»
0.5.0 13.08.2026
  • GET /tax-invoices — список СФ: dateBegin, dateEnd, sellerInn, payerInn, offset, limit, actId
  • PUT /tax-invoices/{id} — перезаполнение СФ по акту-основанию
  • DELETE /tax-invoices/{id} — пометка удаления (204)
  • В актах поле is_upd; POST / PUT /acts принимают is_upd
  • Печать акта с is_upd: true — форма УПД
  • В счетах, актах и СФ поля edo_status, edo_status_presentation
0.4.0 26.02.2026
  • Метод списка счетов: GET /invoices?dateBegin=&dateEnd=&sellerInn=&payerInn=&offset=&limit=&comment=
  • Метод списка актов: GET /acts?dateBegin=&dateEnd=&sellerInn=&payerInn=&offset=&limit=&invoiceId=&isUpd=
  • По умолчанию limit=10, offset=0
0.3.0 26.02.2026
  • В акте (GET /acts/{id}) поле tax_invoice_id — id счёта-фактуры или пусто
  • POST /tax-invoices — создание счёта-фактуры по act_id
  • GET /tax-invoices/{id} — получение счёта-фактуры
  • GET /tax-invoices/{id}/print — PDF счёта-фактуры
0.2.0 04.12.2025
  • Поиск счёта по комментарию: /invoices/{фрагмент}?comment=1
0.1.4 14.11.2025
  • Исправлен GET /counterparties/{inn}
0.1.3 26.09.2025
  • Два формата id для получения счёта и акта: полный номер + дата, или номер + дата + ИНН продавца + ИНН покупателя
0.1.2 22.08.2025
  • Параметр facsimile=0 для методов печати — без подписей и печатей
  • Поле comment при создании счёта
0.1.1 31.07.2025
  • Обработка префиксов организации для новых номеров документов

Частые вопросы

Сколько стоит REST API для 1С?

Лицензия расширения bit_http_api137 250 ₽. Внедрение CodeLab (если нужно) — 30 000 ₽ отдельно. Заявка в блоке Заказать — пришлём счёт.

Нужен ли 1С-программист на стороне клиента?

Для установки расширения и публикации HTTP-сервиса — да, один раз. Дальше веб-разработчик работает только с REST и JSON.

Чем это лучше CommerceML / типового обмена с сайтом?

CommerceML — пакетный обмен файлами. REST API — оперативные запросы: создать счёт сейчас, сразу получить PDF, проверить оплату.

Можно ли доработать под нашу конфигурацию?

Базовое расширение заточено под 1С:Бухгалтерия предприятия 3.0 (3.0.190.22+). Дополнительные документы, поля и интеграции — по ТЗ, команда CodeLab.

Где хранятся документы?

В вашей базе 1С. API — тонкий HTTP-слой, не дублирует учёт во внешней БД.

Как создать счёт через REST API 1С?

Пошагово с curl и разбором ответа — в статье Создать счёт через REST API. Схема полей — в документации.

Можно ли выписывать УПД через REST API?

УПД в 1С — это акт с признаком is_upd, не отдельный ресурс. POST /acts с is_upd: true; печать отдаёт форму УПД. Счёт-фактуру оформляйте отдельно: POST /tax-invoices с act_id. Фильтр списка: GET /acts?isUpd=true (v0.5.1). Подробности — в документации.

Пустой список счетов или актов — это 404?

С версии 0.5.1 списки GET /invoices, GET /acts и GET /tax-invoices при пустой выборке возвращают HTTP 200 и []. Код 404 — только «объект по id/ИНН не найден». См. историю версий.

Где скачать спецификацию OpenAPI?

Скачать: bit_http_api-openapi.yaml. Полный справочник методов — HTTP-сервис bit_http_api.

Покупка

Заказать REST API — 137 250 ₽

Лицензия расширения bit_http_api для 1С:Бухгалтерия 3.0 — 137 250 ₽. Внедрение на вашей базе (если нужно) — 30 000 ₽ отдельно. Оставьте заявку — пришлём счёт.

137 250 ₽

Лицензия продукта

Внедрение при необходимости — 30 000 ₽

  • Расширение bit_http_api для БП 3.0 (3.0.190.22+)
  • OpenAPI / примеры curl и публикация HTTP-сервиса
  • Счета, акты, УПД, счета-фактуры, контрагенты, PDF, статусы ЭДО

Нажимая кнопку, вы соглашаетесь с политикой обработки персональных данных и даёте согласие на обработку персональных данных.

Готовы подключить REST API к вашей 1С?

Лицензия — 137 250 ₽. Внедрение при необходимости — 30 000 ₽. Заявка уходит в CodeLab.

Заказать — 137 250 ₽