GTI SMS API v3
API v3 · ativa

Documentação da API GTI SMS

A API REST da GTI SMS permite envio de SMS em massa, transacional e OTP, consulta de status (DLR) e gestão de créditos. Base: https://sms.gtisms.com/api/v3. Autenticação via Bearer token. Retornos sempre em JSON.

Recursos principais

  • Enviar SMS — POST /sms/send para um ou múltiplos números separados por vírgula.
  • Enviar para grupo — POST /sms/campaign para um grupo de contatos cadastrado.
  • Status / DLR — GET /sms/{uid} consulta o status atual de uma mensagem.
  • Status por período — GET /sms lista SMS enviados em um intervalo.
  • Saldo de créditos — GET /balance retorna créditos restantes e data de expiração.

Quickstart

  1. Obtenha seu token em sms.gtisms.com/developers.
  2. Configure os headers em todas as requisições:
    Authorization: Bearer SEU_TOKEN
    Content-Type: application/json
    Accept: application/json
  3. Faça o primeiro envio chamando POST /sms/send com os campos recipient e message.

Formato de resposta

Toda resposta da API retorna um JSON com a seguinte estrutura:

{
  "status": "success",
  "message": "Sua mensagem foi enviada com sucesso!",
  "data": {
    "...": "payload específico do endpoint"
  }
}

O campo status é sempre "success" ou "error". Em caso de erro, data é omitido e message traz a descrição do problema.

Regras de mensagem

A mensagem deve ter até 160 caracteres e não pode conter emojis, acentos ou outros caracteres especiais. Caracteres fora do padrão GSM-7 podem causar falha no envio.

Autenticação

A API GTI SMS usa autenticação do tipo Bearer. O token é informado na página sms.gtisms.com/developers.

Headers obrigatórios

Inclua estes headers em todas as chamadas:

Authorization: Bearer SEU_TOKEN
Content-Type: application/json
Accept: application/json
Nunca exponha seu token no front-end. Faça as chamadas a partir do seu backend. Em caso de vazamento, gere um novo token no painel.

Como obter o token

  1. Acesse sms.gtisms.com/developers com sua conta GTI SMS.
  2. Gere ou copie o token de acesso disponível na página.
  3. Use o token no header Authorization no formato Bearer SEU_TOKEN.

Erros e respostas

Toda chamada à API retorna um JSON com o campo status indicando success ou error. Em caso de erro, o campo message traz a descrição detalhada do problema.

Resposta de sucesso

{
  "status": "success",
  "message": "Sua mensagem foi enviada com sucesso!",
  "data": {
    "...": "payload do endpoint"
  }
}

Resposta de erro

{
  "status": "error",
  "message": "Mensagem de erro detalhada"
}

Status possíveis de uma mensagem

ValorDescrição
DeliveredEntregue ao destinatário.
SentEnviado à operadora, aguardando confirmação.
PendingEm processamento pela GTI SMS.
FailedFalha no envio. Verifique a mensagem de erro.
RejectedRejeitado pela operadora (número inválido, bloqueado, etc.).
ExpiredTempo de validade expirou antes da entrega.

Causas comuns de erro

  • Token inválido ou ausente: verifique o header Authorization: Bearer SEU_TOKEN.
  • Sem créditos: consulte o saldo em GET /balance.
  • Número inválido: formato internacional, sem espaços. Ex.: 5511988887777.
  • Mensagem com caracteres inválidos: emojis, acentos e caracteres especiais não são aceitos.
  • Mensagem muito longa: o limite é de 160 caracteres.

Endpoints

Enviar SMS

Envia uma mensagem SMS para um ou mais destinatários. Para enviar a múltiplos números, separe-os por vírgula no campo recipient.

POST
sms.gtisms.com/api/v3/sms/send
Body parameters
recipient string
obrigatório
Número de destino contendo código do país, DDD e número. Ex.: 5511988887777. Para múltiplos destinatários, separe por vírgula: 5511988887777,5511988886666,5511988885555.
message string
obrigatório
Texto da mensagem com até 160 caracteres. Não utilizar emojis, acentos ou caracteres especiais.
Headers obrigatórios
Authorization string
obrigatório
Token de acesso no formato Bearer {seu_token}.
Accept string
obrigatório
application/json
Content-Type string
obrigatório
application/json
Resposta de erro

Em caso de falha, a API responde com status: "error" e uma mensagem detalhada:

{
  "status": "error",
  "message": "Mensagem de erro detalhada"
}
curl -X POST "https://sms.gtisms.com/api/v3/sms/send" \
  -H "Authorization: Bearer SEU_TOKEN_AQUI" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{
  "recipient": "5511988887777",
  "message": "Aqui vai o texto da mensagem"
}'
Resposta 200
{
  "status": "success",
  "message": "Sua mensagem foi enviada com sucesso!",
  "data": {
    "id": 20165,
    "uid": "69a956ca027eb",
    "to": "5511988887777",
    "from": null,
    "message": "Aqui vai o texto da mensagem",
    "status": "Delivered",
    "cost": 1,
    "sms_count": 1,
    "media_url": null
  }
}

