Introdução SDKs

A Comtele mantem oficialmente pacotes de software para facilitar o desenvolvimento e a vida dos nossos amigos devs. Esta seção está aqui para fornecer instruções básicas sobre como instalar e começar a trabalhar com esses pacotes. Para utilizar as SDKs partimos do pressuposto que você já esteja familiarizado com o uso, tenha o ambiente configurado com todas as ferramentas necessárias para seu ecossistema técnico específico, e também compatível com os requisitos mínimos aqui descritos de acordo com cada stack.

GitHub

Mantemos oficialmente SDKs disponívels em Python, .NET, .NET Core, Node, Java, Ruby, PHP via composer e importação de arquivos. Todos os fontes destas SDKs estão disponíveis em nosso GitHub github.com/comtele

Autenticação

Todas as requisições direcionadas a qualquer recurso das SDKs devem ser autenticadas pela chave de integração que fica disponível em sua conta em https://sms.comtele.com.br em sua dashboard na secão Informações do Desenvolvedor nomeado como Sua Chave de API no seguinte formato: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX


Python

Instalação da SDK

comtele_sdk está disponível no PyPI o código é open source e pode ser encontrado em nosso GitHub github.com/comtele.

Apesar dos exemplos contidos nesta documentação serem realizados na versão 3, a versão mínima necessária do Python para instalar a SDK é a 2.7.16, caso esteja utilizando uma versão inferior recomendamos que utilize o Virtualenv, além disso, você pode dar uma olhadinha no nosso GitHub como fazer as chamadas via API Rest ou até então modificar os dependências que necessitam da versão mínima 2.7.16 e fazer a sua própria versão.

$ pip install comtele_sdk
Retorno de Sucesso da Instalação
Successfully built comtele_sdk
Installing collected packages: comtele_sdk
Successfully installed comtele_sdk

Enviar SMS

Com este recurso, é possivel enviar SMS de forma instantânea.

from comtele_sdk.textmessage_service import TextMessageService

api_key = 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'

textmessage_service = TextMessageService(api_key)
result = textmessage_service.send(
  'my_id',          # Sender: Id de requisicao da sua aplicacao para ser retornado no relatorio, pode ser passado em branco.
  'Hello Python',   # Content: Conteudo da mensagem a ser enviada.
  ['11999998888'])  # Receivers: Numero de telefone que vai ser enviado o SMS.

print(result)
Campos Obrigatório Descrição
Sender não Este campo é usado só internamente, e geralmente é bem util para controle. Por exemplo você pode informar um id interno, que ele será exibido no relatório, dispensamdo que você faça “de para” dos ids da Comtele com o sistema que está integrando.
Content sim Conteúdo da mensagem que vai ser recebida pelo número que o SMS será enviado. Nos casos que o conteúdo do SMS superar 160 caracteres, será tarifado mais de um crédito a cada 153 caracteres. Algumas operadoras como a Oi e Sercomtel não suportam concatenação da mensagens, então serão recebidos SMS separadamente.
Receivers sim Destinatários que irão receber o SMS. Para dois ou mais destinatários, separe por uma vírgula os telefones, formato: DDD + Número.
Exemplo de Retorno de Sucesso
{
  "Success": true, 
  "Object": null, 
  "Message": "A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios."
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Object Neste recurso será nulo, pois não existe objeto a ser retornado.
Content Conteúdo da mensagem que foi recebida pelo número retornado.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado.
Retornos Previsíveis
Success Descrição
true A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios.
false Object reference not set to an instance of an object.
Possível Causa: Nenhum objeto foi informado no Body da requisição.
false É necessário informar ao menos um destinatário que irá receber o SMS.
false O parâmetro ‘Content’ deve ser informado com conteúdo.
false Não foi possível continuar, pois a quantidade de créditos é insuficiente. Para efetuar o envio é necessário ao menos 1 créditos.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Enviar SMS / Regra de Resposta Automática

Com este recurso, é possivel enviar SMS de forma instantânea e quando o SMS for respondido, é possivel enviar uma resposta de forma automática, baseado em um contexto previamente configurado.
Para utilizar este recurso, é necessário que você acesse a opção Resposta Automática no menu Configurações no painel de SMS, cadastre uma regra de resposta automática e informe o nome que foi cadastrado no campo ContextRuleName no momento que for usar o endpoint.

from comtele_sdk.contextmessage_service import ContextMessageService

api_key = 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'

contextmessage_service = ContextMessageService(api_key)
result = contextmessage_service.send(
  'my_id',            # Sender: Id de requisicao da sua aplicacao para ser retornado no relatorio, pode ser passado em branco.
  'ContextRuleName',  # ContextRuleName: Nome da regra de resposta automatica a ser usada no envio.
  ['11999998888'])    # Receivers: Numero de telefone que vai ser enviado o SMS.

print(result)
Campos Obrigatório Descrição
Sender não Este campo é usado só internamente, e geralmente é bem util para controle. Por exemplo você pode informar um id interno, que ele será exibido no relatório, dispensamdo que você faça “de para” dos ids da Comtele com o sistema que está integrando.
ContextRuleName sim Neste campo deve ser informado o nome da regra que o contexto de resposta foi programado e cadastrado no sistema que no caso será usado neste envio.
Receivers sim Destinatários que irão receber o SMS. Para dois ou mais destinatários, separe por uma vírgula os telefones, formato: DDD + Número.
Exemplo de Retorno de Sucesso
{
  "Success": true, 
  "Object": null, 
  "Message": "A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios."
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Object Neste recurso será nulo, pois não existe objeto a ser retornado.
Content Conteúdo da mensagem que foi recebida pelo número retornado.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado.
Retornos Previsíveis
Success Descrição
true A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios.
false Object reference not set to an instance of an object.
Possível Causa: Nenhum objeto foi informado no Body da requisição.
false É necessário informar ao menos um destinatário que irá receber o SMS.
false E necessario informar o nome da regra de resposta automatica.
false Nao foi possivel encontrar uma regra de resposta automatica cadastrada com o nome informado.
false Não foi possível continuar, pois a quantidade de créditos é insuficiente. Para efetuar o envio é necessário ao menos 1 créditos.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Enviar SMS / Grupos de Contatos

Com este recurso, é possivel enviar SMS de forma instantânea para um grupo de contatos.
Para usar este recuso, é necessário ter grupos de contatos já cadastrados em nossa aplicação, caso ainda não tenha feito isso, dê uma olhadinha no recurso Cadastrar Grupos e Adicionar Contatos / Grupos

from comtele_sdk.contactmessage_service import ContactMessageService

api_key = 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'

contactmessage_service = ContactMessageService(api_key)
result = contactmessage_service.send(
  'my_id',            # Sender: Id de requisicao da sua aplicacao para ser retornado no relatorio, pode ser passado em branco.
  'Hello Python',     # Content: Conteudo da mensagem a ser enviada.
  'GroupName')        # GroupName: Nome do grupo de contatos que receberao o SMS

print(result)
Campos Obrigatório Descrição
Sender não Este campo é usado só internamente, e geralmente é bem util para controle. Por exemplo você pode informar um id interno, que ele será exibido no relatório, dispensamdo que você faça “de para” dos ids da Comtele com o sistema que está integrando.
Content sim Conteúdo da mensagem que vai ser recebida pelo número que o SMS será enviado. Nos casos que o conteúdo do SMS superar 160 caracteres, será tarifado mais de um crédito a cada 153 caracteres. Algumas operadoras como a Oi e Sercomtel não suportam concatenação da mensagens, então serão recebidos SMS separadamente.
GroupName sim Nome do grupo de contatos, com todos os telefones que receberão o SMS.
Exemplo de Retorno de Sucesso
{
  "Success": true, 
  "Object": null, 
  "Message": "A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios."
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Object Neste recurso será nulo, pois não existe objeto a ser retornado.
Content Conteúdo da mensagem que foi recebida pelo número retornado.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado.
Retornos Previsíveis
Success Descrição
true A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios.
false E necessario informar o grupo de contatos que irao receber o SMS
false Nao foi possivel encontrar um grupo de contatos cadastrado com o nome informado.
false O parâmetro 'Content’ deve ser informado com conteúdo.
false Não foi possível continuar, pois a quantidade de créditos é insuficiente. Para efetuar o envio é necessário ao menos 1 créditos.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Agendar SMS

Com este recurso, é possivel programar a data e horário de envio de SMS para serem enviados.

from comtele_sdk.textmessage_service import TextMessageService

api_key = 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'

textmessage_service = TextMessageService(api_key)
result = textmessage_service.schedule(
  'my_id',            # Sender: Id de requisicao da sua aplicacao para ser retornado no relatorio, pode ser passado em branco.
  'Hello Python',     # Conteudo da mensagem a ser enviada.
  'yyyy-MM-dd HH:mm', # ScheduleDate: Data que o SMS deve ser disparado.
  ['11999998888'])    # Receivers: Numero de telefone que vai ser enviado o SMS.

print(result)
Campos Obrigatório Descrição
Sender não Este campo é usado só internamente, e geralmente é bem util para controle. Por exemplo você pode informar um id interno, que ele será exibido no relatório, dispensamdo que você faça “de para” dos ids da Comtele com o sistema que está integrando.
Content sim Conteúdo da mensagem que vai ser recebida pelo número que o SMS será enviado. Nos casos que o conteúdo do SMS superar 160 caracteres, será tarifado mais de um crédito a cada 153 caracteres. Algumas operadoras como a Oi e Sercomtel não suportam concatenação da mensagens, então serão recebidos SMS separadamente.
ScheduleDate sim Data de agendamento que o SMS deve ser disparado, formato: yyyy-MM-dd HH:mm.
Receivers sim Destinatários que irão receber o SMS. Para dois ou mais destinatários, separe por uma vírgula os telefones, formato: DDD + Número.
Exemplo de Retorno de Sucesso
{
  "Success": true, 
  "Object": null, 
  "Message": "A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios."
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Object Neste recurso será nulo, pois não existe objeto a ser retornado.
Content Conteúdo da mensagem que foi recebida pelo número retornado.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado.
Retornos Previsíveis
Success Descrição
true A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios.
false É necessário informar ao menos um destinatário que irá receber o SMS.
false O parâmetro ‘Content’ deve ser informado com conteúdo.
false Não foi possível continuar, pois a quantidade de créditos é insuficiente. Para efetuar o envio é necessário ao menos 1 créditos.
false A data de agendamento não pode ser retroativa.
false O parametro 'ScheduleDate’ deve ser informado com conteudo.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Agendar SMS / Regra de Resposta Automática

Com este recurso, é possivel programar a data e horário de envio de SMS para serem enviados, e quando o SMS for respondido, é possivel enviar uma resposta de forma automática, baseado em um contexto previamente configurado.
Para utilizar este recurso, é necessário que você acesse a opção Resposta Automática no menu Configurações no painel de SMS, cadastre uma regra de resposta automática e informe o nome que foi cadastrado no campo ContextRuleName no momento que for usar o endpoint.

from comtele_sdk.contextmessage_service import ContextMessageService

api_key = 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'

contextmessage_service = ContextMessageService(api_key)
result = contextmessage_service.schedule(
  'my_id',            # Sender: Id de requisicao da sua aplicacao para ser retornado no relatorio, pode ser passado em branco.
  'ContextRuleName',  # ContextRuleName: Nome da regra de resposta automatica a ser usada no envio.
  'yyyy-MM-dd HH:mm', # ScheduleDate: Data que o SMS deve ser disparado.
  ['11999998888'])    # Receivers: Numero de telefone que vai ser enviado o SMS.

print(result)
Campos Obrigatório Descrição
Sender não Este campo é usado só internamente, e geralmente é bem util para controle. Por exemplo você pode informar um id interno, que ele será exibido no relatório, dispensamdo que você faça “de para” dos ids da Comtele com o sistema que está integrando.
ContextRuleName sim Neste campo deve ser informado o nome da regra que o contexto de resposta foi programado e cadastrado no sistema que no caso será usado neste envio.
ScheduleDate sim Data de agendamento que o SMS deve ser disparado, formato: yyyy-MM-dd HH:mm.
Receivers sim Destinatários que irão receber o SMS. Para dois ou mais destinatários, separe por uma vírgula os telefones, formato: DDD + Número.
Exemplo de Retorno de Sucesso
{
  "Success": true, 
  "Object": null, 
  "Message": "A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios."
}
Retornos Previsíveis
Success Descrição
true A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios.
false É necessário informar ao menos um destinatário que irá receber o SMS.
false E necessario informar o nome da regra de resposta automatica.
false Nao foi possivel encontrar uma regra de resposta automatica cadastrada com o nome informado.
false Não foi possível continuar, pois a quantidade de créditos é insuficiente. Para efetuar o envio é necessário ao menos 1 créditos.
false A data de agendamento não pode ser retroativa.
false O parametro 'ScheduleDate’ deve ser informado com conteudo.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Agendar SMS / Grupos de Contatos

Com este recurso, é possivel programar a data e horário de envio de SMS para um grupo de contatos.
Para usar este recuso, é necessário ter grupos de contatos já cadastrados em nossa aplicação, caso ainda não tenha feito isso, dê uma olhadinha no recurso Cadastrar Grupos e Adicionar Contatos / Grupos

from comtele_sdk.contactmessage_service import ContactMessageService

api_key = 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'

contactmessage_service = ContactMessageService(api_key)
result = contactmessage_service.schedule(
  'my_id',            # Sender: Id de requisicao da sua aplicacao para ser retornado no relatorio, pode ser passado em branco.
  'Hello Python',     # Conteudo da mensagem a ser enviada.
  'GroupName',        # GroupName: Nome do grupo de contatos que receberao o SMS.
  'yyyy-MM-dd HH:mm') # ScheduleDate: Data que o SMS deve ser disparado.

print(result)
Campos Obrigatório Descrição
Sender não Este campo é usado só internamente, e geralmente é bem util para controle. Por exemplo você pode informar um id interno, que ele será exibido no relatório, dispensamdo que você faça “de para” dos ids da Comtele com o sistema que está integrando.
Content sim Conteúdo da mensagem que vai ser recebida pelo número que o SMS será enviado. Nos casos que o conteúdo do SMS superar 160 caracteres, será tarifado mais de um crédito a cada 153 caracteres. Algumas operadoras como a Oi e Sercomtel não suportam concatenação da mensagens, então serão recebidos SMS separadamente.
GroupName sim Nome do grupo de contatos, com todos os telefones que receberao o SMS.
ScheduleDate sim Data de agendamento que o SMS deve ser disparado, formato: yyyy-MM-dd HH:mm.
Exemplo de Retorno de Sucesso
{
  "Success": true, 
  "Object": null, 
  "Message": "A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios."
}
Retornos Previsíveis
Success Descrição
true A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios.
false E necessario informar o grupo de contatos que irao receber o SMS
false Nao foi possivel encontrar um grupo de contatos cadastrado com o nome informado.
false O parâmetro 'Content’ deve ser informado com conteúdo.
false Não foi possível continuar, pois a quantidade de créditos é insuficiente. Para efetuar o envio é necessário ao menos 1 créditos.
false A data de agendamento não pode ser retroativa.
false O parametro 'ScheduleDate’ deve ser informado com conteudo.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Enviar SMS / Dois Fatores

Com este recurso, é possivel enviar via SMS de forma instantânea um código de autenticação para o destinatário, que pode ser validado posteriormente no endpoint a seguir: Validar Código / Dois Fatores.

from comtele_sdk.token_service import TokenService

api_key = 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'

token_service = TokenService(api_key)
result = token_service.send_token(
  '11999998888',  # PhoneNumber: Numero de telefone que vai ser enviado o token via SMS.
  'Company')      # Prefix: Identificação da empresa que aparecerá no corpo da mensagem.

print(result)
Campos Obrigatório Descrição
PhoneNumber sim Número de telefone do destinatário que você quer enviar um código para autenticação de dois fatores.
Prefix não Neste campo, você pode informar ao destinatário a origem do token recebido, por exemplo: Comtele: Codigo de Autorizacao xxxxxx.
Exemplo de Retorno de Sucesso
{
  "Success": true, 
  "Object": {
    "Prefix": "", 
    "PhoneNumber": ""
    }, 
  "Message": 
  "O token foi criado com sucesso."
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Object Neste recurso será nulo, pois não existe objeto a ser retornado.
Prefix Prefixo da mensagem, identificação da origem do token, informado no envio.
PhoneNumber Número de telefone do destinatário, informado no envio.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado.
Retornos Previsíveis
Success Descrição
true O token foi criado com sucesso.
false É necessário informar ao menos um destinatário que irá receber o SMS.
false Não foi possível continuar, pois a quantidade de créditos é insuficiente. Para efetuar o envio é necessário ao menos 1 créditos.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Validar Código / Dois Fatores

Com este recurso, é possivel validar o token recebido e informado pelo usuário que recebeu o SMS, enviado pelo endpoint anterior anterior: Enviar SMS / Dois Fatores.

from comtele_sdk.token_service import TokenService

api_key = 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'

token_service = TokenService(api_key)
result = token_service.validate_token(
  'TokenCode')  # TokenCode: Token que o cliente informou e deve ser validado pela Comtele.

print(result)
Campos Obrigatório Descrição
TokenCode sim Token recebido pelo usuário, que deve ser validado.
Exemplo de Retorno de Sucesso
{
  "Success": true, 
  "Object": {
    "TokenCode": "XXXXXX"
    },
  "Message": "O token informado foi validado com sucesso."
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
TokenCode Token que foi recebido e inserido para ser validado.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado.
Retornos Previsíveis
Success Descrição
true O token informado foi validado com sucesso.
false É necessário informar ao menos um destinatário que irá receber o SMS.
false O token informado é invalido.
false Este token já foi utilizado.
false O intervalo entre a data inicial e a data final devem respeitar o limite maximo de 45 dias por consulta.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Consultar Relatório / Detalhado

Com este recurso, é possivel consultar todos os detalhes disponíveis dos SMS enviados.
Este recurso possui um cooldown de 30 segundos que é compartilhando entre os recursos de Relatório de Regra de Resposta Automática, Relatório de Respostas e Histórico de Recargas, ou seja, somente uma chamada a cada 30 segundos a estes recursos podem ser realizadas.

require 'comtele_sdk'
include ComteleSdk

API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"

@textmessage_service = TextMessageService.new(API_KEY)
result = @textmessage_service.get_detailed_report(
  "yyyy-MM-dd HH:mm", # StartDate: Data inicial a ser filtrado o relatorio.
  "yyyy-MM-dd HH:mm", # EndDate: Data final a ser filtrado o relatorio.
  DeliveryStatus.All) # DeliveryStatus.all, pode ser Delivered ou Undelivered.

puts result
Campos Obrigatorio Descrição
StartDate sim Data inicial do período que os envios serão consultados. Formato yyyy-MM-dd HH:mm.
EndDate sim Data final do período que os envios serão consultados. Formato yyyy-MM-dd HH:mm.
DeliveryStatus não Status de entrega dos SMS poderão ser filtrados e retornados nos relatórios. Os valores podem ser por ‘All’, para ser exibido todos os SMS entregues e não entregues no período; 'Delivered’ para exibir apenas os SMS entregues; Por fim 'Undelivered’ para exibir somente os SMS não entregues.
Exemplo de Retorno de Sucesso
{
  "Success": true, 
  "Object": [
    {
      "Receiver": "", 
      "Content": "", 
      "Status": "", 
      "ScheduleDate": "", 
      "RequestDate": "", 
      "SystemMessage": "", 
      "DlrStatus": "", 
      "Sender": ""
    }
  ],
  "Message": null
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Receiver Destinatários que receberam o SMS. Formato: DDD + Número.
Content Conteúdo da mensagem que foi recebida pelo número retornado.
Status É o campo de status do SMS enviado, pode ser retornado Processed, para SMS que estão na fila de entrega; Delivered para SMS entregues; Error para casos que ocorreu algum erro no envio e o SMS não foi entregue.
ScheduleDate É o campo que retorna a data que o SMS foi agendado, caso tenha sido feito agendamento, se o envio foi realizado de forma instantânea será retornado null. Formato de data: yyyy-MM-dd HH:mm
RequestDate É o campo que retorna a data que o SMS foi requisitado. Formato de data: yyyy-MM-dd HH:mm
SystemMessage Mensagem detalhada sobre o resultado da operação.
DlrStatus É o campo que informa mais detalhes sobre status do SMS enviado, pode ser retornado Delivered para SMS entregues; Undelivered para SMS não entregues; Rejected para SMS que foram rejeitados por possuir conteúdo inadequado ou telefone incorreto; Expired para SMS que excederam o limite de tentativas de entrega; Accepted, para SMS que estão na fila de entrega
Sender Este campo é o que foi passado um id interno no endpoint de envio do SMS. Ele dispensam que você faça “de para” dos ids da Comtele com o sistema que está integrando.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado, neste caso será sempre null
Retornos Previsíveis
Success Descrição
true Será retornado um objeto JSON com os detalhes de SMS enviados de acordo com a data selecionada.
false O parametro 'StartDate’ deve ser informado com conteudo.
false O parametro 'EndDate’ deve ser informado com conteudo.
false O intervalo entre a data inicial e a data final devem respeitar o limite maximo de 45 dias por consulta.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Consultar Relatório / Regra de resposta automática

Com este recurso, é possivel consultar todos os detalhes disponíveis dos SMS enviados/recebidos utilizando a funcionalidade de regra de resposta automatica.
Este recurso possui um cooldown de 30 segundos que é compartilhando entre os recursos de Relatório Detalhado, Relatório de Respostas e Histórico de Recargas, ou seja, somente uma chamada a cada 30 segundos a estes recursos podem ser realizadas.

from comtele_sdk.contextmessage_service import ContextMessageService

api_key = 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'

contextmessage_service = ContextMessageService(api_key)
result = contextmessage_service.get_report(
  'yyyy-MM-dd HH:mm', # StartDate: Data inicial a ser filtrado o relatorio.
  'yyyy-MM-dd HH:mm', # EndDate: Data final a ser filtrado o relatorio.
  'ContextRuleName')  # ContextRuleName: Pode ser passado em branco caso nao queira filtrar a regra especifica que enviada.

puts result
Campos Obrigatório Descrição
StartDate sim Data inicial do período que os envios serão consultados. Formato yyyy-MM-dd HH:mm.
EndDate sim Data final do período que os envios serão consultados. Formato yyyy-MM-dd HH:mm.
ContextRuleName não Neste campo pode ser informado o nome da regra que o contexto de resposta foi programado e cadastrado no sistema para filtrar os resultados somente de uma regra, se não for informado não será aplicado filtro e todos os dados serão exibids.
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object":  [
    {
      "Sender": "", 
      "Content": "", 
      "Received": "", 
      "ContextRuleName": "", 
      "StatusMessage": ""
    }
  ],
  "Message": null
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Sender Este campo é o que foi passado um id interno no endpoint de envio do SMS. Ele dispensam que você faça “de para” dos ids da Comtele com o sistema que está integrando.
Content Conteúdo da mensagem que foi recebida pelo número retornado.
ContextRuleName Nome da regra que o contexto de resposta foi utilizado.
StatusMessage É o campo de status que determina a direção do SMS, se é Enviado ou Recebido.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado, neste caso será sempre null
Retornos Previsíveis
Success Descrição
true Será retornado um objeto JSON com os detalhes de SMS enviados de acordo com a data selecionada.
false Nao foi possivel continuar, pois este metodo da API possui limite de tempo entre requisicoes. O tempo de espera entre sua ultima requisicao e esta e de 30 segundos e ainda faltam XX segundos.
false O parametro 'StartDate’ deve ser informado com conteudo.
false O parametro 'EndDate’ deve ser informado com conteudo.
false O intervalo entre a data inicial e a data final devem respeitar o limite maximo de 45 dias por consulta.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Consultar Relatório / Respostas

Com este recurso, é possivel consultar todos os detalhes disponíveis dos SMS recebidos utilizando a funcionalidade de recebimento de respostas.
Este recurso possui um cooldown de 30 segundos que é compartilhando entre os recursos de Relatório Detalhado, Relatório de Regra de Resposta Automática e Histórico de Recargas, ou seja, somente uma chamada a cada 30 segundos a estes recursos podem ser realizadas.

from comtele_sdk.reply_service import ReplyService

api_key = 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'

reply_service = ReplyService(api_key)
result = reply_service.get_report(
  'yyyy-MM-dd HH:mm', # StartDate: Data inicial a ser filtrado o relatorio.
  'yyyy-MM-dd HH:mm', # EndDate: Data final a ser filtrado o relatorio.
  'Sender')           # Sender: Pode ser passado em branco caso nao queira filtrar uma resposta. E o numero do telefone de quem ou o que respondeu o SMS.

puts result
Campos Obrigatório Descrição
StartDate sim Data inicial do período que os envios serão consultados. Formato yyyy-MM-dd HH:mm.
EndDate sim Data final do período que os envios serão consultados. Formato yyyy-MM-dd HH:mm.
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object": [
    {
      "Sender": "",
      "SentContent": "",
      "ReceivedContent": "",
      "ReceivedDate": "",
      "SenderName": ""
    }
  ],
  "Message": null
}

Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Sender Este campo, diferentemente dos outros endpoints com recursos de relatório, é o número do telefone de quem ou o que respondeu o SMS, número de origem da resposta recebida.
SentContent Conteúdo da mensagem que foi enviada para o número do telefone de destino..
ReceivedContent Conteúdo da mensagem respondida pelo número do telefone de destino.
ReceivedDate Data que a resposta foi recebida.
SenderName Este campo é o que foi passado um id interno no endpoint de envio do SMS. Ele dispensam que você faça “de para” dos ids da Comtele com o sistema que está integrando.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado, neste caso será sempre null
Retornos Previsíveis
Success Descrição
true Será retornado um objeto JSON com os detalhes de SMS enviados de acordo com a data selecionada.
false O parametro 'StartDate’ deve ser informado com conteudo.
false O parametro 'EndDate’ deve ser informado com conteudo.
false O intervalo entre a data inicial e a data final devem respeitar o limite maximo de 45 dias por consulta.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Receber Respostas / Callback

Com este recurso, é possivel receber ao invés de consultar todos os detalhes disponíveis dos SMS recebidos utilizando a funcionalidade de recebimento de respostas.

Configuração da URL

Antes de mais nada, para receber as respostas via callback, é necessário que você ja tenha construído em sua aplicação um webhook para receber a resposta no padrão a seguir, além disso é necessário que o endpoint do seu webhook seja público e que você tenha configurado em sua conta seguindo os seguintes passos:
1 - Acessar o painel em https://sms.comtele.com.br, e inserir os dados de acesso de sua conta.
2 - Na opção Configurações do menu lateral, clique em Alterar Meus Dados.
3 - Na tela de edição dos seus dados pessoais, localize a seção CONFIGURAÇÕES e a opção URL de Callback de Respostas, insira a URL do webhook que irá receber as respostas e clique no botão salvar.
Feito esses passos, em um intervalo máximo de 30 minutos, todas as respostas que estiverem atrelados aos SMS enviados pelo seu usuário serão retornados via callback.

Exemplo do objeto da resposta
  {
    "Sender":string,
    "SentContent":string,
    "ReceivedContent":string,
    "ReceiveDate":"yyyy-MM-ddThh:mm:ss.ms",
    "SenderName":string
  }
Campos do Retorno
Campos Descrição
Sender Este campo, diferentemente dos outros endpoints com recursos de relatório, é o número do telefone de quem ou o que respondeu o SMS, número de origem da resposta recebida.
SentContent Conteúdo da mensagem que foi enviada para o número do telefone de destino..
ReceivedContent Conteúdo da mensagem respondida pelo número do telefone de destino.
ReceivedDate Data que a resposta foi recebida.
SenderName Este campo é o que foi passado um id interno no endpoint de envio do SMS. Ele dispensam que você faça “de para” dos ids da Comtele com o sistema que está integrando.

Cadastrar / Grupos de Contatos

Com este recurso, é possivel cadastrar grupos de contatos para segmentar estes contatos em listas que podem ser usadas no momento do envio.

from comtele_sdk.contact_service import ContactService

api_key = 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'

contact_service = ContactService(api_key)
result = contact_service.create_group(
  'GroupName',    # GroupName: Nome do grupo a ser cadastrado.
  'Description')  # Description: Breve descricao do grupo a ser cadastrado.

print(result)
Campos Obrigatório Descrição
Name sim Nome do grupo para segmentação dos contatos, este campo que deve ser informado no método de envio.
Description não Breve descrição do grupo, pode ser usado para inserir detalhes e informações adicionais sobre o grupo.
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object": {
    "Name": "group_name",
    "Description": "group_description"
  },
  "Message": "O grupo de contatos foi criado com sucesso."
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Name Nome do grupo que foi adicionado.
Description Descrição do grupo que foi adicionado.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado.
Retornos Previsíveis
Success Descrição
true O grupo de contatos foi criado com sucesso.
false O nome do grupo deve ser informado.
false O nome do grupo informado já existe, por favor escolha um novo nome.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Consultar / Grupos de Contatos

Com este recurso, é possivel consultar os grupos de contatos cadastrados.

Consultar Todos os Grupos

Com este recurso, é possivel consultar detalhes de todos os grupos de contatos cadastrados em sua conta.

from comtele_sdk.contact_service import ContactService

api_key = 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'

contact_service = ContactService(api_key)
result = contact_service.get_all_groups()

print(result)

Consultar Grupo Específico

Com este recurso, é possivel consultar detalhes filtrando um grupo de contatos específico cadastrado em sua conta.

from comtele_sdk.contact_service import ContactService

api_key = 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'

contact_service = ContactService(api_key)
result = contact_service.get_group_name(
  'GroupName')  # GroupName: Nome do grupo a ser filtrado os detalhes.

print(result)
Campos Obrigatório Descrição
{group_name} não Caso queira filtrar os detalhes somente de um grupo é possível utilizando o recurso get_group_by_name e infomar o nome do grupo, ao invés do recurso get_all_groups.
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object": [
    {
      "Id": comtele_group_id,
      "Name": "group_name",
      "Description": "group_description",
      "TotalContacts": 1,
      "LastUsed": "yyyy-MM-dd HH:mm:ss.ms"
    }
  ],
  "Message": null
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Id Id junto a Comtele do grupo adicionado, campo numérico.
Name Nome do grupo.
Description Descrição do grupo.
TotalContacts Número total de contatos atualmente no grupo.
LastUsed Data com a última vez que o grupo foi utilizado em um envio.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado, neste caso será sempre null
Retornos Previsíveis
Success Descrição
true Será retornado um objeto JSON com os detalhes do grupo ou dos grupos de contatos consultados com o critério selecionado.
false Nao foi possivel continuar, pois este metodo da API possui limite de tempo entre requisicoes. O tempo de espera entre sua ultima requisicao e esta e de 30 segundos e ainda faltam XX segundos.
false Nao foi encontrado nenhum grupo com o nome {group_name}
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Excluir / Grupos de Contatos

Com este recurso, é possivel excluir grupos de contatos cadastrados.

from comtele_sdk.contact_service import ContactService

api_key = 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'

contact_service = ContactService(api_key)
result = contact_service.remove_group(
  'GroupName') # GroupName: Nome do grupo a ser excluido.

print(result)
Campos Obrigatório Descrição
group_name sim Nome do grupo de contatos.
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object": null,
  "Message": "O grupo de contatos foi removido com sucesso"
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Object Neste recurso será nulo, pois não existe objeto a ser retornado.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado.
Retornos Previsíveis
HTTP Status Descrição
true O grupo de contatos foi removido com sucesso.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Cadastrar Contatos / Grupos de Contatos

Com este recurso, é possivel cadastrar contatos em grupos para segmentar estes contatos em listas que podem ser usadas no momento do envio.

from comtele_sdk.contact_service import ContactService

api_key = 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'

contact_service = ContactService(api_key)
result = contact_service.add_contact_to_group(
  'GroupName',    # GroupName: Nome do grupo ja existente.
  '11999998888',  # ContactPhone: Numero de telefone do contato a ser cadastrado. 
  'ContactName')  # ContactName: Nome do contato a ser cadastrado, pode ser informado em branco.

print(result)
Campos Obrigatório Descrição
GroupName sim Nome do grupo que ja foi cadastrado para a segmentação dos contatos.
ContactPhone sim Número de telefone do contato que está adicionando para receber os SMS.
ContactName não Neste campo, você pode adicinar o nome do contato, que poderá ser usado no momento do envio via painel para fazer envios personalizados.
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object": {
    "GroupName": "group_name",
    "Action": "add_number",
    "ContactPhone": "phone_number",
    "ContactName": "contact_name"
  },
  "Message": "O contato foi inserido no grupo com sucesso."
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
GroupName Nome do grupo em que o contato foi adicionado.
Action add_number, ação que foi informada para adicionar o número de telefone do contato.
ContactPhone Número de telefone do contato que foi adicionado.
ContactName Nome do contato que foi adicionado.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado.
Retornos Previsíveis
HTTP Status Descrição
true O contato foi inserido no grupo com sucesso.
false O grupo informado nao foi encontrado.
false O numero de telefone deve ser informado.
false O parametro Action deve ser informado.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Excluir Contatos / Grupos de Contatos

Com este recurso, é possivel remover contatos em grupos segmentados, para que estes contatos não recebam mais SMS destas listas quando usadas no momento do envio.

from comtele_sdk.contact_service import ContactService

api_key = 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'

contact_service = ContactService(api_key)
result = contact_service.remove_contact_from_group(
  'GroupName',    # GroupName: Nome do grupo que o contato esta cadastrado.
  '11999998888')  # ContactPhone: Numero de telefone do contato a ser excluido.

print(result)
Campos Obrigatório Descrição
GroupName sim Nome do grupo que ja foi cadastrado para a segmentação dos contatos.
ContactPhone sim Número de telefone do contato que está adicionando para receber os SMS.
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object": {
    "GroupName": "group_name",
    "Action": "remove_number",
    "ContactPhone": "phone_number",
    "ContactName": "contact_name"
  },
  "Message": "O contato foi removido do grupo com sucesso."
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
GroupName Nome do grupo em que o contato foi adicionado.
Action remove_number, ação que foi informada para remover o número de telefone do contato.
ContactPhone Número de telefone do contato que foi adicionado.
ContactName Nome do contato que foi adicionado.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado.
Retornos Previsíveis
HTTP Status Descrição
true O contato foi removido do grupo com sucesso.
false O grupo informado nao foi encontrado.
false O numero de telefone deve ser informado.
false O parametro Action deve ser informado.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Cadastrar Contatos / Blacklist

