SMSintegrus
Envie SMS e leia as respostas dos destinatários a partir do seu sistema, com autenticação por canal. Server-to-server, JSON, simples.
Base URL
https://sms.integr.us/api
Fluxo
Você POST uma mensagem → o aparelho-gateway dispara o SMS → você consulta o status e lê as respostas.
Autenticação
Toda requisição precisa de dois cabeçalhos: x-canal (slug do canal, identifica a origem) e Authorization com a chave do canal.
| Header | Valor |
|---|---|
x-canal | Slug do canal, ex.: andcare |
Authorization | Bearer <chave> |
Downloads
Importe a coleção e comece a testar em segundos.
Enviar mensagem
Enfileira um SMS. Retorna 201 com o uuid e o status inicial.
Body
| Campo | Tipo | Descrição |
|---|---|---|
phone obrig. | string | Número internacional, ex.: +5521981735100 |
message obrig. | string | Texto (até 1600 chars; >160 vira multipart) |
#XXXX no texto (ex.: #AND) para correlacionar a resposta do destinatário a este envio.AndCare), ele é antecedido automaticamente — o destinatário recebe AndCare - sua mensagem. Considere no limite de caracteres.Requisição
curl -X POST https://sms.integr.us/api/messages \
-H "x-canal: andcare" \
-H "Authorization: Bearer sk_sua_chave_aqui" \
-H "Content-Type: application/json" \
-d '{
"phone": "+5521981735100",
"message": "Olá! Sua oferta AndCare. Responda #AND."
}'const res = await fetch("https://sms.integr.us/api/messages", {
method: "POST",
headers: {
"x-canal": "andcare",
"Authorization": "Bearer sk_sua_chave_aqui",
"Content-Type": "application/json",
},
body: JSON.stringify({ phone: "+5521981735100", message: "Olá #AND" }),
});
const data = await res.json(); // { uuid, status }$ch = curl_init("https://sms.integr.us/api/messages");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
"x-canal: andcare",
"Authorization: Bearer sk_sua_chave_aqui",
"Content-Type: application/json",
],
CURLOPT_POSTFIELDS => json_encode([
"phone" => "+5521981735100",
"message" => "Olá #AND",
]),
]);
$data = json_decode(curl_exec($ch), true);import requests
r = requests.post(
"https://sms.integr.us/api/messages",
headers={
"x-canal": "andcare",
"Authorization": "Bearer sk_sua_chave_aqui",
},
json={"phone": "+5521981735100", "message": "Olá #AND"},
)
print(r.json()) # {'uuid': ..., 'status': 'queued'}Resposta 201
{
"uuid": "cbc2001c-2d71-4dd1-ab37-3d5bef1c38e9",
"status": "queued"
}Listar envios
Lista paginada dos envios do canal.
Query params
| Param | Descrição |
|---|---|
status | queued · sent · failed (opcional) |
per_page | Padrão 50, máx 200 |
page | Página |
curl "https://sms.integr.us/api/messages?status=sent&per_page=20" \
-H "x-canal: andcare" \
-H "Authorization: Bearer sk_sua_chave_aqui"{
"data": [
{
"uuid": "cbc2001c-...",
"phone": "+5521981735100",
"body": "Olá! ... #AND",
"code": "AND",
"status": "sent",
"error": null,
"sent_at": "2026-06-24T17:52:38Z",
"created_at": "2026-06-24T17:52:30Z"
}
],
"meta": { "current_page": 1, "last_page": 1, "per_page": 20, "total": 1 }
}Status de um envio
Consulta o status de um envio específico pelo uuid retornado no envio.
curl https://sms.integr.us/api/messages/cbc2001c-2d71-4dd1-ab37-3d5bef1c38e9 \
-H "x-canal: andcare" \
-H "Authorization: Bearer sk_sua_chave_aqui"Respostas (inbound)
Respostas dos destinatários, correlacionadas ao disparo original — por código #XXXX ou pelo último envio ao número. Cada item traz message_uuid apontando ao envio.
{
"data": [
{
"uuid": "0f126f6d-...",
"from": "+5521981735100",
"message": "Sim quero #AND",
"code": "AND",
"message_uuid": "cbc2001c-2d71-4dd1-ab37-3d5bef1c38e9",
"received_at": "2026-06-24T18:10:02Z"
}
],
"meta": { "current_page": 1, "last_page": 1, "per_page": 50, "total": 1 }
}Ciclo de status
Na fila, aguardando o aparelho puxar.
Entregue ao subsistema de telefonia do aparelho.
O envio falhou — veja o campo error.
Erros
| HTTP | Quando |
|---|---|
401 | Sem x-canal/Bearer, canal inativo, chave inválida ou revogada |
404 | uuid inexistente para o canal |
422 | Validação (phone/message ausentes ou inválidos) |