Личный кабинет
Руководство

Документация plopay

Как устроен приём платежей, что происходит с деньгами после оплаты и что можно настроить в личном кабинете.

Обновлено 22 сентября 2026 годаВопросы: поддержка в кабинете

1Что такое plopay

plopay — технологическая платформа приёма платежей. Она регистрирует оплату, ведёт учёт операций, показывает аналитику и формирует запросы на конвертацию и выплату. Сами денежные средства проходят через участников финансовой инфраструктуры — платформа их не хранит.

Что вы получаете:

  • приём платежей несколькими методами;
  • личный кабинет с аналитикой, историей операций и уведомлениями;
  • автоматическую конвертацию рублёвой выручки в USDT;
  • вывод на подключённый кошелёк или карту.

2Путь платежа

От оплаты покупателем до денег на вашем кошельке проходит четыре этапа. Все они видны в кабинете в разделе «Конвертация».

0
Покупатель оплачиваетВы создаёте платёж через API, покупатель открывает страницу оплаты plopay.io/pay/… и платит по QR СБП. Оплату подтверждаем мы уведомлением, а не возврат покупателя на сайт.
1
Оплата принятаОперация регистрируется в рублях и получает статус Холд. Холд длится 24 часа.
2
В очереди на конвертациюПосле холда операция переходит в статус Ожидает конвертации и попадает в общую очередь.
3
КонвертацияРаз в сутки после 17:00 МСК очередь конвертируется в USDT по курсу платформы. Сумма зачисляется в баланс, статус становится Доступно.
4
ВыводВы создаёте заявку, она получает статус На выводе. Заявки обрабатываются ежедневно с 18:00 до 21:00 МСК.
i
Конвертация запускается автоматически — заявку подавать не нужно. В разделе «Конвертация» видно, сколько рублей сейчас в очереди, какой курс действует и когда ближайший запуск.

3Статусы операций

СтатусЧто означаетЧто дальше
Ожидает оплатыПлатёж создан, покупатель ещё не оплатилСтанет «Холд» после подтверждения оплаты или закроется по истечении срока
ХолдПлатёж принят, идут 24 часа выдержкиАвтоматически перейдёт в очередь на конвертацию
Ожидает конвертацииХолд пройден, ждёт ближайшего запускаКонвертируется после 17:00 МСК
ДоступноСконвертировано в USDT и зачислено в балансМожно выводить
На выводеЗаявка на вывод созданаОбрабатывается с 18:00 до 21:00 МСК
ВыполненоОперация завершена—

4Подключение

Учётные записи создаются вручную — самостоятельной регистрации нет. Порядок такой:

  1. Оставьте заявку на сайте или напишите в Telegram.
  2. Менеджер уточняет вид деятельности, ожидаемые обороты и нужные методы приёма.
  3. Вам создают кассу и передают логин и пароль от личного кабинета.
  4. При первом входе смените пароль в разделе «Настройка проекта».

Вход в кабинет — на странице plopay.io/cabinet.

5Личный кабинет

РазделЧто внутри
ОбзорДоступно к выводу, оборот, число оплат, конверсия и средний чек за выбранный период с изменением к прошлому периоду. График оборота, статусы платежей, последние платежи.
АналитикаОборот, прибыль и возвраты за период, разбивка по дням, по дням недели и по часам, распределение статусов.
УведомленияНовые платежи, зачисления, заявки на вывод и возвраты. Непрочитанные отмечены счётчиком в меню.
ТранзакцииВсе операции по кассе с суммой, назначением и статусом.
ВыводыСоздание заявки на вывод.
ВозвратыИстория возвратов по платежам.
КонвертацияТекущий курс, очередь, время ближайшего запуска и история конвертаций.
Настройка проектаИдентификатор, ключи доступа, адрес для колбэков.
Методы приёмаПодключённые методы и их статус.
Кошельки и картыРеквизиты для вывода средств.

Период задаётся в верхней панели: сегодня, 7 дней, 30 дней, за всё время или произвольный диапазон через календарь. Выбор действует и на «Обзор», и на «Аналитику». Валюту отображения можно переключить между рублём и USDT.

