Перевод средств с одного кошелька на другой

URL

POST https://w3s.webmoney.com/json/V1/Transact.ashx

Заголовки

Примечания:

  • Источник кошелька (pursesrc) берётся из токена и не передаётся в теле запроса.

Тело запроса (JSON)

{
  "reqn": 1730486400000,
  "tranid": 90001,
  "pursedest": "Z123456789012",
  "amount": 1.23,
  "period": 0,
  "pcode": "",
  "desc": "Test payment",
  "wminvid": 0,
  "onlyauth": 1
}

Поля

*. Поле *. Тип Описание
reqn long Номер запроса клиента (произвольный идентификатор). Возвращается как есть в ответе.
tranid long Идентификатор операции на стороне клиента (> 0).
pursedest string Кошелёк назначения. Должен быть валидным кошельком WebMoney.
amount decimal Сумма перевода. Минимум 0.01.
period int Период протекции в сутках (0..120).
pcode string Код протекции.
desc string Назначение платежа. Длина 0..255 и без пробелов по краям (если null — заменяется на пустую строку).
wminvid long Номер счёта (если есть), >= 0.

Примечания:

  • Поля period и/или pcode позволяют выполнять переводы с протекцией (по времени или по коду).

Выходные данные (JSON)

Структура ответа:

{
  "reqn": long,           // эхо из запроса
  "retval": int,          // код результата
  "retdesc": string,      // описание результата
  "operation": { ... }    // объект операции при retval = 0
}

Объект operation (при retval = 0)

*. Поле *. Тип Описание
id long Идентификатор операции WebMoney (WMTranID).
ts long Временная метка WebMoney (WM timestamp).
tranid long Идентификатор операции на стороне клиента (из запроса).
pursesrc string Кошелёк-источник.
pursedest string Кошелёк-получатель.
amount decimal Сумма перевода.
comiss decimal Комиссия операции.
opertype int Тип операции (0 — обычная, 4 — с протекцией).
period int Период протекции.
wminvid long Номер счёта, если был указан.
orderid long Номер заказа, если был указан.
desc string Назначение платежа.
datecrt string Дата/время создания операции в ISO 8601 (UTC).
dateupd string Дата/время обновления операции в ISO 8601 (UTC).

Пример успешного ответа

{
  "reqn": 1730486400000,
  "retval": 0,
  "retdesc": "OK",
  "operation": {
    "id": 4567890,
    "ts": 1717071111,
    "tranid": 90001,
    "pursesrc": "Z000000000000",
    "pursedest": "Z123456789012",
    "amount": 1.23,
    "comiss": 0.01,
    "opertype": 0,
    "period": 0,
    "wminvid": 0,
    "orderid": 0,
    "desc": "Test payment",
    "datecrt": "2025-10-02T12:34:56.789Z",
    "dateupd": "2025-10-02T12:34:56.789Z" 
  }
}

Комментарий:

  • datecrt/dateupd — ISO 8601, UTC.

Ошибка ядра (retval != 0, HTTP 200)

{
  "reqn": 1730486400000,
  "retval": <код>,
  "retdesc": "<описание причины>" 
}

Ошибки уровня HTTP

401 Unauthorized:

{
  "retval": 401,
  "retdesc": "Authorization error: <причина>" 
}

405 Method Not Allowed (только POST):

{
  "retval": 405,
  "retdesc": "Method not allowed. Use POST." 
}

400 Bad Request (ошибка валидации/парсинга):

{
  "reqn": 1730486400000,
  "retval": -3,
  "retdesc": "Request processing error: <причина>" 
}

Список кодов

*. Код *. Описание
0 OK
401 Ошибка авторизации (JWT)
405 Метод не разрешён (допускается только POST)
-3 Ошибка обработки запроса (валидация/десериализация)
... Прочие коды описаны в Интерфейс X2