API RCS

RCS via API REST

Intégrez des messages RCS interactifs dans vos applications. Rich Cards, carrousels, boutons et repli SMS : le tout via une simple API REST. Testez n'importe quel message dans la sandbox gratuite avant de créer un compte.

Types de messages

9 formats de messages pour chaque cas d'usage

Des simples messages texte aux carrousels interactifs - l'API prend en charge tous les formats RCS.

textBasic

Max. 160 caractères, similaire au SMS avec expéditeur vérifié

text

Jusqu'à 3 072 caractères + 11 suggestions

richCard

Image/vidéo + titre + description + 4 boutons

carousel

Jusqu'à 10 cartes, défilement horizontal

image

JPEG, PNG, GIF : directement dans l'application de messagerie

video

MP4, 3GP pour du contenu dynamique

audio

MP3 pour les messages vocaux et podcasts

file

PDF, documents pour factures et tickets

media

Type de média générique + suggestions

"suggestions": [
  {
    "reply": {
      "text": "Prendre rendez-vous",
      "postbackData": "book_apt",
      "webhookUrl": "https://..."
    }
  },
  {
    "action": {
      "text": "Appeler",
      "type": "dial",
      "dialAction": {
        "phoneNumber": "+33..."
      }
    }
  }
]
Interactif

7 types de boutons pour chaque interaction

Créez des messages interactifs avec jusqu'à 11 suggestions et 4 actions par carte.

  • postback - Callback webhook avec données personnalisées
  • openUrl - Ouvrir des liens externes dans le navigateur
  • openUrlInWebview - Afficher les liens dans l'application de messagerie
  • dial - Lancer un appel direct
  • createCalendarEvent - Ajouter un événement au calendrier
  • viewLocation - Afficher la localisation dans Google Maps
  • shareLocation - Demander la position du destinataire
Envoi groupé

Jusqu'à 10 000 destinataires par requête

Envoyez le même message à des milliers de destinataires en un seul appel API. Idéal pour les campagnes et la communication de masse.

  • Filtrage automatique des contacts désactivés
  • Numéros de test non facturés
  • Suivi de progression via l'ID de tâche (job ID)
  • Taille de lot et délai configurables
  • Noms de campagne pour le suivi et le reporting
10 000
Destinataires par requête
POST /send-batch
{
  "messageType": "text",
  "content": {
    "text": "Bonjour {{contact_first_name}}, votre commande chez {{company_name}} est expédiée aujourd'hui. Se désabonner : {{unsubscribe_link}}"
  },
  "smsFallback": {
    "message": "Bonjour {{contact_first_name}}, votre commande est expédiée aujourd'hui. Se désabonner : {{unsubscribe_link}}"
  }
}
Champs de fusion

Personnalisez chaque message

Les variables sont remplacées par destinataire au moment de l'envoi, dans les messages RCS, les SMS autonomes et le texte de repli SMS.

  • Champs de contact {{contact_first_name}}, {{contact_last_name}}, {{contact_phone}}, {{contact_email}}
  • Champs d'entreprise {{company_name}}, {{company_phone}}, {{company_website}}
  • Champs personnalisés tout {{your_tag}} que vous définissez, plus {{today}}
  • {{unsubscribe_link}} une URL de désabonnement unique par destinataire avec un nouveau jeton à chaque envoi
  • Utilisable partout dans le texte, les titres de cartes, les descriptions et les URL des boutons
RCS
Non disponible ?
SMS
Repli SMS

Repli SMS automatique

Lorsque le RCS n'est pas disponible, un SMS est envoyé automatiquement. Définissez un texte de repli SMS pour chaque message.

  • Détection automatique de la compatibilité RCS
  • Expéditeur SMS distinct configurable
  • Jusqu'à 1 530 caractères de texte SMS
  • Raison du repli dans la réponse API
Planification

Planification avec gestion des fuseaux horaires

Planifiez l'envoi de messages à un moment précis dans le futur. Grâce à la prise en charge des fuseaux horaires IANA, vous atteignez toujours vos destinataires au bon moment.

  • Prise en charge des fuseaux horaires IANA (Europe/Paris, etc.)
  • Validation avant envoi via /validate-schedule-time
  • Messages groupés planifiables
  • Tâches annulables via DELETE /batch/{jobId}
{
  "scheduleAt": "2026-10-15T09:00:00",
  "timeZone": "Europe/Paris"
}
{
  "event": "rcs_button_clicked",
  "timestamp": "2026-09-30T10:30:00Z",
  "interaction": {
    "type": "button_click",
    "buttonText": "Buy now",
    "postbackData": "product_123",
    ...
  },
  "message": {
    "id": "...",
    "campaignName": "Soldes d'été",
    ...
  },
  "contact": {
    "phone": "+4412345678",
    "name": "John Smith",
    ...
  }
}
Webhooks

