Why Configure Deferred Payment in 1C-Bitrix?
A B2B client places an order, but the "Pay" button must be hidden — an invoice is issued with a delayed date. Without this feature, the company loses control over accounts receivable, and managers manually track hundreds of orders. Our experience shows that automating deferred payment in 1C-Bitrix cuts overdue by 2–3 times. The system automatically calculates dates, sends reminders, and blocks payment until the due date. For a company with 500 orders per month, automation saves up to $15,000 annually by reducing overdue and manual labor costs. Over a decade, we have implemented more than 50 B2B projects on Bitrix with deferred payment, and each solution is backed by complete documentation.
How to Store Payment Terms
Payment terms are stored in 1C per contract with counterparties. In Bitrix, we duplicate them in a Highload-block b2b_payment_terms:
| Field | Type | Description |
|---|---|---|
UF_COMPANY_ID |
int | Company ID |
UF_PAYMENT_DELAY_DAYS |
int | Number of days deferred (0 = no deferral) |
UF_PAYMENT_TYPE |
enum | prepay, deferred, mixed (partial prepayment) |
UF_PREPAY_PERCENT |
int | Prepayment percentage for mixed |
UF_ACTIVE_FROM, UF_ACTIVE_TO |
date | Term validity period |
Synchronization from 1C on contract changes is done via agent or webhook. We use CommerceML for seamless exchange.
Order Processing Logic
When an order is created, the OnSaleOrderSaved handler reads the company's payment terms:
-
prepay— standard logic, card or invoice payment available -
deferred— an invoice is automatically created with payment date = order date +UF_PAYMENT_DELAY_DAYS, online payment button hidden -
mixed— an invoice for prepayment (X% of amount) is issued, the remainder is deferred to the due date
The payment due date is recorded in the order custom field UF_PAYMENT_DUE_DATE. It is displayed clearly in the client's account order section.
How to Configure Payment Due Reminders?
An agent running daily checks orders with status "Awaiting Payment" where UF_PAYMENT_DUE_DATE is approaching:
- 3 days before — email reminder to the client via
CEvent::Send()with templateB2B_PAYMENT_REMINDER - On the due date — repeat email plus a task for the manager in Bitrix24 (if integrated)
- One day after deadline — log entry for overdue, flag in
b2b_credit_status
Integration with Delivery and Payment Methods
For clients with deferred payment, during order placement we filter payment methods (b_sale_pay_system) via the OnSalePaySystemHandlerList handler — remove "Pay by Card" and "Yandex.Checkout", leave only "Issue Invoice".
How Does Synchronization with 1C Work?
Data from 1C is loaded on a schedule. An agent checks for contract updates in the CommerceML export every hour. If deferral days or payment type change — the HL-block record is updated. This ensures terms are always current, even if a manager forgets to update data in Bitrix.
Common Implementation Mistakes
- Missing duplicate check in HL-block (multiple records for one company)
- Forgetting the mixed type — the remainder isn't deferred, client pays twice
- Not configuring currency check: deferral may work only for rubles
We avoid these issues at the design stage — code proven in 50+ projects.
Why Our Solution Is Better Than Standard Modules?
Off-the-shelf modules from the marketplace often overlook B2B specifics: different deferral types, mixed payment, flexible notifications. We write logic tailored to your 1C — giving full control and no limitations. In practice, this approach reduces rework time by 4 times.
What Is Included in the Work
- Documentation of data schema and order logic
- Setup of HL-blocks, custom fields, and agents
- Integration with 1C via CommerceML or REST
- Testing of all scenarios (prepay, deferred, mixed)
- Handover of access and training for your developers
- Post-release support for 2 weeks
Our Work Process
- Analysis — Review current contract terms, payment types, and 1C integration.
- Design — HL-block schema, event model, agents.
- Development — Coding in PHP 8.1+, components 2.0, tagged caching.
- Testing — Unit tests, integration scenarios, load testing.
- Deployment — Rollout to production, error monitoring via logs.
| Stage | Duration | Result |
|---|---|---|
| Analysis | 1–2 days | Data schema, requirements |
| Development | 3–10 days | Ready functionality, tests |
| Testing | 1–2 days | Protocol, fixes |
| Deployment | 1 day | Working on production |
Timelines and Cost
Basic deferral (deferred only) — from 3 to 5 days. Full implementation with notifications, synchronization, and mixed payment — from 1 to 2 weeks. Exact cost is determined after analysis of your 1C integration complexity. Reach out for a project consultation — we'll evaluate in one day.
Experience and Guarantees
With extensive experience in the market, we have implemented more than 50 B2B projects on Bitrix with deferred payment. We provide a code guarantee: free fixes for bugs found within one month after delivery. All solutions come with licensed documentation.
Contact us to set up deferred payment for your B2B catalog turnkey.







