We want to retrieve the location coordinates of the device or camera that triggered the event in XProtect. We intend to use these coordinates to send a customized WhatsApp notification to the relevant user of our application.
To implement this, we created a custom event and configured a webhook in XProtect. We also added a rule that calls the webhook whenever the custom event is triggered.
For testing purposes, we created an alarm definition that allows us to trigger the custom event manually from the XProtect Smart Client.
When the event is triggered, our external service successfully receives the webhook payload. However, the payload does not contain any location coordinates. We also tried configuring GPS coordinates in the camera information properties, but they were not included in the webhook payload.
We also tested the webhook with motion started pre defined event (whose payload is give bellow) in that also we haven’t got GPS coordinates
Could you please clarify the following:
-
Does the XProtect webhook payload include the latitude and longitude of the camera or device that triggered the event?
-
If the webhook contains only the camera, device, or source ID, can we use that ID to retrieve the corresponding GPS coordinates through the MIP SDK, REST API, or another XProtect API?
-
Does XProtect support storing GPS coordinates as metadata for a camera or another device?
-
Can custom properties or metadata fields be added to a camera and retrieved when an event is triggered?
-
What is the recommended approach for including or retrieving the GPS coordinates of the source device in a webhook event?
Payload of Motion detection event
{
"Event": {
"EventHeader": {
"ID": "a3b26c5d-56ac-4fc5-8590-444670d24dfa",
"Timestamp": "2026-07-28T09:09:14.9622394Z",
"Type": "System Event",
"Version": "1.0",
"Priority": 1,
"PriorityName": "High",
"Name": "External Event",
"Message": "External Event",
"Source": {
"Name": "Test Incident",
"FQID": {
"ServerId": {
"Type": "XPCO",
"Hostname": "jn3q832",
"Port": 80,
"Id": "40178ce2-b781-4cbd-8dec-f4625757942c",
"Scheme": "http"
},
"ParentId": "40178ce2-b781-4cbd-8dec-f4625757942c",
"ObjectId": "e7d9aa98-9a3a-451c-b899-bc635d60c836",
"FolderType": 0,
"Kind": "c9bdac3f-41dc-4afa-b057-61767a3914b7"
}
},
"MessageId": "0fcb1955-0e80-4fd4-a78a-db47ee89700c"
}
},
"Site": {
"ServerHostname": "jn3q832",
"AbsoluteUri": "http://jn3q832/",
"ServerType": "XPCO"
}
}
Payload of custom event
{
"Event": {
"EventHeader": {
"ID": "a3b26c5d-56ac-4fc5-8590-444670d24dfa",
"Timestamp": "2026-07-28T09:09:14.9622394Z",
"Type": "System Event",
"Version": "1.0",
"Priority": 1,
"PriorityName": "High",
"Name": "External Event",
"Message": "External Event",
"Source": {
"Name": "Test Incident",
"FQID": {
"ServerId": {
"Type": "XPCO",
"Hostname": "jn3q832",
"Port": 80,
"Id": "40178ce2-b781-4cbd-8dec-f4625757942c",
"Scheme": "http"
},
"ParentId": "40178ce2-b781-4cbd-8dec-f4625757942c",
"ObjectId": "e7d9aa98-9a3a-451c-b899-bc635d60c836",
"FolderType": 0,
"Kind": "c9bdac3f-41dc-4afa-b057-61767a3914b7"
}
},
"MessageId": "0fcb1955-0e80-4fd4-a78a-db47ee89700c"
}
},
"Site": {
"ServerHostname": "jn3q832",
"AbsoluteUri": "http://jn3q832/",
"ServerType": "XPCO"
}
}