protopaysAPI

Создание выплаты

Укажите реквизиты получателя — создаётся заявка на выплату. Итог приходит в webhook.

POSThttps://api.protopays.io/api/v1/payins

Параметры тела (JSON)

На ключе должны быть включены выплаты. Подпись как у платежей — аутентификация.

ПолеТипОбяз.Описание
orderIdstringдаВаш id выплаты. Повтор с тем же orderId и методом — тот же объект (идемпотентность).
amountnumber | stringдаСумма в RUB, минимум 1.
currencystringдаПример: RUB.
callbackUristring (URL)даHTTPS URL для POST webhook о терминальном статусе.
methodstringдаМетод: sbp или c2c (card).
addressstringдаРеквизит получателя: телефон СБП, номер карты или счёт (вместо beneficiary.value).
recipientstringдаФИО или имя получателя (вместо beneficiary.holder).
codestringнетКод банка / идентификатор (например sber), попадает в beneficiary.bank.
bankNamestringнетЧеловекочитаемое имя банка.
userIdstringнетId пользователя у мерчанта (аудит / metadata).
userIpstringнетIPv4/IPv6 плательщика у мерчанта.

Заголовки

Как для создания платежа: Content-Type: application/json, X-Merchant-Key-Id, Signature (и при необходимости X-Merchant-Secret).

Пример curl

curl
curl -X POST 'https://api.protopays.io/api/v1/payins' \
  -H 'Content-Type: application/json' \
  -H 'X-Merchant-Key-Id: <KEY_ID>' \
  -H 'Signature: <SIGNATURE>' \
  -d '{
    "orderId": "payout-order-001",
    "amount": 500,
    "currency": "RUB",
    "method": "sbp",
    "address": "79001234567",
    "recipient": "IVAN IVANOV",
    "code": "sber",
    "callbackUri": "https://example.com/hooks/protopays-payin",
    "userId": "4095",
    "userIp": "188.11.55.10"
  }'

Ответ

В beneficiary — маска реквизита. Статус обычно waiting.

json
{
  "message": "Payin created",
  "data": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "orderId": "payout-order-001",
    "status": "waiting",
    "amount": "500.00",
    "currency": "RUB",
    "method": "sbp",
    "beneficiary": {
      "value": "7900******67",
      "holder": "IVAN IVANOV",
      "bank": "sber"
    },
    "frozenUsdt": "6.73",
    "expiresAt": "2026-05-22T14:00:00+00:00"
  }
}

Не хватает USDT — insufficient_cashbox_balance. Выплаты выключены — merchant_external_payins_disabled. См. ошибки.