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

# Generate a submission document

> Generates a DocuSeal document for a submission. Requires a DocuSeal integration and a configured field on the submission collection.

Generate a DocuSeal document

**Permission:** Requires `manage_forms`.



## OpenAPI

````yaml /api-reference/specs/forms.json post /api/form/submissions/{id}/generate
openapi: 3.1.0
info:
  title: ConveYour API — Forms
  description: Retrieve form definitions and manage form submissions.
  version: 1.0.0
servers:
  - url: https://{subdomain}.conveyour.com
    description: Your organization's ConveYour instance
    variables:
      subdomain:
        default: acme
        description: >-
          Your organization's slug — the subdomain you sign in on. Replace
          `acme` with yours: if you sign in at `bigco.conveyour.com`, enter
          `bigco`.
security:
  - conveyourToken: []
tags:
  - name: Forms
    description: Retrieve form definitions and manage form submissions.
paths:
  /api/form/submissions/{id}/generate:
    post:
      tags:
        - Forms
      summary: Generate a submission document
      description: >-
        Generates a DocuSeal document for a submission. Requires a DocuSeal
        integration and a configured field on the submission collection.


        Generate a DocuSeal document


        **Permission:** Requires `manage_forms`.
      operationId: generateADocusealDocument
      parameters:
        - name: id
          in: path
          required: true
          description: The id identifier.
          schema:
            type: string
        - $ref: '#/components/parameters/teams'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - field
              properties:
                field:
                  description: >-
                    The field name on the submission collection that holds the
                    DocuSeal configuration.
                  type: string
                force:
                  description: >-
                    When `true`, regenerates the document even if one already
                    exists. Default: `false`.
                  type: boolean
      responses:
        '200':
          description: Success.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Envelope'
                  - type: object
                    properties:
                      data:
                        $ref: '#/components/schemas/GeneratedSubmission'
              example:
                status: ok
                message: Submission generated successfully
                data:
                  id: SUBMISSION_ID
                  docuseal_id: ...
                  status: pending
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  parameters:
    teams:
      name: teams[]
      in: query
      description: >-
        Team scope for the request, as one or more team ObjectIds. The brackets
        are required: PHP keeps only the last value for a repeated plain key, so
        `teams=A&teams=B` silently resolves to B alone. On requests with a JSON
        body you may send `teams` (no brackets) in the body instead.


        **Values that are not valid ObjectIds are silently ignored** — a
        mistyped team ID behaves as if no team was sent. See the [teams section
        of the API conventions guide](/guides/api-conventions#team-scoping).
      style: form
      explode: true
      schema:
        type: array
        items:
          type: string
      example:
        - 64a1b2c3d4e5f6a7b8c9d0ff
  schemas:
    Envelope:
      type: object
      description: The common response envelope shared by all ConveYour endpoints.
      properties:
        status:
          type: string
          enum:
            - ok
            - failed
          description: '`ok` on success, `failed` on error.'
        message:
          type: string
          description: Human-readable description of the result.
        data:
          description: >-
            The response payload — an object or an array depending on the
            endpoint.
    GeneratedSubmission:
      type: object
      description: >-
        Result of generating a remote e-signature submission. The payload is
        produced by the DocuSeal integration and passed through unchanged, so
        its keys are defined by that provider and have not been verified field
        by field.
  responses:
    Forbidden:
      description: >-
        The token is missing or invalid, or the service account behind it lacks
        the permission this endpoint requires.
      content:
        application/json:
          example:
            status: failed
            message: Lacking necessary permission add_contacts
            data:
              permission: add_contacts
    NotFound:
      description: No record matched the supplied ID.
      content:
        application/json:
          example:
            status: failed
            message: Contact not found
            data: []
  securitySchemes:
    conveyourToken:
      type: apiKey
      in: header
      name: x-conveyour-token
      description: >-
        Your API key token. Contacts endpoints require a **Server-only — Full
        API** key — see [Authentication](/quickstart).

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.