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

# Enviar un formulario por correo o WhatsApp

> Despacha la invitación del formulario a una lista de destinatarios. El formulario debe pertenecer a la empresa del llamador y estar abierto y activo.



## OpenAPI

````yaml /openapi-v1.es.json post /v1/forms/{id}/invitations
openapi: 3.0.0
info:
  title: Woku Client API v1
  description: >-
    API REST pública para la administración programática de programas
    Voice-of-Customer de woku: trackers, instrumentos VoC (NPS, woku, CES,
    CSAT), planes de acción, tickets de soporte, envío multicanal y captura de
    respuestas. Las solicitudes están delimitadas por empresa mediante la clave
    API. Nunca envíe un id de empresa.
  version: 1.0.0
  contact:
    name: Woku
    url: https://woku.app
    email: team@woku.app
servers:
  - url: https://clientapi.woku.app
    description: Producción
security: []
tags: []
paths:
  /v1/forms/{id}/invitations:
    post:
      tags:
        - v1 - invitations
      summary: Enviar un formulario por correo o WhatsApp
      description: >-
        Despacha la invitación del formulario a una lista de destinatarios. El
        formulario debe pertenecer a la empresa del llamador y estar abierto y
        activo.
      operationId: V1InvitationsController_sendFormInvitations
      parameters:
        - name: X-Woku-Idempotency-Key
          in: header
          description: >-
            Clave generada por el cliente para hacer que un envío sea seguro
            para reintentar. Un reintento con la misma clave devuelve el
            resultado original en lugar de despachar de nuevo.
          required: false
          schema:
            type: string
        - name: id
          required: true
          in: path
          description: Id del formulario
          schema:
            type: string
            format: ObjectId
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/V1CreateInvitationsBodyDto'
      responses:
        '202':
          description: Resumen de despacho por destinatario
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1InvitationsResultDto'
        '400':
          description: Error de validación, o el formulario está cerrado o inactivo
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationErrorResponseDto'
        '403':
          description: El formulario no pertenece a la empresa del llamador
        '404':
          description: Formulario no encontrado
      security:
        - bearer: []
components:
  schemas:
    V1CreateInvitationsBodyDto:
      type: object
      properties:
        channel:
          type: string
          description: Canal de entrega para las invitaciones
          enum:
            - email
            - whatsapp
          example: whatsapp
        recipients:
          description: >-
            Destinatarios: direcciones de correo electrónico para el canal
            email, números de teléfono (dígitos, código de país incluido, p. ej.
            56912345678) para whatsapp
          example:
            - '56912345678'
          maxItems: 100
          type: array
          items:
            type: string
        language:
          type: string
          description: Idioma de la plantilla de invitación
          enum:
            - es
            - en
          example: es
      required:
        - channel
        - recipients
    V1InvitationsResultDto:
      type: object
      properties:
        channel:
          type: string
          enum:
            - email
            - whatsapp
        accepted:
          description: Destinatarios cuya invitación fue despachada (o puesta en cola)
          type: array
          items:
            type: string
        rejected:
          description: Destinatarios cuya invitación no fue despachada, con motivo
          type: array
          items:
            $ref: '#/components/schemas/V1RejectedInvitationDto'
      required:
        - channel
        - accepted
        - rejected
    ValidationErrorResponseDto:
      type: object
      properties:
        statusCode:
          type: number
          description: Código de estado HTTP
          example: 400
        message:
          description: Arreglo de mensajes de error de validación
          example:
            - email must be a valid email
            - password must be at least 8 characters
          type: array
          items:
            type: string
        error:
          type: string
          description: Tipo de error
          example: Bad Request
      required:
        - statusCode
        - message
        - error
    V1RejectedInvitationDto:
      type: object
      properties:
        recipient:
          type: string
          description: Destinatario tal como se recibió en la solicitud
        reason:
          type: string
          description: Por qué no se envió la invitación
          enum:
            - invalid_recipient
            - quarantined
            - insufficient_credits_or_blocked
            - send_failed
      required:
        - recipient
        - reason
  securitySchemes:
    bearer:
      scheme: bearer
      bearerFormat: API key
      type: http
      description: Clave API secreta de la empresa.

````