---
title: "Send an RCS message"
method: POST
path: "/{connect_customer_key}/agentMessages/{msisdn}"
tags: ["RCS Business Messaging"]
---

# Send an RCS message

`POST /{connect_customer_key}/agentMessages/{msisdn}`

## Request

- Base URL: `https://rbm.us.vibes.com/connectCustomers`
- URL: `https://rbm.us.vibes.com/connectCustomers/{connect_customer_key}/agentMessages/{msisdn}`
- Auth: OAuth 2
  - Client credentials
  - Token URL: `https://vibes-rbm-prd.auth.us-west-2.amazoncognito.com/oauth2/token` scopes: `https://rbm.vibes.com/rbm.agents`

Sends a message from an RBM agent to a mobile device. The message can contain text, rich card, and suggestions. The message can also be revoked between the time that it is sent and the time that it is delivered.<br><br><a href="https://developer-aggregation.vibes.com/reference/rcs-for-business-api#message-payload-examples" target="_blank">See some example RCS message payloads here.</a>

## Path parameters

- `connect_customer_key` string, required
- `msisdn` string, required

## Query parameters

- `agentId` string, required
- `messageId` string

## Request body

- AgentMessage
  - `name` string: Do not set this field. It will be populated by the API when the operation returns.
  - `sendTime` string: Do not set this field. It will be populated by the API when the operation returns.
  - `contentMessage` AgentContentMessage, required: The content of the agent message.
    - `text` string: The body text of your message.
    - `contentInfo` ContentInfo
      - `fileUrl` string: Publicly reachable URL of the file. The Vibes RBM platform determines the MIME type of the file from the content-type field in the HTTP headers when the platform fetches the file. The content-type field must be present and accurate in the HTTP response from the URL. Recommended maximum file size of 100 MB.
      - `thumbnailUrl` string: For image, audio and video files only. Publicly reachable URL of the thumbnail. Maximum size of 100 kB. If you don't provide a thumbnail URL, the Vibes RBM platform displays a blank placeholder thumbnail until the user's device downloads the file. Depending on the user's setting, the file may not download automatically and may require the user to tap a download button. Recommended maximum file size of 100 kB.
      - `forceRefresh` boolean: Default is false. If true, the Vibes RBM platform fetches the file and thumbnail from the specified URLs, even if the platform has cached copies of the file (and/or of the thumbnail).
    - `suggestions` Suggestion[]: Provide end users with suggested actions or responses.
      - `reply` SuggestedReply
        - `text` string: <span style="color:#dd1e2e;">Required.</span> Text of the suggested reply.
        - `postbackData` string: <span style="color:#dd1e2e;">Required.</span> The base64-encoded payload that the agent receives in a user event when the user taps the suggested reply. Maximum
      - `action` SuggestedAction
        - `text` string: <span style="color:#dd1e2e;">Required.</span> Text label of suggested action.
        - `postbackData` string: <span style="color:#dd1e2e;">Required.</span> Base64-encoded payload that will be sent to the agent in the user event that results when the user taps the suggested action. Maximum 2048 characters.
        - `fallbackUrl` string: Optional. URL that will open in a new window if a mobile device doesn't support a suggested action.
        - `dialAction` DialAction
          - `phoneNumber` string: <span style="color:#dd1e2e;">Required.</span> Phone number to dial, in E.164 format.
        - `viewLocationAction` ViewLocationAction: Opens the device's default map app and selects the specified location or searches around the device's location given an agent-specified query.
          - `label` string: Optional. Text label of the location opened.
          - `latLong` LatLng
            - `latitude` number
            - `longitude` number
          - `query` string: Optional, only supported on Android Messages clients. Rather than specify a lat_long, a query string. For default map apps that support search functionality, tapping this suggested action results in a location search centered around the user's current location. <br><br> If the query is sufficiently specific, it select any location in the world. For instance, setting the query string to "Growing Tree Bank" will show all Growing Tree Bank locations in the device's vicinity. Setting the query string to "1600 Amphitheater Parkway, Mountain View, CA 94043" will select that specific address, regardless of the user's location.
        - `createCalendarEventAction` CreateCalendarEventAction
          - `startTime` string: <span style="color:#dd1e2e;">Required.</span> Event start time.
          - `endTime` string: <span style="color:#dd1e2e;">Required.</span> Event end time.
          - `title` string: <span style="color:#dd1e2e;">Required.</span> Event title.
          - `description` string: Optional. Event description.
        - `openUrlAction` OpenUrlAction
          - `url` string: <span style="color:#dd1e2e;">Required.</span>
          - `application` 'OPEN_URL_APPLICATION_UNSPECIFIED' | 'WEBVIEW' | 'BROWSER': What app the URL will open in - browser or integrated webview window.
          - `webviewViewMode` 'WEBVIEW_VIEW_MODE_UNSPECIFIED' | 'FULL' | 'HALF' | 'TALL': If URL is opened in integrated webview, specify view mode. Default is full view.
          - `description` string
        - `shareLocationAction` ShareLocationAction
    - `uploadedRbmFile` UploadedRbmFile: A file that has been uploaded to the RCS Business Messaging platform.
      - `fileName` string: The name of the file, as provided by the RBM platform when the file is uploaded.
      - `thumbnailName` string: The name of the thumbnail associated with the file, as provided by the RBM platform when the file is uploaded.
    - `richCard` RichCard
      - `carouselCard` CarouselCard: A carousel of rich cards.
        - `cardWidth` 'CARD_WIDTH_UNSPECIFIED' | 'SMALL' | 'MEDIUM'
        - `cardContents` CardContent[]
          - `title` string: Title on the rich card.
          - `description` string: Description text on the rich card.
          - `media` Media
            - `height` 'HEIGHT_UNSPECIFIED' | 'SHORT' | 'MEDIUM' | 'TALL'
            - `contentInfo` ContentInfo
              - …
            - `uploadedRbmFile` UploadedRbmFile: A file that has been uploaded to the RCS Business Messaging platform.
              - …
          - `suggestions` Suggestion[]
            - `reply` SuggestedReply
              - …
            - `action` SuggestedAction
              - …
      - `standaloneCard` StandaloneCard
        - `cardOrientation` 'CARD_ORIENTATION_UNSPECIFIED' | 'HORIZONTAL' | 'VERTICAL'
        - `thumbnailImageAlignment` 'THUMBNAIL_IMAGE_ALIGNMENT_UNSPECIFIED' | 'LEFT' | 'RIGHT': Alignment of image preview for standalone cards with horizontal layout.
        - `cardContent` CardContent: Each rich card must have at least one of title, description, or media.
          - `title` string: Title on the rich card.
          - `description` string: Description text on the rich card.
          - `media` Media
            - `height` 'HEIGHT_UNSPECIFIED' | 'SHORT' | 'MEDIUM' | 'TALL'
            - `contentInfo` ContentInfo
              - …
            - `uploadedRbmFile` UploadedRbmFile: A file that has been uploaded to the RCS Business Messaging platform.
              - …
          - `suggestions` Suggestion[]
            - `reply` SuggestedReply
              - …
            - `action` SuggestedAction
              - …
  - `messageTrafficType` 'MESSAGE_TRAFFIC_TYPE_UNSPECIFIED' | 'AUTHENTICATION' | 'TRANSACTION' | 'PROMOTION' | 'SERVICEREQUEST' | 'ACKNOWLEDGEMENT'
  - `richMessageClassification` RichMessageClassification: Output only. Classifies the message according to the US billing model.
    - `classificationType` 'RICH_MESSAGE_CLASSIFICATION_TYPE_UNSPECIFIED' | 'RICH_MESSAGE' | 'RICH_MEDIA_MESSAGE' | 'SUGGESTED_ACTION_CLICK'
    - `segmentCount` integer: The number of 160-byte segments for the message's text, always rounded up. Calculated from the total UTF-8 byte length of the text content only; data from suggested replies or actions is excluded.
  - `totalPayloadSizeBytes` string, int64: Output only. The total payload size of the message in bytes.
  - `carrier` string: Output only. The carrier information that the user's phone number belongs to, according to Google RCS backends.
  - `expireTime` string: Optional. Timestamp in UTC when this message will be considered expired.
  - `ttl` string: Optional. Time in seconds the message will live before it is automatically revoked.

