Booking Management

The Booking Management module provides comprehensive functionality for creating, managing, and tracking equipment bookings and reservations within the Syniotec API Platform.

Base URL:

https://integration-api.ram.syniotec.com/master-data/v1/booking-management

Available Operations

  • POST /bookingsCreate a new booking
  • GET /bookings/{id} - Get booking by ID
  • PATCH /bookings/{id} - Update booking
  • DELETE /bookings/{id} - Delete booking
  • GET /bookings/external-id/{externalId} - Get booking by external ID

Data Models & Schemas

Booking Entity

{
  "id": "string",
  "startDate": "date-time",
  "endDate": "date-time",
  "entityId": "string",
  "productId": "string",
  "productType": "enum",
  "quantity": "number",
  "externalId": "string",
  "changePrice": "boolean",
  "normalUsage": "number",
  "unitType": "enum",
  "normalPrice": "number",
  "exceptionalUsagePrice": "number",
  "normalUsageType": "enum",
  "periodType": "enum",
  "status": "enum",
  "billingStatus": "enum",
  "cost": "number",
  "pickUpAddress": "string",
  "deliveryAddress": "string",
  "selfPickUp": "boolean",
  "lastUpdatedById": "string",
  "updatedAt": "date-time",
  "deletedAt": "date-time",
  "contract": {
    "id": "string",
    "pickUpAddress": "string",
    "deliveryAddress": "string",
    "selfPickUp": "boolean",
    "title": "string",
    "number": "string",
    "startDate": "date-time",
    "endDate": "date-time",
    "author": "uuid",
    "point": {
      "lng": "number",
      "lat": "number"
    },
    "organization": "uuid",
    "clientId": "uuid",
    "isInactive": "boolean",
    "structureId": "uuid",
    "street": "string",
    "city": "string",
    "country": "string",
    "constructionName": "string",
    "zipCode": "string",
    "contactName": "string",
    "contactPosition": "string",
    "contactPhone": "string",
    "contactEmail": "string",
    "additionalInformation": "string",
    "externalId": "string",
    "createdAt": "date-time",
    "updatedAt": "date-time",
    "bookings": []
  },
  "releases": [
    {
      "id": "string",
      "startDate": "date-time",
      "endDate": "date-time",
      "percentage": "number",
      "priceAfterDiscount": "number",
      "reason": "string",
      "author": "string",
      "organizationId": "uuid",
      "externalId": "string"
    }
  ]
}

Field Descriptions:

  • id - A unique identifier for the booking record
  • startDate - Represents the date and time when the booking begins. It should be formatted in a standard date-time format (e.g., ISO 8601)
  • endDate - Represents the date and time when the booking concludes. Like startDate, it should also be formatted in a standard date-time format
  • entityId - A unique identifier (string) for the entity associated with the record. This helps link the entry to specific equipment or person
  • productId - A unique identifier (string) for the product associated with the record. This helps link the entry to specific product
  • productType - Product type. (See available options here: ProductType)
  • quantity - Booking days quantity
  • externalId - External system identifier
  • changePrice - Whether to apply dynamic pricing
  • normalUsage - A numerical value represents the baseline or standard usage amount for a booking
  • normalUsageType - A string that describes period/condition according to which the normal usage is considered. (See available options here: BookingNormalUsageType)
  • periodType - A string that specifies the type of period the price is calculated, such as working days, calendar days and etc. (See available options here: BookingPeriodType
  • unitType - Unit type for the booking product (See available options here: ProductUnitType
  • normalPrice - A numerical value representing the standard price associated with the normal usage
  • exceptionalUsagePrice - A numerical value indicating the price for usage that exceeds the normal usage limits
  • status - Status of Booking (See available options here: BookingStatus
  • billingStatus - Status of Billing (See available options here: BillingStatus
  • pickUpAddress - The pickup address for the booking
  • deliveryAddress - The delivery address for the booking
  • selfPickUp - A boolean value indicating whether the client will pick up the items themselves
  • updatedAt - Last update timestamp
  • lastUpdatedById - ID of user who last updated the booking
  • contract - The associated contract entity with all its details (See more details here: Contracts
  • releases - Array of associated releases for this booking
    • id - A unique identifier (UUID) for the release record
    • startDate - The date and time when the release period begins, formatted in ISO 8601 standard (UTC).
    • endDate - The date and time when the release period ends, also formatted in ISO 8601 standard (UTC).
    • percentage - value representing the discount percentage applied during this release period. This value indicates how much of the booking price should be discounted or released
    • priceAfterDiscount - A numerical value representing the final price after applying the discount percentage. This is the calculated price that remains after the release discount is applied
    • reason - A text field providing the reason or justification for the release. This helps document why a particular release period was created, such as equipment downtime, customer credit, or promotional discount
    • author - A unique identifier (string) representing the individual or system that created the release record. This helps track who is responsible for creating the release entry
    • organizationId - A unique identifier (UUID) for the organization associated with the release record, helping to link the entry to a specific organizational entity
    • externalId - An optional identifier that connects this release record to external systems or databases, facilitating integration with other platforms or billing systems

Enum Fields

periodType:

  • CALENDAR_DAYS - Price calculated based on calendar days
  • WORKING_DAYS - Price calculated based on working days only
  • ALT_CALENDAR_DAYS - Price calculated based on alternative calendar (6 working days include Saturday)

normalUsageType:

  • DAY - Normal usage considered per day
  • WEEK - Normal usage considered per week
  • MONTH - Normal usage considered per month

bookingStatus:

  • RESERVED
  • PLANNED
  • IN_PROGRESS
  • COMPLETED

billingStatus:

  • NOT_BILLED
  • PARTIALLY_BILLED
  • FULLY_BILLED

Error Response DTO

Standard error response format.

{
  "status": "number",
  "success": "boolean",
  "message": "string",
  "error": "string"
}

Field Descriptions:

  • status - HTTP status code (400-503)
  • success - Boolean indicating the operation failed (false)
  • message - Human-readable error message
  • error - Error code identifier