Configuring Invoice Generation from Bitrix24 to 1C
A classic pain point: a manager closes a deal in Bitrix24, while the accountant waits for data to be forwarded by email or entered into a shared spreadsheet. The invoice is created manually in 1C with errors — the wrong TIN, the product name is written differently, the amount differs due to rounding. Setting up automatic invoice generation from Bitrix24 to 1C closes this gap.
How data is transferred from Bitrix24 to 1C
Bitrix24 does not generate an invoice directly — that is the task of 1C as the accounting system. Bitrix24 transfers deal data, based on which 1C generates the document. Transfer happens via one of two paths:
Standard synchronization module — Bitrix24 ↔ 1C via REST API or COM connection. The module is included in the on-premise Bitrix24 (crm.requisite, crm.invoice). When a deal is closed or an invoice is issued in CRM, data is replicated to 1C.
Direct integration via REST API — a webhook on the OnCrmInvoiceAdd/OnCrmInvoiceUpdate event calls a handler that creates a "Tax Invoice Issued" document in 1C via OData service or XML exchange.
For most companies, the first option works with correct requisite configuration.
What needs to be configured in Bitrix24 before launch
Counterparty requisites. An invoice without the buyer's TIN and KPP is an invalid document. In CRM → Requisites, each contact and company must have the following fields filled in: TIN, KPP, legal address. If data is pulled from external sources (website, lead form) — auto-fill via the tax authority service (dadata or equivalent) is configured.
Nomenclature. Products in the Bitrix24 catalog must be linked to nomenclature items in 1C. This is an XML ID or the product's external code. Without this, 1C will not know what to create in the invoice lines.
VAT rates. In the Bitrix24 catalog settings, a VAT rate is specified for each product (0%, 10%, 20%, VAT-exempt). This field must precisely match the settings in 1C — otherwise the amounts in the invoice will differ.
Configuring the Bitrix24 → 1C document link
In 1C (using 1C:Accounting 3.0 as an example), the exchange plan BitrixCRM is configured or an external import processing module is used.
Key processing parameters:
| Parameter | Description |
|---|---|
| Data source | Bitrix24 REST API (URL + application key) |
| Document type | "Tax Invoice Issued" |
| Mapping rules | CRM field → 1C attribute |
| Trigger condition | Deal status = "Won" or a separate invoice status |
| Duplicate mode | Check by invoice number from CRM |
Attribute mapping is the most labor-intensive part. A typical correspondence table:
| Bitrix24 field | 1C attribute |
|---|---|
COMPANY_ID → TIN |
Counterparty (search by TIN) |
OPPORTUNITY |
Document amount |
PRODUCT_ROWS[].PRICE |
Line item price |
PRODUCT_ROWS[].TAX_RATE |
VAT rate |
DATE_CLOSE |
Document date |
Case study: manufacturing company, 40 deals per month
A company engaged in industrial equipment supply. Before automation, the accountant spent 2–3 hours a day manually entering invoices in 1C based on Bitrix24 data. TIN errors occurred in an average of 2–3 documents per month — causing payment delays and unnecessary negotiations with counterparties.
After setting up the integration: when a deal is moved to the "Invoice Issued" status in Bitrix24, a webhook fires, and a PHP handler calls the 1C OData service and creates a draft "Tax Invoice Issued". The accountant sees the document with a "Pending Review" status, reviews it, and posts it with a single click. Processing time per document was reduced from 7 minutes to 40 seconds.
End-to-end implementation timeframe: 3–5 business days — including mapping configuration, testing on real data, and accountant training.
Common issues
Invoice is created with an empty buyer — the deal in CRM has no counterparty, or the TIN in the requisites contains spaces. A regex validation is added before transfer to 1C: the TIN must be 10 or 12 digits with no spaces.
Document duplication — if the webhook fires multiple times (repeated status change, amount update), duplicates appear in 1C. Resolved by checking uniqueness against the external document code before creation.
VAT discrepancy by a few cents — due to different rounding logic in Bitrix24 and 1C. Bitrix24 calculates VAT per line, while 1C may calculate differently. Fixed by explicitly passing the VAT amount line by line rather than passing a total for recalculation.







