# Update a service (partial)

Method to partially update a service

Endpoint: PATCH /locations/{location_id}/services/{service_id}
Version: 1.0.0
Security: BearerPartnerUser

## Security:

  - `BearerPartnerUser` (unknown)
    http bearer Bearer {PartnerToken}, User {UserToken}

## Path parameters:

  - `location_id` (number, required)
    location ID

  - `service_id` (number, required)
    Service ID

## Header parameters:

  - `Accept` (string, required)
    e.g. application/vnd.api.v2+json

  - `Content-Type` (string, required)
    application/json

  - `Authorization` (string, required)
    Bearer partner_token, User user_token

## Request fields (application/json):

  - `title` (string, required)
    Service name

  - `booking_title` (string, required)
    Service name for appointment

  - `category_id` (number, required)
    ID service category

  - `price_min` (number, required)
    Minimum cost of the service

  - `price_max` (number, required)
    Maximum cost of the service

  - `duration` (number, required)
    Service duration, default value is 3600

  - `technical_break_duration` (any)
    Technical break duration in seconds.
- If not provided, defaults to null
- null = use location default (Settings → Appointment Log → Technical Breaks)
- Must be in multiples of 300 (5-minute intervals)
- Maximum value is 3600 (1 hour)

  - `discount` (number)
    Service discount

  - `comment` (string)
    Comment on the service

  - `is_multi` (boolean, required)
    false - Appointment, true - Event

  - `tax_variant` (number, required)
    Bill ID

  - `vat_id` (number, required)
    VAT ID

  - `is_need_limit_date` (boolean, required)
    The service is available for a limited time

  - `date_from` (string)
    Service availability start date (YYYY-MM-DD)

  - `date_to` (string)
    Service availability end date (YYYY-MM-DD)

  - `seance_search_start` (number, required)
    Start of period is the appointment available, in seconds

  - `seance_search_finish` (number, required)
    End of period is the appointment available, in seconds

  - `step` (number, required)
    Display interval of slots, in seconds

  - `seance_search_step` (number, required)
    Search interval of slots, in seconds

  - `weight` (number)
    Service weight (used to sort services when displayed)

  - `active` (number)
    1 - available for online booking, 0 - not available

  - `api_id` (string)
    External Service ID

  - `staff` (array)
    List of team members providing the service and session duration

  - `staff.id` (number)
    team member ID

  - `staff.seance_length` (number)
    Service duration (multiple of 15 minutes)

## Response 200:

  - `200` (unknown)
    OK

## Response 200 fields (application/json):

  - `success` (boolean)
    Execution success status (true)

  - `data` (object)

  - `data.title` (string)
    Service name

  - `data.booking_title` (string)
    Service name for appointment

  - `data.category_id` (number)
    ID service category

  - `data.price_min` (number)
    Minimum cost of the service

  - `data.price_max` (number)
    Maximum cost of the service

  - `data.duration` (number)
    Service duration, default value is 3600

  - `data.technical_break_duration` (any)
    Technical break duration in seconds.
- null = use location default
- Value in multiples of 300 (5-minute intervals)

  - `data.discount` (number)
    Service discount

  - `data.comment` (string)
    Comment on the service

  - `data.is_multi` (boolean)
    false - Appointment, true - Event

  - `data.tax_variant` (number)
    Bill ID

  - `data.vat_id` (number)
    VAT ID

  - `data.is_need_limit_date` (boolean)
    The service is available for a limited time

  - `data.date_from` (string)
    Service availability start date (YYYY-MM-DD)

  - `data.date_to` (string)
    Service availability end date (YYYY-MM-DD)

  - `data.seance_search_start` (number)
    Start of period is the appointment available, in seconds

  - `data.seance_search_finish` (number)
    End of period is the appointment available, in seconds

  - `data.step` (number)
    Display interval of slots, in seconds

  - `data.seance_search_step` (number)
    Search interval of slots, in seconds

  - `data.weight` (number)
    Service weight (used to sort services when displayed)

  - `data.active` (number)
    1 - available for online booking, 0 - not available

  - `data.api_id` (string)
    External Service ID

  - `data.print_title` (string)
    Service title for printing

  - `data.service_type` (number)
    Service type

  - `data.api_service_id` (number)
    External API service ID

  - `data.repeat_visit_days_step` (string | null)
    Repeat visit days step

  - `data.schedule_template_type` (number)
    Schedule template type

  - `data.online_invoicing_status` (number)
    Online invoicing status

  - `data.is_abonement_autopayment_enabled` (number)
    Is membership autopayment enabled (1/0)

  - `data.autopayment_before_visit_time` (number)
    Autopayment before visit time

  - `data.abonement_restriction_value` (number)
    Membership restriction value

  - `data.is_chain` (boolean)
    Is chain service

  - `data.is_price_managed_only_in_chain` (boolean)
    Is price managed only in chain

  - `data.is_comment_managed_only_in_chain` (boolean)
    Is comment managed only in chain

  - `data.price_prepaid_amount` (number)
    Prepaid amount

  - `data.price_prepaid_percent` (number)
    Prepaid percent

  - `data.id` (number)
    Service ID

  - `data.salon_service_id` (number)
    Location service ID

  - `data.prepaid` (string)
    Prepaid status (forbidden/optional/required)

  - `data.capacity` (number)
    Service capacity

  - `data.image_group` (array)
    Image group

  - `data.dates` (array)
    Service dates

  - `data.resources` (array)
    Service resources

  - `data.is_online` (boolean)
    Is available for online booking

  - `data.staff` (array)
    List of team members providing the service and session duration

  - `data.staff.id` (number)
    team member ID

  - `data.staff.seance_length` (number)
    Service duration (multiple of 15 minutes)

  - `data.staff.technological_card_id` (number | null)
    Technological card ID

  - `meta` (array)
    Metadata (empty array)

## Response 401:

  - `401` (unknown)
    Unauthorized

## Response 401 fields (application/json):

  - `success` (boolean)
    Response status.
    Example: false

  - `data` (object | null)
    Response data.
    Example: null

  - `meta` (object)
    Additional response data.

  - `meta.message` (string)
    Error message.
    Example: Authentication needed.

## Response 403:

  - `403` (unknown)
    Forbidden

## Response 403 fields (application/json):

  - `success` (boolean)
    Response status.
    Example: false

  - `data` (object | null)
    Response data.
    Example: null

  - `meta` (object)
    Additional response data.

  - `meta.message` (string)
    Error message.
    Example: Access denied.

## Response 404:

  - `404` (unknown)
    Not Found

## Response 404 fields (application/json):

  - `success` (boolean)
    Response status.
    Example: false

  - `data` (object | null)
    Response data.
    Example: null

  - `meta` (object | array)
    Additional response data (empty object or empty array)
    Example: {}

