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 | |
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.
X can be between 1 to 10 | only if 'buttons' is set to 1 | 1000 | |||||||||||||
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
|