Com este recurso, é possivel adicionar números de telefone em uma blacklist para não receber mais SMS proveniente de sua conta, assim, você pode se despreocupar com uma verificação antes de mandar uma mensagem para números que não desejam mais receber seus SMS, basta adicionar estes telefones em sua blacklist, e caso seja enviado um SMS para este número, não será consumido crédito, o SMS não será entregue e aparecerá no relatório detalhado, uma mensagem informando que o número não recebeu o SMS pois está cadastrado na blacklist.

from comtele_sdk.blacklist_service import BlacklistService

api_key = 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'

blacklist_service = BlacklistService(api_key)
result = blacklist_service.insert(
  '11999998888')  # PhoneNumber: Numero de telefone do contato a ser adicionado na blacklist.

print(result)
Campos Obrigatório Descrição
PhoneNumber sim Número de telefone do destinatário que não deve mais receber qualquer SMS enviado por sua conta.
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object": {
    "PhoneNumber": "",
    "BlacklistDate": "yyyy-MM-ddTHH:mm:ss.ms"
  },
  "Message": "O numero foi inserido na blacklist com sucesso."
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
PhoneNumber Número de telefone que foi adicionado na blacklist.
BlacklistDate Data que o telefone foi adicionado na blacklist.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado.
Retornos Previsíveis
Success Descrição
true O numero foi inserido na blacklist com sucesso.
false O telefone deve ser informado
false O número informado é inválido.
false O campo “PhoneNumber” não suporta texto, somente números.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.

Consultar Contatos / Blacklist

Com este recurso, é possivel consultar os números de telefone e a data que foram adicionados na sua blacklist.

Consultar Todos Telefones

Com este recurso, é possivel consultar detalhes de todos os contatos cadastrados em sua blacklist.

from comtele_sdk.blacklist_service import BlacklistService

api_key = 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'

blacklist_service = BlacklistService(api_key)
result = blacklist_service.get_blacklist()

print(result)

Consultar Telefone Específico

Com este recurso, é possivel consultar detalhes filtrando um contato específico cadastrado em sua blacklist.

from comtele_sdk.blacklist_service import BlacklistService

api_key = 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'

blacklist_service = BlacklistService(api_key)
result = blacklist_service.get_by_phone_number(
  '11999998888')  # PhoneNumber: Numero de telefone do contato a ser consultado na blacklist.

print(result)
Campos Obrigatório Descrição
PhoneNumber não Número de telefone do destinatário que não deve mais receber qualquer SMS enviado por sua conta.
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object": [
    {
      "PhoneNumber": "phone_number",
      "BlacklistDate": "yyyy-MM-ddTHH:mm:ss.ms"
    }
  ],
  "Message": null
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
PhoneNumber Número de telefone que foi adicionado na blacklist.
BlacklistDate Data que o telefone foi adicionado na blacklist.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado, neste caso será sempre null
Retornos Previsíveis
Success Descrição
true Será retornado um objeto JSON com os detalhes do número ou dos números de telefones consultados com o critério selecionado.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.

Excluir Contatos / Blacklist

Com este recurso, é possivel remover números de telefone que foram adicionados na blacklist para voltar a receber os SMS provenientes de sua conta.

from comtele_sdk.blacklist_service import BlacklistService

api_key = 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'

blacklist_service = BlacklistService(api_key)
result = blacklist_service.remove(
  '11999998888')  # PhoneNumber: Numero de telefone do contato a ser excluido na blacklist.

print(result)
Campos Obrigatório Descrição
PhoneNumber não Número de telefone do destinatário que não deve mais receber qualquer SMS enviado por sua conta.
Exemplo de Retorno de Sucesso
  {
    "Success": true,
    "Object": {
      "PhoneNumber": "",
      "BlacklistDate": "yyyy-MM-ddTHH:mm:ss.ms"
    },
    "Message": "O numero foi removido da blacklist com sucesso."
  }
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resutado da operação.
PhoneNumber Número de telefone que foi removido na blacklist.
BlacklistDate Data que o telefone foi adicionado na blacklist.
Message Neste campo é retornado mais detalhes sobre o resutado da operação do recurso que foi utilizado.
Retornos Previsíveis
Success Descrição
true Será retornado um objeto JSON com os detalhes do número ou dos números de telefones consultadoscom o critério selecionado.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.

Consultar Saldo

Com este recurso, é possivel consultar a quantidade de saldo disponível em sua conta ou subcontas.

Consultar Saldo

Com este recurso, é possivel consultar saldo de sua conta.

from comtele_sdk.credit_service import CreditService

api_key = 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'

credit_service = CreditService(api_key)
result = credit_service.get_my_credits()

print(result)

Consultar Saldo Subcontas

Com este recurso, é possivel consultar saldo de suas subconta.

from comtele_sdk.credit_service import CreditService

api_key = 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'

credit_service = CreditService(api_key)
result = credit_service.get_credits(
  'Username') # Username: Username da subconta a ter o saldo consultado.

print(result)
Campos Obrigatório Descrição
Username não Se não for informado username, será retornado o saldo da conta que está relacionada a chave de integração que está sendo utilizada. A funcionalidade de consultar saldo de uma subconta só está disponível para contas do tipo revenda, que possui funcionalidades administrativas em suas subcontas.
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object": 0,
  "Message": null
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Object É retornado a quantidade de saldo disponível no momento da consulta.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado, neste caso será sempre null
Retornos Previsíveis
Success Descrição
true Será retornado um objeto JSON a quantidade de saldo disponível no momento da consulta.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.

Inserir Saldo / Subcontas

Com este recurso, é possivel adicionar saldo em suas subcontas. Recurso disponível apenas para contas do tipo revenda

from comtele_sdk.credit_service import CreditService

api_key = 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'

credit_service = CreditService(api_key)
result = credit_service.add_credits(
  'Username') # Username: Username da subconta a ter o credito inserido ou removido.
  'Amount')   # Amount: Quantidade de creditos a ser adicionada, o valor tambem pode ser negativo para remover o credito.

print(result)
Campos Obrigatório Descrição
sub_account sim Username da subconta que pertence a sua revenda que terão os créditos adicionados. Recurso disponível apenas para contas do tipo revenda
Amount sim Quantidade de créditos a ser adicionados da subconta, o valor pode ser negativo para remover o crédito. Recurso disponível apenas para contas do tipo revenda
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object": null,
  "Message": "Os creditos foram alterados com sucesso."
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Object Neste recurso será nulo, pois não existe objeto a ser retornado.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado, neste caso será sempre null
Retornos Previsíveis
Success Descrição
true Os creditos foram alterados com sucesso.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
false Será retornado um objeto JSON com o campo “Success”: false com Object e Message null, pois o usuário não foi encontrado ou não está atrelado a conta com a chave que está utilizando.

Consultar Histórico de Recargas / Subcontas

Com este recurso, é possivel consultar a histórico de créditos adicionados suas subcontas. Recurso disponível apenas para contas do tipo revenda

from comtele_sdk.credit_service import CreditService

api_key = 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'

credit_service = CreditService(api_key)
result = credit_service.get_history(
  'Username') # Username: Username da subconta a ter o historico de recargas consultado.

print(result)
Campos Obrigatório Descrição
Username sim Username da subconta que pertence a sua revenda que deseja consultar o histórico de créditos adicionados.
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object": [
    {
      "Amount": 1,
      "Balance": 1,
      "ExpiryDate": null,
      "HistoryDate": "yyyy-MM-dd HH:mm.ms",
      "AssociadedUsername": "username"
    }
  ],
  "Message": null
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Amount Quantidade de crédito que foi adicionado.
Balance Quantidade de crédito adicionado, somada a quandidade saldo que estava disponível no momento que foi adicionado.
ExpiryDate Caso o saldo disponível tenha data de expiração, neste caso será sempre null
HistoryDate Timestamp do momento que o crédito foi adicionado na conta.
AssociadedUsername Username da conta responsável por adicionar o crédito para o usuário.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado, neste caso será sempre null
Retornos Previsíveis
Success Descrição
true Será retornado um objeto JSON a quantidade de saldo disponível no momento da consulta.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.

Cadastrar / Subcontas

Com este recurso, é possivel cadastrar subcontas, se a sua conta for do tipo revenda. Dessa maneira é possível separar completamente a utilização das funcionalidades, créditos e acesso.

from comtele_sdk.account_service import AccountService

api_key = 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'

account_service = AccountService(api_key)
result = account_service.create_account(
  'Comtele',              # Firstname: Primeiro nome da pessoa, ou nome da empresa a ser cadastrada.
  'test@comtele.com.br',  # Email: Email de contato do responsavel pela conta.
  '14121127000173',       # CorporateTaxpayer: CNPJ da empresa se for pessoa juridica.
  '00000000000',          # IndividualTaxpayer: CPF do responsavel se for pessoa fisica.
  '11999998888',          # MobileNumber: Numero de telefone do responsavel pela conta.
  'pass4w')               # Password: Senha da conta a ser cadastrada.

print(result)
Campos Obrigatório Descrição
Firstname sim Se refere ao primeiro nome do usuário, este nome será exibido no painel para dar boas vindas e etc. O campo não pode estar vazio e pode conter caracteres alfanuméricos.
Lastname não Sobrenome do usuário.
Email sim O e-mail do usuário que está sendo cadastrado, pode ser usado para fazer login no painel.
CorporateTaxpayer CNPJ do usuário, caso seja pessoa jurídica, só é necessário informar um documento, CNPJ ou CPF.
IndividualTaxpayer CPF do usuário, caso seja pessoa física, só é necessário informar um documento, CPF ou CNPJ.
MobileNumber sim Celular do usuário que está sendo cadastrado.
Password sim Senha de acesso ao painel do usuário que está sendo cadastrado.
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object": {
    "Enabled": true,
    "Username": "sub_account_username",
    "Balance": 0,
    "Connection": null,
    "LastBalanceHistory": null
  },
  "Message": "O usuario foi inserido com sucesso"
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Enabled Status da subconta que foi adicionada, no caso todas as subcontas recém criadas ja são ativadas.
Username Username da subconta que foi criada.
Balance Quantidade de créditos disponíveis na subconta que foi criada, todas as subcontas são criadas com 0 créditos.
Connection Data mais recente que a subconta efetuou login no painel.
LastBalanceHistory Data mais recente que a subconta teve créditos adicionados.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado.
Retornos Previsíveis
Success Descrição
true O usuario foi inserido com sucesso.
false O nome do usuario deve ser informado.
false O telefone celular do usuario deve ser informado.
false O e-mail já está em uso, por favor escolha um novo e-mail.
false O e-mail informado é inválido ou não foi informado.
false O campo C.P.F. ou o campo C.N.P.J. deve ser preenchido.
false A senha do usuario deve ser informada.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Consultar / Subcontas

Com este recurso, é possivel consultar as subcontas cadastradas e atreladas a sua conta.

Consultar Todos as Subcontas

Com este recurso, é possivel consultar detalhes de todas as subcontas cadastrados em sua conta.

from comtele_sdk.account_service import AccountService

api_key = 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'

account_service = AccountService(api_key)
result = account_service.get_all_accounts()

print(result)

Consultar Subconta Específica

Com este recurso, é possivel consultar detalhe de uma subconta específica atrelada a sua conta.

from comtele_sdk.account_service import AccountService

api_key = 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'

account_service = AccountService(api_key)
result = account_service.get_account_by_username(
  'Username') # Username: Username da subconta que deve ser consultado os detalhes cadastrais.

print(result)
Campos Obrigatório Descrição
sub_account não Username da subconta que pertence a sua revenda. Recurso disponível apenas para contas do tipo revenda
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object": {
    "Enabled": true,
    "Username": "sub_account_username",
    "Balance": 0,
    "Connection": yyyy-MM-ddTHH:mm:ss.ms,
    "LastBalanceHistory": yyyy-MM-ddTHH:mm:ss.ms
  },
  "Message": "O usuario foi inserido com sucesso"
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Enabled Status da subconta que foi adicionada.
Username Username da subconta que foi informado na consulta.
Balance Saldo disponível na subconta no momento da consulta.
Connection Data mais recente que a subconta efetuou login no painel.
LastBalanceHistory Data mais recente que a subconta teve créditos adicionados.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado, neste caso será sempre null
Retornos Previsíveis
Success Descrição
true Será retornado um objeto JSON com os detalhes do grupo ou dos grupos de contatos consultados com o critério selecionado.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
false Algum problema com o servidor em que está o recurso acessado, neste caso, tente acessar novamente.
false Houve um time out na requisição ao efetuar a conexão com o endpoint.

Ruby

Instalação da SDK

comtele_sdk está disponível no RubyGems o código é open source e pode ser encontrado em nosso GitHub github.com/comtele.

A versão mínima necessária do Ruby para instalar a SDK é a 2.0, caso esteja utilizando uma versão inferior recomendamos que utilize o RVM, além disso, você pode dar uma olhadinha no nosso GitHub como fazer as chamadas via API Rest ou até então modificar os dependências que precisam da versão 2.0 e fazer a sua própria versão.

$ gem install comtele_sdk
Retorno de Sucesso da Instalação
Done installing documentation for http-accept, unf_ext, unf, domain_name, http-cookie, mime-types-data, mime-types, netrc, rest-client, comtele_sdk after 8 seconds
10 gems installed

Enviar SMS

Com este recurso, é possivel enviar SMS de forma instantânea.

require 'comtele_sdk'
include ComteleSdk

API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"

@textmessage_service = TextMessageService.new(API_KEY)
result = @textmessage_service.send(
  "my_id",          # Sender: Id de requisicao da sua aplicacao para ser retornado no relatorio, pode ser passado em branco.
  "Hello Ruby",     # Content: Conteudo da mensagem a ser enviada.
  ["11999998888"])  # Receivers: Numero de telefone que vai ser enviado o SMS.

