Kommo + Zoho Books: автоматические счета из воронки продаж
Zoho Books — бухгалтерская платформа из экосистемы Zoho с поддержкой мультивалютных счетов, налоговой отчётности и встроенного эквайринга. В отличие от Wave, Zoho Books использует полноценный REST API без GraphQL — что упрощает интеграцию через стандартные инструменты. Связка с Kommo автоматизирует выставление счетов: сделка перешла на этап -> счёт создан в Zoho Books -> после оплаты CRM обновляется.
Zoho Books vs Wave vs Xero: когда выбирать Zoho Books
Выбор бухгалтерской платформы часто предшествует интеграции с CRM. Краткое позиционирование:
| Параметр | Zoho Books | Wave | Xero |
|---|---|---|---|
| API | REST | GraphQL | REST |
| Бесплатный тариф | До $50k выручки/год | Да (базовый) | Нет |
| Мультивалютность | Да | Частично | Да |
| Экосистема | Zoho (50+ продуктов) | Независимый | Независимый |
| Встроенный эквайринг | Да (Stripe, PayPal) | США/Канада | Да |
Zoho Books выигрывает если компания уже использует Zoho CRM, Zoho Projects или другие продукты Zoho — интеграция нативная. Для компаний на Kommo интеграция строится через API.
Что синхронизируется
Kommo -> Zoho Books:
— Контакт сделки -> Customer в Zoho Books (с дедупликацией по email)
— Сумма и позиции сделки -> строки Invoice
— Срок оплаты из кастомного поля -> Payment Terms
— ID и ссылка на инвойс -> кастомное поле в карточке Kommo
Zoho Books -> Kommo:
— Статус Invoice = paid -> поле «Оплачено» в сделке Kommo
— Перевод сделки на этап «Оплата получена»
— Сумма оплаты и дата -> Note на сделке
Архитектура
Kommo Webhook: сделка перешла на этап «Выставить счёт»
↓ Backend
1. GET /api/v4/leads/{id} + contacts
2. Zoho Books API: GET /contacts?email={email}
-> найден: использовать contact_id
-> не найден: POST /contacts (создать)
3. Zoho Books API: POST /invoices
-> получить invoice_id и invoice_url
4. Zoho Books API: POST /invoices/{id}/email
-> отправить счёт клиенту
5. Kommo: PATCH /leads/{id}
-> обновить кастомные поля invoice_id, invoice_url
Zoho Books Webhook: invoice.payment_received
↓ Backend
1. GET invoice details (custom_field: kommo_deal_id)
2. Kommo: PATCH /leads/{deal_id}
-> payment_status = paid, этап -> «Оплата получена»
Zoho Books REST API: ключевые запросы
Zoho Books использует OAuth 2.0. Все запросы требуют organization_id в параметрах.
Поиск клиента:
response = requests.get(
'https://books.zoho.com/api/v3/contacts',
params={
'organization_id': ORG_ID,
'contact_name': company_name,
'email': email
},
headers={'Authorization': f'Zoho-oauthtoken {access_token}'}
)
contacts = response.json().get('contacts', [])
Создание инвойса:
invoice_data = {
'customer_id': customer_id,
'invoice_number': f'INV-{deal_id}',
'date': today_str,
'payment_terms': 30, # Net 30
'line_items': [
{
'name': deal_name,
'quantity': 1,
'rate': deal_price,
'tax_id': TAX_ID # если применимо
}
],
'custom_fields': [
{'label': 'Kommo Deal ID', 'value': str(deal_id)}
]
}
response = requests.post(
'https://books.zoho.com/api/v3/invoices',
params={'organization_id': ORG_ID},
json=invoice_data,
headers={'Authorization': f'Zoho-oauthtoken {access_token}'}
)
Отправка счёта клиенту:
requests.post(
f'https://books.zoho.com/api/v3/invoices/{invoice_id}/email',
params={'organization_id': ORG_ID},
json={
'send_from_org_email_id': True,
'to_mail_ids': [client_email],
'subject': f'Счёт {invoice_number} от {company_name}'
},
headers={'Authorization': f'Zoho-oauthtoken {access_token}'}
)
Обработка налогов
Zoho Books поддерживает налоговые профили (НДС, GST, Sales Tax). Если компания работает с клиентами в разных юрисдикциях — налог определяется по стране клиента:
TAX_MAP = {
'DE': 'VAT_19', # Германия - НДС 19%
'UK': 'VAT_20', # Великобритания - НДС 20%
'US': None, # США - без VAT
'AU': 'GST_10', # Австралия - GST 10%
}
def get_tax_id(country_code: str) -> str | None:
return TAX_MAP.get(country_code)
Страна клиента берётся из кастомного поля Kommo или из данных контакта.
Реальный кейс
Консалтинговая компания (EU-рынок, 15–20 проектов в месяц, клиенты в 6 странах):
- До: бухгалтер вручную создавал счета в Zoho Books, запрашивая данные у менеджеров. Среднее время от Won до выставления счёта — 3 дня.
- После: Won в Kommo -> счёт в Zoho Books с правильным налогом по стране клиента -> отправлен клиенту -> в течение 30 минут после закрытия сделки.
- Дополнительный эффект: бухгалтер перестал запрашивать данные у менеджеров — всё приходит автоматически.
Аналогичную логику реализовывали в интеграции Kommo и Wave — там другой API (GraphQL), но паттерн идентичен.
Для кого актуально
- Используется Zoho Books (или планируется переход на Zoho-экосистему)
- Клиенты в нескольких странах с разными налоговыми требованиями
- Объём: 10+ инвойсов в месяц
- Важно замкнуть цикл: Won -> счёт -> оплата -> CRM
Часто задаваемые вопросы
Zoho Books OAuth — сложнее ли настройки чем у Wave?
Zoho OAuth стандартный: Authorization Code Flow через accounts.zoho.com. Нужно зарегистрировать приложение в Zoho API Console, получить client_id и client_secret. Дополнительная особенность: токены Zoho региональные — EU-аккаунты используют accounts.zoho.eu, не .com. Это частая причина ошибок при первом подключении.
Zoho Books поддерживает recurring invoices — можно ли автоматизировать ретейнеры?
Да. Zoho Books имеет Recurring Invoice API: создаётся шаблон с интервалом (monthly, quarterly) и датой начала. Интеграция с Kommo создаёт recurring invoice при переходе сделки на этап «Ретейнер активен» и отменяет при переходе на «Завершено».
Нужна ли платная подписка Zoho Books?
Zoho Books бесплатен для бизнеса с выручкой до $50,000/год. API доступен на всех тарифах. При превышении лимита — от $15/мес. Значительно дешевле Xero или QuickBooks.
Как передать несколько позиций из Kommo?
Через кастомные поля типа multilist или через отдельные поля «Позиция / Количество / Цена». Каждая позиция маппируется в строку line_items. Если детальных позиций нет — вся сумма сделки идёт одной строкой.
Итого
- Zoho Books REST API проще в интеграции чем Wave GraphQL — стандартный OAuth, понятные endpoint’ы
- Поддержка мультивалютности и налоговых профилей по стране клиента — важно для EU-рынка
- Паттерн: Won -> инвойс -> отправка -> оплата -> обновление Kommo
- Бесплатный тариф до $50k выручки — актуально для малого бизнеса
- Типовой срок разработки — 2–3 недели
Если вы используете Zoho Books и Kommo и хотите автоматизировать выставление счетов — опишите вашу налоговую структуру и схему выставления. Exceltic.dev разберёт маппинг и предложит архитектуру.