post
https://partner.gupshup.io/partner/bizgate/app//template?templateType=CAROUSEL&category=MARKETING
Create carousel template — one template type of POST /partner/bizgate/app/{appId}/template; send the cURL below as shown.
Variant: Carousel — multiple cards.
Request parameters
Path parameters
| Key | Description | Values | Data Type | Required/Optional |
|---|---|---|---|---|
| appId | Partner app UUID | 6f414190-d45c-4671-bca1-fb6c3018cb13 | String | Required |
Body
| Key | Description | Values | Data Type | Required/Optional |
|---|---|---|---|---|
| elementName | Template name, used to reference it when sending. Lower case, no spaces. | text_element1 | — | Required |
| languageCode | Language the template is authored in, as a WhatsApp language code. | en | — | Required |
| content | Template body / HSM content | your otp is {{1}} | — | Required |
| category | MARKETING, UTILITY, AUTHENTICATION | MARKETING | — | Required |
| vertical | Internal label for grouping templates; not shown to end users. | Internal_vertical | — | Optional |
| templateType | TEXT, IMAGE, VIDEO, DOCUMENT, … | TEXT | — | Optional |
| example | Sample values for variables in content | your otp is {{1}} | — | Optional |
| header | Header text when template has a header | Hi All | — | Optional |
| exampleHeader | Sample header for approval | Hi All | — | Optional |
| footer | Footer text shown in small type beneath the body. | This is footer | — | Optional |
| allowTemplateCategoryChange | Allow Meta category change during approval | true | — | Optional |
| buttons | JSON array of button objects | [{"type":"QUICK_REPLY","text":"please check"},{"type":"URL","text":"test","url":"https://www.google.co.uk/","buttonValue":"https://www.google.co.uk/","suffix":""}] | — | Optional |
| name | Optional display name (legacy field; some flows use data instead) | Order update | — | Optional |
| source | Origin of the template, for reporting on where templates are authored. | PARTNER_PORTAL | — | Optional |
| data | Optional; prefer content | Legacy alias for content on some integrations | — | Optional |
| enableSample | Whether content and example carry {{n}} placeholders. Set true when they do, so the example is used to seed the approval sample. | false | — | Optional |
| sendAsPixTemplate | Creates the template as a PIX payment template (Brazil). Pair it with an ORDER_DETAILS button; the template itself stays templateType=TEXT. | true | — | Optional |
| parameterFormat | How placeholders in content are written: POSITIONAL for {{1}}, NAMED for {{name}}. | POSITIONAL | — | Optional |
| checkerApprovalRequired | Whether the template needs maker-checker approval before it is submitted. | false | — | Optional |
| isLTO | Creates the template as a limited-time offer. Pair it with a COPY_CODE button; the template itself stays templateType=TEXT. | true | — | Optional |
| hasExpiration | Whether the limited-time offer shows a countdown to its expiry. | true | — | Optional |
| limitedOfferText | Banner text for the limited-time offer. Returned inside containerMeta as limitedTimeOffer.text, which is derived output rather than a field to send. | offer limited | — | Optional |
curl --request POST \
--url 'https://partner.gupshup.io/partner/bizgate/app/6f414190-d45c-4671-bca1-fb6c3018cb13/template' \
--header 'Authorization: Bearer <UT>' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'elementName=new_arrivals_carousel' \
--data-urlencode 'languageCode=en' \
--data-urlencode 'category=MARKETING' \
--data-urlencode 'templateType=CAROUSEL' \
--data-urlencode 'vertical=Promotion' \
--data-urlencode 'content=Hi {{1}}, this week'"'"'s new arrivals are here.' \
--data-urlencode 'example=Hi Ana, this week'"'"'s new arrivals are here.' \
--data-urlencode 'cards=[{"headerType":"IMAGE","exampleMedia":"4::aW1hZ2UvanBlZw==:ARb4Card1","body":"{{1}} — now {{2}}","example":["Linen shirt","₹1,299"],"buttons":[{"type":"URL","text":"Buy now","url":"https://shop.example.com/p/{{1}}","example":["https://shop.example.com/p/linen-shirt"]}]},{"headerType":"IMAGE","exampleMedia":"4::aW1hZ2UvanBlZw==:ARb4Card2","body":"{{1}} — now {{2}}","example":["Canvas tote","₹899"],"buttons":[{"type":"QUICK_REPLY","text":"Notify me"}]}]' \
--data-urlencode 'enableSample=true'Sample success response (200)
{
"status": "success",
"template": {
"appId": "72aeca04-1839-4b1a-bc0d-4ec2140d0e58",
"category": "MARKETING",
"containerMeta": "{\"appId\":\"72aeca04-1839-4b1a-bc0d-4ec2140d0e58\",\"data\":\"Hi All, Here are our products.\",\"buttons\":[{\"type\":\"COPY_CODE\",\"example\":\"250FF\"},{\"type\":\"URL\",\"text\":\"Shop Now\",\"url\":\"https://www.luckyshrub.com/shop?promo={{1}}\",\"example\":[\"summer2023\"]}],\"sampleText\":\"Hi All, Here are our products.\",\"enableSample\":true,\"editTemplate\":false,\"addSecurityRecommendation\":false,\"limitedTimeOffer\":{\"text\":\"offer limited\",\"has_expiration\":true},\"isCPR\":false,\"cpr\":false}",
"createdOn": 1787728719434,
"data": "Hi All, Here are our products.\noffer limited | true | [Copy offer code,{{1}}] | [Shop Now,https://www.luckyshrub.com/shop?promo={{1}}]",
"elementName": "flash_sale_lto_v2",
"id": "e2f5248e-5d2c-4248-b466-d8af0fa47347",
"languageCode": "en",
"languagePolicy": "deterministic",
"meta": "{\"example\":\"Hi All, Here are our products.\"}",
"modifiedOn": 1787728719434,
"namespace": "28245a35_2995_4998_a7a7_d4e86fa48eab",
"priority": 1,
"quality": "UNKNOWN",
"retry": 0,
"stage": "NONE",
"status": "PENDING",
"templateType": "TEXT",
"vertical": "Promotion",
"wabaId": "1399511105666438"
}
}Recent Requests
Log in to see full request history
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
Loading…