Enviar SMS para grupo de contatos

Envia uma mensagem para todos os contatos de um grupo. Obtenha o ID do grupo na página de contatos do painel. Para enviar a múltiplos grupos, separe os IDs por vírgula.

POST
sms.gtisms.com/api/v3/sms/campaign
Body parameters
recipient string
obrigatório
ID do grupo de contatos. Para múltiplos grupos, separe por vírgula: 6415907d0d37a,6415907d0d7a6.
message string
obrigatório
Texto da mensagem com até 160 caracteres. Não utilizar emojis, acentos ou caracteres especiais.
Obtenha o ID do grupo em sms.gtisms.com/contacts. sms.gtisms.com/contacts
Headers obrigatórios
Authorization string
obrigatório
Token de acesso no formato Bearer {seu_token}.
Accept string
obrigatório
application/json
Content-Type string
obrigatório
application/json
Resposta de erro

Em caso de falha, a API responde com status: "error" e uma mensagem detalhada:

{
  "status": "error",
  "message": "Mensagem de erro detalhada"
}
curl -X POST "https://sms.gtisms.com/api/v3/sms/campaign" \
  -H "Authorization: Bearer SEU_TOKEN_AQUI" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{
  "recipient": "69861d1e1cfb6",
  "message": "Aqui vai o texto da mensagem"
}'
Resposta 200
{
  "status": "success",
  "message": "Sua mensagem foi enviada com sucesso!",
  "data": {
    "id": 20165,
    "uid": "69a956ca027eb",
    "to": "5511988887777",
    "from": null,
    "message": "Aqui vai o texto da mensagem",
    "status": "Delivered",
    "cost": 1,
    "sms_count": 1,
    "media_url": null
  }
}

Status do SMS (DLR)

Consulta o status atual de uma mensagem específica pelo UID retornado no envio.

GET
sms.gtisms.com/api/v3/sms/{uid}
Path parameters
uid string
obrigatório
UID gerado no envio do SMS (campo data.uid na resposta de POST /sms/send).
Headers obrigatórios
Authorization string
obrigatório
Token de acesso no formato Bearer {seu_token}.
Accept string
obrigatório
application/json
curl -X GET "https://sms.gtisms.com/api/v3/sms/69a95b3fdeee6" \
  -H "Authorization: Bearer SEU_TOKEN_AQUI" \
  -H "Accept: application/json"
Resposta 200
{
  "status": "success",
  "message": null,
  "data": {
    "uid": "69a95b3fdeee6",
    "to": "5511988887777",
    "from": null,
    "message": "Aqui vai o texto da mensagem",
    "sms_type": "plain",
    "direction": "api",
    "status": "Delivered",
    "sms_count": 1,
    "cost": "1"
  }
}

Status de SMS por período

Lista os SMS enviados em um intervalo de datas. A resposta é paginada.

GET
sms.gtisms.com/api/v3/sms
Query parameters
start_date string
obrigatório
Data de início no formato YYYY-MM-DD HH:MM:SS. Ex.: 2026-02-01 00:00:00.
end_date string
obrigatório
Data final no formato YYYY-MM-DD HH:MM:SS. Ex.: 2026-02-28 23:59:59.
Headers obrigatórios
Authorization string
obrigatório
Token de acesso no formato Bearer {seu_token}.
Accept string
obrigatório
application/json
curl -X GET "https://sms.gtisms.com/api/v3/sms?start_date=2026-02-01 00:00:00&end_date=2026-02-28 23:59:59" \
  -H "Authorization: Bearer SEU_TOKEN_AQUI" \
  -H "Accept: application/json"
Resposta 200
{
  "status": "success",
  "message": "SMS data fetched successfully",
  "data": {
    "current_page": 1,
    "data": [
      {
        "uid": "69a95b3fdeee6",
        "to": "5511988887777",
        "from": null,
        "message": "Aqui vai o texto da mensagem",
        "sms_type": "plain",
        "direction": "api",
        "status": "Delivered",
        "sms_count": 1,
        "cost": "1"
      }
    ]
  }
}

Consultar créditos

Retorna o saldo de créditos disponível na conta e a data de expiração.

GET
sms.gtisms.com/api/v3/balance
Headers obrigatórios
Authorization string
obrigatório
Token de acesso no formato Bearer {seu_token}.
Accept string
obrigatório
application/json
curl -X GET "https://sms.gtisms.com/api/v3/balance" \
  -H "Authorization: Bearer SEU_TOKEN_AQUI" \
  -H "Accept: application/json"
Resposta 200
{
  "status": "success",
  "message": null,
  "data": {
    "remaining_balance": "100",
    "expired_on": "26/01/3025, 17:09"
  }
}