infoOverview
About this API
keySecurity
Authentication
This endpoint does not require authentication.
uploadInput
Request Body
Send a application/json payload. Replace placeholder values with data from your integration.
{
"templateName": "18_pdf",
"templateType": "rich_card",
"botId": "{{nhea_botId}}",
"botMessageType": "PROMOTIONAL",
"isSMSFallbackRequired": false,
"richCardStandAloneDetails": {
"mediaType":"pdf",
"cardOrientation": "HORIZONTAL",
"cardAlignment": "RIGHT",
"mediaHeight": "MEDIUM_HEIGHT",
"cardTitle": "Happy Ganesh Chaturthi!",
"cardDescription": "Ganesh Chaturthi!",
"media": {
"url": "https://rcs-bot-media-public.s3.ap-south-1.amazonaws.com/665873c0c660399dce731130/65c4eabecf32f14a18535f10/68e62ccce08a66956ff75a77/richCardStandAloneDetails_1759915212564_9mb.pdf"
},
// "thumbnail": {
// "url": ""
// },
"suggestionsList": []
}
}{
"type": "string"
}codeIntegration
Code Examples
Select your language and customize the request URL. Credential placeholders are intentionally preserved so secrets never appear in generated samples.
shield_lockCredentials protectedAdd secrets only in your secure server environment.
curl --request POST 'https://api.example.com/rcs/api/v1/create-template' \
--header 'Content-Type: application/json' \
--data '{
"raw_example": "{\n \"templateName\": \"18_pdf\",\n \"templateType\": \"rich_card\",\n \"botId\": \"{{nhea_botId}}\",\n \"botMessageType\": \"PROMOTIONAL\",\n \"isSMSFallbackRequired\": false,\n \"richCardStandAloneDetails\": {\n \"mediaType\":\"pdf\",\n \"cardOrientation\": \"HORIZONTAL\",\n \"cardAlignment\": \"RIGHT\", \n \"mediaHeight\": \"MEDIUM_HEIGHT\",\n \"cardTitle\": \"Happy Ganesh Chaturthi!\",\n \"cardDescription\": \"Ganesh Chaturthi!\",\n \"media\": {\n \"url\": \"https://rcs-bot-media-public.s3.ap-south-1.amazonaws.com/665873c0c660399dce731130/65c4eabecf32f14a18535f10/68e62ccce08a66956ff75a77/richCardStandAloneDetails_1759915212564_9mb.pdf\"\n },\n // \"thumbnail\": {\n // \"url\": \"\"\n // },\n \"suggestionsList\": []\n }\n}"
}'const response = await fetch('https://api.example.com/rcs/api/v1/create-template', {
method: 'POST',
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify({
"raw_example": "{\n \"templateName\": \"18_pdf\",\n \"templateType\": \"rich_card\",\n \"botId\": \"{{nhea_botId}}\",\n \"botMessageType\": \"PROMOTIONAL\",\n \"isSMSFallbackRequired\": false,\n \"richCardStandAloneDetails\": {\n \"mediaType\":\"pdf\",\n \"cardOrientation\": \"HORIZONTAL\",\n \"cardAlignment\": \"RIGHT\", \n \"mediaHeight\": \"MEDIUM_HEIGHT\",\n \"cardTitle\": \"Happy Ganesh Chaturthi!\",\n \"cardDescription\": \"Ganesh Chaturthi!\",\n \"media\": {\n \"url\": \"https://rcs-bot-media-public.s3.ap-south-1.amazonaws.com/665873c0c660399dce731130/65c4eabecf32f14a18535f10/68e62ccce08a66956ff75a77/richCardStandAloneDetails_1759915212564_9mb.pdf\"\n },\n // \"thumbnail\": {\n // \"url\": \"\"\n // },\n \"suggestionsList\": []\n }\n}"
})
});
if (!response.ok) throw new Error(`HTTP ${response.status}`);
const data = await response.json();
console.log(data);const response = await fetch('https://api.example.com/rcs/api/v1/create-template', {
method: 'POST',
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify({
"raw_example": "{\n \"templateName\": \"18_pdf\",\n \"templateType\": \"rich_card\",\n \"botId\": \"{{nhea_botId}}\",\n \"botMessageType\": \"PROMOTIONAL\",\n \"isSMSFallbackRequired\": false,\n \"richCardStandAloneDetails\": {\n \"mediaType\":\"pdf\",\n \"cardOrientation\": \"HORIZONTAL\",\n \"cardAlignment\": \"RIGHT\", \n \"mediaHeight\": \"MEDIUM_HEIGHT\",\n \"cardTitle\": \"Happy Ganesh Chaturthi!\",\n \"cardDescription\": \"Ganesh Chaturthi!\",\n \"media\": {\n \"url\": \"https://rcs-bot-media-public.s3.ap-south-1.amazonaws.com/665873c0c660399dce731130/65c4eabecf32f14a18535f10/68e62ccce08a66956ff75a77/richCardStandAloneDetails_1759915212564_9mb.pdf\"\n },\n // \"thumbnail\": {\n // \"url\": \"\"\n // },\n \"suggestionsList\": []\n }\n}"
})
});
if (!response.ok) throw new Error(`HTTP ${response.status}`);
const data = await response.json();
console.log(data);import json
import requests
url = 'https://api.example.com/rcs/api/v1/create-template'
headers = {
"Content-Type": "application/json"
}
payload = json.loads(r'''{
"raw_example": "{\\n \\"templateName\\": \\"18_pdf\\",\\n \\"templateType\\": \\"rich_card\\",\\n \\"botId\\": \\"{{nhea_botId}}\\",\\n \\"botMessageType\\": \\"PROMOTIONAL\\",\\n \\"isSMSFallbackRequired\\": false,\\n \\"richCardStandAloneDetails\\": {\\n \\"mediaType\\":\\"pdf\\",\\n \\"cardOrientation\\": \\"HORIZONTAL\\",\\n \\"cardAlignment\\": \\"RIGHT\\", \\n \\"mediaHeight\\": \\"MEDIUM_HEIGHT\\",\\n \\"cardTitle\\": \\"Happy Ganesh Chaturthi!\\",\\n \\"cardDescription\\": \\"Ganesh Chaturthi!\\",\\n \\"media\\": {\\n \\"url\\": \\"https://rcs-bot-media-public.s3.ap-south-1.amazonaws.com/665873c0c660399dce731130/65c4eabecf32f14a18535f10/68e62ccce08a66956ff75a77/richCardStandAloneDetails_1759915212564_9mb.pdf\\"\\n },\\n // \\"thumbnail\\": {\\n // \\"url\\": \\"\\"\\n // },\\n \\"suggestionsList\\": []\\n }\\n}"
}''')
response = requests.post(url, headers=headers, json=payload)
response.raise_for_status()
print(response.json())import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
var client = HttpClient.newHttpClient();
String body = """
{
"raw_example": "{\n \"templateName\": \"18_pdf\",\n \"templateType\": \"rich_card\",\n \"botId\": \"{{nhea_botId}}\",\n \"botMessageType\": \"PROMOTIONAL\",\n \"isSMSFallbackRequired\": false,\n \"richCardStandAloneDetails\": {\n \"mediaType\":\"pdf\",\n \"cardOrientation\": \"HORIZONTAL\",\n \"cardAlignment\": \"RIGHT\", \n \"mediaHeight\": \"MEDIUM_HEIGHT\",\n \"cardTitle\": \"Happy Ganesh Chaturthi!\",\n \"cardDescription\": \"Ganesh Chaturthi!\",\n \"media\": {\n \"url\": \"https://rcs-bot-media-public.s3.ap-south-1.amazonaws.com/665873c0c660399dce731130/65c4eabecf32f14a18535f10/68e62ccce08a66956ff75a77/richCardStandAloneDetails_1759915212564_9mb.pdf\"\n },\n // \"thumbnail\": {\n // \"url\": \"\"\n // },\n \"suggestionsList\": []\n }\n}"
}
""";
var request = HttpRequest.newBuilder(URI.create("https://api.example.com/rcs/api/v1/create-template"))
.header("Content-Type", "application/json")
.method("POST", HttpRequest.BodyPublishers.ofString(body))
.build();
var response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());<?php
$curl = curl_init();
$payload = '{
"raw_example": "{\\n \\"templateName\\": \\"18_pdf\\",\\n \\"templateType\\": \\"rich_card\\",\\n \\"botId\\": \\"{{nhea_botId}}\\",\\n \\"botMessageType\\": \\"PROMOTIONAL\\",\\n \\"isSMSFallbackRequired\\": false,\\n \\"richCardStandAloneDetails\\": {\\n \\"mediaType\\":\\"pdf\\",\\n \\"cardOrientation\\": \\"HORIZONTAL\\",\\n \\"cardAlignment\\": \\"RIGHT\\", \\n \\"mediaHeight\\": \\"MEDIUM_HEIGHT\\",\\n \\"cardTitle\\": \\"Happy Ganesh Chaturthi!\\",\\n \\"cardDescription\\": \\"Ganesh Chaturthi!\\",\\n \\"media\\": {\\n \\"url\\": \\"https://rcs-bot-media-public.s3.ap-south-1.amazonaws.com/665873c0c660399dce731130/65c4eabecf32f14a18535f10/68e62ccce08a66956ff75a77/richCardStandAloneDetails_1759915212564_9mb.pdf\\"\\n },\\n // \\"thumbnail\\": {\\n // \\"url\\": \\"\\"\\n // },\\n \\"suggestionsList\\": []\\n }\\n}"
}';
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.example.com/rcs/api/v1/create-template',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => ["Content-Type: application/json"],
CURLOPT_POSTFIELDS => $payload,
]);
$response = curl_exec($curl);
if ($response === false) throw new Exception(curl_error($curl));
curl_close($curl);
echo $response;using System.Net.Http.Headers;
using System.Text;
using var client = new HttpClient();
var json = """
{
"raw_example": "{\n \"templateName\": \"18_pdf\",\n \"templateType\": \"rich_card\",\n \"botId\": \"{{nhea_botId}}\",\n \"botMessageType\": \"PROMOTIONAL\",\n \"isSMSFallbackRequired\": false,\n \"richCardStandAloneDetails\": {\n \"mediaType\":\"pdf\",\n \"cardOrientation\": \"HORIZONTAL\",\n \"cardAlignment\": \"RIGHT\", \n \"mediaHeight\": \"MEDIUM_HEIGHT\",\n \"cardTitle\": \"Happy Ganesh Chaturthi!\",\n \"cardDescription\": \"Ganesh Chaturthi!\",\n \"media\": {\n \"url\": \"https://rcs-bot-media-public.s3.ap-south-1.amazonaws.com/665873c0c660399dce731130/65c4eabecf32f14a18535f10/68e62ccce08a66956ff75a77/richCardStandAloneDetails_1759915212564_9mb.pdf\"\n },\n // \"thumbnail\": {\n // \"url\": \"\"\n // },\n \"suggestionsList\": []\n }\n}"
}
""";
using var content = new StringContent(json, Encoding.UTF8, "application/json");
var response = await client.PostAsync("https://api.example.com/rcs/api/v1/create-template", content);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());package main
import (
"fmt"
"io"
"net/http"
"bytes"
)
func main() {
request, err := http.NewRequest("POST", "https://api.example.com/rcs/api/v1/create-template", bytes.NewBufferString("{\n \"raw_example\": \"{\\n \\\"templateName\\\": \\\"18_pdf\\\",\\n \\\"templateType\\\": \\\"rich_card\\\",\\n \\\"botId\\\": \\\"{{nhea_botId}}\\\",\\n \\\"botMessageType\\\": \\\"PROMOTIONAL\\\",\\n \\\"isSMSFallbackRequired\\\": false,\\n \\\"richCardStandAloneDetails\\\": {\\n \\\"mediaType\\\":\\\"pdf\\\",\\n \\\"cardOrientation\\\": \\\"HORIZONTAL\\\",\\n \\\"cardAlignment\\\": \\\"RIGHT\\\", \\n \\\"mediaHeight\\\": \\\"MEDIUM_HEIGHT\\\",\\n \\\"cardTitle\\\": \\\"Happy Ganesh Chaturthi!\\\",\\n \\\"cardDescription\\\": \\\"Ganesh Chaturthi!\\\",\\n \\\"media\\\": {\\n \\\"url\\\": \\\"https://rcs-bot-media-public.s3.ap-south-1.amazonaws.com/665873c0c660399dce731130/65c4eabecf32f14a18535f10/68e62ccce08a66956ff75a77/richCardStandAloneDetails_1759915212564_9mb.pdf\\\"\\n },\\n // \\\"thumbnail\\\": {\\n // \\\"url\\\": \\\"\\\"\\n // },\\n \\\"suggestionsList\\\": []\\n }\\n}\"\n}"))
if err != nil { panic(err) }
request.Header.Set("Content-Type", "application/json")
request.Header.Set("Accept", "application/json")
response, err := http.DefaultClient.Do(request)
if err != nil { panic(err) }
defer response.Body.Close()
data, err := io.ReadAll(response.Body)
if err != nil { panic(err) }
if response.StatusCode >= 400 { panic(fmt.Sprintf("HTTP %d: %s", response.StatusCode, data)) }
fmt.Println(string(data))
}downloadOutput
Response
A successful request returns the documented response payload. Delivery and asynchronous events may arrive separately through configured webhooks.
{}{}ruleHTTP Responses
Status Codes
200Successful response