> ## 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.

# Inscribir un sujeto en este viaje

> Inicia una participación v2 desde la plataforma o API sin exigir su primera respuesta. Un contacto v2 puede tener solo una participación sin terminar por viaje. El mismo subjectKey puede iniciar un ciclo nuevo cuando el anterior se complete o termine su detención; cada ciclo tiene un ID de participación distinto. Las definiciones anteriores conservan su comportamiento de inscripción.



## OpenAPI

````yaml /openapi-v1.es.json post /v1/journeys/{id}/enrollments
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/journeys/{id}/enrollments:
    post:
      tags:
        - v1 - journeys
      summary: Inscribir un sujeto en este viaje
      description: >-
        Inicia una participación v2 desde la plataforma o API sin exigir su
        primera respuesta. Un contacto v2 puede tener solo una participación sin
        terminar por viaje. El mismo subjectKey puede iniciar un ciclo nuevo
        cuando el anterior se complete o termine su detención; cada ciclo tiene
        un ID de participación distinto. Las definiciones anteriores conservan
        su comportamiento de inscripción.
      operationId: V1JourneysController_enroll
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: string
            format: ObjectId
        - name: X-Woku-Idempotency-Key
          in: header
          description: >-
            Clave generada por el cliente para reintentar con seguridad. Un
            reintento con la misma clave y operación devuelve el resultado
            original. No reutilices la clave con datos nuevos: se reproduce el
            cuerpo original. Una operación diferente devuelve 422.
          required: false
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/V1EnrollSubjectBodyDto'
      responses:
        '201':
          description: El caso fue inscrito
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1JourneyEnrollmentResponseDto'
        '400':
          description: Error de validación, o el viaje está desactivado
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationErrorResponseDto'
        '403':
          description: Clave de API, acceso a la empresa o permiso inválidos
        '404':
          description: Viaje, momento o evaluación no encontrados
        '409':
          description: El caso ya está inscrito
        '422':
          description: Clave de idempotencia reutilizada para una operación diferente
      security:
        - bearer: []
components:
  schemas:
    V1EnrollSubjectBodyDto:
      type: object
      properties:
        authHeader:
          type: string
          deprecated: true
          writeOnly: true
          description: >-
            Clave de API legacy en el cuerpo. Prefiere Authorization: Bearer. La
            consume la autenticación y nunca se envía a los comandos del viaje.
        subjectKey:
          type: string
          description: >-
            Su propia clave para quién está inscrito: un id de cliente, un
            pedido, un ticket.
          example: cliente-123
        contact:
          description: Dónde contactar al sujeto. Al menos uno de email o phone.
          allOf:
            - $ref: '#/components/schemas/V1JourneyContactDto'
        trackers:
          type: array
          items:
            $ref: '#/components/schemas/V1JourneyTrackerDto'
        metadata:
          type: object
          description: Cualquier cosa que quieras conservar con ello
          additionalProperties: true
      required:
        - subjectKey
        - contact
    V1JourneyEnrollmentResponseDto:
      type: object
      properties:
        subjectKey:
          type: string
        journeyId:
          type: string
      required:
        - subjectKey
        - journeyId
    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
    V1JourneyContactDto:
      type: object
      properties:
        email:
          type: string
          format: email
          example: cliente@example.com
        phone:
          type: string
          description: Teléfono con código de país, solo dígitos
          example: '56911111111'
    V1JourneyTrackerDto:
      type: object
      properties:
        name:
          type: string
          example: campaign
        value:
          type: string
          example: black-friday
      required:
        - name
        - value
  securitySchemes:
    bearer:
      scheme: bearer
      bearerFormat: API key
      type: http
      description: Clave API secreta de la empresa.

````