Message Status Webhook

In this code snippet you learn how to receive message status updates using the message status webhook.

NOTE: We recommend using JWT-based auth as this allows you to configure your inbound and delivery receipt webhook URLs at the application-level. Otherwise, all callbacks from your different applications will be sent to your account-level webhook URLs.

NOTE: Messages API supports signed webhooks so you can verify a request is coming from Vonage and its payload has not been tampered with during transit.

Example

Ensure that your message status webhook is set in the Dashboard. As a minimum your handler must return a 200 status code to avoid unnecessary callback queuing. Make sure your webhook server is running before testing your Messages application.

Prerequisites

If you do not have an application you can create one. Make sure you also configure your webhooks.

npm install express body-parser

Write the code

Add the following to app.js:

'use strict';
const express = require('express');
const bodyParser = require('body-parser');
const app = express();

app.use(bodyParser.json())
app.use(bodyParser.urlencoded({ extended: true }))

app.post('/webhooks/message-status', (req, res) => {
  console.log(req.body);
  res.status(200).end();
});

app.listen(3000)

View full source

Run your code

Save this file to your machine and run it:

node app.js

Prerequisites

If you do not have an application you can create one. Make sure you also configure your webhooks.

pip install flask

Write the code

Add the following to message-status.py:

@app.route("/webhooks/message-status", methods=["POST"])
def message_status():
    data = request.get_json()
    pprint(data)
    return "200"


if __name__ == "__main__":
    app.run(host="www.example.org", port=3000)

View full source

Run your code

Save this file to your machine and run it:

python3 message-status.py

Try it out

The webhook is invoked on a change in status for an outbound message sent from Vonage. The message status is also printed to the console.

The format of the message status POST request can be found in the Message Status section of the API reference.