Atlas API
Esta API le permitirá automatizar las solicitudes de mensajes individuales y por lotes. La API utiliza el protocolo HTTP con TLS y acepta solicitudes GET con parámetros de cadena de consulta y solicitudes POST con parámetros JSON.
1.- El cliente debe informar la IP desde la que se consumirá el servicio al correo: [email protected]
2.- Wavy otorga el acceso a la IP del cliente.
3.- Se realizan pruebas de la conexión Cliente - Wavy. El cliente debe tener acceso a las dos URL.
https://<partner-name>.partner.atlasws-a.it.wavy.global:10001/ping
https://<partner-name>.partner.atlasws-b.it.wavy.global:10002/ping
5.- La "key" y "partner-name" será compartido por Wavy con el cliente.
Status | Message |
OK | Mensaje añadido a Atlas y será enviado pronto. |
403 | Solicitud denegada, revisar si las IPs tiene acceso al entorno de Wavy. |
INVALID PARAMETERS | Solicitud inválida, faltan parámetros obligatorios. |
ERROR | Error interno |
La API responde través solicitudes HTTP GET a URL's, similar a lo siguiente:
get
https://<partner-name>.partner.atlasws-a.it.wavy.global:10001/atlas/sendMessage?carrier=carrier_name&messageText=message_text&destination=525528282828&key= partner_key
sendMessage
De forma ideal, se deberían balancear sus solicitudes entre ambas URL's mostradas anteriormente. Si el acceso a una de estas falla, redireccionar todo el tráfico a la otra. Cada URL está en un datacenter diferente, por lo que siguiendo esta recomendación, incluso con el fallo de todo un datacenter, esto no interrumpirá la capacidad de envío de mensajes utilizando nuestro servicio.
También es posible realizar solicitudes mediante HTTP POST, utilizando las siguientes solicitudes:
post
https://<partner-name>.partner.atlasws-a.it.wavy.global:10001/atlas/sendMessage
sendMessage
Para el método POST, query string debe estar vacío. Todos los parámetros deben estar expresados en la forma estándar (application/x-www-form-urlencoded), en donde los parámetros van en el cuerpo del POST.
Nuevamente se aconseja balancear entre las dos URL's proporcionadas, como en el método GET.
Para enviar un mensaje wap push el cliente debe llenar los parámetros messageText y url, por ejemplo:
https://<partner-name>.partner.atlasws-a.it.wavy.global:10001/atlas/sendMessage?messageText=Message+Test&destination=541981169500&key=partner_key
https://<partner-name>.partner.atlasws-b.it.wavy.global:10002/atlas/sendMessage?messageText=Message+Test&destination=541981169500&key=partner_key
Lo demás es similar al envío de mensajes descrito anteriormente.
Para enviar un mensaje en formato binario, el parámetro binaryMessage debe ser TRUE.
No hay un tamaño de bloque recomendado, pero el UDH (User Data Header) debe ser preciso.
Ejemplo:
https://<partner-name>.partner.atlasws-a.it.wavy.global:10001/atlas/sendMessage?messageText=6d656e736167656d&destination=541981169500&binaryMessage=true&key= partner_key
https://<partner-name>.partner.atlasws-b.it.wavy.global:10002/atlas/sendMessage?messageText=6d656e736167656d&destination=541981169500&binaryMessage=true&key= partner_key
Lo demás es similar al envío de mensajes descrito con anterioridad.
Para enviar un mensaje tipo flash, el parámetro flag debe contener, en formato JSON, el parámetro "flash_sms": true, de esta forma se habilitará este tipo de envío en formato de una ventana emergente en el número telefónico destino.
Esta opción permite enviar un mensaje a más de un número telefónico. Los número destino deben estar contenidos en el cuerpo del HTTP POST.
Deberá enviar al menos 10 mensajes en un lote (si envía volumenes muy bajos de mensajes, el método de envío individual por API es más apropiado), pero no es obligatorio. Nosotros recomendamos lotes de hasta 10000 mensajes para facilitar su administración, pero no hay un límite establecido.
El método se describe a continuación:
post
https://<partner-name>.partner.atlasws-a.it.wavy.global:10001/atlas/sendMessageBatch?key=partnerKey&messageText=TEST Atlas Batch&flag=&carrierName=TELCEL&carrierID=9&binaryMessage=false
sendMessageBatch
Sólo se puede colocar un correlationId para todos los mensajes a enviar en lote.
El servicio realizará el intento de obtener la operadora del número dado, utilizando la información existente en historial de MOs de SMS, datos de las operadores y base de datos de portabilidad.
get
https://<partner-name>.partner.atlasws-a.it.wavy.global:10001/atlas/getCarrier?msisdn=525528282828
getCarrier
Confirma la disponibilidad del servicio, accediendo a las siguientes URL's:
https://<partner-name>.partner.atlasws-a.it.wavy.global:10001/ping
https://<partner-name>.partner.atlasws-b.it.wavy.global:10002/ping
Mediante este método se puede verificar si el servicio se encuentra activo o no por cada datacenter.
La respuesta a este método sería la siguiente:
<atlasResponseData>
<ticket>46d40f70−e391−11df−b642 −001871eb9afc</ticket> <command>p i n g</command>
<date>2010-10-29T17:18:14.247-02:00</date>
<status>OK</status>
<message>The AtlasWebService API is responsive !</message>
</atlasResponseData>
Se proporciona a continuación un archivo tipo YAML con el propósito de utilizar los servicios previamente descritos en formatos y con métodos diferentes de acuerdo a las necesidades del cliente.
yaml-apis.yaml
7KB
Code
Atlas API YAML Template
openapi: 3.0.0
info:
title: AtlasWS
description: 'Esta API le permitirá automatizar las solicitudes de mensajes individuales y por lotes. La API utiliza el protocolo HTTP con TLS y acepta solicitudes GET con parámetros de cadena de consulta y solicitudes POST con parámetros JSON.'
contact: {}
version: '1.0'
servers:
- url: https://<partner-name>.partner.atlasws-a.it.wavy.global:10001/atlas
variables: {}
paths:
/sendMessageBatch:
post:
tags:
- Misc
summary: sendMessageBatch
description: 'Permite el envío de un mensaje a más de un número telefónico.'
operationId: SendMessageBatch
parameters:
- name: correlationId
in: query
description: ID único definido por el usuario para almacenar información alfanumérica con una longitud de 100 caracteres.
required: false
style: form
explode: true
schema:
type: string
example: Texto en correlationId
- name: expiresAt
in: query
description: Se ingresa fecha y hora en la que el mensaje debe expirar y no ser enviado a partir de los datos ingresados. El formato es el siguiente AAAA-MM-DD 00:00 (La hora en formato 24hrs. y en UTC).
required: false
style: form
explode: true
schema:
type: string
example: 2019-12-01 13:24
- name: key
in: query
description: Identificador del cliente.
required: true
style: form
explode: true
schema:
type: string
example: partnerKey
- name: messageText
in: query
description: Texto del mensaje (MT). Los caracteres especiales (todos excepto [0-9a-zA-Z]) será codificado como URL.
required: true
style: form
explode: true
schema:
type: string
example: TEST Atlas Message Batch
- name: flag
in: query
description: Se ingresan dos campos opcionales en formato JSON. flash_sms TRUE si desea que el mensaje aparezca como una ventana emergente en el dispositivo destino, FALSE si es un mensaje regular. extraInfo Parámetro alfanumérico con longitud de 100 caracteres; éste campo no se muestra en la plataforma WEB en la sección de reportes, sin embargo se puede emplear para almacenar información requerida adicional.
required: false
style: form
explode: true
schema:
type: string
- name: carrierName
in: query
description: Nombre de la operadora.
required: false
style: form
explode: true
schema:
type: string
example: TELCEL
- name: carrierID
in: query
description: ID de la operadora.
required: false
style: form
explode: true
schema:
type: integer
format: int32
example: 9
- name: binaryMessage
in: query
description: TRUE si se desea enviar el mensaje de forma binaria, FALSE si es texto regular. FALSE está seleccionado por defecto.
required: false
style: form
explode: true
schema:
type: boolean
example: false
requestBody:
content:
text/plain:
schema:
type: string
example: >-
525528282828
525594949494
525588088808
example: >-
525528282828
525594949494
525588088808
required: true
responses:
200:
description: ''
headers: {}
deprecated: false
security: []
/sendMessage:
post:
tags:
- Misc
summary: sendMessage
description: 'Permite el envío de un solo mensaje.'
operationId: SendMessage
parameters:
- name: Content-Type
in: header
required: true
style: simple
explode: false
schema:
type: string
example: application/x-www-form-urlencoded
requestBody:
content:
application/x-www-form-urlencoded:
schema:
required:
- key
- messageText
- destination
type: object
properties:
correlationId:
type: string
description: ID único definido por el usuario para almacenar información alfanumérica con una longitud de 100 caracteres.
example: Texto en correlationId.
expiresAt:
type: string
description: Se ingresa fecha y hora en la que el mensaje debe expirar y no ser enviado a partir de los datos ingresados. El formato es el siguiente AAAA-MM-DD 00:00 (La hora en formato 24hrs. y en UTC).
example: 2019-12-01 13:24
key:
type: string
description: Identificador del cliente.
example: partnerKey
messageText:
type: string
description: Texto del mensaje (MT). Los caracteres especiales (todos excepto [0-9a-zA-Z]) será codificado como URL.
example: TEST Atlas Message
destination:
type: integer
description: 'Número telefónico a donde el mensaje será enviado (incluyendo el código de país).'
format: int64
example: 525528282828
flag:
type: string
description: Se ingresan dos campos opcionales en formato JSON. flash_sms TRUE si desea que el mensaje aparezca como una ventana emergente en el dispositivo destino, FALSE si es un mensaje regular. extraInfo Parámetro alfanumérico con longitud de 100 caracteres; éste campo no se muestra en la plataforma WEB en la sección de reportes, sin embargo se puede emplear para almacenar información requerida adicional.
carrierName:
type: string
description: Nombre de la operadora.
example: TELCEL
carrierID:
type: integer
description: ID de la operadora.
format: int32
example: 9
binaryMessage:
type: boolean
description: TRUE si se desea enviar el mensaje de forma binaria, FALSE si es texto regular. FALSE está seleccionado por defecto.
example: false
required: false
responses:
200:
description: ''
headers: {}
deprecated: false
security: []
tags:
- name: Misc
description: ''
carrierID | Nombre | carrierID | Nombre |
0 | UNKNOWN | 41 | CLARO_PE |
1 | VIVO | 42 | CLARO_PR |
2 | CLARO | 43 | ANCEL_UY |
3 | TELEMIG | 44 | MOVISTAR_UY |
4 | OI | 45 | MOVILNET_VE |
5 | TIM | 46 | DIGITEL_VE |
6 | CTBC | 47 | MOVISTAR_VER |
7 | SECOMTEL | 48 | TIGO_PY |
8 | BRT | 49 | VOX_PY |
9 | TELCEL | 50 | CLARO_PY |
10 | NEXTEL | 51 | DIGICELL_BZ |
11 | MOBILESYS | 52 | SMART_BZ |
12 | MOVISTAR_AR | 53 | CLARO_UY |
13 | PERSONAL_AR | 54 | AMERICA_MOVIL |
14 | CLARO_AR | 55 | ATT_US |
15 | NEXTEL_AR | 56 | VERIZON_US |
16 | TIGO_BO | 57 | TMOBILE_US |
17 | VIVA_BO | 58 | SPRINT_US |
18 | ENTEL_BO | 59 | UFF_MOVIL |
19 | MOVISTAR_CL | 60 | Movile |
20 | ENTEL_PCS_CL | 61 | CLARO_CR |
21 | CLARO_CDMA_CL | 62 | MOVISTAR_CR |
22 | CLARO_GSM_CL | 63 | ICE_CR |
23 | COMCEL_CO | 64 | CTE_SV |
24 | MOVISTAR_CO | 65 | CLARO_SV |
25 | TIGO_CO | 66 | MOVISTAR_SV |
26 | AVANTEL_CO | 67 | TIGO_SV |
27 | ORANGE_DO | 68 | DIGICEL_SV |
28 | VIVA_DO | 69 | CLARO_GT |
29 | CLARO_DO | 70 | TIGO_GT |
30 | PORTA_EC | 71 | MOVISTAR_GT |
31 | MOVISTAR_EC | 72 | DIGICEL_GT |
32 | MOVISTAR_MX | 73 | CLARO_HN |
33 | UNEFON_MX | 74 | TIGO_HN |
34 | IUSACELL_MX | 75 | HONDUTEL_HN |
35 | NEXTEL_MX | 76 | DIGICEL_HN |
36 | MOVISTAR_PA | 77 | CLARO_NI |
37 | CABLE_WIRELESS_PA | 78 | MOVISTAR_NI |
38 | CLARO_PA | 79 | SERCOM_NI |
39 | PERSONAL_PY | 80 | DIGICEL_PA |
40 | MOVISTA_PE | 81 | NEXTEL_PE |
Los usuario no pueden responder a marcaciones enmascaradas.
- 200.219.220.152 (ALOG-SP Datacenter - www.alog.com.br)
- 184.72.119.43 (Amazon Virginia Datacenter - aws.amazon.com)
- 200.189.182.244 (DIVEO Datacenter - www.uoldiveo.com.br)
- 50.18.192.46 (Amazon California Datacenter - aws.amazon.com)
Last modified 2yr ago