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.
:::danger Nuevo 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'
:::note Nota
Reemplaza la variable API_KEY antes de realizar la llamada CURL.
:::
:::note Nota
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
:::tip Consejo
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"
}
]
}
:::danger Atención a la ruta 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 Listo para enviar 2 Enviado a API3 Bloqueado4 No enviado a la API5 Envío programado cancelado6 No enviado y no cobrado7 Rechazado8 HLR Bloqueado9 Error de envío10 Entrega confirmada11 Respondido 12 Devuelto (no enviado) 13 Rechazado por saldo insuficiente15 Moderación16 En ruta17 Envío rápido bloqueado18 Envío rápido en espera19 Procesando20 Marcado como inválido21 En cola22 Suspensión23 SMPP Concatenado24 Marcado para reembolso de saldo42 Redirigido a la cola96 Estado de entrega temporal97 Cancelación completada98 Cancelación solicitada99 Otros errores101 Bloqueado de envío105 Funcionando106 Enviado a cola de trabajo107 Funcionando en cola |
| 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
:::danger Atención 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": [
...
]
}