Transfer of funds from one wallet to another

URL

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

Headers

Notes:

  • The source purse (pursesrc) is taken from the token and is not included in the request body.

Request body (JSON)

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

Fields

*. Field *. Type Description
reqn long Client request number (arbitrary identifier). Returned unchanged in the response.
tranid long Client-side transaction identifier (> 0).
pursedest string Destination purse. Must be a valid WebMoney purse.
amount decimal Transfer amount. Minimum 0.01.
period int Protection period in days (0..120).
pcode string Protection code.
desc string Payment description. Length 0..255, trimmed (if null — replaced with an empty string).
wminvid long Invoice number (if any), >= 0.

Notes:

  • The period and/or pcode fields allow protected transfers (by time or by code).

Response (JSON)

Response structure:

{
  "reqn": long,           // echo from request
  "retval": int,          // result code
  "retdesc": string,      // result description
  "operation": { ... }    // operation object when retval = 0
}

Object operation (when retval = 0)

*. Field *. Type Description
id long WebMoney operation identifier (WMTranID).
ts long WebMoney timestamp.
tranid long Client-side transaction identifier (from request).
pursesrc string Source purse.
pursedest string Destination purse.
amount decimal Transfer amount.
comiss decimal Operation commission.
opertype int Operation type (0 — regular, 4 — protected).
period int Protection period.
wminvid long Invoice number, if specified.
orderid long Order number, if specified.
desc string Payment description.
datecrt string Operation creation date/time in ISO 8601 (UTC).
dateupd string Operation update date/time in ISO 8601 (UTC).

Example of a successful response

{
  "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" 
  }
}

Comment:

  • datecrt/dateupd — ISO 8601, UTC.

Core error (retval != 0, HTTP 200)

{
  "reqn": 1730486400000,
  "retval": "code",
  "retdesc": "<error description>" 
}

HTTP-level errors

401 Unauthorized:

{
  "retval": 401,
  "retdesc": "Authorization error: <reason>" 
}

405 Method Not Allowed (POST only):

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

400 Bad Request (validation/parsing error):

{
  "reqn": 1730486400000,
  "retval": -3,
  "retdesc": "Request processing error: <reason>" 
}

Return codes

Code Description
0 OK
401 Authorization error (JWT)
405 Method not allowed (POST only)
-3 Request processing error (validation/deserialization)
... Other codes are described in Interface X2