Revoke an Outbound RCS Message

In this code snippet you learn how to send a RCS file message using the Messages API.

Example

Find the description for all variables used in each code snippet below:

KeyDescription
VONAGE_APPLICATION_ID

The Vonage Application ID.

VONAGE_PRIVATE_KEY_PATH

Private key path.

GEOSPECIFIC_MESSAGES_API_URL

The URL for the Geo-specific Messages API endpoint. One of https://api-eu.nexmo.com/v1/messages, https://api-us.nexmo.com/v1/messages, https://api-ap.nexmo.com/v1/messages.

GEOSPECIFIC_VONAGE_API_HOST

The hostname for the Geo-specific API endpoint. One of api-eu.nexmo.com, api-us.nexmo.com, api-ap.nexmo.com.

JWT

Used to authenticate your request. See Authentication for more information, including how to generate a JWT.

MESSAGE_UUID

The UUID of the specific message.

NOTE: The base URI must be geo-specific to the message being revoked.

Prerequisites

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

Write the code

Add the following to revoke-message.sh:

curl -X PATCH "${GEOSPECIFIC_MESSAGES_API_URL}/${MESSAGES_MESSAGE_ID}" \
  -H "Authorization: Bearer "$JWT\
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -d $'{"status": "revoked"}'

View full source

Run your code

Save this file to your machine and run it:

bash revoke-message.sh

Prerequisites

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

npm install @vonage/server-sdk

Create a file named revoke-message.js and add the following code:

const { Vonage } = require('@vonage/server-sdk');

/**
 * It is best to send messages using JWT instead of basic auth. If you leave out
 * apiKey and apiSecret, the messages SDK will send requests using JWT tokens
 *
 * @link https://developer.vonage.com/en/messages/technical-details#authentication
 */
const vonage = new Vonage(
  {
    applicationId: VONAGE_APPLICATION_ID,
    privateKey: VONAGE_PRIVATE_KEY,
  },
  {
    ...(MESSAGES_API_URL ? {apiHost: MESSAGES_API_URL} : {}),
  },
);

View full source

Write the code

Add the following to revoke-message.js:

vonage.messages.updateMessage(MESSAGE_ID, 'revoked')
  .then(() => console.log('Message revoked'))
  .catch((error) => console.error(error));

View full source

Run your code

Save this file to your machine and run it:

node revoke-message.js

Prerequisites

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

Add the following to build.gradle:

implementation 'com.vonage:server-sdk-kotlin:2.1.1'

Create a file named RevokeMessage and add the following code to the main method:

val client = Vonage {
    applicationId(VONAGE_APPLICATION_ID)
    privateKeyPath(VONAGE_PRIVATE_KEY_PATH)
}

View full source

Write the code

Add the following to the main method of the RevokeMessage file:

client.messages.existingMessage(MESSAGES_MESSAGE_ID, MESSAGES_GEOSPECIFIC_API_HOST).revoke()

View full source

Run your code

We can use the application plugin for Gradle to simplify the running of our application. Update your build.gradle with the following:

apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''

Run the following gradle command to execute your application, replacing com.vonage.quickstart.kt.messages.rcs with the package containing RevokeMessage:

gradle run -Pmain=com.vonage.quickstart.kt.messages.rcs.RevokeMessage

Prerequisites

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

Add the following to build.gradle:

implementation 'com.vonage:server-sdk:9.3.1'

Create a file named RevokeMessage and add the following code to the main method:

VonageClient client = VonageClient.builder()
		.applicationId(VONAGE_APPLICATION_ID)
		.privateKeyPath(VONAGE_PRIVATE_KEY_PATH)
		.build();

View full source

Write the code

Add the following to the main method of the RevokeMessage file:

client.getMessagesClient().revokeOutboundMessage(MESSAGES_MESSAGE_ID, MESSAGES_GEOSPECIFIC_API_HOST);

View full source

Run your code

We can use the application plugin for Gradle to simplify the running of our application. Update your build.gradle with the following:

apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''

Run the following gradle command to execute your application, replacing com.vonage.quickstart.messages.rcs with the package containing RevokeMessage:

gradle run -Pmain=com.vonage.quickstart.messages.rcs.RevokeMessage

Prerequisites

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

Install-Package Vonage

Write the code

Add the following to RevokeMessage.cs:

var credentials = Credentials.FromAppIdAndPrivateKeyPath(VONAGE_APPLICATION_ID, VONAGE_PRIVATE_KEY_PATH);
var vonageClient = new VonageClient(credentials);
await vonageClient.MessagesClient.UpdateAsync(RcsUpdateMessageRequest.Build(MESSAGES_MESSAGE_ID));

View full source

Prerequisites

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

composer require vonage/client

Create a file named revoke-message.php and add the following code:

$keypair = new \Vonage\Client\Credentials\Keypair(
    file_get_contents(VONAGE_APPLICATION_PRIVATE_KEY_PATH),
    VONAGE_APPLICATION_ID
);

$client = new \Vonage\Client($keypair);

View full source

Write the code

Add the following to revoke-message.php:

$messageUuid = '1a5737ad-efd8-4efb-8edd-70d5b8b4ada7';

$client->messages()->updateRcsStatus($messageUuid, \Vonage\Messages\Client::RCS_STATUS_REVOKED);

View full source

Run your code

Save this file to your machine and run it:

php revoke-message.php

Prerequisites

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

pip install vonage python-dotenv

Write the code

Add the following to revoke-message.py:

from vonage import Auth, Vonage

client = Vonage(
    auth=Auth(
        application_id=VONAGE_APPLICATION_ID,
        private_key=VONAGE_PRIVATE_KEY,
    )
)

response = client.messages.revoke_rcs_message(MESSAGES_MESSAGE_ID)
print(response)

View full source

Run your code

Save this file to your machine and run it:

python messages/rcs/revoke-message.py

Prerequisites

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

gem install vonage

Create a file named revoke-message.rb and add the following code:

client = Vonage::Client.new(
  application_id: VONAGE_APPLICATION_ID,
  private_key: VONAGE_PRIVATE_KEY,
  api_host: GEOSPECIFIC_VONAGE_API_HOST
)

View full source

Write the code

Add the following to revoke-message.rb:

client.messaging.update(
  message_uuid: MESSAGES_MESSAGE_ID,
  status: 'revoked'
)

View full source

Run your code

Save this file to your machine and run it:

ruby revoke-message.rb

Try it out

When you run the code a request is made to revoke the outbound message.