Сценарии
Криптоплатежи для подписок и регулярных счетов
Подписки с оплатой в криптовалюте: инвойс на каждый период с ценой в USD, ссылка на оплату в письме о продлении и подписанный вебхук, который продлевает доступ.
CryptoLike выставляет счёт за подписку в криптовалюте по одному периоду: ваша система создаёт инвойс на каждое продление, клиент оплачивает его по ссылке из письма, а подписанный вебхук сообщает серверу, что доступ пора продлить. Цена остаётся в USD или EUR, а клиент платит эквивалент в Bitcoin, USDT или другом включённом активе по курсу, зафиксированному для инвойса.
Почему криптовалюту нельзя списывать автоматически каждый месяц?
Криптоплатёж всегда отправляет кошелёк плательщика: забрать деньги у клиента позже, как списывают с привязанной карты, нельзя. Поэтому криптоподписка — это серия инвойсов, а не сохранённый способ оплаты. Клиент подтверждает каждый период; это удобно для годовых тарифов, B2B-договоров и клиентов, которые предпочитают предоплату, а что делать с неоплаченным периодом, решает ваш продукт.
Как работают регулярные платежи на инвойсах CryptoLike
Расписание ведёт ваша биллинговая система, а платёж каждого периода — CryptoLike. Одно продление — это один вызов API и один вебхук, и тот же код подходит для месячных, квартальных и годовых тарифов.
- За несколько дней до продления создайте инвойс.
POST /v1/invoicesс ценой тарифа в USD,order_id, в котором есть подписка и период, и временем на оплату до 30 дней (ttl_secondsдо 2 592 000). - Отправьте
checkout_urlв письме о продлении или покажите в личном кабинете клиента. На странице видны сумма, сеть, адрес с QR-кодом и оставшееся время. - Продлите доступ на
invoice.paid. Проверьте подпись вебхука, найдите подписку поorder_idилиmetadataи сдвиньте дату «оплачено до» на один период. - Обработайте другие исходы.
invoice.underpaid— попросите доплатить на тот же адрес до срока;invoice.expired— включите льготный период или приостановите тариф и предложите новый инвойс.
{
"amount": "49.00",
"currency": "USD",
"order_id": "sub-4821-2026-10",
"idempotency_by_order_id": true,
"ttl_seconds": 604800,
"metadata": { "subscription_id": "4821", "period": "2026-10" },
"return_url": "https://app.example.com/billing"
}С idempotency_by_order_id повторный запуск задачи для того же периода вернёт открытый инвойс, а не выставит счёт дважды. metadata приходит в каждом вебхуке invoice.* и плательщику не показывается.
Какая модель продления подходит вашему продукту?
Большинство подписочных сервисов укладываются в три схемы. Они различаются тем, кто начинает платёж и как о нём узнаёт ваша система; статусы и вебхуки во всех трёх одинаковые.
| Модель | Как работает | Кому подходит |
|---|---|---|
| Инвойс на период | Система создаёт инвойс перед каждым продлением и отправляет ссылку письмом | SaaS-тарифы, членство, хостинг |
| Предоплаченный баланс | У клиента свой статический адрес; каждое пополнение зачисляется, а система списывает цену тарифа с внутреннего баланса | Оплата по использованию, кредиты, частые мелкие списания |
| Ссылка на оплату вручную | Финансовый отдел создаёт ежемесячный счёт в кабинете или Telegram-боте и отправляет ссылку | B2B-договоры, несколько крупных клиентов |
Модель с предоплатой описана в разделе пополнения на статические адреса, ручные счета — в разделе ссылки на оплату.
Цена в фиате и курс
Цена тарифа остаётся в вашей валюте. Когда клиент выбирает монету на странице оплаты, CryptoLike пересчитывает сумму по текущему курсу и фиксирует его до окончания срока инвойса: даже при долгом сроке оплаты сумма в криптовалюте после выбора монеты не меняется. Если сумма должна быть фиксирована в USDT с самого начала, выставляйте инвойс в стейблкоине. Комиссия платформы за подтверждённый платёж — на странице тарифов.
Как подключить
Для подписок нужен бэкенд, который хранит секретный ключ и принимает вебхуки. Установите SDK — TypeScript SDK, Python SDK, PHP SDK или Go SDK, — создайте ключ с правами create_invoice и read и проверьте продление целиком в тестовых сетях — с ключом ck_test_ и тестовым адресом API от поддержки CryptoLike. Полный справочник запросов и вебхуков — в обзоре API, другие схемы для сервисов — в разделе криптоплатежи для цифровых товаров и SaaS.
Вопросы и ответы
Может ли CryptoLike списывать оплату у клиентов автоматически каждый месяц?
Нет. Криптоперевод всегда отправляет кошелёк самого плательщика, поэтому без подтверждения клиента ничего списать нельзя. Подписки в CryptoLike работают как один инвойс на период: система создаёт его перед продлением, клиент платит по ссылке, а вебхук invoice.paid продлевает доступ. Для частых списаний есть альтернатива — предоплаченный баланс на статическом адресе.
Сколько может быть открыт инвойс на продление?
До 30 дней: ttl_seconds принимает от 60 до 2 592 000 секунд, а без него действует время на оплату из настроек аккаунта (30 минут). Для продлений обычно ставят 3–7 дней. Когда клиент выбрал монету, курс фиксируется до окончания срока инвойса, поэтому сумма в криптовалюте, пока инвойс открыт, не меняется.
Что если клиент заплатил меньше цены тарифа?
Инвойс получает статус underpaid и до своего срока открыт для доплаты на тот же адрес: remaining_amount показывает вашей системе, сколько не хватает, а клиент видит это на странице оплаты. Если остаток приходит вовремя, следует invoice.paid. Если нет, инвойс закрывается как недоплаченный, и вы решаете, продлить доступ или вернуть деньги.
Как не выставить счёт за один период дважды?
Используйте order_id, в котором есть подписка и период, например sub-4821-2026-10, и передавайте idempotency_by_order_id: true. Тогда повторный запуск задачи или второй запрос за тот же период вернёт открытый инвойс, а не создаст новый, а период, за который деньги уже пришли, получит отказ 409 conflict.
Как подключить
Гайды и статьи
- Как выставить счёт в криптовалюте с ценой в долларахСчёт на оплату в криптовалюте с ценой в USD: инвойс в кабинете CryptoLike или через POST /v1/invoices, фиксация курса, время на оплату и статусы платежа.
- Проверка подписи вебхуков: HMAC-SHA256 на 4 языкахКак проверить подпись вебхука CryptoLike: сырое тело, окно времени, сравнение за постоянное время и дедупликация по event_id. Код на TypeScript, Python, Go и PHP.
Термины на странице
Начните с тестового платежа
Создайте аккаунт, попросите у поддержки доступ к тестовой среде и посмотрите, как платёж проходит путь от pending до paid в тестовой сети.