Help Center Compatibilidade com API GMS

Compatibilidade com API GMS

SMSBAT oferece suporte a uma camada de compatibilidade com a API GMS. Isso permite que você migre suas integrações existentes projetadas para GMS diretamente para SMSBAT sem precisar modificar seus esquemas de roteamento de mensagens, estruturas de carga útil ou ouvintes de retorno de chamada.


Configurações de conexão

Para rotear solicitações por meio de SMSBAT, atualize a URL base e as credenciais de autenticação em sua integração:

  • URL base: https://restapi.smsbat.com
  • Ponto final: POST /api/GMSMessage/send_message
  • Formato de solicitação: application/json
  • Autenticação: Autenticação básica HTTP (usa suas credenciais da API SMSBAT)

Parâmetros de solicitação

A API de compatibilidade GMS aceita um objeto JSON com os seguintes parâmetros de nível superior:

ParâmetroTipoObrigatórioDescrição
número_telefonecordaSimNúmero de telefone do destinatário em formato internacional (por exemplo, 380501234567).
etiquetacordaSimNome do remetente registrado/nome alfa.
canaismatrizSimLista de canais para experimentar, em ordem de prioridade. Valores suportados: viber, sms, push. Por exemplo, ["viber", "sms"].
canal_opçõesobjetoSimMapa contendo opções para cada canal ativo (veja abaixo).
id_extracordaNãoSeu ID de mensagem interno do cliente.
url_de retornocordaNãoURL do endpoint em seu sistema para receber retornos de chamada de status de entrega.
divisão_códigocordaNãoIdentificador de código de divisão opcional (o padrão é main).

Configurações de opções de canal

O objeto channel_options contém configurações específicas do canal.

Usado quando viber está listado na matriz channels.

ParâmetroTipoObrigatórioDescrição
textocordaSimTexto do corpo da mensagem.
ttlinteiroSimTempo de vida em segundos.
imgcordaNãoURL HTTPS público da imagem a ser exibida.
legendacordaNãoEtiqueta de texto do botão.
açãocordaNãoURL de destino quando o botão é clicado.
opções_de_pesquisamatrizNãoMatriz de strings (2 a 5 itens) para exibir como opções de pesquisa.
carousel_itemsmatrizNãoMatriz de objetos de slide para exibir como um carrossel do Viber (veja a estrutura na aba).

Exemplo de solicitação do Viber:

{
  "phone_number": "380501234567",
  "tag": "MySender",
  "channels": ["viber"],
  "channel_options": {
    "viber": {
      "text": "Hello from SMSBAT!",
      "ttl": 60,
      "img": "https://www.example.com/image.png",
      "caption": "Open",
      "action": "https://www.example.com"
    }
  }
}

Formato de resposta

O endpoint retorna respostas em formato JSON com um código de status HTTP 200 OK.

Resposta bem-sucedida

{
  "MessageId": "6f0d5e28-7f3a-4df3-91a2-3d58d9e09b9a",
  "ErrorCode": null,
  "ErrorText": null
}

Respostas de erro

Se a validação ou o processamento falhar, uma resposta de erro com um ErrorCode não nulo e um ErrorText detalhado será retornada.

{
  "MessageId": "00000000-0000-0000-0000-000000000000",
  "ErrorCode": 10221,
  "ErrorText": "This type of Message is not supported by the system"
}

Formato de entrega de retorno de chamada

Se callback_url foi especificado na solicitação, o SMSBAT envia atualizações de status de entrega como uma carga JSON POST para seu endpoint.

Exemplo de solicitação de retorno de chamada

POST /your-callback-endpoint HTTP/1.1
Host: yoursystem.com
Content-Type: application/json

{
  "number": "380501234567",
  "time": 1719237600000,
  "status": 2,
  "substatus": 23,
  "hyber_status": 23033,
  "message_id": "6f0d5e28-7f3a-4df3-91a2-3d58d9e09b9a",
  "extra_id": "ORDER-12345",
  "sent_via": "viber",
  "matching_template_id": 0
}

Descrição dos campos de retorno de chamada

CampoTipoDescrição
númerocordaNúmero de telefone do destinatário.
temponúmeroCarimbo de data/hora do evento em milissegundos Unix.
estadonúmeroIdentificador de status simplificado (consulte a tabela de códigos de status).
substatusnúmeroIdentificador de status detalhado (consulte a tabela de códigos de substatus).
hyber_statusnúmeroCódigo de status interno SMSBAT detalhado (consulte a tabela Hyber Status).
id_da_mensagemcordaID da mensagem SMSBAT (GUID) gerado no envio.
id_extracordaID do cliente fornecido na solicitação original.
enviado_viacordaCanal que processou a mensagem: viber, sms ou rcs.
matching_template_idnúmeroStatus de correspondência do modelo Viber (quando aplicável).

Mapeamentos de status

1. Status simplificado (status)

CódigoSignificado
1Mensagem aceita ou sendo entregue.
2Mensagem entregue.
3Erro de processamento ou entrega.

2. Status detalhado (substatus)

CódigoSignificado
12Aceito para processamento.
23Entregue.
24Visto/lido.
35Não entregue dentro do TTL (Expirado).
36Erro de entrega.

3. Tipo de canal (enviado_via)

CanalDescrição
viberStatus produzido pelo canal Viber.
smStatus produzido pelo canal SMS.
rcsStatus produzido pelo canal RCS.

4. Status detalhado do SMSBAT (hyber_status)

CódigoCanalEstadoSubstatusSignificado
23033viber223Mensagem Viber entregue.
24013viber224Mensagem do Viber lida pelo destinatário (vista).
36013viber336Erro interno do Viber.
36023viber336ID de serviço Viber inválido ou indisponível.
36033viber336Dados de carga útil do Viber inválidos.
36037viber336URL da imagem do Viber muito longo.
36038viber336URL de imagem Viber inválido.
36039viber336Texto do Viber muito longo.
36044viber336Texto vazio do Viber.
36053viber336Tipo de mensagem Viber não compatível.
36063viber336Parâmetros Viber inválidos.
36073viber336Tempo limite do provedor Viber.
36083viber336Remetente Viber bloqueado pelo destinatário.
36093viber336O destinatário não está registrado como usuário Viber.
36103viber336Nenhum dispositivo Android/iOS com suporte Viber encontrado.
36113viber336Endereço IP não autorizado para envio do Viber.
36123viber336Mensagem duplicada do Viber detectada.
36143viber336Erro de faturamento do Viber.
36153viber336Mensagem bloqueada pela lista negra da plataforma.
36163viber336Erro de processamento interno da plataforma Viber.
36173viber336Rótulo Viber errado ou ausente.
36183viber336Valor Viber TTL inválido.
12011sms / rcs112SMS/RCS aceitos.
36011sms / rcs112Rota SMS/RCS.
23011sms / rcs223SMS/RCS entregues.
35015sms / rcs335SMS/RCS expirado (não entregue dentro do TTL).
36021sms / rcs336Mensagem SMS/RCS excluída.
36031sms / rcs336SMS/RCS não podem ser entregues.
36041sms / rcs336Status de entrega de SMS/RCS desconhecido.
36051sms / rcs336Mensagem SMS/RCS rejeitada.