6Методы приёма

Методы подключает и настраивает менеджер.

МетодКак платит покупатель
СБПQR-код или выбор банка из списка — приложение банка открывается сразу на подтверждении платежа
КартыЗащищённая форма банка
КриптовалютаВыбирает монету и сеть на нашей странице, получает адрес, сумму и QR-код. Счёт выставляется в рублях, зачисление — как у остальных методов

Менеджер может временно закрыть метод — тогда он отображается как «Отключен», а платежи этим методом не принимаются.

7Конвертация и курс

Рублёвая выручка конвертируется в USDT раз в сутки после 17:00 МСК. Курс устанавливает платформа: он может быть фиксированным либо считаться от котировки биржи с наценкой.

В разделе «Конвертация» отображается:

  • действующий курс в обе стороны;
  • сумма в очереди и сколько USDT вы получите по текущему курсу;
  • сколько сейчас на холде;
  • время ближайшего запуска и была ли конвертация сегодня.

В истории конвертаций сохраняется курс, по которому фактически прошла каждая конвертация.

8Вывод средств

  1. Добавьте способ вывода в разделе «Кошельки и карты».
  2. В разделе «Выводы» укажите валюту и сумму, создайте заявку.
  3. Заявка получает статус «На выводе» и уходит в обработку.
  4. Заявки обрабатываются ежедневно с 18:00 до 21:00 МСК.

Отдельный способ вывода — на криптокошелёк или на карту — может быть временно закрыт для кассы. Валюты закрытого способа недоступны в форме вывода, над формой показывается пометка.

Вывод на криптокошелёк

Выплаты уходят из баланса в USDT. Если кошелёк в другой монете, конвертация делается автоматически в момент выплаты — держать резерв в этой монете не нужно.

Проверьте сеть кошелька перед сохранением: перевод в чужой сети не восстанавливается. Для USDT доступны TRC-20, ERC-20, BEP-20, TON и Polygon.

!
Адрес может не пройти AML. Блокчейн-адреса проверяются на связь с рисковыми операциями. Если проверка не пройдена, заявка получает статус «Адрес не прошёл AML» — деньги остаются на балансе, ничего не теряется. В разделе «Выводы» появится поле для другого адреса и кнопка «Отправить повторно».
!
Если по кассе введена мера «заморозка выплат», приём платежей продолжает работать, а заявки на вывод не обрабатываются до снятия ограничения. Причину уточняйте в поддержке.

9API для интеграции

Сервер вашего магазина может работать с plopay напрямую: создавать платежи, читать статусы и балансы, заказывать выплаты и получать уведомления об изменениях.

Авторизация

Ключ и секрет — в кабинете, раздел «Настройка проекта». Ключ передаётся заголовком в каждом запросе, секретом подписываются наши уведомления к вам, а если для кассы включена подпись запросов — и ваши запросы к нам. Оба держите только на сервере.

curl https://plopay.io/api/v1/me \
          -H "X-Api-Key: ВАШ_КЛЮЧ"

Лимиты

На один ключ — 60 запросов в минуту, из них не больше половины на создание платежей и выплат. Для кассы лимит может быть изменён: действующее значение возвращает GET /api/v1/me в поле rate_limit. Сверх лимита — ответ 429 с телом rate_limited и заголовком Retry-After: через сколько секунд повторить. Тело запроса — не больше 64 КБ. Запросы без ключа или с неверным ключом ограничены 30 в минуту с одного IP.

Подпись запросов

Для кассы может быть включена обязательная подпись — тогда одного ключа недостаточно (признак возвращает GET /api/v1/me в поле signature_required). Добавляйте к каждому запросу два заголовка: X-Plopay-Timestamp — текущее время в секундах (Unix) и X-Plopay-Signature — HMAC-SHA256 вашим секретом от строки timestamp.METHOD.path.body. Здесь path — путь вместе со строкой запроса, body — тело ровно в том виде, в каком вы его отправляете (для GET — пустая строка).

