Skip to main content

HTTP Webhook

Direction: MO

This is the simplest and mostly widely used delivery method; upon receipt Messages are converted into HTTP POST requests and submitted to the Customer’s server.

  • URL - Where Message will be sent; e.g. https://www.groundcontrol.com/data.cgi
  • Format - How the message is represented
    • JSON (Lingo) LingoMO representation in JSON - Recommended
    • JSON (Core) - Deprecated - Legacy format mirroring Core [deprecated]
    • Form Parameters - Deprecated - Legacy format mirroring Core [deprecated]
  • Validate Certificate - If HTTPS certificates should be validated - Yes/No

Process

  • Platform establishes connection to Customer's server as defined by [URL]
  • HTTP POST request will be sent as per [Format]
  • Customers server must return HTTP OK (200) within 5 seconds
  • Failing to do so, will initiate delivery retry mechanism:
    • Attempt delivery again in 2 seconds
    • Failure again, attempt delivery again in 4 seconds
    • And so forth, exponentiation increasing the delay, until successful delivery
    • After ~12 hours, no further delivery attempts will be tried
    • Message redelivery can be manually triggered via the User Interface

Notes

  • Use JSON (Core) and Form Parameters for existing integrations only; they're limited and don't support all Messages
  • Requests will originate from either 35.178.100.117 or 52.56.155.169

Example - JSON (Lingo)

POST /your/endpoint HTTP/1.1
Host: your.domain
Content-Type: application/json
Content-Length: 2046

{
"id": "fb1f8a90-cb47-4795-b11e-f5b804edf310",
"receivedAt": {
"year": 2023,
"month": 10,
"day": 18,
"hour": 12,
"minute": 26,
"second": 10
},
"identity": {
"accountId": "yJGjpPobLlmOdanVkPWAKYzNMgwVZkrR",
"subscriber": {
"id": "XgwyNPpDmebJLWXmwgEoARqxMdZOVGva",
"type": "SUBSCRIBER_TYPE_SBD",
"description": ""
},
"hardware": {
"id": "joGRxQrXpzkPJEglMOBydwYZbqmDagNA",
"type": "HARDWARE_TYPE_LEOPARD3",
"imei": "300234065366010",
"serial": ""
},
"identifier": "300234065366010",
"thingId": "DgXeoxwVPMyrdOBJeEGlqKRJLbajQkzZ"
},
"sbd": {
"imei": "300234065366010",
"cdrReference": "3301853709",
"momsn": 5394,
"mtmsn": 0,
"sessionAt": {
"year": 2023,
"month": 10,
"day": 18,
"hour": 12,
"minute": 26,
"second": 9
},
"status": "SESSION_STATUS_OK",
"location": {
"latitude": 50.898133333333334,
"longitude": -1.1946666666666665,
"cep": 4.0
}
},
"message": "JgBrey0iF+0K7YvAAAQBx0QwBQ==",
"p6": {
"status": true,
"error": [],
"messages": [{
"mo": {
"encrypted": false,
"alertStatus": false,
"powerStatus": true,
"watchStatus": false,
"type": "MO_MESSAGE_AUTO_POSITION_REPORT",
"position": {
"standard": {
"at": {
"year": 2023,
"month": 10,
"day": 18,
"hour": 12,
"minute": 26,
"second": 0
},
"timeDelta": 44760,
"dayOfYear": 48,
"latlng": {
"latitude": 50.877700000000004,
"longitude": -1.2520800000000065
},
"altitude": 28,
"course": 0,
"speed": 0.0,
"navigationMode": "NAVIGATION_MODE_3D",
"battery": 94,
"pdop": 1.25,
"temperature": 18
}
}
}
}]
},
"signature": ""
}

Example - JSON (Core)

POST /your/endpoint HTTP/1.1
Host: your.domain
Content-Type: application/json
Content-Length: 507

{"imei":"300534985236430","device_type":"LEOPARD3","serial":"","momsn":"5394","transmit_time":"2023-10-18T15:22:09Z","id":"d94a6f6c-4e8e-4f11-bfdb-3a113002f6c5","transport":"IRIDIUM","txAt":"2023-10-18T15:22:09Z","at":"2023-10-18T15:22:00Z","iridium_latitude":"50.8696","iridium_longitude":"-1.2503","cep":"4","lat":"50.87768","lon":"-1.25207","source":"GPS","alt":"24","sog":"0.0","cog":"0","averageSog":"0.0","averageCog":"0","pdop":"1.25","temp":"17.0","battery":"94","power":"true","trigger":"ROUTINE"}

Example - JSON (Form Parameters)

POST /your/endpoint HTTP/1.1
Host: your.domain
Content-Type: application/x-www-form-urlencoded
Content-Length: 210

imei=300534985236430&device_type=UNKNOWN&serial=&momsn=560&transmit_time=2023-10-18T09%3A35%3A16Z&iridium_latitude=22.7796&iridium_longitude=44.7407&iridium_cep=2.0&iridium_session_status=0&data=01020304060708