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

# Create a patient care plan

> Enrolls a clinic patient into a care plan by creating a new patient care plan with an initial status of `CLIENT_CREATED`. You must specify a core care plan and may optionally include add-on plans.

If the patient has a pending `CLIENT_CREATED` core plan that was never paid, it is automatically cancelled and removed — along with its enrollment invoice and any payment links for that invoice — before the new enrollment is created. A patient with any other in-progress or upcoming core plan cannot be enrolled again and the request is rejected.

The specified care plans must be active, match the patient's species, and be available at the patient's clinic. The start date must be in the future (relative to the clinic's timezone).



## OpenAPI

````yaml post /ext/v2/patient-care-plans/
openapi: 3.1.0
info:
  description: ''
  title: NinjaAPI
  version: 2.0.0
servers:
  - url: https://connect.vetcove.com/
security: []
paths:
  /ext/v2/patient-care-plans/:
    post:
      tags:
        - Care Plans
      summary: Create a patient care plan
      description: >-
        Enrolls a clinic patient into a care plan by creating a new patient care
        plan with an initial status of `CLIENT_CREATED`. You must specify a core
        care plan and may optionally include add-on plans.


        If the patient has a pending `CLIENT_CREATED` core plan that was never
        paid, it is automatically cancelled and removed — along with its
        enrollment invoice and any payment links for that invoice — before the
        new enrollment is created. A patient with any other in-progress or
        upcoming core plan cannot be enrolled again and the request is rejected.


        The specified care plans must be active, match the patient's species,
        and be available at the patient's clinic. The start date must be in the
        future (relative to the clinic's timezone).
      operationId: patient_care_plans_create
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExternalPatientCarePlanCreateSchema'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/ExternalPatientCarePlanWithAddOnPlansSchema
          description: Created
      security:
        - ExternalAPIAuth: []
components:
  schemas:
    ExternalPatientCarePlanCreateSchema:
      description: Schema for creating a patient care plan via the external API.
      properties:
        add_on_care_plan_ids:
          description: >-
            Optional list of add-on Care Plan IDs to enroll alongside the core
            plan
          items:
            type: integer
          title: Add On Care Plan Ids
          type: array
        clinic_client_id:
          description: The clinic client ID who will be billed for these care plans
          title: Clinic Client Id
          type: integer
        clinic_patient_id:
          description: The clinic patient ID to enroll into care plans
          title: Clinic Patient Id
          type: integer
        core_plan_id:
          description: The core Care Plan ID to enroll the patient into
          title: Core Plan Id
          type: integer
        is_billed_monthly:
          description: Whether billing is monthly (True) or upfront (False)
          title: Is Billed Monthly
          type: boolean
        next_plan_id:
          anyOf:
            - type: integer
            - type: 'null'
          description: Optional next core Care Plan ID for automatic renewal
          title: Next Plan Id
        should_renew:
          description: Whether the plan should automatically renew at the end of term
          title: Should Renew
          type: boolean
        start_date:
          description: Start date for the enrollment
          format: date
          title: Start Date
          type: string
      required:
        - clinic_patient_id
        - clinic_client_id
        - core_plan_id
        - start_date
        - is_billed_monthly
        - should_renew
      title: ExternalPatientCarePlanCreateSchema
      type: object
    ExternalPatientCarePlanWithAddOnPlansSchema:
      properties:
        add_on_plans:
          description: Add-on patient care plans created alongside the core plan
          items:
            $ref: '#/components/schemas/ExternalPatientCarePlanSchema'
          title: Add On Plans
          type: array
        care_plan_id:
          description: The ID of the Care Plan this patient-specific plan is linked to
          title: Care Plan Id
          type: integer
        care_plan_kind:
          $ref: '#/components/schemas/CarePlanKind'
          description: The type of the care plan
        care_plan_name:
          description: The name of the care plan this patient care plan is linked to
          title: Care Plan Name
          type: string
        clinic_client_id:
          description: >-
            The ID of the clinic client this patient care plan is associated
            with
          title: Clinic Client Id
          type: integer
        clinic_id:
          description: The ID of the clinic this patient care plan is associated with
          title: Clinic Id
          type: integer
        clinic_patient_id:
          description: The ID of the clinic patient this care plan is associated with
          title: Clinic Patient Id
          type: integer
        core_plan_id:
          anyOf:
            - type: integer
            - type: 'null'
          description: >-
            The ID of the core patient care plan this one is linked to, if this
            is an add-on plan
          title: Core Plan Id
        deactivated_at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          description: When this care plan was deactivated, if applicable
          title: Deactivated At
        deactivated_by:
          anyOf:
            - type: string
            - type: 'null'
          description: The name of the user who deactivated the care plan, if applicable
          title: Deactivated By
        end_date:
          description: >-
            End date for the care plan (YYYY-MM-DD). This is non-inclusive,
            meaning a plan ending on 2/1/2026 would not be considered
            active/usable on 2/1/2026.
          format: date
          title: End Date
          type: string
        enrollment_fee:
          description: The enrollment fee of the care plan
          minimum: 0
          title: Enrollment Fee
          type: integer
        id:
          description: The unique identifier for the patient care plan
          title: Id
          type: integer
        invoice_id:
          description: The ID of the invoice created for the care plan enrollment
          title: Invoice Id
          type: integer
        is_billed_monthly:
          description: Whether the care plan is billed monthly or upfront
          title: Is Billed Monthly
          type: boolean
        monthly_cost:
          anyOf:
            - minimum: 0
              type: integer
            - type: 'null'
          description: >-
            The monthly cost of the care plan, in cents. Only applicable to
            monthly billed care plans.
          title: Monthly Cost
        next_payment_date:
          anyOf:
            - format: date
              type: string
            - type: 'null'
          description: The date of the next payment for the care plan, if applicable
          title: Next Payment Date
        next_plan_id:
          anyOf:
            - type: integer
            - type: 'null'
          description: The ID of the next care plan, if applicable
          title: Next Plan Id
        payment_method_id:
          anyOf:
            - type: integer
            - type: 'null'
          description: The ID of the payment method associated with this care plan
          title: Payment Method Id
        plan_cost:
          description: The cost of the care plan
          minimum: 0
          title: Plan Cost
          type: integer
        remaining_balance:
          description: The remaining balance of the care plan, in cents
          title: Remaining Balance
          type: integer
        should_renew:
          description: Whether this care plan will automatically be renewed
          title: Should Renew
          type: boolean
        start_date:
          description: The start date of the care plan
          format: date
          title: Start Date
          type: string
        status:
          anyOf:
            - $ref: '#/components/schemas/PatientCarePlanStatus'
            - const: ''
              type: string
          description: The status of the patient care plan
          title: Status
      required:
        - id
        - clinic_patient_id
        - clinic_id
        - clinic_client_id
        - care_plan_id
        - start_date
        - end_date
        - deactivated_at
        - status
        - core_plan_id
        - next_plan_id
        - should_renew
        - plan_cost
        - enrollment_fee
        - care_plan_name
        - care_plan_kind
        - deactivated_by
        - next_payment_date
        - remaining_balance
        - is_billed_monthly
        - monthly_cost
        - payment_method_id
        - add_on_plans
        - invoice_id
      title: ExternalPatientCarePlanWithAddOnPlansSchema
      type: object
    ExternalPatientCarePlanSchema:
      properties:
        care_plan_id:
          description: The ID of the Care Plan this patient-specific plan is linked to
          title: Care Plan Id
          type: integer
        care_plan_kind:
          $ref: '#/components/schemas/CarePlanKind'
          description: The type of the care plan
        care_plan_name:
          description: The name of the care plan this patient care plan is linked to
          title: Care Plan Name
          type: string
        clinic_client_id:
          description: >-
            The ID of the clinic client this patient care plan is associated
            with
          title: Clinic Client Id
          type: integer
        clinic_id:
          description: The ID of the clinic this patient care plan is associated with
          title: Clinic Id
          type: integer
        clinic_patient_id:
          description: The ID of the clinic patient this care plan is associated with
          title: Clinic Patient Id
          type: integer
        core_plan_id:
          anyOf:
            - type: integer
            - type: 'null'
          description: >-
            The ID of the core patient care plan this one is linked to, if this
            is an add-on plan
          title: Core Plan Id
        deactivated_at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          description: When this care plan was deactivated, if applicable
          title: Deactivated At
        deactivated_by:
          anyOf:
            - type: string
            - type: 'null'
          description: The name of the user who deactivated the care plan, if applicable
          title: Deactivated By
        end_date:
          description: >-
            End date for the care plan (YYYY-MM-DD). This is non-inclusive,
            meaning a plan ending on 2/1/2026 would not be considered
            active/usable on 2/1/2026.
          format: date
          title: End Date
          type: string
        enrollment_fee:
          description: The enrollment fee of the care plan
          minimum: 0
          title: Enrollment Fee
          type: integer
        id:
          description: The unique identifier for the patient care plan
          title: Id
          type: integer
        is_billed_monthly:
          description: Whether the care plan is billed monthly or upfront
          title: Is Billed Monthly
          type: boolean
        monthly_cost:
          anyOf:
            - minimum: 0
              type: integer
            - type: 'null'
          description: >-
            The monthly cost of the care plan, in cents. Only applicable to
            monthly billed care plans.
          title: Monthly Cost
        next_payment_date:
          anyOf:
            - format: date
              type: string
            - type: 'null'
          description: The date of the next payment for the care plan, if applicable
          title: Next Payment Date
        next_plan_id:
          anyOf:
            - type: integer
            - type: 'null'
          description: The ID of the next care plan, if applicable
          title: Next Plan Id
        payment_method_id:
          anyOf:
            - type: integer
            - type: 'null'
          description: The ID of the payment method associated with this care plan
          title: Payment Method Id
        plan_cost:
          description: The cost of the care plan
          minimum: 0
          title: Plan Cost
          type: integer
        remaining_balance:
          description: The remaining balance of the care plan, in cents
          title: Remaining Balance
          type: integer
        should_renew:
          description: Whether this care plan will automatically be renewed
          title: Should Renew
          type: boolean
        start_date:
          description: The start date of the care plan
          format: date
          title: Start Date
          type: string
        status:
          anyOf:
            - $ref: '#/components/schemas/PatientCarePlanStatus'
            - const: ''
              type: string
          description: The status of the patient care plan
          title: Status
      required:
        - id
        - clinic_patient_id
        - clinic_id
        - clinic_client_id
        - care_plan_id
        - start_date
        - end_date
        - deactivated_at
        - status
        - core_plan_id
        - next_plan_id
        - should_renew
        - plan_cost
        - enrollment_fee
        - care_plan_name
        - care_plan_kind
        - deactivated_by
        - next_payment_date
        - remaining_balance
        - is_billed_monthly
        - monthly_cost
        - payment_method_id
      title: ExternalPatientCarePlanSchema
      type: object
    CarePlanKind:
      enum:
        - CORE
        - ADD_ON
        - SERVICE_PACKAGE
      title: CarePlanKind
      type: string
    PatientCarePlanStatus:
      enum:
        - IMPORTED
        - CLIENT_CREATED
        - CLINIC_CREATED
        - ACTIVE
        - TERMINATED
        - PAYMENT_FAILED
        - SUSPENDED
      title: PatientCarePlanStatus
      type: string
  securitySchemes:
    ExternalAPIAuth:
      scheme: bearer
      type: http

````