Send an RCS File
curl --request POST \
--url https://api.v3.tatango.com/transactional_messages/send_rcs_file \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"phoneNumber": "5551234567",
"webhookUrl": "https://api.example.com/webhooks/rcs",
"rcsPayload": {
"file": {
"url": "https://example.com/files/weekly-news-letter.pdf"
}
},
"smsFailover": "Check out our latest newsletter! https://example.com/weekly-news-letter.pdf"
}
'import requests
url = "https://api.v3.tatango.com/transactional_messages/send_rcs_file"
payload = {
"phoneNumber": "5551234567",
"webhookUrl": "https://api.example.com/webhooks/rcs",
"rcsPayload": { "file": { "url": "https://example.com/files/weekly-news-letter.pdf" } },
"smsFailover": "Check out our latest newsletter! https://example.com/weekly-news-letter.pdf"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
phoneNumber: '5551234567',
webhookUrl: 'https://api.example.com/webhooks/rcs',
rcsPayload: {file: {url: 'https://example.com/files/weekly-news-letter.pdf'}},
smsFailover: 'Check out our latest newsletter! https://example.com/weekly-news-letter.pdf'
})
};
fetch('https://api.v3.tatango.com/transactional_messages/send_rcs_file', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.v3.tatango.com/transactional_messages/send_rcs_file",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'phoneNumber' => '5551234567',
'webhookUrl' => 'https://api.example.com/webhooks/rcs',
'rcsPayload' => [
'file' => [
'url' => 'https://example.com/files/weekly-news-letter.pdf'
]
],
'smsFailover' => 'Check out our latest newsletter! https://example.com/weekly-news-letter.pdf'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.v3.tatango.com/transactional_messages/send_rcs_file"
payload := strings.NewReader("{\n \"phoneNumber\": \"5551234567\",\n \"webhookUrl\": \"https://api.example.com/webhooks/rcs\",\n \"rcsPayload\": {\n \"file\": {\n \"url\": \"https://example.com/files/weekly-news-letter.pdf\"\n }\n },\n \"smsFailover\": \"Check out our latest newsletter! https://example.com/weekly-news-letter.pdf\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.v3.tatango.com/transactional_messages/send_rcs_file")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"phoneNumber\": \"5551234567\",\n \"webhookUrl\": \"https://api.example.com/webhooks/rcs\",\n \"rcsPayload\": {\n \"file\": {\n \"url\": \"https://example.com/files/weekly-news-letter.pdf\"\n }\n },\n \"smsFailover\": \"Check out our latest newsletter! https://example.com/weekly-news-letter.pdf\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.v3.tatango.com/transactional_messages/send_rcs_file")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"phoneNumber\": \"5551234567\",\n \"webhookUrl\": \"https://api.example.com/webhooks/rcs\",\n \"rcsPayload\": {\n \"file\": {\n \"url\": \"https://example.com/files/weekly-news-letter.pdf\"\n }\n },\n \"smsFailover\": \"Check out our latest newsletter! https://example.com/weekly-news-letter.pdf\"\n}"
response = http.request(request)
puts response.read_body{
"message": "RCS file message sent successfully",
"transactionId": "019687e1-1b54-70f4-a68a-60af7fa776f4"
}{
"$ref": "#/components/examples/PhoneNumberValidationError/value"
}RCS
Send an RCS File
This endpoint allows you to send an RCS File message with file attachment to a U.S. phone number. If delivery fails, a fallback SMS message will be sent.
POST
/
transactional_messages
/
send_rcs_file
Send an RCS File
curl --request POST \
--url https://api.v3.tatango.com/transactional_messages/send_rcs_file \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"phoneNumber": "5551234567",
"webhookUrl": "https://api.example.com/webhooks/rcs",
"rcsPayload": {
"file": {
"url": "https://example.com/files/weekly-news-letter.pdf"
}
},
"smsFailover": "Check out our latest newsletter! https://example.com/weekly-news-letter.pdf"
}
'import requests
url = "https://api.v3.tatango.com/transactional_messages/send_rcs_file"
payload = {
"phoneNumber": "5551234567",
"webhookUrl": "https://api.example.com/webhooks/rcs",
"rcsPayload": { "file": { "url": "https://example.com/files/weekly-news-letter.pdf" } },
"smsFailover": "Check out our latest newsletter! https://example.com/weekly-news-letter.pdf"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
phoneNumber: '5551234567',
webhookUrl: 'https://api.example.com/webhooks/rcs',
rcsPayload: {file: {url: 'https://example.com/files/weekly-news-letter.pdf'}},
smsFailover: 'Check out our latest newsletter! https://example.com/weekly-news-letter.pdf'
})
};
fetch('https://api.v3.tatango.com/transactional_messages/send_rcs_file', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.v3.tatango.com/transactional_messages/send_rcs_file",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'phoneNumber' => '5551234567',
'webhookUrl' => 'https://api.example.com/webhooks/rcs',
'rcsPayload' => [
'file' => [
'url' => 'https://example.com/files/weekly-news-letter.pdf'
]
],
'smsFailover' => 'Check out our latest newsletter! https://example.com/weekly-news-letter.pdf'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.v3.tatango.com/transactional_messages/send_rcs_file"
payload := strings.NewReader("{\n \"phoneNumber\": \"5551234567\",\n \"webhookUrl\": \"https://api.example.com/webhooks/rcs\",\n \"rcsPayload\": {\n \"file\": {\n \"url\": \"https://example.com/files/weekly-news-letter.pdf\"\n }\n },\n \"smsFailover\": \"Check out our latest newsletter! https://example.com/weekly-news-letter.pdf\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.v3.tatango.com/transactional_messages/send_rcs_file")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"phoneNumber\": \"5551234567\",\n \"webhookUrl\": \"https://api.example.com/webhooks/rcs\",\n \"rcsPayload\": {\n \"file\": {\n \"url\": \"https://example.com/files/weekly-news-letter.pdf\"\n }\n },\n \"smsFailover\": \"Check out our latest newsletter! https://example.com/weekly-news-letter.pdf\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.v3.tatango.com/transactional_messages/send_rcs_file")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"phoneNumber\": \"5551234567\",\n \"webhookUrl\": \"https://api.example.com/webhooks/rcs\",\n \"rcsPayload\": {\n \"file\": {\n \"url\": \"https://example.com/files/weekly-news-letter.pdf\"\n }\n },\n \"smsFailover\": \"Check out our latest newsletter! https://example.com/weekly-news-letter.pdf\"\n}"
response = http.request(request)
puts response.read_body{
"message": "RCS file message sent successfully",
"transactionId": "019687e1-1b54-70f4-a68a-60af7fa776f4"
}{
"$ref": "#/components/examples/PhoneNumberValidationError/value"
}RCS File messages allow you to send file attachments with optional action buttons for enhanced user interaction.RCS File Features:
- File Support: Send various file types as attachments, notably PDF and audio files
- Rich Experience: Enhanced file sharing with interactive elements
- Fallback: Automatic SMS fallback if RCS delivery fails
Authorizations
Your momoGood Messaging API key. This is required for all requests to the API. You can find your API key in the momoGood Messaging app under My Account -> API -> Create API Key.
Body
application/json
The RCS File message request with SMS fallback.
The destination phone number. Can be provided in any format (e.g., +1 555-123-4567, (555) 123-4567, 5551234567) but must be a valid U.S. or Canadian phone number.
URL where webhooks will be sent. Must be a valid HTTPS URL.
Maximum string length:
255Show child attributes
Show child attributes
SMS fallback message content used when primary delivery method fails. Must contain only GSM 7-bit characters.
Required string length:
1 - 160⌘I