> ## Documentation Index
> Fetch the complete documentation index at: https://doc.omnitechsolucoes.com.br/llms.txt
> Use this file to discover all available pages before exploring further.

# Enviar SMS

> Envia uma mensagem SMS via API usando um número de telefone da sua conta OmniTech com suporte a SMS, ideal para confirmações e follow-ups.

Este endpoint permite enviar mensagens SMS utilizando seus números de telefone adquiridos. O SMS será enviado via Twilio e os custos serão automaticamente descontados do saldo da sua conta.

### Corpo da Requisição

<ParamField body="from" type="integer" required>
  ID do seu número de telefone que enviará o SMS (deve ter capacidade de SMS)
</ParamField>

<ParamField body="to" type="string" required>
  Número do destinatário em formato internacional (ex.: "+1234567890")
</ParamField>

<ParamField body="body" type="string" required>
  Conteúdo da mensagem SMS (máx. 300 caracteres)
</ParamField>

### Resposta

<ResponseField name="message" type="string">
  Mensagem de sucesso confirmando que o SMS foi enviado
</ResponseField>

<ResponseField name="data" type="object">
  <Expandable title="propriedades">
    <ResponseField name="id" type="integer">
      Identificador único do registro de SMS
    </ResponseField>

    <ResponseField name="phone_number_id" type="integer">
      ID do número de telefone usado para enviar o SMS
    </ResponseField>

    <ResponseField name="to" type="string">
      Número do destinatário no formato E.164
    </ResponseField>

    <ResponseField name="body" type="string">
      Conteúdo da mensagem SMS
    </ResponseField>

    <ResponseField name="user_id" type="integer">
      ID do usuário que enviou o SMS
    </ResponseField>

    <ResponseField name="segments" type="integer">
      Quantidade de segmentos de SMS (para fins de cobrança)
    </ResponseField>

    <ResponseField name="segment_price" type="number">
      Custo por segmento de SMS
    </ResponseField>

    <ResponseField name="total_cost" type="number">
      Custo total do SMS (segment\_price \* segments)
    </ResponseField>

    <ResponseField name="status" type="string">
      Status atual do SMS
    </ResponseField>

    <ResponseField name="sms_sid" type="string">
      SMS SID da Twilio para rastreamento
    </ResponseField>

    <ResponseField name="created_at" type="string">
      Data e hora em que o SMS foi criado
    </ResponseField>

    <ResponseField name="updated_at" type="string">
      Data e hora da última atualização do SMS
    </ResponseField>
  </Expandable>
</ResponseField>

### Respostas de Erro

<ResponseField name="400 Bad Request">
  <Expandable title="Resposta de Erro">
    <ResponseField name="message" type="string">
      Mensagem de erro descrevendo o problema (número inválido, saldo insuficiente, etc.)
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="500 Internal Server Error">
  <Expandable title="Resposta de Erro">
    <ResponseField name="message" type="string">
      Mensagem de erro indicando falha no envio de SMS
    </ResponseField>

    <ResponseField name="error" type="string">
      Informações detalhadas do erro
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseExample>
  ```json 201 Success Response theme={null}
  {
    "message": "SMS enviado com sucesso",
    "data": {
      "id": 456,
      "phone_number_id": 78,
      "to": "+1234567890",
      "body": "Olá! Esta é uma mensagem de teste da OmniTech. Como podemos te ajudar hoje?",
      "user_id": 1,
      "segments": 1,
      "segment_price": 0.0075,
      "total_cost": 0.0075,
      "status": "sent",
      "sms_sid": "SM1234567890abcdef1234567890abcdef",
      "created_at": "2025-08-04 15:30:00",
      "updated_at": "2025-08-04 15:30:02"
    }
  }
  {
    "message": "Número de origem não encontrado"
  }
  {
    "message": "Número de destino inválido"
  }
  {
    "message": "Saldo insuficiente"
  }
  {
    "message": "Número de origem não possui capacidade de SMS"
  }
  {
    "message": "Falha ao enviar SMS",
    "error": "Detalhes do erro da API da Twilio"
  }
  ```
</ResponseExample>

Observações
O número remetente deve pertencer ao usuário autenticado

O número remetente deve ter capacidade de SMS

A assinatura do número deve estar ativa (não expirada)

É necessário saldo suficiente na conta para cobrir os custos de SMS

Os números de telefone são automaticamente formatados para o padrão E.164

Os custos de SMS variam por país de destino e são cobrados por segmento

Mensagens longas podem ser divididas em múltiplos segmentos, aumentando o custo

O número do destinatário deve ser válido conforme padrões internacionais
