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

# Create a signature request

> Uploads a PDF, places signer-owned signature/text fields on it using normalized (0–1) coordinates, and returns one hosted signing link per signer. Requests support one to ten parallel signers. Every field must name its signer key when more than one signer is present. Completed artifacts are certificate-sealed after hardening is enabled. Each signer can receive the request by SMS or WhatsApp, or use the returned signing link.



## OpenAPI

````yaml /openapi.json post /v4/signatures
openapi: 3.0.0
info:
  title: meetergo Platform API
  description: >-
    Scheduling, CRM and invoicing in one API: create users, manage availability
    and bookings, connect calendars, keep contacts and deals in sync, and take
    an offer through to a paid invoice.
  version: 3.274.0
  contact: {}
  termsOfService: https://www.meetergo.com/tos/
servers: []
security: []
tags:
  - name: User V4
    description: Create and manage users in your workspace
  - name: Meeting Type V4
    description: Configure meeting templates with durations, buffers, and conferencing
  - name: availability
    description: Manage weekly schedules and availability settings
  - name: Booking V4
    description: Create new bookings
  - name: Booking Availability V4
    description: Query available time slots for booking
  - name: Appointment V4
    description: Manage existing appointments
  - name: Attendee V4
    description: Manage attendee details and notes
  - name: Calendar Connections V4
    description: Connect and sync external calendars
  - name: Signatures V4
    description: >-
      Send PDFs for e-signature and download the signed, eIDAS-grade document
      (DocuSeal-compatible)
  - name: WhatsApp V4
    description: >-
      Send and receive WhatsApp messages by phone number and read conversation
      history
  - name: One Time Booking Link V4
    description: Create single-use booking links
  - name: availability-exception
    description: Override availability for specific dates
  - name: Booking Link V4
    description: Configure various booking page types
  - name: Personal Page V4
    description: Manage user profile pages
  - name: Handoff V4
    description: Reassign meetings to other hosts
  - name: Calendar Auth V4
    description: OAuth callbacks for calendar providers
  - name: CRM Contacts
    description: >-
      Create, find, and update the people in your CRM, including their custom
      data fields
  - name: CRM Deals
    description: >-
      Create, update, and track deals through pipeline stages (incl. per-deal
      activity history)
  - name: CRM Pipelines
    description: Manage pipelines and their stages
  - name: CRM Tasks
    description: Tasks on contacts, deals and companies
  - name: CRM Notes
    description: Notes on contacts, deals and companies
  - name: CRM Attachments
    description: Files attached to contacts, deals and companies
  - name: CRM Communications
    description: Logged calls, messages and meetings on contacts, deals and companies
  - name: CRM Email Sync
    description: Read the email history synced from connected mailboxes (read-only)
  - name: Data Fields
    description: >-
      Define the custom fields a contact can carry; their `name` is the key used
      in a contact's additionalData
  - name: Invoicing Documents
    description: >-
      Offers and invoices: create a draft, finalize it into a numbered
      e-invoice, send it, record payments, and run Mahnwesen
  - name: Invoicing Products
    description: Reusable products for invoice line items
  - name: Invoicing Settings
    description: Seller details, tax treatment, bank accounts, and number ranges
  - name: Invoicing Recurring
    description: >-
      Recurring schedules, billing runs over completed meetings, buyer prefill,
      and DATEV export
  - name: Queue V4
    description: Round-robin and queue-based routing (Beta)
  - name: Queue User Group V4
    description: Manage queue user groups (Beta)
  - name: Meeting Type Template V4
    description: Reusable meeting type configurations (Beta)
  - name: Attendee Pending V4
    description: Manage pending attendee approvals (Beta)
  - name: Provisional Booking V4
    description: Manage provisional/unconfirmed bookings (Beta)
paths:
  /v4/signatures:
    post:
      tags:
        - Signatures V4
      summary: Create a signature request
      description: >-
        Uploads a PDF, places signer-owned signature/text fields on it using
        normalized (0–1) coordinates, and returns one hosted signing link per
        signer. Requests support one to ten parallel signers. Every field must
        name its signer key when more than one signer is present. Completed
        artifacts are certificate-sealed after hardening is enabled. Each signer
        can receive the request by SMS or WhatsApp, or use the returned signing
        link.
      operationId: create
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateSignatureRequestDto'
      responses:
        '201':
          description: Signature request created with its signer links.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SignatureRequestResponseDto'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          description: Requires an active API Platform subscription.
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
        - ApiUserHeader: []
        - JWT: []
        - ApiKey: []
