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

# Create Tenant

> Create a new tenant



## OpenAPI

````yaml https://api.voxo.co/v2/docs/openapi.json post /v2/admin/tenants/
openapi: 3.1.0
info:
  title: VOXO API
  description: VOXO Communication Platform API
  version: 2.0.0
servers:
  - url: https://api.voxo.co
security:
  - bearerAuth: []
paths:
  /v2/admin/tenants/:
    post:
      tags:
        - Tenants
      summary: Create Tenant
      description: Create a new tenant
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  minLength: 3
                  description: Tenant name
                timezoneId:
                  type: number
                  exclusiveMinimum: 0
                  description: Timezone ID
                partnerId:
                  type: number
                  exclusiveMinimum: 0
                  description: Partner ID
                billingStartDate:
                  type: string
                  format: date
                  pattern: >-
                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                  description: >-
                    Billing start date (ISO date, must be 1st, 5th, 10th, 15th,
                    or 20th)
                externalBillingId:
                  description: External billing ID
                  type: string
                  pattern: ^[1-9]\d*$
                billingV2:
                  description: Enable billing V2
                  type: boolean
                healthcareVertical:
                  description: Healthcare vertical
                  type: string
                billingInfo:
                  description: Billing contact information
                  type: object
                  properties:
                    firstName:
                      type: string
                      minLength: 3
                      description: First name
                    lastName:
                      type: string
                      minLength: 3
                      description: Last name
                    email:
                      type: string
                      format: email
                      pattern: >-
                        ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
                      description: Email address
                    city:
                      type: string
                      minLength: 3
                      description: City
                    street:
                      type: string
                      minLength: 3
                      description: Street address
                    phoneNumber:
                      type: string
                      pattern: ^[1-9]\d{9}$
                      description: Phone number
                    postalCode:
                      type: string
                      pattern: ^\d{5}(-\d{4})?$
                      description: Postal code
                    state:
                      type: string
                      pattern: >-
                        ^(A[KLRZ]|C[AOT]|D[EC]|F[LM]|G[AU]|HI|I[ADL]|K[SY]|LA|M[ADEHINOST]|N[CDEHJMVY]|O[HKR]|P[AR]|RI|S[CD]|T[NX]|UT|V[AIT]|W[AIVY])$
                      description: US state code
                  required:
                    - firstName
                    - lastName
                    - email
                    - city
                    - street
                    - phoneNumber
                    - postalCode
                    - state
                  additionalProperties: false
              required:
                - name
                - timezoneId
                - partnerId
                - billingStartDate
              additionalProperties: false
      responses:
        '200':
          description: Created tenant
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: number
                    description: Tenant ID
                  name:
                    type: string
                    description: Tenant name
                  tenantCode:
                    type: string
                    description: Tenant code
                  externalBillingId:
                    anyOf:
                      - type: string
                      - type: 'null'
                    description: External billing ID
                  billingStartDate:
                    anyOf:
                      - type: string
                      - type: 'null'
                    description: Billing start date
                  conduitPrefix:
                    anyOf:
                      - type: string
                      - type: 'null'
                    description: Conduit prefix
                  brandId:
                    anyOf:
                      - type: string
                      - type: 'null'
                    description: Brand ID
                  brandVertical:
                    anyOf:
                      - type: string
                      - type: 'null'
                    description: Brand vertical
                  resellerType:
                    anyOf:
                      - type: string
                      - type: 'null'
                    description: Reseller type (RESELLER or WHITELABEL)
                  globalQueueActions:
                    anyOf:
                      - type: number
                      - type: 'null'
                    description: Global queue actions flag
                  queuePauseReasons:
                    anyOf:
                      - type: array
                        items:
                          type: string
                      - type: 'null'
                    description: Queue pause reasons
                  parkinglotTimeout:
                    anyOf:
                      - type: number
                      - type: 'null'
                    description: Parking lot timeout in seconds
                  incomingRingsCount:
                    anyOf:
                      - type: number
                      - type: 'null'
                    description: Incoming rings count
                  recordingStorage:
                    anyOf:
                      - type: string
                      - type: 'null'
                    description: Recording storage type (DEFAULT or AWS3)
                  recordingHost:
                    anyOf:
                      - type: string
                      - type: 'null'
                    description: Recording host URL
                  recordingUser:
                    anyOf:
                      - type: string
                      - type: 'null'
                    description: Recording storage username
                  recordingPassword:
                    anyOf:
                      - type: string
                      - type: 'null'
                    description: Recording storage password
                  recordingDir:
                    anyOf:
                      - type: string
                      - type: 'null'
                    description: Recording storage directory
                  salesforceDomain:
                    anyOf:
                      - type: string
                      - type: 'null'
                    description: Salesforce domain URL
                  salesforceCTITasks:
                    anyOf:
                      - type: string
                      - type: 'null'
                    description: Salesforce CTI tasks setting
                  autoPortReject:
                    anyOf:
                      - type: number
                      - type: 'null'
                    description: Auto port reject flag
                  callWaiting:
                    anyOf:
                      - type: number
                      - type: 'null'
                    description: Call waiting flag
                  disabled:
                    type: number
                    description: Whether tenant is disabled (1 = yes, 0 = no)
                  enableSoftphonePark:
                    anyOf:
                      - type: number
                      - type: 'null'
                    description: Enable softphone park flag
                  isResidential:
                    anyOf:
                      - type: number
                      - type: 'null'
                    description: Whether tenant is residential
                  mfaEnabled:
                    anyOf:
                      - type: number
                      - type: 'null'
                    description: Whether MFA is enabled
                  recordUserSessions:
                    anyOf:
                      - type: number
                      - type: 'null'
                    description: Whether user sessions are recorded
                  sameRing:
                    anyOf:
                      - type: number
                      - type: 'null'
                    description: Same ring flag
                  forceVoicemailPin:
                    anyOf:
                      - type: number
                      - type: 'null'
                    description: Force voicemail PIN flag
                  billingV2:
                    anyOf:
                      - type: number
                      - type: 'null'
                    description: Whether billing V2 is enabled
                  timezone:
                    anyOf:
                      - type: object
                        properties:
                          id:
                            type: number
                            description: Timezone ID
                          name:
                            type: string
                            description: Timezone name
                        required:
                          - id
                          - name
                        additionalProperties: false
                      - type: 'null'
                    description: Timezone details
                  musicOnHold:
                    anyOf:
                      - type: object
                        properties:
                          id:
                            type: number
                            description: Music on hold ID
                          name:
                            type: string
                            description: Music on hold name
                        required:
                          - id
                          - name
                        additionalProperties: false
                      - type: 'null'
                    description: Music on hold details
                  routingProfile:
                    anyOf:
                      - type: object
                        properties:
                          id:
                            type: number
                            description: Routing profile ID
                          name:
                            type: string
                            description: Routing profile name
                        required:
                          - id
                          - name
                        additionalProperties: false
                      - type: 'null'
                    description: Routing profile details
                  partner:
                    anyOf:
                      - type: object
                        properties:
                          id:
                            type: number
                            description: Partner ID
                          name:
                            type: string
                            description: Partner name
                          tenantId:
                            type: number
                            description: Partner tenant ID
                        required:
                          - id
                          - name
                          - tenantId
                        additionalProperties: false
                      - type: 'null'
                    description: Partner details
                  branch:
                    anyOf:
                      - type: object
                        properties:
                          id:
                            type: number
                            description: Default branch ID
                          name:
                            type: string
                            description: Default branch name
                        required:
                          - id
                          - name
                        additionalProperties: false
                      - type: 'null'
                    description: Default branch details
                  isResellerAccount:
                    type: number
                    description: Whether this is a reseller account (1 = yes, 0 = no)
                  parkinglotCount:
                    anyOf:
                      - type: number
                      - type: 'null'
                    description: Number of parking lot spaces
                  notes:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: number
                          description: Note ID
                        name:
                          anyOf:
                            - type: string
                            - type: 'null'
                          description: Author name
                        note:
                          type: string
                          description: Note content
                        userId:
                          type: number
                          description: Author user ID
                      required:
                        - id
                        - name
                        - note
                        - userId
                      additionalProperties: false
                    description: Account notes
                  products:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: number
                          description: Product pricing ID
                        productId:
                          type: number
                          description: Product ID
                        name:
                          anyOf:
                            - type: string
                            - type: 'null'
                          description: Product name
                        description:
                          anyOf:
                            - type: string
                            - type: 'null'
                          description: Product description
                        price:
                          type: string
                          description: Product price
                        customQuantity:
                          type: number
                          description: Custom quantity
                        customDescription:
                          anyOf:
                            - type: string
                            - type: 'null'
                          description: Custom description
                        isCustom:
                          anyOf:
                            - type: boolean
                            - type: 'null'
                          description: Whether product is custom
                        tenantId:
                          type: number
                          description: Tenant ID
                      required:
                        - id
                        - productId
                        - name
                        - description
                        - price
                        - customQuantity
                        - customDescription
                        - isCustom
                        - tenantId
                      additionalProperties: false
                    description: Product pricing entries
                  integrations:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: number
                          description: Integration ID
                        name:
                          type: string
                          description: Integration name
                        category:
                          anyOf:
                            - type: string
                            - type: 'null'
                          description: Integration category
                      required:
                        - id
                        - name
                        - category
                      additionalProperties: false
                    description: Active integrations
                  billingInfo:
                    anyOf:
                      - type: object
                        properties:
                          firstName:
                            type: string
                            description: Billing contact first name
                          lastName:
                            type: string
                            description: Billing contact last name
                          email:
                            type: string
                            description: Billing contact email
                          phoneNumber:
                            type: string
                            description: Billing contact phone number
                          street:
                            type: string
                            description: Billing street address
                          city:
                            type: string
                            description: Billing city
                          state:
                            type: string
                            description: Billing state code
                          postalCode:
                            type: string
                            description: Billing postal code
                        required:
                          - firstName
                          - lastName
                          - email
                          - phoneNumber
                          - street
                          - city
                          - state
                          - postalCode
                        additionalProperties: false
                      - type: 'null'
                    description: Billing contact info mapped from QuickBooks customer
                  conduits:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: number
                          description: Destination tenant ID
                        name:
                          type: string
                          description: Destination tenant name
                        conduitPrefix:
                          anyOf:
                            - type: string
                            - type: 'null'
                          description: Conduit prefix
                      required:
                        - id
                        - name
                        - conduitPrefix
                      additionalProperties: false
                    description: Configured conduits
                required:
                  - id
                  - name
                  - tenantCode
                  - externalBillingId
                  - billingStartDate
                  - conduitPrefix
                  - brandId
                  - brandVertical
                  - resellerType
                  - globalQueueActions
                  - queuePauseReasons
                  - parkinglotTimeout
                  - incomingRingsCount
                  - recordingStorage
                  - recordingHost
                  - recordingUser
                  - recordingPassword
                  - recordingDir
                  - salesforceDomain
                  - salesforceCTITasks
                  - autoPortReject
                  - callWaiting
                  - disabled
                  - enableSoftphonePark
                  - isResidential
                  - mfaEnabled
                  - recordUserSessions
                  - sameRing
                  - forceVoicemailPin
                  - billingV2
                  - timezone
                  - musicOnHold
                  - routingProfile
                  - partner
                  - branch
                  - isResellerAccount
                  - parkinglotCount
                  - notes
                  - products
                  - integrations
                  - billingInfo
                  - conduits
                additionalProperties: false
        '400':
          description: Error response
          content:
            application/json:
              schema:
                type: object
                properties:
                  name:
                    type: string
                  message:
                    type: string
                  code:
                    type: number
                  validationErrors:
                    type: array
                    items:
                      type: string
                required:
                  - name
                  - message
                  - code
                additionalProperties: false
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````