const ts = Math.floor(Date.now() / 1000).toString();
        const body = JSON.stringify({ amount: 3400, currency: 'RUB', order_id: 'ORDER-1' });
        const signature = crypto.createHmac('sha256', SECRET)
          .update(ts + '.POST./api/v1/payments.' + body)
          .digest('hex');

Метка времени не должна расходиться с нашей больше чем на 5 минут, а подпись POST-запроса принимается только один раз — при повторе подпишите запрос заново.

Методы

МетодЧто делает
POST /api/v1/paymentsСоздать платёж. Поля: amount — минимум 10 ₽ (для method: crypto порог свой — см. раздел об оплате криптовалютой), currency — только RUB, order_id, description, return_url — куда вернуть покупателя после оплаты (если не передать, берётся адрес из настроек кассы), method — необязательно: sbp, card или crypto; для крипты можно добавить crypto_currency и crypto_network
GET /api/v1/payments/{id}Платёж по нашему id или по вашему order_id
GET /api/v1/paymentsСписок операций. Фильтры: status, type, limit
GET /api/v1/balanceБалансы, сумма в очереди на конвертацию и на холде
GET /api/v1/rateДействующий курс конвертации и час запуска
GET /api/v1/payouts/{id}Статус выплаты: payout_status, txid, адрес получателя
GET /api/v1/meПроверка ключа: данные кассы, подключённые методы и открытые способы приёма и вывода (channels) включённые методы API (api), лимит запросов (rate_limit) и обязательность подписи (signature_required)

Создание платежа

curl -X POST https://plopay.io/api/v1/payments \
          -H "X-Api-Key: ВАШ_КЛЮЧ" -H "Content-Type: application/json" \
          -d '{"amount": 3400, "currency": "RUB", "order_id": "ORDER-1", "description": "Заказ №1"}'
{
          "id": "tx_d732f16db5dc",
          "order_id": "ORDER-1",
          "status": "pending",
          "internal_status": "new",
          "amount": 3400,
          "currency": "RUB",
          "method": "sbp",
          "payment_url": "https://plopay.io/pay/pt_9f8e7d6c5b4a3210f1e2d3c4b5a69788",
          "expires_at": "2026-09-12T20:45:04.000Z",
          "created_at": "2026-09-12T20:15:04.851Z"
        }
i
Отправьте покупателя на payment_url — это наша платёжная страница на plopay.io: название проекта, сумма, QR СБП и статус оплаты. Своя форма оплаты и отдельная интеграция не нужны, страница одна для всех проектов. После оплаты покупатель вернётся на ваш return_url, если вы его передали.

Оплата криптовалютой

Криптовалюта подключается тем же вызовом — достаточно передать method: "crypto":

curl -X POST https://plopay.io/api/v1/payments   -H "X-Api-Key: ВАШ_КЛЮЧ" -H "Content-Type: application/json"   -d '{"amount": 3400, "currency": "RUB", "method": "crypto", "order_id": "ORDER-2"}'

Счёт по-прежнему выставляется в рублях, и в рублях же он отображается в кабинете и в отчётах. Криптовалюту выбирает сам покупатель на нашей платёжной странице: сначала монету, потом сеть. Сумму к переводу, адрес и QR-код мы формируем в момент выбора — курс фиксируется на час, пока действует счёт.

МонетаСети
USDTTron (TRC-20), TON, BNB Smart Chain, Ethereum, Solana, Polygon, Base, Avalanche
USDCEthereum, Solana, Polygon, Base, Avalanche
BTC, ETH, Toncoin, TRX, BNB, SOL, LTC, DOGE, POL, AVAX, XMRсобственные сети монет

Список доступных монет и сетей обновляется автоматически: если направление временно закрыто, покупатель его не увидит. Комбинации, где сумма счёта меньше минимума сети, показываются неактивными с подписью «минимум ≈ N ₽».

Если монета и сеть известны заранее, их можно задать при создании счёта — тогда покупатель сразу увидит реквизиты, без шага выбора:

{"amount": 3400, "currency": "RUB", "method": "crypto",
         "crypto_currency": "USDT", "crypto_network": "TRX-TRC20", "order_id": "ORDER-3"}

