> ## Documentation Index
> Fetch the complete documentation index at: https://platform.tatango.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Send an RCS Rich Card

> This endpoint allows you to send an RCS Rich Card message with media to a U.S. phone number. If delivery fails, a fallback SMS message will be sent.

<Tip>
  RCS Rich Cards provide interactive messaging experiences with media, text, and action buttons.

  **RCS Rich Card Features:**

  * **Media Support:** Images and videos with thumbnails
  * **Rich Text:** Rich text features: Bold, italic, underline, strikethrough and emojis
  * **Fallback:** Automatic SMS fallback if RCS delivery fails

  **Requirements:** Valid U.S. phone number with RCS support
</Tip>


## OpenAPI

````yaml POST /transactional_messages/send_rcs_rich_card
openapi: 3.1.0
info:
  title: Tatango API
  description: Tatango API for messaging services including WhatsApp, SMS, and MMS
  version: 1.0.0
servers:
  - url: https://api.v3.tatango.com
security:
  - apiKeyAuth: []
paths:
  /transactional_messages/send_rcs_rich_card:
    post:
      tags:
        - Messaging
      summary: Send an RCS Rich Card
      description: >-
        This endpoint allows you to send an RCS Rich Card message with media to
        a U.S. phone number. If delivery fails, a fallback SMS message will be
        sent.
      requestBody:
        description: The RCS Rich Card message request with SMS fallback.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SendRcsRichCardRequest'
            example:
              phoneNumber: '5551234567'
              webhookUrl: https://mywebhook.com/recieve
              rcsPayload:
                richCard:
                  body:
                    title: Summer Sale!
                    text: Save up to 50% on all summer items. Limited time offer!
                    url: https://example.com/images/summer-sale.mp4
                    thumbnailUrl: https://example.com/images/summer-sale.jpg
                    isVideo: true
              smsFailover: Check out our latest offers! https://example.com/summer-sale
        required: true
      responses:
        '202':
          description: RCS Rich Card message accepted.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/TransactionResponse'
              example:
                message: RCS rich card message sent successfully
                transactionId: 019687e1-1b54-70f4-a68a-60af7fa776f4
        '400':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
              example:
                $ref: '#/components/examples/PhoneNumberValidationError/value'
components:
  schemas:
    SendRcsRichCardRequest:
      type: object
      required:
        - phoneNumber
        - rcsPayload
        - smsFailover
        - webhookUrl
      properties:
        phoneNumber:
          $ref: '#/components/schemas/PhoneNumber'
        webhookUrl:
          $ref: '#/components/schemas/WebhookUrl'
        rcsPayload:
          type: object
          required:
            - richCard
          properties:
            richCard:
              $ref: '#/components/schemas/RcsCard'
        smsFailover:
          $ref: '#/components/schemas/SMSFailover'
    TransactionResponse:
      required:
        - message
        - transactionId
      type: object
      properties:
        message:
          description: Success message indicating the request was accepted.
          type: string
        transactionId:
          description: Unique transaction identifier for tracking the message.
          type: string
    ValidationError:
      required:
        - error
        - errors
      type: object
      properties:
        error:
          type: string
          example: Invalid request payload
        errors:
          type: array
          items:
            type: object
            properties:
              code:
                type: string
                description: Zod error code
                example: invalid_string
              message:
                type: string
                description: Human-readable error message
                example: Not a valid U.S. or Canadian phone number
              path:
                type: array
                items:
                  oneOf:
                    - type: string
                    - type: number
                description: Path to the field that caused the error
                example:
                  - phoneNumber
              validation:
                type: string
                description: Validation type that failed
                example: regex
              minimum:
                type: number
                description: Minimum value for numeric validations
              maximum:
                type: number
                description: Maximum value for numeric validations
              type:
                type: string
                description: Expected data type
              inclusive:
                type: boolean
                description: Whether the boundary is inclusive
              exact:
                type: boolean
                description: Whether the validation requires exact match
            required:
              - code
              - message
              - path
    PhoneNumber:
      description: >-
        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.
      type: string
    WebhookUrl:
      description: URL where webhooks will be sent. Must be a valid HTTPS URL.
      type: string
      maxLength: 255
    RcsCard:
      type: object
      required:
        - body
      properties:
        body:
          $ref: '#/components/schemas/RcsCardBody'
    SMSFailover:
      description: >-
        SMS fallback message content used when primary delivery method fails.
        Must contain only GSM 7-bit characters.
      type: string
      minLength: 1
      maxLength: 160
    RcsCardBody:
      type: object
      required:
        - title
        - text
        - url
        - isVideo
      properties:
        title:
          type: string
          minLength: 1
          maxLength: 200
          description: >-
            Title of the card, displayed as bolded text. Shown below the media
            content and above the text.
          example: Summer Sale!
        text:
          type: string
          minLength: 1
          maxLength: 2000
          description: >-
            Description of the card, displayed as regular text and shown below
            the title.
          example: Save up to 50% on all summer items. Limited time offer!
        url:
          type: string
          format: uri
          maxLength: 255
          pattern: ^https://
          description: >-
            HTTPS URL to the media content to be displayed in the card.
            Supported formats: Images (image/jpeg, image/jpg, image/gif,
            image/png) and Videos (video/h263, video/m4v, video/mp4, video/mpeg,
            video/mpeg4, video/webm).
          example: https://example.com/images/summer-sale.jpg
        thumbnailUrl:
          type: string
          format: uri
          maxLength: 255
          pattern: ^https://
          description: >-
            HTTPS URL to thumbnail image to be displayed in the card before the
            video plays (optional).  Supported formats are: Images (image/jpeg,
            image/jpg, image/gif, image/png).
          example: https://example.com/images/video-thumbnail.jpg
        isVideo:
          type: boolean
          description: >-
            Whether the media content in `rcsPayload.richCard.body.url` is a
            video or not.
          example: true
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        Your Tatango API key. This is required for all requests to the API. You
        can find your API key in the Tatango App under My Account -> API ->
        Create API Key.

````