Migração da SMS API para a Messages API
A Messages API da Vonage é a forma recomendada para enviar e receber SMS. Ela oferece suporte a vários canais, como SMS, MMS, RCS e WhatsApp, por meio de uma interface única e consistente. Este guia compara a SMS API baseada em HTTP e a Messages API para casos de uso de SMS e orienta sobre a configuração da conta, solicitações de envio, cargas de dados recebidas e alterações no rastreamento de status que você precisa realizar durante uma migração. Ele não aborda integrações SMPP.
A SMS API continua sendo oferecida aos clientes atuais. No entanto, a Messages API possui um plano de desenvolvimento robusto para novos recursos e melhorias, sendo a opção recomendada para todas as novas integrações ou para integrações existentes que desejem aproveitar os canais de mensagens e recursos adicionais oferecidos.
Atualmente, a Messages API oferece suporte a duas versões: v1 e o legado v0.1. Para fins de migração da SMS API para a Messages API, recomendamos enfaticamente que você utilize a versão v1 da Messages API.
Configurando seu Account da Vonage para usar a Messages API
Selecione a Messages API no Painel
O primeiro passo para migrar da SMS API legada para a Messages API é atualizar o Tipo de API de mensagens configuração no Configurações da API página do Painel do Desenvolvedor da Vonage. Selecione Messages API como o Tipo de API aqui.