puts result
Campos Obrigatório Descrição
Sender não Este campo é usado só internamente, e geralmente é bem util para controle. Por exemplo você pode informar um id interno, que ele será exibido no relatório, dispensamdo que você faça “de para” dos ids da Comtele com o sistema que está integrando.
Content sim Conteúdo da mensagem que vai ser recebida pelo número que o SMS será enviado. Nos casos que o conteúdo do SMS superar 160 caracteres, será tarifado mais de um crédito a cada 153 caracteres. Algumas operadoras como a Oi e Sercomtel não suportam concatenação da mensagens, então serão recebidos SMS separadamente.
Receivers sim Destinatários que irão receber o SMS. Para dois ou mais destinatários, separe por uma vírgula os telefones, formato: DDD + Número.
Exemplo de Retorno de Sucesso
{
  "Success": true, 
  "Object": null, 
  "Message": "A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios."
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Object Neste recurso será nulo, pois não existe objeto a ser retornado.
Content Conteúdo da mensagem que foi recebida pelo número retornado.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado.
Retornos Previsíveis
Success Descrição
true A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios.
false Object reference not set to an instance of an object.
Possível Causa: Nenhum objeto foi informado no Body da requisição.
false É necessário informar ao menos um destinatário que irá receber o SMS.
false O parâmetro “Content” deve ser informado com conteúdo.
false Não foi possível continuar, pois a quantidade de créditos é insuficiente. Para efetuar o envio é necessário ao menos 1 créditos.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Enviar SMS / Regra de Resposta Automática

Com este recurso, é possivel enviar SMS de forma instantânea e quando o SMS for respondido, é possivel enviar uma resposta de forma automática, baseado em um contexto previamente configurado.
Para utilizar este recurso, é necessário que você acesse a opção Resposta Automática no menu Configurações no painel de SMS, cadastre uma regra de resposta automática e informe o nome que foi cadastrado no campo ContextRuleName no momento que for usar o endpoint.

require 'comtele_sdk'
include ComteleSdk

API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"

@contextmessage_service = ContextMessageService.new(API_KEY)
result = @contextmessage_service.send(
  "my_id",            # Sender: Id de requisicao da sua aplicacao para ser retornado no relatorio, pode ser passado em branco.
  "ContextRuleName",  # ContextRuleName: Nome da regra de resposta automatica a ser usada no envio.
  ["11999998888"])    # Receivers: Numero de telefone que vai ser enviado o SMS.

puts result
Campos Obrigatório Descrição
Sender não Este campo é usado só internamente, e geralmente é bem util para controle. Por exemplo você pode informar um id interno, que ele será exibido no relatório, dispensamdo que você faça “de para” dos ids da Comtele com o sistema que está integrando.
ContextRuleName sim Neste campo deve ser informado o nome da regra que o contexto de resposta foi programado e cadastrado no sistema que no caso será usado neste envio.
Receivers sim Destinatários que irão receber o SMS. Para dois ou mais destinatários, separe por uma vírgula os telefones, formato: DDD + Número.
Exemplo de Retorno de Sucesso
{
  "Success": true, 
  "Object": null, 
  "Message": "A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios."
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Object Neste recurso será nulo, pois não existe objeto a ser retornado.
Content Conteúdo da mensagem que foi recebida pelo número retornado.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado.
Retornos Previsíveis
Success Descrição
true A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios.
false Object reference not set to an instance of an object.
Possível Causa: Nenhum objeto foi informado no Body da requisição.
false É necessário informar ao menos um destinatário que irá receber o SMS.
false E necessario informar o nome da regra de resposta automatica.
false Nao foi possivel encontrar uma regra de resposta automatica cadastrada com o nome informado.
false Não foi possível continuar, pois a quantidade de créditos é insuficiente. Para efetuar o envio é necessário ao menos 1 créditos.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Enviar SMS / Grupos de Contatos

Com este recurso, é possivel enviar SMS de forma instantânea para um grupo de contatos.
Para usar este recuso, é necessário ter grupos de contatos já cadastrados em nossa aplicação, caso ainda não tenha feito isso, dê uma olhadinha no recurso Cadastrar Grupos e Adicionar Contatos / Grupos

require 'comtele_sdk'
include ComteleSdk

API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"

@contactmessage_service = ContactMessageService.new(API_KEY)
result = @contactmessage_service.send(
  "my_id",            # Sender: Id de requisicao da sua aplicacao para ser retornado no relatorio, pode ser passado em branco.
  "Hello Ruby",       # Content: Conteudo da mensagem a ser enviada.
  "GroupName")        # GroupName: Nome do grupo de contatos que receberao o SMS

puts result
Campos Obrigatório Descrição
Sender não Este campo é usado só internamente, e geralmente é bem util para controle. Por exemplo você pode informar um id interno, que ele será exibido no relatório, dispensamdo que você faça “de para” dos ids da Comtele com o sistema que está integrando.
Content sim Conteúdo da mensagem que vai ser recebida pelo número que o SMS será enviado. Nos casos que o conteúdo do SMS superar 160 caracteres, será tarifado mais de um crédito a cada 153 caracteres. Algumas operadoras como a Oi e Sercomtel não suportam concatenação da mensagens, então serão recebidos SMS separadamente.
GroupName sim Nome do grupo de contatos, com todos os telefones que receberão o SMS.
Exemplo de Retorno de Sucesso
{
  "Success": true, 
  "Object": null, 
  "Message": "A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios."
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Object Neste recurso será nulo, pois não existe objeto a ser retornado.
Content Conteúdo da mensagem que foi recebida pelo número retornado.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado.
Retornos Previsíveis
Success Descrição
true A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios.
false E necessario informar o grupo de contatos que irao receber o SMS
false Nao foi possivel encontrar um grupo de contatos cadastrado com o nome informado.
false O parâmetro “Content” deve ser informado com conteúdo.
false Não foi possível continuar, pois a quantidade de créditos é insuficiente. Para efetuar o envio é necessário ao menos 1 créditos.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Agendar SMS

Com este recurso, é possivel programar a data e horário de envio de SMS para serem enviados.

require 'comtele_sdk'
include ComteleSdk

API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"

@textmessage_service = TextMessageService.new(API_KEY)
result = @textmessage_service.schedule(
  "my_id",            # Sender: Id de requisicao da sua aplicacao para ser retornado no relatorio, pode ser passado em branco.
  "Hello Ruby",       # Content: Conteudo da mensagem a ser enviada.
  "yyyy-MM-dd HH:mm", # ScheduleDate: Data que o SMS deve ser disparado.
  ["11999998888"])    # Receivers: Numero de telefone que vai ser enviado o SMS.

puts result
Campos Obrigatório Descrição
Sender não Este campo é usado só internamente, e geralmente é bem util para controle. Por exemplo você pode informar um id interno, que ele será exibido no relatório, dispensamdo que você faça “de para” dos ids da Comtele com o sistema que está integrando.
Content sim Conteúdo da mensagem que vai ser recebida pelo número que o SMS será enviado. Nos casos que o conteúdo do SMS superar 160 caracteres, será tarifado mais de um crédito a cada 153 caracteres. Algumas operadoras como a Oi e Sercomtel não suportam concatenação da mensagens, então serão recebidos SMS separadamente.
ScheduleDate sim Data de agendamento que o SMS deve ser disparado, formato: yyyy-MM-dd HH:mm.
Receivers sim Destinatários que irão receber o SMS. Para dois ou mais destinatários, separe por uma vírgula os telefones, formato: DDD + Número.
Exemplo de Retorno de Sucesso
{
  "Success": true, 
  "Object": null, 
  "Message": "A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios."
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Object Neste recurso será nulo, pois não existe objeto a ser retornado.
Content Conteúdo da mensagem que foi recebida pelo número retornado.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado.
Retornos Previsíveis
Success Descrição
true A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios.
false É necessário informar ao menos um destinatário que irá receber o SMS.
false O parâmetro ‘Content’ deve ser informado com conteúdo.
false Não foi possível continuar, pois a quantidade de créditos é insuficiente. Para efetuar o envio é necessário ao menos 1 créditos.
false A data de agendamento não pode ser retroativa.
false O parametro 'ScheduleDate’ deve ser informado com conteudo.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Agendar SMS / Regra de Resposta Automática

Com este recurso, é possivel programar a data e horário de envio de SMS para serem enviados, e quando o SMS for respondido, é possivel enviar uma resposta de forma automática, baseado em um contexto previamente configurado.
Para utilizar este recurso, é necessário que você acesse a opção Resposta Automática no menu Configurações no painel de SMS, cadastre uma regra de resposta automática e informe o nome que foi cadastrado no campo ContextRuleName no momento que for usar o endpoint.

require 'comtele_sdk'
include ComteleSdk

API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"

@contextmessage_service = ContextMessageService.new(API_KEY)
result = @contextmessage_service.schedule(
  "my_id",            # Sender: Id de requisicao da sua aplicacao para ser retornado no relatorio, pode ser passado em branco.
  "ContextRuleName",  # ContextRuleName: Nome da regra de resposta automatica a ser usada no envio.
  "yyyy-MM-dd HH:mm", # ScheduleDate: Data que o SMS deve ser disparado.
  ["11999998888"])    # Receivers: Numero de telefone que vai ser enviado o SMS.

puts result
Campos Obrigatório Descrição
Sender não Este campo é usado só internamente, e geralmente é bem util para controle. Por exemplo você pode informar um id interno, que ele será exibido no relatório, dispensamdo que você faça “de para” dos ids da Comtele com o sistema que está integrando.
ContextRuleName sim Neste campo deve ser informado o nome da regra que o contexto de resposta foi programado e cadastrado no sistema que no caso será usado neste envio.
ScheduleDate sim Data de agendamento que o SMS deve ser disparado, formato: yyyy-MM-dd HH:mm.
Receivers sim Destinatários que irão receber o SMS. Para dois ou mais destinatários, separe por uma vírgula os telefones, formato: DDD + Número.
Exemplo de Retorno de Sucesso
{
  "Success": true, 
  "Object": null, 
  "Message": "A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios."
}
Retornos Previsíveis
Success Descrição
true A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios.
false É necessário informar ao menos um destinatário que irá receber o SMS.
false E necessario informar o nome da regra de resposta automatica.
false Nao foi possivel encontrar uma regra de resposta automatica cadastrada com o nome informado.
false Não foi possível continuar, pois a quantidade de créditos é insuficiente. Para efetuar o envio é necessário ao menos 1 créditos.
false A data de agendamento não pode ser retroativa.
false O parametro 'ScheduleDate’ deve ser informado com conteudo.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Agendar SMS / Grupos de Contatos

Com este recurso, é possivel programar a data e horário de envio de SMS para um grupo de contatos.
Para usar este recuso, é necessário ter grupos de contatos já cadastrados em nossa aplicação, caso ainda não tenha feito isso, dê uma olhadinha no recurso Cadastrar Grupos e Adicionar Contatos / Grupos

require 'comtele_sdk'
include ComteleSdk

API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"

@contactmessage_service = ContactMessageService.new(API_KEY)
result = @contactmessage_service.schedule(
  "my_id",            # Sender: Id de requisicao da sua aplicacao para ser retornado no relatorio, pode ser passado em branco.
  "Hello Ruby",     # Conteudo da mensagem a ser enviada.
  "GroupName",        # GroupName: Nome do grupo de contatos que receberao o SMS.
  "yyyy-MM-dd HH:mm") # ScheduleDate: Data que o SMS deve ser disparado.

puts result
Campos Obrigatório Descrição
Sender não Este campo é usado só internamente, e geralmente é bem util para controle. Por exemplo você pode informar um id interno, que ele será exibido no relatório, dispensamdo que você faça “de para” dos ids da Comtele com o sistema que está integrando.
Content sim Conteúdo da mensagem que vai ser recebida pelo número que o SMS será enviado. Nos casos que o conteúdo do SMS superar 160 caracteres, será tarifado mais de um crédito a cada 153 caracteres. Algumas operadoras como a Oi e Sercomtel não suportam concatenação da mensagens, então serão recebidos SMS separadamente.
GroupName sim Nome do grupo de contatos, com todos os telefones que receberao o SMS.
ScheduleDate sim Data de agendamento que o SMS deve ser disparado, formato: yyyy-MM-dd HH:mm.
Exemplo de Retorno de Sucesso
{
  "Success": true, 
  "Object": null, 
  "Message": "A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios."
}
Retornos Previsíveis
Success Descrição
true A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios.
false E necessario informar o grupo de contatos que irao receber o SMS
false Nao foi possivel encontrar um grupo de contatos cadastrado com o nome informado.
false O parâmetro 'Content’ deve ser informado com conteúdo.
false Não foi possível continuar, pois a quantidade de créditos é insuficiente. Para efetuar o envio é necessário ao menos 1 créditos.
false A data de agendamento não pode ser retroativa.
false O parametro 'ScheduleDate’ deve ser informado com conteudo.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Enviar SMS / Dois Fatores

Com este recurso, é possivel enviar via SMS de forma instantânea um código de autenticação para o destinatário, que pode ser validado posteriormente no endpoint a seguir: Validar Código / Dois Fatores.

require 'comtele_sdk'
include ComteleSdk

API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"

@token_service = TokenService.new(API_KEY)
result = @token_service.send_token(
  "11999998888",  # PhoneNumber: Numero de telefone que vai ser enviado o token via SMS.
  "Company")      # Prefix: Identificação da empresa que aparecerá no corpo da mensagem.

print(result)
Campos Obrigatório Descrição
PhoneNumber sim Número de telefone do destinatário que você quer enviar um código para autenticação de dois fatores.
Prefix não Neste campo, você pode informar ao destinatário a origem do token recebido, por exemplo: Comtele: Codigo de Autorizacao xxxxxx.
Exemplo de Retorno de Sucesso
{
  "Success": true, 
  "Object": {
    "Prefix": "", 
    "PhoneNumber": ""
    }, 
  "Message": 
  "O token foi criado com sucesso."
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Object Neste recurso será nulo, pois não existe objeto a ser retornado.
Prefix Prefixo da mensagem, identificação da origem do token, informado no envio.
PhoneNumber Número de telefone do destinatário, informado no envio.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado.
Retornos Previsíveis
Success Descrição
true O token foi criado com sucesso.
false É necessário informar ao menos um destinatário que irá receber o SMS.
false Não foi possível continuar, pois a quantidade de créditos é insuficiente. Para efetuar o envio é necessário ao menos 1 créditos.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Validar Código / Dois Fatores

Com este recurso, é possivel validar o token recebido e informado pelo usuário que recebeu o SMS, enviado pelo endpoint anterior anterior: Enviar SMS / Dois Fatores.

require 'comtele_sdk'
include ComteleSdk

API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"

@token_service = TokenService.new(API_KEY)
result = @token_service.validate_token(
  "TokenCode")  # TokenCode: Token que o cliente informou e deve ser validado pela Comtele.

puts result
Campos Obrigatório Descrição
TokenCode sim Token recebido pelo usuário, que deve ser validado.
Exemplo de Retorno de Sucesso
{
  "Success": true, 
  "Object": {
    "TokenCode": "XXXXXX"
    },
  "Message": "O token informado foi validado com sucesso."
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
TokenCode Token que foi recebido e inserido para ser validado.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado.
Retornos Previsíveis
Success Descrição
true O token informado foi validado com sucesso.
false É necessário informar ao menos um destinatário que irá receber o SMS.
false O token informado é invalido.
false Este token já foi utilizado.
false O intervalo entre a data inicial e a data final devem respeitar o limite maximo de 45 dias por consulta.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Consultar Relatório / Detalhado

Com este recurso, é possivel consultar todos os detalhes disponíveis dos SMS enviados.

require 'comtele_sdk'
include ComteleSdk

API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"

@textmessage_service = TextMessageService.new(API_KEY)
result = @textmessage_service.get_detailed_report(
  "yyyy-MM-dd HH:mm", # StartDate: Data inicial a ser filtrado o relatorio.
  "yyyy-MM-dd HH:mm", # EndDate: Data final a ser filtrado o relatorio.
  DeliveryStatus::All) # DeliveryStatus::All, pode ser Delivered ou Undelivered.

puts result
Campos Obrigatorio Descrição
StartDate sim Data inicial do período que os envios serão consultados. Formato yyyy-MM-dd HH:mm.
EndDate sim Data final do período que os envios serão consultados. Formato yyyy-MM-dd HH:mm.
DeliveryStatus não Status de entrega dos SMS poderão ser filtrados e retornados nos relatórios. Os valores podem ser por ‘All’, para ser exibido todos os SMS entregues e não entregues no período; 'Delivered’ para exibir apenas os SMS entregues; Por fim 'Undelivered’ para exibir somente os SMS não entregues.
Exemplo de Retorno de Sucesso
{
  "Success": true, 
  "Object": [
    {
      "Receiver": "", 
      "Content": "", 
      "Status": "", 
      "ScheduleDate": "", 
      "RequestDate": "", 
      "SystemMessage": "", 
      "DlrStatus": "", 
      "Sender": ""
    }
  ],
  "Message": null
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Receiver Destinatários que receberam o SMS. Formato: DDD + Número.
Content Conteúdo da mensagem que foi recebida pelo número retornado.
Status É o campo de status do SMS enviado, pode ser retornado Processed, para SMS que estão na fila de entrega; Delivered para SMS entregues; Error para casos que ocorreu algum erro no envio e o SMS não foi entregue.
ScheduleDate É o campo que retorna a data que o SMS foi agendado, caso tenha sido feito agendamento, se o envio foi realizado de forma instantânea será retornado null. Formato de data: yyyy-MM-dd HH:mm
RequestDate É o campo que retorna a data que o SMS foi requisitado. Formato de data: yyyy-MM-dd HH:mm
SystemMessage Mensagem detalhada sobre o resultado da operação.
DlrStatus É o campo que informa mais detalhes sobre status do SMS enviado, pode ser retornado Delivered para SMS entregues; Undelivered para SMS não entregues; Rejected para SMS que foram rejeitados por possuir conteúdo inadequado ou telefone incorreto; Expired para SMS que excederam o limite de tentativas de entrega; Accepted, para SMS que estão na fila de entrega
Sender Este campo é o que foi passado um id interno no endpoint de envio do SMS. Ele dispensam que você faça “de para” dos ids da Comtele com o sistema que está integrando.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado, neste caso será sempre null
Retornos Previsíveis
Success Descrição
true Será retornado um objeto JSON com os detalhes de SMS enviados de acordo com a data selecionada.
false Nao foi possivel continuar, pois este metodo da API possui limite de tempo entre requisicoes. O tempo de espera entre sua ultima requisicao e esta e de 30 segundos e ainda faltam XX segundos.
false O parametro 'StartDate’ deve ser informado com conteudo.
false O parametro 'EndDate’ deve ser informado com conteudo.
false O intervalo entre a data inicial e a data final devem respeitar o limite maximo de 45 dias por consulta.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Consultar Relatório / Regra de resposta automática

Com este recurso, é possivel consultar todos os detalhes disponíveis dos SMS enviados/recebidos utilizando a funcionalidade de regra de resposta automatica.

require 'comtele_sdk'
include ComteleSdk

API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"

@contextmessage_service = ContextMessageService.new(API_KEY)
result = @contextmessage_service.get_report(
  "yyyy-MM-dd HH:mm", # StartDate: Data inicial a ser filtrado o relatorio.
  "yyyy-MM-dd HH:mm", # EndDate: Data final a ser filtrado o relatorio.
  "ContextRuleName")  # ContextRuleName: Pode ser passado em branco caso nao queira filtrar a regra especifica que enviada.

puts result
Campos Obrigatório Descrição
StartDate sim Data inicial do período que os envios serão consultados. Formato yyyy-MM-dd HH:mm.
EndDate sim Data final do período que os envios serão consultados. Formato yyyy-MM-dd HH:mm.
ContextRuleName não Neste campo pode ser informado o nome da regra que o contexto de resposta foi programado e cadastrado no sistema para filtrar os resultados somente de uma regra, se não for informado não será aplicado filtro e todos os dados serão exibids.
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object":  [
    {
      "Sender": "", 
      "Content": "", 
      "Received": "", 
      "ContextRuleName": "", 
      "StatusMessage": ""
    }
  ],
  "Message": null
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Sender Este campo é o que foi passado um id interno no endpoint de envio do SMS. Ele dispensam que você faça “de para” dos ids da Comtele com o sistema que está integrando.
Content Conteúdo da mensagem que foi recebida pelo número retornado.
ContextRuleName Nome da regra que o contexto de resposta foi utilizado.
StatusMessage É o campo de status que determina a direção do SMS, se é Enviado ou Recebido.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado, neste caso será sempre null
Retornos Previsíveis
Success Descrição
true Será retornado um objeto JSON com os detalhes de SMS enviados de acordo com a data selecionada.
false O parametro 'StartDate’ deve ser informado com conteudo.
false O parametro 'EndDate’ deve ser informado com conteudo.
false O intervalo entre a data inicial e a data final devem respeitar o limite maximo de 45 dias por consulta.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Consultar Relatório / Respostas

Com este recurso, é possivel consultar todos os detalhes disponíveis dos SMS recebidos utilizando a funcionalidade de recebimento de respostas.

require 'comtele_sdk'
include ComteleSdk

API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"

@reply_service = ReplyServiceMessage.new(API_KEY)
result = @reply_service.get_report(
  "yyyy-MM-dd HH:mm", # StartDate: Data inicial a ser filtrado o relatorio.
  "yyyy-MM-dd HH:mm", # EndDate: Data final a ser filtrado o relatorio.
  "Sender")           # Sender: Pode ser passado em branco caso nao queira filtrar uma resposta. E o numero do telefone de quem ou o que respondeu o SMS.

puts result
Campos Obrigatório Descrição
StartDate sim Data inicial do período que os envios serão consultados. Formato yyyy-MM-dd HH:mm.
EndDate sim Data final do período que os envios serão consultados. Formato yyyy-MM-dd HH:mm.
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object": [
    {
      "Sender": "",
      "SentContent": "",
      "ReceivedContent": "",
      "ReceivedDate": "",
      "SenderName": ""
    }
  ],
  "Message": null
}

Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Sender Este campo, diferentemente dos outros endpoints com recursos de relatório, é o número do telefone de quem ou o que respondeu o SMS, número de origem da resposta recebida.
SentContent Conteúdo da mensagem que foi enviada para o número do telefone de destino..
ReceivedContent Conteúdo da mensagem respondida pelo número do telefone de destino.
ReceivedDate Data que a resposta foi recebida.
SenderName Este campo é o que foi passado um id interno no endpoint de envio do SMS. Ele dispensam que você faça “de para” dos ids da Comtele com o sistema que está integrando.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado, neste caso será sempre null
Retornos Previsíveis
Success Descrição
true Será retornado um objeto JSON com os detalhes de SMS enviados de acordo com a data selecionada.
false Nao foi possivel continuar, pois este metodo da API possui limite de tempo entre requisicoes. O tempo de espera entre sua ultima requisicao e esta e de 30 segundos e ainda faltam XX segundos.
false O parametro 'StartDate’ deve ser informado com conteudo.
false O parametro 'EndDate’ deve ser informado com conteudo.
false O intervalo entre a data inicial e a data final devem respeitar o limite maximo de 45 dias por consulta.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Receber Respostas / Callback

Com este recurso, é possivel receber ao invés de consultar todos os detalhes disponíveis dos SMS recebidos utilizando a funcionalidade de recebimento de respostas.

Configuração da URL

Antes de mais nada, para receber as respostas via callback, é necessário que você ja tenha construído em sua aplicação um webhook para receber a resposta no padrão a seguir, além disso é necessário que o endpoint do seu webhook seja público e que você tenha configurado em sua conta seguindo os seguintes passos:
1 - Acessar o painel em https://sms.comtele.com.br, e inserir os dados de acesso de sua conta.
2 - Na opção Configurações do menu lateral, clique em Alterar Meus Dados.
3 - Na tela de edição dos seus dados pessoais, localize a seção CONFIGURAÇÕES e a opção URL de Callback de Respostas, insira a URL do webhook que irá receber as respostas e clique no botão salvar.
Feito esses passos, em um intervalo máximo de 30 minutos, todas as respostas que estiverem atrelados aos SMS enviados pelo seu usuário serão retornados via callback.

Exemplo do objeto da resposta
  {
    "Sender":string,
    "SentContent":string,
    "ReceivedContent":string,
    "ReceiveDate":"yyyy-MM-ddThh:mm:ss.ms",
    "SenderName":string
  }
Campos do Retorno
Campos Descrição
Sender Este campo, diferentemente dos outros endpoints com recursos de relatório, é o número do telefone de quem ou o que respondeu o SMS, número de origem da resposta recebida.
SentContent Conteúdo da mensagem que foi enviada para o número do telefone de destino..
ReceivedContent Conteúdo da mensagem respondida pelo número do telefone de destino.
ReceivedDate Data que a resposta foi recebida.
SenderName Este campo é o que foi passado um id interno no endpoint de envio do SMS. Ele dispensam que você faça “de para” dos ids da Comtele com o sistema que está integrando.

Cadastrar / Grupos de Contatos

Com este recurso, é possivel cadastrar grupos de contatos para segmentar estes contatos em listas que podem ser usadas no momento do envio.

require 'comtele_sdk'
include ComteleSdk

API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"

@contact_service = ContactService.new(API_KEY)
result = @contact_service.create_group(
  "GroupName",    # GroupName: Nome do grupo a ser cadastrado.
  "Description")  # Description: Breve descricao do grupo a ser cadastrado.

puts result
Campos Obrigatório Descrição
Name sim Nome do grupo para segmentação dos contatos, este campo que deve ser informado no método de envio.
Description não Breve descrição do grupo, pode ser usado para inserir detalhes e informações adicionais sobre o grupo.
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object": {
    "Name": "group_name",
    "Description": "group_description"
  },
  "Message": "O grupo de contatos foi criado com sucesso."
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Name Nome do grupo que foi adicionado.
Description Descrição do grupo que foi adicionado.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado.
Retornos Previsíveis
Success Descrição
true O grupo de contatos foi criado com sucesso.
false O nome do grupo deve ser informado.
false O nome do grupo informado já existe, por favor escolha um novo nome.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Consultar / Grupos de Contatos

Com este recurso, é possivel consultar os grupos de contatos cadastrados.

Consultar Todos os Grupos

Com este recurso, é possivel consultar detalhes de todos os grupos de contatos cadastrados em sua conta.

require 'comtele_sdk'
include ComteleSdk

API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"

@contact_service = ContactService.new(API_KEY)
result = @contact_service.get_all_groups()

puts result

Consultar Grupo Específico

Com este recurso, é possivel consultar detalhes filtrando um grupo de contatos específico cadastrado em sua conta.

from comtele_sdk.contact_service import ContactService

api_key = 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'

contact_service = ContactService(API_KEY)
result = contact_service.get_group_name(
  'GroupName')  # GroupName: Nome do grupo a ser filtrado os detalhes.

puts result
Campos Obrigatório Descrição
{group_name} não Caso queira filtrar os detalhes somente de um grupo é possível utilizando o recurso get_group_by_name e infomar o nome do grupo, ao invés do recurso get_all_groups.
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object": [
    {
      "Id": comtele_group_id,
      "Name": "group_name",
      "Description": "group_description",
      "TotalContacts": 1,
      "LastUsed": "yyyy-MM-dd HH:mm:ss.ms"
    }
  ],
  "Message": null
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Id Id junto a Comtele do grupo adicionado, campo numérico.
Name Nome do grupo.
Description Descrição do grupo.
TotalContacts Número total de contatos atualmente no grupo.
LastUsed Data com a última vez que o grupo foi utilizado em um envio.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado, neste caso será sempre null
Retornos Previsíveis
Success Descrição
true Será retornado um objeto JSON com os detalhes do grupo ou dos grupos de contatos consultados com o critério selecionado.
false Nao foi encontrado nenhum grupo com o nome {group_name}
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Excluir / Grupos de Contatos

Com este recurso, é possivel excluir grupos de contatos cadastrados.

require 'comtele_sdk'
include ComteleSdk

API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"

@contact_service = ContactService(API_KEY)
result = @contact_service.remove_group(
  "GroupName") # GroupName: Nome do grupo a ser excluido.

puts result
Campos Obrigatório Descrição
group_name sim Nome do grupo de contatos.
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object": null,
  "Message": "O grupo de contatos foi removido com sucesso"
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Object Neste recurso será nulo, pois não existe objeto a ser retornado.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado.
Retornos Previsíveis
HTTP Status Descrição
true O grupo de contatos foi removido com sucesso.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Cadastrar Contatos / Grupos de Contatos

Com este recurso, é possivel cadastrar contatos em grupos para segmentar estes contatos em listas que podem ser usadas no momento do envio.

require 'comtele_sdk'
include ComteleSdk

API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"

@contact_service = ContactService(API_KEY)
result = @contact_service.add_contact_to_group(
  "GroupName",    # GroupName: Nome do grupo ja existente.
  "11999998888",  # ContactPhone: Numero de telefone do contato a ser cadastrado. 
  "ContactName")  # ContactName: Nome do contato a ser cadastrado, pode ser informado em branco.

puts result
Campos Obrigatório Descrição
GroupName sim Nome do grupo que ja foi cadastrado para a segmentação dos contatos.
ContactPhone sim Número de telefone do contato que está adicionando para receber os SMS.
ContactName não Neste campo, você pode adicinar o nome do contato, que poderá ser usado no momento do envio via painel para fazer envios personalizados.
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object": {
    "GroupName": "group_name",
    "Action": "add_number",
    "ContactPhone": "phone_number",
    "ContactName": "contact_name"
  },
  "Message": "O contato foi inserido no grupo com sucesso."
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
GroupName Nome do grupo em que o contato foi adicionado.
Action add_number, ação que foi informada para adicionar o número de telefone do contato.
ContactPhone Número de telefone do contato que foi adicionado.
ContactName Nome do contato que foi adicionado.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado.
Retornos Previsíveis
HTTP Status Descrição
true O contato foi inserido no grupo com sucesso.
false O grupo informado nao foi encontrado.
false O numero de telefone deve ser informado.
false O parametro Action deve ser informado.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Excluir Contatos / Grupos de Contatos

Com este recurso, é possivel remover contatos em grupos segmentados, para que estes contatos não recebam mais SMS destas listas quando usadas no momento do envio.

require 'comtele_sdk'
include ComteleSdk

API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"

@contact_service = ContactService(API_KEY)
result = @contact_service.remove_contact_from_group(
  "GroupName",    # GroupName: Nome do grupo que o contato esta cadastrado.
  "11999998888")  # ContactPhone: Numero de telefone do contato a ser excluido.

puts result
Campos Obrigatório Descrição
GroupName sim Nome do grupo que ja foi cadastrado para a segmentação dos contatos.
ContactPhone sim Número de telefone do contato que está adicionando para receber os SMS.
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object": {
    "GroupName": "group_name",
    "Action": "remove_number",
    "ContactPhone": "phone_number",
    "ContactName": "contact_name"
  },
  "Message": "O contato foi removido do grupo com sucesso."
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
GroupName Nome do grupo em que o contato foi adicionado.
Action remove_number, ação que foi informada para remover o número de telefone do contato.
ContactPhone Número de telefone do contato que foi adicionado.
ContactName Nome do contato que foi adicionado.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado.
Retornos Previsíveis
HTTP Status Descrição
true O contato foi removido do grupo com sucesso.
false O grupo informado nao foi encontrado.
false O numero de telefone deve ser informado.
false O parametro Action deve ser informado.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Cadastrar Contatos / Blacklist

Com este recurso, é possivel adicionar números de telefone em uma blacklist para não receber mais SMS proveniente de sua conta, assim, você pode se despreocupar com uma verificação antes de mandar uma mensagem para números que não desejam mais receber seus SMS, basta adicionar estes telefones em sua blacklist, e caso seja enviado um SMS para este número, não será consumido crédito, o SMS não será entregue e aparecerá no relatório detalhado, uma mensagem informando que o número não recebeu o SMS pois está cadastrado na blacklist.

require 'comtele_sdk'
include ComteleSdk

API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"

@blacklist_service = BlacklistService.new(API_KEY)
result = @blacklist_service.insert(
  "11999998888")  # PhoneNumber: Numero de telefone do contato a ser adicionado na blacklist.

puts result
Campos Obrigatório Descrição
PhoneNumber sim Número de telefone do destinatário que não deve mais receber qualquer SMS enviado por sua conta.
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object": {
    "PhoneNumber": "",
    "BlacklistDate": "yyyy-MM-ddTHH:mm:ss.ms"
  },
  "Message": "O numero foi inserido na blacklist com sucesso."
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
PhoneNumber Número de telefone que foi adicionado na blacklist.
BlacklistDate Data que o telefone foi adicionado na blacklist.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado.
Retornos Previsíveis
Success Descrição
true O numero foi inserido na blacklist com sucesso.
false O telefone deve ser informado
false O número informado é inválido.
false O campo “PhoneNumber” não suporta texto, somente números.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.

Consultar Contatos / Blacklist

Com este recurso, é possivel consultar os números de telefone e a data que foram adicionados na sua blacklist.

Consultar Todos Telefones

Com este recurso, é possivel consultar detalhes de todos os contatos cadastrados em sua blacklist.

require 'comtele_sdk'
include ComteleSdk

API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"

@blacklist_service = BlacklistService.new(API_KEY)
result = @blacklist_service.get_blacklist()

puts result

Consultar Telefone Específico

Com este recurso, é possivel consultar detalhes filtrando um contato específico cadastrado em sua blacklist.

require 'comtele_sdk'
include ComteleSdk

API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"

@blacklist_service = BlacklistService.new(API_KEY)
result = @blacklist_service.get_by_phone_number(
  "11999998888")  # PhoneNumber: Numero de telefone do contato a ser consultado na blacklist.

puts result
Campos Obrigatório Descrição
PhoneNumber não Número de telefone do destinatário que não deve mais receber qualquer SMS enviado por sua conta.
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object": [
    {
      "PhoneNumber": "phone_number",
      "BlacklistDate": "yyyy-MM-ddTHH:mm:ss.ms"
    }
  ],
  "Message": null
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
PhoneNumber Número de telefone que foi adicionado na blacklist.
BlacklistDate Data que o telefone foi adicionado na blacklist.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado, neste caso será sempre null
Retornos Previsíveis
Success Descrição
true Será retornado um objeto JSON com os detalhes do número ou dos números de telefones consultados com o critério selecionado.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.

Excluir Contatos / Blacklist

Com este recurso, é possivel remover números de telefone que foram adicionados na blacklist para voltar a receber os SMS provenientes de sua conta.

require 'comtele_sdk'
include ComteleSdk

API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"

@blacklist_service = BlacklistService.new(API_KEY)
result = @blacklist_service.remove(
  "11999998888")  # PhoneNumber: Numero de telefone do contato a ser excluido na blacklist.

puts result
Campos Obrigatório Descrição
PhoneNumber não Número de telefone do destinatário que não deve mais receber qualquer SMS enviado por sua conta.
Exemplo de Retorno de Sucesso
  {
    "Success": true,
    "Object": {
      "PhoneNumber": "",
      "BlacklistDate": "yyyy-MM-ddTHH:mm:ss.ms"
    },
    "Message": "O numero foi removido da blacklist com sucesso."
  }
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resutado da operação.
PhoneNumber Número de telefone que foi removido na blacklist.
BlacklistDate Data que o telefone foi adicionado na blacklist.
Message Neste campo é retornado mais detalhes sobre o resutado da operação do recurso que foi utilizado.
Retornos Previsíveis
Success Descrição
true Será retornado um objeto JSON com os detalhes do número ou dos números de telefones consultadoscom o critério selecionado.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.

Consultar Saldo

Com este recurso, é possivel consultar a quantidade de saldo disponível em sua conta ou subcontas.

Consultar Saldo

Com este recurso, é possivel consultar saldo de sua conta.

require 'comtele_sdk'
include ComteleSdk

API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"

@credit_service = CreditService.new(API_KEY)
result = @credit_service.get_my_credits()

puts result

Consultar Saldo Subcontas

Com este recurso, é possivel consultar saldo de suas subconta.

require 'comtele_sdk'
include ComteleSdk

API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"

@credit_service = CreditService.new(API_KEY)
result = @credit_service.get_credits(
  "Username") # Username: Username da subconta a ter o saldo consultado.

puts result
Campos Obrigatório Descrição
Username não Se não for informado username, será retornado o saldo da conta que está relacionada a chave de integração que está sendo utilizada. A funcionalidade de consultar saldo de uma subconta só está disponível para contas do tipo revenda, que possui funcionalidades administrativas em suas subcontas.
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object": 0,
  "Message": null
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Object É retornado a quantidade de saldo disponível no momento da consulta.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado, neste caso será sempre null
Retornos Previsíveis
Success Descrição
true Será retornado um objeto JSON a quantidade de saldo disponível no momento da consulta.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.

Inserir Saldo / Subcontas

Com este recurso, é possivel adicionar saldo em suas subcontas. Recurso disponível apenas para contas do tipo revenda

require 'comtele_sdk'
include ComteleSdk

API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"

@credit_service = CreditService.new(API_KEY)
result = @credit_service.add_credits(
  "Username") # Username: Username da subconta a ter o credito inserido ou removido.
  "Amount")   # Amount: Quantidade de creditos a ser adicionada, o valor tambem pode ser negativo para remover o credito.

puts result
Campos Obrigatório Descrição
sub_account sim Username da subconta que pertence a sua revenda que terão os créditos adicionados. Recurso disponível apenas para contas do tipo revenda
Amount sim Quantidade de créditos a ser adicionados da subconta, o valor pode ser negativo para remover o crédito. Recurso disponível apenas para contas do tipo revenda
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object": null,
  "Message": "Os creditos foram alterados com sucesso."
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Object Neste recurso será nulo, pois não existe objeto a ser retornado.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado, neste caso será sempre null
Retornos Previsíveis
Success Descrição
true Os creditos foram alterados com sucesso.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
false Será retornado um objeto JSON com o campo “Success”: false com Object e Message null, pois o usuário não foi encontrado ou não está atrelado a conta com a chave que está utilizando.

Consultar Histórico de Recargas / Subcontas

Com este recurso, é possivel consultar a histórico de créditos adicionados suas subcontas. Recurso disponível apenas para contas do tipo revenda

require 'comtele_sdk'
include ComteleSdk

API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"

@credit_service = CreditService.new(API_KEY)
result = @credit_service.get_history(
  "Username") # Username: Username da subconta a ter o historico de recargas consultado.

puts result
Campos Obrigatório Descrição
Username sim Username da subconta que pertence a sua revenda que deseja consultar o histórico de créditos adicionados.
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object": [
    {
      "Amount": 1,
      "Balance": 1,
      "ExpiryDate": null,
      "HistoryDate": "yyyy-MM-dd HH:mm.ms",
      "AssociadedUsername": "username"
    }
  ],
  "Message": null
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Amount Quantidade de crédito que foi adicionado.
Balance Quantidade de crédito adicionado, somada a quandidade saldo que estava disponível no momento que foi adicionado.
ExpiryDate Caso o saldo disponível tenha data de expiração, neste caso será sempre null
HistoryDate Timestamp do momento que o crédito foi adicionado na conta.
AssociadedUsername Username da conta responsável por adicionar o crédito para o usuário.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado, neste caso será sempre null
Retornos Previsíveis
Success Descrição
true Será retornado um objeto JSON a quantidade de saldo disponível no momento da consulta.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.

Cadastrar / Subcontas

Com este recurso, é possivel cadastrar subcontas, se a sua conta for do tipo revenda. Dessa maneira é possível separar completamente a utilização das funcionalidades, créditos e acesso.

require 'comtele_sdk'
include ComteleSdk

API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"

@account_service = AccountService.new(API_KEY)
result = @account_service.create_account(
  "Comtele",              # Firstname: Primeiro nome da pessoa, ou nome da empresa a ser cadastrada.
  "test@comtele.com.br",  # Email: Email de contato do responsavel pela conta.
  "14121127000173",       # CorporateTaxpayer: CNPJ da empresa se for pessoa juridica.
  "00000000000",          # IndividualTaxpayer: CPF do responsavel se for pessoa fisica.
  "11999998888",          # MobileNumber: Numero de telefone do responsavel pela conta.
  "pass4w")               # Password: Senha da conta a ser cadastrada.

puts result
Campos Obrigatório Descrição
Firstname sim Se refere ao primeiro nome do usuário, este nome será exibido no painel para dar boas vindas e etc. O campo não pode estar vazio e pode conter caracteres alfanuméricos.
Lastname não Sobrenome do usuário.
Email sim O e-mail do usuário que está sendo cadastrado, pode ser usado para fazer login no painel.
CorporateTaxpayer CNPJ do usuário, caso seja pessoa jurídica, só é necessário informar um documento, CNPJ ou CPF.
IndividualTaxpayer CPF do usuário, caso seja pessoa física, só é necessário informar um documento, CPF ou CNPJ.
MobileNumber sim Celular do usuário que está sendo cadastrado.
Password sim Senha de acesso ao painel do usuário que está sendo cadastrado.
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object": {
    "Enabled": true,
    "Username": "sub_account_username",
    "Balance": 0,
    "Connection": null,
    "LastBalanceHistory": null
  },
  "Message": "O usuario foi inserido com sucesso"
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Enabled Status da subconta que foi adicionada, no caso todas as subcontas recém criadas ja são ativadas.
Username Username da subconta que foi criada.
Balance Quantidade de créditos disponíveis na subconta que foi criada, todas as subcontas são criadas com 0 créditos.
Connection Data mais recente que a subconta efetuou login no painel.
LastBalanceHistory Data mais recente que a subconta teve créditos adicionados.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado.
Retornos Previsíveis
Success Descrição
true O usuario foi inserido com sucesso.
false O nome do usuario deve ser informado.
false O telefone celular do usuario deve ser informado.
false O e-mail já está em uso, por favor escolha um novo e-mail.
false O e-mail informado é inválido ou não foi informado.
false O campo C.P.F. ou o campo C.N.P.J. deve ser preenchido.
false A senha do usuario deve ser informada.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Consultar / Subcontas

Com este recurso, é possivel consultar as subcontas cadastradas e atreladas a sua conta.

Consultar Todos as Subcontas

Com este recurso, é possivel consultar detalhes de todas as subcontas cadastrados em sua conta.

require 'comtele_sdk'
include ComteleSdk

API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"

@account_service = AccountService.new(API_KEY)
result = @account_service.get_all_accounts()

puts result

Consultar Subconta Específica

Com este recurso, é possivel consultar detalhe de uma subconta específica atrelada a sua conta.

require 'comtele_sdk'
include ComteleSdk

API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"

@account_service = AccountService.new(API_KEY)
result = @account_service.get_account_by_username(
  "Username") # Username: Username da subconta que deve ser consultado os detalhes cadastrais.

puts result
Campos Obrigatório Descrição
sub_account não Username da subconta que pertence a sua revenda. Recurso disponível apenas para contas do tipo revenda
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object": {
    "Enabled": true,
    "Username": "sub_account_username",
    "Balance": 0,
    "Connection": yyyy-MM-ddTHH:mm:ss.ms,
    "LastBalanceHistory": yyyy-MM-ddTHH:mm:ss.ms
  },
  "Message": "O usuario foi inserido com sucesso"
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Enabled Status da subconta que foi adicionada.
Username Username da subconta que foi informado na consulta.
Balance Saldo disponível na subconta no momento da consulta.
Connection Data mais recente que a subconta efetuou login no painel.
LastBalanceHistory Data mais recente que a subconta teve créditos adicionados.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado, neste caso será sempre null
Retornos Previsíveis
Success Descrição
true Será retornado um objeto JSON com os detalhes do grupo ou dos grupos de contatos consultados com o critério selecionado.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
false Algum problema com o servidor em que está o recurso acessado, neste caso, tente acessar novamente.
false Houve um time out na requisição ao efetuar a conexão com o endpoint.

Node.js

Instalação da SDK

comtele-sdk está disponível no NPM o código é open source e pode ser encontrado em nosso GitHub github.com/comtele.

A versão mínima necessária do Node para instalar a SDK é a 6.9.0, caso esteja utilizando uma versão inferior recomendamos que utilize o NVM, além disso, você pode dar uma olhadinha no nosso GitHub como fazer as chamadas via API Rest e fazer a sua própria versão.

$ npm install comtele-sdk

Enviar SMS

Com este recurso, é possivel enviar SMS de forma instantânea.

const TextMessageService = require('comtele-sdk').TextMessageService;
const apiKey = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

var textMessageService = new TextMessageService(apiKey);
textMessageService.send(
  "my_id",          // Sender: Id de requisicao da sua aplicacao para ser retornado no relatorio, pode ser passado em branco.
  "Hello Nodejs",   // Content: Conteudo da mensagem a ser enviada.
  ["11999998888"],  // Receivers: Numero de telefone que vai ser enviado o SMS.
  (result) => console.log(result));
