Pre-Booking Quote Retrieval API

Pre-Booking Quote Retrieval Endpoint
StoRegister - Login

Pre-Booking Quote Retrieval

The Pre-Booking Quote Retrieval API endpoint offers comprehensive information on quotes for requested storage boxes. The quote comes in two variations: for the prorated period from the move-in date to the last invoice cycle and for a complete invoice cycle. The primary details include property details and storage box specifics, providing a quick overview for decision-making when booking.

POST
/v1/booking/rental-surface/pre-rental-quotation/preview
Request Content Type
application/json
Response Content Type
application/json

Request Header

  • Authorization: X-API-Key string required

    X-API-Key is a string of letters and numbers used to authenticate and control access to the API. It can be generated in the StoRegister management application.

Request Body:

  • taxUserTypeInfoId string required

    taxUserTypeInfoId refers to type of user (e.g., "General", "Business", "Student").
  • storageInfoId string required

    storageInfoId refers to type of storage (e.g., "Unit Storage", "Container Storage").
  • storageGroupInfoId int required

    storageGroupInfoId refers to the grouping category for unit sizes (e.g., "Small", "Medium", "Large")..
  • storageCategoryInfoId string required

    storageCategoryInfoId refers to the storage category (e.g., 'Climate-Controlled', 'Non-Climate-Controlled)
  • propertyInfoId string required

    propertyInfoId refers to the ID of the specific property.
  • paymentPeriod string required

    paymentPeriod refers to payment period (e.g., "Monthly", "Quartely").
  • size decimal required

    size refers to the unit size.
  • price decimal required

    price refers to the standard price of the unit.
  • moveInDate string required

    moveInDate refers to the actual movein date.
  • discountInfoId string

    discountInfoId refers to the active discount ID.
  • discountPropertyInfoId string

    discountPropertyInfoId refers to the discount ID linked to the property.
  • additionalInvoiceDuration int

    Refers to the additional duration required to be added for the initial move-in; it may be a number of months if the paymentPeriod is MONTHLY or the number of weeks if the payment period is WEEKLY. By default, it's zero.

Response Payload:

  • succeeded boolean

    Indicates whether the request to retrieve tenant activity and quotes for storage boxes was successful. It is a boolean value where true denotes success, and false indicates failure.
  • status string

    Describes the status of the request to retrieve detailed quotes for storage boxes. Possible values include "success" for a successful request and specific error messages for failures.
  • data object | null

    Upon success, this field contains detailed information related to the pre-booking quote retrieval. In case of failure or no data, this field may be null.
  • errors array

    Holds error information if applicable. It is an array containing error details in case the request to retrieve pre-booking quotes encounters any issues. Each element in the array provides specific error details.

object: data

  • billingSubscription object

    Billing subscription details (refer to Billing Subscription Details section).
  • proRataSubscription object

    Prorated subscription details (refer to Pro-Rata Subscription Details section).
  • property object

    Property details (refer to Property Details section).
  • storage object

    Storage details, including storage box ID and name.
  • storageSize object

    Storage size details, including size, scale metrics, default size metrics, length, width, and height.

Billing Subscription and Pro-Rata Subscription Details

Detailed information on the billing subscription and prorated subscription, including non-taxable amount, taxable amount, tax amount, net amount, gross amount, rent details, discounts, insurance, service, and merchandise details.

object: data.billingSubscription and data.proRataSubscription
  • startDate string

    Start date of the billing subscription (e.g., "04-02-2024").
  • endDate string

    End date of the billing subscription (e.g., "03-03-2024").
  • nonTaxableAmount object

    Details about the non-taxable amount, including price and formatted price.
  • taxableAmount object

    Details about the taxable amount, including price and formatted price.
  • taxAmount object

    Details about the tax amount, including price and formatted price.
  • netAmount object

    Details about the net amount, including price and formatted price.
  • grossAmount object

    Details about the gross amount, including price and formatted price.
  • rent object

    Details about the rent, including ID, description, taxable price, tax percentage, tax price, payable price, and period.
  • discount object

    Details about any discounts applied.
  • insurance object

    Details about insurance, including ID, description, taxable price, tax percentage, tax price, payable price, and period.
  • service object

    Details about any additional services.
  • merchandise array

    Details about any merchandise items.
  • transactData object

    Details about a consolidated group of items chosen by the tenant to prepare the quote (refer to Transaction Item Details section).

Transaction Item Details

Details about the transaction items chosen by the tenant to prepare the quote. Each transaction item is identified by its category, such as 'RENT', 'RENTAL_DISCOUNT', 'INSURANCE', 'SERVICE', etc.

object: data.transactData
  • name string

    The name of the transaction item (e.g., "4.00m2").
  • description string

    A description of the transaction item, including duration (e.g., "4.00m2 (Duration: 05-02-2024 to 04-03-2024)").
  • category string

    The category of the transaction item, identifying its type (e.g., 'RENT', 'RENTAL_DISCOUNT', 'INSURANCE', 'SERVICE', etc.).
  • nonTaxableAmount object | null

    Details about the non-taxable amount, including price and formatted price. If no non-taxable amount, it will be null.
  • taxableAmount object

    Details about the taxable amount, including price and formatted price.
  • taxPercentage object

    Details about the tax percentage, including price and formatted price.
  • taxAmount object

    Details about the tax amount, including price and formatted price.
  • netAmount object

    Details about the net amount, including price and formatted price.
  • grossAmount object

    Details about the gross amount, including price and formatted price.

Property Details

Details about the property, including property name, address, city, latitude, longitude, postal code, country, and contact number.

object: data.property
  • id unique-identifier

    Unique identifier for the property.
  • name string

    Name of the property.
  • address string

    Street address of the property.
  • city string

    City where the property is located.
  • latitude float

    Latitude coordinate of the property location.
  • longitude float

    Longitude coordinate of the property location.
  • postalCode string

    Postal code of the property location.
  • country object

    Country where the property is located.
  • countryISOCode2 string

    ISO code (2 characters) for the country of the property.
  • googlePlaceId string

    Google Place ID associated with the property location.
  • contactNumber string

    Contact number for the property.
  • propertyImageList null or array

    List of property images or null if not available.
  • propertyOfficeOpeningHoursInfoList null or array

    List of information about property office opening hours or null if not available (refer to the Property Working Hours section for details).

Property Working Hours

Information about the working hours of the property, including opening and closing times for each day of the week.

array data.property.propertyOfficeOpeningHoursInfoList
  • dayOfWeek integer

    Day of the week represented as an integer (0 for Sunday, 1 for Monday, ..., 6 for Saturday). The value -1 represents public holidays.
  • week string

    Name of the day of the week in French.
  • firstTimeSlot string

    Opening and closing time of the first time slot, if applicable.
  • secondTimeSlot string

    Opening and closing time of the second time slot, if applicable.
  • isClosed boolean

    Indicates whether the property is closed on the specified day.

Storage Details

Information about the storage, including storage box ID and name.

object: data.storage
  • id unique-identifier

    Unique identifier for the storage box.
  • name string

    Name of the storage box.

Storage Size Details

Details about the size of the storage box, including size, scale metrics, default size metrics, length, width, and height.

object: data.storageSize
  • size float

    Size of the storage in specified metrics (e.g., 2.5).
  • scaleMetrics string

    Scale metrics used for the size (e.g., "m" for meters).
  • defaultSizeMetrics string

    Default size metrics for the storage (e.g., "AREA", "VOLUME").
  • length float

    Length dimension of the storage box.
  • width float

    Width dimension of the storage box.
  • height float

    Height dimension of the storage box.

Request Header

Authorization: X-API-Key --api-key--

API Request

                                            
{
    "taxUserTypeInfoId": "0FD594E9-4635-4DB6-9EA9-E04E80BF0B25",
    "storageInfoId": "47fa29c4-738a-42dc-bcb3-6dba1ee7e38e",
    "propertyInfoId": "a99c4590-9475-404e-bcbd-6cba2e2b5e16",
    "paymentPeriod": "MONTHLY",
    "storageGroupInfoId": 0,
    "storageCategoryInfoId": "FB1660C7-4D43-4637-AAD8-5E547E6455EF",
    "discountInfoId": "C453EA01-2E9E-4636-977F-C64555F86F20",
    "discountPropertyInfoId": "6AE2C911-55A0-41FD-875C-529D846C25E0",
    "size": 4,
    "price": 25,
    "moveInDate": "2024-02-05T08:16:31.678Z",
    "additionalInvoiceDuration": 0
}
                                            
                                        

API Response

{
    "data": {
        "billingSubscription": {
            "startDate": "05-02-2024",
            "endDate": "04-03-2024",
            "taxUserType": "General",
            "nonTaxableAmount": {
                "price": 0,
                "formattedPrice": "0,00 €"
            },
            "taxableAmount": {
                "price": 25.00,
                "formattedPrice": "25,00 €"
            },
            "taxAmount": {
                "price": 5.00,
                "formattedPrice": "5,00 €"
            },
            "netAmount": {
                "price": 30.00,
                "formattedPrice": "30,00 €"
            },
            "grossAmount": {
                "price": 30.00,
                "formattedPrice": "30,00 €"
            },
            "rent": {
                "id": "de530cd5-1f68-4a96-b844-da66e95fe86f",
                "description": "4.00m2 ",
                "taxablePrice": {
                    "price": 25.00,
                    "formattedPrice": "25,00 €"
                },
                "taxPercentage": {
                    "percentage": 20.00,
                    "formattedPercentage": "20,00 %"
                },
                "taxPrice": {
                    "price": 5.00,
                    "formattedPrice": "5,00 %"
                },
                "payablePrice": {
                    "price": 30.00,
                    "formattedPrice": "30,00 €"
                },
                "period": null
            },
            "discount": null,
            "insurance": null,
            "service": null,
            "merchandise": null,
            "transactData": [
                {
                    "name": "4.00m2",
                    "description": "4.00m2 (Duration: 05-02-2024 to 04-03-2024)",
                    "categeory": "RENT",
                    "nonTaxableAmount": null,
                    "taxableAmount": {
                        "price": 25.00,
                        "formattedPrice": "25,00 €"
                    },
                    "taxPercentage": {
                        "price": 20.00,
                        "formattedPrice": "20.00"
                    },
                    "taxAmount": {
                        "price": 5.00,
                        "formattedPrice": "5,00 €"
                    },
                    "netAmount": {
                        "price": 30.00,
                        "formattedPrice": "30,00 €"
                    },
                    "grossAmount": {
                        "price": 30.00,
                        "formattedPrice": "30,00 €"
                    }
                }
            ]
        },
        "proRataSubscription": {
            "startDate": "05-02-2024",
            "endDate": "04-03-2024",
            "taxUserType": "General",
            "nonTaxableAmount": {
                "price": 0,
                "formattedPrice": "0,00 €"
            },
            "taxableAmount": {
                "price": 25.00,
                "formattedPrice": "25,00 €"
            },
            "taxAmount": {
                "price": 5.00,
                "formattedPrice": "5,00 €"
            },
            "netAmount": {
                "price": 30.00,
                "formattedPrice": "30,00 €"
            },
            "grossAmount": {
                "price": 30.00,
                "formattedPrice": "30,00 €"
            },
            "rent": {
                "id": "9a2a1816-69be-4611-ac48-963e0dad6583",
                "description": "4.00m2 ",
                "taxablePrice": {
                    "price": 25.00,
                    "formattedPrice": "25,00 €"
                },
                "taxPercentage": {
                    "percentage": 20.00,
                    "formattedPercentage": "20,00 %"
                },
                "taxPrice": {
                    "price": 5.00,
                    "formattedPrice": "5,00 %"
                },
                "payablePrice": {
                    "price": 30.00,
                    "formattedPrice": "30,00 €"
                },
                "period": null
            },
            "discount": null,
            "insurance": null,
            "service": null,
            "merchandise": null,
            "transactData": [
                {
                    "name": "4.00m2",
                    "description": "4.00m2 (Duration: 05-02-2024 to 04-03-2024)",
                    "categeory": "RENT",
                    "nonTaxableAmount": null,
                    "taxableAmount": {
                        "price": 25.00,
                        "formattedPrice": "25,00 €"
                    },
                    "taxPercentage": {
                        "price": 20.00,
                        "formattedPrice": "20.00"
                    },
                    "taxAmount": {
                        "price": 5.00,
                        "formattedPrice": "5,00 €"
                    },
                    "netAmount": {
                        "price": 30.00,
                        "formattedPrice": "30,00 €"
                    },
                    "grossAmount": {
                        "price": 30.00,
                        "formattedPrice": "30,00 €"
                    }
                }
            ]
        },
        "property": {
            "id": "a99c4590-9475-404e-bcbd-6cba2e2b5e16",
            "name": "Chalets",
            "address": "13 rue des Chalets",
            "city": "Toulouse",
            "latitude": 43.615232811359924000,
            "longitude": 1.441923783106378700,
            "postalCode": "31000",
            "country": {
                "id": 82,
                "name": "France"
            },
            "region": {
                "id": 216,
                "name": "Occitania"
            },
            "countryISOCode2": "FR",
            "googlePlaceId": "ChIJ62YIC1-7rhIRhD_iH8qTlRo",
            "contactNumber": "+33 0522243838",
            "propertyImageList": null,
            "propertyOfficeOpeningHoursInfoList": [
                {
                    "dayOfWeek": 0,
                    "week": "dimanche",
                    "firstTimeSlot": null,
                    "secondTimeSlot": null,
                    "isClosed": true
                },
                {
                    "dayOfWeek": 1,
                    "week": "lundi",
                    "firstTimeSlot": "09:00 To 12:30",
                    "secondTimeSlot": "13:30 To 19:00",
                    "isClosed": false
                },
                {
                    "dayOfWeek": 2,
                    "week": "mardi",
                    "firstTimeSlot": "09:00 To 12:30",
                    "secondTimeSlot": "13:30 To 19:00",
                    "isClosed": false
                },
                {
                    "dayOfWeek": 3,
                    "week": "mercredi",
                    "firstTimeSlot": "09:00 To 12:30",
                    "secondTimeSlot": "13:30 To 19:00",
                    "isClosed": false
                },
                {
                    "dayOfWeek": 4,
                    "week": "jeudi",
                    "firstTimeSlot": "09:00 To 12:30",
                    "secondTimeSlot": "13:30 To 19:00",
                    "isClosed": false
                },
                {
                    "dayOfWeek": 5,
                    "week": "vendredi",
                    "firstTimeSlot": "09:00 To 12:30",
                    "secondTimeSlot": "13:30 To 19:00",
                    "isClosed": false
                },
                {
                    "dayOfWeek": 6,
                    "week": "samedi",
                    "firstTimeSlot": "09:00 To 12:30",
                    "secondTimeSlot": "13:30 To 19:00",
                    "isClosed": false
                },
                {
                    "dayOfWeek": -1,
                    "week": null,
                    "firstTimeSlot": null,
                    "secondTimeSlot": null,
                    "isClosed": true
                }
            ]
        },
        "storage": {
            "id": "47fa29c4-738a-42dc-bcb3-6dba1ee7e38e",
            "name": "Box"
        },
        "storageSize": {
            "size": 4,
            "scaleMetrics": "m2",
            "defaultSizeMetrics": null,
            "length": 0,
            "width": 0,
            "height": 0
        }
    },
    "succeeded": true,
    "status": "SUCCESS",
    "errors": null
}

Error Codes

  • INVALID_PARAM_PREPARE_QUOTATION_INPUT

    INVALID_PARAM_PREPARE_QUOTATION_INPUT refers to input details provided as null.
  • INVALID_PARAM_TAX_USER_TYPE_ID

    INVALID_PARAM_TAX_USER_TYPE_ID refers to invalid user type.
  • INVALID_PARAM_PROPERTY_INFO_ID

    INVALID_PARAM_PROPERTY_INFO_ID refers to invalid property ID.
  • INVALID_PARAM_STORAGE_INFO_ID

    INVALID_PARAM_STORAGE_INFO_ID refers to invalid storage ID.
  • INVALID_PARAM_STORAGE_CATEGORY_INFO_ID

    INVALID_PARAM_STORAGE_CATEGORY_INFO_ID refers to invalid category id for the selected storage.
  • INVALID_PARAM_STORAGE_SIZE

    INVALID_PARAM_STORAGE_SIZE refers to an invalid storage size, and the size should be greater than 0.
  • INVALID_DATA_STORAGE_SIZE_PRICE_INFO

    INVALID_DATA_STORAGE_SIZE_PRICE_INFO refers to invalid storage size price details.
  • INVALID_PARAM_PRICE_DETAILS

    INVALID_PARAM_PRICE_DETAILS refers to invalid price details.
  • PRICE_CALCULATION_FAILED

    PRICE_CALCULATION_FAILED refers to a failure in price calculation.
  • PRORATA_SUBSCRIPTION_CALCULATION_FAILED

    PRORATA_SUBSCRIPTION_CALCULATION_FAILED refers to pro-rata subscription amount calculation failure.
  • BILLING_SUBSCRIPTION_CALCULATION_FAILED

    BILLING_SUBSCRIPTION_CALCULATION_FAILED refers to billing subscription amount calculation failure.
  • NO_RECORDS_FOUND

    NO_RECORDS_FOUND means there is no relevant information found.
  • FAILED

    FAILED refers to an unsuccessful API call.
  • SOMETHING_WENT_WRONG

    SOMETHING_WENT_WRONG refers to technical glitch. Please contact administrator.