RCS
URL
POST https://api.smspartner.fr/v1/rcs/send
The platform does not send commercial SMS messages between 8 PM and 8 AM on weekdays and on Sundays and public holidays (legal restriction). If a commercial SMS is sent, the message is paused until the next working day at 8 AM. Not sending commercial SMS messages? Contact us to disable this restriction: help@smspartner.fr
Rate limit: 30 requests / 60 seconds
Required parameters
apiKey
Your API key.
phoneNumbers
Recipient phone numbers. To send multiple messages, the numbers must be separated by commas. The limit per request is 500 numbers. They can be: in national format (06xxxxxxxx) or international format (+336xxxxxxxx), for French numbers; in international format (+496xxxxxxxx), for non-French numbers.
isUnicode
1
richContent
The rich content of the RCS message. See the Rich content section. Required, unless modelToken is provided (see Send from a template).
Optional parameters
modelToken
Identifier (32 characters) of an RCS template saved on the platform. Use it instead of richContent: the message content then comes from the template. See the Send from a template section. Available in Message templates (“Identifier” column) or in the template editor (“API Identifier” panel). Only RCS templates (text, rich card, carousel, file) have an identifier; SMS templates cannot be used here. modelToken and richContent are mutually exclusive.
scheduledDeliveryDate
Send date of the SMS, in dd/mm/YYYY format. Only set this if you want the SMS to be sent later.
time
Send time of the SMS (0-24 format), required if scheduledDeliveryDate is set.
minute
Send minute of the SMS (0-55 format, in five-minute intervals), required if scheduledDeliveryDate is set.
urlResponse
Callback URL for RCS events (e.g. http://www.myresponseurl) — Clicks — Reads — Opt-out requests (STOP) — Recipient replies.
urlDlr
Callback URL for delivery receipts (e.g. http://www.mydlrurl).
scheduledAt
Lets you schedule the SMS send, as a single value, in two possible forms:
1. Absolute date — accepted formats:
– 2026-05-20 10:15 or 2026-05-20 10:15:00
– 2026-05-20T10:15:00 (ISO 8601)
– 20/05/2026 10:15
– 2026-05-20 or 20/05/2026 (sends at midnight that day)
2. Relative delay — send in X time units from now:
– +10 minutes, +2 hours, +3 days, +1 week, +1 month (English)
– +10 minutes, +2 heures, +3 jours, +1 semaine, +1 mois, +1 an (French, abbreviations tolerated: min, mn, h, j, hrs)
– The + is optional (10 minutes is equivalent to +10 minutes)
Behavior:
– If scheduledAt is set, it replaces the older scheduledDeliveryDate / time / minute parameters (kept for backward compatibility, but scheduledAt is now recommended).
– The computed time is rounded up to the next 5-minute slot (a send can only be scheduled every 5 minutes: 10:15, 10:20, 10:25...).
– The resulting date must be in the future, and at most 3 months ahead.
Example: { "apiKey": "xxxxx", "phoneNumbers": "+33600000000", "message": "Your appointment is coming up", "scheduledAt": "+2 hours" }
Errors: if the format is not recognized either as an absolute date or a relative delay, or if the resolved date is in the past / more than 3 months ahead, the API returns error code 49 with an explicit message.
Rich content
Suggestions
Opening a URL in a WebView
The "Open a URL" action (openUrlAction) can open the link in a WebView embedded in the conversation instead of the external browser, thanks to optional parameters.
url
Required. URL to open. Must be a valid URL (http/https).
application
Optional. How the link opens: BROWSER (default, external browser) or WEBVIEW (window embedded in the conversation).
webviewViewMode
WebView size: FULL (full screen), TALL (3/4) or HALF (half). Required when application = WEBVIEW, and must not be provided otherwise.
description
Optional. Accessibility text describing the WebView (recommended in WEBVIEW mode). 100 characters maximum.
These parameters are valid everywhere an openUrlAction suggestion is accepted: text message suggestions, rich-card buttons and buttons of each carousel card.
If a value is invalid, the API returns an error with one of the following codes: 24 (invalid application), 25 (invalid webviewViewMode), 26 (webviewViewMode provided without application = WEBVIEW), 27 (webviewViewMode missing while application = WEBVIEW), 28 (description longer than 100 characters).
Send from a template (modelToken)
Instead of providing the full content in richContent on every call, you can save that content once as an RCS template on the platform, then send it through the API by simply passing its identifier (modelToken). Every send uses the current version of the template.
The identifier can also be pasted into our modules and connectors (PrestaShop, WooCommerce, Zapier, Make…) wherever an "RCS template identifier" is requested.
modelToken and richContent are mutually exclusive. If both are present in the same request, the API returns an HTTP 400 error (code 62) and the message is not sent. An empty richContent ({} or null) is treated as not provided.
The modelToken provides the content, the API call still drives everything else (recipients, fallback sender, scheduling, tag, sandbox, callbacks…). All other validations (numbers, scheduling, field sizes, suggestions…) are identical to a standard RCS send and are applied after the template content has been injected.
60
RCS template not found: the identifier does not match any RCS template in your account, or it points to an SMS template.
61
The RCS template is empty: the template exists but its content is empty or invalid (re-save it on the platform).
62
modelToken and richContent were sent in the same request (mutually exclusive).
RCS Scenario
An RCS scenario is an automated dialogue configured on the platform: an entry message, clickable suggestions and bot replies depending on the recipient's choices. To start a scenario from its identifier (scenarioToken), use the dedicated route:
Response
Supported media file types
RBM supports the following media types:
application/ogg
OGG Audio
.ogx
No
application/pdf
No
audio/aac
AAC Audio
.aac
No
audio/mp3
MP3 Audio Format
.mp3
No
audio/mpeg
MPEG Audio
.mpeg
No
audio/mpg
MPG Audio
.mp3
No
audio/mp4
MP4 Audio
.mp4
No
audio/mp4-latm
MP4-latm Audio
.mp4
No
audio/3gpp
3GPP Audio
.3gp
No
image/jpeg
JPEG
.jpeg, .jpg
Yes
image/gif
GIF
.gif
Yes
image/png
PNG
.png
Yes
video/h263
H263 Video
.h263
Yes
video/m4v
M4V Video
.m4v
Yes
video/mp4
MP4 Video
.mp4
Yes
video/mpeg4
MPEG-4 Video
.mp4, .m4p
Yes
video/mpeg
MPEG Video
.mpeg
Yes
video/webm
WebM Video Format
.webm
Yes
Last updated