Campos Obrigatório Descrição
Sender não Este campo é usado só internamente, e geralmente é bem util para controle. Por exemplo você pode informar um id interno, que ele será exibido no relatório, dispensamdo que você faça “de para” dos ids da Comtele com o sistema que está integrando.
Content sim Conteúdo da mensagem que vai ser recebida pelo número que o SMS será enviado. Nos casos que o conteúdo do SMS superar 160 caracteres, será tarifado mais de um crédito a cada 153 caracteres. Algumas operadoras como a Oi e Sercomtel não suportam concatenação da mensagens, então serão recebidos SMS separadamente.
Receivers sim Destinatários que irão receber o SMS. Para dois ou mais destinatários, separe por uma vírgula os telefones, formato: DDD + Número.
Exemplo de Retorno de Sucesso
{
  "Success": true, 
  "Object": null, 
  "Message": "A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios."
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Object Neste recurso será nulo, pois não existe objeto a ser retornado.
Content Conteúdo da mensagem que foi recebida pelo número retornado.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado.
Retornos Previsíveis
Success Descrição
true A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios.
false Object reference not set to an instance of an object.
Possível Causa: Nenhum objeto foi informado no Body da requisição.
false É necessário informar ao menos um destinatário que irá receber o SMS.
false O parâmetro “Content” deve ser informado com conteúdo.
false Não foi possível continuar, pois a quantidade de créditos é insuficiente. Para efetuar o envio é necessário ao menos 1 créditos.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Enviar SMS / Regra de Resposta Automática

Com este recurso, é possivel enviar SMS de forma instantânea e quando o SMS for respondido, é possivel enviar uma resposta de forma automática, baseado em um contexto previamente configurado.
Para utilizar este recurso, é necessário que você acesse a opção Resposta Automática no menu Configurações no painel de SMS, cadastre uma regra de resposta automática e informe o nome que foi cadastrado no campo ContextRuleName no momento que for usar o endpoint.

const ContextMessageService = require('comtele-sdk').ContextMessageService;
const apiKey = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

var contextMessageService = new ContextMessageService(apiKey);
contextMessageService.send(
  "my_id",            // Sender: Id de requisicao da sua aplicacao para ser retornado no relatorio, pode ser passado em branco.
  "ContextRuleName",  // ContextRuleName: Nome da regra de resposta automatica a ser usada no envio.
  ["11999998888"],    // Receivers: Numero de telefone que vai ser enviado o SMS.
  (result) => console.log(result));
Campos Obrigatório Descrição
Sender não Este campo é usado só internamente, e geralmente é bem util para controle. Por exemplo você pode informar um id interno, que ele será exibido no relatório, dispensamdo que você faça “de para” dos ids da Comtele com o sistema que está integrando.
ContextRuleName sim Neste campo deve ser informado o nome da regra que o contexto de resposta foi programado e cadastrado no sistema que no caso será usado neste envio.
Receivers sim Destinatários que irão receber o SMS. Para dois ou mais destinatários, separe por uma vírgula os telefones, formato: DDD + Número.
Exemplo de Retorno de Sucesso
{
  "Success": true, 
  "Object": null, 
  "Message": "A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios."
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Object Neste recurso será nulo, pois não existe objeto a ser retornado.
Content Conteúdo da mensagem que foi recebida pelo número retornado.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado.
Retornos Previsíveis
Success Descrição
true A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios.
false Object reference not set to an instance of an object.
Possível Causa: Nenhum objeto foi informado no Body da requisição.
false É necessário informar ao menos um destinatário que irá receber o SMS.
false E necessario informar o nome da regra de resposta automatica.
false Nao foi possivel encontrar uma regra de resposta automatica cadastrada com o nome informado.
false Não foi possível continuar, pois a quantidade de créditos é insuficiente. Para efetuar o envio é necessário ao menos 1 créditos.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Enviar SMS / Grupos de Contatos

Com este recurso, é possivel enviar SMS de forma instantânea para um grupo de contatos.
Para usar este recuso, é necessário ter grupos de contatos já cadastrados em nossa aplicação, caso ainda não tenha feito isso, dê uma olhadinha no recurso Cadastrar Grupos e Adicionar Contatos / Grupos

const ContactMessageService = require('comtele-sdk').ContactMessageService;
const apiKey = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

var contactMessageService = new ContactMessageService(apiKey);
contactMessageService.send(
  "my_id",            // Sender: Id de requisicao da sua aplicacao para ser retornado no relatorio, pode ser passado em branco.
  "Hello Nodejs",     // Content: Conteudo da mensagem a ser enviada.
  "GroupName",        // GroupName: Nome do grupo de contatos que receberao o SMS
  (result) => console.log(result));
Campos Obrigatório Descrição
Sender não Este campo é usado só internamente, e geralmente é bem util para controle. Por exemplo você pode informar um id interno, que ele será exibido no relatório, dispensamdo que você faça “de para” dos ids da Comtele com o sistema que está integrando.
Content sim Conteúdo da mensagem que vai ser recebida pelo número que o SMS será enviado. Nos casos que o conteúdo do SMS superar 160 caracteres, será tarifado mais de um crédito a cada 153 caracteres. Algumas operadoras como a Oi e Sercomtel não suportam concatenação da mensagens, então serão recebidos SMS separadamente.
GroupName sim Nome do grupo de contatos, com todos os telefones que receberão o SMS.
Exemplo de Retorno de Sucesso
{
  "Success": true, 
  "Object": null, 
  "Message": "A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios."
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Object Neste recurso será nulo, pois não existe objeto a ser retornado.
Content Conteúdo da mensagem que foi recebida pelo número retornado.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado.
Retornos Previsíveis
Success Descrição
true A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios.
false E necessario informar o grupo de contatos que irao receber o SMS
false Nao foi possivel encontrar um grupo de contatos cadastrado com o nome informado.
false O parâmetro “Content” deve ser informado com conteúdo.
false Não foi possível continuar, pois a quantidade de créditos é insuficiente. Para efetuar o envio é necessário ao menos 1 créditos.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Agendar SMS

Com este recurso, é possivel programar a data e horário de envio de SMS para serem enviados.

const TextMessageService = require('comtele-sdk').TextMessageService;
const apiKey = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

var textMessageService = new TextMessageService(apiKey);
textMessageService.schedule(
  "my_id",            // Sender: Id de requisicao da sua aplicacao para ser retornado no relatorio, pode ser passado em branco.
  "Hello Nodejs",     // Content: Conteudo da mensagem a ser enviada.
  "yyyy-MM-dd HH:mm", // ScheduleDate: Data que o SMS deve ser disparado.
  ["11999998888"],    // Receivers: Numero de telefone que vai ser enviado o SMS.
  (result) => console.log(result));
Campos Obrigatório Descrição
Sender não Este campo é usado só internamente, e geralmente é bem util para controle. Por exemplo você pode informar um id interno, que ele será exibido no relatório, dispensamdo que você faça “de para” dos ids da Comtele com o sistema que está integrando.
Content sim Conteúdo da mensagem que vai ser recebida pelo número que o SMS será enviado. Nos casos que o conteúdo do SMS superar 160 caracteres, será tarifado mais de um crédito a cada 153 caracteres. Algumas operadoras como a Oi e Sercomtel não suportam concatenação da mensagens, então serão recebidos SMS separadamente.
ScheduleDate sim Data de agendamento que o SMS deve ser disparado, formato: yyyy-MM-dd HH:mm.
Receivers sim Destinatários que irão receber o SMS. Para dois ou mais destinatários, separe por uma vírgula os telefones, formato: DDD + Número.
Exemplo de Retorno de Sucesso
{
  "Success": true, 
  "Object": null, 
  "Message": "A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios."
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Object Neste recurso será nulo, pois não existe objeto a ser retornado.
Content Conteúdo da mensagem que foi recebida pelo número retornado.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado.
Retornos Previsíveis
Success Descrição
true A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios.
false É necessário informar ao menos um destinatário que irá receber o SMS.
false O parâmetro ‘Content’ deve ser informado com conteúdo.
false Não foi possível continuar, pois a quantidade de créditos é insuficiente. Para efetuar o envio é necessário ao menos 1 créditos.
false A data de agendamento não pode ser retroativa.
false O parametro 'ScheduleDate’ deve ser informado com conteudo.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Agendar SMS / Regra de Resposta Automática

Com este recurso, é possivel programar a data e horário de envio de SMS para serem enviados, e quando o SMS for respondido, é possivel enviar uma resposta de forma automática, baseado em um contexto previamente configurado.
Para utilizar este recurso, é necessário que você acesse a opção Resposta Automática no menu Configurações no painel de SMS, cadastre uma regra de resposta automática e informe o nome que foi cadastrado no campo ContextRuleName no momento que for usar o endpoint.

const TextMessageService = require('comtele-sdk').TextMessageService;
const apiKey = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

var textMessageService = new TextMessageService(apiKey);
textMessageService.schedule(
  "my_id",            // Sender: Id de requisicao da sua aplicacao para ser retornado no relatorio, pode ser passado em branco.
  "ContextRuleName",  // ContextRuleName: Nome da regra de resposta automatica a ser usada no envio.
  "yyyy-MM-dd HH:mm", // ScheduleDate: Data que o SMS deve ser disparado.
  ["11999998888"],    // Receivers: Numero de telefone que vai ser enviado o SMS.
  (result) => console.log(result));
Campos Obrigatório Descrição
Sender não Este campo é usado só internamente, e geralmente é bem util para controle. Por exemplo você pode informar um id interno, que ele será exibido no relatório, dispensamdo que você faça “de para” dos ids da Comtele com o sistema que está integrando.
ContextRuleName sim Neste campo deve ser informado o nome da regra que o contexto de resposta foi programado e cadastrado no sistema que no caso será usado neste envio.
ScheduleDate sim Data de agendamento que o SMS deve ser disparado, formato: yyyy-MM-dd HH:mm.
Receivers sim Destinatários que irão receber o SMS. Para dois ou mais destinatários, separe por uma vírgula os telefones, formato: DDD + Número.
Exemplo de Retorno de Sucesso
{
  "Success": true, 
  "Object": null, 
  "Message": "A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios."
}
Retornos Previsíveis
Success Descrição
true A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios.
false É necessário informar ao menos um destinatário que irá receber o SMS.
false E necessario informar o nome da regra de resposta automatica.
false Nao foi possivel encontrar uma regra de resposta automatica cadastrada com o nome informado.
false Não foi possível continuar, pois a quantidade de créditos é insuficiente. Para efetuar o envio é necessário ao menos 1 créditos.
false A data de agendamento não pode ser retroativa.
false O parametro 'ScheduleDate’ deve ser informado com conteudo.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Agendar SMS / Grupos de Contatos

Com este recurso, é possivel programar a data e horário de envio de SMS para um grupo de contatos.
Para usar este recuso, é necessário ter grupos de contatos já cadastrados em nossa aplicação, caso ainda não tenha feito isso, dê uma olhadinha no recurso Cadastrar Grupos e Adicionar Contatos / Grupos

const TextMessageService = require('comtele-sdk').TextMessageService;
const apiKey = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

var textMessageService = new TextMessageService(apiKey);
textMessageService.schedule(
  "my_id",            // Sender: Id de requisicao da sua aplicacao para ser retornado no relatorio, pode ser passado em branco.
  "Hello Nodejs",     // Conteudo da mensagem a ser enviada.
  "GroupName",        // GroupName: Nome do grupo de contatos que receberao o SMS.
  "yyyy-MM-dd HH:mm", // ScheduleDate: Data que o SMS deve ser disparado.
  (result) => console.log(result));
Campos Obrigatório Descrição
Sender não Este campo é usado só internamente, e geralmente é bem util para controle. Por exemplo você pode informar um id interno, que ele será exibido no relatório, dispensamdo que você faça “de para” dos ids da Comtele com o sistema que está integrando.
Content sim Conteúdo da mensagem que vai ser recebida pelo número que o SMS será enviado. Nos casos que o conteúdo do SMS superar 160 caracteres, será tarifado mais de um crédito a cada 153 caracteres. Algumas operadoras como a Oi e Sercomtel não suportam concatenação da mensagens, então serão recebidos SMS separadamente.
GroupName sim Nome do grupo de contatos, com todos os telefones que receberao o SMS.
ScheduleDate sim Data de agendamento que o SMS deve ser disparado, formato: yyyy-MM-dd HH:mm.
Exemplo de Retorno de Sucesso
{
  "Success": true, 
  "Object": null, 
  "Message": "A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios."
}
Retornos Previsíveis
Success Descrição
true A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios.
false E necessario informar o grupo de contatos que irao receber o SMS
false Nao foi possivel encontrar um grupo de contatos cadastrado com o nome informado.
false O parâmetro 'Content’ deve ser informado com conteúdo.
false Não foi possível continuar, pois a quantidade de créditos é insuficiente. Para efetuar o envio é necessário ao menos 1 créditos.
false A data de agendamento não pode ser retroativa.
false O parametro 'ScheduleDate’ deve ser informado com conteudo.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Enviar SMS / Dois Fatores

Com este recurso, é possivel enviar via SMS de forma instantânea um código de autenticação para o destinatário, que pode ser validado posteriormente no endpoint a seguir: Validar Código / Dois Fatores.

const TokenService = require('comtele-sdk').TokenService;
const apiKey = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

var tokenService = new TokenService(apiKey);
tokenService.sendToken(
  "11999998888",  // PhoneNumber: Numero de telefone que vai ser enviado o token via SMS.
  "Company",      // Prefix: Identificação da empresa que aparecerá no corpo da mensagem.
  (result) => console.log(result));
Campos Obrigatório Descrição
PhoneNumber sim Número de telefone do destinatário que você quer enviar um código para autenticação de dois fatores.
Prefix não Neste campo, você pode informar ao destinatário a origem do token recebido, por exemplo: Comtele: Codigo de Autorizacao xxxxxx.
Exemplo de Retorno de Sucesso
{
  "Success": true, 
  "Object": {
    "Prefix": "", 
    "PhoneNumber": ""
    }, 
  "Message": 
  "O token foi criado com sucesso."
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Object Neste recurso será nulo, pois não existe objeto a ser retornado.
Prefix Prefixo da mensagem, identificação da origem do token, informado no envio.
PhoneNumber Número de telefone do destinatário, informado no envio.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado.
Retornos Previsíveis
Success Descrição
true O token foi criado com sucesso.
false É necessário informar ao menos um destinatário que irá receber o SMS.
false Não foi possível continuar, pois a quantidade de créditos é insuficiente. Para efetuar o envio é necessário ao menos 1 créditos.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Validar Código / Dois Fatores

Com este recurso, é possivel validar o token recebido e informado pelo usuário que recebeu o SMS, enviado pelo endpoint anterior anterior: Enviar SMS / Dois Fatores.

const TokenService = require('comtele-sdk').TokenService;
const apiKey = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

var tokenService = new TokenService(apiKey);
tokenService.validateToken(
  "TokenCode",  // TokenCode: Token que o cliente informou e deve ser validado pela Comtele.
  (result) => console.log(result));
Campos Obrigatório Descrição
TokenCode sim Token recebido pelo usuário, que deve ser validado.
Exemplo de Retorno de Sucesso
{
  "Success": true, 
  "Object": {
    "TokenCode": "XXXXXX"
    },
  "Message": "O token informado foi validado com sucesso."
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
TokenCode Token que foi recebido e inserido para ser validado.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado.
Retornos Previsíveis
Success Descrição
true O token informado foi validado com sucesso.
false É necessário informar ao menos um destinatário que irá receber o SMS.
false O token informado é invalido.
false Este token já foi utilizado.
false O intervalo entre a data inicial e a data final devem respeitar o limite maximo de 45 dias por consulta.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Consultar Relatório / Detalhado

Com este recurso, é possivel consultar todos os detalhes disponíveis dos SMS enviados.

const TextMessageService = require('comtele-sdk').TextMessageService;
const apiKey = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

var textMessageService = new TextMessageService(apiKey);
textMessageService.getDetailedReport(
  "yyyy-MM-dd HH:mm",  // StartDate: Data inicial a ser filtrado o relatorio.
  "yyyy-MM-dd HH:mm",  // EndDate: Data final a ser filtrado o relatorio.
  DeliveryStatus.All, // DeliveryStatus.All, pode ser Delivered ou Undelivered.
  (result) => console.log(result));
Campos Obrigatorio Descrição
StartDate sim Data inicial do período que os envios serão consultados. Formato yyyy-MM-dd HH:mm.
EndDate sim Data final do período que os envios serão consultados. Formato yyyy-MM-dd HH:mm.
DeliveryStatus não Status de entrega dos SMS poderão ser filtrados e retornados nos relatórios. Os valores podem ser por ‘All’, para ser exibido todos os SMS entregues e não entregues no período; 'Delivered’ para exibir apenas os SMS entregues; Por fim 'Undelivered’ para exibir somente os SMS não entregues.
Exemplo de Retorno de Sucesso
{
  "Success": true, 
  "Object": [
    {
      "Receiver": "", 
      "Content": "", 
      "Status": "", 
      "ScheduleDate": "", 
      "RequestDate": "", 
      "SystemMessage": "", 
      "DlrStatus": "", 
      "Sender": ""
    }
  ],
  "Message": null
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Receiver Destinatários que receberam o SMS. Formato: DDD + Número.
Content Conteúdo da mensagem que foi recebida pelo número retornado.
Status É o campo de status do SMS enviado, pode ser retornado Processed, para SMS que estão na fila de entrega; Delivered para SMS entregues; Error para casos que ocorreu algum erro no envio e o SMS não foi entregue.
ScheduleDate É o campo que retorna a data que o SMS foi agendado, caso tenha sido feito agendamento, se o envio foi realizado de forma instantânea será retornado null. Formato de data: yyyy-MM-dd HH:mm
RequestDate É o campo que retorna a data que o SMS foi requisitado. Formato de data: yyyy-MM-dd HH:mm
SystemMessage Mensagem detalhada sobre o resultado da operação.
DlrStatus É o campo que informa mais detalhes sobre status do SMS enviado, pode ser retornado Delivered para SMS entregues; Undelivered para SMS não entregues; Rejected para SMS que foram rejeitados por possuir conteúdo inadequado ou telefone incorreto; Expired para SMS que excederam o limite de tentativas de entrega; Accepted, para SMS que estão na fila de entrega
Sender Este campo é o que foi passado um id interno no endpoint de envio do SMS. Ele dispensam que você faça “de para” dos ids da Comtele com o sistema que está integrando.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado, neste caso será sempre null
Retornos Previsíveis
Success Descrição
true Será retornado um objeto JSON com os detalhes de SMS enviados de acordo com a data selecionada.
false O parametro 'StartDate’ deve ser informado com conteudo.
false O parametro 'EndDate’ deve ser informado com conteudo.
false O intervalo entre a data inicial e a data final devem respeitar o limite maximo de 45 dias por consulta.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Consultar Relatório / Regra de resposta automática

Com este recurso, é possivel consultar todos os detalhes disponíveis dos SMS enviados/recebidos utilizando a funcionalidade de regra de resposta automatica.

const ContextMessageService = require('comtele-sdk').ContextMessageService;
const apiKey = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

var contextMessageService = new ContextMessageService(apiKey);
contextMessageService.getReport(
  "yyyy-MM-dd HH:mm", // StartDate: Data inicial a ser filtrado o relatorio.
  "yyyy-MM-dd HH:mm", // EndDate: Data final a ser filtrado o relatorio.
  "ContextRuleName",  // ContextRuleName: Pode ser passado em branco caso nao queira filtrar a regra especifica que enviada.
  (result) => console.log(result));
Campos Obrigatório Descrição
StartDate sim Data inicial do período que os envios serão consultados. Formato yyyy-MM-dd HH:mm.
EndDate sim Data final do período que os envios serão consultados. Formato yyyy-MM-dd HH:mm.
ContextRuleName não Neste campo pode ser informado o nome da regra que o contexto de resposta foi programado e cadastrado no sistema para filtrar os resultados somente de uma regra, se não for informado não será aplicado filtro e todos os dados serão exibids.
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object":  [
    {
      "Sender": "", 
      "Content": "", 
      "Received": "", 
      "ContextRuleName": "", 
      "StatusMessage": ""
    }
  ],
  "Message": null
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Sender Este campo é o que foi passado um id interno no endpoint de envio do SMS. Ele dispensam que você faça “de para” dos ids da Comtele com o sistema que está integrando.
Content Conteúdo da mensagem que foi recebida pelo número retornado.
ContextRuleName Nome da regra que o contexto de resposta foi utilizado.
StatusMessage É o campo de status que determina a direção do SMS, se é Enviado ou Recebido.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado, neste caso será sempre null
Retornos Previsíveis
Success Descrição
true Será retornado um objeto JSON com os detalhes de SMS enviados de acordo com a data selecionada.
false Nao foi possivel continuar, pois este metodo da API possui limite de tempo entre requisicoes. O tempo de espera entre sua ultima requisicao e esta e de 30 segundos e ainda faltam XX segundos.
false O parametro 'StartDate’ deve ser informado com conteudo.
false O parametro 'EndDate’ deve ser informado com conteudo.
false O intervalo entre a data inicial e a data final devem respeitar o limite maximo de 45 dias por consulta.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Consultar Relatório / Respostas

Com este recurso, é possivel consultar todos os detalhes disponíveis dos SMS recebidos utilizando a funcionalidade de recebimento de respostas.

const ContextMessageService = require('comtele-sdk').ContextMessageService;
const apiKey = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

var replyService = new ReplyService(apiKey);
replyService.getReport(
  "yyyy-MM-dd HH:mm", // StartDate: Data inicial a ser filtrado o relatorio.
  "yyyy-MM-dd HH:mm", // EndDate: Data final a ser filtrado o relatorio.
  "Sender",           // Sender: Pode ser passado em branco caso nao queira filtrar uma resposta. E o numero do telefone de quem ou o que respondeu o SMS.
  (result) => console.log(result));
Campos Obrigatório Descrição
StartDate sim Data inicial do período que os envios serão consultados. Formato yyyy-MM-dd HH:mm.
EndDate sim Data final do período que os envios serão consultados. Formato yyyy-MM-dd HH:mm.
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object": [
    {
      "Sender": "",
      "SentContent": "",
      "ReceivedContent": "",
      "ReceivedDate": "",
      "SenderName": ""
    }
  ],
  "Message": null
}

Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Sender Este campo, diferentemente dos outros endpoints com recursos de relatório, é o número do telefone de quem ou o que respondeu o SMS, número de origem da resposta recebida.
SentContent Conteúdo da mensagem que foi enviada para o número do telefone de destino..
ReceivedContent Conteúdo da mensagem respondida pelo número do telefone de destino.
ReceivedDate Data que a resposta foi recebida.
SenderName Este campo é o que foi passado um id interno no endpoint de envio do SMS. Ele dispensam que você faça “de para” dos ids da Comtele com o sistema que está integrando.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado, neste caso será sempre null
Retornos Previsíveis
Success Descrição
true Será retornado um objeto JSON com os detalhes de SMS enviados de acordo com a data selecionada.
false Nao foi possivel continuar, pois este metodo da API possui limite de tempo entre requisicoes. O tempo de espera entre sua ultima requisicao e esta e de 30 segundos e ainda faltam XX segundos.
false O parametro 'StartDate’ deve ser informado com conteudo.
false O parametro 'EndDate’ deve ser informado com conteudo.
false O intervalo entre a data inicial e a data final devem respeitar o limite maximo de 45 dias por consulta.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Receber Respostas / Callback

Com este recurso, é possivel receber ao invés de consultar todos os detalhes disponíveis dos SMS recebidos utilizando a funcionalidade de recebimento de respostas.

Configuração da URL

Antes de mais nada, para receber as respostas via callback, é necessário que você ja tenha construído em sua aplicação um webhook para receber a resposta no padrão a seguir, além disso é necessário que o endpoint do seu webhook seja público e que você tenha configurado em sua conta seguindo os seguintes passos:
1 - Acessar o painel em https://sms.comtele.com.br, e inserir os dados de acesso de sua conta.
2 - Na opção Configurações do menu lateral, clique em Alterar Meus Dados.
3 - Na tela de edição dos seus dados pessoais, localize a seção CONFIGURAÇÕES e a opção URL de Callback de Respostas, insira a URL do webhook que irá receber as respostas e clique no botão salvar.
Feito esses passos, em um intervalo máximo de 30 minutos, todas as respostas que estiverem atrelados aos SMS enviados pelo seu usuário serão retornados via callback.

Exemplo do objeto da resposta
  {
    "Sender":string,
    "SentContent":string,
    "ReceivedContent":string,
    "ReceiveDate":"yyyy-MM-ddThh:mm:ss.ms",
    "SenderName":string
  }
Campos do Retorno
Campos Descrição
Sender Este campo, diferentemente dos outros endpoints com recursos de relatório, é o número do telefone de quem ou o que respondeu o SMS, número de origem da resposta recebida.
SentContent Conteúdo da mensagem que foi enviada para o número do telefone de destino..
ReceivedContent Conteúdo da mensagem respondida pelo número do telefone de destino.
ReceivedDate Data que a resposta foi recebida.
SenderName Este campo é o que foi passado um id interno no endpoint de envio do SMS. Ele dispensam que você faça “de para” dos ids da Comtele com o sistema que está integrando.

Cadastrar / Grupos de Contatos

Com este recurso, é possivel cadastrar grupos de contatos para segmentar estes contatos em listas que podem ser usadas no momento do envio.

const ContactService = require('comtele-sdk').ContactService;
const apiKey = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

var contactService = new ContactService(apiKey);
contactService.createGroup(
  "GroupName",    // GroupName: Nome do grupo a ser cadastrado.
  "Description",  // Description: Breve descricao do grupo a ser cadastrado.
  (result) => console.log(result));
Campos Obrigatório Descrição
Name sim Nome do grupo para segmentação dos contatos, este campo que deve ser informado no método de envio.
Description não Breve descrição do grupo, pode ser usado para inserir detalhes e informações adicionais sobre o grupo.
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object": {
    "Name": "group_name",
    "Description": "group_description"
  },
  "Message": "O grupo de contatos foi criado com sucesso."
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Name Nome do grupo que foi adicionado.
Description Descrição do grupo que foi adicionado.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado.
Retornos Previsíveis
Success Descrição
true O grupo de contatos foi criado com sucesso.
false O nome do grupo deve ser informado.
false O nome do grupo informado já existe, por favor escolha um novo nome.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Consultar / Grupos de Contatos

Com este recurso, é possivel consultar os grupos de contatos cadastrados.

Consultar Todos os Grupos

Com este recurso, é possivel consultar detalhes de todos os grupos de contatos cadastrados em sua conta.

const ContactService = require('comtele-sdk').ContactService;
const apiKey = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

var contactService = new ContactService(apiKey);
contactService.getAllGroups(result => console.log(result));

Consultar Grupo Específico

Com este recurso, é possivel consultar detalhes filtrando um grupo de contatos específico cadastrado em sua conta.

const ContactService = require('comtele-sdk').ContactService;
const apiKey = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

var contactService = new ContactService(apiKey);
contactService.getGroupByName(
  "GroupName",  // GroupName: Nome do grupo a ser filtrado os detalhes.
  (result) => console.log(result));
Campos Obrigatório Descrição
{group_name} não Caso queira filtrar os detalhes somente de um grupo é possível utilizando o recurso get_group_by_name e infomar o nome do grupo, ao invés do recurso get_all_groups.
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object": [
    {
      "Id": comtele_group_id,
      "Name": "group_name",
      "Description": "group_description",
      "TotalContacts": 1,
      "LastUsed": "yyyy-MM-dd HH:mm:ss.ms"
    }
  ],
  "Message": null
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Id Id junto a Comtele do grupo adicionado, campo numérico.
Name Nome do grupo.
Description Descrição do grupo.
TotalContacts Número total de contatos atualmente no grupo.
LastUsed Data com a última vez que o grupo foi utilizado em um envio.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado, neste caso será sempre null
Retornos Previsíveis
Success Descrição
true Será retornado um objeto JSON com os detalhes do grupo ou dos grupos de contatos consultados com o critério selecionado.
false Nao foi encontrado nenhum grupo com o nome {group_name}
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Excluir / Grupos de Contatos

Com este recurso, é possivel excluir grupos de contatos cadastrados.

const ContactService = require('comtele-sdk').ContactService;
const apiKey = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

var contactService = new ContactService(apiKey);
contactService.removeGroup(
  "GroupName", // GroupName: Nome do grupo a ser excluido.
  (result) => console.log(result));
Campos Obrigatório Descrição
group_name sim Nome do grupo de contatos.
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object": null,
  "Message": "O grupo de contatos foi removido com sucesso"
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Object Neste recurso será nulo, pois não existe objeto a ser retornado.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado.
Retornos Previsíveis
HTTP Status Descrição
true O grupo de contatos foi removido com sucesso.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Cadastrar Contatos / Grupos de Contatos

Com este recurso, é possivel cadastrar contatos em grupos para segmentar estes contatos em listas que podem ser usadas no momento do envio.

const ContactService = require('comtele-sdk').ContactService;
const apiKey = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

var contactService = new ContactService(apiKey);
contactService.addContactToGroup(
  "GroupName",    // GroupName: Nome do grupo ja existente.
  "11999998888",  // ContactPhone: Numero de telefone do contato a ser cadastrado. 
  "ContactName",  // ContactName: Nome do contato a ser cadastrado, pode ser informado em branco.
  (result) => console.log(result));
Campos Obrigatório Descrição
GroupName sim Nome do grupo que ja foi cadastrado para a segmentação dos contatos.
ContactPhone sim Número de telefone do contato que está adicionando para receber os SMS.
ContactName não Neste campo, você pode adicinar o nome do contato, que poderá ser usado no momento do envio via painel para fazer envios personalizados.
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object": {
    "GroupName": "group_name",
    "Action": "add_number",
    "ContactPhone": "phone_number",
    "ContactName": "contact_name"
  },
  "Message": "O contato foi inserido no grupo com sucesso."
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
GroupName Nome do grupo em que o contato foi adicionado.
Action add_number, ação que foi informada para adicionar o número de telefone do contato.
ContactPhone Número de telefone do contato que foi adicionado.
ContactName Nome do contato que foi adicionado.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado.
Retornos Previsíveis
HTTP Status Descrição
true O contato foi inserido no grupo com sucesso.
false O grupo informado nao foi encontrado.
false O numero de telefone deve ser informado.
false O parametro Action deve ser informado.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Excluir Contatos / Grupos de Contatos

Com este recurso, é possivel remover contatos em grupos segmentados, para que estes contatos não recebam mais SMS destas listas quando usadas no momento do envio.

const ContactService = require('comtele-sdk').ContactService;
const apiKey = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

var contactService = new ContactService(apiKey);
contactService.removeContactFromGroup(
  "GroupName",    // GroupName: Nome do grupo que o contato esta cadastrado.
  "11999998888"   // ContactPhone: Numero de telefone do contato a ser excluido.
  (result) => console.log(result));
Campos Obrigatório Descrição
GroupName sim Nome do grupo que ja foi cadastrado para a segmentação dos contatos.
ContactPhone sim Número de telefone do contato que está adicionando para receber os SMS.
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object": {
    "GroupName": "group_name",
    "Action": "remove_number",
    "ContactPhone": "phone_number",
    "ContactName": "contact_name"
  },
  "Message": "O contato foi removido do grupo com sucesso."
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
GroupName Nome do grupo em que o contato foi adicionado.
Action remove_number, ação que foi informada para remover o número de telefone do contato.
ContactPhone Número de telefone do contato que foi adicionado.
ContactName Nome do contato que foi adicionado.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado.
Retornos Previsíveis
HTTP Status Descrição
true O contato foi removido do grupo com sucesso.
false O grupo informado nao foi encontrado.
false O numero de telefone deve ser informado.
false O parametro Action deve ser informado.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Cadastrar Contatos / Blacklist

