Библиотеки: Node.js, PHP, Python

Официальные клиенты API Paydex. Без зависимостей, с проверкой подписи уведомлений и повтором запросов при сбоях сети. Подходят и для сайтов, и для Telegram-ботов.

API v1 · обновлено 2026-09-12

Скачать

  • Node.js 18+ (TypeScript, ESM и CommonJS) — paydex-node-1.0.0.tgz
  • PHP 7.4+ (один файл, нужен curl) — paydex-php-1.0.0.zip
  • Python 3.9+ (обычный и async-клиент, обработчик для aiohttp/aiogram) — paydex-1.0.0-py3-none-any.whl · исходники
  • Готовый бот на aiogram 3 — тарифы, кнопки «Оплатить» и «Проверить оплату», приём уведомлений, защита от двойной выдачи: paydex-aiogram-bot.zip (pip install -r requirements.txt, затем python bot.py)

Версия 1.0.0. Лицензия MIT — библиотеки можно менять и встраивать в свои проекты.

Что библиотеки делают за вас

  • Проверяют уведомления дважды. confirm сверяет подпись X-Paydex-Signature, а затем перечитывает счёт из API вашим ключом. Решение «оплачено» принимается по ответу API, поэтому подделанное или устаревшее уведомление ничего не изменит.
  • Повторяют запросы при сбоях. Чтение и создание счёта повторяются до 2 раз при обрыве связи, ошибке 5xx и 429 с учётом Retry-After. Двойного счёта не будет: тот же orderId с тем же телом возвращает уже созданный счёт.
  • Не повторяют опасное. Возврат и вывод без orderId отправляются ровно один раз.
  • Ждут оплату без вебхука — waitFor / wait_for_invoice опрашивают счёт до окончательного статуса, соблюдая лимит «раз в 3 секунды».
  • Не отправят ключ открыто — только https://, без переходов по редиректам.

Node.js

Тело уведомления нужно сырое: express.raw, в Next.js — await req.text(), в Fastify — rawBody. Методы: invoices.create / get / findByOrderId / list / iterate / start / refund / waitFor, refunds.get, methods.list, balance.get, payouts.create / get / list, webhooks.verify / parse / confirm.

PHP

Распакуйте архив в проект и подключите один файл. Для Composer в архиве есть composer.json — добавьте папку как path-репозиторий.

Python и боты на aiogram

Paydex — синхронный клиент для Django и Flask, AsyncPaydex — для aiogram, FastAPI и aiohttp. paydex.aiohttp.webhook_handler принимает уведомления в том же процессе, что и бот: проверяет подпись, перечитывает счёт и отвечает Paydex так, чтобы при ошибке уведомление пришло повторно.

Кнопка «Проверить оплату» нужна, даже если уведомления настроены: если сервер бота был недоступен, покупатель получит доступ сам. Выдавайте доступ один раз — в полном примере заказ «занимается» одной SQL-командой, поэтому повторное уведомление или второе нажатие ничего не выдадут.

Проверка

Начните с ключа sk_test_…: на тестовой странице оплаты есть кнопки «Успех / Отказ / Истёк», а уведомления приходят с isTest: true. Уведомление тестового счёта при боевом ключе (и наоборот) библиотеки пропускают — invoice будет пустым. Подробнее — Тестирование.