Envío de SMS
Para enviar SMS desde Witime, utiliza los siguientes parámetros.
EndPoint https://sms.witi.me/sms/send.aspx?chave=API_KEY
Método POST
Entrada JSON con un conjunto de mensajes a enviar
Respuesta JSON con el resultado de la programación del envío
La clave API se puede encontrar en el menú SMS > Configuración SMS.
Aceptamos solicitudes en formatos principales como Zenvia, Movile, Twilio, entre otros. Ve más en Formatos de Entrada.
Ejemplo CURL
curl --location 'https://sms.witi.me/sms/send.aspx?chave=API_KEY&type=short&to=%2B5511987654321&msg=test%2Bmessage'
Reemplaza la variable API_KEY antes de realizar la llamada CURL.
Para probar otra(s) ruta(s), agrega el parámetro &route=X a la llamada CURL. Para ver las rutas activas, ve a Configuración SMS > Ruta Preferida.
Envío de SMS Asíncrono
El envío asíncrono permite enviar mensajes más rápido, solo agrega el argumento async=true al endpoint:
EndPoint https://sms.witi.me/sms/send.aspx?chave=API_KEY&async=true
Guarda la Key devuelta por la API para verificar el estado del lote asíncrono más tarde.
Entrada
Clase Root
| Propiedad | Contenido |
|---|---|
| tipo_envio | common | token | debug Por defecto: common |
| referencia | Nombre de un envío para referencia, opcional. |
| rota | Ruta utilizada para enviar el SMS. Si no se informa, usa la ruta por defecto. |
| mensagens | array de Messages |
Clase Messages
| Propiedad | Contenido |
|---|---|
| numero | Contiene el número de destino del mensaje a enviar, en el formato Código de Área + Número |
| mensagem | Texto del mensaje |
| DataAgendamento | Fecha y hora en que el mensaje debe ser entregado. |
| Codigo_cliente | Código personalizado, libre para llenar. |
| template | Código de plantilla a enviar en lugar del campo 'message'. |
| TemplateWEBID | WebId de la plantilla a enviar en lugar del campo 'message'. |
Ejemplo de entrada:
{
"tipo_envio": "common",
"reference": "api send",
//"rota": 99,
"mensagens": [
{
"numero": "11999999999",
"mensagem": "test message 1",
"DataAgendamento": "2020-07-26 14:30:00",
"Codigo_cliente": "0000001"
},
{
"numero": "11999999998",
"mensagem": "test message 2",
"DataAgendamento": "2020-07-26 14:30:00",
"Codigo_cliente": "0000002"
}
]
}
No olvides informar la ruta deseada (comentada en el código anterior). O configurar la ruta por defecto en el menú Configuración SMS.
Ejemplo de entrada (template):
{
"tipo_envio": "common",
"referencia": "api send",
//"route": 99,
"mensagens": [
{
"template": 123,
"number": "11999999999"
},
{
"TemplateWEBID": "4095a269-5d88-4bbb-9ff4-db33404d4f52",
"number": "11999999998"
},
]
}
Salida
La respuesta será un JSON con las siguientes características.
Clase Root
| Propiedad | Contenido |
|---|---|
| CodigoResultado | 0 (cero) Si todo está correcto otro valor si hay algún error |
| Mensagem | Descripción del estado |
| Chave | Clave de identificación única para este lote de envío. |
| Cobrado | true o false |
| ValorCobrado | Valor cobrado por el envío |
Clase Messages
| Propiedad | Contenido |
|---|---|
| numero | Contiene el número de destino del mensaje a enviar, en el formato Código de Área + Número |
| Mensagem | Texto del mensaje |
| UniqueID | Número de identificación único para este mensaje individual. |
| DataAgendamento | Fecha y hora en que el mensaje debe ser entregado. |
| Custo | Costo del mensaje individual |
| IdDisparo | Si se proporcionó un valor de "referencia", contiene el número de referencia único del envío. |
| Situacao | Código según el estado del mensaje: 0 Esperando 1 ListoParaEnviar 2 EnviadoAAPI3 Bloqueado8 BloqueadoHLR9 ErrorDeEnvio10 ConfirmacionEntregado11 Respondido 99 OtrosErrores |
| MensagemSituacao | Mensaje descriptivo del estado del mensaje |
| Codigo_cliente | Código proporcionado por el cliente. |
| Rota | Indica la ruta de salida del mensaje |
Ejemplo de salida:
{
"Resultado": {
"CodigoResultado": 0,
"Mensagem": "Messages sent successfully",
"Chave": "154d1f4d-2856-4913-80f8-084b20f3e9de",
"Cobrado": true,
"ValorCobrado": 0.20
},
"Mensagens": [
{
"numero": "+5511987654321",
"mensagem": "test message 1",
"UniqueID": "31b2c48f-2ea9-4979-a9dd-cbfb927de18f",
"DataAgendamento": "2020-07-26 14:35:08",
"Custo": 0.1000,
"idDisparo": 25,
"Situacao": 1,
"MensagemSituacao": null,
"Codigo_cliente": "0000001",
"Rota": 99
},
{
"numero": "+5511987654321",
"mensagem": "test message 2",
"UniqueID": "f795a269-5d88-4bbb-9ff4-db33404d4f52",
"DataAgendamento": "2020-07-26 14:35:08",
"Custo": 0.1000,
"idDisparo": 26,
"Situacao": 1,
"MensagemSituacao": null,
"Codigo_cliente": "0000002",
"Rota": 99
}
],
"Saldo": 5310.94
}
Estado del SMS
Verificar lote asíncrono
Devuelve el estado del lote asíncrono.
EndPoint https://sms.witi.me/sms/consultalote.aspx?chave=API_KEY&batch=BATCH_KEY
Método GET
Respuesta JSON con el estado del/los mensaje(s)
Consulta simple
Devuelve el estado actual del mensaje según el ID proporcionado.
EndPoint https://sms.witi.me/sms/getstatus.aspx?chave=API_KEY&messageid=MESSAGE_ID
SMPP EndPoint https://sms.witi.me/sms/getstatus.aspx?chave=API_KEY&messageid=MESSAGE_ID&type=smpp
Método GET
Respuesta JSON con el estado del mensaje
Consulta de lote
Devuelve el estado según la lista de mensajes proporcionada.
EndPoint https://sms.witi.me/sms/getstatus.aspx?chave=API_KEY
SMPP EndPoint https://sms.witi.me/sms/getstatus.aspx?chave=API_KEY&type=smpp
Método POST
Entrada Lista JSON con los IDs de los mensajes
Respuesta JSON con el estado del/los mensaje(s)
Ejemplo de entrada:
[
"c6f5fd19-124a-4035-983a-471e3c448183",
"2185b568-537c-4702-bc38-a29009aa91c7",
"f586866a-d16a-43c7-98ee-7b86421251d5"
]
Ejemplo de entrada SMPP:
[
"2145172767744231",
"3019283749203872",
"6018023984723650"
]
Ejemplo de respuesta:
{
"Resultado": {
"CodigoResultado": 0,
"Mensagem": "Data returned successfully, 3 records",
"Chave": "225f93c6-9a11-49ab-ad52-064cf509cae0",
"Cobrado": false,
"ValorCobrado": 0.0
},
"Mensagens": [
{
"IdEmpresa": 14274,
"IdCallback": 437526,
"Tipo": "DLR",
"IdMensagem": "c6f5fd19-124a-4035-983a-471e3c448183",
"Situacao": 10,
"IdRota": 0,
"IdDisparo": 9258,
"CodOper": 0,
"Mensagem": "By providing the token 488861 you confirm that you have read and agree...",
"Tag": null,
"Cliente_ref": "15||209||0",
"DataSituacao": "2021-11-11T16:01:56.86",
"DataDespacho": "2021-11-11T15:59:05.097",
"DataEntregue": "2021-11-11T16:01:56.923",
"DataResposta": "0001-01-01T00:00:00",
"Remote_Dlr_time": "2021-11-11T16:01:56.86",
"Remote_status": "4-DELIVERE",
"Callback_data_execucao": "2021-11-11T16:02:00",
"Callback_post_content": "[{\"Data\":\"2021-11-11T16:01:56.923\",\"Tipo\":\"DLR\",\"MensagemUniqueId\":\"c6f5fd19-124a-4035-983a-471e3c448183\",\"Situacao\":10,\"SituacaoDescricao\":\"Delivered\",\"Mensagem\":null,\"Cliente_ref\":\"15||209||0\"}]",
"Callback_return_content": "",
"Callback_url": "http://my-site.com/messages?id=1",
"Callback_return_code": 200,
"Callback_tempo_ms": 437
},
{
"IdEmpresa": 1,
"IdCallback": 0,
"Tipo": "DLR",
"IdMensagem": "2185b568-537c-4702-bc38-a29009aa91c7",
"Situacao": 10,
"IdRota": 0,
"IdDisparo": 0,
"CodOper": 55320,
"Mensagem": "Marcelo, thank you for talking to our agents.",
"Tag": null,
"Cliente_ref": "",
"DataSituacao": "2021-11-11T16:01:56.86",
"DataDespacho": "2021-11-11T15:59:18.24",
"DataEntregue": "2021-11-11T16:01:56.923",
"DataResposta": "0001-01-01T00:00:00",
"Remote_Dlr_time": "2021-11-11T16:01:56.86",
"Remote_status": "4-DELIVERE",
"Callback_data_execucao": "0001-01-01T00:00:00",
"Callback_post_content": "",
"Callback_return_content": "",
"Callback_url": "",
"Callback_return_code": 0,
"Callback_tempo_ms": 0
},
{
"IdEmpresa": 1,
"IdCallback": 0,
"Tipo": "DLR",
"IdMensagem": "f586866a-d16a-43c7-98ee-7b86421251d5",
"Situacao": 10,
"IdRota": 0,
"IdDisparo": 0,
"CodOper": 55320,
"Mensagem": "Jeferson, thank you for talking to our agents.",
"Tag": null,
"Cliente_ref": "",
"DataSituacao": "2021-11-11T16:01:56.86",
"DataDespacho": "2021-11-11T15:59:10.783",
"DataEntregue": "2021-11-11T16:01:56.923",
"DataResposta": "0001-01-01T00:00:00",
"Remote_Dlr_time": "2021-11-11T16:01:56.86",
"Remote_status": "4-DELIVERE",
"Callback_data_execucao": "0001-01-01T00:00:00",
"Callback_post_content": "",
"Callback_return_content": "",
"Callback_url": "",
"Callback_return_code": 0,
"Callback_tempo_ms": 0
}
],
"Saldo": 5310.94
}
Cancelar Envío de SMS
EndPoint https://sms.witi.me/sms/cancel.aspx?chave=API_KEY
Método POST
Entrada JSON con la lista de IDs de los mensajes a cancelar
Respuesta JSON con el resultado de la programación del envío
La cancelación se puede hacer hasta 5 minutos antes del envío.
Entrada
[
"f586866a-d16a-43c7-98ee-7b86421251d5",
"c6f5fd19-124a-4035-983a-471e3c448183",
...
// maximum of 250 messages per request
]
Salida
{
"Resultado": {
"CodigoResultado": 0,
"Mensagem": "Messages canceled successfully, 2 records",
"Chave": "325f93a6-9a12-49ab-ad52-064cf509cee0",
"Cobrado": false,
"ValorCobrado": 0.0
},
"Mensagens": [
...
]
}