Com este recurso, é possivel adicionar números de telefone em uma blacklist para não receber mais SMS proveniente de sua conta, assim, você pode se despreocupar com uma verificação antes de mandar uma mensagem para números que não desejam mais receber seus SMS, basta adicionar estes telefones em sua blacklist, e caso seja enviado um SMS para este número, não será consumido crédito, o SMS não será entregue e aparecerá no relatório detalhado, uma mensagem informando que o número não recebeu o SMS pois está cadastrado na blacklist.

const BlacklistService = require('comtele-sdk').BlacklistService;
const apiKey = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

var blacklistService = new BlacklistService(apiKey);
blacklistService.insert(
  "11999998888",  // PhoneNumber: Numero de telefone do contato a ser adicionado na blacklist.
  (result) => console.log(result));
Campos Obrigatório Descrição
PhoneNumber sim Número de telefone do destinatário que não deve mais receber qualquer SMS enviado por sua conta.
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object": {
    "PhoneNumber": "",
    "BlacklistDate": "yyyy-MM-ddTHH:mm:ss.ms"
  },
  "Message": "O numero foi inserido na blacklist com sucesso."
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
PhoneNumber Número de telefone que foi adicionado na blacklist.
BlacklistDate Data que o telefone foi adicionado na blacklist.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado.
Retornos Previsíveis
Success Descrição
true O numero foi inserido na blacklist com sucesso.
false O telefone deve ser informado
false O número informado é inválido.
false O campo “PhoneNumber” não suporta texto, somente números.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.

Consultar Contatos / Blacklist

Com este recurso, é possivel consultar os números de telefone e a data que foram adicionados na sua blacklist.

Consultar Todos Telefones

Com este recurso, é possivel consultar detalhes de todos os contatos cadastrados em sua blacklist.

const BlacklistService = require('comtele-sdk').BlacklistService;
const apiKey = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

var blacklistService = new BlacklistService(apiKey);
blacklistService.getBlacklist( data => console.log(data));

Consultar Telefone Específico

Com este recurso, é possivel consultar detalhes filtrando um contato específico cadastrado em sua blacklist.

const BlacklistService = require('comtele-sdk').BlacklistService;
const apiKey = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

var blacklistService = new BlacklistService(apiKey);
blacklistService.getByPhoneNumber(
  "11999998888",  // PhoneNumber: Numero de telefone do contato a ser consultado na blacklist.
  (result) => console.log(result));
Campos Obrigatório Descrição
PhoneNumber não Número de telefone do destinatário que não deve mais receber qualquer SMS enviado por sua conta.
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object": [
    {
      "PhoneNumber": "phone_number",
      "BlacklistDate": "yyyy-MM-ddTHH:mm:ss.ms"
    }
  ],
  "Message": null
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
PhoneNumber Número de telefone que foi adicionado na blacklist.
BlacklistDate Data que o telefone foi adicionado na blacklist.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado, neste caso será sempre null
Retornos Previsíveis
Success Descrição
true Será retornado um objeto JSON com os detalhes do número ou dos números de telefones consultados com o critério selecionado.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.

Excluir Contatos / Blacklist

Com este recurso, é possivel remover números de telefone que foram adicionados na blacklist para voltar a receber os SMS provenientes de sua conta.

const BlacklistService = require('comtele-sdk').BlacklistService;
const apiKey = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

var blacklistService = new BlacklistService(apiKey);
blacklistService.remove(
  "11999998888",  // PhoneNumber: Numero de telefone do contato a ser excluido na blacklist.
  (result) => console.log(result));
Campos Obrigatório Descrição
PhoneNumber não Número de telefone do destinatário que não deve mais receber qualquer SMS enviado por sua conta.
Exemplo de Retorno de Sucesso
  {
    "Success": true,
    "Object": {
      "PhoneNumber": "",
      "BlacklistDate": "yyyy-MM-ddTHH:mm:ss.ms"
    },
    "Message": "O numero foi removido da blacklist com sucesso."
  }
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resutado da operação.
PhoneNumber Número de telefone que foi removido na blacklist.
BlacklistDate Data que o telefone foi adicionado na blacklist.
Message Neste campo é retornado mais detalhes sobre o resutado da operação do recurso que foi utilizado.
Retornos Previsíveis
Success Descrição
true Será retornado um objeto JSON com os detalhes do número ou dos números de telefones consultadoscom o critério selecionado.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.

Consultar Saldo

Com este recurso, é possivel consultar a quantidade de saldo disponível em sua conta ou subcontas.

Consultar Saldo

Com este recurso, é possivel consultar saldo de sua conta.

const CreditService = require('comtele-sdk').CreditService;
const apiKey = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

var creditService = new CreditService(apiKey);
creditService.getMyCredits(data => console.log(data));

Consultar Saldo Subcontas

Com este recurso, é possivel consultar saldo de suas subconta.

const CreditService = require('comtele-sdk').CreditService;
const apiKey = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

var creditService = new CreditService(apiKey);
creditService.getCredits(
  "Username", // Username: Username da subconta a ter o saldo consultado.
  (result) => console.log(result));
Campos Obrigatório Descrição
Username não Se não for informado username, será retornado o saldo da conta que está relacionada a chave de integração que está sendo utilizada. A funcionalidade de consultar saldo de uma subconta só está disponível para contas do tipo revenda, que possui funcionalidades administrativas em suas subcontas.
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object": 0,
  "Message": null
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Object É retornado a quantidade de saldo disponível no momento da consulta.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado, neste caso será sempre null
Retornos Previsíveis
Success Descrição
true Será retornado um objeto JSON a quantidade de saldo disponível no momento da consulta.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.

Inserir Saldo / Subcontas

Com este recurso, é possivel adicionar saldo em suas subcontas. Recurso disponível apenas para contas do tipo revenda

const CreditService = require('comtele-sdk').CreditService;
const apiKey = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

var creditService = new CreditService(apiKey);
creditService.addCredits(
  "Username", // Username: Username da subconta a ter o credito inserido ou removido.
  "Amount",   // Amount: Quantidade de creditos a ser adicionada, o valor tambem pode ser negativo para remover o credito.
  (result) => console.log(result));
Campos Obrigatório Descrição
sub_account sim Username da subconta que pertence a sua revenda que terão os créditos adicionados. Recurso disponível apenas para contas do tipo revenda
Amount sim Quantidade de créditos a ser adicionados da subconta, o valor pode ser negativo para remover o crédito. Recurso disponível apenas para contas do tipo revenda
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object": null,
  "Message": "Os creditos foram alterados com sucesso."
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Object Neste recurso será nulo, pois não existe objeto a ser retornado.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado, neste caso será sempre null
Retornos Previsíveis
Success Descrição
true Os creditos foram alterados com sucesso.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
false Será retornado um objeto JSON com o campo “Success”: false com Object e Message null, pois o usuário não foi encontrado ou não está atrelado a conta com a chave que está utilizando.

Consultar Histórico de Recargas / Subcontas

Com este recurso, é possivel consultar a histórico de créditos adicionados suas subcontas. Recurso disponível apenas para contas do tipo revenda

const CreditService = require('comtele-sdk').CreditService;
const apiKey = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

var creditService = new CreditService(apiKey);
creditService.getHistory(
  "Username", // Username: Username da subconta a ter o saldo consultado.
  (result) => console.log(result));
Campos Obrigatório Descrição
Username sim Username da subconta que pertence a sua revenda que deseja consultar o histórico de créditos adicionados.
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object": [
    {
      "Amount": 1,
      "Balance": 1,
      "ExpiryDate": null,
      "HistoryDate": "yyyy-MM-dd HH:mm.ms",
      "AssociadedUsername": "username"
    }
  ],
  "Message": null
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Amount Quantidade de crédito que foi adicionado.
Balance Quantidade de crédito adicionado, somada a quandidade saldo que estava disponível no momento que foi adicionado.
ExpiryDate Caso o saldo disponível tenha data de expiração, neste caso será sempre null
HistoryDate Timestamp do momento que o crédito foi adicionado na conta.
AssociadedUsername Username da conta responsável por adicionar o crédito para o usuário.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado, neste caso será sempre null
Retornos Previsíveis
Success Descrição
true Será retornado um objeto JSON a quantidade de saldo disponível no momento da consulta.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.

Cadastrar / Subcontas

Com este recurso, é possivel cadastrar subcontas, se a sua conta for do tipo revenda. Dessa maneira é possível separar completamente a utilização das funcionalidades, créditos e acesso.

const AccountService = require('comtele-sdk').AccountService;
const apiKey = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

var accountService = new AccountService(apiKey);
accountService.createAccount(
  "Comtele",              // Firstname: Primeiro nome da pessoa, ou nome da empresa a ser cadastrada.
  "test@comtele.com.br",  // Email: Email de contato do responsavel pela conta.
  "14121127000173",       // CorporateTaxpayer: CNPJ da empresa se for pessoa juridica.
  "00000000000",          // IndividualTaxpayer: CPF do responsavel se for pessoa fisica.
  "11999998888",          // MobileNumber: Numero de telefone do responsavel pela conta.
  "pass4w",               // Password: Senha da conta a ser cadastrada.
  (result) => console.log(result));
Campos Obrigatório Descrição
Firstname sim Se refere ao primeiro nome do usuário, este nome será exibido no painel para dar boas vindas e etc. O campo não pode estar vazio e pode conter caracteres alfanuméricos.
Lastname não Sobrenome do usuário.
Email sim O e-mail do usuário que está sendo cadastrado, pode ser usado para fazer login no painel.
CorporateTaxpayer CNPJ do usuário, caso seja pessoa jurídica, só é necessário informar um documento, CNPJ ou CPF.
IndividualTaxpayer CPF do usuário, caso seja pessoa física, só é necessário informar um documento, CPF ou CNPJ.
MobileNumber sim Celular do usuário que está sendo cadastrado.
Password sim Senha de acesso ao painel do usuário que está sendo cadastrado.
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object": {
    "Enabled": true,
    "Username": "sub_account_username",
    "Balance": 0,
    "Connection": null,
    "LastBalanceHistory": null
  },
  "Message": "O usuario foi inserido com sucesso"
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Enabled Status da subconta que foi adicionada, no caso todas as subcontas recém criadas ja são ativadas.
Username Username da subconta que foi criada.
Balance Quantidade de créditos disponíveis na subconta que foi criada, todas as subcontas são criadas com 0 créditos.
Connection Data mais recente que a subconta efetuou login no painel.
LastBalanceHistory Data mais recente que a subconta teve créditos adicionados.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado.
Retornos Previsíveis
Success Descrição
true O usuario foi inserido com sucesso.
false O nome do usuario deve ser informado.
false O telefone celular do usuario deve ser informado.
false O e-mail já está em uso, por favor escolha um novo e-mail.
false O e-mail informado é inválido ou não foi informado.
false O campo C.P.F. ou o campo C.N.P.J. deve ser preenchido.
false A senha do usuario deve ser informada.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Consultar / Subcontas

Com este recurso, é possivel consultar as subcontas cadastradas e atreladas a sua conta.

Consultar Todos as Subcontas

Com este recurso, é possivel consultar detalhes de todas as subcontas cadastrados em sua conta.

const AccountService = require('comtele-sdk').AccountService;
const apiKey = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

var accountService = new AccountService(apiKey);
accountService.getAllAccount(result => console.log(result));

Consultar Subconta Específica

Com este recurso, é possivel consultar detalhe de uma subconta específica atrelada a sua conta.

const AccountService = require('comtele-sdk').AccountService;
const apiKey = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

var accountService = new AccountService(apiKey);
accountService.getAccountByUsername(
  "Username", // Username: Username da subconta que deve ser consultado os detalhes cadastrais.
  (result) => console.log(result));
Campos Obrigatório Descrição
sub_account não Username da subconta que pertence a sua revenda. Recurso disponível apenas para contas do tipo revenda
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object": {
    "Enabled": true,
    "Username": "sub_account_username",
    "Balance": 0,
    "Connection": yyyy-MM-ddTHH:mm:ss.ms,
    "LastBalanceHistory": yyyy-MM-ddTHH:mm:ss.ms
  },
  "Message": "O usuario foi inserido com sucesso"
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Enabled Status da subconta que foi adicionada.
Username Username da subconta que foi informado na consulta.
Balance Saldo disponível na subconta no momento da consulta.
Connection Data mais recente que a subconta efetuou login no painel.
LastBalanceHistory Data mais recente que a subconta teve créditos adicionados.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado, neste caso será sempre null
Retornos Previsíveis
Success Descrição
true Será retornado um objeto JSON com os detalhes do grupo ou dos grupos de contatos consultados com o critério selecionado.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
false Algum problema com o servidor em que está o recurso acessado, neste caso, tente acessar novamente.
false Houve um time out na requisição ao efetuar a conexão com o endpoint.

C# / .NET

Instalação da SDK

Comtele.Sdk está disponível no NuGet o código é open source e pode ser encontrado em nosso GitHub github.com/comtele.

A versão mínima do .NET Standard para instalar a SDK é a 2.0, abaixo veja os detalhes da versão do framework que usando para saber qual é compatível:

Frameworks Compatível
.NET Standard 1.0 1.1 1.2 1.3 1.4 1.5 1.6 2.0 2.1
.NET Core 1.0 1.0 1.0 1.0 1.0 1.0 1.0 2.0 3.0
.NET Framework 4.5 4.5 4.5.1 4.6 4.6.1 4.6.1 4.6.1 4.6.1 N/A
Mono 4.6 4.6 4.6 4.6 4.6 4.6 4.6 5.4 6.4
Xamarin iOS 10.0 10.0 10.0 10.0 10.0 10.0 10.0 10.14 12.16
Xamarin Mac 3.0 3.0 3.0 3.0 3.0 3.0 3.0 3.8 5.16
Xamarin Android 7.0 7.0 7.0 7.0 7.0 7.0 7.0 8.0 10.0
Universal Windows Plataform 10.0 10.0 10.0 10.0 10.0 10.0.16299 10.0.16299 10.0.16299 TBD
Unity 2018.1 2018.1 2018.1 2018.1 2018.1 2018.1 2018.1 2018.1 TBD
Instalação .NET Core
$ dotnet add package Comtele.Sdk
Instalação Visual Studio
Install-Package Comtele.Sdk

Enviar SMS

Com este recurso, é possivel enviar SMS de forma instantânea.

using System;
using Comtele.Sdk.Services;

namespace ComteleSdk {
 internal class Program {
  private static string API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