## Response `200`

The message has been queued for delivery. A webhook will be sent to the agent when the message is delivered to the mobile device.

- AgentMessage
  - `name` string: Do not set this field. It will be populated by the API when the operation returns.
  - `sendTime` string: Do not set this field. It will be populated by the API when the operation returns.
  - `contentMessage` AgentContentMessage, required: The content of the agent message.
    - `text` string: The body text of your message.
    - `contentInfo` ContentInfo
      - `fileUrl` string: Publicly reachable URL of the file. The Vibes RBM platform determines the MIME type of the file from the content-type field in the HTTP headers when the platform fetches the file. The content-type field must be present and accurate in the HTTP response from the URL. Recommended maximum file size of 100 MB.
      - `thumbnailUrl` string: For image, audio and video files only. Publicly reachable URL of the thumbnail. Maximum size of 100 kB. If you don't provide a thumbnail URL, the Vibes RBM platform displays a blank placeholder thumbnail until the user's device downloads the file. Depending on the user's setting, the file may not download automatically and may require the user to tap a download button. Recommended maximum file size of 100 kB.
      - `forceRefresh` boolean: Default is false. If true, the Vibes RBM platform fetches the file and thumbnail from the specified URLs, even if the platform has cached copies of the file (and/or of the thumbnail).
    - `suggestions` Suggestion[]: Provide end users with suggested actions or responses.
      - `reply` SuggestedReply
        - `text` string: <span style="color:#dd1e2e;">Required.</span> Text of the suggested reply.
        - `postbackData` string: <span style="color:#dd1e2e;">Required.</span> The base64-encoded payload that the agent receives in a user event when the user taps the suggested reply. Maximum
      - `action` SuggestedAction
        - `text` string: <span style="color:#dd1e2e;">Required.</span> Text label of suggested action.
        - `postbackData` string: <span style="color:#dd1e2e;">Required.</span> Base64-encoded payload that will be sent to the agent in the user event that results when the user taps the suggested action. Maximum 2048 characters.
        - `fallbackUrl` string: Optional. URL that will open in a new window if a mobile device doesn't support a suggested action.
        - `dialAction` DialAction
          - `phoneNumber` string: <span style="color:#dd1e2e;">Required.</span> Phone number to dial, in E.164 format.
        - `viewLocationAction` ViewLocationAction: Opens the device's default map app and selects the specified location or searches around the device's location given an agent-specified query.
          - `label` string: Optional. Text label of the location opened.
          - `latLong` LatLng
            - `latitude` number
            - `longitude` number
          - `query` string: Optional, only supported on Android Messages clients. Rather than specify a lat_long, a query string. For default map apps that support search functionality, tapping this suggested action results in a location search centered around the user's current location. <br><br> If the query is sufficiently specific, it select any location in the world. For instance, setting the query string to "Growing Tree Bank" will show all Growing Tree Bank locations in the device's vicinity. Setting the query string to "1600 Amphitheater Parkway, Mountain View, CA 94043" will select that specific address, regardless of the user's location.
        - `createCalendarEventAction` CreateCalendarEventAction
          - `startTime` string: <span style="color:#dd1e2e;">Required.</span> Event start time.
          - `endTime` string: <span style="color:#dd1e2e;">Required.</span> Event end time.
          - `title` string: <span style="color:#dd1e2e;">Required.</span> Event title.
          - `description` string: Optional. Event description.
        - `openUrlAction` OpenUrlAction
          - `url` string: <span style="color:#dd1e2e;">Required.</span>
          - `application` 'OPEN_URL_APPLICATION_UNSPECIFIED' | 'WEBVIEW' | 'BROWSER': What app the URL will open in - browser or integrated webview window.
          - `webviewViewMode` 'WEBVIEW_VIEW_MODE_UNSPECIFIED' | 'FULL' | 'HALF' | 'TALL': If URL is opened in integrated webview, specify view mode. Default is full view.
          - `description` string
        - `shareLocationAction` ShareLocationAction
    - `uploadedRbmFile` UploadedRbmFile: A file that has been uploaded to the RCS Business Messaging platform.
      - `fileName` string: The name of the file, as provided by the RBM platform when the file is uploaded.
      - `thumbnailName` string: The name of the thumbnail associated with the file, as provided by the RBM platform when the file is uploaded.
    - `richCard` RichCard
      - `carouselCard` CarouselCard: A carousel of rich cards.
        - `cardWidth` 'CARD_WIDTH_UNSPECIFIED' | 'SMALL' | 'MEDIUM'
        - `cardContents` CardContent[]
          - `title` string: Title on the rich card.
          - `description` string: Description text on the rich card.
          - `media` Media
            - `height` 'HEIGHT_UNSPECIFIED' | 'SHORT' | 'MEDIUM' | 'TALL'
            - `contentInfo` ContentInfo
              - …
            - `uploadedRbmFile` UploadedRbmFile: A file that has been uploaded to the RCS Business Messaging platform.
              - …
          - `suggestions` Suggestion[]
            - `reply` SuggestedReply
              - …
            - `action` SuggestedAction
              - …
      - `standaloneCard` StandaloneCard
        - `cardOrientation` 'CARD_ORIENTATION_UNSPECIFIED' | 'HORIZONTAL' | 'VERTICAL'
        - `thumbnailImageAlignment` 'THUMBNAIL_IMAGE_ALIGNMENT_UNSPECIFIED' | 'LEFT' | 'RIGHT': Alignment of image preview for standalone cards with horizontal layout.
        - `cardContent` CardContent: Each rich card must have at least one of title, description, or media.
          - `title` string: Title on the rich card.
          - `description` string: Description text on the rich card.
          - `media` Media
            - `height` 'HEIGHT_UNSPECIFIED' | 'SHORT' | 'MEDIUM' | 'TALL'
            - `contentInfo` ContentInfo
              - …
            - `uploadedRbmFile` UploadedRbmFile: A file that has been uploaded to the RCS Business Messaging platform.
              - …
          - `suggestions` Suggestion[]
            - `reply` SuggestedReply
              - …
            - `action` SuggestedAction
              - …
  - `messageTrafficType` 'MESSAGE_TRAFFIC_TYPE_UNSPECIFIED' | 'AUTHENTICATION' | 'TRANSACTION' | 'PROMOTION' | 'SERVICEREQUEST' | 'ACKNOWLEDGEMENT'
  - `richMessageClassification` RichMessageClassification: Output only. Classifies the message according to the US billing model.
    - `classificationType` 'RICH_MESSAGE_CLASSIFICATION_TYPE_UNSPECIFIED' | 'RICH_MESSAGE' | 'RICH_MEDIA_MESSAGE' | 'SUGGESTED_ACTION_CLICK'
    - `segmentCount` integer: The number of 160-byte segments for the message's text, always rounded up. Calculated from the total UTF-8 byte length of the text content only; data from suggested replies or actions is excluded.
  - `totalPayloadSizeBytes` string, int64: Output only. The total payload size of the message in bytes.
  - `carrier` string: Output only. The carrier information that the user's phone number belongs to, according to Google RCS backends.
  - `expireTime` string: Optional. Timestamp in UTC when this message will be considered expired.
  - `ttl` string: Optional. Time in seconds the message will live before it is automatically revoked.

## Other responses

- `403`: Forbidden agent. The `agentId` is either not valid, or it has not deployed on the provider.
- `422`: Unprocessable entity. Specific data errors have occurred in the request. Additional details will be available in the content of the error. <br><br> Example - Invalid Phone Number. The phone number is not a valid mobile number, or is on a unsupported carrier.
- `429`: Quota exceeded. You've either exceeded the number of calls allowed, or a downstream server is busy. Please try your request again later.

---

[API](https://skmtc.dev/vibes/apis/vibes-rcs-business-messaging-api.md) - [All operations](https://skmtc.dev/vibes/apis/vibes-rcs-business-messaging-api/llms.txt) - [OpenAPI document](https://skmtc.dev/vibes/apis/vibes-rcs-business-messaging-api/revisions/94076f49389f?raw)
