[go: up one dir, main page]

Skip to content

ReceiveNotification#

Test Postman

The method is aimed for receiving one incoming notification from the notifications queue.

ReceiveNotification method waits for a notification receipt for 5 sec. The method call ends with an empty response if a timeout is reached. If a notification comes to the queue within 5 seconds, the method call is completed, and the method returns the received notification.

After receiving and processing an incoming notification, you need to delete the notification from the queue. This requires you to run DeleteNotification method. After calling DeleteNotification method, the notification will be considered received and processed and will be permanently deleted from the queue. Therefore, the next call of ReceiveNotification method will return the next notification from the queue in the order in which notifications come to the queue.

Incoming notifications are stored in the queue for 24 hours.

Notifications are sent from the queue in FIFO order

Request#

To get the next incoming notification from the queue, you have to execute a request at:

GET
{{apiUrl}}/waInstance{{idInstance}}/receiveNotification/{{apiTokenInstance}}?receiveTimeout={{seconds}}

For apiUrl, idInstance and apiTokenInstance request parameters, refer to Before you start section.

URL request parameters#

Parameter Type Mandatory Description
receiveTimeout integer No Notification waiting timeout, takes a value from 5 to 60 seconds (default 5 seconds)

Response#

Response parameters#

Parameter Type Description
receiptId integer Receipt Id for deleting an incoming notification by DeleteNotification method
body object Incoming notification in accordance with Incoming notifications format

Response body example#

{
    "receiptId": 1234567,
    "body": {
        "typeWebhook": "incomingMessageReceived",
        "instanceData": {
            "idInstance": 1234,
            "wid": "11001234567@c.us",
            "typeInstance": "whatsapp"
        },
        "timestamp": 1588091580,
        "idMessage": "F7AEC1B7086ECDC7E6E45923F5EDB825",
        "senderData": {
            "chatId": "79001234568@c.us",
            "sender": "79001234568@c.us",
            "senderName": "John",
            "senderContactName": "John Doe"
        },
        "messageData":{
            "typeMessage":"textMessage",
            "textMessageData":{
                "textMessage":"I use Green-API to send this message to you!"
            }
        }
    }
}

ReceiveNotification errors#

For a list of errors common to all methods, refer to Common errors section

HTTP code Error Id Description
400 Parameter idInstance not an integer idInstance parameter is not specified or contains non-digit characters
400 Parameter apiTokenInstance not define apiTokenInstance is not specified
400 Message cannot be received because custom webhook url is set. Go to cabinet, clear webhook url for instance: ХХХХХХХХХХ and wait for about 1 minute for another attempt Message cannot be received because custom webhook url is set. Go to cabinet, clear webhook url for instance: ХХХХХХХХХХ and wait for about 1 minute for another attempt

Request examples#

import requests

url = "{{apiUrl}}/waInstance{{idInstance}}/receiveNotification/{{apiTokenInstance}}"

payload = {}
headers= {}

response = requests.request("GET", url, headers=headers, data = payload)

print(response.text.encode('utf8'))
curl --location '{{apiUrl}}/waInstance{{idInstance}}/receiveNotification/{{apiTokenInstance}}'
var restTemplate = new RestTemplate();
var requestUrl = new StringBuilder();
requestUrl
    .append({{apiUrl}})
    .append("/waInstance").append({{idInstance}})
    .append("/receiveNotification/")
    .append({{apiTokenInstance}});

var response = restTemplate.exchange(requestUrl.toString(), HttpMethod.GET, null, String.class);
System.out.println(response);
var requestUrl = new StringBuilder();
requestUrl
    .append({{apiUrl}})
    .append("/waInstance").append({{idInstance}})
    .append("/receiveNotification/")
    .append({{apiTokenInstance}});

var response = Unirest.get(requestUrl.toString())
    .header("Content-Type", "application/json")
    .asString();

System.out.println(response);
Sub ReceiveNotification()
    Dim url As String
    Dim http As Object
    Dim response As String

    ' The apiUrl, idInstance and apiTokenInstance values are available in console, double brackets must be removed
    url = "{{apiUrl}}/waInstance{{idInstance}}/receiveNotification/{{apiTokenInstance}}"

    Set http = CreateObject("MSXML2.XMLHTTP")

    http.Open "GET", url, False
    http.Send

    response = http.responseText

    Debug.Print response

    ' Outputting the answer to the desired cell
    ' Range("A1").Value = response

    Set http = Nothing
End Sub 

You can see the example of notifications receipt code on NodeJS in the file ReceiveNotifications