protopays · API

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

Реквизит получателя — в теле запроса. USDT замораживается на шлюзе, заявка в пул исполнителей. Финальный статус — webhook.

POST https://api.protopays.io/api/v1/payins

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

Та же HMAC-схема, что у платежей — см. аутентификация. На ключе и методе шлюзы должны быть включены выплаты (payin).

ПолеТипОбяз.Описание
orderIdstringдаВаш id выплаты. Повтор с тем же orderId и методом — тот же объект (идемпотентность).
amountnumber | stringдаСумма в RUB, минимум 1.
currencystringдаПример: RUB.
callbackUristring (URL)даHTTPS URL для POST webhook о терминальном статусе.
methodstringдаМетод: sbp | c2c (алиасы card, sim → нормализуются на сервере).
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 -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"
  }'

Ответ

Успех: Payin created. В beneficiary — маска; полный реквизит у исполнителя после взятия заявки. Статус: waiting.

{
  "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; выплаты отключены — payin_api_disabled_for_credential. См. ошибки и статусы.