  private static void Main(string[] args) {
   var textMessageService = new TextMessageService(API_KEY);
   var result = textMessageService.Send(
    "my_id",                        // Sender: Id de requisicao da sua aplicacao para ser retornado no relatorio, pode ser passado em branco.
    "Hello CSharp",                 // Content: Conteudo da mensagem a ser enviada.
    new string[] { "11999998888" }  // Receivers: Numero de telefone que vai ser enviado o SMS.
   );

   if (result.Success) {
    Console.WriteLine("A mensagem foi enviada com sucesso.");
   } else {
    Console.WriteLine("A mensagem não pode ser enviada. Detalhes: " + result.Message);
   }
  }
 }
}
Campos Obrigatório Descrição
Sender não Este campo é usado só internamente, e geralmente é bem util para controle. Por exemplo você pode informar um id interno, que ele será exibido no relatório, dispensamdo que você faça “de para” dos ids da Comtele com o sistema que está integrando.
Content sim Conteúdo da mensagem que vai ser recebida pelo número que o SMS será enviado. Nos casos que o conteúdo do SMS superar 160 caracteres, será tarifado mais de um crédito a cada 153 caracteres. Algumas operadoras como a Oi e Sercomtel não suportam concatenação da mensagens, então serão recebidos SMS separadamente.
Receivers sim Destinatários que irão receber o SMS. Para dois ou mais destinatários, separe por uma vírgula os telefones, formato: DDD + Número.
Exemplo de Retorno de Sucesso
{
  "Success": true, 
  "Object": null, 
  "Message": "A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios."
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Object Neste recurso será nulo, pois não existe objeto a ser retornado.
Content Conteúdo da mensagem que foi recebida pelo número retornado.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado.
Retornos Previsíveis
Success Descrição
true A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios.
false Object reference not set to an instance of an object.
Possível Causa: Nenhum objeto foi informado no Body da requisição.
false É necessário informar ao menos um destinatário que irá receber o SMS.
false O parâmetro ‘Content’ deve ser informado com conteúdo.
false Não foi possível continuar, pois a quantidade de créditos é insuficiente. Para efetuar o envio é necessário ao menos 1 créditos.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Enviar SMS / Regra de Resposta Automática

Com este recurso, é possivel enviar SMS de forma instantânea e quando o SMS for respondido, é possivel enviar uma resposta de forma automática, baseado em um contexto previamente configurado.
Para utilizar este recurso, é necessário que você acesse a opção Resposta Automática no menu Configurações no painel de SMS, cadastre uma regra de resposta automática e informe o nome que foi cadastrado no campo ContextRuleName no momento que for usar o endpoint.

using System;
using Comtele.Sdk.Services;

namespace ComteleSdk {
 internal class Program {
  private static string API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

  private static void Main(string[] args) {
   var contextMessageService = new ContextMessageService(API_KEY);
   var result = contextMessageService.Send(
    "my_id",                        // Sender: Id de requisicao da sua aplicacao para ser retornado no relatorio, pode ser passado em branco.
    "ContentRuleName",              // ContextRuleName: Nome da regra de resposta automatica a ser usada no envio.
    new string[] { "11999998888" }  // Receivers: Numero de telefone que vai ser enviado o SMS.
   );

   if (result.Success) {
    Console.WriteLine("A mensagem foi enviada com sucesso.");
   } else {
    Console.WriteLine("A mensagem não pode ser enviada. Detalhes: " + result.Message);
   }
  }
 }
}
Campos Obrigatório Descrição
Sender não Este campo é usado só internamente, e geralmente é bem util para controle. Por exemplo você pode informar um id interno, que ele será exibido no relatório, dispensamdo que você faça “de para” dos ids da Comtele com o sistema que está integrando.
ContextRuleName sim Neste campo deve ser informado o nome da regra que o contexto de resposta foi programado e cadastrado no sistema que no caso será usado neste envio.
Receivers sim Destinatários que irão receber o SMS. Para dois ou mais destinatários, separe por uma vírgula os telefones, formato: DDD + Número.
Exemplo de Retorno de Sucesso
{
  "Success": true, 
  "Object": null, 
  "Message": "A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios."
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Object Neste recurso será nulo, pois não existe objeto a ser retornado.
Content Conteúdo da mensagem que foi recebida pelo número retornado.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado.
Retornos Previsíveis
Success Descrição
true A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios.
false Object reference not set to an instance of an object.
Possível Causa: Nenhum objeto foi informado no Body da requisição.
false É necessário informar ao menos um destinatário que irá receber o SMS.
false E necessario informar o nome da regra de resposta automatica.
false Nao foi possivel encontrar uma regra de resposta automatica cadastrada com o nome informado.
false Não foi possível continuar, pois a quantidade de créditos é insuficiente. Para efetuar o envio é necessário ao menos 1 créditos.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Enviar SMS / Grupos de Contatos

Com este recurso, é possivel enviar SMS de forma instantânea para um grupo de contatos.
Para usar este recuso, é necessário ter grupos de contatos já cadastrados em nossa aplicação, caso ainda não tenha feito isso, dê uma olhadinha no recurso Cadastrar Grupos e Adicionar Contatos / Grupos

using System;
using Comtele.Sdk.Services;

namespace ComteleSdk {
 internal class Program {
  private static string API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

  private static void Main(string[] args) {
   var contactMessageService = new ContactMessageService(API_KEY);
   var result = contactMessageService.Send(
    "my_id",          // Sender: Id de requisicao da sua aplicacao para ser retornado no relatorio, pode ser passado em branco.
    "Hello CSharp",   // Content: Conteudo da mensagem a ser enviada.
    "GroupName"       // GroupName: Nome do grupo de contatos que receberao o SMS
   );

   if (result.Success) {
    Console.WriteLine("A mensagem foi enviada com sucesso.");
   } else {
    Console.WriteLine("A mensagem não pode ser enviada. Detalhes: " + result.Message);
   }
  }
 }
}
Campos Obrigatório Descrição
Sender não Este campo é usado só internamente, e geralmente é bem util para controle. Por exemplo você pode informar um id interno, que ele será exibido no relatório, dispensamdo que você faça “de para” dos ids da Comtele com o sistema que está integrando.
Content sim Conteúdo da mensagem que vai ser recebida pelo número que o SMS será enviado. Nos casos que o conteúdo do SMS superar 160 caracteres, será tarifado mais de um crédito a cada 153 caracteres. Algumas operadoras como a Oi e Sercomtel não suportam concatenação da mensagens, então serão recebidos SMS separadamente.
GroupName sim Nome do grupo de contatos, com todos os telefones que receberão o SMS.
Exemplo de Retorno de Sucesso
{
  "Success": true, 
  "Object": null, 
  "Message": "A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios."
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Object Neste recurso será nulo, pois não existe objeto a ser retornado.
Content Conteúdo da mensagem que foi recebida pelo número retornado.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado.
Retornos Previsíveis
Success Descrição
true A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios.
false E necessario informar o grupo de contatos que irao receber o SMS
false Nao foi possivel encontrar um grupo de contatos cadastrado com o nome informado.
false O parâmetro 'Content’ deve ser informado com conteúdo.
false Não foi possível continuar, pois a quantidade de créditos é insuficiente. Para efetuar o envio é necessário ao menos 1 créditos.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Agendar SMS

Com este recurso, é possivel programar a data e horário de envio de SMS para serem enviados.

using System;
using Comtele.Sdk.Services;

namespace ComteleSdk {
 internal class Program {
  private static string API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

  private static void Main(string[] args) {
   var textMessageService = new TextMessageService(API_KEY);
   var result = textMessageService.Schedule(
    "my_id",                        // Sender: Id de requisicao da sua aplicacao para ser retornado no relatorio, pode ser passado em branco.
    "Hello CSharp",                 // Conteudo da mensagem a ser enviada.
    "yyyy-MM-dd HH:mm",             // ScheduleDate: Data que o SMS deve ser disparado.    
    new string[] { "11999998888" }  // Numero de telefone que vai ser enviado o SMS.
   );

   if (result.Success) {
    Console.WriteLine("A mensagem foi enviada com sucesso.");
   } else {
    Console.WriteLine("A mensagem não pode ser enviada. Detalhes: " + result.Message);
   }
  }
 }
}
Campos Obrigatório Descrição
Sender não Este campo é usado só internamente, e geralmente é bem util para controle. Por exemplo você pode informar um id interno, que ele será exibido no relatório, dispensamdo que você faça “de para” dos ids da Comtele com o sistema que está integrando.
Content sim Conteúdo da mensagem que vai ser recebida pelo número que o SMS será enviado. Nos casos que o conteúdo do SMS superar 160 caracteres, será tarifado mais de um crédito a cada 153 caracteres. Algumas operadoras como a Oi e Sercomtel não suportam concatenação da mensagens, então serão recebidos SMS separadamente.
ScheduleDate sim Data de agendamento que o SMS deve ser disparado, formato: yyyy-MM-dd HH:mm.
Receivers sim Destinatários que irão receber o SMS. Para dois ou mais destinatários, separe por uma vírgula os telefones, formato: DDD + Número.
Exemplo de Retorno de Sucesso
{
  "Success": true, 
  "Object": null, 
  "Message": "A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios."
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Object Neste recurso será nulo, pois não existe objeto a ser retornado.
Content Conteúdo da mensagem que foi recebida pelo número retornado.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado.
Retornos Previsíveis
Success Descrição
true A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios.
false É necessário informar ao menos um destinatário que irá receber o SMS.
false O parâmetro ‘Content’ deve ser informado com conteúdo.
false Não foi possível continuar, pois a quantidade de créditos é insuficiente. Para efetuar o envio é necessário ao menos 1 créditos.
false A data de agendamento não pode ser retroativa.
false O parametro 'ScheduleDate’ deve ser informado com conteudo.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Agendar SMS / Regra de Resposta Automática

Com este recurso, é possivel programar a data e horário de envio de SMS para serem enviados, e quando o SMS for respondido, é possivel enviar uma resposta de forma automática, baseado em um contexto previamente configurado.
Para utilizar este recurso, é necessário que você acesse a opção Resposta Automática no menu Configurações no painel de SMS, cadastre uma regra de resposta automática e informe o nome que foi cadastrado no campo ContextRuleName no momento que for usar o endpoint.

using System;
using Comtele.Sdk.Services;

namespace ComteleSdk {
 internal class Program {
  private static string API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

  private static void Main(string[] args) {
   var contextMessageService = new ContextMessageService(API_KEY);
   var result = contextMessageService.Schedule(
    "my_id",                        // Sender: Id de requisicao da sua aplicacao para ser retornado no relatorio, pode ser passado em branco.
    "ContextRuleName",              // ContextRuleName: Nome da regra de resposta automatica a ser usada no envio.
    "yyyy-MM-dd HH:mm",             // ScheduleDate: Data que o SMS deve ser disparado.
    new string[] { "11999998888" }  // Receivers: Numero de telefone que vai ser enviado o SMS.
   );

   if (result.Success) {
    Console.WriteLine("A mensagem foi enviada com sucesso.");
   } else {
    Console.WriteLine("A mensagem não pode ser enviada. Detalhes: " + result.Message);
   }
  }
 }
}
Campos Obrigatório Descrição
Sender não Este campo é usado só internamente, e geralmente é bem util para controle. Por exemplo você pode informar um id interno, que ele será exibido no relatório, dispensamdo que você faça “de para” dos ids da Comtele com o sistema que está integrando.
ContextRuleName sim Neste campo deve ser informado o nome da regra que o contexto de resposta foi programado e cadastrado no sistema que no caso será usado neste envio.
ScheduleDate sim Data de agendamento que o SMS deve ser disparado, formato: yyyy-MM-dd HH:mm.
Receivers sim Destinatários que irão receber o SMS. Para dois ou mais destinatários, separe por uma vírgula os telefones, formato: DDD + Número.
Exemplo de Retorno de Sucesso
{
  "Success": true, 
  "Object": null, 
  "Message": "A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios."
}
Retornos Previsíveis
Success Descrição
true A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios.
false É necessário informar ao menos um destinatário que irá receber o SMS.
false E necessario informar o nome da regra de resposta automatica.
false Nao foi possivel encontrar uma regra de resposta automatica cadastrada com o nome informado.
false Não foi possível continuar, pois a quantidade de créditos é insuficiente. Para efetuar o envio é necessário ao menos 1 créditos.
false A data de agendamento não pode ser retroativa.
false O parametro 'ScheduleDate’ deve ser informado com conteudo.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Agendar SMS / Grupos de Contatos

Com este recurso, é possivel programar a data e horário de envio de SMS para um grupo de contatos.
Para usar este recuso, é necessário ter grupos de contatos já cadastrados em nossa aplicação, caso ainda não tenha feito isso, dê uma olhadinha no recurso Cadastrar Grupos e Adicionar Contatos / Grupos

using System;
using Comtele.Sdk.Services;

namespace ComteleSdk {
 internal class Program {
  private static string API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

  private static void Main(string[] args) {
   var contactMessageService = new ContactMessageService(API_KEY);
   var result = contactMessageService.Schedule(
    "my_id",           // Sender: Id de requisicao da sua aplicacao para ser retornado no relatorio, pode ser passado em branco.
    "Hello CSharp",    // Content: Conteudo da mensagem a ser enviada.
    "GroupName"        // GroupName: Nome do grupo de contatos que receberao o SMS
    "yyyy-MM-dd HH:mm" // ScheduleDate: Data que o SMS deve ser disparado.
   );

   if (result.Success) {
    Console.WriteLine("A mensagem foi enviada com sucesso.");
   } else {
    Console.WriteLine("A mensagem não pode ser enviada. Detalhes: " + result.Message);
   }
  }
 }
}
Campos Obrigatório Descrição
Sender não Este campo é usado só internamente, e geralmente é bem util para controle. Por exemplo você pode informar um id interno, que ele será exibido no relatório, dispensamdo que você faça “de para” dos ids da Comtele com o sistema que está integrando.
Content sim Conteúdo da mensagem que vai ser recebida pelo número que o SMS será enviado. Nos casos que o conteúdo do SMS superar 160 caracteres, será tarifado mais de um crédito a cada 153 caracteres. Algumas operadoras como a Oi e Sercomtel não suportam concatenação da mensagens, então serão recebidos SMS separadamente.
GroupName sim Nome do grupo de contatos, com todos os telefones que receberao o SMS.
ScheduleDate sim Data de agendamento que o SMS deve ser disparado, formato: yyyy-MM-dd HH:mm.
Exemplo de Retorno de Sucesso
{
  "Success": true, 
  "Object": null, 
  "Message": "A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios."
}
Retornos Previsíveis
Success Descrição
true A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios.
false E necessario informar o grupo de contatos que irao receber o SMS
false Nao foi possivel encontrar um grupo de contatos cadastrado com o nome informado.
false O parâmetro 'Content’ deve ser informado com conteúdo.
false Não foi possível continuar, pois a quantidade de créditos é insuficiente. Para efetuar o envio é necessário ao menos 1 créditos.
false A data de agendamento não pode ser retroativa.
false O parametro 'ScheduleDate’ deve ser informado com conteudo.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Enviar SMS / Dois Fatores

Com este recurso, é possivel enviar via SMS de forma instantânea um código de autenticação para o destinatário, que pode ser validado posteriormente no endpoint a seguir: Validar Código / Dois Fatores.

using System;
using Comtele.Sdk.Services;

namespace ComteleSdk {
 internal class Program {
  private static string API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

  private static void Main(string[] args) {
   var tokenService = new TokenService(API_KEY);
   var result = tokenService.SendToken(
     "11999998888",  // PhoneNumber: Numero de telefone que vai ser enviado o token via SMS.
     "Company"       // Prefix: Identificação da empresa que aparecerá no corpo da mensagem.
   );

   if (result.Success) {
    Console.WriteLine("A mensagem foi enviada com sucesso.");
   } else {
    Console.WriteLine("A mensagem não pode ser enviada. Detalhes: " + result.Message);
   }
  }
 }
}
Campos Obrigatório Descrição
PhoneNumber sim Número de telefone do destinatário que você quer enviar um código para autenticação de dois fatores.
Prefix não Neste campo, você pode informar ao destinatário a origem do token recebido, por exemplo: Comtele: Codigo de Autorizacao xxxxxx.
Exemplo de Retorno de Sucesso
{
  "Success": true, 
  "Object": {
    "Prefix": "", 
    "PhoneNumber": ""
    }, 
  "Message": 
  "O token foi criado com sucesso."
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Object Neste recurso será nulo, pois não existe objeto a ser retornado.
Prefix Prefixo da mensagem, identificação da origem do token, informado no envio.
PhoneNumber Número de telefone do destinatário, informado no envio.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado.
Retornos Previsíveis
Success Descrição
true O token foi criado com sucesso.
false É necessário informar ao menos um destinatário que irá receber o SMS.
false Não foi possível continuar, pois a quantidade de créditos é insuficiente. Para efetuar o envio é necessário ao menos 1 créditos.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Validar Código / Dois Fatores

Com este recurso, é possivel validar o token recebido e informado pelo usuário que recebeu o SMS, enviado pelo endpoint anterior anterior: Enviar SMS / Dois Fatores.

using System;
using Comtele.Sdk.Services;

namespace ComteleSdk {
 internal class Program {
  private static string API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

  private static void Main(string[] args) {
   var tokenService = new TokenService(API_KEY);
   var result = tokenService.ValidateToken(
     "TokenCode"  // TokenCode: Token que o cliente informou e deve ser validado pela Comtele.
   );

   if (result.Success) {
    Console.WriteLine("O token informado foi validado com sucesso.");
   } else {
    Console.WriteLine("Erro ao validar token. Detalhes: " + result.Message);
   }
  }
 }
}
Campos Obrigatório Descrição
TokenCode sim Token recebido pelo usuário, que deve ser validado.
Exemplo de Retorno de Sucesso
{
  "Success": true, 
  "Object": {
    "TokenCode": "XXXXXX"
    },
  "Message": "O token informado foi validado com sucesso."
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
TokenCode Token que foi recebido e inserido para ser validado.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado.
Retornos Previsíveis
Success Descrição
true O token informado foi validado com sucesso.
false É necessário informar ao menos um destinatário que irá receber o SMS.
false O token informado é invalido.
false Este token já foi utilizado.
false O intervalo entre a data inicial e a data final devem respeitar o limite maximo de 45 dias por consulta.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Consultar Relatório / Detalhado

Com este recurso, é possivel consultar todos os detalhes disponíveis dos SMS enviados.

using System;
using Comtele.Sdk.Services;

namespace ComteleSdk {
 internal class Program {
  private static string API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

  private static void Main(string[] args) {
   var textMessageService = new TextMessageService(API_KEY);
   var result = textMessageService.GetDetailedReport(
     "yyyy-MM-dd HH:mm",  // StartDate: Data inicial a ser filtrado o relatorio.
     "yyyy-MM-dd HH:mm",  // EndDate: Data final a ser filtrado o relatorio.
     DeliveryStatus.All   // DeliveryStatus.All, pode ser Delivered ou Undelivered.
   );

   if (result.Success) {
    Console.WriteLine(result.Object);
   } else {
    Console.WriteLine("Erro ao buscar dados do relatorio. Detalhes: " + result.Message);
   }
  }
 }
}
Campos Obrigatorio Descrição
StartDate sim Data inicial do período que os envios serão consultados. Formato yyyy-MM-dd HH:mm.
EndDate sim Data final do período que os envios serão consultados. Formato yyyy-MM-dd HH:mm.
DeliveryStatus não Status de entrega dos SMS poderão ser filtrados e retornados nos relatórios. Os valores podem ser por ‘All’, para ser exibido todos os SMS entregues e não entregues no período; 'Delivered’ para exibir apenas os SMS entregues; Por fim 'Undelivered’ para exibir somente os SMS não entregues.
Exemplo de Retorno de Sucesso
{
  "Success": true, 
  "Object": [
    {
      "Receiver": "", 
      "Content": "", 
      "Status": "", 
      "ScheduleDate": "", 
      "RequestDate": "", 
      "SystemMessage": "", 
      "DlrStatus": "", 
      "Sender": ""
    }
  ],
  "Message": null
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Receiver Destinatários que receberam o SMS. Formato: DDD + Número.
Content Conteúdo da mensagem que foi recebida pelo número retornado.
Status É o campo de status do SMS enviado, pode ser retornado Processed, para SMS que estão na fila de entrega; Delivered para SMS entregues; Error para casos que ocorreu algum erro no envio e o SMS não foi entregue.
ScheduleDate É o campo que retorna a data que o SMS foi agendado, caso tenha sido feito agendamento, se o envio foi realizado de forma instantânea será retornado null. Formato de data: yyyy-MM-dd HH:mm
RequestDate É o campo que retorna a data que o SMS foi requisitado. Formato de data: yyyy-MM-dd HH:mm
SystemMessage Mensagem detalhada sobre o resultado da operação.
DlrStatus É o campo que informa mais detalhes sobre status do SMS enviado, pode ser retornado Delivered para SMS entregues; Undelivered para SMS não entregues; Rejected para SMS que foram rejeitados por possuir conteúdo inadequado ou telefone incorreto; Expired para SMS que excederam o limite de tentativas de entrega; Accepted, para SMS que estão na fila de entrega
Sender Este campo é o que foi passado um id interno no endpoint de envio do SMS. Ele dispensam que você faça “de para” dos ids da Comtele com o sistema que está integrando.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado, neste caso será sempre null
Retornos Previsíveis
Success Descrição
true Será retornado um objeto JSON com os detalhes de SMS enviados de acordo com a data selecionada.
false Nao foi possivel continuar, pois este metodo da API possui limite de tempo entre requisicoes. O tempo de espera entre sua ultima requisicao e esta e de 30 segundos e ainda faltam XX segundos.
false O parametro 'StartDate’ deve ser informado com conteudo.
false O parametro 'EndDate’ deve ser informado com conteudo.
false O intervalo entre a data inicial e a data final devem respeitar o limite maximo de 45 dias por consulta.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Consultar Relatório / Regra de resposta automática

Com este recurso, é possivel consultar todos os detalhes disponíveis dos SMS enviados/recebidos utilizando a funcionalidade de regra de resposta automatica.

using System;
using Comtele.Sdk.Services;

namespace ComteleSdk {
 internal class Program {
  private static string API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

  private static void Main(string[] args) {
   var contextMessageService = new ContextMessageService(API_KEY);
   var result = contextMessageService.GetReport(
     "yyyy-MM-dd HH:mm", // StartDate: Data inicial a ser filtrado o relatorio.
     "yyyy-MM-dd HH:mm", // EndDate: Data final a ser filtrado o relatorio.
     "ContextRuleName"   // ContextRuleName: Pode ser passado em branco caso nao queira filtrar a regra especifica que enviada.
   );

   if (result.Success) {
    Console.WriteLine(result.Object);
   } else {
    Console.WriteLine("Erro ao buscar dados do relatorio. Detalhes: " + result.Message);
   }
  }
 }
}
Campos Obrigatório Descrição
StartDate sim Data inicial do período que os envios serão consultados. Formato yyyy-MM-dd HH:mm.
EndDate sim Data final do período que os envios serão consultados. Formato yyyy-MM-dd HH:mm.
ContextRuleName não Neste campo pode ser informado o nome da regra que o contexto de resposta foi programado e cadastrado no sistema para filtrar os resultados somente de uma regra, se não for informado não será aplicado filtro e todos os dados serão exibids.
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object":  [
    {
      "Sender": "", 
      "Content": "", 
      "Received": "", 
      "ContextRuleName": "", 
      "StatusMessage": ""
    }
  ],
  "Message": null
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Sender Este campo é o que foi passado um id interno no endpoint de envio do SMS. Ele dispensam que você faça “de para” dos ids da Comtele com o sistema que está integrando.
Content Conteúdo da mensagem que foi recebida pelo número retornado.
ContextRuleName Nome da regra que o contexto de resposta foi utilizado.
StatusMessage É o campo de status que determina a direção do SMS, se é Enviado ou Recebido.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado, neste caso será sempre null
Retornos Previsíveis
Success Descrição
true Será retornado um objeto JSON com os detalhes de SMS enviados de acordo com a data selecionada.
false Nao foi possivel continuar, pois este metodo da API possui limite de tempo entre requisicoes. O tempo de espera entre sua ultima requisicao e esta e de 30 segundos e ainda faltam XX segundos.
false O parametro 'StartDate’ deve ser informado com conteudo.
false O parametro 'EndDate’ deve ser informado com conteudo.
false O intervalo entre a data inicial e a data final devem respeitar o limite maximo de 45 dias por consulta.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Consultar Relatório / Respostas

Com este recurso, é possivel consultar todos os detalhes disponíveis dos SMS recebidos utilizando a funcionalidade de recebimento de respostas.

using System;
using Comtele.Sdk.Services;

namespace ComteleSdk {
 internal class Program {
  private static string API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

  private static void Main(string[] args) {
   var replyService = new ReplyService(API_KEY);
   var result = replyService.GetReport(
     "yyyy-MM-dd HH:mm",  // StartDate: Data inicial a ser filtrado o relatorio.
     "yyyy-MM-dd HH:mm",  // EndDate: Data final a ser filtrado o relatorio.
     "Sender"             // Sender: Pode ser passado em branco caso nao queira filtrar uma resposta. E o numero do telefone de quem ou o que respondeu o SMS.
   );

   if (result.Success) {
    Console.WriteLine(result.Object);
   } else {
    Console.WriteLine("Erro ao buscar dados do relatorio. Detalhes: " + result.Message);
   }
  }
 }
}
Campos Obrigatório Descrição
StartDate sim Data inicial do período que os envios serão consultados. Formato yyyy-MM-dd HH:mm.
EndDate sim Data final do período que os envios serão consultados. Formato yyyy-MM-dd HH:mm.
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object": [
    {
      "Sender": "",
      "SentContent": "",
      "ReceivedContent": "",
      "ReceivedDate": "",
      "SenderName": ""
    }
  ],
  "Message": null
}

Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Sender Este campo, diferentemente dos outros endpoints com recursos de relatório, é o número do telefone de quem ou o que respondeu o SMS, número de origem da resposta recebida.
SentContent Conteúdo da mensagem que foi enviada para o número do telefone de destino..
ReceivedContent Conteúdo da mensagem respondida pelo número do telefone de destino.
ReceivedDate Data que a resposta foi recebida.
SenderName Este campo é o que foi passado um id interno no endpoint de envio do SMS. Ele dispensam que você faça “de para” dos ids da Comtele com o sistema que está integrando.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado, neste caso será sempre null
Retornos Previsíveis
Success Descrição
true Será retornado um objeto JSON com os detalhes de SMS enviados de acordo com a data selecionada.
false Nao foi possivel continuar, pois este metodo da API possui limite de tempo entre requisicoes. O tempo de espera entre sua ultima requisicao e esta e de 30 segundos e ainda faltam XX segundos.
false O parametro 'StartDate’ deve ser informado com conteudo.
false O parametro 'EndDate’ deve ser informado com conteudo.
false O intervalo entre a data inicial e a data final devem respeitar o limite maximo de 45 dias por consulta.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Receber Respostas / Callback

Com este recurso, é possivel receber ao invés de consultar todos os detalhes disponíveis dos SMS recebidos utilizando a funcionalidade de recebimento de respostas.

Configuração da URL

Antes de mais nada, para receber as respostas via callback, é necessário que você ja tenha construído em sua aplicação um webhook para receber a resposta no padrão a seguir, além disso é necessário que o endpoint do seu webhook seja público e que você tenha configurado em sua conta seguindo os seguintes passos:
1 - Acessar o painel em https://sms.comtele.com.br, e inserir os dados de acesso de sua conta.
2 - Na opção Configurações do menu lateral, clique em Alterar Meus Dados.
3 - Na tela de edição dos seus dados pessoais, localize a seção CONFIGURAÇÕES e a opção URL de Callback de Respostas, insira a URL do webhook que irá receber as respostas e clique no botão salvar.
Feito esses passos, em um intervalo máximo de 30 minutos, todas as respostas que estiverem atrelados aos SMS enviados pelo seu usuário serão retornados via callback.

Exemplo do objeto da resposta
  {
    "Sender":string,
    "SentContent":string,
    "ReceivedContent":string,
    "ReceiveDate":"yyyy-MM-ddThh:mm:ss.ms",
    "SenderName":string
  }
Campos do Retorno
Campos Descrição
Sender Este campo, diferentemente dos outros endpoints com recursos de relatório, é o número do telefone de quem ou o que respondeu o SMS, número de origem da resposta recebida.
SentContent Conteúdo da mensagem que foi enviada para o número do telefone de destino..
ReceivedContent Conteúdo da mensagem respondida pelo número do telefone de destino.
ReceivedDate Data que a resposta foi recebida.
SenderName Este campo é o que foi passado um id interno no endpoint de envio do SMS. Ele dispensam que você faça “de para” dos ids da Comtele com o sistema que está integrando.

Cadastrar / Grupos de Contatos

Com este recurso, é possivel cadastrar grupos de contatos para segmentar estes contatos em listas que podem ser usadas no momento do envio.

using System;
using Comtele.Sdk.Services;

namespace ComteleSdk {
 internal class Program {
  private static string API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

  private static void Main(string[] args) {
   var contactService = new ContactService(API_KEY);
   var result = contactService.CreateGroup(
     "GroupName",    // GroupName: Nome do grupo a ser cadastrado.
     "Description"   // Description: Breve descricao do grupo a ser cadastrado.
   );

   if (result.Success) {
    Console.WriteLine("O grupo de contatos foi criado com sucesso. Detalhes: " + result.Object);
   } else {
    Console.WriteLine("Erro ao criar o grupo de contatos. Detalhes: " + result.Message);
   }
  }
 }
}
Campos Obrigatório Descrição
Name sim Nome do grupo para segmentação dos contatos, este campo que deve ser informado no método de envio.
Description não Breve descrição do grupo, pode ser usado para inserir detalhes e informações adicionais sobre o grupo.
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object": {
    "Name": "group_name",
    "Description": "group_description"
  },
  "Message": "O grupo de contatos foi criado com sucesso."
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Name Nome do grupo que foi adicionado.
Description Descrição do grupo que foi adicionado.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado.
Retornos Previsíveis
Success Descrição
true O grupo de contatos foi criado com sucesso.
false O nome do grupo deve ser informado.
false O nome do grupo informado já existe, por favor escolha um novo nome.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Consultar / Grupos de Contatos

Com este recurso, é possivel consultar os grupos de contatos cadastrados.

Consultar Todos os Grupos

Com este recurso, é possivel consultar detalhes de todos os grupos de contatos cadastrados em sua conta.

using System;
using Comtele.Sdk.Services;

namespace ComteleSdk {
 internal class Program {
  private static string API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

  private static void Main(string[] args) {
   var contactService = new ContactService(API_KEY);
   var result = contactService.GetAllGroups();

   if (result.Success) {
    Console.WriteLine(result.Object);
   } else {
    Console.WriteLine("Erro ao buscar grupos de contatos. Detalhes: " + result.Message);
   }
  }
 }
}

Consultar Grupo Específico

Com este recurso, é possivel consultar detalhes filtrando um grupo de contatos específico cadastrado em sua conta.

using System;
using Comtele.Sdk.Services;

namespace ComteleSdk {
 internal class Program {
  private static string API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

  private static void Main(string[] args) {
   var contactService = new ContactService(API_KEY);
   var result = contactService.GetGroupByName(
     "GroupName"  // GroupName: Nome do grupo a ser filtrado os detalhes.
   );

   if (result.Success) {
    Console.WriteLine(result.Object);
   } else {
    Console.WriteLine("Erro ao buscar grupos de contatos. Detalhes: " + result.Message);
   }
  }
 }
}
Campos Obrigatório Descrição
{group_name} não Caso queira filtrar os detalhes somente de um grupo é possível utilizando o recurso get_group_by_name e infomar o nome do grupo, ao invés do recurso get_all_groups.
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object": [
    {
      "Id": comtele_group_id,
      "Name": "group_name",
      "Description": "group_description",
      "TotalContacts": 1,
      "LastUsed": "yyyy-MM-dd HH:mm:ss.ms"
    }
  ],
  "Message": null
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Id Id junto a Comtele do grupo adicionado, campo numérico.
Name Nome do grupo.
Description Descrição do grupo.
TotalContacts Número total de contatos atualmente no grupo.
LastUsed Data com a última vez que o grupo foi utilizado em um envio.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado, neste caso será sempre null
Retornos Previsíveis
Success Descrição
true Será retornado um objeto JSON com os detalhes do grupo ou dos grupos de contatos consultados com o critério selecionado.
false Nao foi encontrado nenhum grupo com o nome {group_name}
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Excluir / Grupos de Contatos

Com este recurso, é possivel excluir grupos de contatos cadastrados.

using System;
using Comtele.Sdk.Services;

namespace ComteleSdk {
 internal class Program {
  private static string API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

  private static void Main(string[] args) {
   var contactService = new ContactService(API_KEY);
   var result = contactService.RemoveGroup(
     "GroupName" // GroupName: Nome do grupo a ser excluido.
   );

   if (result.Success) {
    Console.WriteLine("O grupo de contatos foi removido com sucesso.");
   } else {
    Console.WriteLine("Erro ao excluir grupos de contatos. Detalhes: " + result.Message);
   }
  }
 }
}
Campos Obrigatório Descrição
group_name sim Nome do grupo de contatos.
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object": null,
  "Message": "O grupo de contatos foi removido com sucesso"
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Object Neste recurso será nulo, pois não existe objeto a ser retornado.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado.
Retornos Previsíveis
HTTP Status Descrição
true O grupo de contatos foi removido com sucesso.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Cadastrar Contatos / Grupos de Contatos

Com este recurso, é possivel cadastrar contatos em grupos para segmentar estes contatos em listas que podem ser usadas no momento do envio.

using System;
using Comtele.Sdk.Services;

namespace ComteleSdk {
 internal class Program {
  private static string API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

  private static void Main(string[] args) {
   var contactService = new ContactService(API_KEY);
   var result = contactService.AddContactToGroup(
     "GroupName",    // GroupName: Nome do grupo ja existente.
     "11999998888",  // ContactPhone: Numero de telefone do contato a ser cadastrado.
     "ContactName"   // ContactName: Nome do contato a ser cadastrado, pode ser informado em branco.
   );

   if (result.Success) {
    Console.WriteLine("O contato foi removido do grupo com sucesso. Detalhes: " + result.Object);
   } else {
    Console.WriteLine("Erro ao adicionar contato. Detalhes: " + result.Message);
   }
  }
 }
}
Campos Obrigatório Descrição
GroupName sim Nome do grupo que ja foi cadastrado para a segmentação dos contatos.
ContactPhone sim Número de telefone do contato que está adicionando para receber os SMS.
ContactName não Neste campo, você pode adicinar o nome do contato, que poderá ser usado no momento do envio via painel para fazer envios personalizados.
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object": {
    "GroupName": "group_name",
    "Action": "add_number",
    "ContactPhone": "phone_number",
    "ContactName": "contact_name"
  },
  "Message": "O contato foi removido do grupo com sucesso."
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
GroupName Nome do grupo em que o contato foi adicionado.
Action add_number, ação que foi informada para adicionar o número de telefone do contato.
ContactPhone Número de telefone do contato que foi adicionado.
ContactName Nome do contato que foi adicionado.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado.
Retornos Previsíveis
HTTP Status Descrição
true O contato foi inserido no grupo com sucesso.
false O grupo informado nao foi encontrado.
false O numero de telefone deve ser informado.
false O parametro Action deve ser informado.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Excluir Contatos / Grupos de Contatos

Com este recurso, é possivel remover contatos em grupos segmentados, para que estes contatos não recebam mais SMS destas listas quando usadas no momento do envio.

using System;
using Comtele.Sdk.Services;

namespace ComteleSdk {
 internal class Program {
  private static string API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

  private static void Main(string[] args) {
   var contactService = new ContactService(API_KEY);
   var result = contactService.RemoveContactFromGroup(
     "GroupName",    // GroupName: Nome do grupo ja existente.
     "11999998888"   // ContactPhone: Numero de telefone do contato a ser cadastrado.
   );

   if (result.Success) {
    Console.WriteLine("O contato foi removido do grupo com sucesso.");
   } else {
    Console.WriteLine("Erro ao exluir contato. Detalhes: " + result.Message);
   }
  }
 }
}
Campos Obrigatório Descrição
GroupName sim Nome do grupo que ja foi cadastrado para a segmentação dos contatos.
ContactPhone sim Número de telefone do contato que está adicionando para receber os SMS.
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object": {
    "GroupName": "group_name",
    "Action": "remove_number",
    "ContactPhone": "phone_number",
    "ContactName": "contact_name"
  },
  "Message": "O contato foi removido do grupo com sucesso."
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
GroupName Nome do grupo em que o contato foi adicionado.
Action remove_number, ação que foi informada para remover o número de telefone do contato.
ContactPhone Número de telefone do contato que foi adicionado.
ContactName Nome do contato que foi adicionado.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado.
Retornos Previsíveis
HTTP Status Descrição
true O contato foi removido do grupo com sucesso.
false O grupo informado nao foi encontrado.
false O numero de telefone deve ser informado.
false O parametro Action deve ser informado.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Cadastrar Contatos / Blacklist

Com este recurso, é possivel adicionar números de telefone em uma blacklist para não receber mais SMS proveniente de sua conta, assim, você pode se despreocupar com uma verificação antes de mandar uma mensagem para números que não desejam mais receber seus SMS, basta adicionar estes telefones em sua blacklist, e caso seja enviado um SMS para este número, não será consumido crédito, o SMS não será entregue e aparecerá no relatório detalhado, uma mensagem informando que o número não recebeu o SMS pois está cadastrado na blacklist.

using System;
using Comtele.Sdk.Services;

namespace ComteleSdk {
 internal class Program {
  private static string API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

  private static void Main(string[] args) {
   var blacklistService = new BlacklistService(API_KEY);
   var result = blacklistService.Insert(
    "11999998888"  // PhoneNumber: Numero de telefone do contato a ser adicionado na blacklist.
   );

   if (result.Success) {
    Console.WriteLine("O numero foi inserido na blacklist com sucesso. Detalhes: " + result.Object);
   } else {
    Console.WriteLine("Erro ao iserir o numero na blacklist. Detalhes: " + result.Message);
   }
  }
 }
}
Campos Obrigatório Descrição
PhoneNumber sim Número de telefone do destinatário que não deve mais receber qualquer SMS enviado por sua conta.
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object": {
    "PhoneNumber": "",
    "BlacklistDate": "yyyy-MM-ddTHH:mm:ss.ms"
  },
  "Message": "O numero foi inserido na blacklist com sucesso."
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
PhoneNumber Número de telefone que foi adicionado na blacklist.
BlacklistDate Data que o telefone foi adicionado na blacklist.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado.
Retornos Previsíveis
Success Descrição
true O numero foi inserido na blacklist com sucesso.
false O telefone deve ser informado
false O número informado é inválido.
false O campo “PhoneNumber” não suporta texto, somente números.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.

Consultar Contatos / Blacklist

Com este recurso, é possivel consultar os números de telefone e a data que foram adicionados na sua blacklist.

Consultar Todos Telefones

Com este recurso, é possivel consultar detalhes de todos os contatos cadastrados em sua blacklist.

using System;
using Comtele.Sdk.Services;

namespace ComteleSdk {
 internal class Program {
  private static string API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

  private static void Main(string[] args) {
   var blacklistService = new BlacklistService(API_KEY);
   var result = blacklistService.GetBlacklist();

   if (result.Success) {
    Console.WriteLine(result.Object);
   } else {
    Console.WriteLine("Erro ao buscar numeros na blacklist. Detalhes: " + result.Message);
   }
  }
 }
}

Consultar Telefone Específico

Com este recurso, é possivel consultar detalhes filtrando um contato específico cadastrado em sua blacklist.

using System;
using Comtele.Sdk.Services;

namespace ComteleSdk {
 internal class Program {
  private static string API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

  private static void Main(string[] args) {
   var blacklistService = new BlacklistService(API_KEY);
   var result = blacklistService.GetByPhoneNumber(
     "11999998888"  // PhoneNumber: Numero de telefone do contato a ser consultado na blacklist.
   );

   if (result.Success) {
    Console.WriteLine(result.Object);
   } else {
    Console.WriteLine("Erro ao buscar numeros na blacklist. Detalhes: " + result.Message);
   }
  }
 }
}
Campos Obrigatório Descrição
PhoneNumber não Número de telefone do destinatário que não deve mais receber qualquer SMS enviado por sua conta.
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object": [
    {
      "PhoneNumber": "phone_number",
      "BlacklistDate": "yyyy-MM-ddTHH:mm:ss.ms"
    }
  ],
  "Message": null
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
PhoneNumber Número de telefone que foi adicionado na blacklist.
BlacklistDate Data que o telefone foi adicionado na blacklist.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado, neste caso será sempre null
Retornos Previsíveis
Success Descrição
true Será retornado um objeto JSON com os detalhes do número ou dos números de telefones consultados com o critério selecionado.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.

Excluir Contatos / Blacklist

Com este recurso, é possivel remover números de telefone que foram adicionados na blacklist para voltar a receber os SMS provenientes de sua conta.

using System;
using Comtele.Sdk.Services;

namespace ComteleSdk {
 internal class Program {
  private static string API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

  private static void Main(string[] args) {
   var blacklistService = new BlacklistService(API_KEY);
   var result = blacklistService.Remove(
     "11999998888"  // PhoneNumber: Numero de telefone do contato a ser consultado na blacklist.
   );

   if (result.Success) {
    Console.WriteLine("O numero foi removido da blacklist com sucesso. Detalhes: " + result.Object);
   } else {
    Console.WriteLine("Erro ao remover numeros na blacklist. Detalhes: " + result.Message);
   }
  }
 }
}
Campos Obrigatório Descrição
PhoneNumber não Número de telefone do destinatário que não deve mais receber qualquer SMS enviado por sua conta.
Exemplo de Retorno de Sucesso
  {
    "Success": true,
    "Object": {
      "PhoneNumber": "",
      "BlacklistDate": "yyyy-MM-ddTHH:mm:ss.ms"
    },
    "Message": "O numero foi removido da blacklist com sucesso."
  }
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resutado da operação.
PhoneNumber Número de telefone que foi removido na blacklist.
BlacklistDate Data que o telefone foi adicionado na blacklist.
Message Neste campo é retornado mais detalhes sobre o resutado da operação do recurso que foi utilizado.
Retornos Previsíveis
Success Descrição
true Será retornado um objeto JSON com os detalhes do número ou dos números de telefones consultadoscom o critério selecionado.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.

Consultar Saldo

Com este recurso, é possivel consultar a quantidade de saldo disponível em sua conta ou subcontas.

Consultar Saldo

Com este recurso, é possivel consultar saldo de sua conta.

using System;
using Comtele.Sdk.Services;

namespace ComteleSdk {
 internal class Program {
  private static string API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

  private static void Main(string[] args) {
   var creditService = new CreditService(API_KEY);
   var result = creditService.GetMyCredits();

   if (result.Success) {
    Console.WriteLine(result.Object);
   } else {
    Console.WriteLine("Erro ao consultar o saldo. Detalhes: " + result.Message);
   }
  }
 }
}

Consultar Saldo Subcontas

Com este recurso, é possivel consultar saldo de suas subconta. “`csharpnoselect using System; using Comtele.Sdk.Services;

namespace ComteleSdk { internal class Program { private static string API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX”;

private static void Main(string[] args) { var creditService = new CreditService(API_KEY); var result = creditService.GetCredits( “Username” // Username: Username da subconta a ter o saldo consultado. );

if (result.Success) { Console.WriteLine(result.Object); } else { Console.WriteLine(“Erro ao consultar o saldo. Detalhes: ” + result.Message); } } } } “`

Campos Obrigatório Descrição
Username não Se não for informado username, será retornado o saldo da conta que está relacionada a chave de integração que está sendo utilizada. A funcionalidade de consultar saldo de uma subconta só está disponível para contas do tipo revenda, que possui funcionalidades administrativas em suas subcontas.
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object": 0,
  "Message": null
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Object É retornado a quantidade de saldo disponível no momento da consulta.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado, neste caso será sempre null
Retornos Previsíveis
Success Descrição
true Será retornado um objeto JSON a quantidade de saldo disponível no momento da consulta.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.

Inserir Saldo / Subcontas

Com este recurso, é possivel adicionar saldo em suas subcontas. Recurso disponível apenas para contas do tipo revenda

using System;
using Comtele.Sdk.Services;

namespace ComteleSdk {
 internal class Program {
  private static string API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

  private static void Main(string[] args) {
   var creditService = new CreditService(API_KEY);
   var result = creditService.AddCredits(
     "Username", // Username: Username da subconta a ter o credito inserido ou removido.
     "Amount"    // Amount: Quantidade de creditos a ser adicionada, o valor tambem pode ser negativo para remover o credito.
   );

   if (result.Success) {
    Console.WriteLine(result.Object);
   } else {
    Console.WriteLine("Erro ao consultar o saldo. Detalhes: " + result.Message);
   }
  }
 }
}
Campos Obrigatório Descrição
sub_account sim Username da subconta que pertence a sua revenda que terão os créditos adicionados. Recurso disponível apenas para contas do tipo revenda
Amount sim Quantidade de créditos a ser adicionados da subconta, o valor pode ser negativo para remover o crédito. Recurso disponível apenas para contas do tipo revenda
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object": null,
  "Message": "Os creditos foram alterados com sucesso."
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Object Neste recurso será nulo, pois não existe objeto a ser retornado.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado, neste caso será sempre null
Retornos Previsíveis
Success Descrição
true Os creditos foram alterados com sucesso.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
false Será retornado um objeto JSON com o campo "Success”: false com Object e Message null, pois o usuário não foi encontrado ou não está atrelado a conta com a chave que está utilizando.

Consultar Histórico de Recargas / Subcontas

Com este recurso, é possivel consultar a histórico de créditos adicionados suas subcontas. Recurso disponível apenas para contas do tipo revenda

using System;
using Comtele.Sdk.Services;

namespace ComteleSdk {
 internal class Program {
  private static string API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

  private static void Main(string[] args) {
   var creditService = new CreditService(API_KEY);
   var result = creditService.GetHistory(
     "Username" // Username: Username da subconta a ter o saldo consultado.
   );

   if (result.Success) {
    Console.WriteLine(result.Object);
   } else {
    Console.WriteLine("Erro ao consultar o historico de recargas. Detalhes: " + result.Message);
   }
  }
 }
}
Campos Obrigatório Descrição
Username sim Username da subconta que pertence a sua revenda que deseja consultar o histórico de créditos adicionados.
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object": [
    {
      "Amount": 1,
      "Balance": 1,
      "ExpiryDate": null,
      "HistoryDate": "yyyy-MM-dd HH:mm.ms",
      "AssociadedUsername": "username"
    }
  ],
  "Message": null
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Amount Quantidade de crédito que foi adicionado.
Balance Quantidade de crédito adicionado, somada a quandidade saldo que estava disponível no momento que foi adicionado.
ExpiryDate Caso o saldo disponível tenha data de expiração, neste caso será sempre null
HistoryDate Timestamp do momento que o crédito foi adicionado na conta.
AssociadedUsername Username da conta responsável por adicionar o crédito para o usuário.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado, neste caso será sempre null
Retornos Previsíveis
Success Descrição
true Será retornado um objeto JSON a quantidade de saldo disponível no momento da consulta.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.

Cadastrar / Subcontas

Com este recurso, é possivel cadastrar subcontas, se a sua conta for do tipo revenda. Dessa maneira é possível separar completamente a utilização das funcionalidades, créditos e acesso.

using System;
using Comtele.Sdk.Services;

namespace ComteleSdk {
 internal class Program {
  private static string API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

