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

# Enviar mensaje RCS

> Envía RCS a uno o más números. Texto, tarjeta, carrusel, archivo o plantilla.



## OpenAPI

````yaml /es/rcs-api/api-reference/openapi-rcs.json post /v1/rcs/messages
openapi: 3.0.3
info:
  title: Notifique API RCS
  description: >-
    Envíe mensajes RCS y consulte el estado. Autentíquese con `Authorization:
    Bearer sk_live_...` o `x-api-key`.
  version: 1.0.0
servers:
  - url: https://api.notifique.dev
    description: Producción
security:
  - ntfRcsBearerAuth: []
  - ntfRcsApiKeyHeader: []
tags:
  - name: RCS
    description: Envío y consulta de mensajes RCS
paths:
  /v1/rcs/messages:
    post:
      tags:
        - RCS
      summary: Enviar mensaje RCS
      description: >-
        Envía RCS a uno o más números. Texto, tarjeta, carrusel, archivo o
        plantilla.
      operationId: ntfRcs_postV1RcsSend
      parameters:
        - name: Idempotency-Key
          in: header
          required: false
          description: Clave única para evitar envíos duplicados.
          schema:
            type: string
        - name: x-idempotency-key
          in: header
          required: false
          description: Clave de idempotencia (alternativa).
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NtfRcs_SendRcsRequest'
            example:
              to:
                - '5511999999999'
                - '5521988887777'
              type: basic
              payload:
                message: Olá! RCS de teste.
              schedule:
                sendAt: '2025-12-31T14:00:00.000Z'
              options:
                priority: high
                webhook:
                  url: https://api.seudominio.com/hooks/rcs-events
              metadata:
                ticket: abc
      responses:
        '202':
          description: RCS aceptado. En cola para envío inmediato o programado.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NtfRcs_SendRcsResponse'
        '400':
          description: >-
            Validación: tipo de mensaje vacío, no válido, carga útil no válida
            para el tipo o programación más allá de lo permitido.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NtfRcs_ErrorResponse'
              example:
                success: false
                error: Bad Request
                message: payload.message is required for BASIC
                details:
                  - field: payload
                    message: payload.message is required for BASIC
                code: BAD_REQUEST
        '401':
          description: Clave API faltante o no válida.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NtfRcs_ErrorResponse'
        '402':
          description: >-
            Prueba/plan caducado, créditos/saldo insuficientes o límite de gasto
            de clave API.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NtfRcs_ErrorResponse'
              example:
                success: false
                error: Payment Required
                message: Trial ended or plan expired. Choose a plan to continue.
                code: WORKSPACE_BLOCKED
        '403':
          description: >-
            RCS faltantes: alcance de envío, créditos insuficientes (cada RCS
            consume 60 créditos; PLAN_LIMIT_CREDITS) o programación no permitida
            (PLAN_LIMIT_SCHEDULING).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NtfRcs_ErrorResponse'
        '429':
          description: Rate limit excedido.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NtfRcs_ErrorResponse'
components:
  schemas:
    NtfRcs_SendRcsRequest:
      type: object
      required:
        - to
        - payload
      properties:
        to:
          type: array
          items:
            type: string
          minItems: 1
          maxItems: 100
          description: >-
            Lista de números en formato E.164 (ej.: 5511999999999). Un mensaje
            RCS por número; cada uno consume 60 créditos.
        type:
          type: string
          enum:
            - basic
            - card
            - carousel
            - file
            - template
          description: >-
            Tipo de mensaje (canónico, minúsculas): básico (texto), tarjeta,
            carrusel, archivo o template (workspace). Utilice messageType en
            MAYÚSCULAS como alias de compatibilidad.
        messageType:
          type: string
          enum:
            - BASIC
            - CARD
            - CAROUSEL
            - FILE
          description: >-
            Alias ​​de compatibilidad para `type`. Prefiera minúsculas `type`
            para nuevos integradores.
        payload:
          type: object
          description: >-
            Conteúdo conforme messageType. BÁSICO: {mensaje}. TARJETA: {
            mensaje, imagen de tarjeta, título de tarjeta, mensaje de tarjeta,
            botones? }. CARRUSEL: { mensaje, tarjetas } (tarjeta cada:
            cardImage, cardTitle, cardMessage, botones?). ARCHIVO: { mensaje,
            archivo, nombre de archivo } (archivo = URL pública).
        schedule:
          type: object
          properties:
            sendAt:
              type: string
              format: date-time
              description: >-
                Fecha/hora en ISO 8601 para programar el envío. Depende del
                plan.
        refer:
          type: string
          description: Referencia opcional para correlación (por ejemplo, ID de pedido).
        options:
          type: object
          properties:
            priority:
              type: string
              enum:
                - high
                - normal
                - low
              default: normal
              description: >-
                `high` = Cola de Redis con prioridad RCS y cola de prioridad de
                webhooks.
            webhook:
              type: object
              description: 'Webhook solo para este envío: eventos `rcs.*` de este lote.'
              required:
                - url
              properties:
                url:
                  type: string
                  format: uri
                  maxLength: 2048
                secret:
                  type: string
        metadata:
          type: object
          additionalProperties:
            type: string
          description: Metadatos en `RcsLog.metadata` (cadena→cadena).
    NtfRcs_SendRcsResponse:
      type: object
      required:
        - success
        - data
      properties:
        success:
          type: boolean
          example: true
        data:
          type: object
          required:
            - status
            - count
            - messageIds
          properties:
            status:
              type: string
              enum:
                - QUEUED
                - SCHEDULED
              description: QUEUED = envío inmediato; PROGRAMADO = programado.
            count:
              type: integer
              description: Número de mensajes RCS creados.
            messageIds:
              type: array
              items:
                type: string
              description: DNI canónicos (cuid) para consulta o cancelación de envío.
            rcsIds:
              type: array
              items:
                type: string
              description: Alias ​​de compatibilidad para messageIds. Mismo valor.
            scheduledAt:
              type: string
              format: date-time
              description: >-
                Presente cuando el estado es PROGRAMADO; fecha/hora de
                programación en ISO 8601.
    NtfRcs_ErrorResponse:
      type: object
      properties:
        success:
          type: boolean
          example: false
        error:
          type: string
          description: >-
            Etiqueta de error de estilo HTTP (por ejemplo, no autorizado,
            solicitud incorrecta, no encontrada).
        message:
          type: string
          description: >-
            Mensaje legible por humanos para usuarios finales (localizado a
            través de Accept-Language/x-locale cuando corresponda).
        code:
          type: string
          description: >-
            Código API v1 estable (enumeración). Siempre presente en los
            errores. Úselo con el estado HTTP para decidir reintentar o
            corregir. Ver [Respuestas de
            error](/es/guides/conceitos/resposta-de-erros).
        details:
          type: array
          items:
            type: object
            properties:
              field:
                type: string
              message:
                type: string
          description: Listado de errores de validación por campo.
      required:
        - success
        - error
        - message
        - code
  securitySchemes:
    ntfRcsBearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key
      description: >-
        Clave API sin autorización de encabezado. Ejemplo: `Authorization:
        Bearer sk_live_xxxxx`
    ntfRcsApiKeyHeader:
      type: apiKey
      in: header
      name: x-api-key
      description: 'Clave API sin encabezado x-api-key. Ejemplo: `x-api-key: sk_live_xxxxx`'

````