Whatsapp API DOCUMENTACIÓN

Documentación completa


REST API permite recibir y enviar mensajes a través de una cuenta de WhatsApp. Registrar su cuenta de WhatsApp API

Parámetros en las solicitudes GET transmite por la query string. Los parámetros en las solicitudes POST transmiten por JSON-encoded. El token de autorización siempre es transmitido por la query string (? Token = xxxxxx). Para cada solicitud, debe añadir un token al Get parámetro token.

La API WhatsApp funciona sobre la base del protocolo WEB de WhatsApp y elimina la prohibición al usar bibliotecas mgp25 y similares. A pesar de esto, su cuenta puede ser prohibida por el sistema antispam de WhatsApp después de varios clics en el botón "en spam".


SDK desarrollado por desarrolladores externos para trabajar con nuestro sistema:

GET /status

Obtener el estado de la cuenta y el código QR para la autorización. La nueva autorización sólo es necesaria en el caso de cambiar el dispositivo o pulsar manualmente "Salir de todos los dispositivos" del teléfono. Mantenga la aplicación WhastsApp abierta durante el inicio de sesión.

.
init este es el estado inicial
loading descargar, repita después de 30 segundos
got qr code Hay un código QR y tienes que tomar una foto de él en la aplicación. Whatsapp accediendo al menú -> WhatsApp Web -> Agregar. El código QR es válido por un minuto. Un ejemplo de visualización de imágenes base64 en una página .
Manualmente es más fácil obtener la imagen de un código QR
authenticated autorización aprobada con éxito
Ejemplo de respuesta:
{
    "accountStatus": "got qr code",
    "qrCode": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQ....."
}

GET /qr_code

Enlace directo al QR-code en forma de una imagen, no como base64

POST /group

Cree un grupo y envíe un mensaje al grupo creado. Si el host del iPhone, la presencia de todos en la lista de contactos es necesaria.

El grupo se agregará a la cola de envío y, tarde o temprano, se creará, incluso si el teléfono está desconectado de Internet o el fallo de autorización.

Actualizado el 2 de octubre de 2018: el parámetro chatId se rellenará si se crea un grupo en su teléfono dentro de 20 segundos.

Parámetros:
groupName Nombre del grupo, string, obligatorio.
phones Un conjunto de números de teléfono, comenzando con el código del país. Usted no necesita agregar su número.
USA example: ['17472822486'].
messageText Texto del mensaje, string
Request example:
{
    "phones": ["17472822486","79680565372"],
    "messageText": "Safari is the new IE",
    "groupName": "Browsers",
}

POST /sendMessage

Enviar un mensaje a una charla nueva o existente. El mensaje se añadirá a la cola de envío y se entrega, aunque el teléfono esté desconectado de Internet o el fallo de autorización.

Apenas um dos dois parâmetros é necessário para determinar o destino - chatId ou phone.

Parámetros:
phone Obligatorio si no se especifica chatId Número de teléfono que comienza con el código del país.
USA example: 17472822486.
chatId Obligatorio si no especificado phone ID de charla de la lista de mensajes. Ejemplos: 79633123456@c.us para mensajes privados y 79680561234-1479621234@g.us para el grupo. Utilizado en lugar del parámetro phone
body obligatorio Texto del mensaje, cualquier cadena incluyendo emoji 🍏 (UTF-8 or UTF-16)
Ejemplos de solicitudes:
{
    "phone": "17472822486",
    "body": "Hello, world! 🍏"
}
{
    "chatId": "17472822486@c.us",
    "body": "Hello, world!"
}
Server response example:
{
    "sent": true,
    "message": "ok"
}

POST /sendFile

Enviar un mensaje a una charla nueva o existente.

El mensaje se añadirá a la cola de envío y se entrega, aunque el teléfono esté desconectado de Internet o el fallo de autorización. Apenas um dos dois parâmetros é necessário para determinar o destino - chatId ou phone.

Parámetros:
phone Obligatorio si no se especifica chatId Ver POST /sendMessage
chatId Obligatorio si no se especifica phone Ver POST /sendMessage
body Obligatorio Enlace al archivo, por ejemplo, HTTP link https://upload.wikimedia.org/wikipedia/ru/3/33/NatureCover2001.jpg
O un archivo en base64, por ejemplo, data:image/jpeg;base64,/9j/4AAQSkZJRgABAQ...
O archivo en el campo del formulario
filename obligatorio El nombre del archivo que se enviará, por ejemplo 1.jpg o Hello.xlsx
caption No es obligatorio Texto bajo la foto
Ejemplos de solicitudes:
{
    "chatId": "17472822486@c.us",
    "body": "https://upload.wikimedia.org/wikipedia/ru/3/33/NatureCover2001.jpg",
    "filename": "cover.jpg"
}
{
    "phone": "17472822486",
    "body": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAMAAACeL25MAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyNpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQwIDc5LjE2MDQ1MSwgMjAxNy8wNS8wNi0wMTowODoyMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChNYWNpbnRvc2gpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkI3OEY5RkZENjkwQjExRTg4NENBQjE1QkFGNzEzOEQ5IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkI3OEY5RkZFNjkwQjExRTg4NENBQjE1QkFGNzEzOEQ5Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6Qjc4RjlGRkI2OTBCMTFFODg0Q0FCMTVCQUY3MTM4RDkiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6Qjc4RjlGRkM2OTBCMTFFODg0Q0FCMTVCQUY3MTM4RDkiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz60+8CVAAAADFBMVEX/zc2ampr/ZmYwMDB/wIlPAAAAGUlEQVR42mJgZmQAQkYGBgYmJiYwwQgQYAAAzQAVpgHCIgAAAABJRU5ErkJggg==",
    "filename": "4x4pixel.jpg"
}
Server response example:
{
    "sent": true,
    "message": "ok"
}