  private static void Main(string[] args) {
   var accountService = new AccountService(API_KEY);
   var result = accountService.CreateAccount(
     "Comtele",              // Firstname: Primeiro nome da pessoa, ou nome da empresa a ser cadastrada.
     "test@comtele.com.br",  // Email: Email de contato do responsavel pela conta.
     "14121127000173",       // CorporateTaxpayer: CNPJ da empresa se for pessoa juridica.
     "00000000000",          // IndividualTaxpayer: CPF do responsavel se for pessoa fisica.
     "11999998888",          // MobileNumber: Numero de telefone do responsavel pela conta.
     "pass4w"                // Password: Senha da conta a ser cadastrada.
   );

   if (result.Success) {
    Console.WriteLine("Subconta adicionada com sucesso. Detalhes" + result.Object);
   } else {
    Console.WriteLine("Erro ao adicionar a subconta. Detalhes: " + result.Message);
   }
  }
 }
}
Campos Obrigatório Descrição
Firstname sim Se refere ao primeiro nome do usuário, este nome será exibido no painel para dar boas vindas e etc. O campo não pode estar vazio e pode conter caracteres alfanuméricos.
Lastname não Sobrenome do usuário.
Email sim O e-mail do usuário que está sendo cadastrado, pode ser usado para fazer login no painel.
CorporateTaxpayer CNPJ do usuário, caso seja pessoa jurídica, só é necessário informar um documento, CNPJ ou CPF.
IndividualTaxpayer CPF do usuário, caso seja pessoa física, só é necessário informar um documento, CPF ou CNPJ.
MobileNumber sim Celular do usuário que está sendo cadastrado.
Password sim Senha de acesso ao painel do usuário que está sendo cadastrado.
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object": {
    "Enabled": true,
    "Username": "sub_account_username",
    "Balance": 0,
    "Connection": null,
    "LastBalanceHistory": null
  },
  "Message": "O usuario foi inserido com sucesso"
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Enabled Status da subconta que foi adicionada, no caso todas as subcontas recém criadas ja são ativadas.
Username Username da subconta que foi criada.
Balance Quantidade de créditos disponíveis na subconta que foi criada, todas as subcontas são criadas com 0 créditos.
Connection Data mais recente que a subconta efetuou login no painel.
LastBalanceHistory Data mais recente que a subconta teve créditos adicionados.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado.
Retornos Previsíveis
Success Descrição
true O usuario foi inserido com sucesso.
false O nome do usuario deve ser informado.
false O telefone celular do usuario deve ser informado.
false O e-mail já está em uso, por favor escolha um novo e-mail.
false O e-mail informado é inválido ou não foi informado.
false O campo C.P.F. ou o campo C.N.P.J. deve ser preenchido.
false A senha do usuario deve ser informada.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Consultar / Subcontas

Com este recurso, é possivel consultar as subcontas cadastradas e atreladas a sua conta.

Consultar Todos as Subcontas

Com este recurso, é possivel consultar detalhes de todas as subcontas cadastrados em sua conta.

using System;
using Comtele.Sdk.Services;

namespace ComteleSdk {
 internal class Program {
  private static string API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

  private static void Main(string[] args) {
   var accountService = new AccountService(API_KEY);
   var result = accountService.GetAllAccount();

   if (result.Success) {
    Console.WriteLine(result.Object);
   } else {
    Console.WriteLine("Erro ao consultar subcontas. Detalhes: " + result.Message);
   }
  }
 }
}

Consultar Subconta Específica

Com este recurso, é possivel consultar detalhe de uma subconta específica atrelada a sua conta.

using System;
using Comtele.Sdk.Services;

namespace ComteleSdk {
 internal class Program {
  private static string API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

  private static void Main(string[] args) {
   var accountService = new AccountService(API_KEY);
   var result = accountService.GetAccountByUsername(
     "Username" // Username: Username da subconta que deve ser consultado os detalhes cadastrais.
   );

   if (result.Success) {
    Console.WriteLine(result.Object);
   } else {
    Console.WriteLine("Erro ao consultar subcontas. Detalhes: " + result.Message);
   }
  }
 }
}
Campos Obrigatório Descrição
sub_account não Username da subconta que pertence a sua revenda. Recurso disponível apenas para contas do tipo revenda
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object": {
    "Enabled": true,
    "Username": "sub_account_username",
    "Balance": 0,
    "Connection": yyyy-MM-ddTHH:mm:ss.ms,
    "LastBalanceHistory": yyyy-MM-ddTHH:mm:ss.ms
  },
  "Message": "O usuario foi inserido com sucesso"
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Enabled Status da subconta que foi adicionada.
Username Username da subconta que foi informado na consulta.
Balance Saldo disponível na subconta no momento da consulta.
Connection Data mais recente que a subconta efetuou login no painel.
LastBalanceHistory Data mais recente que a subconta teve créditos adicionados.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado, neste caso será sempre null
Retornos Previsíveis
Success Descrição
true Será retornado um objeto JSON com os detalhes do grupo ou dos grupos de contatos consultados com o critério selecionado.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
false Algum problema com o servidor em que está o recurso acessado, neste caso, tente acessar novamente.
false Houve um time out na requisição ao efetuar a conexão com o endpoint.

Java

Instalação da SDK

A SDK do Java no momento, está disponível via importação de arquivos, o código é open source e pode ser encontrado em nosso GitHub github.com/comtele.

A versão mínima que os testes foram homologados é o Java 8. Caso utiliza uma versão inferior e não funcione, em nosso github você pode ver como são efetuadas as chamadas via API Rest e dispensar o uso da SDK, também pode baixar o projeto, modificar as dependências que estão com icompatibilidade na sua versão.

Enviar SMS

Com este recurso, é possivel enviar SMS de forma instantânea.

package main;

import models.*;
import services.TextMessageService;

import java.util.Arrays;

public class Main {

  static String API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

  public static void main(String[] args) throws Exception {

    TextMessageService textMessageService = new TextMessageService(API_KEY);
    DefaultServiceResult sendResult = textMessageService.send(
      "my_id",                      // Sender: Id de requisicao da sua aplicacao para ser retornado no relatorio, pode ser passado em branco.
      "Hello Java",                 // Content: Conteudo da mensagem a ser enviada.
      Arrays.asList("11999998888")  // Receivers: Numero de telefone que vai ser enviado o SMS.
    );

  }
}
Campos Obrigatório Descrição
Sender não Este campo é usado só internamente, e geralmente é bem util para controle. Por exemplo você pode informar um id interno, que ele será exibido no relatório, dispensamdo que você faça “de para” dos ids da Comtele com o sistema que está integrando.
Content sim Conteúdo da mensagem que vai ser recebida pelo número que o SMS será enviado. Nos casos que o conteúdo do SMS superar 160 caracteres, será tarifado mais de um crédito a cada 153 caracteres. Algumas operadoras como a Oi e Sercomtel não suportam concatenação da mensagens, então serão recebidos SMS separadamente.
Receivers sim Destinatários que irão receber o SMS. Para dois ou mais destinatários, separe por uma vírgula os telefones, formato: DDD + Número.
Exemplo de Retorno de Sucesso
{
  "Success": true, 
  "Object": null, 
  "Message": "A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios."
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Object Neste recurso será nulo, pois não existe objeto a ser retornado.
Content Conteúdo da mensagem que foi recebida pelo número retornado.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado.
Retornos Previsíveis
Success Descrição
true A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios.
false Object reference not set to an instance of an object.
Possível Causa: Nenhum objeto foi informado no Body da requisição.
false É necessário informar ao menos um destinatário que irá receber o SMS.
false O parâmetro ‘Content’ deve ser informado com conteúdo.
false Não foi possível continuar, pois a quantidade de créditos é insuficiente. Para efetuar o envio é necessário ao menos 1 créditos.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Enviar SMS / Regra de Resposta Automática

Com este recurso, é possivel enviar SMS de forma instantânea e quando o SMS for respondido, é possivel enviar uma resposta de forma automática, baseado em um contexto previamente configurado.
Para utilizar este recurso, é necessário que você acesse a opção Resposta Automática no menu Configurações no painel de SMS, cadastre uma regra de resposta automática e informe o nome que foi cadastrado no campo ContextRuleName no momento que for usar o endpoint.

package main;

import models.*;
import services.ContextMessageService;

import java.util.Arrays;

public class Main {

  static String API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

  public static void main(String[] args) throws Exception {

    ContextMessageService contextMessageService = new ContextMessageService(API_KEY);
    DefaultServiceResult contextResult = contextMessageService.send(
      "my_id",                        // Sender: Id de requisicao da sua aplicacao para ser retornado no relatorio, pode ser passado em branco.
      "ContentRuleName",              // ContextRuleName: Nome da regra de resposta automatica a ser usada no envio.
      Arrays.asList("11999998888")    // Receivers: Numero de telefone que vai ser enviado o SMS.
    );

  }
}
Campos Obrigatório Descrição
Sender não Este campo é usado só internamente, e geralmente é bem util para controle. Por exemplo você pode informar um id interno, que ele será exibido no relatório, dispensamdo que você faça “de para” dos ids da Comtele com o sistema que está integrando.
ContextRuleName sim Neste campo deve ser informado o nome da regra que o contexto de resposta foi programado e cadastrado no sistema que no caso será usado neste envio.
Receivers sim Destinatários que irão receber o SMS. Para dois ou mais destinatários, separe por uma vírgula os telefones, formato: DDD + Número.
Exemplo de Retorno de Sucesso
{
  "Success": true, 
  "Object": null, 
  "Message": "A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios."
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Object Neste recurso será nulo, pois não existe objeto a ser retornado.
Content Conteúdo da mensagem que foi recebida pelo número retornado.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado.
Retornos Previsíveis
Success Descrição
true A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios.
false Object reference not set to an instance of an object.
Possível Causa: Nenhum objeto foi informado no Body da requisição.
false É necessário informar ao menos um destinatário que irá receber o SMS.
false E necessario informar o nome da regra de resposta automatica.
false Nao foi possivel encontrar uma regra de resposta automatica cadastrada com o nome informado.
false Não foi possível continuar, pois a quantidade de créditos é insuficiente. Para efetuar o envio é necessário ao menos 1 créditos.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Enviar SMS / Grupos de Contatos

Com este recurso, é possivel enviar SMS de forma instantânea para um grupo de contatos.
Para usar este recuso, é necessário ter grupos de contatos já cadastrados em nossa aplicação, caso ainda não tenha feito isso, dê uma olhadinha no recurso Cadastrar Grupos e Adicionar Contatos / Grupos

package main;

import models.*;
import services.ContactMessageService;

import java.util.Arrays;

public class Main {

  static String API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

  public static void main(String[] args) throws Exception {

    ContactMessageService contactMessageService = new ContactMessageService(API_KEY);
    DefaultServiceResult contactResult = contactMessageService.send(
      "my_id",          // Sender: Id de requisicao da sua aplicacao para ser retornado no relatorio, pode ser passado em branco.
      "Hello Java",     // Content: Conteudo da mensagem a ser enviada.
      "GroupName"       // GroupName: Nome do grupo de contatos que receberao o SMS
    );

  }

}
Campos Obrigatório Descrição
Sender não Este campo é usado só internamente, e geralmente é bem util para controle. Por exemplo você pode informar um id interno, que ele será exibido no relatório, dispensamdo que você faça “de para” dos ids da Comtele com o sistema que está integrando.
Content sim Conteúdo da mensagem que vai ser recebida pelo número que o SMS será enviado. Nos casos que o conteúdo do SMS superar 160 caracteres, será tarifado mais de um crédito a cada 153 caracteres. Algumas operadoras como a Oi e Sercomtel não suportam concatenação da mensagens, então serão recebidos SMS separadamente.
GroupName sim Nome do grupo de contatos, com todos os telefones que receberão o SMS.
Exemplo de Retorno de Sucesso
{
  "Success": true, 
  "Object": null, 
  "Message": "A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios."
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Object Neste recurso será nulo, pois não existe objeto a ser retornado.
Content Conteúdo da mensagem que foi recebida pelo número retornado.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado.
Retornos Previsíveis
Success Descrição
true A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios.
false E necessario informar o grupo de contatos que irao receber o SMS
false Nao foi possivel encontrar um grupo de contatos cadastrado com o nome informado.
false O parâmetro 'Content’ deve ser informado com conteúdo.
false Não foi possível continuar, pois a quantidade de créditos é insuficiente. Para efetuar o envio é necessário ao menos 1 créditos.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Agendar SMS

Com este recurso, é possivel programar a data e horário de envio de SMS para serem enviados.

package main;

import models.*;
import services.TextMessageService;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Arrays;

public class Main {

  static String API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

  public static void main(String[] args) throws Exception {

    TextMessageService textMessageService = new TextMessageService(API_KEY);
    DefaultServiceResult scheduleResult = textMessageService.schedule(
      "my_id",                                        // Sender: Id de requisicao da sua aplicacao para ser retornado no relatorio, pode ser passado em branco.
      "Hello Java",                                   // Conteudo da mensagem a ser enviada.
      scheduleDateFormat.parse("yyyy-MM-dd HH:mm"),   // ScheduleDate: Data que o SMS deve ser disparado.    
      Arrays.asList("11999998888")                    // Numero de telefone que vai ser enviado o SMS.
    );

  }

}
Campos Obrigatório Descrição
Sender não Este campo é usado só internamente, e geralmente é bem util para controle. Por exemplo você pode informar um id interno, que ele será exibido no relatório, dispensamdo que você faça “de para” dos ids da Comtele com o sistema que está integrando.
Content sim Conteúdo da mensagem que vai ser recebida pelo número que o SMS será enviado. Nos casos que o conteúdo do SMS superar 160 caracteres, será tarifado mais de um crédito a cada 153 caracteres. Algumas operadoras como a Oi e Sercomtel não suportam concatenação da mensagens, então serão recebidos SMS separadamente.
ScheduleDate sim Data de agendamento que o SMS deve ser disparado, formato: yyyy-MM-dd HH:mm.
Receivers sim Destinatários que irão receber o SMS. Para dois ou mais destinatários, separe por uma vírgula os telefones, formato: DDD + Número.
Exemplo de Retorno de Sucesso
{
  "Success": true, 
  "Object": null, 
  "Message": "A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios."
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Object Neste recurso será nulo, pois não existe objeto a ser retornado.
Content Conteúdo da mensagem que foi recebida pelo número retornado.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado.
Retornos Previsíveis
Success Descrição
true A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios.
false É necessário informar ao menos um destinatário que irá receber o SMS.
false O parâmetro ‘Content’ deve ser informado com conteúdo.
false Não foi possível continuar, pois a quantidade de créditos é insuficiente. Para efetuar o envio é necessário ao menos 1 créditos.
false A data de agendamento não pode ser retroativa.
false O parametro 'ScheduleDate’ deve ser informado com conteudo.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Agendar SMS / Regra de Resposta Automática

Com este recurso, é possivel programar a data e horário de envio de SMS para serem enviados, e quando o SMS for respondido, é possivel enviar uma resposta de forma automática, baseado em um contexto previamente configurado.
Para utilizar este recurso, é necessário que você acesse a opção Resposta Automática no menu Configurações no painel de SMS, cadastre uma regra de resposta automática e informe o nome que foi cadastrado no campo ContextRuleName no momento que for usar o endpoint.

package main;

import models.*;
import services.ContextMessageService;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Arrays;

public class Main {

  static String API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

  public static void main(String[] args) throws Exception {

    ContextMessageService contextMessageService = new ContextMessageService(API_KEY);
    DateFormat contextScheduleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    DefaultServiceResult contextScheduleResult = contextMessageService.schedule(
      "my_id",                                        // Sender: Id de requisicao da sua aplicacao para ser retornado no relatorio, pode ser passado em branco.
      "ContextRuleName",                              // ContextRuleName: Nome da regra de resposta automativa a ser usada no envio.
      scheduleDateFormat.parse("yyyy-MM-dd HH:mm"),   // ScheduleDate: Data que o SMS deve ser disparado.
      Arrays.asList("11999998888")                    // Receivers: Numero de telefone que vai ser enviado o SMS.
    );

  }

}
Campos Obrigatório Descrição
Sender não Este campo é usado só internamente, e geralmente é bem util para controle. Por exemplo você pode informar um id interno, que ele será exibido no relatório, dispensamdo que você faça “de para” dos ids da Comtele com o sistema que está integrando.
ContextRuleName sim Neste campo deve ser informado o nome da regra que o contexto de resposta foi programado e cadastrado no sistema que no caso será usado neste envio.
ScheduleDate sim Data de agendamento que o SMS deve ser disparado, formato: yyyy-MM-dd HH:mm.
Receivers sim Destinatários que irão receber o SMS. Para dois ou mais destinatários, separe por uma vírgula os telefones, formato: DDD + Número.
Exemplo de Retorno de Sucesso
{
  "Success": true, 
  "Object": null, 
  "Message": "A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios."
}
Retornos Previsíveis
Success Descrição
true A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios.
false É necessário informar ao menos um destinatário que irá receber o SMS.
false E necessario informar o nome da regra de resposta automatica.
false Nao foi possivel encontrar uma regra de resposta automatica cadastrada com o nome informado.
false Não foi possível continuar, pois a quantidade de créditos é insuficiente. Para efetuar o envio é necessário ao menos 1 créditos.
false A data de agendamento não pode ser retroativa.
false O parametro 'ScheduleDate’ deve ser informado com conteudo.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Agendar SMS / Grupos de Contatos

Com este recurso, é possivel programar a data e horário de envio de SMS para um grupo de contatos.
Para usar este recuso, é necessário ter grupos de contatos já cadastrados em nossa aplicação, caso ainda não tenha feito isso, dê uma olhadinha no recurso Cadastrar Grupos e Adicionar Contatos / Grupos

package main;

import models.*;
import services.ContactMessageService;

import java.util.Arrays;

public class Main {

  static String API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

  public static void main(String[] args) throws Exception {

    ContactMessageService contactMessageService = new ContactMessageService(API_KEY);
    DefaultServiceResult contactResult = contactMessageService.schedule(
      "my_id",                                        // Sender: Id de requisicao da sua aplicacao para ser retornado no relatorio, pode ser passado em branco.
      "Hello Java",                                   // Content: Conteudo da mensagem a ser enviada.
      "GroupName"                                     // GroupName: Nome do grupo de contatos que receberao o SMS
      scheduleDateFormat.parse("yyyy-MM-dd HH:mm"),   // ScheduleDate: Data que o SMS deve ser disparado.   
    );

  }

}
Campos Obrigatório Descrição
Sender não Este campo é usado só internamente, e geralmente é bem util para controle. Por exemplo você pode informar um id interno, que ele será exibido no relatório, dispensamdo que você faça “de para” dos ids da Comtele com o sistema que está integrando.
Content sim Conteúdo da mensagem que vai ser recebida pelo número que o SMS será enviado. Nos casos que o conteúdo do SMS superar 160 caracteres, será tarifado mais de um crédito a cada 153 caracteres. Algumas operadoras como a Oi e Sercomtel não suportam concatenação da mensagens, então serão recebidos SMS separadamente.
GroupName sim Nome do grupo de contatos, com todos os telefones que receberao o SMS.
ScheduleDate sim Data de agendamento que o SMS deve ser disparado, formato: yyyy-MM-dd HH:mm.
Exemplo de Retorno de Sucesso
{
  "Success": true, 
  "Object": null, 
  "Message": "A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios."
}
Retornos Previsíveis
Success Descrição
true A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios.
false E necessario informar o grupo de contatos que irao receber o SMS
false Nao foi possivel encontrar um grupo de contatos cadastrado com o nome informado.
false O parâmetro 'Content’ deve ser informado com conteúdo.
false Não foi possível continuar, pois a quantidade de créditos é insuficiente. Para efetuar o envio é necessário ao menos 1 créditos.
false A data de agendamento não pode ser retroativa.
false O parametro 'ScheduleDate’ deve ser informado com conteudo.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Enviar SMS / Dois Fatores

Com este recurso, é possivel enviar via SMS de forma instantânea um código de autenticação para o destinatário, que pode ser validado posteriormente no endpoint a seguir: Validar Código / Dois Fatores.

package main;

import models.*;
import services.TokenService;

public class Main {

  static String API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

  public static void main(String[] args) throws Exception {
    TokenService tokenService = new TokenService(API_KEY);
    Integer myContacts = tokenService.sendToken(
      "11999998888",  // PhoneNumber: Numero de telefone que vai ser enviado o token via SMS.
      "Company"       // Prefix: Identificação da empresa que aparecerá no corpo da mensagem.
      ) 
  }

}
Campos Obrigatório Descrição
PhoneNumber sim Número de telefone do destinatário que você quer enviar um código para autenticação de dois fatores.
Prefix não Neste campo, você pode informar ao destinatário a origem do token recebido, por exemplo: Comtele: Codigo de Autorizacao xxxxxx.
Exemplo de Retorno de Sucesso
{
  "Success": true, 
  "Object": {
    "Prefix": "", 
    "PhoneNumber": ""
    }, 
  "Message": 
  "O token foi criado com sucesso."
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Object Neste recurso será nulo, pois não existe objeto a ser retornado.
Prefix Prefixo da mensagem, identificação da origem do token, informado no envio.
PhoneNumber Número de telefone do destinatário, informado no envio.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado.
Retornos Previsíveis
Success Descrição
true O token foi criado com sucesso.
false É necessário informar ao menos um destinatário que irá receber o SMS.
false Não foi possível continuar, pois a quantidade de créditos é insuficiente. Para efetuar o envio é necessário ao menos 1 créditos.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Validar Código / Dois Fatores

Com este recurso, é possivel validar o token recebido e informado pelo usuário que recebeu o SMS, enviado pelo endpoint anterior anterior: Enviar SMS / Dois Fatores.

package main;

import models.*;
import services.TokenService;

public class Main {

  static String API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

  public static void main(String[] args) throws Exception {
    TokenService tokenService = new TokenService(API_KEY);
    Integer myContacts = tokenService.validateToken(
      "TokenCode"  // TokenCode: Token que o cliente informou e deve ser validado pela Comtele.
    )

  }

}
Campos Obrigatório Descrição
TokenCode sim Token recebido pelo usuário, que deve ser validado.
Exemplo de Retorno de Sucesso
{
  "Success": true, 
  "Object": {
    "TokenCode": "XXXXXX"
    },
  "Message": "O token informado foi validado com sucesso."
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
TokenCode Token que foi recebido e inserido para ser validado.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado.
Retornos Previsíveis
Success Descrição
true O token informado foi validado com sucesso.
false É necessário informar ao menos um destinatário que irá receber o SMS.
false O token informado é invalido.
false Este token já foi utilizado.
false O intervalo entre a data inicial e a data final devem respeitar o limite maximo de 45 dias por consulta.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Consultar Relatório / Detalhado

Com este recurso, é possivel consultar todos os detalhes disponíveis dos SMS enviados.

package main;

import models.*;
import services.TextMessageService;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Arrays;

public class Main {

  static String API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

  public static void main(String[] args) throws Exception {

    TextMessageService textMessageService = new TextMessageService(API_KEY);
    DateFormat detailedReportDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    DetailedReportResult detailedReportResult = textMessageService.getDetailedReport(
      detailedReportDateFormat.parse("yyyy-MM-dd HH:mm"), // StartDate: Data inicial a ser filtrado o relatorio.
      detailedReportDateFormat.parse("yyyy-MM-dd HH:mm"), // EndDate: Data final a ser filtrado o relatorio.
      DeliveryStatus.All                                  // DeliveryStatus.All, pode ser Delivered ou Undelivered.
    );

  }

}
Campos Obrigatorio Descrição
StartDate sim Data inicial do período que os envios serão consultados. Formato yyyy-MM-dd HH:mm.
EndDate sim Data final do período que os envios serão consultados. Formato yyyy-MM-dd HH:mm.
DeliveryStatus não Status de entrega dos SMS poderão ser filtrados e retornados nos relatórios. Os valores podem ser por ‘All’, para ser exibido todos os SMS entregues e não entregues no período; 'Delivered’ para exibir apenas os SMS entregues; Por fim 'Undelivered’ para exibir somente os SMS não entregues.
Exemplo de Retorno de Sucesso
{
  "Success": true, 
  "Object": [
    {
      "Receiver": "", 
      "Content": "", 
      "Status": "", 
      "ScheduleDate": "", 
      "RequestDate": "", 
      "SystemMessage": "", 
      "DlrStatus": "", 
      "Sender": ""
    }
  ],
  "Message": null
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Receiver Destinatários que receberam o SMS. Formato: DDD + Número.
Content Conteúdo da mensagem que foi recebida pelo número retornado.
Status É o campo de status do SMS enviado, pode ser retornado Processed, para SMS que estão na fila de entrega; Delivered para SMS entregues; Error para casos que ocorreu algum erro no envio e o SMS não foi entregue.
ScheduleDate É o campo que retorna a data que o SMS foi agendado, caso tenha sido feito agendamento, se o envio foi realizado de forma instantânea será retornado null. Formato de data: yyyy-MM-dd HH:mm
RequestDate É o campo que retorna a data que o SMS foi requisitado. Formato de data: yyyy-MM-dd HH:mm
SystemMessage Mensagem detalhada sobre o resultado da operação.
DlrStatus É o campo que informa mais detalhes sobre status do SMS enviado, pode ser retornado Delivered para SMS entregues; Undelivered para SMS não entregues; Rejected para SMS que foram rejeitados por possuir conteúdo inadequado ou telefone incorreto; Expired para SMS que excederam o limite de tentativas de entrega; Accepted, para SMS que estão na fila de entrega
Sender Este campo é o que foi passado um id interno no endpoint de envio do SMS. Ele dispensam que você faça “de para” dos ids da Comtele com o sistema que está integrando.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado, neste caso será sempre null
Retornos Previsíveis
Success Descrição
true Será retornado um objeto JSON com os detalhes de SMS enviados de acordo com a data selecionada.
false Nao foi possivel continuar, pois este metodo da API possui limite de tempo entre requisicoes. O tempo de espera entre sua ultima requisicao e esta e de 30 segundos e ainda faltam XX segundos.
false O parametro 'StartDate’ deve ser informado com conteudo.
false O parametro 'EndDate’ deve ser informado com conteudo.
false O intervalo entre a data inicial e a data final devem respeitar o limite maximo de 45 dias por consulta.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Consultar Relatório / Regra de resposta automática

Com este recurso, é possivel consultar todos os detalhes disponíveis dos SMS enviados/recebidos utilizando a funcionalidade de regra de resposta automatica.

package main;

import models.*;
import services.ContextMessageService;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Arrays;

public class Main {

  static String API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

  public static void main(String[] args) throws Exception {

    ContextMessageService contextMessageService = new ContextMessageService(API_KEY);
    DateFormat contextReportDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    ContextReportResult contextReportResult = contextMessageService.getReport(
      contextReportDateFormat.parse("yyyy-MM-dd HH:mm"),  // StartDate: Data inicial a ser filtrado o relatorio.
      contextReportDateFormat.parse("yyyy-MM-dd HH:mm"),  // EndDate: Data final a ser filtrado o relatorio.
      "ContextRuleName"                                   // ContextRuleName: Pode ser passado em branco caso nao queira filtrar a regra especifica que enviada.
    );

  }

}
Campos Obrigatório Descrição
StartDate sim Data inicial do período que os envios serão consultados. Formato yyyy-MM-dd HH:mm.
EndDate sim Data final do período que os envios serão consultados. Formato yyyy-MM-dd HH:mm.
ContextRuleName não Neste campo pode ser informado o nome da regra que o contexto de resposta foi programado e cadastrado no sistema para filtrar os resultados somente de uma regra, se não for informado não será aplicado filtro e todos os dados serão exibids.
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object":  [
    {
      "Sender": "", 
      "Content": "", 
      "Received": "", 
      "ContextRuleName": "", 
      "StatusMessage": ""
    }
  ],
  "Message": null
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Sender Este campo é o que foi passado um id interno no endpoint de envio do SMS. Ele dispensam que você faça “de para” dos ids da Comtele com o sistema que está integrando.
Content Conteúdo da mensagem que foi recebida pelo número retornado.
ContextRuleName Nome da regra que o contexto de resposta foi utilizado.
StatusMessage É o campo de status que determina a direção do SMS, se é Enviado ou Recebido.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado, neste caso será sempre null
Retornos Previsíveis
Success Descrição
true Será retornado um objeto JSON com os detalhes de SMS enviados de acordo com a data selecionada.
false Nao foi possivel continuar, pois este metodo da API possui limite de tempo entre requisicoes. O tempo de espera entre sua ultima requisicao e esta e de 30 segundos e ainda faltam XX segundos.
false O parametro 'StartDate’ deve ser informado com conteudo.
false O parametro 'EndDate’ deve ser informado com conteudo.
false O intervalo entre a data inicial e a data final devem respeitar o limite maximo de 45 dias por consulta.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Consultar Relatório / Respostas

Com este recurso, é possivel consultar todos os detalhes disponíveis dos SMS recebidos utilizando a funcionalidade de recebimento de respostas.

package main;

import models.*;
import services.ContextMessageService;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Arrays;

public class Main {

  static String API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

  public static void main(String[] args) throws Exception {

    ReplyService replyService = new ReplyService(API_KEY);
    DateFormat replyReportDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    ReplyServiceResult replyReportResult = replyService.getReport(
      replyReportDateFormat.parse("yyyy-MM-dd HH:mm"),  // StartDate: Data inicial a ser filtrado o relatorio.
      replyReportDateFormat.parse("yyyy-MM-dd HH:mm"),  // EndDate: Data final a ser filtrado o relatorio.
      "Sender"                                          // Sender: Pode ser passado em branco caso nao queira filtrar uma resposta. E o numero do telefone de quem ou o que respondeu o SMS.
      );
  }

}
Campos Obrigatório Descrição
StartDate sim Data inicial do período que os envios serão consultados. Formato yyyy-MM-dd HH:mm.
EndDate sim Data final do período que os envios serão consultados. Formato yyyy-MM-dd HH:mm.
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object": [
    {
      "Sender": "",
      "SentContent": "",
      "ReceivedContent": "",
      "ReceivedDate": "",
      "SenderName": ""
    }
  ],
  "Message": null
}

Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Sender Este campo, diferentemente dos outros endpoints com recursos de relatório, é o número do telefone de quem ou o que respondeu o SMS, número de origem da resposta recebida.
SentContent Conteúdo da mensagem que foi enviada para o número do telefone de destino..
ReceivedContent Conteúdo da mensagem respondida pelo número do telefone de destino.
ReceivedDate Data que a resposta foi recebida.
SenderName Este campo é o que foi passado um id interno no endpoint de envio do SMS. Ele dispensam que você faça “de para” dos ids da Comtele com o sistema que está integrando.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado, neste caso será sempre null
Retornos Previsíveis
Success Descrição
true Será retornado um objeto JSON com os detalhes de SMS enviados de acordo com a data selecionada.
false Nao foi possivel continuar, pois este metodo da API possui limite de tempo entre requisicoes. O tempo de espera entre sua ultima requisicao e esta e de 30 segundos e ainda faltam XX segundos.
false O parametro 'StartDate’ deve ser informado com conteudo.
false O parametro 'EndDate’ deve ser informado com conteudo.
false O intervalo entre a data inicial e a data final devem respeitar o limite maximo de 45 dias por consulta.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Receber Respostas / Callback

Com este recurso, é possivel receber ao invés de consultar todos os detalhes disponíveis dos SMS recebidos utilizando a funcionalidade de recebimento de respostas.

Configuração da URL

Antes de mais nada, para receber as respostas via callback, é necessário que você ja tenha construído em sua aplicação um webhook para receber a resposta no padrão a seguir, além disso é necessário que o endpoint do seu webhook seja público e que você tenha configurado em sua conta seguindo os seguintes passos:
1 - Acessar o painel em https://sms.comtele.com.br, e inserir os dados de acesso de sua conta.
2 - Na opção Configurações do menu lateral, clique em Alterar Meus Dados.
3 - Na tela de edição dos seus dados pessoais, localize a seção CONFIGURAÇÕES e a opção URL de Callback de Respostas, insira a URL do webhook que irá receber as respostas e clique no botão salvar.
Feito esses passos, em um intervalo máximo de 30 minutos, todas as respostas que estiverem atrelados aos SMS enviados pelo seu usuário serão retornados via callback.

Exemplo do objeto da resposta
  {
    "Sender":string,
    "SentContent":string,
    "ReceivedContent":string,
    "ReceiveDate":"yyyy-MM-ddThh:mm:ss.ms",
    "SenderName":string
  }
Campos do Retorno
Campos Descrição
Sender Este campo, diferentemente dos outros endpoints com recursos de relatório, é o número do telefone de quem ou o que respondeu o SMS, número de origem da resposta recebida.
SentContent Conteúdo da mensagem que foi enviada para o número do telefone de destino..
ReceivedContent Conteúdo da mensagem respondida pelo número do telefone de destino.
ReceivedDate Data que a resposta foi recebida.
SenderName Este campo é o que foi passado um id interno no endpoint de envio do SMS. Ele dispensam que você faça “de para” dos ids da Comtele com o sistema que está integrando.

Cadastrar / Grupos de Contatos

Com este recurso, é possivel cadastrar grupos de contatos para segmentar estes contatos em listas que podem ser usadas no momento do envio.

package main;

import models.*;
import services.ContactService;

public class Main {

  static String API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

  public static void main(String[] args) throws Exception {
    ContactService contactService = new ContactService(API_KEY);
    Integer myContacts = contactService.createGroup(
      "GroupName",    // GroupName: Nome do grupo a ser cadastrado.
      "Description"   // Description: Breve descricao do grupo a ser cadastrado.
      )
  }
}
Campos Obrigatório Descrição
Name sim Nome do grupo para segmentação dos contatos, este campo que deve ser informado no método de envio.
Description não Breve descrição do grupo, pode ser usado para inserir detalhes e informações adicionais sobre o grupo.
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object": {
    "Name": "group_name",
    "Description": "group_description"
  },
  "Message": "O grupo de contatos foi criado com sucesso."
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Name Nome do grupo que foi adicionado.
Description Descrição do grupo que foi adicionado.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado.
Retornos Previsíveis
Success Descrição
true O grupo de contatos foi criado com sucesso.
false O nome do grupo deve ser informado.
false O nome do grupo informado já existe, por favor escolha um novo nome.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Consultar / Grupos de Contatos

Com este recurso, é possivel consultar os grupos de contatos cadastrados.

Consultar Todos os Grupos

Com este recurso, é possivel consultar detalhes de todos os grupos de contatos cadastrados em sua conta.

package main;

import models.*;
import services.ContactService;

public class Main {

  static String API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

  public static void main(String[] args) throws Exception {
    ContactService contactService = new ContactService(API_KEY);
    Integer myContacts = contactService.getAllGroups()

  }

}

Consultar Grupo Específico

Com este recurso, é possivel consultar detalhes filtrando um grupo de contatos específico cadastrado em sua conta.


package main;

import models.*;
import services.ContactService;

public class Main {

  static String API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

  public static void main(String[] args) throws Exception {
    ContactService contactService = new ContactService(API_KEY);
    Integer myContacts = contactService.getGroupByName(
      "GroupName"  // GroupName: Nome do grupo a ser filtrado os detalhes.
      )
  }

}
Campos Obrigatório Descrição
{group_name} não Caso queira filtrar os detalhes somente de um grupo é possível utilizando o recurso get_group_by_name e infomar o nome do grupo, ao invés do recurso get_all_groups.
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object": [
    {
      "Id": comtele_group_id,
      "Name": "group_name",
      "Description": "group_description",
      "TotalContacts": 1,
      "LastUsed": "yyyy-MM-dd HH:mm:ss.ms"
    }
  ],
  "Message": null
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Id Id junto a Comtele do grupo adicionado, campo numérico.
Name Nome do grupo.
Description Descrição do grupo.
TotalContacts Número total de contatos atualmente no grupo.
LastUsed Data com a última vez que o grupo foi utilizado em um envio.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado, neste caso será sempre null
Retornos Previsíveis
Success Descrição
true Será retornado um objeto JSON com os detalhes do grupo ou dos grupos de contatos consultados com o critério selecionado.
false Nao foi encontrado nenhum grupo com o nome {group_name}
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Excluir / Grupos de Contatos

Com este recurso, é possivel excluir grupos de contatos cadastrados.

package main;

import models.*;
import services.ContactService;

public class Main {

  static String API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

  public static void main(String[] args) throws Exception {
    ContactService contactService = new ContactService(API_KEY);
    Integer myContacts = contactService.removeGroup(
      "GroupName" // GroupName: Nome do grupo a ser excluido.
      )
  }

}
Campos Obrigatório Descrição
group_name sim Nome do grupo de contatos.
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object": null,
  "Message": "O grupo de contatos foi removido com sucesso"
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Object Neste recurso será nulo, pois não existe objeto a ser retornado.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado.
Retornos Previsíveis
HTTP Status Descrição
true O grupo de contatos foi removido com sucesso.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Cadastrar Contatos / Grupos de Contatos

Com este recurso, é possivel cadastrar contatos em grupos para segmentar estes contatos em listas que podem ser usadas no momento do envio.

package main;

import models.*;
import services.ContactService;

public class Main {

  static String API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

  public static void main(String[] args) throws Exception {
    ContactService contactService = new ContactService(API_KEY);
    Integer myContacts = contactService.addContactToGroup(
      "GroupName",    // GroupName: Nome do grupo ja existente.
      "11999998888",  // ContactPhone: Numero de telefone do contato a ser cadastrado.
      "ContactName"   // ContactName: Nome do contato a ser cadastrado, pode ser informado em branco.
      )
  }

}
Campos Obrigatório Descrição
GroupName sim Nome do grupo que ja foi cadastrado para a segmentação dos contatos.
ContactPhone sim Número de telefone do contato que está adicionando para receber os SMS.
ContactName não Neste campo, você pode adicinar o nome do contato, que poderá ser usado no momento do envio via painel para fazer envios personalizados.
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object": {
    "GroupName": "group_name",
    "Action": "add_number",
    "ContactPhone": "phone_number",
    "ContactName": "contact_name"
  },
  "Message": "O contato foi removido do grupo com sucesso."
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
GroupName Nome do grupo em que o contato foi adicionado.
Action add_number, ação que foi informada para adicionar o número de telefone do contato.
ContactPhone Número de telefone do contato que foi adicionado.
ContactName Nome do contato que foi adicionado.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado.
Retornos Previsíveis
HTTP Status Descrição
true O contato foi inserido no grupo com sucesso.
false O grupo informado nao foi encontrado.
false O numero de telefone deve ser informado.
false O parametro Action deve ser informado.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Excluir Contatos / Grupos de Contatos

Com este recurso, é possivel remover contatos em grupos segmentados, para que estes contatos não recebam mais SMS destas listas quando usadas no momento do envio.

package main;

import models.*;
import services.ContactService;

public class Main {

  static String API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

  public static void main(String[] args) throws Exception {
    ContactService contactService = new ContactService(API_KEY);
    Integer myContacts = contactService.removeContactFromGroup(
      "GroupName",    // GroupName: Nome do grupo ja existente.
      "11999998888"   // ContactPhone: Numero de telefone do contato a ser excluido.
      )
  }

}
Campos Obrigatório Descrição
GroupName sim Nome do grupo que ja foi cadastrado para a segmentação dos contatos.
ContactPhone sim Número de telefone do contato que está adicionando para receber os SMS.
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object": {
    "GroupName": "group_name",
    "Action": "remove_number",
    "ContactPhone": "phone_number",
    "ContactName": "contact_name"
  },
  "Message": "O contato foi removido do grupo com sucesso."
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
GroupName Nome do grupo em que o contato foi adicionado.
Action remove_number, ação que foi informada para remover o número de telefone do contato.
ContactPhone Número de telefone do contato que foi adicionado.
ContactName Nome do contato que foi adicionado.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado.
Retornos Previsíveis
HTTP Status Descrição
true O contato foi removido do grupo com sucesso.
false O grupo informado nao foi encontrado.
false O numero de telefone deve ser informado.
false O parametro Action deve ser informado.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Cadastrar Contatos / Blacklist

