> ## 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 customer workspace

> Creates a managed customer company, invites its admin, and optionally starts it from an industry template (`templateKey`). Idempotent per `requestId`.



## OpenAPI

````yaml /openapi.json post /v4/partner/customers
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:
  - url: https://api.meetergo.com
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: Documents
    description: Read, create and update Docs pages and spreadsheets
  - name: Partner API
    description: >-
      For meetergo Partners: create and manage customer workspaces, get
      workspace tokens, users, billing and commissions
  - 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/partner/customers:
    post:
      tags:
        - Partner API
      summary: Create a customer workspace
      description: >-
        Creates a managed customer company, invites its admin, and optionally
        starts it from an industry template (`templateKey`). Idempotent per
        `requestId`.
      operationId: createCustomer
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                requestId:
                  type: string
                  format: uuid
                  pattern: >-
                    ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$
                companyName:
                  type: string
                  minLength: 1
                  maxLength: 100
                adminFirstName:
                  type: string
                  minLength: 1
                  maxLength: 100
                adminLastName:
                  type: string
                  minLength: 1
                  maxLength: 100
                adminEmail:
                  type: string
                  maxLength: 100
                  format: email
                  pattern: >-
                    ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
                language:
                  type: string
                  minLength: 2
                  maxLength: 10
                timezone:
                  type: string
                  minLength: 1
                  maxLength: 100
                billingResponsibility:
                  type: string
                  enum:
                    - partner
                    - customer
                suiteTier:
                  type: string
                  enum:
                    - light
                    - suite
                    - premium
                extraEmails:
                  maxItems: 100
                  type: array
                  items:
                    type: string
                    maxLength: 100
                    format: email
                    pattern: >-
                      ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
                partnerRetailPricePerSeatEur:
                  type: string
                  pattern: ^(?:0|[1-9]\d{0,5})(?:\.\d{1,2})?$
                communicationOwner:
                  type: string
                  enum:
                    - partner
                    - meetergo
                contactConsentConfirmed:
                  type: boolean
                  enum:
                    - true
                templateKey:
                  type: string
                  enum:
                    - beauty
                    - craftsmen
                    - insurance
                    - consulting
              required:
                - requestId
                - companyName
                - adminFirstName
                - adminLastName
                - adminEmail
                - language
                - timezone
                - billingResponsibility
                - communicationOwner
                - contactConsentConfirmed
              additionalProperties: false
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  customer:
                    type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                        pattern: >-
                          ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$
                      companyId:
                        type: string
                        format: uuid
                        pattern: >-
                          ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$
                      companyName:
                        type: string
                      admin:
                        type: object
                        properties:
                          firstName:
                            type: string
                          lastName:
                            type: string
                          email:
                            anyOf:
                              - type: string
                              - type: string
                                nullable: true
                                enum:
                                  - null
                          status:
                            type: string
                            enum:
                              - pending
                              - active
                        required:
                          - firstName
                          - lastName
                          - email
                          - status
                        additionalProperties: false
                      tier:
                        type: string
                        enum:
                          - basic
                          - essentials
                          - growth
                          - teams
                          - light
                          - suite
                          - premium
                          - enterprise
                      billingResponsibility:
                        type: string
                        enum:
                          - partner
                          - customer
                      partnerRetailPricePerSeatEur:
                        anyOf:
                          - type: string
                            pattern: ^(?:0|[1-9]\d{0,5})(?:\.\d{1,2})?$
                          - type: string
                            nullable: true
                            enum:
                              - null
                      communicationOwner:
                        type: string
                        enum:
                          - partner
                          - meetergo
                      licensedSeats:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      partnerBillableSeats:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      estimatedMonthlyNetCents:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      activePartnerAccess:
                        type: boolean
                      isPartnerDemo:
                        type: boolean
                      createdAt:
                        format: date-time
                        type: string
                      bookingPageUrl:
                        anyOf:
                          - type: string
                          - type: string
                            nullable: true
                            enum:
                              - null
                    required:
                      - id
                      - companyId
                      - companyName
                      - admin
                      - tier
                      - billingResponsibility
                      - partnerRetailPricePerSeatEur
                      - communicationOwner
                      - licensedSeats
                      - partnerBillableSeats
                      - estimatedMonthlyNetCents
                      - activePartnerAccess
                      - isPartnerDemo
                      - createdAt
                      - bookingPageUrl
                    additionalProperties: false
                  template:
                    anyOf:
                      - type: object
                        properties:
                          key:
                            type: string
                            enum:
                              - beauty
                              - craftsmen
                              - insurance
                              - consulting
                          version:
                            type: integer
                            exclusiveMinimum: true
                            maximum: 9007199254740991
                            minimum: 0
                          meetingTypes:
                            type: array
                            items:
                              type: object
                              properties:
                                id:
                                  type: string
                                  format: uuid
                                  pattern: >-
                                    ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$
                                name:
                                  type: string
                                slug:
                                  type: string
                              required:
                                - id
                                - name
                                - slug
                              additionalProperties: false
                        required:
                          - key
                          - version
                          - meetingTypes
                        additionalProperties: false
                      - type: string
                        nullable: true
                        enum:
                          - null
                  setupStatus:
                    type: string
                    enum:
                      - ready
                      - attention_required
                  setupAttention:
                    type: array
                    items:
                      type: string
                      enum:
                        - customer_billing_setup_failed
                        - booking_page_setup_failed
                        - template_setup_failed
                  adminInviteDelivery:
                    type: string
                    enum:
                      - sent
                      - failed
                  additionalInvites:
                    type: object
                    properties:
                      processedEmails:
                        type: array
                        items:
                          type: string
                      unprocessedEmails:
                        type: array
                        items:
                          type: string
                      deliveryFailedEmails:
                        type: array
                        items:
                          type: string
                    required:
                      - processedEmails
                      - unprocessedEmails
                      - deliveryFailedEmails
                    additionalProperties: false
                required:
                  - customer
                  - template
                  - setupStatus
                  - setupAttention
                  - adminInviteDelivery
                  - additionalInvites
                additionalProperties: false
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
        - PartnerApiKey: []
components:
  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'
    Forbidden:
      description: >-
        Authenticated, but not allowed: the plan does not include this feature,
        or the token is scoped away from it.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
    TooManyRequests:
      description: Rate limited. Back off and retry.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
  schemas:
    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
  securitySchemes:
    PartnerApiKey:
      scheme: bearer
      bearerFormat: Partner API key
      type: http
      description: >-
        Partner API only (/v4/partner/*): a Partner API key (format:
        mgp_<id>_<secret>) from the Partner portal. Its workspace tokens (mgw_…)
        authenticate on the other Platform API endpoints like an API key, for
        one customer workspace.

````

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