Create Rental Asset Profile: /rental-asset-profiles
Purpose
This API is used to create a new rental asset profile in the system. A rental asset profile defines booking rules, pricing configurations, tax settings, session-based availability, and time-based pricing structures that can later be associated with one or more rental assets.
Use Case
This endpoint is typically used by administrators or asset managers when configuring new rental offerings. It allows defining how and when a rental asset can be booked, including session durations, hourly or fixed pricing, peak-hour pricing, daily availability, currency, and booking limits before the profile is linked to actual rental assets.
Path Parameters
This endpoint does not require path parameters
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",
"currency": "CURRENCY_CODE",
"tax": {
"uuid": "TAX_UUID",
"code": "TAX_CODE",
"rate": "TAX_RATE"
},
"tax_inclusive": "BOOLEAN",
"rental_asset_profile_sessions": [
{
"name": "SESSION_NAME",
"start_date": "START_DATE",
"end_date": "END_DATE",
"rental_asset_profile_session_prices": [
{
"price": "BASE_PRICE",
"enabled_pro_rata": "BOOLEAN",
"price_type": "PRICE_TYPE",
"pricing_level": "PRICING_LEVEL",
"rental_asset_profile_session_price_hours": [
{
"start_time": "START_TIME",
"end_time": "END_TIME",
"price": "HOURLY_PRICE"
}
],
"rental_asset_profile_session_price_peak_hourly": [
{
"start_time": "START_TIME",
"end_time": "END_TIME",
"price": "PEAK_PRICE",
"price_type": "PEAK_PRICE_TYPE"
}
]
}
],
"rental_asset_profile_session_availability": [
{
"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 rental asset profile details |
| rental_asset_profile.name | String | Internal name of the rental asset profile |
| rental_asset_profile.display_name | String | User-facing display name |
| rental_asset_profile.max_booking_limit | Integer | Maximum number of bookings allowed |
| rental_asset_profile.currency | String | Currency code for pricing |
| rental_asset_profile.tax | Object | Tax configuration applied to the profile |
| rental_asset_profile.tax_inclusive | Boolean | Indicates whether prices include tax |
| rental_asset_profile_sessions | Array | Session definitions associated with the profile |
| rental_asset_profile_sessions.name | String | Name of the rental session |
| rental_asset_profile_sessions.start_date | DateTime | Session start date and time |
| rental_asset_profile_sessions.end_date | DateTime | Session end date and time |
| rental_asset_profile_session_prices | Array | Pricing configurations for the session |
| rental_asset_profile_session_prices.price | Decimal | Base price for the session |
| rental_asset_profile_session_prices.enabled_pro_rata | Boolean | Enables pro-rata pricing |
| rental_asset_profile_session_prices.price_type | String | Pricing type |
| rental_asset_profile_session_price_hours | Array | Hourly pricing time slots |
| rental_asset_profile_session_price_peak_hourly | Array | Peak-hour pricing configuration |
| rental_asset_profile_session_availability | Array | Availability rules per day |
Response
On successful execution, the API creates a new rental asset profile and returns the complete profile details, including system-generated identifiers, status, audit information, session definitions, pricing rules, and availability configurations. The response reflects the final normalized structure stored by the system and confirms that the profile is ready to be linked to rental assets.
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 | Newly created 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.tax | Object | Applied tax configuration |
| rental_asset_profile.created_on | DateTime | Timestamp when the profile was created |
| rental_asset_profile.rental_assets | Array | Rental assets linked to the profile |
| rental_asset_profile_sessions | Array | Sessions configured under the profile |
| rental_asset_profile_session_prices | Array | Pricing rules for each session |
| rental_asset_profile_session_availability | Array | Availability rules by day and time |