Когда монета и сеть определены — вами заранее или покупателем на странице — ответы POST /api/v1/payments, GET /api/v1/payments/{id} и уведомления содержат блок crypto с реквизитами. Их можно показать в своём боте или приложении, не отправляя покупателя на нашу страницу:

"crypto": {
          "currency": "LTC",
          "network": "LTC",
          "address": "ltc1qn4aaw058cc32jadkmsweszmhe7m9j7qt343fkt",
          "amount": "0.28716",
          "paid_amount": null
        }

amount — точная сумма к переводу, её нельзя пересчитывать самостоятельно: курс зафиксирован за этим счётом. paid_amount заполняется после оплаты.

i
Для крипты минимальная сумма своя. Для СБП и карт минимум — 10 ₽, для криптоплатежей порог определяется минимумом сети. Ограничение отдаётся в ошибке amount_too_small полем min_amount.
!
Крипто-счёт живёт час. В отличие от статических адресов, счёт привязан к сумме и курсу, поэтому у него есть срок: expires_at. Покупатель может сменить монету до оплаты — прежние адреса остаются рабочими, оплата по любому из них засчитается.

Зачисление. Крипта проходит тот же путь, что карты и СБП: после подтверждения сети платёж встаёт на холд 24 часа, затем участвует в суточной конвертации и попадает на баланс в USDT. Отдельного крипто-баланса нет. В payment.succeeded и в GET /api/v1/payments/{id} сумма приходит в рублях.

Дополнительные статусы, которые встречаются только у крипты: платёж может задержаться в processing, пока сеть набирает подтверждения, и может быть остановлен AML-контролем — в этом случае он не зачисляется до ручной проверки, а покупатель видит на странице оплаты соответствующее предупреждение.

!
Возврат покупателя на сайт — не подтверждение оплаты. Выдавайте товар только после уведомления payment.succeeded или после того, как GET /api/v1/payments/{id} вернул status: succeeded.
i
Повторный запрос с тем же order_id не создаёт второй платёж — вернётся уже существующий с пометкой idempotent. Это защищает от двойного списания при повторе запроса по таймауту.

Статусы в ответах

statusКогдаinternal_status
pendingПлатёж создан, ждём оплату покупателемnew
processingПокупатель начал оплату; для выплат — заявка в работеnew, withdrawing
succeededОплата подтверждена либо выплата выполненаhold, awaiting_conversion, available, completed
expiredВремя на оплату истекло, деньги не поступилиexpired
canceledПлатёж отменён или отклонён банкомcanceled
refundedПо оплаченному платежу выполнен возвратrefunded
chargebackБанк отозвал ранее успешную оплатуchargeback

Платежи с test: true — проверочные: они проходят весь цикл статусов и вебхуков, но в расчёты, баланс и аналитику не попадают.

Что происходит с деньгами после успешной оплаты, видно в поле settlement: hold — идут 24 часа выдержки, awaiting_conversion — ждёт конвертации, available — доступно к выводу.

ПолеЗначение
payment_urlПлатёжная страница plopay.io для покупателя
expires_atДо какого момента платёж можно оплатить
paid_atМомент подтверждения оплаты
testtrue — платёж создан в тестовом режиме кассы

Уведомления (webhooks)

Укажите адрес в кабинете, раздел «Настройка проекта» — и мы будем присылать POST при каждом изменении статуса.

СобытиеКогда приходит
payment.createdПлатёж создан, покупателю выдана ссылка на оплату
payment.succeededОплата подтверждена — можно выдавать товар
payment.expiredСрок оплаты истёк, деньги не поступили
payment.canceledПлатёж отменён или отклонён
payment.refundedПо платежу выполнен возврат
payment.chargebackОплата отозвана банком
payment.processingПромежуточные изменения по расчётам
payout.createdСоздана заявка на вывод

По одному платежу событий может быть несколько, в том числе после успешной оплаты: возврат или отзыв банк может прислать позже. Ориентируйтесь на последнее событие по id и обрабатывайте повторы идемпотентно — одно и то же уведомление может прийти дважды.

