Update Labour Profile: /labour-profiles/{labour_profile_uuid}
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
| Attribute | Type | Description |
|---|---|---|
| labour_profile_uuid | UUID | Unique 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"
}
]
}
]
}
}
| Attribute | Type | Description |
|---|---|---|
| labour_profile | Object | Root object containing labour profile update details |
| labour_profile.name | String | Internal name of the labour profile |
| labour_profile.display_name | String | User-facing display name of the labour profile |
| labour_profile.max_booking_limit | Integer | Maximum number of allowed bookings for the profile |
| labour_profile.tax_inclusive | Boolean | Indicates whether prices include tax |
| labour_profile.currency | String | Currency code used for pricing |
| labour_profile.tax | Object | Tax configuration associated with the labour profile |
| labour_profile.tax.uuid | UUID | Unique identifier of the tax |
| labour_profile.tax.code | String | Tax code reference |
| labour_profile.tax.rate | Decimal | Tax rate applied to pricing |
| labour_profile.labour_profile_sessions | Array | Collection of sessions linked to the labour profile |
| labour_profile_sessions.operation | String | Action to perform on the session (ADD, UPDATE, DELETE) |
| labour_profile_sessions.uuid | UUID | Unique identifier of the session (required for update/delete) |
| labour_profile_sessions.name | String | Name of the labour profile session |
| labour_profile_sessions.start_date | Datetime | Session start date |
| labour_profile_sessions.end_date | Datetime | Session end date |
| labour_profile_session_prices | Array | Pricing configurations for the session |
| labour_profile_session_prices.price | Decimal | Base price for the session |
| labour_profile_session_prices.enabled_pro_rata | Boolean | Indicates whether pro-rata pricing is enabled |
| labour_profile_session_prices.price_type | String | Pricing type |
| labour_profile_session_price_hours | Array | Hourly pricing breakdown |
| labour_profile_session_price_hours.start_time | Time | Start time for the pricing window |
| labour_profile_session_price_hours.end_time | Time | End time for the pricing window |
| labour_profile_session_price_hours.price | Decimal | Price applied for the defined time range |
| labour_profile_session_availability | Array | Availability configuration for the session |
| labour_profile_session_availability.start_time | Time | Availability start time |
| labour_profile_session_availability.end_time | Time | Availability end time |
| labour_profile_session_availability.preferred_day | String | Day 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"
}
]
}
]
}
}
| Attribute | Type | Description |
|---|---|---|
| labour_profile | Object | Updated labour profile resource |
| labour_profile.status | String | Current status of the labour profile |
| labour_profile.uuid | UUID | Unique identifier of the labour profile |
| labour_profile.name | String | Internal name of the labour profile |
| labour_profile.display_name | String | Display name of the labour profile |
| labour_profile.max_booking_limit | Integer | Maximum allowed bookings |
| labour_profile.tax_inclusive | Boolean | Indicates whether pricing includes tax |
| labour_profile.currency | String | Currency used for pricing |
| labour_profile.tax | Object | Tax configuration details |
| labour_profile.created_by | String | User who created the labour profile |
| labour_profile.created_on | Datetime | Creation timestamp |
| labour_profile.last_updated_by | String | User who last updated the labour profile |
| labour_profile.last_updated_on | Datetime | Last update timestamp |
| labour_profile.labours | Array | List of linked labour resources |
| labour_profile.labour_profile_sessions | Array | Sessions associated with the labour profile |
| labour_profile_sessions.status | String | Status of the session |
| labour_profile_sessions.start_date | Datetime | Session start date |
| labour_profile_sessions.end_date | Datetime | Session end date |
| labour_profile_session_prices | Array | Pricing rules for the session |
| labour_profile_session_price_hours | Array | Hour-based pricing details |
| labour_profile_session_availability | Array | Availability configuration for the session |