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

# Crear suscripción

> Inscribe a alguien en un formulario.



## OpenAPI

````yaml /es/marketing-addons-api/api-reference/openapi-marketing-addons.json post /v1/forms/subscriptions
openapi: 3.0.3
info:
  title: 'Notifique API: Formularios (complemento de marketing)'
  description: >-
    API v1 para **formularios de marketing** (plantillas: EN BLANCO, CONTACTO,
    ENCUESTA, LISTA DE ESPERA, BOLETÍN) en `/v1/forms`.


    **Autenticación:** `Authorization: Bearer sk_live_xxxxx` o encabezado
    `x-api-key`.


    **Alcances:**

    - **forms:manage**, listar, crear, actualizar y eliminar formularios; listar
    inscripciones.

    - **formularios:enviar**: crea suscripciones, confirma la doble suscripción
    y cancela.


    **Validación:** Los envíos de API se validan según el esquema de formulario
    `hostedPageForm`.


    **Webhooks:** `form.submitted`, `form.confirmed`, `form.unsubscribed`.


    **403** con `code: ONBOARDING_REQUIRED` si la incorporación no se completa.
  version: 1.0.0
servers:
  - url: https://api.notifique.dev
    description: Producción
security:
  - ntfAddonsBearerAuth: []
  - ntfAddonsApiKeyHeader: []
tags:
  - name: Forms
    description: >-
      Formularios de marketing unificados (`/v1/forms/*`). Alcances:
      **formularios:administrar**, **formularios:enviar**.
paths:
  /v1/forms/subscriptions:
    post:
      tags:
        - Forms
      summary: Crear suscripción
      description: Inscribe a alguien en un formulario.
      operationId: ntfAddons_postV1FormsSubscriptions
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NtfAddons_FormSubscribeRequest'
      responses:
        '200':
          description: Suscrito, duplicado o SALTADO
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NtfAddons_FormSubscribeEnvelope'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFoundForm'
components:
  schemas:
    NtfAddons_FormSubscribeRequest:
      type: object
      required:
        - listId
      properties:
        listId:
          type: string
          description: ID de formulario (20 a 36 caracteres alfanuméricos)
          minLength: 20
          maxLength: 36
          pattern: ^[a-zA-Z0-9]+$
        email:
          type: string
        name:
          type: string
        phone:
          type: string
        extraData:
          type: object
          additionalProperties: true
          description: Campos adicionales asignados en hostingPageForm
        preferences:
          type: object
          additionalProperties:
            type: string
          description: 'Boletín: reemplaza las preferencias existentes'
    NtfAddons_FormSubscribeEnvelope:
      type: object
      properties:
        success:
          type: boolean
          example: true
        data:
          $ref: '#/components/schemas/NtfAddons_WaitlistSubscribeData'
    NtfAddons_WaitlistSubscribeData:
      oneOf:
        - type: object
          properties:
            subscriptionId:
              type: string
              nullable: true
            status:
              type: string
              enum:
                - SKIPPED
            message:
              type: string
          required:
            - status
        - type: object
          properties:
            subscriptionId:
              type: string
            status:
              type: string
              enum:
                - PENDING_CONFIRMATION
                - CONFIRMED
                - ACTIVE
                - UNSUBSCRIBED
                - CANCELLED
            queuePosition:
              type: integer
              nullable: true
            subscribedAt:
              type: string
              format: date-time
            confirmedAt:
              type: string
              format: date-time
              nullable: true
            confirmationToken:
              type: string
              description: Só com doble suscripción
          required:
            - subscriptionId
            - status
    NtfAddons_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).
      required:
        - success
        - error
        - message
        - code
  responses:
    BadRequest:
      description: Validación
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/NtfAddons_ErrorResponse'
    Unauthorized:
      description: Clave API faltante o no válida
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/NtfAddons_ErrorResponse'
    PaymentRequired:
      description: Plan vencido o espacio de trabajo suspendido
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/NtfAddons_ErrorResponse'
    Forbidden:
      description: Alcance insuficiente o incorporación incompleta (`ONBOARDING_REQUIRED`)
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/NtfAddons_ErrorResponse'
    NotFoundForm:
      description: Formulario no encontrado
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/NtfAddons_ErrorResponse'
  securitySchemes:
    ntfAddonsBearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key
      description: 'Autorización: Portador sk_live_xxxxx'
    ntfAddonsApiKeyHeader:
      type: apiKey
      in: header
      name: x-api-key

````