---
title: "POST /appointment-types"
method: POST
path: "/appointment-types"
tags: ["AppointmentTypes"]
---

# POST /appointment-types

`POST /appointment-types`

## Request

- Base URL: `https://api.clinicos.vet/backend/business`
- URL: `https://api.clinicos.vet/backend/business/appointment-types`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/clinicos/apis/pawthosx-business-api-v1/docs/appointment-types/post.ts> (a function with typed inputs; its response is checked against the schema)

## Request body

- CreateAppointmentTypeDto
  - `name` string
  - `description` string, nullable
  - `durationMinutes` union
    - integer
    - string, int32
  - `bufferBeforeMinutes` union
    - integer
    - string, int32
  - `bufferAfterMinutes` union
    - integer
    - string, int32
  - `color` string, nullable
  - `requiresSurgeryRoom` boolean
  - `isGroupVisit` boolean
  - `isCompassionCare` boolean
  - `allowOnlineBooking` boolean: Whether clients may self-book this type online (ITE-430).
  - `excludeFromAutomatedForms` boolean: Never send automated forms or confirmations for this type (ITE-1292).
  - `sortOrder` union
    - integer
    - string, int32
  - `acuity` union: Default triage acuity (1–10) used when this type lands in CareQueue.
    - integer
    - string, int32
  - `defaultFlowId` string, nullable: Chronicle workflow id to start when an appointment of this type is opened.
  - `examTemplateId` string, nullable: Exam template the chronicle exam step renders for this type (PAW-741). Overrides each provider's personal default. Omit/empty = no override.
  - `noteFormat` string, nullable: Generated-note format for visits of this type (PAW-744). Must be a known SoapNoteFormats id. Omit/empty = standard SOAP note.
  - `autoGenerateSoap` boolean: Auto-start SOAP generation when the treatment plan is converted to an invoice (PAW-675). Defaults on when omitted.
  - `autoGenerateDischarge` boolean: Auto-start discharge generation when the SOAP note is approved (PAW-675). Defaults on when omitted.
  - `locationIds` string[], nullable: Location IDs that can accommodate this appointment type (Location Intents).
  - `journeyTemplates` CreateJourneyMilestoneTemplateRequest[], nullable: Journey milestone templates to create for this appointment type.
    - `name` string
    - `type` integer
    - `orderIndex` union
      - integer
      - string, int32
    - `description` string, nullable
    - `estimatedDurationMinutes` union
      - integer
      - string, int32
  - `defaultServices` CreateDefaultServiceInput[], nullable: Default services to create for this appointment type.
    - `serviceCatalogItemId` string, nullable
    - `inventoryItemId` string, nullable
    - `defaultQuantity` union
      - integer
      - string, int32
    - `displayOrder` union
      - integer
      - string, int32

## Response `200`

OK

- AppointmentTypeDto
  - `id` string
  - `name` string
  - `description` string, nullable
  - `durationMinutes` union
    - integer
    - string, int32
  - `bufferBeforeMinutes` union
    - integer
    - string, int32
  - `bufferAfterMinutes` union
    - integer
    - string, int32
  - `color` string, nullable
  - `isActive` boolean
  - `requiresSurgeryRoom` boolean
  - `isGroupVisit` boolean
  - `isCompassionCare` boolean
  - `allowOnlineBooking` boolean: Whether clients may self-book this type online (ITE-430).
  - `excludeFromAutomatedForms` boolean: Never send automated forms or confirmations for this type (ITE-1292).
  - `sortOrder` union
    - integer
    - string, int32
  - `acuity` union: Default triage acuity (1–10) used when this type lands in CareQueue. Null means no default and the entry will use the queue's neutral baseline.
    - integer
    - string, int32
  - `defaultFlowId` string, nullable: Id of the chronicle workflow to start when an appointment of this type is opened. Null falls back to the entity default (`appointment-default`).
  - `examTemplateId` string, nullable: Id of the exam template the chronicle exam step renders for this type (PAW-741). Overrides the provider's personal default; null falls through to that default, then to the standard 7-system view.
  - `noteFormat` string, nullable: Generated-note format for visits of this type (PAW-744). Null = standard four-section SOAP note. Ids come from the code-defined SoapNoteFormats registry (e.g. "quick-visit").
  - `autoGenerateSoap` boolean: Auto-start SOAP generation when the treatment plan is converted to an invoice (PAW-675).
  - `autoGenerateDischarge` boolean: Auto-start discharge generation when the SOAP note is approved (PAW-675).
  - `createdAt` string, date-time
  - `updatedAt` string, date-time
  - `locationIds` string[]: Location IDs that can accommodate this appointment type (Location Intents).
  - `journeyTemplates` JourneyMilestoneTemplateDto[]: Journey milestone templates for this appointment type.
    - `id` string
    - `appointmentTypeId` string
    - `name` string
    - `type` integer
    - `orderIndex` union
      - integer
      - string, int32
    - `description` string, nullable
    - `estimatedDurationMinutes` union
      - integer
      - string, int32
    - `createdAt` string, date-time
    - `updatedAt` string, date-time
  - `defaultServices` AppointmentTypeDefaultServiceDto[]: Default services for this appointment type.
    - `id` string
    - `appointmentTypeId` string
    - `serviceCatalogItemId` string, nullable
    - `inventoryItemId` string, nullable
    - `name` string
    - `code` string, nullable
    - `serviceType` string
    - `unitPrice` union
      - number, double
      - string, double
    - `defaultQuantity` union
      - number, double
      - string, double
    - `displayOrder` union
      - integer
      - string, int32
    - `isActive` boolean
    - `createdAt` string, date-time
    - `updatedAt` string, date-time

## Changes

- **2026-10-11** `f7ab358172d0`: 6 info
  - added the new optional request property `excludeFromAutomatedForms` (media type: application/json)
  - added the new optional request property `excludeFromAutomatedForms` (media type: text/json)
  - added the new optional request property `excludeFromAutomatedForms` (media type: application/*+json)
  - added the optional property `excludeFromAutomatedForms` to the response with the `200` status (media type: text/plain)
  - …2 more
- **2026-08-26** `a57456aa87b0`: 6 info
  - added the new optional request property `allowOnlineBooking` (media type: application/json)
  - added the new optional request property `allowOnlineBooking` (media type: text/json)
  - added the new optional request property `allowOnlineBooking` (media type: application/*+json)
  - added the optional property `allowOnlineBooking` to the response with the `200` status (media type: text/plain)
  - …2 more
- **2026-08-07** `a905bde4e796`: 12 info
  - added the new optional request property `examTemplateId` (media type: application/json)
  - added the new optional request property `examTemplateId` (media type: text/json)
  - added the new optional request property `examTemplateId` (media type: application/*+json)
  - added the new optional request property `noteFormat` (media type: application/json)
  - …8 more

[Operation history](https://skmtc.dev/clinicos/apis/pawthosx-business-api-v1/changes/appointment-types/post.md)

---

[API](https://skmtc.dev/clinicos/apis/pawthosx-business-api-v1.md) - [All operations](https://skmtc.dev/clinicos/apis/pawthosx-business-api-v1/llms.txt) - [OpenAPI document](https://skmtc.dev/clinicos/apis/pawthosx-business-api-v1/revisions/099cf36186e0?raw)