X-Plopay-Event: payment.succeeded
        X-Plopay-Delivery: wh_9f2c1a4b7e02
        X-Plopay-Signature: <HMAC-SHA256 тела запроса вашим секретом>

Проверяйте подпись — так вы убедитесь, что уведомление пришло от нас:

const ok = crypto.createHmac('sha256', SECRET)
          .update(rawBody)
          .digest('hex') === req.headers['x-plopay-signature'];

Если вебхуки отключены для кассы, уведомления не отправляются — статусы можно запрашивать методом GET /api/v1/payments/{id}.

Отвечайте кодом 2xx. Если ответа нет или он другой, мы повторим через 1, 5, 15, 60 и 180 минут — пять попыток. Историю доставки и повторную отправку можно запросить у поддержки.

Ошибки

КодТелоПричина
401unauthorizedКлюч не передан или неверен
401signature_required, invalid_signature, stale_timestamp, replayed_signatureПодпись обязательна, но не передана или неверна, метка времени устарела либо подпись уже использовалась
413payload_too_largeТело запроса больше 64 КБ
429rate_limitedПревышен лимит запросов — повторите через retry_after секунд
403merchant_blockedКасса заблокирована
403payouts_frozenВыплаты заморожены
400invalid_amount, invalid_currency, invalid_methodНекорректные поля запроса. Платежи создаются только в RUB; способ оплаты — sbp, card или crypto
400amount_too_smallСумма меньше минимальной. В ответе приходит min_amount: 10 ₽ для СБП и карт, для крипты — минимум сети
403api_method_disabledЭтот метод API отключён для кассы; какой именно — в поле method
403method_disabledМетод приёма закрыт для кассы
403payout_method_disabledВывод этим способом закрыт: crypto — USDT, BTC, ETH и другие криптовалюты, card — RUB, USD и другие
400insufficient_fundsНедостаточно средств для вывода
404payment_not_foundПлатёж не найден
503terminal_not_connectedДля кассы ещё не подключён приём платежей — напишите в поддержку
503terminal_not_readyПриём по кассе выключен или выбранный способ оплаты на ней не открыт
502provider_errorПлатёж не удалось создать; подробности — в поле message, запрос можно повторить

Выплаты

Вывод средств создаётся только в личном кабинете, в разделе «Выводы». Через API создать выплату нельзя: запрос POST /api/v1/payouts вернёт ошибку payouts_manual.

Заявка уходит на реквизиты из раздела «Кошельки и карты». Оператор проверяет её и отправляет перевод вручную, ежедневно с 18:00 до 21:00 МСК.

Следить за заявкой можно через GET /api/v1/payouts/{id} или по уведомлениям payout.created, payout.completed и payout.rejected. Поле payout_status принимает значения withdrawing (ждёт выплаты), completed (выплачено, есть txid), rejected (отклонена, сумма вернулась на баланс) и canceled (заявку отозвали в кабинете). За каждый вывод удерживается фиксированная комиссия $3,5 (для рублей — по текущему курсу): с баланса списывается сумма заявки, получатель получает её за вычетом комиссии. Поля withdraw_fee и payout_amount показывают комиссию и сумму к получению.

!
Ключ даёт доступ к платежам и данным кассы. Никогда не размещайте его в коде, доступном из браузера. При подозрении на утечку напишите в поддержку — ключ перевыпустят.

10Ограничения и проверки

Платформа проверяет характер операций и вид деятельности. Полный перечень запрещённых направлений и оснований для ограничительных мер — в разделах 7, 8 и 10 Публичной оферты.

Коротко: платформа не используется для оборота запрещённых товаров, операций без реального экономического содержания, чужих платёжных реквизитов и деятельности, требующей лицензии при её отсутствии. По любой операции могут запросить подтверждающие документы.

11Поддержка

Кнопка «Техподдержка» внизу бокового меню кабинета открывает наш Telegram — это основной канал связи, отвечаем там быстрее всего.

Telegram: @PloPay_bot
Почта: merchantsplopay@gmail.com

Чтобы ответ был быстрее, укажите идентификатор кассы и, если вопрос по конкретной операции, её сумму и дату.