SMSintegrus API v1

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.

HeaderValor
x-canalSlug do canal, ex.: andcare
AuthorizationBearer <chave>
A chave é gerada no painel admin (Acesso → Chaves de API) e exibida uma única vez. Pode ser revogada a qualquer momento. Nunca a exponha no frontend.

Downloads

Importe a coleção e comece a testar em segundos.

POST/api/messages

Enviar mensagem

Enfileira um SMS. Retorna 201 com o uuid e o status inicial.

Body

CampoTipoDescrição
phone obrig.stringNúmero internacional, ex.: +5521981735100
message obrig.stringTexto (até 1600 chars; >160 vira multipart)
Inclua um código #XXXX no texto (ex.: #AND) para correlacionar a resposta do destinatário a este envio.
Nome do remetente: se o canal tem um prefixo configurado no painel (ex.: AndCare), ele é antecedido automaticamente — o destinatário recebe AndCare - sua mensagem. Considere no limite de caracteres.

Requisição

curl Node PHP Python
copiar
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

json copiar
{
  "uuid": "cbc2001c-2d71-4dd1-ab37-3d5bef1c38e9",
  "status": "queued"
}
GET/api/messages

Listar envios

Lista paginada dos envios do canal.

Query params

ParamDescrição
statusqueued · sent · failed (opcional)
per_pagePadrão 50, máx 200
pagePágina
curl copiar
curl "https://sms.integr.us/api/messages?status=sent&per_page=20" \
  -H "x-canal: andcare" \
  -H "Authorization: Bearer sk_sua_chave_aqui"
resposta 200
{
  "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 }
}
GET/api/messages/{uuid}

Status de um envio

Consulta o status de um envio específico pelo uuid retornado no envio.

curl copiar
curl https://sms.integr.us/api/messages/cbc2001c-2d71-4dd1-ab37-3d5bef1c38e9 \
  -H "x-canal: andcare" \
  -H "Authorization: Bearer sk_sua_chave_aqui"
GET/api/inbounds

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.

resposta 200 copiar
{
  "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

queued

Na fila, aguardando o aparelho puxar.

sent

Entregue ao subsistema de telefonia do aparelho.

failed

O envio falhou — veja o campo error.

Erros

HTTPQuando
401Sem x-canal/Bearer, canal inativo, chave inválida ou revogada
404uuid inexistente para o canal
422Validação (phone/message ausentes ou inválidos)