Сценарий из mcp-everything. Актуально на 2026-10-24.
Ссылка на оплату для клиента — в письмо, мессенджер или на страницу заказа.
PK=https://<твой-сервер>.server.paykeeper.ru
AUTH='<логин>:<пароль>'
TOKEN=$(curl -s -u "$AUTH" "$PK/info/settings/token/" | jq -r .token)
curl -X POST "$PK/change/invoice/preview/" -u "$AUTH" \
-d pay_amount=1500.00 -d orderid=1042 \
--data-urlencode 'clientid=Иван Петров' -d client_email=ivan@example.ru \
--data-urlencode 'service_name=Заказ №1042' \
-d token=$TOKEN
https://<адрес вашего сервера PayKeeper>Тип: Basic Auth
Каждый запрос отправляется с заголовком Authorization: Basic — логин и пароль от личного кабинета PayKeeper в base64. Запросы на чтение выполняются GET, изменения — POST с заголовком Content-Type: application/x-www-form-urlencoded. Каждый POST-запрос дополнительно должен содержать параметр token — токен безопасности, полученный методом /info/settings/token/.
Токен нужен для всех POST-запросов (защита от CSRF). Меняется раз в 24 часа.
Пример ответа:
{
"token" : "fd50e47596cff6c63c7ea0a633c0d2a8"
}
Создаёт счёт по параметрам оплаты и возвращает его номер, полный URL для оплаты и HTML-предпросмотр письма. Созданный счёт получает служебный статус created и не попадает в историю счетов.
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
pay_amount |
body | string | да | Сумма заказа к оплате |
clientid |
body | string | нет | Идентификатор клиента |
orderid |
body | string | нет | Номер заказа |
service_name |
body | string | нет | Наименование услуги; можно передать JSON-объект с корзиной cart и доп. атрибутами |
client_email |
body | string | нет | E-mail клиента |
client_phone |
body | string | нет | Телефон клиента |
expiry |
body | string | нет | Срок действия счёта: YYYY-MM-DD или YYYY-MM-DD H:i:s (не включительно) |
token |
body | string | да | Токен безопасности |
Пример ответа:
{
"invoice_id" : "20120229133742255",
"invoice_url" : "https://pay.example.com/bill/20120229133742255",
"invoice" : "<HTML><HEAD><META http-equiv=Content-Type ..."
}
Отправляет клиенту письмо, созданное методом preview.
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
id |
body | string | да | Идентификатор созданного счёта |
token |
body | string | да | Токен безопасности |
Пример ответа:
{
"result" : "success"
}
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