Update Rental Asset Profile: /rental-asset-profiles/{rental_asset_profile_uuid}
Purpose
This API is used to partially update an existing rental asset profile. It allows modifying core profile attributes such as name, display name, booking limits, tax behavior, and—optionally—complex nested configurations like sessions, pricing rules, hourly price slots, peak pricing, and availability using operation-based updates.
Use Case
This endpoint is typically used when business requirements change after a rental asset profile has already been created. Administrators can update booking limits, enable or disable tax inclusion, rename profiles, or dynamically manage session pricing and availability without recreating the profile. It supports granular updates using PATCH semantics, ensuring existing linked rental assets and sessions remain intact unless explicitly modified.
Path Parameters
| Attribute | Type | Description |
|---|---|---|
| rental_asset_profile_uuid | UUID | Unique identifier of the rental asset profile to be updated |
Query Parameters
This endpoint does not support query parameters
Request Body
{
"rental_asset_profile": {
"name": "PROFILE_NAME",
"display_name": "PROFILE_DISPLAY_NAME",
"max_booking_limit": "MAX_BOOKING_LIMIT",
"tax_inclusive": "BOOLEAN",
"rental_asset_profile_sessions": [
{
"uuid": "SESSION_UUID",
"name": "SESSION_NAME",
"start_date": "START_DATE",
"end_date": "END_DATE",
"rental_asset_profile_session_prices": [
{
"uuid": "SESSION_PRICE_UUID",
"price": "PRICE",
"enabled_pro_rata": "BOOLEAN",
"price_type": "PRICE_TYPE",
"pricing_level": "PRICING_LEVEL",
"rental_asset_profile_session_price_hours": [
{
"operation": "ADD|UPDATE|DELETE",
"uuid": "PRICE_HOUR_UUID",
"start_time": "START_TIME",
"end_time": "END_TIME",
"price": "HOURLY_PRICE"
}
]
}
],
"rental_asset_profile_session_availability": [
{
"operation": "ADD|UPDATE|DELETE",
"uuid": "AVAILABILITY_UUID",
"preferred_day": "DAY_OF_WEEK",
"available": "BOOLEAN",
"start_time": "START_TIME",
"end_time": "END_TIME"
}
]
}
]
}
}
| Attribute | Type | Description |
|---|---|---|
| rental_asset_profile | Object | Root object containing fields to be updated |
| rental_asset_profile.name | String | Updated internal name of the profile |
| rental_asset_profile.display_name | String | Updated display name shown to users |
| rental_asset_profile.max_booking_limit | Integer | Updated maximum allowed bookings |
| rental_asset_profile.tax_inclusive | Boolean | Enables or disables tax-inclusive pricing |
| rental_asset_profile_sessions | Array | Session objects to be updated |
| rental_asset_profile_sessions.uuid | UUID | Existing session identifier |
| rental_asset_profile_session_prices | Array | Pricing configurations to update |
| rental_asset_profile_session_price_hours | Array | Hour-based pricing updates with operation flags |
| rental_asset_profile_session_availability | Array | Availability updates with operation-based actions |
| operation | String | Defines the action to perform (ADD, UPDATE, DELETE) |
Response
On successful execution, the API updates the specified rental asset profile and returns the complete, current state of the profile. The response includes updated core attributes, audit information, and all associated sessions, pricing rules, and availability configurations as persisted by the system. This confirms that the requested changes have been successfully applied without disrupting existing associations unless explicitly modified.
Response Body
{
"rental_asset_profile": {
"status": "STATUS",
"uuid": "RENTAL_ASSET_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": "UPDATED_BY",
"last_updated_on": "UPDATED_TIMESTAMP",
"rental_assets": [],
"rental_asset_profile_sessions": [
{
"status": "STATUS",
"uuid": "SESSION_UUID",
"name": "SESSION_NAME",
"start_date": "START_DATE",
"end_date": "END_DATE",
"rental_asset_profile_session_prices": [
{
"id": "ID",
"status": "STATUS",
"uuid": "PRICE_UUID",
"price": "PRICE",
"enabled_pro_rata": "BOOLEAN",
"price_type": "PRICE_TYPE",
"pricing_level": "PRICING_LEVEL",
"rental_asset_profile_session_price_hours": [
{
"status": "STATUS",
"uuid": "PRICE_HOUR_UUID",
"start_time": "START_TIME",
"end_time": "END_TIME",
"price": "HOURLY_PRICE"
}
]
}
],
"rental_asset_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 |
|---|---|---|
| rental_asset_profile | Object | Updated rental asset profile |
| rental_asset_profile.status | String | Current status of the profile |
| rental_asset_profile.uuid | UUID | Unique identifier of the profile |
| rental_asset_profile.last_updated_on | DateTime | Timestamp of the last update |
| rental_asset_profile_sessions | Array | All sessions associated with the profile |
| rental_asset_profile_session_prices | Array | Updated pricing rules |
| rental_asset_profile_session_availability | Array | Updated availability rules |
