» Labour Profiles POST API Documentation

Create Labour Profile: /labour-profiles

POST
https://dev-api.exsited.com/api/v3/labour-profiles
Try It Out
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"
          }
        ]
      }
    ]
  }
}
AttributeTypeDescription
labour_profileObjectRoot object containing labour profile configuration
labour_profile.nameStringInternal name of the labour profile
labour_profile.display_nameStringDisplay name of the labour profile
labour_profile.max_booking_limitStringMaximum number of bookings allowed for this profile
labour_profile.currencyStringCurrency code used for pricing
labour_profile.tax_inclusiveBooleanIndicates whether prices include tax
labour_profile.taxObjectOptional tax configuration
labour_profile.tax.uuidUUIDUnique identifier of the tax
labour_profile.tax.nameStringName of the tax
labour_profile.tax.rateDecimalTax rate applied to pricing
labour_profile.labour_profile_sessionsArrayList of session definitions
labour_profile_sessions.nameStringName of the labour profile session
labour_profile_sessions.start_dateDateTimeStart date and time of the session
labour_profile_sessions.end_dateDateTimeEnd date and time of the session
labour_profile_session_pricesArrayPricing rules 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_typeStringType of pricing 
labour_profile_session_price_hoursArrayHourly pricing configuration
labour_profile_session_price_peak_hourlyArrayPeak-hour pricing configuration
labour_profile_session_availabilityArrayWeekly availability settings for the session
labour_profile_session_availability.preferred_dayStringDay of the week
labour_profile_session_availability.availableBooleanIndicates availability on the specified day
labour_profile_session_availability.start_timeTimeStart time of availability
labour_profile_session_availability.end_timeTimeEnd 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"
          }
        ]
      }
    ]
  }
}
AttributeTypeDescription
labour_profileObjectNewly created labour profile
labour_profile.statusStringCurrent status of the labour profile
labour_profile.uuidUUIDUnique identifier of the labour profile
labour_profile.created_byStringUser or system that created the profile
labour_profile.created_onDateTimeTimestamp when the profile was created
labour_profile.labour_profile_sessionsArrayPersisted session configurations
labour_profile_session_pricesArrayStored pricing rules for each session
labour_profile_session_price_hoursArrayHour-based pricing details
labour_profile_session_availabilityArrayWeekly availability details

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