Skip to content

Cryptomus

Cryptomus — крипто-касса: счёт выставляется в рублях, юзер на hosted-странице Cryptomus выбирает любую из 15+ монет, конвертация по курсу — на стороне кассы. Валюта шлюза — RUB, order_id инвойса = внутренний payment_id бота.

Один из немногих шлюзов в базе с возвратами по API: кнопка возврата в кабинете бота сама дёргает Cryptomus, деньги уходят обратно на адрес плательщика.

Что понадобится

Мерчант-аккаунт в Cryptomus. Из его кабинета — merchant UUID и API key (ключ платёжного API): оба участвуют в подписи каждого запроса и вебхука.

Настройка в кабинете

ПолеЧто этоОбязательное
merchant_uuidUUID мерчанта из кабинета Cryptomusда
api_keyключ платёжного API; хранится в БД в зашифрованном видеда

Включите тумблер активности провайдера и нажмите Тест — бот отправит подписанный запрос на POST /v1/balance: если ключи верные, Cryptomus вернёт баланс. Дополнительно у провайдера настраиваются отображаемое имя и комиссия для статистики.

Вебхук

https://ваш-домен/api/v1/payments/cryptomus

Укажите этот URL как callback в кабинете Cryptomus. Подпись лежит внутри JSON-тела, в поле sign: бот вынимает его, пересериализует остальное тело компактно (без пробелов, юникод не экранируется — ровно как PHP json_encode(JSON_UNESCAPED_UNICODE)) и сверяет md5(base64(тело) + api_key). Несошедшаяся подпись → HTTP 403.

Маппинг статусов:

Статус CryptomusЧто делает бот
paid, paid_overзачисляет платёж
cancel, fail, system_fail, refund_process, refund_paid, wrong_amountзакрывает платёж как отменённый
остальныеоставляет в ожидании

Особенности

  • Возвраты по API: POST /v1/payment/refund возвращает платёж целиком на адрес плательщика (is_subtract: true); частичной суммы шлюз не передаёт. Запускается из кабинета: /payments/refunds.
  • paid_over (юзер переплатил) засчитывается как оплата; wrong_amount (недоплатил) закрывает платёж как отменённый — недоплата автоматически не зачисляется.
  • Инвойс живёт 1 час (lifetime: 3600).
  • Рекурренты и сохранённые карты не поддерживаются.
  • Шлюз умеет опрос статуса (POST /v1/payment/info) — реконсилятор сам добивает платежи с потерянным вебхуком.
  • Heleket — полный API-клон этой схемы: в базе он реализован как наследник шлюза Cryptomus, отличается только доменом.

Платёж прошёл, а подписки нет?

Реконсилятор опрашивает Cryptomus каждые 5 минут и сам зачисляет зависшие оплаты. Как это работает — /payments/webhooks.

MIT License · сделано для тех, кто продаёт VPN, а не настраивает ботов