Receiving Message Statuses

This article describes a callback method for sending information about changes in message processing and delivery status. A callback is a request for information about message status changes that we send to your server. The request parameters are passed in the request body.

Connection URL

Only the HTTPS protocol is supported.

To retrieve message callback statuses, during registration, you should specify your system’s API endpoint that will process incoming POST requests from API edna.

Example of the body of an incoming POST request:

{
  "requestId": "test-00135",
  "cascadeId": 11,
  "cascadeStageUUID": "001-test001",
  "subject": "test_subject",
  "subjectId": 2,
  "status": "READ",
  "statusAt": "2023-10-31T11:07:56Z",
  "error": null,
  "comment": null,
  "paymentData": {
    "@type": "WhatsAppConversationPaymentData",
    "conversationId": "test0001",
    "conversationType": "marketing",
    "chargeable": true,
    "type": "WHATSAPP_CONVERSATION"
  }
}

Request Format

ParameterData typeDescription
requestIdstringThe request ID from which the message is generated and sent.
cascadeIdlongThe cascade ID.
cascadeStageUUIDstringNull or data.
subjectstringThe subject name.
subjectIdlongThe subject ID. To retrieve the ID, use the channel-profile method.
statusstringThe message status.
statusAtstringThe last time the status was updated, displayed in the ISO 8601 format. For example, 2021-01-21T08:00:00Z.
errorstring (optional)Possible values: null or data. An error occurred while delivering the message.
commentstring (optional)The text comment used when the message was sent. It is displayed in the detailed message report. Can be used for chatbot routing.
paymentDataobjectA set of parameters for the WhatsApp channel that sends information about the conversation.
conversationIdstringThe conversation ID. Sent for the WhatsApp channel.
conversationTypestringThe conversation category. Sent for the WhatsApp channel.
chargeableboolean (optional)The conversation type: paid or free. Sent for the WhatsApp channel for the delivered and read statuses.

Response Format

In response to a request from your server, the status of its execution should be returned with the code 200.

If the code 200 is not received in response to the callback request, edna Pulse makes 10 more request attempts with an interval of 2*X seconds between attempts (where X is the number of attempts) until the code 200 is received in response. That is, every 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048 seconds.

Delivery Statuses

StatusDescription
sentThe message has been sent to the recipient.
deliveredThe message has been delivered to the recipient.
readThe message has been read by the recipient.
undeliveredThe message has been sent but not delivered to the recipient.
cancelledSending the message has been canceled.
expiredThe message didn’t receive the delivered status because:
• the time specified when configuring the cascade is expired;
• the default message delivery time (TTL) of the channel is expired (see more about the message delivery time).
failedError processing the message.
When setting up integration, note that the list of statuses can be extended.