Com este recurso, é possivel adicionar números de telefone em uma blacklist para não receber mais SMS proveniente de sua conta, assim, você pode se despreocupar com uma verificação antes de mandar uma mensagem para números que não desejam mais receber seus SMS, basta adicionar estes telefones em sua blacklist, e caso seja enviado um SMS para este número, não será consumido crédito, o SMS não será entregue e aparecerá no relatório detalhado, uma mensagem informando que o número não recebeu o SMS pois está cadastrado na blacklist.

package main;

import models.*;
import services.BlacklistService;

import java.util.Arrays;

public class Main {

  static String API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

  public static void main(String[] args) throws Exception {

    BlacklistService blacklistService = new BlacklistService(API_KEY);
    DefaultServiceResult blacklistResult = blacklistService.insert(
      "11999998888"  // PhoneNumber: Numero de telefone do contato a ser adicionado na blacklist.
      );    
  }
}
Campos Obrigatório Descrição
PhoneNumber sim Número de telefone do destinatário que não deve mais receber qualquer SMS enviado por sua conta.
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object": {
    "PhoneNumber": "",
    "BlacklistDate": "yyyy-MM-ddTHH:mm:ss.ms"
  },
  "Message": "O numero foi inserido na blacklist com sucesso."
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
PhoneNumber Número de telefone que foi adicionado na blacklist.
BlacklistDate Data que o telefone foi adicionado na blacklist.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado.
Retornos Previsíveis
Success Descrição
true O numero foi inserido na blacklist com sucesso.
false O telefone deve ser informado
false O número informado é inválido.
false O campo “PhoneNumber” não suporta texto, somente números.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.

Consultar Contatos / Blacklist

Com este recurso, é possivel consultar os números de telefone e a data que foram adicionados na sua blacklist.

Consultar Todos Telefones

Com este recurso, é possivel consultar detalhes de todos os contatos cadastrados em sua blacklist.

package main;

import models.*;
import services.BlacklistService;

public class Main {

  static String API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

  public static void main(String[] args) throws Exception {
    BlacklistService blacklistService = new BlacklistService(API_KEY);
    Integer blacklist = blacklistService.getBlacklist()

  }

}

Consultar Telefone Específico

Com este recurso, é possivel consultar detalhes filtrando um contato específico cadastrado em sua blacklist.

package main;

import models.*;
import services.BlacklistService;

public class Main {

  static String API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

  public static void main(String[] args) throws Exception {
    BlacklistService blacklistService = new BlacklistService(API_KEY);
    Integer blacklist = blacklistService.getByPhoneNumber(
      "11999998888"  // PhoneNumber: Numero de telefone do contato a ser consultado na blacklist.
      )  
  }

}
Campos Obrigatório Descrição
PhoneNumber não Número de telefone do destinatário que não deve mais receber qualquer SMS enviado por sua conta.
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object": [
    {
      "PhoneNumber": "phone_number",
      "BlacklistDate": "yyyy-MM-ddTHH:mm:ss.ms"
    }
  ],
  "Message": null
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
PhoneNumber Número de telefone que foi adicionado na blacklist.
BlacklistDate Data que o telefone foi adicionado na blacklist.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado, neste caso será sempre null
Retornos Previsíveis
Success Descrição
true Será retornado um objeto JSON com os detalhes do número ou dos números de telefones consultados com o critério selecionado.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.

Excluir Contatos / Blacklist

Com este recurso, é possivel remover números de telefone que foram adicionados na blacklist para voltar a receber os SMS provenientes de sua conta.

package main;

import models.*;
import services.BlacklistService;

import java.util.Arrays;

public class Main {

  static String API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

  public static void main(String[] args) throws Exception {

    BlacklistService blacklistService = new BlacklistService(API_KEY);
    DefaultServiceResult blacklistResult = blacklistService.remove(
      "11999998888"  // PhoneNumber: Numero de telefone do contato a ser consultado na blacklist.
      );    
  }
}
Campos Obrigatório Descrição
PhoneNumber não Número de telefone do destinatário que não deve mais receber qualquer SMS enviado por sua conta.
Exemplo de Retorno de Sucesso
  {
    "Success": true,
    "Object": {
      "PhoneNumber": "",
      "BlacklistDate": "yyyy-MM-ddTHH:mm:ss.ms"
    },
    "Message": "O numero foi removido da blacklist com sucesso."
  }
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resutado da operação.
PhoneNumber Número de telefone que foi removido na blacklist.
BlacklistDate Data que o telefone foi adicionado na blacklist.
Message Neste campo é retornado mais detalhes sobre o resutado da operação do recurso que foi utilizado.
Retornos Previsíveis
Success Descrição
true Será retornado um objeto JSON com os detalhes do número ou dos números de telefones consultadoscom o critério selecionado.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.

Consultar Saldo

Com este recurso, é possivel consultar a quantidade de saldo disponível em sua conta ou subcontas.

Consultar Saldo

Com este recurso, é possivel consultar saldo de sua conta.

package main;

import models.*;
import services.CreditService;

public class Main {

  static String API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

  public static void main(String[] args) throws Exception {
    CreditService creditService = new CreditService(API_KEY);
    Integer myCredits = creditService.getMyCredits()
  }
}

Consultar Saldo Subcontas

Com este recurso, é possivel consultar saldo de suas subconta. “`javanoselect package main;

import models.*; import services.CreditService;

public class Main {

static String API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX”;

public static void main(String[] args) throws Exception { CreditService creditService = new CreditService(API_KEY); Integer myCredits = creditService.getCredits( “Username” // Username: Username da subconta a ter o saldo consultado. ) } } “`

Campos Obrigatório Descrição
Username não Se não for informado username, será retornado o saldo da conta que está relacionada a chave de integração que está sendo utilizada. A funcionalidade de consultar saldo de uma subconta só está disponível para contas do tipo revenda, que possui funcionalidades administrativas em suas subcontas.
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object": 0,
  "Message": null
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Object É retornado a quantidade de saldo disponível no momento da consulta.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado, neste caso será sempre null
Retornos Previsíveis
Success Descrição
true Será retornado um objeto JSON a quantidade de saldo disponível no momento da consulta.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.

Inserir Saldo / Subcontas

Com este recurso, é possivel adicionar saldo em suas subcontas. Recurso disponível apenas para contas do tipo revenda

package main;

import models.*;
import services.CreditService;

public class Main {

  static String API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

  public static void main(String[] args) throws Exception {
    CreditService creditService = new CreditService(API_KEY);
    creditService.addCredits(
      "Username", // Username: Username da subconta a ter o credito inserido ou removido.
      "Amount"    // Amount: Quantidade de creditos a ser adicionada, o valor tambem pode ser negativo para remover o credito.
    );
  }
}
Campos Obrigatório Descrição
sub_account sim Username da subconta que pertence a sua revenda que terão os créditos adicionados. Recurso disponível apenas para contas do tipo revenda
Amount sim Quantidade de créditos a ser adicionados da subconta, o valor pode ser negativo para remover o crédito. Recurso disponível apenas para contas do tipo revenda
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object": null,
  "Message": "Os creditos foram alterados com sucesso."
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Object Neste recurso será nulo, pois não existe objeto a ser retornado.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado, neste caso será sempre null
Retornos Previsíveis
Success Descrição
true Os creditos foram alterados com sucesso.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
false Será retornado um objeto JSON com o campo "Success”: false com Object e Message null, pois o usuário não foi encontrado ou não está atrelado a conta com a chave que está utilizando.

Consultar Histórico de Recargas / Subcontas

Com este recurso, é possivel consultar a histórico de créditos adicionados suas subcontas. Recurso disponível apenas para contas do tipo revenda

package main;

import models.*;
import services.CreditService;

public class Main {

  static String API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

  public static void main(String[] args) throws Exception {
    CreditService creditService = new CreditService(API_KEY);
    CreditHistoryResult historyResult = creditService.getHistory(
      "Username" // Username: Username da subconta a ter o saldo consultado.
      );
  }
}
Campos Obrigatório Descrição
Username sim Username da subconta que pertence a sua revenda que deseja consultar o histórico de créditos adicionados.
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object": [
    {
      "Amount": 1,
      "Balance": 1,
      "ExpiryDate": null,
      "HistoryDate": "yyyy-MM-dd HH:mm.ms",
      "AssociadedUsername": "username"
    }
  ],
  "Message": null
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Amount Quantidade de crédito que foi adicionado.
Balance Quantidade de crédito adicionado, somada a quandidade saldo que estava disponível no momento que foi adicionado.
ExpiryDate Caso o saldo disponível tenha data de expiração, neste caso será sempre null
HistoryDate Timestamp do momento que o crédito foi adicionado na conta.
AssociadedUsername Username da conta responsável por adicionar o crédito para o usuário.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado, neste caso será sempre null
Retornos Previsíveis
Success Descrição
true Será retornado um objeto JSON a quantidade de saldo disponível no momento da consulta.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.

Cadastrar / Subcontas

Com este recurso, é possivel cadastrar subcontas, se a sua conta for do tipo revenda. Dessa maneira é possível separar completamente a utilização das funcionalidades, créditos e acesso.

package main;

import models.*;
import services.AccountService;

public class Main {

  static String API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

  public static void main(String[] args) throws Exception {
    AccountService accountService = new AccountService(API_KEY);
    AccountServiceResult allAccountsResult = accountService.createAccount(
     "Comtele",              // Firstname: Primeiro nome da pessoa, ou nome da empresa a ser cadastrada.
     "test@comtele.com.br",  // Email: Email de contato do responsavel pela conta.
     "14121127000173",       // CorporateTaxpayer: CNPJ da empresa se for pessoa juridica.
     "00000000000",          // IndividualTaxpayer: CPF do responsavel se for pessoa fisica.
     "11999998888",          // MobileNumber: Numero de telefone do responsavel pela conta.
     "pass4w"                // Password: Senha da conta a ser cadastrada.
   );
  }
}
Campos Obrigatório Descrição
Firstname sim Se refere ao primeiro nome do usuário, este nome será exibido no painel para dar boas vindas e etc. O campo não pode estar vazio e pode conter caracteres alfanuméricos.
Lastname não Sobrenome do usuário.
Email sim O e-mail do usuário que está sendo cadastrado, pode ser usado para fazer login no painel.
CorporateTaxpayer CNPJ do usuário, caso seja pessoa jurídica, só é necessário informar um documento, CNPJ ou CPF.
IndividualTaxpayer CPF do usuário, caso seja pessoa física, só é necessário informar um documento, CPF ou CNPJ.
MobileNumber sim Celular do usuário que está sendo cadastrado.
Password sim Senha de acesso ao painel do usuário que está sendo cadastrado.
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object": {
    "Enabled": true,
    "Username": "sub_account_username",
    "Balance": 0,
    "Connection": null,
    "LastBalanceHistory": null
  },
  "Message": "O usuario foi inserido com sucesso"
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Enabled Status da subconta que foi adicionada, no caso todas as subcontas recém criadas ja são ativadas.
Username Username da subconta que foi criada.
Balance Quantidade de créditos disponíveis na subconta que foi criada, todas as subcontas são criadas com 0 créditos.
Connection Data mais recente que a subconta efetuou login no painel.
LastBalanceHistory Data mais recente que a subconta teve créditos adicionados.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado.
Retornos Previsíveis
Success Descrição
true O usuario foi inserido com sucesso.
false O nome do usuario deve ser informado.
false O telefone celular do usuario deve ser informado.
false O e-mail já está em uso, por favor escolha um novo e-mail.
false O e-mail informado é inválido ou não foi informado.
false O campo C.P.F. ou o campo C.N.P.J. deve ser preenchido.
false A senha do usuario deve ser informada.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Consultar / Subcontas

Com este recurso, é possivel consultar as subcontas cadastradas e atreladas a sua conta.

Consultar Todos as Subcontas

Com este recurso, é possivel consultar detalhes de todas as subcontas cadastrados em sua conta.

package main;

import models.*;
import services.AccountService;

public class Main {

  static String API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

  public static void main(String[] args) throws Exception {
    AccountService accountService = new AccountService(API_KEY);
    AccountServiceResult allAccountsResult = accountService.getAllAccounts();

  }
}

Consultar Subconta Específica

Com este recurso, é possivel consultar detalhe de uma subconta específica atrelada a sua conta.

package main;

import models.*;
import services.AccountService;

public class Main {

  static String API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

  public static void main(String[] args) throws Exception {
    AccountService accountService = new AccountService(API_KEY);
    AccountServiceResult accountByUsernameResult = accountService.getAccountByUsername(
      "Username" // Username: Username da subconta que deve ser consultado os detalhes cadastrais.
      );  
  }
}
Campos Obrigatório Descrição
sub_account não Username da subconta que pertence a sua revenda. Recurso disponível apenas para contas do tipo revenda
Exemplo de Retorno de Sucesso
{
  "Success": true,
  "Object": {
    "Enabled": true,
    "Username": "sub_account_username",
    "Balance": 0,
    "Connection": yyyy-MM-ddTHH:mm:ss.ms,
    "LastBalanceHistory": yyyy-MM-ddTHH:mm:ss.ms
  },
  "Message": "O usuario foi inserido com sucesso"
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Enabled Status da subconta que foi adicionada.
Username Username da subconta que foi informado na consulta.
Balance Saldo disponível na subconta no momento da consulta.
Connection Data mais recente que a subconta efetuou login no painel.
LastBalanceHistory Data mais recente que a subconta teve créditos adicionados.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado, neste caso será sempre null
Retornos Previsíveis
Success Descrição
true Será retornado um objeto JSON com os detalhes do grupo ou dos grupos de contatos consultados com o critério selecionado.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
false Algum problema com o servidor em que está o recurso acessado, neste caso, tente acessar novamente.
false Houve um time out na requisição ao efetuar a conexão com o endpoint.

PHP

Instalação da SDK

comtele_sdk está disponível no Packagist o código é open source e pode ser encontrado em nosso GitHub github.com/comtele-php-sdk. Também disponibilizamos uma SDK para ser usada via importação de arquivos, o projeto também é open source e está disponível em nosso GitHub github.com/comtele-php-classic-sdk. Para fazer download dos arquivos e importar no seu projeto é só acessar aqui

A versão mínima necessária do PHP para instalar a SDK via composer é a 7 e via importação de arquivos 5.6.1, caso esteja utilizando uma versão inferior e tenha alguma dificuldade de usar a API Rest, recomendamos que dê uma olhadinha nos projetos acima, pois neles são feitas chamadas via API e não haverá incompatibilidades de bibliotecas e você pode ver como fazer as chamadas e fazer a sua própria versão, ou até mesmo modificar as dependencias que não são compatíveis com o seu projeto.

$ composer require comtele/comtele_sdk

Enviar SMS

Com este recurso, é possivel enviar SMS de forma instantânea.

Composer
<?php

require_once "vendor/autoload.php";

use Comtele\Services\TextMessageService;

const API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

$textMessageService = new TextMessageService(API_KEY);
$result = $textMessageService->send(
  "my_id",          // Sender: Id de requisicao da sua aplicacao para ser retornado no relatorio, pode ser passado em branco.
  "Hello PHP",      // Content: Conteudo da mensagem a ser enviada.
  ["11999998888"],  // Receivers: Numero de telefone que vai ser enviado o SMS.
  );

?>
Importação de Arquivos
<?php

require_once "textmessage_service.php";

$API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

$result = send(
  "my_id",          // Sender: Id de requisicao da sua aplicacao para ser retornado no relatorio, pode ser passado em branco.
  "Hello PHP",      // Content: Conteudo da mensagem a ser enviada.
  ["11999998888"],  // Receivers: Numero de telefone que vai ser enviado o SMS.
  );


?>
Campos Obrigatório Descrição
Sender não Este campo é usado só internamente, e geralmente é bem util para controle. Por exemplo você pode informar um id interno, que ele será exibido no relatório, dispensamdo que você faça “de para” dos ids da Comtele com o sistema que está integrando.
Content sim Conteúdo da mensagem que vai ser recebida pelo número que o SMS será enviado. Nos casos que o conteúdo do SMS superar 160 caracteres, será tarifado mais de um crédito a cada 153 caracteres. Algumas operadoras como a Oi e Sercomtel não suportam concatenação da mensagens, então serão recebidos SMS separadamente.
Receivers sim Destinatários que irão receber o SMS. Para dois ou mais destinatários, separe por uma vírgula os telefones, formato: DDD + Número.
Exemplo de Retorno de Sucesso
{
  "Success": true, 
  "Object": null, 
  "Message": "A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios."
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Object Neste recurso será nulo, pois não existe objeto a ser retornado.
Content Conteúdo da mensagem que foi recebida pelo número retornado.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado.
Retornos Previsíveis
Success Descrição
true A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios.
false Object reference not set to an instance of an object.
Possível Causa: Nenhum objeto foi informado no Body da requisição.
false É necessário informar ao menos um destinatário que irá receber o SMS.
false O parâmetro “Content” deve ser informado com conteúdo.
false Não foi possível continuar, pois a quantidade de créditos é insuficiente. Para efetuar o envio é necessário ao menos 1 créditos.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Enviar SMS / Regra de Resposta Automática

Com este recurso, é possivel enviar SMS de forma instantânea e quando o SMS for respondido, é possivel enviar uma resposta de forma automática, baseado em um contexto previamente configurado.
Para utilizar este recurso, é necessário que você acesse a opção Resposta Automática no menu Configurações no painel de SMS, cadastre uma regra de resposta automática e informe o nome que foi cadastrado no campo ContextRuleName no momento que for usar o endpoint.

Composer
<?php

require_once "vendor/autoload.php";

use Comtele\Services\ContextMessageService;

const API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

$contextMessageService = new ContextMessageService(API_KEY);
$result = $contextMessageService->send(
  "my_id",            // Sender: Id de requisicao da sua aplicacao para ser retornado no relatorio, pode ser passado em branco.
  "ContextRuleName",  // ContextRuleName: Nome da regra de resposta automativa a ser usada no envio.
  ["11999998888"],    // Receivers: Numero de telefone que vai ser enviado o SMS.
  );

?> 
Importação de Arquivos
<?php

require_once "contextmessage_service.php";

$API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

$result = send(
  "my_id",            // Sender: Id de requisicao da sua aplicacao para ser retornado no relatorio, pode ser passado em branco.
  "ContextRuleName",  // ContextRuleName: Nome da regra de resposta automativa a ser usada no envio.
  ["11999998888"],    // Receivers: Numero de telefone que vai ser enviado o SMS.
  );

?> 
Campos Obrigatório Descrição
Sender não Este campo é usado só internamente, e geralmente é bem util para controle. Por exemplo você pode informar um id interno, que ele será exibido no relatório, dispensamdo que você faça “de para” dos ids da Comtele com o sistema que está integrando.
ContextRuleName sim Neste campo deve ser informado o nome da regra que o contexto de resposta foi programado e cadastrado no sistema que no caso será usado neste envio.
Receivers sim Destinatários que irão receber o SMS. Para dois ou mais destinatários, separe por uma vírgula os telefones, formato: DDD + Número.
Exemplo de Retorno de Sucesso
{
  "Success": true, 
  "Object": null, 
  "Message": "A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios."
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Object Neste recurso será nulo, pois não existe objeto a ser retornado.
Content Conteúdo da mensagem que foi recebida pelo número retornado.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado.
Retornos Previsíveis
Success Descrição
true A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios.
false Object reference not set to an instance of an object.
Possível Causa: Nenhum objeto foi informado no Body da requisição.
false É necessário informar ao menos um destinatário que irá receber o SMS.
false E necessario informar o nome da regra de resposta automatica.
false Nao foi possivel encontrar uma regra de resposta automatica cadastrada com o nome informado.
false Não foi possível continuar, pois a quantidade de créditos é insuficiente. Para efetuar o envio é necessário ao menos 1 créditos.
false A chave de acesso informada é inválida e não pode efetuar uma requisição à API.
Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
false O usuário informado está desativado.
false O usuário informado está incorreto ou não existe
Possível Causa: o campo auth-key não está sendo informado na requisição.
Caso seja retornado um erro não tratado da linguagem, cheque a sua chave de API.

Enviar SMS / Grupos de Contatos

Com este recurso, é possivel enviar SMS de forma instantânea para um grupo de contatos.
Para usar este recuso, é necessário ter grupos de contatos já cadastrados em nossa aplicação, caso ainda não tenha feito isso, dê uma olhadinha no recurso Cadastrar Grupos e Adicionar Contatos / Grupos

Composer
<?php

require_once "vendor/autoload.php";

use Comtele\Services\ContactMessageService;

const API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

$contactMessageService = new ContactMessageService(API_KEY);
$result = $contactMessageService->send(
  "my_id",            // Sender: Id de requisicao da sua aplicacao para ser retornado no relatorio, pode ser passado em branco.
  "Hello PHP",        // Content: Conteudo da mensagem a ser enviada.
  "GroupName",        // GroupName: Nome do grupo de contatos que receberao o SMS
  );

?>
Importação de Arquivos
<?php

require_once "contactmessage_service.php";

$API_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

$result = send(
  "my_id",            // Sender: Id de requisicao da sua aplicacao para ser retornado no relatorio, pode ser passado em branco.
  "Hello PHP",        // Content: Conteudo da mensagem a ser enviada.
  "GroupName",        // GroupName: Nome do grupo de contatos que receberao o SMS
  );

?>
Campos Obrigatório Descrição
Sender não Este campo é usado só internamente, e geralmente é bem util para controle. Por exemplo você pode informar um id interno, que ele será exibido no relatório, dispensamdo que você faça “de para” dos ids da Comtele com o sistema que está integrando.
Content sim Conteúdo da mensagem que vai ser recebida pelo número que o SMS será enviado. Nos casos que o conteúdo do SMS superar 160 caracteres, será tarifado mais de um crédito a cada 153 caracteres. Algumas operadoras como a Oi e Sercomtel não suportam concatenação da mensagens, então serão recebidos SMS separadamente.
GroupName sim Nome do grupo de contatos, com todos os telefones que receberão o SMS.
Exemplo de Retorno de Sucesso
{
  "Success": true, 
  "Object": null, 
  "Message": "A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios."
}
Campos do Retorno
Campos Descrição
Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Object Neste recurso será nulo, pois não existe objeto a ser retornado.
Content Conteúdo da mensagem que foi recebida pelo número retornado.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado.
Retornos Previsíveis
Success Descrição