Send List


You can use the "Send List" API in one case only: You reply to a message that the client sent, within 24 hours since the client sent his last message.

If you send a message to a new client, or try to send a message to an old client (old client means that more than 24 hours has passed since his last message), you must use the "Send Template Message" API instead. Sending contact is not available for template message, therefore, sending a contact message can only be when replying to a client. If you send a template message to the client, and the client did not reply yet, and you want to send another message to him, you must use the template message again.


Explanation

The Send List API allows you to send a message that includes a list of up to 10 choices.


Remarks

  • You can use the "Send List" API in one case only - for reply to a message that the client sent, within 24 hours since the client sent his last message. If you send a message to a new client, or try to send a message to an old client (old client means that 24 hours since client's last message has passed), you must use the "Send Template Message" API instead. If you send a template message to the client, and the client did not reply yet, and you want to send another message to him, you must use the template message again.

  • You can only send a message to private people, not groups.

  • The billing is per "conversation". conversation means a 24 hours session between you and the client (this 24 hours conversation session is unrelated to the 24 hours timer for template message)

  • You can send unlimited messages within the 24 hours session time of a conversation.

  • 24 hours session conversation starts when you send a message to the client.

  • Every time the user replies, the template message session resets. which means that you don't have to use template message during this 24 hours template message session.

  • When the end user clicks on any of the list options, you will get it in the webhook as type "list" and the content of the button will be inside "body".


Settings:

URL

https://api.99digital.co.il/whatsapp/v2/sendList

Method

JSON via POST


Body:

Parameter

Description / Example

Mandatory

Max length

apiKey

Your API key for the service

yes


from

your WhatsApp account. international number without +. for example: 972771234567

yes


to

The number you want to send the message to. for example: 972501234567

yes


header

The title of the list box. you can have Emoji.

no

60

body

The body text of the list box. Its usually widely used to describe what this list is about.

\n for new line

text for bold

text for italic

~text~ for strike through

yes

1024

footer

Some footer message

no

60

buttonText

The text of the button that will appear on the list box. you can use Emoji.

yes

20

itemTitle1-10

List of items, minimum is 1, maximum is 10.

at least 1 item is mandatory

24

itemDescription1-10

Extra description for the item, it will show below the title

no

72

itemId1-10

You can provide id for each item you provide in the list

this id will be returned in the webhook.

for example: itemId1 = "id_for_sales"

itemId2 = "id_for_support"

it must be unique for each item

no

if not provided, 1-10 will be set

200

replyTo

In case you want to reply to a message that the end user has sent (quoted message), here you can provide the unique ID of that message

no


showRequest

You can get back in the response an object with all the request you sent (without the 'apiKey')

default is off (0)

1 - enable

no

1


Sample request:


{
"apiKey": "53456345",
"from": "972501234567",
"to": "972502222222",
"header": "This is header",
"body": "this is body",
"footer": "Footer goes here",
"buttonText": "Click to open",
"itemTitle1": "Customer service",
"itemDescription1: "Choose me for customer service",
"itemTitle2": "Sales",
"itemDescription2": "Sales enquiries? click here",
"itemTitle3": "Support"
}

Sample screenshot of the message:


Sample screenshot after the "click to open":



Response:

{
"status": "OK",
"unique": "65dfd4r4dref34rdfxd34r",
"header": "your header",
"body": "your body",
"footer": "your footer",
"timestamp": 1600115719,
"from": "972507654321",
"to": "972501234567",
"templateTimeLeft": "400",
"reason": 1
}


Response-Explain:

Parameter

Description

status

OK or FAIL

**Note: OK status doesn't mean the message arrived to the end user. it only means that the system received your request.

You should listen to webhooks to see the status of your message.

unique

unique ID for any message

header

Your header text

body

the text you sent

footer

footer text

timestamp

time stamp

from

your WhatsApp account

to

the number that the message was sent to

templateTimeLeft

amount of minutes left since client's last message. if passed, you must use Template Message. This value resets every time the client is sending you a message.

reason

'reason' is the status explanation in case of FAIL

1

not FAIL. the status is OK

2

Your "from" number account does not exist, or JSON syntax error

3

wrong apiKey

4

 'to' is either empty or wrong number format

5

'body' can't be empty

6

WhatsApp error - try again

7

You are trying to send a message but it has been more than 24 hours since client's last message. please use Send Template instead

8

You are trying to send a message for first time to a contact. please use Send Template Message instead

9

header is too long

10

footer is too long

11

buttonText is mandatory and must be less than 20 characters

12

itemTitle1 is mandatory, and less than 24 characters

13

one (or more) of your itemTitle is more than 24 characters

14

one (or more) of your itemDescription is more than 72 characters

15

rate limit error

16

itemId1-10 is not valid, not unique or exceeded maximum length