Create Labour Profile: /labour-profiles
Purpose
This API allows the creation of a new labour profile in the system. A labour profile defines booking limits, currency and tax behavior, session-based pricing rules, peak and hourly pricing configurations, and day-wise availability. It serves as a reusable configuration for managing labour pricing and scheduling logic.
Use Case
This endpoint is used when an administrator or system needs to define a new labour pricing and availability model, such as setting up standard work sessions, hourly or fixed pricing, peak-hour rates, and weekly availability. The created labour profile can later be associated with specific labours and used in job bookings, scheduling, and billing workflows.
Path Parameters
This endpoint does not require path parameters
Query Parameters
This endpoint does not support query parameters
Request Body
{
"labour_profile": {
"name": "PROFILE_NAME",
"display_name": "PROFILE_DISPLAY_NAME",
"max_booking_limit": "MAX_BOOKING_LIMIT",
"currency": "CURRENCY_CODE",
"tax_inclusive": "BOOLEAN",
"tax": {
"uuid": "TAX_UUID",
"name": "TAX_NAME",
"rate": "TAX_RATE"
},
"labour_profile_sessions": [
{
"name": "SESSION_NAME",
"start_date": "SESSION_START_DATETIME",
"end_date": "SESSION_END_DATETIME",
"labour_profile_session_prices": [
{
"price": "BASE_PRICE",
"enabled_pro_rata": "BOOLEAN",
"price_type": "PRICE_TYPE",
"pricing_level": "PRICING_LEVEL",
"labour_profile_session_price_hours": [
{
"start_time": "START_TIME",
"end_time": "END_TIME",
"price": "HOURLY_PRICE"
}
],
"labour_profile_session_price_peak_hourly": [
{
"start_time": "START_TIME",
"end_time": "END_TIME",
"price": "PEAK_PRICE",
"price_type": "PEAK_PRICE_TYPE"
}
]
}
],
"labour_profile_session_availability": [
{
"preferred_day": "DAY_OF_WEEK",
"available": "BOOLEAN",
"start_time": "START_TIME",
"end_time": "END_TIME"
}
]
}
]
}
}
| Attribute | Type | Description |
|---|---|---|
| labour_profile | Object | Root object containing labour profile configuration |
| 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 | String | Maximum number of bookings allowed for this profile |
| labour_profile.currency | String | Currency code used for pricing |
| labour_profile.tax_inclusive | Boolean | Indicates whether prices include tax |
| labour_profile.tax | Object | Optional tax configuration |
| labour_profile.tax.uuid | UUID | Unique identifier of the tax |
| labour_profile.tax.name | String | Name of the tax |
| labour_profile.tax.rate | Decimal | Tax rate applied to pricing |
| labour_profile.labour_profile_sessions | Array | List of session definitions |
| labour_profile_sessions.name | String | Name of the labour profile session |
| labour_profile_sessions.start_date | DateTime | Start date and time of the session |
| labour_profile_sessions.end_date | DateTime | End date and time of the session |
| labour_profile_session_prices | Array | Pricing rules 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 | Type of pricing |
| labour_profile_session_price_hours | Array | Hourly pricing configuration |
| labour_profile_session_price_peak_hourly | Array | Peak-hour pricing configuration |
| labour_profile_session_availability | Array | Weekly availability settings for the session |
| labour_profile_session_availability.preferred_day | String | Day of the week |
| labour_profile_session_availability.available | Boolean | Indicates availability on the specified day |
| labour_profile_session_availability.start_time | Time | Start time of availability |
| labour_profile_session_availability.end_time | Time | End time of availability |
Response
On successful creation, this API returns the newly created labour profile with system-generated identifiers, status information, audit details, and fully expanded session, pricing, and availability configurations. The response reflects the normalized and persisted structure used internally by the system, allowing clients to immediately reference the labour profile UUID for further operations such as labour assignment, updates, or retrieval.
Response Body
{
"labour_profile": {
"status": "STATUS",
"uuid": "LABOUR_PROFILE_UUID",
"name": "PROFILE_NAME",
"display_name": "PROFILE_DISPLAY_NAME",
"max_booking_limit": "MAX_BOOKING_LIMIT",
"tax_inclusive": "BOOLEAN",
"currency": "CURRENCY_CODE",
"tax": {
"uuid": "TAX_UUID",
"code": "TAX_CODE",
"rate": "TAX_RATE",
"link": "TAX_LINK"
},
"created_by": "CREATED_BY",
"created_on": "CREATED_TIMESTAMP",
"last_updated_by": "LAST_UPDATED_BY",
"last_updated_on": "LAST_UPDATED_TIMESTAMP",
"labours": [],
"labour_profile_sessions": [
{
"status": "STATUS",
"uuid": "SESSION_UUID",
"name": "SESSION_NAME",
"start_date": "START_DATE",
"end_date": "END_DATE",
"labour_profile_session_prices": [
{
"id": "PRICE_ID",
"status": "STATUS",
"uuid": "PRICE_UUID",
"price": "PRICE",
"enabled_pro_rata": "BOOLEAN",
"price_type": "PRICE_TYPE",
"pricing_level": "PRICING_LEVEL",
"labour_profile_session_price_hours": [
{
"status": "STATUS",
"uuid": "PRICE_HOUR_UUID",
"start_time": "START_TIME",
"end_time": "END_TIME",
"price": "HOURLY_PRICE"
}
]
}
],
"labour_profile_session_availability": [
{
"status": "STATUS",
"uuid": "AVAILABILITY_UUID",
"start_time": "START_TIME",
"end_time": "END_TIME",
"available": "BOOLEAN",
"preferred_day": "DAY_OF_WEEK"
}
]
}
]
}
}
| Attribute | Type | Description |
|---|---|---|
| labour_profile | Object | Newly created labour profile |
| labour_profile.status | String | Current status of the labour profile |
| labour_profile.uuid | UUID | Unique identifier of the labour profile |
| labour_profile.created_by | String | User or system that created the profile |
| labour_profile.created_on | DateTime | Timestamp when the profile was created |
| labour_profile.labour_profile_sessions | Array | Persisted session configurations |
| labour_profile_session_prices | Array | Stored pricing rules for each session |
| labour_profile_session_price_hours | Array | Hour-based pricing details |
| labour_profile_session_availability | Array | Weekly availability details |