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

# Crear un plazo

> Utiliza este endpoint para crear un plazo con el payload de entrada. Un plazo rastrea la fecha de vencimiento de un informe y, opcionalmente, la plantilla que debe usarse para cumplirlo.

<Note>
  Estos endpoints sustentan la gestión de plazos en la **Consola**. También puede llamarlos directamente para integrar los plazos en sus propios sistemas.
</Note>


## OpenAPI

````yaml es/openapi/v3-current/reporter.yaml post /v1/deadlines
openapi: 3.1.0
info:
  contact:
    name: Discord community
    url: https://discord.gg/DnhqKwkGv3
  description: >-
    Esta es la documentación OpenAPI de Reporter. El binario unificado de
    Reporter ejecuta la API REST (RUN_MODE=api), el worker de generación de
    informes de RabbitMQ (RUN_MODE=worker) o ambos; RUN_MODE=all ejecuta los dos
    en un único proceso para el desarrollo local. Todos los endpoints REST
    documentados aquí solo están disponibles cuando RUN_MODE=api o RUN_MODE=all
    (puerto :4005); el worker (puerto :4006) expone únicamente los endpoints de
    health y readyz.
  license:
    name: Lerian Studio General License
  title: Midaz Reporter API
  version: 4.0.0
servers:
  - url: http://localhost:4005
  - url: https://localhost:4005
security:
  - BearerAuth: []
tags:
  - description: Instancias de informes generados y su ciclo de vida.
    name: Informes
  - description: Definiciones de informes reutilizables.
    name: Plantillas
  - description: Creación interactiva de plantillas de informes.
    name: Constructor de plantillas
  - description: Seguimiento de las fechas de vencimiento de informes programados.
    name: Plazos
  - description: Entradas configuradas que proporcionan datos a los informes.
    name: Fuentes de datos
  - description: Métricas agregadas de informes.
    name: Métricas
  - description: Catálogo publicado de eventos de negocio y políticas de entrega.
    name: Streaming
