Updated 15 October 2026

Send RCS (Multiple recipients)

Send RCS messages to multiple recipients with bundles, rich cards, carousels, suggestions, delivery reports, and SMS fallback.

Bundles send a message to multiple recipients at once, making them ideal for broadcasts and marketing campaigns. To send RCS to one recipient, use the Conversation. A bundle contains the sending agent, text or card content, and a recipient list. It efficiently delivers one interactive message to a larger audience.


Quickstart

curl -X POST https://api.ip1.net/v3/bundles \
  -H "Authorization: Bearer API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "brand": "My-Store-Inc",
  "agent": "Customer-Service",
  "recipients": {
    "46700123456": {}
  },
  "reference": "INTERN-REF-001",
  "tags": [
    "shipping",
    "important"
  ],
  "deliveryReportUrl": "https://delivery.ip1.net",
  "fallbackPolicy": "FallbackOnNoCapability,FallbackOnFailure,FallbackAfterTimeout",
  "fallbackMessage": "This is a fallback message",
  "fallbackTimeOutSeconds": 300,
  "type": "Carousel",
  "carousel": [
    {
      "title": "Summer Campaign 2026",
      "content": "Get 20% off all sunglasses!",
      "mediaUrl": "https://cdn.site.se/promo-sun.jpg",
      "type": "Carousel",
      "order": 0
    },
    {
      "title": "Summer Campaign 2026",
      "content": "Get 20% off all sunglasses!",
      "mediaUrl": "https://cdn.site.se/promo-sun.jpg",
      "type": "Carousel",
      "order": 1
    },
  ],
  "suggestions": [
    {
      "text": "View selection",
      "type": "OpenUrlAction",
      "order": 0,
      "url": "https://site.se/shop",
      "postbackData": "shop_click"
    },
    {
      "text": "Call store",
      "type": "DialAction",
      "order": 1,
      "phoneNumber": "468123456",
      "postbackData": "call_click"
    }
  ]
}'

Request

Endpoint: /bundles

Method: POST

Request example

{
  "brand": "My-Store-Inc",
  "agent": "Customer-Service",
  "recipients": {
    "46700123456": {}
  },
  "reference": "INTERN-REF-001",
  "tags": [
    "shipping",
    "important"
  ],
  "deliveryReportUrl": "https://delivery.ip1.net",
  "fallbackPolicy": "FallbackOnNoCapability,FallbackOnFailure,FallbackAfterTimeout",
  "fallbackMessage": "This is a fallback message",
  "fallbackTimeOutSeconds": 300,
  "type": "carousel",
  "carousel": [
    {
      "title": "Summer Campaign 2026",
      "content": "Get 20% off all sunglasses!",
      "mediaUrl": "https://cdn.site.se/promo-sun.jpg",
      "type": "Carousel",
      "order": 0
    },
    {
      "title": "Summer Campaign 2026",
      "content": "Get 20% off all sunglasses!",
      "mediaUrl": "https://cdn.site.se/promo-sun.jpg",
      "type": "Carousel",
      "order": 1
    },
  ],
  "suggestions": [
    {
      "text": "View selection",
      "type": "OpenUrlAction",
      "order": 0,
      "url": "https://site.se/shop",
      "postbackData": "shop_click"
    },
    {
      "text": "Call store",
      "type": "DialAction",
      "order": 1,
      "phoneNumber": "468123456",
      "postbackData": "call_click"
    }
  ]
}

Request fields

Field nameDescriptionRequiredTypeExample
brandYour brand name.YesString"My-Store-Inc"
agentYour agent name.YesString”Customer-Service
recipientsRecipient list.YesObject”46700123456”: { ”name”: ”Alex” }
contentMessage content.Required when the type is “Text”String”Hello {name}! Your order has shipped.”
deliveryReportUrlCallback URL for handling read receipts and delivery reports.NoString”https://delivery.ip1.net”
fallbackPolicySMS fallback policy type (NoFallback, FallbackOnNoCapability, FallbackOnFailure, FallbackAfterTimeout, CustomerControlledFallback).No (default is NoFallback)String”FallbackOnNoCapability,FallbackOnFailure, FallbackAfterTimeout”
fallbackMessageMessage sent when fallback is activated.Yes when using Carousel. Generated automatically from card or content if omitted.String”This is a fallback message”
fallbackTimeoutSecondsSeconds before the fallback policy activates when FallbackAfterTimeout is selected.Yes when FallbackAfterTimeout is selected.Integer500
typeMessage type.YesString or number (enum)”Carousel”
referenceInternal bundle reference.NoString”INTERN-REF-001”
tagsSearchable tags used to group the send.NoArray[”shipping”, ”important”]
carouselA list of cards that forms a carousel.Required when the type is “Carousel”Array(See the table below)
cardContains an image, title, and text (Rich Card).Required when the type is “Card”Object(See the table below)
suggestionsA list of interactive buttons.NoArray(See the table below)
uniqueIdUnique ID used to prevent duplicates.NoString”order-12345-id”

