Send Carousel


You can use the "Send Carousel" 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.

Sending a carousel is sending a media of carousel to the client.

This looks like this:



Remarks

  • You can use the "Send Carousel" 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.

  • Message must include between 2 and 10 cards.

  • header and footer are not supported.

  • cards must include either an image or a video.

  • A card must include either URL button or (one/two reply buttons).

  • All cards must look the same regarding the buttons type (either 1 with buttonExternal or 2/3 with button1/2)

  • All cards must look the same regarding the card body. if you choose to use a body, all cards must have a body.

  • All cards must have the same headerLink type, either an image or a video.

  • Make sure you follow the cards numbering right. do not send card5 data without sending card1,card2,card3 and card4 too.


Settings:

URL

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

Method

JSON via POST


Body:

Parameter

Description / Example

Mandatory

Max length

Example

apiKey

Your API key for the service

yes



from

Your WhatsApp account. international number without +.

yes


972771234567

to

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

yes


972501234567

body

your message goes here that comes with all the cards

\n for new line

text for bold

text for italic

~text~ for strike through

yes

1024

hello,

please choose a product you link!

buttons

here you need to choose how the buttons of all cards will be:

1 - buttonExternal type

2 - one 'reply' button type.

3 - two 'reply' button type.

yes

1

1

cardX_headerLink

headerLink URL for cardX

X can be 1 to 10

media must be either an image or a video, you must provide a valid URL.

maximum 5 MB for image, 16 MB for video.

yes

minimum 2 , maximum 10

2000

card8_headerLink = "https://storage.image.com/file.png"

cardX_body

The body context of a card

the X can be between 1 to 10

no

160 characters and up to 2 new lines (\n)

card8_body = 

"Here is our blue flower

\n\n

click to buy"

cardX_buttonExternal

In case you selected 'buttons' parameter as 1 to be external button, here is the place you put the value.

Input

example

what will happen?

phone number (numbers only)

972501234567

the system will create a button that will initiate a phone call

link (must start with http or https)

https://www.google.com

the system will create a button that will initiate openning a website

email address

john@example.com

the system will create a button that will open the default email app to send an email

X can be between 1 to 10

only if 'buttons' is set to 1

1000

https://www.google.com

cardX_buttonExternalText

The text that will appear for cardX_buttonExternal

X can be between 1 to 10

only if 'buttons' is set to 1

20 characters

Click here

cardX_button1

In case you selected 'buttons' parameter to 1 or 2, here is the first button text

X can be between 1 to 10

only if 'buttons' is set to 1 or 2

20 characters

Click here one

cardX_button1ID

In case you selected 'buttons' parameter to 1 or 2, here you can provide ID for that button that will sent back to you on the webhook.

if you choose not to provide this value, the value will be set to 1

X can be between 1 to 10

not mandatory,

only if 'buttons' is set to 1 or 2

if not provided, 1 will be set

200

id-for-button-one

cardX_button2

In case you selected 'buttons' parameter to 2, here is the second button text

X can be between 1 to 10

only if 'buttons' is set to 2

20 characters

Click here two

cardX_button2ID

In case you selected 'buttons' parameter to 2, here you can provide ID for that button that will sent back to you on the webhook.

if you choose not to provide this value, the value will be set to 2

X can be between 1 to 10

not mandatory,

only if 'buttons' is set to 2

if not provided, 2 will be set

200 characters

id-for-button-two

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

0


Sample request to send a message with two cards, video header with buttonExternal:

{
"apiKey": "your-api-key",
"from": "your-whatsapp-number",
"to": "destination",
"body": "hello",
"buttons": 1,
"card1_headerLink": "https://my-image.com/image.png",
"card1_buttonExternal": "972501234567",
"card1_buttonExternalText": "Call us",
"card2_headerLink": "https:my-image.com/imagetwo.png",
"card2_buttonExternal": "https://google.com",
"card2_buttonExternalText": "Our website"
}


Response:

{
    "status": "OK",
    "unique": "unique-id-of-the-message",
    "body": "hello",
    "timestamp": 1771932645,
    "from": "your-whatsa-number",
    "to": "destination",
    "reason": 1,
    "templateTimeLeft": 1431,
    "card1_headerLink": "https://my-image.com/image.png",
    "card2_headerLink": "https:my-image.com/imagetwo.png"
}


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

body

The text you sent

timestamp

Time stamp of the message

from

Your WhatsApp account

to

The number that the message was sent to

cardX_headerLink

The link you provided for any of the cards

cardX_body

The body text you provided for any of the cards (if provided)

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.

originalRequest

Original request object, if you enabled this in 'showRequest' when sending the request.

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

rate limit error, try again

10

Cards are not in the right format order or cart1 + cart2 does not exist.

make sure you have the right order of cards

11

buttons is incorrect or wrong

12

cardX_headerLink is incorrect or wrong for one or more of the cards

13

cardX_body is too long or incorrect for one or more of the cards

14

cardX_buttonExternal is required for the selected 'buttons' type.

make sure cardX_buttonExternal is in the correct format

the issue can be for one or more of the cards provided.

15

cardX_buttonExternalText is required since cardX_buttonExternal is in use.

make sure cardX_buttonExternalText is in the correct format.

the issue can be for one or more of the cards provided.

16

cardX_button1 is required for the selected 'buttons' type.

make sure cardX_button1 is in the correct format.

the issue can be for one or more of the cards provided.

17

cardX_button1ID is wrong or not in the correct format

the issue can be for one or more of the cards provided

18

cardX_button2 is required for the selected 'buttons' type.

make sure cardX_button2 is in the correct format.

the issue can be for one or more of the cards provided.

19

cardX_button2ID is wrong or not in the correct format

the issue can be for one or more of the cards provided