Справочник методов
Адрес, поля ответа и отказы каждой выпущенной ручки API.
Справочник собирается из схем сервера. Каждая сборка сверяет с ними ответы работающего сервера и примеры на этой странице.
Общее для всех ручек
- Базовый адрес:
https://api.plutera.io. - Вход по ключу API: Авторизация.
- Форма отказа и общие отказы: Формат ошибок.
- Предел частоты и запрет кеширования: Ограничения.
Проверить ключ
GET/api/v1/meс 12.11.2026
Возвращает мерчанта, контур и открытую часть ключа, которым сделан запрос. Ничего не меняет. С этого запроса начинают интеграцию: он показывает, что ключ принят и к какому контуру относится.
- Секрет ключа в ответе не возвращается никогда.
- Названия, которым администратор пометил ключ у себя в консоли, в ответе нет.
Запрос
curl -sS https://api.plutera.io/api/v1/me \
-H "Authorization: Bearer $PLUTERA_API_KEY"Параметров в адресе нет. Параметр с незнакомым именем отклоняется.
Тела у запроса нет.
Ответ 200
| Поле | Вид | В ответе | Что это |
|---|---|---|---|
merchant | объект | всегда | Мерчант, которому выдан ключ. |
merchant.code | строка | всегда | Код мерчанта. Задаётся при заведении и не меняется. |
merchant.name | строка | всегда | Название мерчанта, как оно записано в Plutera. |
environment | строкаLIVE TEST | всегда | Контур ключа. Все запросы этим ключом исполняются в этом контуре. |
key | объект | всегда | Ключ, которым сделан запрос. |
key.keyId | строка | всегда | Открытая часть ключа. Не секрет: по ней ключ называют в переписке с поддержкой. |
key.expiresAt | строка, момент времени ISO 8601или null | всегда | Когда ключ перестанет приниматься, время UTC. null: срок не задан. |
{
"merchant": {
"code": "example-shop",
"name": "Example Shop"
},
"environment": "TEST",
"key": {
"keyId": "ak_test_examplekey000001",
"expiresAt": "2027-02-10T00:00:00.000Z"
}
}Отказы
Своих отказов у ручки нет, возможны только общие для всех ручек.
Список сервисов
GET/api/v1/servicesс 12.11.2026
Возвращает сервисы, которыми мерчант может принять платёж в контуре ключа: способ оплаты, валюту, границы суммы, поля плательщика и комиссию. Ничего не меняет.
- В список попадают только сервисы, готовые к работе целиком. Сервис, которому чего-то не хватает на нашей стороне, в ответе отсутствует, а не помечен.
- Список зависит от контура ключа: у тестового и боевого ключа одного мерчанта он может различаться.
- Суммы приходят строками в минорных единицах валюты сервиса. Чтобы показать сумму человеку, её делят на
minorUnit. - Список меняется, когда администратор включает или выключает сервис. Хранить его у себя дольше нескольких минут не стоит.
Запрос
curl -sS https://api.plutera.io/api/v1/services \
-H "Authorization: Bearer $PLUTERA_API_KEY"Параметров в адресе нет. Параметр с незнакомым именем отклоняется.
Тела у запроса нет.
Ответ 200
| Поле | Вид | В ответе | Что это |
|---|---|---|---|
environment | строкаLIVE TEST | всегда | Контур ключа. Список собран для него. |
items | массив объектов | всегда | Сервисы, которыми мерчант может принять платёж прямо сейчас. Может быть пустым. |
items[].code | строка | всегда | Код сервиса. Им сервис называют при создании платежа. |
items[].direction | строкаPAYIN PAYOUT | всегда | Направление денег: PAYIN приём, PAYOUT выплата. |
items[].method | объект | всегда | Способ оплаты. |
items[].method.code | строка | всегда | Код способа оплаты. |
items[].method.name | строка | всегда | Название способа оплаты для показа человеку. |
items[].currency | строка | всегда | Валюта сервиса: в ней задаются сумма платежа, границы и твёрдая комиссия. |
items[].network | строкаили null | всегда | Сеть, если у валюты их несколько (криптовалюты). null: сети нет. |
items[].flow | строкаDIRECT REDIRECT REQUISITE HOSTED_FIELDS | всегда | Как проходит оплата: DIRECT данные плательщика передаёт сервер мерчанта, REDIRECT плательщик уходит на страницу провайдера, REQUISITE плательщику выдаётся реквизит (QR, код, счёт), HOSTED_FIELDS плательщик заполняет готовую форму провайдера. |
items[].minorUnit | целое число | всегда | Сколько минорных единиц в одной единице валюты: 100 у BRL, 1 у JPY. |
items[].amount | объект | всегда | Границы суммы. |
items[].amount.minMinor | строкаили null | всегда | Наименьшая сумма платежа в минорных единицах. null: нижней границы нет. |
items[].amount.maxMinor | строкаили null | всегда | Наибольшая сумма платежа в минорных единицах. null: верхней границы нет. |
items[].fields | массив объектов | всегда | Поля плательщика, которые сервис принимает. Порядок тот же, что на форме оплаты. |
items[].fields[].key | строка | всегда | Имя поля. Этим именем поле передаётся при создании платежа. |
items[].fields[].kind | строкаTEXT DIGITS EMAIL PHONE DATE COUNTRY | всегда | Вид значения: TEXT строка, DIGITS только цифры, EMAIL почта, PHONE телефон в формате E.164, DATE дата ГГГГ-ММ-ДД, COUNTRY страна двумя буквами ISO 3166-1. |
items[].fields[].required | логическое | всегда | Обязательно ли поле для этого сервиса. |
items[].fields[].pattern | строкаили null | всегда | Регулярное выражение, которому значение должно соответствовать целиком. null: проверки выражением нет. |
items[].fields[].maxLength | целое число | всегда | Наибольшая длина значения в знаках. |
items[].fee | объект | всегда | Комиссия с мерчанта за платёж этим сервисом. |
items[].fee.type | строкаPERCENT FIXED | всегда | Вид комиссии: PERCENT процент от суммы, FIXED твёрдая сумма. |
items[].fee.percent | строкаили null | всегда | Процент строкой с четырьмя знаками после точки: «1.9000». Заполнен при PERCENT, иначе null. |
items[].fee.amountMinor | строкаили null | всегда | Твёрдая сумма в минорных единицах валюты сервиса. Заполнена при FIXED, иначе null. |
{
"environment": "TEST",
"items": [
{
"code": "pix_brl_requisite",
"direction": "PAYIN",
"method": {
"code": "PIX",
"name": "Pix"
},
"currency": "BRL",
"network": null,
"flow": "REQUISITE",
"minorUnit": 100,
"amount": {
"minMinor": "100",
"maxMinor": "10000000"
},
"fields": [
{
"key": "payer.tax_id",
"kind": "DIGITS",
"required": true,
"pattern": "^(\\d{11}|\\d{14})$",
"maxLength": 14
},
{
"key": "payer.name",
"kind": "TEXT",
"required": false,
"pattern": null,
"maxLength": 128
}
],
"fee": {
"type": "PERCENT",
"percent": "1.9000",
"amountMinor": null
}
},
{
"code": "boleto_brl_requisite",
"direction": "PAYIN",
"method": {
"code": "BOLETO",
"name": "Boleto bancário"
},
"currency": "BRL",
"network": null,
"flow": "REQUISITE",
"minorUnit": 100,
"amount": {
"minMinor": "500",
"maxMinor": "1000000"
},
"fields": [
{
"key": "payer.tax_id",
"kind": "DIGITS",
"required": true,
"pattern": "^(\\d{11}|\\d{14})$",
"maxLength": 14
},
{
"key": "payer.name",
"kind": "TEXT",
"required": true,
"pattern": null,
"maxLength": 128
},
{
"key": "payer.email",
"kind": "EMAIL",
"required": false,
"pattern": null,
"maxLength": 254
}
],
"fee": {
"type": "FIXED",
"percent": null,
"amountMinor": "250"
}
}
]
}Отказы
Своих отказов у ручки нет, возможны только общие для всех ручек.
Зарезервированные адреса
Эти адреса объявлены под ручки, которые ещё не выпущены. Сервер отвечает на них отказом 501, с ключом и без него. Пользоваться адресом можно с того дня, когда он появится выше и в журнале изменений: до этого его поведение может поменяться без объявления.
| Метод | Адрес | Ответ сейчас |
|---|---|---|
| POST | /api/v1/payments | 501 |
| GET | /api/v1/payments/:id | 501 |
| GET | /api/v1/payments | 501 |