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

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

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

0.4.0 текущая версия
JSON формат данных
БП 3.0 3.0.190.22+

Для кого

Проще стандартного API 1С

Молодым разработчикам не нужно неделями разбирать 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.4.0 · v0.2.0

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

Создание по акту, получение сущности и PDF — для полного документооборота из B2B-платформы.

v0.3.0

Контрагенты

Поиск по ИНН, создание и обновление реквизитов — перед выставлением счетов из 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.4.0)
  • Счета-фактуры по актам (v0.3.0), поиск по комментарию (v0.2.0)

Практика

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

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

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

Читать кейс →

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

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

Обзор REST API →

Справочник

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

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

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

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

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

Стек: 1С:Предприятие 8.3 · JSON · Basic Auth

2. Методы API

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

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

2.2.1. Счета

Метод Путь Параметры Описание Ответ
GET /invoices dateBegin, dateEnd, sellerInn, payerInn, offset, limit, comment Список счетов (v0.4.0). 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. Акты

Метод Путь Параметры Описание Ответ
GET /acts dateBegin, dateEnd, sellerInn, payerInn, offset, limit, invoiceId Список актов (v0.4.0). limit по умолчанию 10, offset — 0 Массив актов
POST /acts seller_inn, payer_inn, invoice_id, items[] Создание акта Созданный акт
GET /acts/{id} Получение акта (в т.ч. tax_invoice_id, v0.3.0) Полная схема
PUT /acts/{id} Все поля акта Редактирование (нельзя при оплатах) Обновлённый акт
DELETE /acts/{id} Удаление (нельзя при оплатах) HTTP 204
GET /acts/{id}/print ?facsimile=0 PDF акта PDF в base64

2.2.3. Счета-фактуры (v0.3.0)

Метод Путь Параметры Описание Ответ
POST /tax-invoices act_id в JSON Создание счёта-фактуры на основании акта Сущность «Счёт-фактура»
GET /tax-invoices/{id} Получение счёта-фактуры по id Полная схема
GET /tax-invoices/{id}/print ?facsimile=0 PDF счёта-фактуры (id из tax_invoice_id акта) PDF в base64

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

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

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

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

Код Пример Условие
400 «Не указаны обязательные поля: seller_inn» Валидация
401 «Требуется авторизация» Auth
403 «Документ имеет оплаты…» Бизнес-правило
404 «Контрагент с ИНН … не найден» Не найдено
409 «Контрагент уже существует» Конфликт

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

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

4.1. Счёт

{
  "id": "СЧ-2024-001_20240515",
  "number": "СЧ-2024-001",
  "date": "2024-05-15",
  "seller_inn": "7799434926",
  "payer": { "inn": "771234567890", "name": "ООО Ромашка" },
  "status": "paid",
  "comment": "идентификатор в B2B-платформе",
  "items": [{ "name": "Услуга", "price": 100000, "quantity": 2, "total": 200000 }],
  "payments": [{ "date": "2024-05-16", "amount": 200000, "payment_method": "bank_transfer" }],
  "total_amount": 200000,
  "paid_amount": 200000
}

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",
  "items": [
    { "name": "Услуга", "description": "Услуга", "price": 109865, "quantity": 1, "total": 109865 }
  ],
  "total_amount": 269865,
  "deleted": false,
  "paid_amount": 0
}

tax_invoice_id — id счёта-фактуры, если оформлен; null, если нет (v0.3.0).

4.3. Счёт-фактура (v0.3.0)

{
  "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
}

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)

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

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

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

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

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

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

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

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

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

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

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

0.4.0 26.02.2026
  • Метод списка счетов: GET /invoices?dateBegin=&dateEnd=&sellerInn=&payerInn=&offset=&limit=&comment=
  • Метод списка актов: GET /acts?dateBegin=&dateEnd=&sellerInn=&payerInn=&offset=&limit=&invoiceId=
  • По умолчанию limit=10, offset=0
0.3.0 26.02.2026
  • В акте (GET /acts/{id}) добавлено поле tax_invoice_id — id счёта-фактуры или null
  • 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
  • Обработка префиксов организации для новых номеров документов

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

Нужен ли 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. Схема полей — в документации.

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

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

Нужен REST API для вашей 1С?

Расскажите о системе, с которой нужно связать бухгалтерию — подберём формат обмена и сроки пилота.

Обсудить интеграцию