Enviar mensagem
Detalhes do funcionamento para envio de mensagens SMS
A partir deste serviço você poderá enviar mensagens individuais ou em massa.
Envio Individual
GET https://api-v3.smsfire.com.br/sms/send/individual
A partir de parâmetros utilizado em querystring é possível realizar o envio imediato ou agendado de uma mensagem ao destinatário.
Rate Limiter: Este serviço possui um limite global de 60 requisições por minuto a partir do mesmo IP.
Parâmetros de requisição
to*
string Min. 8 Caracteres Máx. 20 Caracteres
Telefone do destinatário em formato internacional E.164
5511944556677
text*
string Min. 3 Caracteres Máx. 765 Caracteres
Texto da mensagem
Hi welcome
from
string Min. 3 Caracteres Máx. 11 Caracteres
Remetente da mensagem
smsfire
customId
string Máx. 40 caracteres
Id personalizado da mensagem
abc-123-qwrt
scheduleTimezone
string Padrão: UTC
Fuso horário a ser considerado ao agendar o envio de uma mensagem
America/Sao_Paulo
scheduleTime
string | Date Formato ISO8601
Data e hora em fuso UTC para o agendamento da mensagem
2025-09-10T10:00:00Z
Atenção: Parâmetros marcados e destacados com * são de utilização obrigatória
Exemplos de requisição
var axios = require("axios").default;
var options = {
method: 'GET',
url: 'https://api-v3.smsfire.com.br/sms/send/individual',
params: {
scheduleTime: '2025-09-10T10:00:00Z',
scheduleTimezone: 'America/Sao_Paulo'
from: '28149',
to: '5511944556677',
text: 'hello'
},
headers: {Username: 'seu_usuario', Api_Token: 'seu_token'}
};
axios.request(options).then(function (response) {
console.log(response.data);
}).catch(function (error) {
console.error(error);
});<?php
$endpoint = "https://api-v3.smsfire.com.br/sms/send/individual";
$params = [
"scheduleTime" => "2025-09-10T10:00:00Z",
"scheduleTimezone" => "America/Sao_Paulo",
"from" => "28149",
"to" => "5511944556677",
"text" => "hello",
];
$url = $endpoint . "?" . http_build_query($params);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Api_Token: seu_token",
"Username: seu_usuario",
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
using System.Net.Http;
using Microsoft.AspNetCore.WebUtilities; // precisa do pacote Microsoft.AspNetCore.WebUtilities
var client = new HttpClient();
var baseUrl = "https://api-v3.smsfire.com.br/sms/send/individual";
// parâmetros dinâmicos
var queryParams = new Dictionary<string, string>
{
["scheduleTime"] = "2025-09-10T10:00:00Z",
["scheduleTimezone"] = "America/Sao_Paulo",
["from"] = "28149",
["to"] = "5511944556677",
["text"] = "hello"
};
// monta a URL final com os parâmetros
var requestUrl = QueryHelpers.AddQueryString(baseUrl, queryParams);
var request = new HttpRequestMessage
{
Method = HttpMethod.Get,
RequestUri = new Uri(requestUrl),
Headers =
{
{ "Api_Token", "seu_token" },
{ "Username", "seu_usuario" }
}
};
using var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
curl --request GET \
--url 'https://api-v3.smsfire.com.br/sms/send/individual?scheduleTime=2025-09-10T10%3A00%3A00Z&from=28149&to=5511944556677&text=hello' \
--header 'Api_Token: seu_token' \
--header 'Username: seu_usuario'Response
O conjunto de dados retornados será em formato JSON com detalhes do envio ou possível falha da requisição
Envio imediato
{
"id": "6eda82f8-3aba-45e0-a5d3-18c3a72f78b3",
"customId":"abc-123-xyz",
"statusCode": 0,
"statusName": "ENROUTE"
}Envio agendado
{
"id": "7c7d9ff2-7fd4-4861-bcd3-2e010952aca4",
"customId":"abc-123-xyz",
"statusCode": 6,
"statusName": "SCHEDULED",
"scheduleTime": "2025-09-10T10:00:00.000Z"
}O valor retornado em scheduleTime é correspondente a data em fuso UTC que ficou agendada em nosso sistema.
Erros poderão ser facilmente filtrados a partir dos códigos HTTP retornados e adicionalmente detalhes do erro serão incluidos no JSON que seguirá o seguinte formato:
{
"message": "Not Available Balance",
"error": "Forbidden",
"statusCode": 403
}Requisições que tenham o retorno de algum código HTTP deste nível é devido a falhas internas da API ou servidor.
Neste tipo de situação, entre em contato com a equipe de suporte
id
string Padrão UUID V4
Identificador único da mensagem
customId
string
Identificador personalizado utilizado na mensagem
statusCode
number
Código de status da mensagem
statusName
string
Nome do status da mensagem
scheduleTime
string | Date Formato ISO8601
Data e hora do agendamento da mensagem no sistema em fuso UTC
Envio em massa
POST https://api-v3.smsfire.com.br/sms/send/bulk
A partir do body é possível configurar o envio de múltiplas mensagens a um ou mais países de destino na mesma requisição.
Rate Limiter: Este serviço possui um limite global de 30 requisições por minuto a partir do mesmo IP.
Parâmetros de requisição
messages*
array Máx. 100 itens
Matriz com a relação de mensagens e suas respectivas definições
N/A
messages[].to*
string Min. 8 Caracteres Máx. 20 Caracteres
Telefone do destinatário em formato internacional E.164
5511944556677
messages[].text*
string Min. 3 Caracteres Máx. 765 Caracteres
Texto da mensagem
Hi welcome
messages[].from
string Min. 3 Caracteres Máx. 11 Caracteres
Remetente da mensagem
smsfire
messages[].customId
string Máx. 40 caracteres
Id personalizado da mensagem
abc-123-qwrt
messages[].scheduleTimezone
string Padrão: UTC
Fuso horário a ser considerado ao agendar o envio de uma mensagem
America/Sao_Paulo
messages[].scheduleTime
string | Date Formato ISO8601
Data e hora em fuso UTC para o agendamento da mensagem
2025-09-10T10:00:00Z
Atenção: Parâmetros marcados e destacados com * são de utilização obrigatória
Exemplos de requisição
import axios from "axios";
const options = {
method: 'POST',
url: 'https://api-v3.smsfire.com.br/sms/send/bulk',
headers: {
Username: 'seu_usuario',
Api_Token: 'seu_token',
'Content-Type': 'application/json'
},
data: {
messages: [
{
from: '28149', to: '5511944556677', text: 'Ola Brasil'
},
{
from: '1800934', to: '18005553697', text: 'Hi USA'
}
]
}
};
axios.request(options).then(function (response) {
console.log(response.data);
}).catch(function (error) {
console.error(error);
});<?php
$endpoint = "https://api-v3.smsfire.com.br/sms/send/bulk";
$payload = [
"messages" => [
[
"from" => "28149",
"to" => "5511944556677",
"text" => "Ola Brasil"
],
[
"from" => "1800934",
"to" => "18005553697",
"text" => "Hi USA"
]
]
];
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $endpoint,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode($payload),
CURLOPT_HTTPHEADER => [
"Api_Token: seu_token",
"Username: seu_usuario",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
using System.Net.Http;
using System.Text;
using System.Text.Json;
var client = new HttpClient();
var endpoint = "https://api-v3.smsfire.com.br/sms/send/bulk";
// corpo da requisição
var payload = new
{
messages = new[]
{
new { from = "28149", to = "5511944556677", text = "Ola Brasil" },
new { from = "1800934", to = "18005553697", text = "Hi USA" }
}
};
// serializa o objeto em JSON
var json = JsonSerializer.Serialize(payload);
var request = new HttpRequestMessage
{
Method = HttpMethod.Post,
RequestUri = new Uri(endpoint),
Content = new StringContent(json, Encoding.UTF8, "application/json"),
Headers =
{
{ "Api_Token", "seu_token" },
{ "Username", "seu_usuario" }
}
};
using var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
curl --request POST \
--url https://api-v3.smsfire.com.br/sms/send/bulk \
--header 'Api_Token: seu_token' \
--header 'Content-Type: application/json' \
--header 'Username: seu_usuario' \
--data '{
"messages":[
{
"from":"28149",
"to":"5511944556677",
"text":"Ola Brasil"
},
{
"from":"1800934",
"to":"18005553697",
"text":"Hi USA"
}
]
}'Todos os dados devem ser enviados em JSON. Por isso é imprescindível o envio do cabeçalho Content-Type com o valor application/json em todas as suas requisições.
Response
O conjunto de dados retornados será em formato JSON com detalhes do envio ou possível falha da requisição
Envio imediato
{
"messages": [
{
"id": "8b412996-bbc8-4174-b079-4617fe0e2e6e",
"customId":"abc-123-xyz",
"statusCode": 0,
"statusName": "ENROUTE"
},
{
"id": "50ae7497-9c92-4211-a311-7536bb07301c",
"customId":"abc-123-xyz",
"statusCode": 0,
"statusName": "ENROUTE"
}
]
}Envio agendado
{
"messages": [
{
"id": "8b412996-bbc8-4174-b079-4617fe0e2e6e",
"customId":"abc-123-xyz",
"statusCode": 0,
"statusName": "ENROUTE"
},
{
"id": "50ae7497-9c92-4211-a311-7536bb07301c",
"statusCode": 6,
"statusName": "SCHEDULED",
"scheduleTime": "2025-09-10T10:00:00.000Z"
}
]
}O valor retornado em scheduleTime é correspondente a data em fuso UTC que ficou agendada em nosso sistema.
Erros poderão ser facilmente filtrados a partir dos códigos HTTP retornados e adicionalmente detalhes do erro serão incluidos no JSON que seguirá o seguinte formato:
{
"message": "Not Available Balance",
"error": "Forbidden",
"statusCode": 403
}Requisições que tenham o retorno de algum código HTTP deste nível é devido a falhas internas da API ou servidor.
Neste tipo de situação, entre em contato com a equipe de suporte
id
string Padrão UUID V4
Identificador único da mensagem
customId
string
Identificador personalizado utilizado na mensagem
statusCode
number
Código de status da mensagem
statusName
string
Nome do status da mensagem
scheduleTime
string | Date Formato ISO8601
Data e hora do agendamento da mensagem no sistema em fuso UTC
Last updated