Se você não alterar essa configuração na SMS API (legada), as mensagens recebidas e os comprovantes de entrega continuarão a usar a configuração da SMS API no Painel.
Configurações no nível da Account x Applications da Vonage
Depois de configurar sua conta para usar a Messages API, você precisa decidir como deseja definir as configurações da Messages API. Há duas maneiras de fazer isso:
- Configurações no nível da conta
- Um aplicativo da Vonage
As principais diferenças entre as duas estão no local onde os webhooks são configurados e nas credenciais utilizadas para autenticação (e, portanto, nos métodos de autenticação disponíveis). O uso da Messages API com configurações no nível da conta é mais semelhante, em termos de configuração, à forma como as configurações da SMS API são definidas. A tabela abaixo compara essas diferenças com mais detalhes.
| Área de decisão | SMS API (versão antiga) | Messages API (configurações no nível da conta) | Messages API (Aplicativo da Vonage) |
|---|---|---|---|
| Credenciais | Chave e segredo da API (ou segredo de assinatura) | Chave e segredo da API | ID do aplicativo e chave privada |
| Autenticação | Autenticação básica ou autenticação por assinatura | Autenticação básica | JWT assinado com a chave privada |
| Mensagens recebidas | URL do webhook de entrada no nível da Account, em “Configurações da API”, com uma substituição opcional de entrada por número na seção “Numbers” | URL do webhook de entrada no nível da Account nas Configurações da API | URL do webhook de entrada no nível do aplicativo no aplicativo da Vonage vinculado ao número |
| Callbacks de status1 | URL do webhook no nível da Account nas Configurações da API (intitulada “Comprovantes de entrega”) | URL do webhook no nível da Account nas Configurações da API | URL de status no nível do aplicativo |
| Versão da API2 | Tem apenas uma versão | Configuração da versão da Messages API no nível da conta | Configuração da versão da Messages API no nível do aplicativo |
| Configurações adicionais | Nenhum | Nenhum | Mídia de entrada segura |
| Número de configurações | Um (nível de Account) | Um (nível de Account) | Várias (cada aplicação da Vonage tem suas próprias configurações) |
- Tanto a SMS API quanto a Messages API também permitem substituir a URL do webhook DLR/Status configurada em cada solicitação.
- Recomendamos enfaticamente o uso da Messages API v1 para sua migração. Certifique-se de que o
Versionestá definido comov1nas configurações da sua conta ou em qualquer aplicativo da Vonage que você criar (dependendo da forma de configuração que você estiver usando). Essa é a configuração padrão para todas as novas contas da Vonage, mas pode ser definida comov0.1em accounts mais antigas, para garantir a compatibilidade com versões anteriores.
Em geral, recomendamos o uso dos Aplicativos da Vonage para sua integração com a Messages API, devido à maior flexibilidade que oferecem e ao uso de JWTs para autenticação. No entanto, como as configurações no nível da conta se assemelham mais à abordagem utilizada pela SMS API, talvez seja interessante considerar uma abordagem em duas etapas para sua migração: primeiro, migrar para as configurações no nível da conta e a autenticação básica para a Messages API e, só depois, passar a utilizar os Applications da Vonage.
O que é uma aplicação da Vonage?
Um aplicativo da Vonage pode ser um conceito novo para desenvolvedores que vêm da SMS API. Trata-se, essencialmente, de um contêiner para a configuração e as credenciais. Não é o mesmo que seu aplicativo de software.
Cada aplicação da Vonage contém:
- Um nome
- Um ID de aplicativo exclusivo
- Um par de chaves pública/privada gerado (usado para autenticação JWT)
- Configurações adicionais específicas do produto. Para a Messages API, isso inclui URLs de webhooks para mensagens recebidas e atualizações de status das mensagens
A SMS API não utiliza aplicativos. Os webhooks são configurados globalmente no nível da conta. Embora você ainda possa usar configurações no nível da conta com a Messages API, se assim desejar, ela também oferece suporte ao uso dos aplicativos da Vonage. Como cada aplicativo possui sua própria configuração e ajustes de webhook, isso facilita o gerenciamento independente de várias integrações.
Por que as Applications da Vonage são recomendadas?
A escolha da abordagem de configuração na Messages API afeta o local onde suas configurações são definidas e também o método de autenticação utilizado.
Os aplicativos da Vonage são recomendados porque:
- Como as configurações são definidas no nível do aplicativo da Vonage e é possível criar vários aplicativos, isso facilita o gerenciamento de múltiplas integrações para diferentes fluxos de trabalho ou casos de uso.
- Os aplicativos da Vonage podem ser criados e gerenciados programaticamente usando a CLI da Vonage ou a API de aplicativos
- Os aplicativos da Vonage permitem o uso de JWTs, gerados por meio de um par de chaves pública e privada, para autenticação. Isso adiciona uma camada extra de segurança ao processo de autenticação em comparação com a autenticação básica.
Como usar as configurações no nível da Account
Se você quiser usar configurações no nível da Account com os webhooks da Messages API, o fluxo básico de configuração é o seguinte:
- Abrir Configurações da API no Painel de controle.
- Defina o Versão da Messages API para
v1. - Configure as URLs dos webhooks de entrada e de status no nível da Account.
- Resenha Seus Numbers para quaisquer substituições de chamadas recebidas específicas por número que possam alterar o roteamento.
- Envie solicitações à Messages API usando a autenticação básica.
- Verifique se as mensagens recebidas e os retornos de chamada de status estão chegando aos endpoints esperados no nível da Account antes de redirecionar o tráfego de produção.
Utilização da Messages API do aplicativo Vonage
Se você deseja roteamento no nível do aplicativo e autenticação por JWT, o fluxo de configuração é o seguinte:
- Crie uma nova aplicação ou abra a aplicação existente que você deseja usar.
- Ativar o Mensagens capacidade.
- Configure as URLs de webhooks de entrada e de status das Applications.
- Defina o Versão da Messages API para
v1. - Vincule o número com capacidade para receber SMS a esse aplicativo.
- Envie solicitações à Messages API usando autenticação JWT.
- Verifique se as mensagens recebidas e os callbacks de status estão chegando aos endpoints no nível do aplicativo antes de redirecionar o tráfego de produção.
Criar uma aplicação da API da Vonage
Existem três métodos alternativos para criar um aplicativo de Mensagens:
- Como usar a CLI da Vonage
- Como usar o painel
- Como usar a API do aplicativo
Cada um desses métodos é descrito nas seções a seguir.
Como criar uma aplicação de mensagens usando a CLI da Vonage
Para criar seu aplicativo usando a CLI da Vonage, digite o seguinte comando no shell:
Este comando cria uma aplicação da API da Vonage com mensagens capacidade, e as URLs dos webhooks estão configuradas conforme especificado. Ele também gera um arquivo de chave privada my_messages_app.key e cria ou atualiza o vonage_app.json arquivo.
Guarde a chave privada gerada em um local seguro assim que o comando for concluído. A autenticação JWT para a Messages API depende dessa chave e, caso você a perca, não será possível baixar novamente a chave privada original.
Como criar um aplicativo de mensagens usando o painel de controle
Você pode criar um aplicativo de Mensagens no Painel de controle.
Para criar seu aplicativo usando o Painel:
-
Sob Applications No Painel, clique no Criar um novo aplicativo botão.
-
Sob Nome, digite o nome da Application. Escolha um nome que facilite a identificação futura.
-
Clique no botão Gerar chave pública e chave privada. Isso criará um par de chaves pública/privada, e a chave privada será baixada pelo seu navegador.
Guarde a chave privada baixada em um local seguro. A autenticação JWT para a Messages API depende dessa chave e, caso você a perca, não será possível baixar novamente a chave privada original.
-
Sob Recursos selecione o Mensagens botão.
-
No URL de origem na caixa, digite a URL do seu webhook de mensagens recebidas, por exemplo,
https://example.com/webhooks/inbound-message. -
No URL de status na caixa, digite a URL do seu webhook de status de mensagem, por exemplo,
https://example.com/webhooks/message-status. -
Clique no Criar um novo pedido botão. Agora você será direcionado para a próxima etapa do procedimento de criação do aplicativo, onde poderá vincular um número da API da Vonage ao aplicativo e vincular contas externas, como o Facebook, a esse aplicativo.
-
Se houver um account externo à qual você queira vincular este aplicativo, clique no External accounts linked aba e, em seguida, clique no botão correspondente Link botão correspondente à conta que você deseja vincular.
Você já criou seu aplicativo.
NOTA: Antes de testar seu aplicativo, certifique-se de que seus webhooks estejam configurados e que seu servidor de webhooks esteja em funcionamento.
Como criar um aplicativo de mensagens usando a API do aplicativo
A API de Aplicativos permite criar e configurar um aplicativo da Vonage programaticamente — sem usar o painel de controle nem a CLI. Um aplicativo da Vonage criado por meio da API de Aplicativos funciona da mesma forma que um criado pelo painel de controle.
Para obter uma visão geral completa sobre como criar uma aplicação da Vonage, consulte Criar uma aplicação da Vonage.
Como vincular um número de telefone ao seu aplicativo
No Painel, abra o Applications página, selecione o aplicativo que deseja usar e vincule o número a partir do Números de link aba.
Você também pode gerenciar as configurações de webhooks de entrada específicas para cada número a partir de Seus Numbers. O Painel indica que um webhook de entrada por número substitui o webhook de entrada no nível da conta. Se você estiver usando números que também estejam vinculados a uma Application de mensagens, verifique o roteamento resultante em sua conta antes de contar com esse comportamento de substituição.
Se um número não estiver vinculado a uma aplicação compatível com o recurso “Mensagens”, as mensagens SMS recebidas nesse número enviarão uma solicitação ao webhook de mensagens recebidas definido em nível da conta no Configurações da API configuração do painel, em vez da configuração do webhook “Mensagens” no nível do aplicativo.
Envio de SMS (mensagens de saída)
Ponto final
| Aspecto | Messages API | SMS API (versão antiga) |
|---|---|---|
| Ponto de extremidade de envio | POST /v1/messages |
POST /sms/json |
| Método | POST | POST |
| Tipo de conteúdo | application/json | application/x-www-form-urlencoded |
Estrutura da solicitação
Carga útil da Messages API:
{
"message_type": "text",
"text": "Hello from Vonage",
"to": "447700900000",
"from": "Vonage",
"channel": "sms"
}
Carga útil da SMS API (legada):
from=Vonage
text=Hello from Vonage
to=447700900000
Principais diferenças no corpo da solicitação
| Campo | Messages API | SMS API (versão antiga) |
|---|---|---|
to |
to |
to |
from |
from |
from |
text |
text |
text |
| Canal | "channel": "sms" (obrigatório) |
Implícito (somente SMS) |
| Tipo de mensagem | "message_type": "text" (obrigatório) |
Implícito |
Trechos de código
Os trechos de código a seguir incluem o exemplo do cURL e os exemplos disponíveis do SDK do servidor para cada API.
Trechos de código da Messages API
| Chave | Descrição |
|---|---|
VONAGE_APPLICATION_ID | The Vonage Application ID. |
VONAGE_PRIVATE_KEY | Private key for the Vonage Application. |
MESSAGES_TO_NUMBER | The number you are sending the to in E.164 format. For example |
SMS_SENDER_ID | The alphanumeric string that represents the name or number of the organization sending the message. |
Pré-requisitos
Se você não tiver um aplicativo, acesse criar um. Certifique-se também de acessar configure seus webhooks.
Escreva o código
Adicione o seguinte ao arquivo ` send-sms.sh`:
curl -X POST https://api.nexmo.com/v1/messages \
-H "Authorization: Bearer "$JWT\
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d $'{
"to": "'${MESSAGES_TO_NUMBER}'",
"from": "'${SMS_SENDER_ID}'",
"channel": "sms",
"message_type": "text",
"text": "This is an SMS sent using the Vonage Messages API."
}'
Execute seu código
Salve este arquivo no seu computador e execute-o:
Pré-requisitos
Se você não tiver um aplicativo, acesse criar um. Certifique-se também de acessar configure seus webhooks.
npm install @vonage/server-sdk @vonage/messagesCrie um arquivo chamado ` send-sms.js ` e insira o seguinte código:
const { Vonage } = require('@vonage/server-sdk');
const { Channels } = require('@vonage/messages');
/**
* 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} : {}),
},
);Escreva o código
Adicione o seguinte ao arquivo ` send-sms.js`:
vonage.messages.send({
messageType: 'sms',
channel: Channels.SMS,
text: 'This is an SMS text message sent using the Messages API',
to: MESSAGES_TO_NUMBER,
from: SMS_SENDER_ID,
})
.then(({ messageUUID }) => console.log(messageUUID))
.catch((error) => console.error(error));Execute seu código
Salve este arquivo no seu computador e execute-o:
Pré-requisitos
Se você não tiver um aplicativo, acesse criar um. Certifique-se também de acessar configure seus webhooks.
Adicione o seguinte ao arquivo ` build.gradle`:
implementation 'com.vonage:server-sdk-kotlin:2.1.1'Crie um arquivo chamado ` SendSmsText ` e adicione o código a seguir ao método ` main `:
val client = Vonage {
applicationId(VONAGE_APPLICATION_ID)
privateKeyPath(VONAGE_PRIVATE_KEY_PATH)
}Escreva o código
Adicione o seguinte ao método ` main ` do arquivo ` SendSmsText `:
val messageId = client.messages.send(
smsText {
to(MESSAGES_TO_NUMBER)
from(SMS_SENDER_ID)
text("This is an SMS text message sent using the Messages API")
}
)Execute seu código
Podemos usar o plugin “ aplicativo ” para o Gradle a fim de simplificar a execução do nosso aplicativo. Atualize seu arquivo ` build.gradle ` com o seguinte:
apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''Execute o seguinte comando ` gradle ` para rodar seu aplicativo, substituindo ` com.vonage.quickstart.kt.messages.sms ` pelo pacote que contém ` SendSmsText`:
Pré-requisitos
Se você não tiver um aplicativo, acesse criar um. Certifique-se também de acessar configure seus webhooks.
Adicione o seguinte ao arquivo ` build.gradle`:
implementation 'com.vonage:server-sdk:9.3.1'Crie um arquivo chamado ` SendSmsText ` e adicione o código a seguir ao método ` main `:
VonageClient client = VonageClient.builder()
.applicationId(VONAGE_APPLICATION_ID)
.privateKeyPath(VONAGE_PRIVATE_KEY_PATH)
.build();Escreva o código
Adicione o seguinte ao método ` main ` do arquivo ` SendSmsText `:
var response = client.getMessagesClient().sendMessage(
SmsTextRequest.builder()
.from(SMS_SENDER_ID).to(MESSAGES_TO_NUMBER)
.text("This is an SMS text message sent using the Messages API")
.build()
);
System.out.println("Message sent successfully. ID: " + response.getMessageUuid());Execute seu código
Podemos usar o plugin “ aplicativo ” para o Gradle a fim de simplificar a execução do nosso aplicativo. Atualize seu arquivo ` build.gradle ` com o seguinte:
apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''Execute o seguinte comando ` gradle ` para rodar seu aplicativo, substituindo ` com.vonage.quickstart.messages.sms ` pelo pacote que contém ` SendSmsText`:
Pré-requisitos
Se você não tiver um aplicativo, acesse criar um. Certifique-se também de acessar configure seus webhooks.
Install-Package VonageEscreva o código
Adicione o seguinte ao arquivo ` SendSms.cs`:
var credentials = Credentials.FromAppIdAndPrivateKeyPath(VONAGE_APP_ID, VONAGE_PRIVATE_KEY_PATH);
var vonageClient = new VonageClient(credentials);
var request = new Vonage.Messages.Sms.SmsRequest
{
To = MESSAGES_TO_NUMBER,
From = SMS_SENDER_ID,
Text = "An SMS sent using the Vonage Messages API"
};
var response = await vonageClient.MessagesClient.SendAsync(request);Pré-requisitos
Se você não tiver um aplicativo, acesse criar um. Certifique-se também de acessar configure seus webhooks.
composer require vonage/clientCrie um arquivo chamado ` send-sms.php ` e insira o seguinte código:
$keypair = new \Vonage\Client\Credentials\Keypair(
file_get_contents(VONAGE_APPLICATION_PRIVATE_KEY_PATH),
VONAGE_APPLICATION_ID
);
$client = new \Vonage\Client($keypair);Escreva o código
Adicione o seguinte ao arquivo ` send-sms.php`:
$sms = new \Vonage\Messages\Channel\SMS\SMSText(
TO_NUMBER,
FROM_NUMBER,
'This is an SMS sent using the Vonage PHP SDK'
);Execute seu código
Salve este arquivo no seu computador e execute-o:
Pré-requisitos
Se você não tiver um aplicativo, acesse criar um. Certifique-se também de acessar configure seus webhooks.
pip install vonage python-dotenvEscreva o código
Adicione o seguinte ao arquivo ` send-sms.py`:
from vonage import Auth, Vonage
from vonage_messages import Sms
client = Vonage(
Auth(
application_id=VONAGE_APPLICATION_ID,
private_key=VONAGE_PRIVATE_KEY,
)
)
response = client.messages.send(
Sms(
to=MESSAGES_TO_NUMBER,
from_=SMS_SENDER_ID,
text='This is an SMS sent using the Vonage Messages API.',
)
)
print(response)Execute seu código
Salve este arquivo no seu computador e execute-o:
Pré-requisitos
Se você não tiver um aplicativo, acesse criar um. Certifique-se também de acessar configure seus webhooks.
gem install vonageCrie um arquivo chamado ` send-sms.rb ` e insira o seguinte código:
client = Vonage::Client.new(
application_id: VONAGE_APPLICATION_ID,
private_key: VONAGE_PRIVATE_KEY
)Escreva o código
Adicione o seguinte ao arquivo ` send-sms.rb`:
message = client.messaging.sms(
message: "A SMS message sent using the Vonage Messages API"
)
client.messaging.send(
from: SMS_SENDER_ID,
to: MESSAGES_TO_NUMBER,
**message
)Execute seu código
Salve este arquivo no seu computador e execute-o:
Trechos de código da SMS API (versão antiga)
| Chave | Descrição |
|---|---|
VONAGE_API_KEY | Your Vonage API key (see it on |
VONAGE_API_SECRET | Your Vonage API secret (also available on |
SMS_TO_NUMBER | The phone number you are sending the message to. |
SMS_SENDER_ID | The alphanumeric string that represents the name or number of the organization sending the message. |
Escreva o código
Adicione o seguinte ao arquivo ` send-sms.sh`:
curl -X POST https://rest.nexmo.com/sms/json \
-u "$VONAGE_API_KEY:$VONAGE_API_SECRET" \
-d "from=${SMS_SENDER_ID}" \
-d "to=${SMS_TO_NUMBER}" \
-d 'text=A text message sent using the Vonage SMS API'
Execute seu código
Salve este arquivo no seu computador e execute-o:
Pré-requisitos
npm install @vonage/server-sdkCrie um arquivo chamado ` send.js ` e insira o seguinte código:
const { Vonage } = require('@vonage/server-sdk');
const vonage = new Vonage({
apiKey: VONAGE_API_KEY,
apiSecret: VONAGE_API_SECRET,
});Escreva o código
Adicione o seguinte ao arquivo ` send.js`:
vonage.sms.send({
to: SMS_TO_NUMBER,
from: SMS_SENDER_ID,
text: 'A text message sent using the Vonage SMS API',
})
.then((resp) => {
console.log('Message sent successfully');
console.log(resp);
})
.catch((err) => {
console.log('There was an error sending the messages.');
console.error(err);
});Execute seu código
Salve este arquivo no seu computador e execute-o:
Pré-requisitos
Adicione o seguinte ao arquivo ` build.gradle`:
implementation 'com.vonage:server-sdk-kotlin:2.1.1'Crie um arquivo chamado ` SendMessage ` e adicione o código a seguir ao método ` main `:
val client = Vonage {
apiKey(VONAGE_API_KEY)
apiSecret(VONAGE_API_SECRET)
}Escreva o código
Adicione o seguinte ao método ` main ` do arquivo ` SendMessage `:
val response = client.sms.sendText(
from = SMS_SENDER_ID,
to = SMS_TO_NUMBER,
message = "Hello from Vonage SMS API"
)
println(
if (response.wasSuccessfullySent())
"Message sent successfully."
else
"Message failed with error: ${response[0].errorText}"
)Execute seu código
Podemos usar o plugin “ aplicativo ” para o Gradle a fim de simplificar a execução do nosso aplicativo. Atualize seu arquivo ` build.gradle ` com o seguinte:
apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''Execute o seguinte comando ` gradle ` para rodar seu aplicativo, substituindo ` com.vonage.quickstart.kt.sms ` pelo pacote que contém ` SendMessage`:
Pré-requisitos
Adicione o seguinte ao arquivo ` build.gradle`:
implementation 'com.vonage:server-sdk:9.3.1'Crie um arquivo chamado ` SendMessage ` e adicione o código a seguir ao método ` main `:
VonageClient client = VonageClient.builder().apiKey(VONAGE_API_KEY).apiSecret(VONAGE_API_SECRET).build();Escreva o código
Adicione o seguinte ao método ` main ` do arquivo ` SendMessage `:
TextMessage message = new TextMessage(
SMS_SENDER_ID, SMS_TO_NUMBER,
"A text message sent using the Vonage SMS API"
);
SmsSubmissionResponse response = client.getSmsClient().submitMessage(message);
if (response.getMessages().get(0).getStatus() == MessageStatus.OK) {
System.out.println("Message sent successfully.");
} else {
System.out.println("Message failed with error: " + response.getMessages().get(0).getErrorText());
}Execute seu código
Podemos usar o plugin “ aplicativo ” para o Gradle a fim de simplificar a execução do nosso aplicativo. Atualize seu arquivo ` build.gradle ` com o seguinte:
apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''Execute o seguinte comando ` gradle ` para rodar seu aplicativo, substituindo ` com.vonage.quickstart.sms ` pelo pacote que contém ` SendMessage`:
Pré-requisitos
Install-Package VonageCrie um arquivo chamado ` SendSms.cs ` e insira o seguinte código:
using Vonage;
using Vonage.Request;Adicione o seguinte ao arquivo ` SendSms.cs`:
var credentials = Credentials.FromApiKeyAndSecret(
vonageApiKey,
vonageApiSecret
);
var vonageClient = new VonageClient(credentials);Escreva o código
Adicione o seguinte ao arquivo ` SendSms.cs`:
var response = await vonageClient.SmsClient.SendAnSmsAsync(new Vonage.Messaging.SendSmsRequest()
{
To = SMS_TO_NUMBER,
From = SMS_SENDER_ID,
Text = "A text message sent using the Vonage SMS API"
});
Console.WriteLine(response.Messages[0].To);Pré-requisitos
composer require vonage/clientCrie um arquivo chamado ` send-sms.php ` e insira o seguinte código:
$keypair = new \Vonage\Client\Credentials\Keypair(VONAGE_PRIVATE_KEY, VONAGE_APPLICATION_ID);
$client = new \Vonage\Client($keypair);Escreva o código
Adicione o seguinte ao arquivo ` send-sms.php`:
$response = $client->sms()->send(
new \Vonage\SMS\Message\SMS(TO_NUMBER, BRAND_NAME, 'A text message sent using the Vonage SMS API')
);
$message = $response->current();
if ($message->getStatus() == 0) {
echo "The message was sent successfully\n";
} else {
echo "The message failed with status: " . $message->getStatus() . "\n";
}Execute seu código
Salve este arquivo no seu computador e execute-o:
Pré-requisitos
pip install vonage python-dotenvEscreva o código
Adicione o seguinte ao arquivo ` send-an-sms.py`:
from vonage import Auth, Vonage
from vonage_sms import SmsMessage, SmsResponse
client = Vonage(Auth(api_key=VONAGE_API_KEY, api_secret=VONAGE_API_SECRET))
message = SmsMessage(
to=SMS_TO_NUMBER,
from_=SMS_SENDER_ID,
text="A text message sent using the Vonage SMS API.",
)
response: SmsResponse = client.sms.send(message)
print(response)Execute seu código
Salve este arquivo no seu computador e execute-o:
Pré-requisitos
gem install vonageCrie um arquivo chamado ` send.rb ` e insira o seguinte código:
client = Vonage::Client.new(
api_key: VONAGE_API_KEY,
api_secret: VONAGE_API_SECRET
)Escreva o código
Adicione o seguinte ao arquivo ` send.rb`:
client.sms.send(
from: SMS_SENDER_ID,
to: SMS_TO_NUMBER,
text: 'A text message sent using the Vonage SMS API'
)Execute seu código
Salve este arquivo no seu computador e execute-o:
Parâmetros opcionais e diferenças entre as versões
Depois que os campos obrigatórios do SMS forem migrados, a próxima etapa é verificar quaisquer parâmetros opcionais da SMS API dos quais sua integração dependa.
| Parâmetro ou aspecto da SMS API | Equivalente à Messages API | Notas |
|---|---|---|
ttl |
ttl |
Ambas as APIs suportam TTL, mas as unidades e os limites diferem. A SMS API utiliza milissegundos, com um intervalo de 20000 para 604800000. Messages API utiliza segundos com um intervalo de 20 para 604800. Ambos têm como valor padrão 72 horas. |
trusted-number |
trusted_recipient |
Mesmo objetivo: desativar as proteções do Fraud Defender caso a caso, por mensagem, para Accounts elegíveis. |
message-class |
Sem equivalente | Não há um equivalente na Messages API para SMS message-class. |
status-report-req |
Não há equivalente direto | A SMS API permite solicitar DLRs explicitamente. Os callbacks de status da Messages API são controlados pela configuração do webhook, e não por um valor booleano por mensagem. |
callback |
webhook_url |
Ambos substituem o destino padrão da chamada de retorno de status para cada mensagem individualmente. |
client-ref |
client_ref |
Ambas permitem que você insira sua própria referência para fins de correlação. |
entity-id |
sms.entity_id |
Mesmo objetivo regulatório; mudanças na nomenclatura, passando do uso de hífen para o uso de sublinhado. Aninhado no sms objeto. |
content-id |
sms.content_id |
Mesmo objetivo regulatório; mudanças na nomenclatura, passando do uso de hífen para o uso de sublinhado. Aninhado no sms objeto. |
pool-id |
sms.pool_id |
Comportamento idêntico do conjunto de números; as denominações passam a ser separadas por sublinhado em vez de hífen. Aninhado no sms objeto. |
account-ref |
Sem equivalente | O parâmetro de referência de cobrança/conta da SMS API não possui um equivalente direto na Messages API. |
type / controle de codificação |
sms.encoding_type com text, unicode, ou auto |
A SMS API utiliza type com text, unicode, ou binary. Por padrão, a Messages API detecta automaticamente a codificação. |
body, udh, protocol-id / campos binários de SMS |
Sem equivalente | A SMS API oferece suporte a SMS binárias por meio de type=binary juntamente com body, udh, e protocol-id. |
Códigos de resposta HTTP
Essa é uma das diferenças comportamentais mais significativas entre as duas APIs.
A SMS API sempre retorna um 200 Código de resposta HTTP, independentemente de ter sido bem-sucedida ou não, com um status parâmetro no corpo da resposta, cujo valor corresponde ao resultado.
A Messages API retorna um 202 código de resposta para solicitações bem-sucedidas, e 4xx ou 5xx códigos de respostas de erro.
Alguns exemplos são apresentados na tabela comparativa abaixo.
| Cenário | Messages API | SMS API (versão antiga) |
|---|---|---|
| Sucesso | Devoluções HTTP 202 Accepted em caso de sucesso. |
Sempre retorna HTTP 200. O status atual está no corpo da resposta ("status": "0" (para o sucesso). |
| Erro de autenticação | HTTP 401 Unauthorized |
HTTP 200 com o estado físico 4 (Invalid Credentials). |
| Parâmetros inválidos | HTTP 422 Unprocessable Entity |
HTTP 200 com o estado físico 2 (Missing Parameters) ou 3 (Invalid Parameters). |
Veja Erros da Messages API, Códigos de erro da SMS API, e o Ponto de extremidade de envio da SMS API para obter os detalhes completos do erro.
Resposta de sucesso da SMS API
{
"message-count": "1",
"messages": [
{
"to": "447700900000",
"message-id": "0A0000000123ABCD1",
"status": "0",
"remaining-balance": "3.14159265",
"message-price": "0.03330000",
"network": "23410"
}
]
}
Resposta de erro da SMS API
{
"message-count": "1",
"messages": [
{
"status": "4",
"error-text": "Bad Credentials"
}
]
}
Resposta de sucesso da Messages API
{
"message_uuid": "aaaaaaaa-bbbb-4ccc-8ddd-0123456789ab"
}
A Messages API retorna um único message_uuid em vez de uma matriz de objetos de mensagem. Use este UUID para correlacionar os callbacks de status.
Resposta de erro da Messages API (401 Não autorizado)
{
"type": "https://developer.vonage.com/api-errors#unauthorized",
"title": "Unauthorized",
"detail": "You did not provide correct credentials.",
"instance": "bf0ca0bf927b3b52e3cb03217e1a1ddf"
}
Recebimento de SMS (mensagens recebidas)
Ambas as APIs enviam mensagens SMS recebidas para uma URL de webhook que você configura. Existem algumas diferenças entre as duas APIs na estrutura da carga útil recebida e na nomenclatura dos parâmetros. A configuração do webhook é abordada em Configurando seu Account da Vonage para usar a Messages API.
Carga útil de entrada da SMS API
Quando uma mensagem é recebida na SMS API, a Vonage envia uma solicitação GET ou POST para a URL do webhook de entrada que você configurou.
Exemplo de carga útil:
{
"msisdn": "447700900001",
"to": "447700900000",
"messageId": "0A0000000123ABCD1",
"text": "Hello from a user",
"type": "text",
"keyword": "HELLO",
"message-timestamp": "2020-01-01 12:00:00"
}
Carga útil de entrada da Messages API
Quando uma mensagem é recebida na Messages API, a Vonage envia uma solicitação POST para a URL de entrada configurada no seu aplicativo.
Exemplo de carga útil:
{
"channel": "sms",
"message_uuid": "aaaaaaaa-bbbb-4ccc-8ddd-0123456789ab",
"to": "447700900000",
"from": "447700900001",
"timestamp": "2025-02-03T12:14:25Z",
"text": "Hello From Vonage!",
"sms": {
"num_messages": "2",
"keyword": "HELLO"
},
"usage": {
"currency": "EUR",
"price": "0.0333"
},
"origin": {
"network_code": "12345"
}
}
Acompanhamento do status da mensagem
A Messages API utiliza callbacks de status para notificar seu aplicativo quando o status de uma mensagem é alterado. Esses callbacks são o equivalente, na Messages API, aos recibos de entrega (DLRs) utilizados pela SMS API.
Equivalentes de status do DLR
Os equivalentes mais próximos na Messages API para os status DLR da SMS API são apresentados a seguir:
| Status do DLR da SMS API | Equivalente mais próximo da Messages API | Notas |
|---|---|---|
accepted |
submitted |
Ocorre quando a mensagem é encaminhada para um gateway de provedor. Esse é o evento cobrável. |
buffered |
Sem equivalente | Raramente utilizado na prática e não encaminhado. |
delivered |
delivered |
Indica o recebimento pelo dispositivo do usuário final, dependendo da compatibilidade da operadora. |
expired |
rejected |
Geralmente corresponde a um código de erro da Messages API 1360. |
failed |
rejected |
Indica falha do provedor ou erro de rede. |
unknown |
rejected |
Geralmente corresponde a um código de erro da Messages API 1330. |
rejected |
rejected |
Veja Códigos de erro da Messages API. |
Para obter mais informações, consulte Callbacks de status da Messages API.
Recursos adicionais da Messages API
Embora este guia se concentre na migração da sua integração de SMS, a Messages API oferece uma série de recursos adicionais que vale a pena explorar assim que a migração estiver concluída.
Mensagens multicanal
A Messages API oferece suporte a vários canais por meio de uma única interface de API consistente. Depois de migrar sua integração de SMS, você poderá adicionar novos canais sem alterar sua integração principal:
| Canal | Descrição |
|---|---|
| MMS | Envie conteúdo multimídia (imagens, áudio, vídeo) para números nos Estados Unidos e no Canadá. |
| RCS | Serviços de Comunicação Avançada — envie mensagens interativas com imagens, respostas sugeridas e botões de ação para dispositivos Android e iOS. |
| Envie e receba mensagens no WhatsApp usando um account comercial verificado. | |
| Facebook Messenger | Interaja com os clientes no Messenger. |
| Viber | Envie mensagens por meio das Mensagens de Serviço do Viber. |
| Envie e-mails transacionais usando a mesma API unificada que você já utiliza para outros canais de comunicação. |
A estrutura da solicitação é consistente em todos os canais. Para enviar uma mensagem em um canal diferente, basta alterar o campo “canal” e adicionar quaisquer parâmetros específicos do canal. Seu manipulador de webhook para retornos de chamada de status e mensagens recebidas funciona da mesma maneira, independentemente do canal.
Failover
A Messages API oferece suporte a fluxos de trabalho de failover, que permitem que você tente novamente enviar uma mensagem em um canal diferente caso a primeira tentativa seja rejeitada. Por exemplo, você pode enviar uma mensagem pelo WhatsApp e, caso ela seja rejeitada (por exemplo, porque o destinatário não tem o WhatsApp), recorrer ao SMS.
Atualmente, o failover é acionado apenas quando uma mensagem é rejected.
Veja Failover da Messages API para mais informações.
Conteúdo rico
Nos canais compatíveis (RCS, WhatsApp, MMS, Messenger, Viber), a Messages API permite enviar:
- Imagens, vídeos, áudio e anexos
- Modelos de mensagens interativas
- Botões de resposta sugeridos e botões de ação (RCS, WhatsApp)
- Cartões e carrosséis enriquecidos (RCS)