Des webhooks pour chaque événement

Recevez des notifications instantanées lorsque les destinataires cliquent, répondent ou reçoivent vos messages. Connectez vos systèmes backend pour des workflows automatisés.

  • Clics sur les boutons avec vos postbackData personnalisées, URL de webhook par bouton
  • Statut de livraison livré, lu ou échoué
  • Messages RCS entrants texte, images, vidéos, fichiers et positions
  • SMS entrants sur vos numéros virtuels
  • Soumissions de formulaires et double opt-in confirmés
  • Informations de contact et identifiant de message dans chaque payload
Exemples de code

Intégration simple

Envoyez votre premier message RCS en quelques lignes de code.

Requête

# Envoyer une Rich Card avec bouton
curl -X POST https://api.sendrcs.eu/api/rcs/send \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "phoneNumber": "+4412345678",
    "messageType": "richCard",
    "sendernameId": "your-sender-id",
    "content": {
      "title": "Welcome!",
      "description": "Discover our offers",
      "media": {
        "height": "MEDIUM",
        "contentInfo": {
          "fileUrl": "https://example.com/image.jpg"
        }
      },
      "cardActions": [{
        "text": "En savoir plus",
        "type": "openUrl",
        "openUrlAction": {
          "url": "https://example.com"
        }
      }]
    }
  }'

Réponse

{
  "success": true,
  "messageId": "3f9c2a1e-7b4d-4c8e-9a21-5d6e7f8a9b0c",
  "messageRecordId": "66fa1c2b9d3e4f5a6b7c8d9e",
  "method": "rcs",
  "fallbackUsed": false,
  "creditsUsed": 1,
  "hasInteractiveButtons": true,
  "conversation": {
    "conversationId": "66fa1c2b9d3e4f5a6b7c8d9f",
    "status": "ACTIVE",
    "remainingTime": "23:59:00",
    "chargedMessage": true,
    "messageCount": {
      "total": 1,
      "outbound": 1,
      "inbound": 0
    }
  }
}
Sandbox

Essayez sans compte

Envoyez à la sandbox publique exactement le corps que vous enverriez à /send. Vous obtenez le même résultat de validation que l'endpoint réel, plus un lien qui affiche le message sur une maquette de téléphone Android et iOS.

  • Aucune clé API, aucun envoi, aucun crédit consommé
  • Même validateur et même format d'erreur que POST /send
  • Lien d'aperçu sur maquette de téléphone, valable 24 heures
  • Images d'exemple, une vidéo et un PDF via GET /sandbox/samples
  • Limite 20 requêtes par minute, 100 par jour par IP
Référence de la sandbox dans la documentation API
# Aucune clé API nécessaire
curl -X POST https://api.sendrcs.eu/api/rcs/sandbox/preview \
  -H "Content-Type: application/json" \
  -d '{
    "messageType": "richCard",
    "content": {
      "title": "Votre commande est en route",
      "description": "Suivez le colis ou contactez-nous.",
      "media": {
        "height": "TALL",
        "contentInfo": {
          "fileUrl": "https://sendrcs.eu/images/rcsexamples/shoes-1.jpg"
        }
      },
      "cardActions": [{
        "text": "Suivre la commande",
        "type": "openUrl",
        "openUrlAction": { "url": "https://example.com/track" }
      }]
    }
  }'

# Réponse (abrégée)
{
  "success": true,
  "valid": true,
  "errors": [],
  "preview": {
    "share_url": "https://app.sendrcs.eu/sandbox/65-GNf4Z9tBLB6aHWfbIJZng",
    "expires_at": "2026-09-30T22:51:00.649Z",
    "sendable": false
  },
  "sandbox": { "nothing_sent": true }
}

Endpoints API

Tous les endpoints, regroupés par domaine. Les schémas complets de requête et de réponse se trouvent dans la référence de l'API.

