Payment Systems for 1C-Bitrix
Callback Notifications — The Core of Payment Integration
The most common mistake when connecting a payment gateway to Bitrix is forgetting about the callback (webhook). The customer paid for the order, the money was charged, but the status in b_sale_order didn't update: the manager sees "Awaiting Payment" and starts calling the client. The reason — an incorrect URL in the payment gateway settings or a handler that crashes with a 500 on a non-standard response structure. We connect payment systems with full testing of all scenarios: successful payment, decline, timeout, partial refund, repeated callback (idempotency).
Payment Aggregators
YooKassa
One contract, all major payment methods: Visa/MasterCard/MIR cards, YooMoney, SberPay, internet banking, installments. Online receipt generation (54-FZ compliance) out of the box.
Bitrix integration: the standard handler /bitrix/modules/sale/handlers/paysystem/yandexpay/ covers basic scenarios. For two-stage payments (hold → capture), subscriptions, and split payments — custom integration via YooKassa API v3. The callback is configured at /bitrix/tools/sale_ps_result.php, where we parse the notification and update \Bitrix\Sale\Order via setField('PAYED', 'Y').
CloudPayments
Optimized for conversion: a payment widget right on the checkout page, no redirect to an external domain. The buyer doesn't leave the site — the drop-off rate at the payment stage decreases.
- Recurring payments for subscriptions (card tokenization via
cryptogram) - Apple Pay / Google Pay through a unified widget
- 3D Secure with intelligent routing — only triggered for high fraud risk
Integration with Bitrix — via CloudPayments REST API and a custom payment system handler in the sale module.
Tinkoff Payment
- API integration via
TinkoffPaymentAPIor a ready-made module - QR code for in-app payment
- "Tinkoff Installments" — critical for expensive goods (average order value 50K+)
- Partial refunds via the
CancelAPI method — no bank calls needed
Sberbank (SberPay)
- SberPay — payment via push notification or QR
- SBP (Faster Payments System) — 0.4-0.7% commission vs 1.5-2.5% for cards. At scale — significant savings
- Hold via
registerPreAuth/depositAPI
Apple Pay and Google Pay
Payment in two taps, no card data entry. Connection — through an aggregator (YooKassa, CloudPayments, Tinkoff).
Nuances that are often overlooked:
-
Apple Pay requires domain verification: the
apple-developer-merchantid-domain-associationfile in/.well-known/. Without it, the button won't appear - Button placement must strictly follow Apple and Google guidelines — otherwise review rejection
- Fallback to a standard payment form if the device doesn't support contactless payments
| Payment Method | Devices | Browsers |
|---|---|---|
| Apple Pay | iPhone, iPad, Mac | Safari |
| Google Pay | Android, Chrome | Chrome, Firefox, Edge |
| Samsung Pay | Samsung Galaxy | Samsung Internet |
Installments and BNPL
Average order value 30K+ and conversion is suffering — installments remove the price barrier:
- Tinkoff Installments — 3-24 months
- Buy with Sber
- Mokka / Dolami — BNPL: 4 payments, 0% for the buyer
Integration: a calculation widget on the product card ("from 2,500/mo" next to the full price), order data transmission to the bank via API, status handling (approval, rejection, pending documents) in OnSaleStatusOrder handlers.
Online Cash Registers and 54-FZ
The fine for missing a receipt is up to 100% of the transaction amount. Not theoretically — practically.
We connect ATOL Online, Orange Data, Module.Kassa, Evotor, Shtrikh-M. Configuration in Bitrix — via the sale module → "Cash Registers":
- VAT rate, payment subject, payment method — an error in any field = a fine during an audit
- Receipts for prepayment and partial payment (two receipts: at payment and at shipment)
- Refund receipts on cancellation via
\Bitrix\Sale\Cashbox\Cashbox::addChecks() - Monitoring: if a receipt wasn't sent — alert the manager
Product Labeling
For footwear, clothing, perfumery — transmitting labeling codes in the receipt is mandatory. Integration with "Chestny ZNAK" (Honest Mark), DataMatrix scanning during order assembly, automatic withdrawal from circulation upon sale via \Bitrix\Catalog\Product\Marking.
Refunds
Automation through the Bitrix admin panel:
- Full and partial refunds without bank calls — via the aggregator's API (
refund/cancel) - Refund receipt per 54-FZ is generated automatically
- Order status update, amount recalculation, buyer notification
Timelines depend on the payment method: e-wallet and SBP — 1-3 days, bank card — up to 30 business days (depends on the issuing bank).
Multi-Currency
- Price types in
b_catalog_pricefor each currency - Exchange rates via Central Bank API (
\Bitrix\Currency\CurrencyManager::updateCBRFRates()) or manual entry - Conversion at the catalog level — the buyer sees prices in their currency
- Stripe, PayPal — for accepting payments from abroad (USD, EUR)
- Accounting for conversion fees when calculating margins
Security
- PCI DSS: card data is processed on the certified gateway side, not on your server. The card number never passes through Bitrix
- Anti-fraud at the aggregator level
- Logging in
b_sale_order_changefor incident investigation - Anomaly monitoring: transaction spikes, unusual geography — alert
Our Approach
- Analysis — payment methods, markets, transaction volume, current aggregator.
- Selection — sometimes two aggregators are better than one. YooKassa as primary, CloudPayments as backup — if one goes down, traffic routes to the other.
- Integration — we test every scenario: successful payment, 3DS failure, gateway timeout, double callback, partial refund.
- Receipt compliance — online cash register, receipt verification on test orders.
- Monitoring — alerts on gateway failures, conversion dashboard for the payment stage.
Timelines
| Task | Approximate Timeline |
|---|---|
| Connecting a single payment system | 2-5 days |
| Comprehensive payment setup (multiple aggregators) | 1-2 weeks |
| Online cash register integration (54-FZ) | 3-5 days |
| Installment integration | 3-5 days |
| Multi-currency setup | 1 week |
| Full payment infrastructure | 3-5 weeks |







