Как интегрировать оплату по ссылке в Telegram-бота: 4 способа
Короткий ответ: чтобы интегрировать оплату по ссылке с телеграм-ботом, нужно выбрать платёжного провайдера (Telegram Payments, Prodamus, ЮKassa или PayMaster), подключить его — нативно через @BotFather для Telegram Payments или зарегистрировав магазин у агрегатора, — сгенерировать платёжную ссылку или счёт (sendInvoice либо создание платежа через REST API), отправить её пользователю и обработать webhook о статусе оплаты. Самый дешёвый путь в России в 2026 году — СБП через агрегатор (0,4–0,7%), самый быстрый по интеграции — нативный Telegram Payments (один JSON-payload), а самый гибкий для самозанятых — Prodamus.
В этой статье — 4 рабочих способа с кодом на Node.js и Python, реальными комиссиями 2026 года, готовыми JSON-payloads для sendInvoice и сравнительной таблицей для выбора.
Что вы узнаете
- Чем оплата по ссылке отличается от нативного
sendInvoiceи когда что применять - Как подключить нативный Telegram Payments и отправить счёт через Bot API
- Как сгенерировать платёжную ссылку Prodamus и обработать webhook
- Как сделать редирект-ссылку ЮKassa через REST API с idempotence-key
- Как подключить PayMaster (МТС Банк) и принимать СБП
- Какую систему выбрать под ИП, ООО или самозанятого
- Как пробивать чеки по 54-ФЗ и не получить штраф до 100% выручки
Что такое оплата по ссылке в Telegram-боте
«Оплата по ссылке» — это любой сценарий, при котором бот передаёт пользователю платёжный объект (кнопку-счёт или кликабельный URL), пользователь оплачивает, а бот получает подтверждение через webhook. Технически есть два разных механизма, и их часто путают:
Нативный Telegram Payments (
sendInvoice). Бот вызывает метод Bot APIsendInvoiceсprovider_token, и в чате появляется кнопка Оплатить. При нажатии открывается платёжный лист внутри Telegram (iOS/Android/Desktop), данные карты вводятся в интерфейсе мессенджера. Пользователь не покидает чат. Подходит для товаров и платных подписок, конверсия выше на 15–25%.Внешняя платёжная ссылка (URL). Бот генерирует уникальный URL на платёжную страницу провайдера (
https://pay.prodamus.ru/...,https://yoomoney.ru/..., домен PayMaster) и отправляет его инлайн-кнопкой или обычной ссылкой. Пользователь переходит, оплачивает картой или СБП на странице провайдера, провайдер шлёт боту webhook. Подходит, если нужно принимать оплату вне нативных ограничений Telegram (свои способы оплаты, своя верстка чека, работа без provider_token).
Концептуально оба варианта — это «оплата по ссылке»: в первом случае «ссылка» — это кнопка-инвойс внутри чата, во втором — внешний URL. Ниже разберём оба.
Подробно о механике Telegram Payments и доступных в России провайдерах читайте в Telegram Payments: как принимать оплату через бота. Юридическую сторону — 54-ФЗ, чеки, рекурренты — разобрали в приёме оплат через Telegram-бот с кассовой интеграцией.
Что нужно подготовить до интеграции
Минимальный чек-лист до строчки кода:
- Зарегистрированный бот через
@BotFather, получен токен (123456:ABC-DEF...) - Публичный HTTPS-адрес для приёма webhook (например, через nginx, Cloudflare Tunnel,
ngrokдля разработки) - Тип деятельности и ОКВЭД согласован с платёжным провайдером
- Договор с провайдером (эквайринг) или
provider_tokenот BotFather - Онлайн-касса по 54-ФЗ (своя или арендованная у провайдера) — для ИП/ООО
- Система хранения заказов (база данных, amoCRM, Google Sheets) для сопоставления
order_idи оплаты
Если бот пишется с нуля, базовые принципы работы с Bot API —.polling, webhook, inline-кнопки — описаны в руководстве по Telegram Bot API и материале про разработку чат-бота для Telegram.
Способ 1. Нативный Telegram Payments (sendInvoice)
Кому подходит: цифровым товарам, платным подпискам, донатам, онлайн-школам, продавцам контента. Максимальная конверсия — пользователь не покидает чат.
Комиссия: Telegram не берёт комиссию со своих платежей с 2 апреля 2024 года. Комиссию берёт только провайдер: в России это ЮKassa, Prodamus, SmartGlocal, Wallet и др. (карты 2,5–2,8%, СБП ниже). Глобально — Stripe (2,9% + $0,30) и SmartGlocal.
Подключение: в @BotFather → /mybots → Payments → выбираете провайдера → получаете provider_token. Без этого токена sendInvoice работать не будет.
Шаг 1. Отправка счёта — JSON-payload sendInvoice
Минимальный payload для метода sendInvoice:
{
"chat_id": 5012345678,
"title": "Доступ к курсу «AI-боты для бизнеса»",
"description": "Полный доступ к 12 модулям курса на 6 месяцев",
"payload": "{\"order_id\": \"ORD-100234\", \"user_id\": 5012345678}",
"provider_token": "284685063:TEST:NmQ4ZjQ0YmFkY2Q3",
"currency": "RUB",
"prices": [
{ "label": "Курс", "amount": 99000 }
],
"photo_url": "https://example.com/cover.jpg",
"photo_width": 600,
"photo_height": 400,
"need_email": true,
"send_email_to_provider": true,
"is_flexible": false
}Важно про поля:
amount— в копейках (99000 = 990 ₽), целое числоpayload— строка до 128 байт, ваша метка заказа (бот потом получит её в webhook)provider_token— токен провайдера из BotFather (тестовый начинается сTEST:)need_email/send_email_to_provider— для отправки чека и фискализации
Шаг 2. Вызов на Node.js (Telegraf)
import { Telegraf } from 'telegraf';
const bot = new Telegraf(process.env.BOT_TOKEN);
const PROVIDER_TOKEN = process.env.PROVIDER_TOKEN; // из BotFather
bot.command('buy', async (ctx) => {
const orderId = 'ORD-' + Date.now();
await ctx.sendInvoice({
title: 'Доступ к курсу «AI-боты для бизнеса»',
description: 'Полный доступ к 12 модулям курса на 6 месяцев',
payload: JSON.stringify({ order_id: orderId, user_id: ctx.from.id }),
provider_token: PROVIDER_TOKEN,
currency: 'RUB',
prices: [{ label: 'Курс', amount: 99000 }],
photo_url: 'https://example.com/cover.jpg',
need_email: true,
start_parameter: 'buy-course',
});
});Шаг 3. Тот же запрос через curl
curl -s -X POST "https://api.telegram.org/bot${BOT_TOKEN}/sendInvoice" \
-H "Content-Type: application/json" \
-d '{
"chat_id": 5012345678,
"title": "Доступ к курсу",
"description": "12 модулей на 6 месяцев",
"payload": "ORD-100234",
"provider_token": "284685063:TEST:NmQ4ZjQ0YmFkY2Q3",
"currency": "RUB",
"prices": [{"label": "Курс", "amount": 99000}]
}'Шаг 4. Обработка платежа — два обязательных хэндлера
Telegram требует ответить на pre-checkout query в течение 10 секунд, иначе кнопка «Оплатить» вернёт ошибку. После успешной оплаты приходит successful_payment.
// 1) Pre-checkout — подтвердить готовность принять платёж (обязательно!)
bot.on('pre_checkout_query', async (ctx) => {
console.log('Pre-checkout для заказа:', ctx.preCheckoutQuery.invoice_payload);
await ctx.answerPreCheckoutQuery(true); // false = отказ с ошибкой
});
// 2) Успешная оплата — выдаём товар
bot.on('successful_payment', async (ctx) => {
const sp = ctx.message.successful_payment;
const payload = JSON.parse(sp.invoice_payload); // { order_id, user_id }
const amount = sp.total_amount / 100; // копейки → рубли
console.log(`Оплачен заказ ${payload.order_id} на ${amount} ₽`);
await ctx.reply(`✅ Оплата получена (${amount} ₽). Доступ открыт!`);
// Здесь: выдать доступ, записать в amoCRM, отправить файл
});Плюсы и минусы нативного способа
| Плюсы | Минусы |
|---|---|
| Оплата внутри чата, +15–25% к конверсии | Нужен provider_token и подключённый в BotFather провайдер |
| Готовые поля для email, телефона, доставки | Чек 54-ФЗ — через провайдера (не все умеют) |
| Поддержка recurring (Telegram Stars + подписки) | Меньше способов оплаты, чем у внешней ссылки |
| Бесплатно со стороны Telegram | Жёсткая модерация цифровых товаров |
Если нужно больше контроля над чеком и способами оплаты — переходите к внешней платёжной ссылке (способы 2–4).
Способ 2. Prodamus — платёжная ссылка для самозанятых и ИП
Кому подходит: самозанятым, ИП, небольшим онлайн-школам, инфобизнесу, продавцам консультаций. Prodamus — единственный крупный агрегатор, кто напрямую работает с самозанятыми и сам формирует чек в «Мой налог».
Комиссия: ~2,5–4% с карты (зависит от оборота), СБП — дешевле. Без абонентской платы, онбординг 1–2 дня. Встроенная онлайн-касса по 54-ФЗ — чек отправляется покупателю автоматически.
Подключение: регистрируете магазин в prodamus.ru, получаете shop_id и secret_key, в кабинете включаете REST API.
Генерация платёжной ссылки через API
Prodamus отдаёт платёжную ссылку на POST-запрос с данными заказа. Бот сохраняет order_id у себя, получает URL и отправляет его инлайн-кнопкой.
# pip install requests
import requests
import os
PRODAMUS_API = "https://api.prodamus.ru/v1/payment"
SHOP_ID = os.getenv("PRODAMUS_SHOP_ID")
SECRET = os.getenv("PRODAMUS_SECRET")
def create_payment_link(order_id: str, amount: float, description: str, email: str) -> str:
payload = {
"shop_id": SHOP_ID,
"order_id": order_id,
"amount": round(amount, 2), # в рублях, НЕ копейки
"description": description,
"customer_email": email, # нужен для чека 54-ФЗ
"success_url": "https://t.me/your_bot?start=paid_ok",
"callback_url": "https://bot.example.com/webhook/prodamus",
"payment_method": "any", # any | card | sbp
}
resp = requests.post(
PRODAMUS_API,
json=payload,
headers={"Authorization": f"Bearer {SECRET}"},
timeout=10,
)
resp.raise_for_status()
return resp.json()["payment_url"] # https://pay.prodamus.ru/xxxxxxОтправка ссылки в Telegram
from urllib.parse import quote
def send_pay_button(bot, chat_id: int, order_id: str, amount: float):
url = create_payment_link(order_id, amount, "Курс «AI-боты»", "client@mail.ru")
keyboard = {"inline_keyboard": [[{"text": f"💳 Оплатить {amount} ₽", "url": url}]]}
bot.send_message(
chat_id,
f"Заказ *{order_id}*\nНажмите кнопку ниже, чтобы оплатить картой или СБП.",
parse_mode="Markdown",
reply_markup=keyboard,
)Обработка webhook от Prodamus
Prodamus шлёт POST с JSON на ваш callback_url. Обязательно проверяйте подпись — это защита от подделки запроса.
import hashlib, hmac, json
def verify_prodamus(body: bytes, signature: str, secret: str) -> bool:
expected = hmac.new(secret.encode(), body, hashlib.sha256).hexdigest()
return hmac.compare_digest(expected, signature)
# Flask-эндпоинт
@app.post("/webhook/prodamus")
def prodamus_webhook():
sig = request.headers.get("Signature", "")
if not verify_prodamus(request.get_data(), sig, SECRET):
return "Forbidden", 403
data = request.json
if data.get("status") == "success":
order_id = data["order_id"]
mark_order_paid(order_id) # выдать доступ, записать в amoCRM
notify_user(order_id, "✅ Оплата получена")
return "OK", 200Точные имена полей и алгоритм подписи сверяйте с актуальной документацией Prodamus в личном кабинете — API периодически расширяется. Принцип (POST с order_id + HMAC-подпись) неизменен.
Способ 3. ЮKassa — редирект-ссылка через REST API
Кому подходит: ИП и ООО с оборотом, интернет-магазинам, SaaS с подписками, любому бизнесу, которому нужна онлайн-касса по 54-ФЗ и рекуррентные платежи. ЮKassa — крупнейший российский агрегатор с самой документированной интеграцией.
Комиссия: банковские карты — от 2,8%, СБП — от 1,5%, ЮMoney — от 2%. Уменьшается с ростом оборота. Самозанятым — через сервисы-партнёры.
Подключение: регистрация на yookassa.ru, модерация 1–3 дня, в кабинете «Настройки → Интеграция» берёте shopId и secretKey. Подробно — в гайде по ЮKassa API.
Создание платёжной ссылки (Confirmation = redirect)
ЮKassa создаёт платёж по REST. Тип confirmation: { type: "redirect" } — это и есть генерация платёжной ссылки, которую бот отправляет пользователю.
curl -X POST https://api.yookassa.ru/v3/payments \
-u "${SHOP_ID}:${SECRET_KEY}" \
-H "Idempotence-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"amount": { "value": "990.00", "currency": "RUB" },
"capture": true,
"confirmation": {
"type": "redirect",
"return_url": "https://t.me/your_bot?start=paid_ok"
},
"description": "Доступ к курсу «AI-боты для бизнеса»",
"metadata": { "order_id": "ORD-100234", "tg_user_id": "5012345678" },
"receipt": {
"customer": { "email": "client@mail.ru" },
"items": [{
"description": "Доступ к онлайн-курсу",
"quantity": "1",
"amount": { "value": "990.00", "currency": "RUB" },
"vat_code": 1,
"payment_mode": "full_payment",
"payment_subject": "service"
}]
}
}'В ответе придёт confirmation.confirmation_url — ваша платёжная ссылка:
{
"id": "2bb95f1c-000f-5000-9000-1b68f7a28e7a",
"status": "pending",
"confirmation": {
"type": "redirect",
"confirmation_url": "https://yoomoney.ru/checkout/payments/v2/redirect?orderId=2b..."
},
"amount": { "value": "990.00", "currency": "RUB" },
"metadata": { "order_id": "ORD-100234", "tg_user_id": "5012345678" }
}На Node.js (axios)
import axios from 'axios';
const AUTH = Buffer.from(`${process.env.SHOP_ID}:${process.env.SECRET_KEY}`).toString('base64');
export async function createYooPayment({ orderId, tgUserId, amount, email }) {
const { data } = await axios.post(
'https://api.yookassa.ru/v3/payments',
{
amount: { value: amount.toFixed(2), currency: 'RUB' },
capture: true,
confirmation: {
type: 'redirect',
return_url: `https://t.me/${process.env.BOT_NAME}?start=paid_${orderId}`,
},
description: `Заказ ${orderId}`,
metadata: { order_id: orderId, tg_user_id: String(tgUserId) },
receipt: {
customer: { email },
items: [{
description: 'Доступ к онлайн-курсу',
quantity: '1',
amount: { value: amount.toFixed(2), currency: 'RUB' },
vat_code: 1,
payment_subject: 'service',
payment_mode: 'full_payment',
}],
},
},
{
headers: {
Authorization: `Basic ${AUTH}`,
'Idempotence-Key': crypto.randomUUID(),
'Content-Type': 'application/json',
},
}
);
return data.confirmation.confirmation_url; // ссылка для кнопки в боте
}Idempotence-Key обязателен. Это защита от дублей платежей при повторных запросах. Повторный запрос с тем же ключом вернёт уже созданный платёж, а не создаст новый. Кладите ключ — UUID на каждый заказ.
Webhook от ЮKassa
ЮKassa отправляет POST с объектом event (payment.succeeded / payment.canceled) и подписью в заголовке. Проверка подписи обязательна.
@app.post("/webhook/yookassa")
def yoo_webhook():
# 1. Проверка подлинности по заголовку X-Yoo-... (см. доку ЮKassa)
data = request.json
event = data.get("event")
obj = data.get("object", {})
if event == "payment.succeeded":
order_id = obj["metadata"]["order_id"]
tg_user_id = obj["metadata"]["tg_user_id"]
mark_order_paid(order_id)
bot.send_message(int(tg_user_id), "✅ Оплата получена, доступ открыт!")
return "OK", 200Рекуррент (подписки) — в первом платеже передаёте save_payment_method: true, затем повторяете оплату с payment_method_id. Это позволяет строить автоворонки с платными подписками (подробнее — в автоворонках продаж 2026).
Способ 4. PayMaster (МТС Банк) — карты и СБП напрямую
Кому подходит: среднему и крупному бизнесу с приёмом платежей на свой расчётный счёт в МТС Банке, желающим работать напрямую с банком-эквайером без агрегатора-прослойки.
Комиссия: ~2,6–2,8% по картам, СБП — по тарифам СБП (0,4–0,7%). Подключение через МТС Банк, договор и сертификат. Поддерживает 54-ФЗ через собственную кассу или партнёров.
Генерация ссылки
PayMaster отдаёт платёжную страницу по заранее согласованному сценарию: бот формирует запрос с параметрами заказа и подписью, получает URL для редиректа.
curl -X POST "https://api.paymaster.ru/v2/invoices/create" \
-H "Authorization: Bearer ${PAYMASTER_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"merchantId": "'"${MERCHANT_ID}"'",
"amount": "990.00",
"currency": "RUB",
"orderNumber": "ORD-100234",
"description": "Доступ к курсу",
"returnUrl": "https://t.me/your_bot?start=paid_ok",
"callbackUrl": "https://bot.example.com/webhook/paymaster",
"paymentMethods": ["card", "sbp"]
}'Ответ содержит paymentUrl — его бот отправляет инлайн-кнопкой:
{
"invoiceId": "PM-7788990011",
"status": "created",
"paymentUrl": "https://paymaster.ru/payment/view/PmV2/PM-7788990011",
"expiresAt": "2026-06-28T20:00:00+03:00"
}Webhook PayMaster
@app.post("/webhook/paymaster")
def paymaster_webhook():
# Проверка подписи по сертификату / секрету — обязательно
data = request.json
if data.get("status") in ("paid", "completed"):
order_id = data["orderNumber"]
mark_order_paid(order_id)
return "OK", 200PayMaster периодически меняет версию API (v1 / v2). Перед интеграцией сверьте актуальный эндпоинт и схему подписи с персональным менеджером МТС Банка. Логика «создать инвойс → получить URL → дождаться webhook» стабильна.
Сравнительная таблица 4 способов
| Критерий | Telegram Payments (sendInvoice) |
Prodamus | ЮKassa | PayMaster |
|---|---|---|---|---|
| Тип ссылки | кнопка-инвойс в чате | внешний URL | внешний URL | внешний URL |
| Оплата внутри Telegram | ✅ да | ⛔ нет | ⛔ нет | ⛔ нет |
| Комиссия, карты | по тарифу провайдера | 2,5–4% | от 2,8% | ~2,6–2,8% |
| СБП | зависит от провайдера | ✅ | ✅ (от 1,5%) | ✅ |
| Самозанятые | нет (нужен провайдер) | ✅ напрямую | через партнёров | нет |
| Онлайн-касса 54-ФЗ | через провайдера | ✅ встроена | ✅ встроена | ✅ через банк |
| Рекуррент (подписки) | ✅ (Stars/подписки) | ✅ | ✅ (лучший API) | ✅ |
| Срок подключения | 1 день (с провайдером) | 1–2 дня | 1–3 дня | 3–7 дней |
| provider_token от BotFather | нужен | не нужен | не нужен | не нужен |
| Лучше всего для | максимальной конверсии в чате | самозанятых, инфобизнеса | ИП/ООО, SaaS, подписок | работы напрямую с банком |
Архитектура: общая схема для всех 4 способов
Независимо от провайдера, поток одинаковый:
Пользователь ──/buy──> Бот ──создать платёж──> API провайдера
│ │
│<──payment_url / invoice────┤
│ │
кнопка в чате │
│ │
Пользователь ──оплатить──┴───────────────────────> страница оплаты
│
(оплата)
│
┌───────webhook: paid────────┘
▼
Бот ──> выдаёт доступ / пишет в amoCRM / шлёт чекКлючевые точки интеграции, которые нельзя пропустить:
- Сохранение
order_idв БД ДО создания платежа — иначе webhook некуда привязать - Проверка подписи webhook — иначе платёж можно подделать
- Idempotence — один заказ → один платёж, без дублей при ретраях
- Привязка к
tg_user_id— чтобы бот знал, кому отвечать после webhook - Пробитие чека 54-ФЗ — для ИП/ООО обязательно в момент оплаты
Типовая модель заказа
// models/Order.js (MongoDB / Mongoose)
const OrderSchema = new Schema({
order_id: { type: String, unique: true }, // ORD-100234
tg_user_id: { type: String, required: true },
amount: { type: Number, required: true }, // в рублях
provider: { type: String, enum: ['telegram','prodamus','yookassa','paymaster'] },
payment_id: { type: String }, // id платежа у провайдера
status: { type: String, enum: ['new','pending','paid','failed'], default: 'new' },
created_at: { type: Date, default: Date.now },
});Чек-лист выбора платёжного способа
- Вы самозанятый и продаёте цифру/консультации → Prodamus. Работает напрямую, сам делает чек в «Мой налог», без абонплаты.
- Нужна максимальная конверсия и оплата прямо в чате → нативный Telegram Payments (
sendInvoice). Пользователь не уходит из мессенджера. - ИП/ООО, нужен 54-ФЗ, подписки и рекуррент → ЮKassa. Лучший API, встроенная касса, рекуррент «из коробки».
- Работаете со счётом в МТС Банке, нужен прямой эквайринг → PayMaster. Без агрегатора-прослойки.
- Хотите минимальную комиссию (0,4–0,7%) и быстрые платежи → любой способ с СБП. Больше про СБП — в чат-боте с оплатой через СБП и гайде по эквайрингу для ИП.
- Несколько способов оплаты одновременно → комбинируйте:
sendInvoiceдля основных каналов + резервная ссылка Prodamus/ЮKassa для способов, не покрытых Telegram.
Частые ошибки и как их избежать
- Нет ответа на
pre_checkout_query. Telegram ждётanswerPreCheckoutQuery≤ 10 секунд. Если не ответить — оплата упадёт с ошибкой. Всегда вешайте хэндлер, даже если просто отвечаетеtrue. amountв рублях вместо копеек. В Bot API и многих API сумма — целое в копейках.990 ₽ = 99000. Путаница здесь — причина №1 «странных» цен.- Webhook без проверки подписи. Любой может отправить POST на ваш эндпоинт. Проверяйте HMAC/сертификат провайдера — иначе выдадите товар без оплаты.
- Нет Idempotence-Key. Повторный запрос (ретрай, двойной клик) создаст второй платёж. UUID на каждый заказ решает проблему.
- Забыли про 54-ФЗ. Для ИП/ООО чек обязателен в момент расчёта. Штраф — от 75 000 ₽ до 100% суммы незадекларированной операции. Используйте кассу агрегатора (Prodamus/ЮKassa) или свою.
- Hardcode секретов в коде.
provider_token,secret_key,SECRET— только в переменных окружения, никогда в репозитории.
Как это собирают вместе: сценарий FlowMasters
Типичная связка, которую мы внедряем клиентам: Telegram-бот + ЮKassa + amoCRM. Бот принимает заказ, создаёт платёж через ЮKassa, отправляет кнопку, по webhook закрывает сделку в amoCRM и выдаёт доступ. Для самозанятых — тот же поток на Prodamus с автоматическим чеком. Если нужна оплата прямо в чате с максимальной конверсией — нативный Telegram Payments поверх ЮKassa как провайдера.
Это не «волшебная кнопка», а инженерная задача: ~3–7 дней на полную интеграцию с кассой, webhook'ами и страховкой от дублей. Зато потом приём платежей работает автономно 24/7. Если разбираете оплату вместе с автоворонкой продаж — посмотрите автоворонки 2026 и интеграцию amoCRM с Telegram; если хотите каталог прямо в боте без внешней ссылки — рассмотрите Telegram Mini Apps.
Короткий итог
Интегрировать оплату по ссылке с телеграм-ботом в 2026 году — это выбор из 4 способов под ваш статус и оборот:
- Нативный
sendInvoice— максимальная конверсия, оплата в чате, нуженprovider_token - Prodamus — для самозанятых, быстрая ссылка, встроенный чек 54-ФЗ
- ЮKassa — для ИП/ООО, лучший API, подписки и рекуррент
- PayMaster — прямой эквайринг с МТС Банком
Минимальная комиссия — у СБП (0,4–0,7%), минимальный порог входа — у Prodamus для самозанятых, максимальная конверсия — у нативного Telegram Payments. Начните с ответа на три вопроса: ваш статус (самозанятый/ИП/ООО), нужен ли чек 54-ФЗ и важна ли оплата прямо в чате — и выбор станет очевидным.
Финансы Pro: Notion-шаблон учёта финансов и налогов для ИП и самозанятых (УСН/НПД)
Учёт доходов/расходов с категориями и счетами
CRM Pro: Notion-шаблон CRM для малого бизнеса со взвешенной воронкой продаж
Взвешенная воронка продаж (сумма × вероятность = прогноз)
Второй Мозг AI: Notion-шаблон для управления знаниями (PARA + GTD)
Метод PARA + GTD-инбокс с контекстами в связанных базах