Dispare SMS via API de maneira simplificada!
API HTTPS
POST
https://apihttp.disparopro.com.br:8433/mt
cURL
curl -X POST -H "Authorization: Bearer e372cab8ac49517b2b1a1748538ab5636c39a65a"
-H "Content-Type: application/json" -d '[
{
"numero": "5511999887744",
"servico": "short",
"mensagem": "Texto da mensagem",
"parceiro_id": "5034e65a0c",
"codificacao": "0"
}
]' "https://apihttp.disparopro.com.br:8433/mt"
PHP
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://apihttp.disparopro.com.br:8433/mt",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "[
{
\"numero\": \"5511999887744\",
\"servico\": \"short\",
\"mensagem\": \"Texto da mensagem\",
\"parceiro_id\": \"5034e65a0c\",
\"codificacao\": \"0\"
}
]",
CURLOPT_HTTPHEADER => [
"authorization: Bearer e372cab8ac49517b2b1a1748538ab5636c39a65a",
"content-type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
Ruby
require 'uri'
require 'net/http'
url = URI("https://apihttp.disparopro.com.br:8433/mt")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Post.new(url)
request["authorization"] = 'Bearer e372cab8ac49517b2b1a1748538ab5636c39a65a'
request["content-type"] = 'application/json'
request.body = "[
{
\"numero\": \"5511999887744\",
\"servico\": \"short\",
\"mensagem\": \"Texto da mensagem\",
\"parceiro_id\": \"5034e65a0c\",
\"codificacao\": \"0\"
}
]"
response = http.request(request)
puts response.read_body
Java
OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "[
{
\"numero\": \"5511999887744\",
\"servico\": \"short\",
\"mensagem\": \"Texto da mensagem\",
\"parceiro_id\": \"5034e65a0c\",
\"codificacao\": \"0\"
}
]");
Request request = new Request.Builder()
.url("https://apihttp.disparopro.com.br:8433/mt")
.post(body)
.addHeader("authorization", "Bearer e372cab8ac49517b2b1a1748538ab5636c39a65a")
.addHeader("content-type", "application/json")
.build();
Response response = client.newCall(request).execute();
NodeJS
var unirest = require("unirest");
var req = unirest("POST", "https://apihttp.disparopro.com.br:8433/mt");
req.headers({
"content-type": "application/json",
"authorization": "Bearer e372cab8ac49517b2b1a1748538ab5636c39a65a"
});
req.type("json");
req.send([
{
"numero": "5511999887744",
"servico": "short",
"mensagem": "Texto da mensagem",
"parceiro_id": "5034e65a0c",
"codificacao": "0"
}
]);
req.end(function (res) {
if (res.error) throw new Error(res.error);
console.log(res.body);
});
C#
var client = new RestClient("https://apihttp.disparopro.com.br:8433/mt");
var request = new RestRequest(Method.POST);
request.AddHeader("content-type", "application/json");
request.AddHeader("authorization", "Bearer e372cab8ac49517b2b1a1748538ab5636c39a65a");
request.AddParameter("application/json", "[
{
\"numero\": \"5511999887744\",
\"servico\": \"short\",
\"mensagem\": \"Texto da mensagem\",
\"parceiro_id\": \"5034e65a0c\",
\"codificacao\": \"0\"
}
]", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Cabeçalho
{
"Authorization": "Bearer e372cab8ac49517b2b1a1748538ab5636c39a65a",
"Content-Type": "application/json"
}
Parâmetros
Campo | Tipo | Descrição |
---|---|---|
usuario | string | Usuário da API HTTP Não Segura (Obrigatório, ex: 5c45b8e1c4e51). |
senha | string | Senha da API HTTP Não Segura (Obrigatório, ex: 5c5b5e14). |
numero | string | Número da mensagem (Obrigatório, ex: 5511988663344). |
servico | string | Serviço da mensagem obrigatório [] |
parceiro_id | string | Id externo para uso do parceiro (Não obrigatório, máximo 100 caracteres) |
mensagem | string | Texto da mensagem obrigatório (Máximo 1377 caracteres, 9 PDUs para 7-BIT e 20 PDUs para 16-BIT). |
codificacao | string | Codificação da mensagem (Não obrigatório, 0 para 7-bits e 8 para 16-bits). |
Parâmetros
Codificação | Tipo | Descrição |
---|---|---|
0 | 7-bits | Neste formato de envio, um PDU pode ter no máximo 160 caracteres como mensagem simples: sem acentuação, caracteres especiais ou emojis. Ao ultrapassar o limite de caracteres, sua mensagem será equivalente a 2 disparos e o limite diminuirá para 153, assim, você pode atingir um limite máximo de 1377 caracteres (9 PDUs). Caso isso aconteça, a cada 153 caracteres na mesma mensagem, o valor de um disparo será acrescentado. O contratante fica ciente que mensagens mais longas significam mais custo devido a concatenação desses PDUs.Veja aqui os caracteres permitidos neste formato de envio |
8 | 16-bits | No formato de 16 bits você consegue enviar mensagens personalizadas com um limite de 70 caracteres: com acentuação e emojis . O processo de concatenação e cobrança é o mesmo, ao ultrapassar o limite de caracteres, automaticamente, o limite diminuirá para 67 dentro da mesma mensagem disparada. Neste caso, o contratante fica ciente que mensagens mais longas significam mais custo devido a concatenação desses PDUs. Veja aqui os caracteres permitidos neste formato de envio. O tamanho máximo de caracteres que o sistema suporta para esse tipo de codificação é 1340 caracteres, totalizando 20 PDUs. Veja aqui os caracteres permitidos neste formato de envio |
Exemplo
Envio Unitário [Object]
{
"numero": "5511999887744",
"servico": "short",
"mensagem": "Texto da mensagem",
"parceiro_id": "5034e65a0c",
"codificacao": "0"
}
Envio Unitário [Array]
[
{
"numero": "5511999887744",
"servico": "short",
"mensagem": "Texto da mensagem",
"parceiro_id": "5034e65a0c",
"codificacao": "0"
}
]
Múltiplos envios
[
{
"numero": "5511999887744",
"servico": "short",
"mensagem": "Texto da mensagem",
"parceiro_id": "5034e65a0c",
"codificacao": "0"
},
{
"numero": "5511999887744",
"servico": "short",
"mensagem": "Texto da mensagem",
"parceiro_id": "5034e65a0c",
"codificacao": "0"
}
]
Status das Mensagens
"ACCEPTED" => "Aguardando"
"UNKNOWN" => "Falhada"
"PAYREQUIRED" => "Sem Saldo"
Sucesso [Object]
"Inserido com Sucesso"
HTTP/1.1 200 OK
{
"type": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html",
"title": "OK",
"status": 200,
"detail": {
"id": "v4d4ah3khm12ryi",
"numero": "5511988663344",
"status": "ACCEPTED",
"parceiro_id": "5034e65a0c",
"codigo_status": "02",
"codigo_detalhe": "000",
"descricao_detalhe": "Message Sent"
}
}
"Número Inválido"
HTTP/1.1 200 OK
{
"type": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html",
"title": "OK",
"status": 200,
"detail": {
"id": null,
"numero": "5511988663344",
"status": "UNKNOWN",
"parceiro_id": "5034e65a0c",
"codigo_status": "04",
"codigo_detalhe": "190",
"descricao_detalhe": "Unknown error"
}
}
Sucesso [Array]
"Inserido com Sucesso"
HTTP/1.1 200 OK
{
"type": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html",
"title": "OK",
"status": 200,
"detail": [
{
"id": "v4d4ah3khm12ryi",
"numero": "5511988663344",
"status": "ACCEPTED",
"parceiro_id": "5034e65a0c",
"codigo_status": "02",
"codigo_detalhe": "000",
"descricao_detalhe": "Message Sent"
}
]
"detail": [
{
"id": "v4d4ah3khm12ryi",
"numero": "5511988663344",
"status": "ACCEPTED",
"parceiro_id": "5034e65a0c",
"codigo_status": "02",
"codigo_detalhe": "000",
"descricao_detalhe": "Message Sent"
}
]
}
"Número Inválido"
HTTP/1.1 200 OK
{
"type": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html",
"title": "OK",
"status": 200,
"detail": [
{
"id": null,
"numero": "5511988663344",
"status": "UNKNOWN",
"parceiro_id": "5034e65a0c",
"codigo_status": "04",
"codigo_detalhe": "190",
"descricao_detalhe": "Unknown error"
}
]
}
Erro
HTTP/1.1 400 Bad Request
{
"type": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html",
"title": "Bad Request",
"status": 400,
"detail": "Mensagem de erro"
}
HTTP/1.1 500 Internal Server Error
{
"type": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html",
"title": "Internal Server Error",
"status": 500,
"detail": "Mensagem de erro"
}
GET MT
GET
https://apihttp.disparopro.com.br:8433/mt
cURL
curl -X POST -H "Authorization: Bearer e372cab8ac49517b2b1a1748538ab5636c39a65a" "https://apihttp.disparopro.com.br:8433/mt"
PHP
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://apihttp.disparopro.com.br:8433/mt",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"authorization: Bearer e372cab8ac49517b2b1a1748538ab5636c39a65a",
"content-type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
Ruby
require 'uri'
require 'net/http'
url = URI("https://apihttp.disparopro.com.br:8433/mt")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Get.new(url)
request["authorization"] = 'Bearer e372cab8ac49517b2b1a1748538ab5636c39a65a'
request["content-type"] = 'application/json'
response = http.request(request)
puts response.read_body
Java
OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
Request request = new Request.Builder()
.url("https://apihttp.disparopro.com.br:8433/mt")
.get()
.addHeader("authorization", "Bearer e372cab8ac49517b2b1a1748538ab5636c39a65a")
.addHeader("content-type", "application/json")
.build();
Response response = client.newCall(request).execute();
NodeJS
var unirest = require("unirest");
var req = unirest("GET", "https://apihttp.disparopro.com.br:8433/mt");
req.headers({
"content-type": "application/json",
"authorization": "Bearer e372cab8ac49517b2b1a1748538ab5636c39a65a"
});
req.end(function (res) {
if (res.error) throw new Error(res.error);
console.log(res.body);
});
C#
var client = new RestClient("https://apihttp.disparopro.com.br:8433/mt");
var request = new RestRequest(Method.GET);
request.AddHeader("content-type", "application/json");
request.AddHeader("authorization", "Bearer e372cab8ac49517b2b1a1748538ab5636c39a65a");
IRestResponse response = client.Execute(request);
Cabeçalho
{
"Authorization": "Bearer e372cab8ac49517b2b1a1748538ab5636c39a65a",
"Content-Type": "application/json"
}
Parâmetros
Campo | Tipo | Descrição |
---|---|---|
numero | string | Número da Mensagem (ex: 5511988663344). |
servico | string | Serviço da Mensagem [] |
codigo | string | ID da Mensagem |
data | string | Data em que a mensagem foi enviada (ex: dd/mm/YYYY) |
Exemplo URL
https://apihttp.disparopro.com.br:8433/mt
https://apihttp.disparopro.com.br:8433/mt?codigo=v4d4ah3khm12ryi
https://apihttp.disparopro.com.br:8433/mt?codigo=v4d4ah3khm12ryi&numero=5511988663344
https://apihttp.disparopro.com.br:8433/mt?codigo=v4d4ah3khm12ryi&numero=5511988663344&data=01/01/2020
https://apihttp.disparopro.com.br:8433/mt?codigo=v4d4ah3khm12ryi&numero=5511988663344&data=01/01/2020&servico=short
Consultar por vários valores
https://apihttp.disparopro.com.br:8433/mt?codigo=v4d4ah3khm12ryi,v4d4ah3khm12ryj
https://apihttp.disparopro.com.br:8433/mt?numero=5511988663344,5511988663345
https://apihttp.disparopro.com.br:8433/mt?servico=
Sucesso
"Consultado com Sucesso"
HTTP/1.1 200 OK
{
"type": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html",
"title": "OK",
"status": 200,
"detail": [
{
"id": "v4d4ah3khm12ryi",
"status": "DELIVERED",
"codigo_status": "03",
"codigo_detalhe": "120",
"descricao_detalhe": "Message received by mobile",
"destino": "5511988663344",
"parceiro_id": null,
"data_insercao": "01/01/2020 13:19:20",
"data_atualizacao": "01/01/2020 13:19:24"
}
]
}
"Requisição Inválida"
HTTP/1.1 200 OK
{
"type": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html",
"title": "OK",
"status": 200,
"detail": []
}
HTTP/1.1 200 OK
{
"type": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html",
"title": "OK",
"status": 200,
"detail": "Mensagem de erro"
}
Erro
HTTP/1.1 400 Bad Request
{
"type": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html",
"title": "Bad Request",
"status": 400,
"detail": "Mensagem de erro"
}
HTTP/1.1 500 Internal Server Error
{
"type": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html",
"title": "Internal Server Error",
"status": 500,
"detail": "Mensagem de erro"
}
GET MO
GET
https://apihttp.disparopro.com.br:8433/mo
cURL
curl -X POST -H "Authorization: Bearer e372cab8ac49517b2b1a1748538ab5636c39a65a" "https://apihttp.disparopro.com.br:8433/mo"
PHP
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://apihttp.disparopro.com.br:8433/mo",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"authorization: Bearer e372cab8ac49517b2b1a1748538ab5636c39a65a",
"content-type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
Ruby
require 'uri'
require 'net/http'
url = URI("https://apihttp.disparopro.com.br:8433/mo")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Get.new(url)
request["authorization"] = 'Bearer e372cab8ac49517b2b1a1748538ab5636c39a65a'
request["content-type"] = 'application/json'
response = http.request(request)
puts response.read_body
Java
OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
Request request = new Request.Builder()
.url("https://apihttp.disparopro.com.br:8433/mo")
.get()
.addHeader("authorization", "Bearer e372cab8ac49517b2b1a1748538ab5636c39a65a")
.addHeader("content-type", "application/json")
.build();
Response response = client.newCall(request).execute();
NodeJS
var unirest = require("unirest");
var req = unirest("GET", "https://apihttp.disparopro.com.br:8433/mo");
req.headers({
"content-type": "application/json",
"authorization": "Bearer e372cab8ac49517b2b1a1748538ab5636c39a65a"
});
req.end(function (res) {
if (res.error) throw new Error(res.error);
console.log(res.body);
});
C#
var client = new RestClient("https://apihttp.disparopro.com.br:8433/mo");
var request = new RestRequest(Method.GET);
request.AddHeader("content-type", "application/json");
request.AddHeader("authorization", "Bearer e372cab8ac49517b2b1a1748538ab5636c39a65a");
IRestResponse response = client.Execute(request);
Cabeçalho
{
"Authorization": "Bearer e372cab8ac49517b2b1a1748538ab5636c39a65a",
"Content-Type": "application/json"
}
Parâmetros
Campo | Tipo | Descrição |
---|---|---|
numero | string | Número da Mensagem (ex: 5511988663344). |
servico | string | Serviço da Mensagem [] |
codigo | string | ID da Mensagem |
data | string | Data em que a mensagem foi enviada (ex: dd/mm/YYYY) |
Exemplo URL
https://apihttp.disparopro.com.br:8433/mo
https://apihttp.disparopro.com.br:8433/mo?codigo=v4d4ah3khm12ryi
https://apihttp.disparopro.com.br:8433/mo?codigo=v4d4ah3khm12ryi&numero=5511988663344
https://apihttp.disparopro.com.br:8433/mo?codigo=v4d4ah3khm12ryi&numero=5511988663344&data=01/01/2020
https://apihttp.disparopro.com.br:8433/mo?codigo=v4d4ah3khm12ryi&numero=5511988663344&data=01/01/2020&servico=short
Consultar por vários valores
https://apihttp.disparopro.com.br:8433/mt?codigo=v4d4ah3khm12ryi,v4d4ah3khm12ryj
https://apihttp.disparopro.com.br:8433/mt?numero=5511988663344,5511988663345
https://apihttp.disparopro.com.br:8433/mt?servico=
Sucesso
"Consultado com Sucesso"
HTTP/1.1 200 OK
{
"type": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html",
"title": "OK",
"status": 200,
"detail": [
{
"id": "v4d4ah3khm12ryi",
"origem": "5511988663344",
"resposta": "Mensagem",
"parceiro_id": "",
"data_recebimento": "01/01/2020 13:19:36"
}
]
}
"Requisição Inválida"
HTTP/1.1 200 OK
{
"type": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html",
"title": "OK",
"status": 200,
"detail": []
}
HTTP/1.1 200 OK
{
"type": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html",
"title": "OK",
"status": 200,
"detail": "Mensagem de erro"
}
Erro
HTTP/1.1 400 Bad Request
{
"type": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html",
"title": "Bad Request",
"status": 400,
"detail": "Mensagem de erro"
}
HTTP/1.1 500 Internal Server Error
{
"type": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html",
"title": "Internal Server Error",
"status": 500,
"detail": "Mensagem de erro"
}
Consultar Saldo
GET
https://apihttp.disparopro.com.br:8433/balance
cURL
curl -X GET -H "Authorization: Bearer e372cab8ac49517b2b1a1748538ab5636c39a65a" "https://apihttp.disparopro.com.br:8433/balance"
PHP
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://apihttp.disparopro.com.br:8433/balance",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_POSTFIELDS => "",
CURLOPT_HTTPHEADER => array(
"authorization: Bearer e372cab8ac49517b2b1a1748538ab5636c39a65a"
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
Ruby
require 'uri'
require 'net/http'
url = URI("https://apihttp.disparopro.com.br:8433/balance")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Get.new(url)
request["authorization"] = 'Bearer e372cab8ac49517b2b1a1748538ab5636c39a65a'
response = http.request(request)
puts response.read_body
Java
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://apihttp.disparopro.com.br:8433/balance")
.get()
.addHeader("authorization", "Bearer e372cab8ac49517b2b1a1748538ab5636c39a65a")
.build();
Response response = client.newCall(request).execute();
NodeJS
var unirest = require("unirest");
var req = unirest("GET", "https://apihttp.disparopro.com.br:8433/balance");
req.headers({
"authorization": "Bearer e372cab8ac49517b2b1a1748538ab5636c39a65a"
});
req.end(function (res) {
if (res.error) throw new Error(res.error);
console.log(res.body);
});
C#
var client = new RestClient("https://apihttp.disparopro.com.br:8433/balance");
var request = new RestRequest(Method.GET);
request.AddHeader("authorization", "Bearer e372cab8ac49517b2b1a1748538ab5636c39a65a");
IRestResponse response = client.Execute(request);
Cabeçalho
{
"Authorization": "Bearer e372cab8ac49517b2b1a1748538ab5636c39a65a"
}
Sucesso
HTTP/1.1 200 OK
{
"type": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html",
"title": "OK",
"status": 200,
"detail": {
"saldo": "50,35"
}
}
Erro
HTTP/1.1 400 Bad Request
{
"type": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html",
"title": "Bad Request",
"status": 400,
"detail": "Mensagem de erro"
}
HTTP/1.1 500 Internal Server Error
{
"type": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html",
"title": "Internal Server Error",
"status": 500,
"detail": "Mensagem de erro"
}
SMPP
Observações
- Para usar o serviço SMPP, é necessário habilitá-lo na tela de API, aba SMPP, Habilitar SMPP, após a habilitação do serviço, aguarde 1 minuto e pode abrir uma conexão.
- Após habilitar o serviço SMPP, em caso de não utilização, tendo passado 10 dias, o serviço será desabilitado automaticamente, necessitando de uma nova habilitação para uso.
- Mensagens com até 160 caracteres devem ser passadas no PDU com o parâmetro short_message, já as mensagens com mais de 160, deve-se passar o parâmetro message_payload.
- Para envio de SMS com mais de 160 caracteres por meio de algum programa, deve-se utilizar o formato In message_payload (TLV Field).
- O tipo do serviço deve ser passado como ” no source_addr.
Conexões disponíveis
Exemplo de PDU para BIND e ENQUIRE LINK
PDU {
"system_id" : "SEU USUÁRIO SMPP",
"password" : "SUA SENHA SMPP"
}
Exemplo de PDU para SUBMIT SM com envio de SMS até 160 caracteres
PDU {
"data_coding" : "0",
"source_addr" : "short",
"short_message" : "Mensagem com até 160 caracteres",
"destination_addr" : "5511999887744"
}
Exemplo de PDU para SUBMIT SM com envio de SMS entre 161 e 1377 caracteres
PDU {
"data_coding" : "0",
"source_addr" : "short",
"message_payload" : "Mensagem com mais de 160 caracteres",
"destination_addr" : "5511999887744"
}
Código Error
Código | Descrição |
---|---|
000 | Message Sent |
002 | Message successfully canceled |
010 | Empty message content |
011 | Message body invalid |
012 | Message content overflow |
013 | Incorrect or incomplete 'to' mobile number |
014 | Empty 'to' mobile number |
015 | Scheduling date invalid or incorrect |
016 | ID overflow |
017 | Parameter 'url' is invalid or incorrect |
018 | Field 'from' invalid |
021 | 'id' fieldismandatory |
080 | Message with same ID already sent |
100 | Message Queued |
110 | Message sent to operator |
111 | Message confirmation unavailable |
120 | Message received by mobile |
130 | Message blocked |
131 | Message blocked by predictive cleansing |
132 | Message already canceled |
133 | Message content in analysis |
134 | Message blocked by forbidden content |
135 | Aggregate is Invalid or Inactive |
136 | Message expired |
140 | Mobile number not covered |
141 | International sending not allowed |
145 | Inactive mobile number |
150 | Message expired in operator |
160 | Operator network error |
161 | Message rejected by operator |
162 | Message cancelled or blocked by operator |
170 | Bad message |
171 | Bad number |
172 | Missing parameter |
180 | Message ID notfound |
190 | Unknown error |
200 | Messages Sent |
210 | Messages scheduled but Account Limit Reached |
240 | File empty or not sent |
241 | File too large |
242 | File readerror |
300 | Received messages found |
301 | No received messages found |
400 | Entity saved |
900 | Authentication error |
901 | Account type not support this operation. |
990 | Account Limit Reached – Please contact support |
998 | Wrong operation requested |
999 | Unknown Error |
Detalhe de erros
Código Status
Código | Descrição |
---|---|
02 | ACCEPTED |
02 | SENT |
03 | DELIVERED |
04 | UNKNOWN |
04 | EXPIRED |
04 | UNDELIVERABLE |
06 | BLACKLIST |
10 | DELETED |
10 | REJECTED |
Código Detalhe
Código | Descrição |
---|---|
000 | Message Sent |
002 | Message successfully canceled |
010 | Empty message content |
011 | Message body invalid |
012 | Message content overflow |
013 | Incorrect or incomplete 'to' mobile number |
014 | Empty 'to' mobile number |
015 | Scheduling date invalid or incorrect |
016 | ID overflow |
017 | Parameter 'url' is invalid or incorrect |
018 | Field 'from' invalid |
021 | 'id' fieldismandatory |
080 | Message with same ID already sent |
100 | Message Queued |
110 | Message sent to operator |
111 | Message confirmation unavailable |
120 | Message received by mobile |
130 | Message blocked |
131 | Message blocked by predictive cleansing |
132 | Message already canceled |
133 | Message content in analysis |
134 | Message blocked by forbidden content |
135 | Aggregate is Invalid or Inactive |
136 | Message expired |
140 | Mobile number not covered |
141 | International sending not allowed |
145 | Inactive mobile number |
150 | Message expired in operator |
160 | Operator network error |
161 | Message rejected by operator |
162 | Message cancelled or blocked by operator |
170 | Bad message |
171 | Bad number |
172 | Missing parameter |
180 | Message ID notfound |
190 | Unknown error |
200 | Messages Sent |
210 | Messages scheduled but Account Limit Reached |
240 | File empty or not sent |
241 | File too large |
242 | File readerror |
300 | Received messages found |
301 | No received messages found |
400 | Entity saved |
900 | Authentication error |
901 | Account type not support this operation. |
990 | Account Limit Reached – Please contact support |
998 | Wrong operation requested |
999 | Unknown Error |
Webhooks
Ação DLR
As informações referente a DLR do SMS serão enviadas através de uma requisição HTTP POST para a URL cadastrada no sistema com o conteúdo no formato application/json (JSON).
Parâmetros
Campo | Tipo | Descrição |
---|---|---|
action | string | Ação que foi cadastrada para gerar o Webhook (dlr) |
object | string | Objeto relacionado à ação registrada para gerar o Webhook |
data | json | Posição do JSON que contém os dados do SMS |
after | array | Referência ao conteúdo atualizado depois de alguma ação no sistema. |
id | integer | Código de referência do SMS |
sms_cus_id | integer | Código de referência do cliente |
sms_acc_id | integer | Código de referência da conta |
sms_use_id | integer | Código de Referência do Usuário |
sms_operator | string | Operadora do número de destino |
status | string | Status recebido do destino |
codigo_status | string | Código Status |
codigo_detalhe | string | Código do Detalhe |
descricao_detalhe | string | Descrição do Detalhe |
destino | string | Número de destino |
parceiro_id | string | Id externo para uso do parceiro |
data_insercao | string | Data que o SMS foi inserido |
data_atualizacao | string | Data que o SMS foi atualizado |
created | string | Data de criação do Webhook |
Exemplo conteúdo enviado
{
"object": "sms",
"action": "dlr",
"data": {
"after": [
{
"id": 1,
"sms_cus_id": 0,
"sms_acc_id": 0,
"sms_use_id": 0,
"sms_operator": "VIVO",
"status": "DELIVERED",
"codigo_status": "03",
"codigo_detalhe": "120",
"descricao_detalhe": "Message received by mobile",
"destino": "5511988663344",
"parceiro_id": "5034e65a0c",
"data_insercao": "01/01/2019 12:00:00",
"data_atualizacao": "01/01/2019 12:00:30"
}
]
},
"created": "01/01/2019 12:00:31"
}
Status Retornados
'SENT' => Enviado para a operadora;
'UNKNOWN' => Falhado pela operadora;
'EXPIRED' => Expirado pela operadora;
'DELETED' => Deletado pela operadora;
'REJECTED' => Rejeitado pela operadora;
'BLACKLIST' => Número da Blacklist;
'DELIVERED' => Entregue pela operadora;
'PAYREQUIRED' => Sem Saldo;
'UNDELIVERABLE' => Não Entregável pela operadora;
Código Status
Código | Descrição |
---|---|
02 | ACCEPTED |
02 | SENT |
03 | DELIVERED |
04 | UNKNOWN |
04 | EXPIRED |
04 | UNDELIVERABLE |
06 | BLACKLIST |
10 | DELETED |
10 | REJECTED |
Código Detalhe
Código | Descrição |
---|---|
000 | Message Sent |
002 | Message successfully canceled |
010 | Empty message content |
011 | Message body invalid |
012 | Message content overflow |
013 | Incorrect or incomplete 'to' mobile number |
014 | Empty 'to' mobile number |
015 | Scheduling date invalid or incorrect |
016 | ID overflow |
017 | Parameter 'url' is invalid or incorrect |
018 | Field 'from' invalid |
021 | 'id' fieldismandatory |
080 | Message with same ID already sent |
100 | Message Queued |
110 | Message sent to operator |
111 | Message confirmation unavailable |
120 | Message received by mobile |
130 | Message blocked |
131 | Message blocked by predictive cleansing |
132 | Message already canceled |
133 | Message content in analysis |
134 | Message blocked by forbidden content |
135 | Aggregate is Invalid or Inactive |
136 | Message expired |
140 | Mobile number not covered |
141 | International sending not allowed |
145 | Inactive mobile number |
150 | Message expired in operator |
160 | Operator network error |
161 | Message rejected by operator |
162 | Message cancelled or blocked by operator |
170 | Bad message |
171 | Bad number |
172 | Missing parameter |
180 | Message ID notfound |
190 | Unknown error |
200 | Messages Sent |
210 | Messages scheduled but Account Limit Reached |
240 | File empty or not sent |
241 | File too large |
242 | File readerror |
300 | Received messages found |
301 | No received messages found |
400 | Entity saved |
900 | Authentication error |
901 | Account type not support this operation. |
990 | Account Limit Reached – Please contact support |
998 | Wrong operation requested |
999 | Unknown Error |
Ação MO
As informações referente a MO do SMS serão enviadas através de uma requisição HTTP POST para a URL cadastrada no sistema com o conteúdo no formato application/json (JSON)
Parâmetros
Campo | Tipo | Descrição |
---|---|---|
action | string | Ação que foi cadastrada para gerar o Webhook (mo) |
object | string | Objeto relacionado à ação registrada para gerar o Webhook |
data | json | Posição do JSON que contém os dados do SMS |
after | array | Referência ao conteúdo atualizado depois de alguma ação no sistema. |
id | integer | Código de referência do SMS |
sms_cus_id | integer | Código de referência do cliente |
sms_acc_id | integer | Código de referência da conta |
sms_use_id | integer | Código de Referência do Usuário |
origem | string | Número que respondeu o SMS |
origem_id | string | Número de identificação que respondeu por SMS |
resposta | string | Reposta recebida referente ao número |
parceiro_id | string | Id externo para uso do parceiro |
data_recebimento | string | Data em que a resposta foi recebida |
created | string | Data de criação do Webhook |
Exemplo conteúdo enviado
{
"object": "sms",
"action": "mo",
"data": {
"after": [
{
"id": 1,
"sms_cus_id": 0,
"sms_acc_id": 0,
"sms_use_id": 0,
"origem": "5511988663344",
"origem_id": 1,
"resposta": "WEBHOOK",
"parceiro_id": "5034e65a0c",
"data_recebimento": "01/01/2019 12:01:00"
}
]
},
"created": "01/01/2019 12:01:01"
}