Сценарий из mcp-everything. Актуально на 2026-10-24.
Ежедневная сверка с учётной системой: какие платежи прошли, отменены или возвращены.
curl -G -u "$AUTH" "$PK/info/payments/bydate/" \
-d start=2026-10-01 -d end=2026-10-24 \
-d 'status[]=success' -d 'status[]=refunded' \
-d 'payment_system_id[]=<id платёжной системы>' \
-d from=0 -d limit=100
https://<адрес вашего сервера PayKeeper>Тип: Basic Auth
Каждый запрос отправляется с заголовком Authorization: Basic — логин и пароль от личного кабинета PayKeeper в base64. Запросы на чтение выполняются GET, изменения — POST с заголовком Content-Type: application/x-www-form-urlencoded. Каждый POST-запрос дополнительно должен содержать параметр token — токен безопасности, полученный методом /info/settings/token/.
Статусы счёта: created, sent, paid, expired.
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
id |
query | string | да | Номер счёта |
Пример ответа:
[
{
"id" : "20110115085347329",
"clientid" : "Ivanov Ivan Ivanovich",
"orderid" : "1337",
"paymentid" : "7331",
"service_name" : "Document delivery",
"client_email" : "ivanov@ivan.ivanovich.com",
"client_phone" : "+79254973590",
"created_datetime" : "2011-01-15 08:53:47",
"paid_datetime" : "2011-01-16 14:12:00",
"expiry_datetime" : "2011-01-19 00:00:00",
"pay_amount" : "1205.98",
"status" : "paid",
"user_id" : 9
}
]
Счета выводятся от новых к старым.
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
status[] |
query | string | нет | Статусы: sent, paid, expired |
start_date |
query | string | нет | Счета, выставленные после даты YYYY-MM-DD |
end_date |
query | string | нет | Счета, выставленные до даты YYYY-MM-DD |
from |
query | integer | нет | Пропустить N результатов |
limit |
query | integer | нет | Не более N результатов |
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
start |
query | string | да | Начало периода YYYY-MM-DD |
end |
query | string | да | Конец периода YYYY-MM-DD |
payment_system_id[] |
query | integer | да | Идентификатор платёжной системы |
status[] |
query | string | да | Статусы: pending, obtained, canceled, success, failed, stuck, refunded, refunding, partially_refunded |
from |
query | integer | да | Пропустить первые N значений |
limit |
query | integer | да | Количество возвращаемых значений |
Пример запроса:
/info/payments/bydate/?limit=100&from=0&start=2016-04-14&end=2017-03-14&status[]=success&status[]=canceled&status[]=failed&payment_system_id[]=9&payment_system_id[]=1
token обязателен в каждом POST-запросе, хотя в описании методов его часто не упоминают; токен меняется раз в 24 часа.partial передавайте именно true/false — значения 1/0 система не воспринимает./info/refunds/bypaymentid/ или реестр платежей со статусом refunding, обычно через несколько минут.status = queued на capture (Промсвязьбанк) запрос лишь принят банком; итог проверяют через несколько минут.id, sum, clientid, orderid, key и доп. поля. key — md5 от конкатенации id, sum (2 знака после точки), clientid, orderid и секретного слова из личного кабинета.OK <md5(id + секретное слово)>. Без корректного ответа PayKeeper повторяет запрос каждую минуту, по умолчанию до 50 раз, после чего платёж получает статус «Совершён без оповещения».id платежа.?pstype=sbp_default, чтобы показать QR-код СБП, и &returnFormat=json, чтобы получить содержимое QR-кода.Если этого недостаточно — официальная документация: https://docs.paykeeper.ru/dokumentatsiya-json-api/ Вся интеграция одним документом: https://mcp-everything.ru/integrations/paykeeper.md