PAYLAYER

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

API PayLayer для приема платежей

Подключайте сайт, Telegram-бота или другой сервис через REST API. Создавайте платежи, показывайте пользователю платежную страницу PayLayer и получайте статусы через API или webhook.

Быстрый старт

Ключи выдаются после создания и одобрения проекта. До одобрения реальные платежи недоступны.

1
Зарегистрируйтесь

Создайте аккаунт PayLayer.

2
Добавьте проект

Укажите сайт, Telegram-бота или ссылку на сервис.

3
Получите доступ

После одобрения используйте API token из кабинета.

Данные подключения

В публичной документации указаны только шаблоны. Реальные Shop ID и API token доступны в личном кабинете проекта.

Base URL
https://paylayer.ru/api/v1
Authorization
Bearer API_TOKEN
Shop ID
Показывается в кабинете проекта
Лимиты СБП
10,00 ₽ - 5 000,00 ₽
Передавайте токен в каждом API-запросе в заголовке Authorization. Один проект использует один токен.

REST API

Все запросы принимают и возвращают JSON. Основной сценарий: создать платеж, показать payment_url клиенту, получить webhook или проверить статус.

POST
/api/v1/payments - создать платеж
GET
/api/v1/payments/{payment_id} - проверить платеж
GET
/api/v1/payments?status=succeeded&limit=50&offset=0 - список платежей

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

curl -X POST https://paylayer.ru/api/v1/payments \
  -H "Authorization: Bearer API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 100,
    "currency": "RUB",
    "description": "Оплата заказа",
    "customer_email": "client@example.ru",
    "success_url": "https://example.ru/success",
    "fail_url": "https://example.ru/fail",
    "metadata": {
      "user_id": "12345",
      "payer_pays_commission": false
    }
  }'

Поле order_id можно не передавать: PayLayer сгенерирует его автоматически. Если передать одинаковый order_id повторно, система вернет существующий платеж.

Ответ API

{
  "success": true,
  "payment_id": "cmr_payment_id",
  "order_id": "order_20260707204530_ab12cd34",
  "amount": "100.00",
  "currency": "RUB",
  "status": "pending",
  "payment_url": "https://paylayer.ru/pay/cmr_payment_id",
  "expires_at": "2026-07-07T17:55:30.000Z",
  "is_expired": false,
  "metadata": {
    "user_id": "12345",
    "payer_pays_commission": false
  },
  "created_at": "2026-07-07T17:45:30.000Z",
  "paid_at": null
}

Проверка платежа

curl -X GET https://paylayer.ru/api/v1/payments/cmr_payment_id \
  -H "Authorization: Bearer API_TOKEN"
{
  "success": true,
  "payment": {
    "payment_id": "cmr_payment_id",
    "order_id": "order_20260707204530_ab12cd34",
    "amount": "100.00",
    "currency": "RUB",
    "status": "succeeded",
    "payment_url": "https://paylayer.ru/pay/cmr_payment_id",
    "expires_at": "2026-07-07T17:55:30.000Z",
    "is_expired": false,
    "metadata": {
      "user_id": "12345",
      "payer_pays_commission": false
    },
    "created_at": "2026-07-07T17:45:30.000Z",
    "paid_at": "2026-07-07T17:48:12.000Z"
  }
}

В ответе проверки платеж находится внутри поля payment. Статус оплаты смотрите в payment.status.

Список платежей

curl -X GET "https://paylayer.ru/api/v1/payments?status=succeeded&limit=50&offset=0" \
  -H "Authorization: Bearer API_TOKEN"

Webhook

Webhook URL задается в настройках проекта. После изменения статуса платежа PayLayer отправляет POST-запрос на этот адрес.

Метод
POST
Content-Type
application/json
События
payment.succeeded / payment.failed / payment.canceled
{
  "event": "payment.succeeded",
  "payment_id": "cmr_payment_id",
  "order_id": "order_20260707204530_ab12cd34",
  "amount": "100.00",
  "currency": "RUB",
  "status": "succeeded",
  "metadata": {
    "user_id": "12345"
  }
}

Ваш обработчик должен вернуть HTTP 200. История webhook-запросов отображается в кабинете.

Поля и статусы

Краткая справка по параметрам, которые чаще всего используются при интеграции.

Поля создания

  • amount - сумма платежа в RUB.
  • description - описание для платежной формы.
  • order_id - необязательный ID заказа.
  • metadata - ваши данные, которые вернутся в webhook.
  • payer_pays_commission - если true, комиссия добавляется сверху.

Статусы платежа

  • created - платеж создан.
  • pending - ожидает оплаты.
  • succeeded - успешно оплачен.
  • failed - ошибка оплаты.
  • canceled - платеж отменен или истек.

Ошибки API

401

Неверный API token.

422

Неверные параметры платежа.

429

Слишком много запросов.

404

Платеж не найден.

400

Платеж не удалось создать.