ara enviar um SMS via código, faça um POST HTTPS para https://api.broadnet.me/sms/sendSms com um cabeçalho Authorization: Bearer e um corpo JSON contendo senderId, destinationNumber, a mensagem e messageType. Uma chamada bem-sucedida devolve HTTP 200 com o ID da mensagem no corpo da resposta; o resultado da entrega chega posteriormente como um relatório de entrega (DLR) no seu webhook. Cada linguagem abaixo utiliza apenas a sua biblioteca HTTP padrão; a única SDK oficial é para TypeScript e Node.js.
Principais conclusões
- Endpoint: POST https://api.broadnet.me/sms/sendSms, corpo JSON, token Bearer.
- Campos obrigatórios: senderId, destinationNumber (formato internacional sem o sinal de mais), mensagem, messageType (TEXT).
- Resposta: 200 com o ID da mensagem; guarde-o para conciliar com os relatórios de entrega.
- Erros: um token ausente ou inválido recebe um 401 do gateway; erros API devolvem status, error, message, errorCode e requestUri.
- Um SDK oficial: @broadnet/cpaas-sdk para TypeScript/Node.js; gere clientes para outras linguagens a partir da especificação OpenAPI.
O que você precisa antes de enviar?
- Um token de acesso da sua conta BroadNet, mantido numa variável de ambiente (BROADNET_TOKEN abaixo), nunca no código-fonte ou numa aplicação móvel.
- Um ID do remetente permitido para o país de destino; alguns países exigem registo prévio.
- Um número de destino no formato internacional, por exemplo, 447700900123 (um número fictício do Reino Unido).
O acesso de teste é fornecido pelos nossos engenheiros: solicite-o e você receberá as credenciais de teste em até um dia útil, e a primeira mensagem de teste geralmente é enviada cerca de cinco minutos depois. O quickstart orienta você sobre o processo.
Como é a requisição?
Aqui está a requisição com cURL. Todos os exemplos abaixo enviam o mesmo corpo JSON.
curl -X POST https://api.broadnet.me/sms/sendSms \ -H "Authorization: Bearer $BROADNET_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "senderId": "BroadNet", "destinationNumber": "447700900123", "message": "Your verification code is 482913", "messageType": "TEXT" }' # 200 OK → response body is the message ID, e.g. 2603121407537573731Como enviar um SMS com Python?
Com a biblioteca requests, o argumento json= define o cabeçalho Content-Type para você.
import os, requests r = requests.post( "https://api.broadnet.me/sms/sendSms", headers={"Authorization": f"Bearer {os.environ['BROADNET_TOKEN']}"}, json={ "senderId": "BroadNet", "destinationNumber": "447700900123", "message": "Your verification code is 482913", "messageType": "TEXT", },) print(r.status_code, r.text) # message IDComo enviar um SMS com PHP?
A extensão curl do PHP é suficiente; não é necessário nenhum pacote.
<?php$ch = curl_init("https://api.broadnet.me/sms/sendSms");curl_setopt_array($ch, [ CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [ "Authorization: Bearer " . getenv("BROADNET_TOKEN"), "Content-Type: application/json", ], CURLOPT_POSTFIELDS => json_encode([ "senderId" => "BroadNet", "destinationNumber" => "447700900123", "message" => "Your verification code is 482913", "messageType" => "TEXT", ]),]); $messageId = curl_exec($ch);echo $messageId;Como enviar um SMS com Node.js?
O Node.js 18 e versões posteriores possuem o fetch integrado:
// Node.js 18+ (fetch)const res = await fetch("https://api.broadnet.me/sms/sendSms", { method: "POST", headers: { Authorization: `Bearer ${process.env.BROADNET_TOKEN}`, "Content-Type": "application/json", }, body: JSON.stringify({ senderId: "BroadNet", destinationNumber: "447700900123", message: "Your verification code is 482913", messageType: "TEXT", }),}); console.log(await res.text()); // message IDOu use o SDK oficial TypeScript/Node.js, @broadnet/cpaas-sdk:
// npm install @broadnet/cpaas-sdk axiosimport { Configuration, SMSSMSApi } from "@broadnet/cpaas-sdk"; const sms = new SMSSMSApi( new Configuration({ basePath: "https://api.broadnet.me", accessToken: process.env.BROADNET_TOKEN!, }),); const res = await sms.smsSendsmsPost({ sMSSmsRequest: { senderId: "BroadNet", destinationNumber: "447700900123", message: "Your verification code is 482913", messageType: "TEXT", },}); console.log(res.data); // message IDComo enviar um SMS com Java?
O Java 11 e versões posteriores incluem java.net.http.HttpClient:
// Java 11+ — java.net.http is built in, nothing to installimport java.net.URI;import java.net.http.HttpClient;import java.net.http.HttpRequest;import java.net.http.HttpResponse; public class SendSms { public static void main(String[] args) throws Exception { String json = "{" + "\"senderId\": \"BroadNet\", " + "\"destinationNumber\": \"447700900123\", " + "\"message\": \"Your verification code is 482913\", " + "\"messageType\": \"TEXT\"" + "}"; HttpRequest req = HttpRequest.newBuilder(URI.create("https://api.broadnet.me/sms/sendSms")) .header("Authorization", "Bearer " + System.getenv("BROADNET_TOKEN")) .header("Content-Type", "application/json") .POST(HttpRequest.BodyPublishers.ofString(json)) .build(); HttpResponse<String> res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); System.out.println(res.statusCode() + " " + res.body()); // 200 + message ID }}Como enviar um SMS com Go?
package main import ( "bytes" "fmt" "io" "net/http" "os") func main() { body := []byte(`{ "senderId": "BroadNet", "destinationNumber": "447700900123", "message": "Your verification code is 482913", "messageType": "TEXT" }`) req, err := http.NewRequest(http.MethodPost, "https://api.broadnet.me/sms/sendSms", bytes.NewReader(body)) if err != nil { panic(err) } req.Header.Set("Authorization", "Bearer "+os.Getenv("BROADNET_TOKEN")) req.Header.Set("Content-Type", "application/json") res, err := http.DefaultClient.Do(req) if err != nil { panic(err) } defer res.Body.Close() id, _ := io.ReadAll(res.Body) fmt.Println(res.StatusCode, string(id)) // 200 + message ID}Como enviar um SMS com C# e .NET?
O .NET 6 e versões posteriores não precisam de pacote NuGet: HttpClient e System.Net.Http.Json já são integrados.
// .NET 6+ console app (Program.cs) — HttpClient is built in, no NuGet packageusing System;using System.Net.Http;using System.Net.Http.Headers;using System.Net.Http.Json; using var http = new HttpClient();http.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue( "Bearer", Environment.GetEnvironmentVariable("BROADNET_TOKEN")); // PostAsJsonAsync sends Content-Type: application/jsonvar res = await http.PostAsJsonAsync("https://api.broadnet.me/sms/sendSms", new{ senderId = "BroadNet", destinationNumber = "447700900123", message = "Your verification code is 482913", messageType = "TEXT",}); var id = await res.Content.ReadAsStringAsync();Console.WriteLine($"{(int)res.StatusCode} {id}"); // 200 + message IDO que é devolvido e como tratar erros?
| Resposta | Significado | O que fazer |
|---|---|---|
| 200 + ID de mensagem | Aceito para entrega | Armazene o ID com o seu próprio registo; aguarde o DLR |
| 400 | Erro de validação ou campo ausente | Corrija a requisição; não tente novamente sem alterações |
| 401 | Token Bearer ausente ou inválido | Verifique o token e o cabeçalho Authorization |
| 500 | Erro inesperado no servidor | Tente novamente com backoff; verifique o status da mensagem antes de reenviar |
Um código 200 significa que a plataforma aceitou a mensagem, não que o dispositivo a recebeu. A entrega é informada pelo relatório de entrega; veja o que é um DLR e relatórios de entrega SMS e códigos de erro. O API não possui cabeçalho de idempotência, portanto, guarde o ID da mensagem devolvida e verifique o status antes de reenviar para evitar duplicatas. A página de códigos de erro lista os demais.
Como deixá-lo pronto para produção?
- Mantenha o token no lado do servidor. Nunca chame o API SMS de um navegador ou aplicação móvel, onde o token pode ser extraído; em vez disso, chame o seu próprio backend.
- Envie mensagens longas com consciência: o GSM-7 comporta 160 caracteres por SMS, Unicode (UCS-2) 70, e textos mais longos são divididos em segmentos faturados. Veja o limite de caracteres SMS.
- Coloque envios em massa em fila e respeite o throughput da sua conta; leia sobre limites de taxa.
- Receba relatórios de entrega via webhook e armazene o status final.
- Valide os números no formato internacional primeiro; consulte a validação de número de telefone E.164.
Para volumes muito altos ou uma infraestrutura de telecomunicações já existente, SMPP pode ser mais adequado que REST; veja SMPP vs REST. A plataforma da BroadNet processa 30.000 SMS por segundo por nó.
Perguntas frequentes
Qual é a maneira mais simples de enviar um SMS via código?
Um POST HTTPS para um SMS API com um token de acesso e um corpo JSON. Com BroadNet, trata-se de um POST https://api.broadnet.me/sms/sendSms com senderId, destinationNumber, a mensagem e messageType.
Existe um BroadNet SDK para Python, PHP ou Java?
Não. Existe um SDK @broadnet/cpaas-sdk oficial para TypeScript e Node.js. Outras linguagens chamam a REST API diretamente, como mostrado aqui, ou geram um cliente a partir da especificação OpenAPI.
Em qual formato o número de telefone deve estar?
Formato internacional com o código do país, sem o sinal de mais ou espaços, por exemplo: 447700900123.
Uma resposta 200 significa que o SMS foi entregue?
Não. Isso significa que a mensagem foi aceita. O relatório de entrega (DLR) informa se ela chegou ao dispositivo.
Posso enviar SMS diretamente de um app Android ou iOS?
Não com segurança. Coloque a chamada API no seu servidor para que o token de acesso nunca seja enviado dentro do app, e faça com que o app chame o seu servidor.
Onde encontro a referência completa da API?
Na referência API e na especificação OpenAPI.
Os exemplos de código são os que estão nas nossas páginas para desenvolvedores, verificados de acordo com a especificação OpenAPI publicada. Revisado em 28 de setembro de 2026. Consulte nossos padrões editoriais.