Méthode Endpoint Description
Messagerie https://api.sendrcs.eu/api/rcs
POST /send Envoyer un message RCS unique avec repli SMS et planification en option
POST /send-batch Envoyer le même message à jusqu'à 10 000 destinataires
POST /send-sms Envoyer un SMS autonome, sans RCS
POST /validate Valider un message avant l'envoi
GET /button-guidelines Règles et limites des boutons
Sandbox (sans clé API) https://api.sendrcs.eu/api/rcs
POST /sandbox/validate Valider un message sans compte
POST /sandbox/preview Valider et obtenir un lien d'aperçu sur maquette de téléphone
GET /sandbox/samples Images, vidéo et PDF d'exemple affichés par la sandbox
GET /sandbox/preview/{slug} Lire un aperçu sandbox en JSON
Planification & jobs https://api.sendrcs.eu/api/rcs
GET /timezones Fuseaux horaires IANA disponibles
POST /validate-schedule-time Valider une heure planifiée
GET /batch/{jobId}/status Statut et progression d'un job groupé
DELETE /batch/{jobId} Annuler un job groupé planifié ou en cours
GET /jobs Lister vos jobs
GET /queue/status Statut de la file d'attente
Statut, conversations & journal https://api.sendrcs.eu/api/rcs
GET /status Statut du service RCS
GET /health Vérification de l'état
GET /senders Lister vos noms d'expéditeur RCS et SMS
GET /stats Statistiques de messagerie
GET /conversations Lister les conversations actives
GET /conversations/{phoneNumber}/status Statut de conversation d'un destinataire
GET /conversations/{phoneNumber}/rate-limit Limite de débit d'une conversation
POST /conversations/billing-preview Vérifier avant l'envoi quels destinataires ont une fenêtre ouverte, jusqu'à 1 000 numéros
GET /messages/log Journal des messages (URL de base https://api.sendrcs.eu/api/messages)
GET /messages/{id}/content Contenu d'un message envoyé (URL de base https://api.sendrcs.eu/api/messages)
DELETE /messages/{id} Annuler un message planifié avant son envoi (URL de base https://api.sendrcs.eu/api/messages)
GET /messages/interactions Clics sur les boutons et réponses saisies sur vos messages envoyés (URL de base https://api.sendrcs.eu/api/messages)
Contacts https://api.sendrcs.eu/api/v1
GET POST /contacts Lister et créer des contacts
GET /contacts/count Compter les contacts
POST /contacts/bulk Créer ou mettre à jour des contacts en masse
PATCH /contacts/bulk/enable Activer des contacts en masse
PATCH /contacts/bulk/disable Désactiver des contacts en masse
GET PUT DELETE /contacts/{id} Obtenir, mettre à jour et supprimer un contact
GET POST /contacts/fields Lister et créer des champs personnalisés
GET PUT DELETE /contacts/fields/{fieldId} Obtenir, mettre à jour et supprimer un champ personnalisé
GET PUT /contacts/{id}/fields Obtenir et définir en bloc les valeurs de champs d'un contact
PUT DELETE /contacts/{id}/fields/{fieldId} Définir et supprimer une valeur de champ
Groupes https://api.sendrcs.eu/api/v1
GET POST /groups Lister et créer des groupes
GET PUT DELETE /groups/{id} Obtenir, mettre à jour et supprimer un groupe
POST DELETE /groups/{id}/contacts Ajouter et retirer des contacts d'un groupe
Modèles https://api.sendrcs.eu/api/v1
GET POST /templates Lister et créer des modèles de messages
GET PUT DELETE /templates/{id} Obtenir, mettre à jour et supprimer un modèle
GET POST /templates/groups Lister et créer des groupes de modèles
POST /templates/groups/assign Affecter des modèles à un groupe de modèles
PUT DELETE /templates/groups/{id} Renommer et supprimer un groupe de modèles
Authentification

Authentification simple par clé API

Toutes les requêtes API nécessitent une clé API dans l'en-tête, sauf les endpoints publics de la sandbox. Générez votre clé dans le tableau de bord.

X-API-Key: your-api-key-here

Vous trouverez vos clés API dans Paramètres → Clés API dans votre tableau de bord. Vous pouvez aussi restreindre une clé à des adresses IP publiques ou plages CIDR précises dans ses paramètres : les requêtes venant d'une autre adresse sont refusées avec un code 403.

Facturation par conversation

Fenêtre de conversation de 24 heures

Dans une fenêtre de 24 heures, envoyez un nombre illimité de messages au prix d'une seule conversation. Optimisez vos coûts avec des volumes de messages élevés.

  • Fenêtre de 24 heures ouverte dès que l'une des parties répond à l'autre
  • Aperçu de la facturation avant envoi via API
  • Endpoint d'analyse pour les métriques de conversation
  • Optimisation des coûts pour les messages de suivi
24h
Fenêtre de conversation
Messages illimités à un prix fixe
FAQ

API RCS : vos questions

Comment envoyer un message RCS via l'API ?

Envoyez une requête POST à https://api.sendrcs.eu/api/rcs/send avec votre clé API dans l'en-tête X-API-Key et un corps JSON contenant l'identifiant de l'expéditeur, le destinataire et le contenu du message - par exemple une Rich Card avec titre, description, image et un bouton. La réponse renvoie un identifiant de message et un statut. Des exemples complets pour chaque format se trouvent dans la documentation de l'API.

Comment authentifier les requêtes API ?

Chaque requête nécessite une clé API dans l'en-tête X-API-Key. Vous créez et gérez vos clés dans le tableau de bord SendRCS, sous Paramètres puis Clés API.

Quels formats de messages l'API prend-elle en charge ?

Neuf formats : Texte simple (jusqu'à 160 caractères), Texte enrichi (jusqu'à 3 072 caractères et 11 suggestions), Rich Card, carrousel (jusqu'à 10 cartes), image, vidéo, audio, fichier (PDF et documents) et média générique avec suggestions. Sept types de boutons sont disponibles : postback, openUrl, openUrlInWebview, dial, createCalendarEvent, viewLocation et shareLocation.

Puis-je envoyer à de nombreux destinataires en une seule requête ?

Oui. Le point de terminaison batch envoie le même message à jusqu'à 10 000 destinataires en un seul appel API. Les contacts désactivés sont filtrés automatiquement, la taille des lots et le délai sont configurables, et un nom de campagne vous permet de suivre l'envoi et d'en faire le reporting.

Comment fonctionne le repli SMS dans l'API ?

Définissez un texte de repli SMS pour chaque message. L'API détecte automatiquement si le destinataire peut recevoir du RCS et envoie sinon le SMS à la place, avec un expéditeur SMS configurable séparément et jusqu'à 1 530 caractères de texte. La réponse de l'API indique quand et pourquoi un repli a été utilisé.

Puis-je programmer des messages via l'API ?

Oui. Transmettez une heure scheduleAt avec prise en charge des fuseaux horaires IANA, par exemple Europe/Paris, et le message est envoyé à ce moment dans l'heure locale du destinataire. Vous pouvez valider une heure à l'avance via le point de terminaison validate-schedule-time et annuler un envoi programmé avec DELETE /batch/{jobId}.

Comment être informé lorsqu'un destinataire clique sur un bouton ?

Via des webhooks. SendRCS appelle votre backend en temps réel pour six événements : clics sur les boutons avec vos postbackData personnalisées, changements de statut de livraison (livré, lu, échoué), messages RCS entrants, SMS entrants sur vos numéros virtuels, soumissions de formulaires et double opt-in confirmés. Les URL de webhook des boutons se définissent par bouton, les autres sous Paramètres et Webhooks dans le tableau de bord.

Puis-je tester l'API sans compte ?

Oui. La sandbox publique sur https://api.sendrcs.eu/api/rcs/sandbox/preview valide n'importe quel corps de message avec les mêmes règles que l'endpoint d'envoi réel et renvoie un lien de partage qui affiche le message sur une maquette de téléphone Android et iOS. Aucune clé API n'est nécessaire, rien n'est envoyé et aucun crédit n'est consommé. Le lien expire après 24 heures, et la limite est de 20 requêtes par minute et 100 par jour par IP.

L'API couvre-t-elle aussi les SMS, les contacts et les modèles ?

Oui. La même clé API vous donne un endpoint SMS autonome, le journal des messages et des endpoints CRUD complets pour les contacts, les champs personnalisés, les groupes et les modèles de messages sous https://api.sendrcs.eu/api/v1/. Le texte des messages prend en charge les champs de fusion comme {{contact_first_name}} et un {{unsubscribe_link}} unique par destinataire.

Pourquoi la validation signale-t-elle une adresse e-mail ou web dans le texte du message ?

Parce que les iPhone rejettent les messages text et textBasic dont le texte contient une adresse e-mail ou une adresse web (URL, hôte www. ou simple domaine), alors qu'Android les délivre. Le message est tout de même accepté ; l'endpoint /validate et la sandbox renvoient un avertissement pour que vous puissiez décider. Pour atteindre tous les téléphones, placez les liens sur les suggestions et les boutons, ou utilisez une Rich Card : les titres de carte, descriptions et libellés de suggestion peuvent contenir une adresse.

Prêt à démarrer avec l'API RCS ?

Créez votre compte gratuit et obtenez votre clé API en quelques minutes.

  • Sans abonnement
  • Sans engagement
  • Paiement à l'usage
  • Essai gratuit