Skip to content

Create Hotel Deal

Creates a new deal for a hotel or hospitality property along with its collateral, component, and hotel living unit record.

Key Details

  • address.fullAddress is validated against the Google Places API. Provide a complete street address (e.g., "1250 Ocean View Drive, San Diego, CA 92101"). Alternatively, supply address.placeId for exact geocoding.
  • propertyType must be Hotel. Use Create Commercial Deal or Create Residential Deal for other asset types.
  • ownerId is the Blooma user ID (email address) of the deal owner.
  • hotelLivingUnitCreateDto defines the hotel room inventory — numUnits (room count), adr (average daily rate in USD), occupancy (expressed as a decimal, e.g., 0.72 = 72%), and sqFt (total hotel square footage).
  • loanAmount is in USD. loanTerm is in months.
  • On success, returns createdEntityId — the UUID of the newly created deal. Blooma automatically generates the associated collateral and component records.
  • If the address matches an existing deal, the response may return a Duplicated error code.

Request

Type: application/json

Schema: CreateHotelDealDto

ownerId string

Blooma user ID (email address) of the deal owner

dealName string

address AddressCreateDto
fullAddress string

Complete street address validated by Google Places API (e.g., "1600 Amphitheatre Parkway, Mountain View, CA 94043")

additionalFreeText string

Additional address information such as suite or unit number

placeId string

Google Places unique identifier. If provided, overrides fullAddress

latLng LatLng

lat number(double)

lng number(double)

propertyType string(enum)

Hotel property category

Available enum values: None, Mixed, Hotel, Industrial, Multi_Family_Apartments, Office, Retail, Self_Storage, Land, Special_Purpose, Senior_Housing, Distribution_Warehouse, Flex_Office, Portfolio

loanType string(enum)

Available enum values: Unknown, Acquisition, Acquisition_Construction, Refinance, Refinance_Construction, Construction, Stabilization, Bridge, Permanent

loanAmount number(double)

Requested or originated loan amount, in USD

loanTerm number(double)

Loan maturity term, in months

hotelLivingUnitCreateDto HotelLivingUnitCreateDto
numUnits number(double)

Total number of rooms in the hotel

adr number(double)

Stabilized Average Daily Rate (ADR), in USD

occupancy number(double)

Stabilized occupancy rate, expressed as a decimal (e.g., 0.72 = 72%)

sqFt number(double)

Total square footage of hotel rooms

Response

Status: 200

Type: application/json

Schema: CreateResponseDto

success boolean

Indicates whether the API request completed successfully

error ErrorDto
target string

Field or parameter that caused the error

code string(enum)

Error code (e.g., Duplicated, MissingMandatoryField, InvalidCreateValues, MissingEntity)

Available enum values: Duplicated, MissingMandatoryField, InvalidCreateValues, Existing, ValidationError, MissingEntity

message string

details array [ ErrorDto ]
createdEntityId string

UUID of the newly created entity

POST
/api/apiGateway/createHotelDeal
Request Body
{
  "ownerId": "string",
  "dealName": "string",
  "address": {
    "fullAddress": "string",
    "additionalFreeText": "string",
    "placeId": "string",
    "latLng": {
      "lat": 0.0,
      "lng": 0.0
    }
  },
  "propertyType": "None",
  "loanType": "Unknown",
  "loanAmount": 0.0,
  "loanTerm": 0.0,
  "hotelLivingUnitCreateDto": {
    "numUnits": 0.0,
    "adr": 0.0,
    "occupancy": 0.0,
    "sqFt": 0.0
  }
}
Response
{
  "success": true,
  "error": {
    "target": "string",
    "code": "Duplicated",
    "message": "string",
    "details": [
      {}
    ]
  },
  "createdEntityId": "string"
}