# Update a Practitioner

Updates a practitioner's identity, contact and notification fields.
`notifications` is deep-merged: any key absent at any level is left untouched. Sending `{"notifications":{"appointment_cancelled":{"sms":true}}}` sets that one channel and leaves `appointment_cancelled.email` and the other events exactly as they were.
`notifications.video_appointment.email` differs from the appointment flags: rather than firing on an event, it controls whether the practitioner is offered as a recipient when a video consultation invitation is sent.

Endpoint: PATCH /v1/practitioners/{id}
Version: 1.0.0
Security: apiKeyAuth, practiceGroupId

## Security:

  - `apiKeyAuth` (unknown)
    apiKey in header x-api-key

  - `practiceGroupId` (unknown)
    apiKey in header x-practice-group-id

## Path parameters:

  - `id` (string, required)

## Request fields (application/json):

  - `first_name` (string)

  - `last_name` (string)

  - `title` (string)
    Enum: "unknown", "mr", "ms", "mrs", "miss", "dr", "prof", "mx", "sir", "dame", "lord", "lady", "rev", "maj", "col"

  - `sex` (string)
    Enum: "male", "female", "other"

  - `contact_email` (string)

  - `contact_number` (string)

  - `notifications` (object)

  - `notifications.appointment_confirmed` (object)

  - `notifications.appointment_confirmed.email` (boolean)

  - `notifications.appointment_confirmed.sms` (boolean)

  - `notifications.appointment_cancelled` (object)

  - `notifications.appointment_cancelled.email` (boolean)

  - `notifications.appointment_cancelled.sms` (boolean)

  - `notifications.appointment_rescheduled` (object)

  - `notifications.appointment_rescheduled.email` (boolean)

  - `notifications.appointment_rescheduled.sms` (boolean)

  - `notifications.video_appointment` (object)

  - `notifications.video_appointment.email` (boolean)

## Response 200:

  - `200` (unknown)
    Ok

## Response 200 fields (application/json):

  - `data` (object, required)

  - `data.id` (string, required)

  - `data.first_name` (string, required)

  - `data.last_name` (string, required)

  - `data.title` (string, required)
    Enum: "unknown", "mr", "ms", "mrs", "miss", "dr", "prof", "mx", "sir", "dame", "lord", "lady", "rev", "maj", "col"

  - `data.sex` (string, required)
    Enum: "male", "female", "other"

  - `data.ehr_partner_name` (string, required)

  - `data.contact_email` (string, required)

  - `data.contact_number` (string, required)

  - `data.notifications` (object, required)

  - `data.notifications.appointment_confirmed` (object, required)

  - `data.notifications.appointment_confirmed.email` (boolean, required)

  - `data.notifications.appointment_confirmed.sms` (boolean, required)

  - `data.notifications.appointment_cancelled` (object, required)

  - `data.notifications.appointment_cancelled.email` (boolean, required)

  - `data.notifications.appointment_cancelled.sms` (boolean, required)

  - `data.notifications.appointment_rescheduled` (object, required)

  - `data.notifications.appointment_rescheduled.email` (boolean, required)

  - `data.notifications.appointment_rescheduled.sms` (boolean, required)

  - `data.notifications.video_appointment` (object, required)

  - `data.notifications.video_appointment.email` (boolean, required)

  - `data.archived_at` (string, required)

  - `data.created_at` (string, required)

  - `data.updated_at` (string, required)

## Response 400:

  - `400` (unknown)
    Validation error

## Response 400 fields (application/json):

  - `error` (boolean, required)
    Example: true

  - `statusCode` (number, required)
    Example: 400

  - `message` (array, required)

  - `message.code` (string, required)
    Example: invalid_type

  - `message.expected` (string, required)
    Example: string

  - `message.path` (array, required)
    Example: ["patient_id"]

  - `message.message` (string, required)
    Example: Required

## Response 401:

  - `401` (unknown)
    Unauthorised

## Response 404:

  - `404` (unknown)
    Not found

## Response 429:

  - `429` (unknown)
    Too Many Requests

## Response 500:

  - `500` (unknown)
    Unknown error

