» Labour Profiles PATCH API Documentation

Update Labour Profile: /labour-profiles/{labour_profile_uuid}

PATCH
https://dev-api.exsited.com/api/v3/labour-profiles/{labour_profile_uuid}
Try It Out
Purpose

This API is used to update an existing labour profile, allowing modification of its core details such as name, display name, booking limits, tax configuration, currency, and optionally its associated sessions, pricing structures, and availability schedules. It supports partial updates, enabling consumers to update only specific fields without affecting other existing data.

Use Case

This endpoint is typically used when an administrator or operations manager needs to modify an existing labour profile configuration, such as renaming a profile, changing tax inclusivity, adjusting booking limits, updating session schedules, modifying hourly pricing, or managing labour availability without recreating the entire profile.

Path Parameters
AttributeTypeDescription
labour_profile_uuidUUIDUnique identifier of the labour profile to be updated
Query Parameters

This endpoint does not support query parameters

Request Body
{
  "labour_profile": {
    "name": "string",
    "display_name": "string",
    "max_booking_limit": "integer",
    "tax_inclusive": "boolean",
    "currency": "string",
    "tax": {
      "uuid": "uuid",
      "code": "string",
      "rate": "decimal"
    },
    "labour_profile_sessions": [
      {
        "operation": "ADD | UPDATE | DELETE",
        "uuid": "uuid",
        "name": "string",
        "start_date": "datetime",
        "end_date": "datetime",
        "labour_profile_session_prices": [
          {
            "uuid": "uuid",
            "price": "decimal",
            "enabled_pro_rata": "boolean",
            "price_type": "string",
            "pricing_level": "string",
            "labour_profile_session_price_hours": [
              {
                "operation": "ADD | UPDATE | DELETE",
                "uuid": "uuid",
                "start_time": "time",
                "end_time": "time",
                "price": "decimal"
              }
            ]
          }
        ],
        "labour_profile_session_availability": [
          {
            "operation": "ADD | UPDATE | DELETE",
            "uuid": "uuid",
            "start_time": "time",
            "end_time": "time",
            "preferred_day": "string"
          }
        ]
      }
    ]
  }
}
AttributeTypeDescription
labour_profileObjectRoot object containing labour profile update details
labour_profile.nameStringInternal name of the labour profile
labour_profile.display_nameStringUser-facing display name of the labour profile
labour_profile.max_booking_limitIntegerMaximum number of allowed bookings for the profile
labour_profile.tax_inclusiveBooleanIndicates whether prices include tax
labour_profile.currencyStringCurrency code used for pricing
labour_profile.taxObjectTax configuration associated with the labour profile
labour_profile.tax.uuidUUIDUnique identifier of the tax
labour_profile.tax.codeStringTax code reference
labour_profile.tax.rateDecimalTax rate applied to pricing
labour_profile.labour_profile_sessionsArrayCollection of sessions linked to the labour profile
labour_profile_sessions.operationStringAction to perform on the session (ADD, UPDATE, DELETE)
labour_profile_sessions.uuidUUIDUnique identifier of the session (required for update/delete)
labour_profile_sessions.nameStringName of the labour profile session
labour_profile_sessions.start_dateDatetimeSession start date
labour_profile_sessions.end_dateDatetimeSession end date
labour_profile_session_pricesArrayPricing configurations for the session
labour_profile_session_prices.priceDecimalBase price for the session
labour_profile_session_prices.enabled_pro_rataBooleanIndicates whether pro-rata pricing is enabled
labour_profile_session_prices.price_typeStringPricing type
labour_profile_session_price_hoursArrayHourly pricing breakdown
labour_profile_session_price_hours.start_timeTimeStart time for the pricing window
labour_profile_session_price_hours.end_timeTimeEnd time for the pricing window
labour_profile_session_price_hours.priceDecimalPrice applied for the defined time range
labour_profile_session_availabilityArrayAvailability configuration for the session
labour_profile_session_availability.start_timeTimeAvailability start time
labour_profile_session_availability.end_timeTimeAvailability end time
labour_profile_session_availability.preferred_dayStringDay of the week the availability applies to
Response

On successful execution, the API returns the updated labour profile object reflecting all applied changes, including updated metadata such as last modified timestamps and user information. The response includes the complete labour profile structure with its associated sessions, pricing details, availability schedules, tax configuration, and status, ensuring consumers receive a fully synchronized representation of the updated resource.

Response Body
{
  "labour_profile": {
    "status": "string",
    "uuid": "uuid",
    "name": "string",
    "display_name": "string",
    "max_booking_limit": "integer",
    "tax_inclusive": "boolean",
    "currency": "string",
    "tax": {
      "uuid": "uuid",
      "code": "string",
      "rate": "decimal",
      "link": "string"
    },
    "created_by": "string",
    "created_on": "datetime",
    "last_updated_by": "string",
    "last_updated_on": "datetime",
    "labours": [],
    "labour_profile_sessions": [
      {
        "status": "string",
        "uuid": "uuid",
        "name": "string",
        "start_date": "datetime",
        "end_date": "datetime",
        "labour_profile_session_prices": [
          {
            "id": "integer",
            "status": "string",
            "uuid": "uuid",
            "price": "decimal",
            "enabled_pro_rata": "boolean",
            "price_type": "string",
            "pricing_level": "string",
            "labour_profile_session_price_hours": [
              {
                "status": "string",
                "uuid": "uuid",
                "start_time": "time",
                "end_time": "time",
                "price": "decimal"
              }
            ]
          }
        ],
        "labour_profile_session_availability": [
          {
            "status": "string",
            "uuid": "uuid",
            "start_time": "time",
            "end_time": "time",
            "available": "boolean",
            "preferred_day": "string"
          }
        ]
      }
    ]
  }
}
AttributeTypeDescription
labour_profileObjectUpdated labour profile resource
labour_profile.statusStringCurrent status of the labour profile
labour_profile.uuidUUIDUnique identifier of the labour profile
labour_profile.nameStringInternal name of the labour profile
labour_profile.display_nameStringDisplay name of the labour profile
labour_profile.max_booking_limitIntegerMaximum allowed bookings
labour_profile.tax_inclusiveBooleanIndicates whether pricing includes tax
labour_profile.currencyStringCurrency used for pricing
labour_profile.taxObjectTax configuration details
labour_profile.created_byStringUser who created the labour profile
labour_profile.created_onDatetimeCreation timestamp
labour_profile.last_updated_byStringUser who last updated the labour profile
labour_profile.last_updated_onDatetimeLast update timestamp
labour_profile.laboursArrayList of linked labour resources
labour_profile.labour_profile_sessionsArraySessions associated with the labour profile
labour_profile_sessions.statusStringStatus of the session
labour_profile_sessions.start_dateDatetimeSession start date
labour_profile_sessions.end_dateDatetimeSession end date
labour_profile_session_pricesArrayPricing rules for the session
labour_profile_session_price_hoursArrayHour-based pricing details
labour_profile_session_availabilityArrayAvailability configuration for the session

Looking to build next big project?

With our robust set of tools and resources, you can create custom solutions that integrate seamlessly with our system and take your business to the next level.

Join Our Partner Program