Details for the card

Field nameDescriptionRequiredTypeExample
titleTitle displayed at the top of the card.YesString”Our SALE!”
contentDescriptive text on the card.YesString”Clearance sale now on.”
typeCard type (Carousel for a Rich Card in a carousel).NoInteger”Carousel”
orderOrder in which cards are displayed.NoInteger1
heightCard height.NoString (enum)”Medium”
widthCard width.NoString (enum(”Medium”
orientationCard orientation.NoString (enum)”Horizontal”
mediaUrlPublic URL of an image or video.NoURI”https://site.se/image.jpg”

Details for the suggestions

Field nameDescriptionRequiredTypeExample
textText displayed on the button.YesString”Shop now”
typeAction type
OpenUrlAction”= URL
”ShareLocationAction”= Share location
”ViewLocationAction”= View location
”DialAction”=Ring)
”CreateCalendarEventAction” = Create calendar event.
YesString (enum)”OpenUrlAction”
orderDetermines the order in which suggestions are displayed.NoInteger1
postbackDataData returned when the button is clicked.YesString”track_sale_click”
urlTarget URL (required for type 2).NoString”https://site.se/shop”
TitleTitle for View Location on Map and Calendar Event.Required for ShareLocationAction and ViewLocationActionString”Our store”
DescriptionDescription of a calendar event.Required for CreateCalendarEventActionString”Welcome to your haircut appointment!”
StartTime
Start time of a calendar event.
Required for CreateCalendarEventActionString”2026-07-01T14:30”
EndTime
End time of a calendar event.
Required for CreateCalendarEventActionString”2026-07-01T15:30”
LatitudeLatitude for displaying a location on a map.Required for ViewLocationActionString”58.3944347”
LongitudeLongitude for displaying a location on a map.Required for ViewLocationActionString”13.8601547,18”
PhoneNumberPhone number dialed when the button is pressed.Required for DialActionString”46101606060”

Response

Response example

{
  "id": "65eb3d14f1234567890abcdef",
  "brand": "My-Store-Inc",
  "agent": "Customer-Service",
  "type": "Card",
  "content": "Hello! Your order has shipped.",
  "sendDate": "2026-03-04T15:05:00Z",
  "uniqueId": "order-12345-id",
  "reference": "INTERN-REF-001",
  "deliveryReportUrl": "https://delivery.ip1.net",
  "created": "2026-03-04T15:03:02Z",
  "fallback": {
    "fallbackPolicy": "FallbackOnNoCapability,FallbackOnFailure",
    "fallbackMessage": "This is a fallback message",
    "fallbackStatus": "Unknown"
  },
  "tags": ["shipping", "important"]
}

Response fields

Field nameDescriptionTypeExample
idBundlens unika id.String"65eb3d14f1234567890abcdef"
brandBrand used for the send.String”My-Store-Inc”
agentYour agent name.String”Customer-Service”
typeMeddelandetyp:
Text
Card
Carousel
String (enum)”Card”
contentText content that was sent.String”Hello {name}! Your order has shipped.”
sendDateScheduled send time.DateTime”2026-03-04T15:05:00Z”
referenceYour optional free-text reference.String”INTERN-REF-001”
uniqueIdYour ID used for duplicate detection.String”order-12345-id”
deliveryReportUrlCallback URL for read receipts and delivery reports.String”https://delivery.ip1.net”
createdTime when the record was created.DateTime”2026-03-04T15:03:02Z”
tagsArray of tags associated with the send.Array[”shipping”, ”important”]
Was this page helpful?
⌘ K