paths:
  /v1/deadlines:
    post:
      tags:
        - Plazos
      summary: Crear un plazo
      description: >-
        Utiliza este endpoint para crear un plazo con el payload de entrada. Un
        plazo rastrea la fecha de vencimiento de un informe y, opcionalmente, la
        plantilla que debe usarse para cumplirlo.
      operationId: createDeadline
      requestBody:
        content:
          application/json:
            schema:
              properties:
                active:
                  description: Indica si el plazo está activo.
                  examples:
                    - true
                  type: boolean
                color:
                  description: >-
                    Color usado para identificar visualmente el plazo (formato
                    hexadecimal).
                  examples:
                    - '#FF5733'
                  type: string
                description:
                  description: Descripción del plazo.
                  examples:
                    - Monthly regulatory compliance report
                  type: string
                dueDate:
                  description: Fecha y hora de vencimiento del plazo, en formato RFC 3339.
                  examples:
                    - '2026-03-31T23:59:59Z'
                  format: date-time
                  type: string
                frequency:
                  description: >-
                    Con qué frecuencia se repite el plazo (p. ej., `monthly`,
                    `annual`).
                  examples:
                    - monthly
                  type: string
                monthsOfYear:
                  description: Meses del año (1-12) en los que aplica el plazo.
                  examples:
                    - - 1
                      - 6
                  items:
                    format: int64
                    type: integer
                  type:
                    - array
                    - 'null'
                name:
                  description: Nombre legible del plazo.
                  examples:
                    - Monthly Regulatory Report
                  type: string
                notifyDaysBefore:
                  description: >-
                    Número de días antes de la fecha de vencimiento en que
                    comienzan las notificaciones.
                  examples:
                    - 5
                  format: int64
                  type: integer
                templateId:
                  description: >-
                    Plantilla utilizada para generar el informe asociado al
                    plazo.
                  examples:
                    - 00000000-0000-0000-0000-000000000001
                  type: string
                type:
                  description: Tipo del plazo (p. ej., `regulatory`, `custom`).
                  examples:
                    - regulatory
                  type: string
              required:
                - color
                - dueDate
                - frequency
                - name
                - type
              type: object
        description: Cuerpo JSON de la solicitud.
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Deadline'
          description: Creado
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Solicitud incorrecta
        '401':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: No autorizado
        '403':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Prohibido
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: No encontrado
        '409':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Conflicto
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Entidad no procesable
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Error interno del servidor
components:
  schemas:
    Deadline:
      properties:
        active:
          description: Indica si el plazo está activo.
          examples:
            - true
          type: boolean
        color:
          description: >-
            Color usado para identificar visualmente el plazo (formato
            hexadecimal).
          examples:
            - '#FF5733'
          type: string
        createdAt:
          description: Fecha y hora en que se creó el plazo.
          examples:
            - '2026-01-01T00:00:00Z'
          format: date-time
          type: string
        deliveredAt:
          description: Fecha y hora en que se entregó el plazo, si aplica.
          examples:
            - '2026-03-15T10:00:00Z'
          format: date-time
          type: string
        description:
          description: Descripción del plazo.
          examples:
            - Monthly regulatory compliance report
          type: string
        dueDate:
          description: Fecha y hora de vencimiento del plazo, en formato RFC 3339.
          examples:
            - '2026-03-31T23:59:59Z'
          format: date-time
          type: string
        frequency:
          description: Con qué frecuencia se repite el plazo (p. ej., `monthly`, `annual`).
          examples:
            - monthly
          type: string
        id:
          description: Identificador único del plazo (UUID).
          examples:
            - 00000000-0000-0000-0000-000000000000
          type: string
        monthsOfYear:
          description: Meses del año (1-12) en los que aplica el plazo.
          examples:
            - - 1
              - 6
          items:
            format: int64
            type: integer
          type:
            - array
            - 'null'
        name:
          description: Nombre legible del plazo.
          examples:
            - Monthly Regulatory Report
          type: string
        notifyDaysBefore:
          description: >-
            Número de días antes de la fecha de vencimiento en que comienzan las
            notificaciones.
          examples:
            - 5
          format: int64
          type: integer
        status:
          description: Estado actual del plazo (p. ej., `pending`, `overdue`, `delivered`).
          examples:
            - pending
          type: string
        templateId:
          description: >-
            Identificador único de la plantilla usada para cumplir el plazo
            (UUID).
          examples:
            - 00000000-0000-0000-0000-000000000000
          type: string
        templateName:
          description: Nombre de la plantilla usada para cumplir el plazo.
          examples:
            - Financial Template
          type: string
        type:
          description: Tipo del plazo (p. ej., `regulatory`, `custom`).
          examples:
            - regulatory
          type: string
        updatedAt:
          description: Fecha y hora de la última actualización del plazo.
          examples:
            - '2026-01-01T00:00:00Z'
          format: date-time
          type: string
      type: object
    Detail:
      properties:
        code:
          description: >-
            Código de error de dominio estable y legible por máquina, limitado
            al servicio emisor (formato: <SERVICE>-NNNN).
          examples:
            - ERR-0001
          type: string
        detail:
          description: Explicación legible específica de esta instancia del problema.
          examples:
            - Property foo is required but is missing.
          type: string
        errors:
          description: Lista opcional de detalles individuales del error
          examples:
            - - location: body.templateId
                message: expected string to match 'uuid' format
                value: not-a-uuid
          items:
            $ref: '#/components/schemas/ErrorDetail'
          type:
            - array
            - 'null'
        instance:
          description: Referencia URI que identifica la instancia específica del problema.
          examples:
            - https://example.com/error-log/abc123
          format: uri
          type: string
        status:
          description: Código de estado HTTP
          examples:
            - 400
          format: int64
          type: integer
        title:
          description: >-
            Resumen breve y legible del tipo de problema. Este valor no debe
            cambiar entre instancias del error.
          examples:
            - Bad Request
          type: string
        type:
          default: about:blank
          description: Referencia URI a la documentación legible del error.
          examples:
            - https://example.com/errors/example
          format: uri
          type: string
      type: object
    ErrorDetail:
      properties:
        location:
          description: >-
            Lugar donde ocurrió el error, por ejemplo, 'body.items[3].tags' o
            'path.thing-id'
          examples:
            - body.templateId
          type: string
        message:
          description: Texto del mensaje de error
          examples:
            - expected string to match 'uuid' format
          type: string
        value:
          description: Valor en la ubicación indicada
          examples:
            - not-a-uuid
      type: object
  securitySchemes:
    BearerAuth:
      bearerFormat: JWT
      description: >-
        Autenticación mediante token Bearer. Formato: 'Bearer {access_token}'.
        Solo es obligatoria cuando el plugin de autenticación está habilitado.
      scheme: bearer
      type: http

````