Here you can specify URLs to which, if new events occur for your WMID, a POST request with data in JSON format will be sent



If you are an administrator of a Budget Automation tool (Capitaller.ru\.com ) and do want to log in on behalf of its WMID, authorize here


Event types (EventType):
 WmMessage = 4,
 WmTransaction = 6,
 WmInInvoice = 8,
 WmRejectedInvoice = 10,
 WmOutgoingTransaction = 30,

Data example for 2 messages (WmMessage event type):
[{
    "EventType": 4,
    "Text": "12345 test",
    "Subject": "",
    "Id": 518230071,
    "CorrespondentNick": "5dd5f75c-98a3-4e9a-934f-12dce7811d18",
    "CorrespondentWmid": "000000000000",
    "CorrespondentCulture":"ru-RU",
    "UserWmid":"000000000002",
    "EventDateUtc": "2025-06-30T09:55:37.97Z"
},
{
    "EventType": 4,
    "Text": "67890 test",
    "Subject": "",
    "Id": 518230072,
    "CorrespondentNick": "5dd5f75c-98a3-4e9a-934f-12dce7811d18",
    "CorrespondentWmid": "000000000000",
    "CorrespondentCulture":"en-US",
    "UserWmid":"000000000002",
    "EventDateUtc": "2025-06-30T09:57:11.23Z"
}]
Data example for incoming transaction:
[{
    "EventType": 6,
    "Purpose": "test incoming transaction comment",
    "Currency": "WMT",
    "Amount": 154.98,
    "SenderPurse": "T000000000000",
    "ReceiverPurse": "T000000000002",
    "InvoiceId": 0,
    "OperationType": 0, // https://en.webmoney.wiki/projects/webmoney/wiki/Interface_X3  operation\opertype 
    "Period": 0,
    "ProtectionType": null, //"code", "time", null
    "Id": 1000000335,
    "CorrespondentNick": "5dd5f75c-98a3-4e9a-934f-12dce7811d18",
    "CorrespondentWmid": "000000000000",
    "CorrespondentCulture":"en-US",
    "UserWmid": "000000000002",
    "EventDateUtc": "2025-06-30T09:59:37.97Z"
}]
Data example for outgoing transaction:
[{
    "EventType": 30,
    "Purpose": "test outgoing transaction comment",
    "Currency": "WMT",
    "Amount": 19.11,
    "SenderPurse": "T000000000002",
    "ReceiverPurse": "T000000000000",
    "InvoiceId": 13212275,
    "OperationType": 0,
    "Period": 0,
    "ProtectionType": null, //"code", "time", null
    "Id": 1000000336,
    "CorrespondentNick": "5dd5f75c-98a3-4e9a-934f-12dce7811d18",
    "CorrespondentWmid": "000000000000",
    "CorrespondentCulture":"en-US",
    "UserWmid": "000000000002",
    "EventDateUtc": "2025-06-30T09:59:39.97Z"
}]
Data example for incoming invoice:
[{
    "EventType": 8,
    "Description": "test invoice comment",
    "Amount": 100.23,
    "Currency": "WMZ",
    "IssuerPurse": "Z211111111147",
    "Id": 13212271,
    "CorrespondentNick": "5dd5f75c-98a3-4e9a-934f-12dce7811d18",
    "CorrespondentWmid": "000000000000",
    "CorrespondentCulture":"en-US",
    "UserWmid": "000000000002",
    "EventDateUtc": "2025-06-30T09:58:37.97Z"
}]
Data example for rejection of outgoing invoice:
[{
    "EventType": 10,
    "Description": "test invoice comment",
    "Amount": 2.00,
    "Currency": "WMG",
    "IssuerPurse": "G000000000002",
    "Id": 13212255,
    "CorrespondentNick": "5dd5f75c-98a3-4e9a-934f-12dce7811d18",
    "CorrespondentWmid": "000000000000",
    "CorrespondentCulture":"en-US",
    "UserWmid": "000000000002",
    "EventDateUtc": "2025-06-30T09:59:49.97Z"
}]


Request signature check:

If necessary, you can verify the authenticity of the received request. To do this, take the value of secret from the table (next to the URL), the value of requestId from the HTTP header X-WM-PUSH-REQUEST-ID, and calculate the hash using GetBase64Hash. Compare the resulting value with the value of the X-WM-PUSH-HASH header.:
private static string GetBase64Hash(string requestId, string secret)
{
    var encoding = Encoding.UTF8;
    var convolutionBytes = encoding.GetBytes(requestId);
    var secretBytes = encoding.GetBytes(secret);
    using (var hasher = HMAC.Create("HMACSHA256"))
    {
        hasher.Key = secretBytes;
        return Convert.ToBase64String(hasher.ComputeHash(convolutionBytes));
    }
}