components:
  schemas:
    CreateSignatureRequestDto:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
          description: Document / submission name.
          example: Order confirmation
        file:
          type: string
          description: The source PDF, base64-encoded (max 20 MB decoded).
          example: JVBERi0xLjcKJ...
        fields:
          minItems: 1
          description: >-
            Fields to place on the document. Areas use normalized (0–1)
            coordinates with a top-left origin and 1-indexed pages — the same
            model as DocuSeal.
          type: array
          items:
            $ref: '#/components/schemas/SignatureFieldDto'
        signers:
          minItems: 1
          maxItems: 10
          description: One to ten parallel signers.
          type: array
          items:
            $ref: '#/components/schemas/SignerInputDto'
        expiresAt:
          type: string
          description: ISO-8601 timestamp after which signing links stop working.
          example: '2026-12-31T23:59:59.000Z'
        language:
          type: string
          enum:
            - en
            - de
          description: 'Signing-page language. Supported: "en", "de". Defaults to English.'
          example: de
        completedRedirectUrl:
          type: string
          format: uri
          description: >-
            URL the signer is sent to after completing (DocuSeal
            `completed_redirect_url`).
          example: https://app.example.com/contracts/123/signed
        requireOtp:
          type: boolean
          description: >-
            Require email OTP verification. This expresses the FES intent and
            requires the Suite plan or above.
          example: true
        sendSignedCopyToSigners:
          type: boolean
          description: >-
            Email every signer the finished document when the request completes.
            Defaults to true. Set false when you distribute the signed document
            yourself.
          example: true
        automaticReminders:
          type: boolean
          description: >-
            Send unfinished signers a reminder every three days, up to three
            reminders.
          example: true
        whatsappTemplateName:
          type: string
          maxLength: 200
          description: >-
            Approved WhatsApp template name used by signers whose delivery
            channel is WhatsApp.
          example: signature_invitation
        whatsappTemplateLanguage:
          type: string
          maxLength: 35
          description: Language code of the selected WhatsApp template.
          example: de
      required:
        - name
        - file
        - fields
        - signers
    SignatureRequestResponseDto:
      type: object
      properties:
        id:
          type: string
          description: Signature request id.
        name:
          type: string
          description: Document name.
        schemaVersion:
          type: number
          description: Persisted envelope schema version.
        revision:
          type: number
          description: Current request revision.
        status:
          enum:
            - pending
            - in_progress
            - finalizing
            - finalization_failed
            - completed
            - cancelled
          type: string
          description: Overall status.
        signers:
          description: The signers and their signing links.
          type: array
          items:
            $ref: '#/components/schemas/SignerResponseDto'
        signedDocumentUrl:
          type: string
          nullable: true
          description: >-
            Time-limited download URL for the signed (audit-paged,
            cryptographically signed) PDF. Present once status is "completed".
        completedAt:
          format: date-time
          type: string
          nullable: true
          description: When all signers completed.
        expiresAt:
          format: date-time
          type: string
          nullable: true
          description: When signing links expire (null = never).
        automaticReminders:
          type: boolean
          description: Whether automatic reminders are enabled.
        createdAt:
          format: date-time
          type: string
          description: Creation time.
      required:
        - id
        - name
        - schemaVersion
        - revision
        - status
        - signers
        - automaticReminders
        - createdAt
    SignatureFieldDto:
      type: object
      properties:
        name:
          type: string
          maxLength: 120
          description: Field name.
          example: signature
        signerKey:
          type: string
          pattern: /^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$/
          description: >-
            Stable signer key that owns this field. Required when the request
            has multiple signers.
          example: customer
        type:
          type: string
          enum:
            - signature
            - initials
            - text
            - date
            - number
          description: Field type. Defaults to "signature".
          example: signature
        areas:
          minItems: 1
          description: One or more placements of this field across the document pages.
          type: array
          items:
            $ref: '#/components/schemas/SignatureAreaDto'
      required:
        - name
        - areas
    SignerInputDto:
      type: object
      properties:
        key:
          type: string
          pattern: /^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$/
          description: >-
            Stable key used to assign fields to this signer. Required for
            multi-signer requests.
          example: customer
        email:
          type: string
          maxLength: 320
          format: email
          description: Signer email address.
          example: john.doe@example.com
        name:
          type: string
          maxLength: 200
          description: Signer display name.
          example: John Doe
        role:
          type: string
          maxLength: 120
          description: Role label, e.g. "First Party".
          example: First Party
        deliveryChannel:
          type: string
          enum:
            - link
            - email
            - sms
            - whatsapp
          description: >-
            How to deliver this signer invitation. Defaults to returning a
            copyable link.
          example: sms
        phone:
          type: string
          maxLength: 40
          description: >-
            Mobile number for SMS or WhatsApp delivery. National numbers use the
            company billing country.
          example: '+491723099442'
    SignerResponseDto:
      type: object
      properties:
        id:
          type: string
          description: Signer id.
        email:
          type: string
          nullable: true
          description: Signer email.
        name:
          type: string
          nullable: true
          description: Signer name.
        role:
          type: string
          nullable: true
          description: Role label.
        key:
          type: string
          nullable: true
          description: Stable field-assignment key.
        status:
          type: string
          description: Signer status.
          enum:
            - pending
            - completed
        invitationDelivery:
          nullable: true
          description: Latest email, SMS, or WhatsApp invitation delivery outcome.
          allOf:
            - $ref: '#/components/schemas/SignatureInvitationDeliveryResponseDto'
        signingUrl:
          type: string
          nullable: true
          description: >-
            The hosted signing link to send to this signer (the DocuSeal
            `embed_src` equivalent).
          example: https://cal.meetergo.com/s/V1StGXR8_Z5jdHi6B-myT
        openedAt:
          format: date-time
          type: string
          nullable: true
          description: When the signer opened the link.
        completedAt:
          format: date-time
          type: string
          nullable: true
          description: When the signer completed signing.
      required:
        - id
        - status
        - signingUrl
    ApiError:
      type: object
      required:
        - statusCode
        - message
      properties:
        statusCode:
          type: integer
          example: 400
        message:
          oneOf:
            - type: string
            - type: array
              items:
                type: string
          description: >-
            A sentence, or the list of field constraints that failed. Validation
            errors name the offending property.
          example:
            - limit must not be greater than 100
        error:
          type: string
          example: BadRequestException
    SignatureAreaDto:
      type: object
      properties:
        x:
          type: number
          minimum: 0
          maximum: 1
          description: Left edge as a fraction of page width (0–1).
          example: 0.1
        'y':
          type: number
          minimum: 0
          maximum: 1
          description: Top edge as a fraction of page height (0–1), from the top.
          example: 0.8
        w:
          type: number
          minimum: 0
          maximum: 1
          description: Width as a fraction of page width (0–1).
          example: 0.3
        h:
          type: number
          minimum: 0
          maximum: 1
          description: Height as a fraction of page height (0–1).
          example: 0.08
        page:
          type: number
          minimum: 1
          description: Page number, 1-indexed (page 1 is the first page).
          example: 1
      required:
        - x
        - 'y'
        - w
        - h
        - page
    SignatureInvitationDeliveryResponseDto:
      type: object
      properties:
        channel:
          type: string
          enum:
            - email
            - sms
            - whatsapp
        phone:
          type: string
          description: Normalized E.164 recipient number.
        status:
          type: string
          enum:
            - pending
            - sent
            - failed
        templateName:
          type: string
        templateLanguage:
          type: string
        sentAt:
          type: string
        failureCode:
          type: string
          description: Stable failure category when the latest attempt failed.
      required:
        - channel
        - status
  responses:
    BadRequest:
      description: >-
        The request did not validate. `message` lists the constraints that
        failed.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
    Unauthorized:
      description: Missing, malformed, or expired credentials.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
    TooManyRequests:
      description: Rate limited. Back off and retry.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
  securitySchemes:
    ApiUserHeader:
      type: apiKey
      in: header
      name: x-meetergo-api-user-id
      description: >-
        User ID to act on behalf of. Platform API Keys only (required with an
        API Key unless the endpoint states otherwise). Requests authenticated
        with a Personal Access Token are rejected if this header names another
        user.
    JWT:
      scheme: bearer
      bearerFormat: JWT
      type: http
      description: JWT Bearer token for standard user authentication
    ApiKey:
      scheme: bearer
      bearerFormat: API Key
      type: http
      description: >-
        Bearer token: a Platform API Key (format: ak_live:<uuid>:<secret>) or a
        Personal Access Token (format: rgo-...). PATs always act as the token
        owner.

````

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