Permalink: |
Transfer of funds from one wallet to another
URL¶
POST https://w3s.webmoney.com/json/V1/Transact.ashx
Headers¶
Authorization: Bearer {JWT}
— required JWT token with thetrans
permission. Issued at https://security.webmoney.com/trustlisttokens.aspxContent-Type:application/json; charset=utf-8
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/orpcode
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 |