GET /messages

Obtener una lista de mensajes. Para obtener sólo mensajes nuevos, transmita un parámetro lastMessageNumber de la última solicitud.

Los archivos de los mensajes tienen la garantía de ser almacenados por sólo 10 días y pueden ser excluidos. Descargar archivos a la vez, cuando reciba en su servidor.

Parámetros:
lastMessageNumber Parámetro lastMessageNumber de la última solicitud
last Muestra los últimos 100 mensajes. Si se pasa este parámetro, lastMessageNumber será ignorado.
Ejemplo de respuesta:
// GET /messages?lastMessageNumber=99:
{
    "messages:" [{
        //ID único
        "id": "false_17472822486@c.us_DF38E6A25B42CC8CCE57EC40F",
        //texto del mensaje para el tipo de "chat" o enlace de descarga de archivos a "ptt", "image", "audio" y "document"
        "body": "Ok!",
        //Tipo de mensaje - "chat" - texto, "image" - imagen, "ptt" - voz, "document" - documento de texto, "audio" - archivo de audio, "call_log" - llamada
        "type": "chat",
        //Nombre del remitente
        "senderName": "Ilya",
        //true - salida, falso - entrada
        "fromMe": true,
        //ID del autor del mensaje, es útil para los grupos
        "author": "17472822486@c.us",
        //hora de envío, unix timestamp
        "time": 1504208593,
        //chat ID
        "chatId": "17472822486@c.us",
        //el número de secuencia del mensaje en la base de datos
        "messageNumber": 100
    }, {
        //...
    }],
    "lastMessageNumber": 199 //La próxima solicitud debe ser /messages?lastMessageNumber=199
}

POST /webhook

Se establece la URL para recibir notificaciones de webhook sobre los nuevos mensajes y el estado de entrega de los mensajes salientes (ack).

Parámetros:
webhookUrl Http or https URL for receiving notifications. For testing, we recommend using requestb.in.
Server response example:
{
    "set": true,
    "webhookUrl": "https://requestb.in/1f9aj261"
}
Ejemplo de notificación de webhook:

{ // It has the same JSON payload as /messages has
  // Sending to POST JSON body
    "messages": [{
        //unique id
        "id": "false_17472822486@c.us_DF38E6A25B42CC8CCE57EC40F",
        //text message for type "chat" or link to download the file for "ptt", "image", "audio" and "document"
        "body": "Ok!",
        //type of the message - "chat" - text, "image" - image, "ptt" - voice, "document" - text document, "audio" - audio file, "call_log" - call
        "type": "chat",
        //Sender name
        "senderName": "Ilya",
        //true - outgoing, false - incoming
        "fromMe": true,
        //Author ID of the message, useful for groups
        "author": "17472822486@c.us",
        //send time, unix timestamp
        "time": 1504208593,
        //chat ID
        "chatId": "17472822486@c.us",
        //sequence number of the message in the database
        "messageNumber": 100
    }, {
        //...
    }],
    "ack": [{//message delivered
                    "id": "false_17472822486@c.us_DF38E6A25B42CC8CCE57EC40F",
                    "queueNumber": 100
                    "chatId": "17472822486@c.us",
                    "status": "delivered",
                    },{//message viewed
                    "id": "false_17472822486@c.us_DF38E6A25B42CC8CCE57EC40F",
                    "queueNumber": 100
                    "chatId": "17472822486@c.us",
                    "status": "viewed",
                    }, {
        //...
    }],
}

GET /webhook

Devuelve la actual webhook url.

Server response example:
{
    "set": true,
    "webhookUrl": "https://requestb.in/1f9aj261"
}

POST /settings/ackNotificationsOn

Activar o desactivar la recepción de notificaciones de entrega y leer los mensajes enviados ack en webhook. El método GET en la misma dirección también funciona.

Parámetros:
ackNotificationsOn 1 (true) or 0 (false) .

GET /logout

Salir de su cuenta y solicitar un nuevo código QR.

Server response example:
{
    "result": "Logout request sent to WhatsApp"
}

GET /reboot

Recargue su instancia de WhatsApp.

Server response example:
{
    "success": true
}

GET /showMessagesQueue

Mostrar una lista de mensajes que están en cola para el envío pero no enviadas aún.

Server response example:
{
   "totalMessages":2,
   "first100":[
      {
         "id":1,
         "body":"Hey!",
         "type":"text",
         "chatId":"79600005372@c.us",
         "last_try":1528320463436,
         "metadata":"{}"
      },
   ]
}

GET /clearMessagesQueue

Limpiar la cola de envío de mensajes. Este método es necesario cuando se envían aleatoriamente miles de mensajes seguidos.

Server response example:
{
   "message":"Cleared 2 messages",
   "messageTextsExample":[
      "Hello world",
      "Hello world"
   ]
}