Contract Management

The Contracts Management module provides comprehensive functionality for creating, managing, and tracking rental contracts within the Syniotec API Platform.

Base URL:

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


Available Operations:

  • POST /contracts - Create a new contract
  • GET /contracts - Retrieve contracts with filtering and pagination
  • GET /contracts/{id} - Get contract by ID
  • PATCH /contracts/{id} - Update contract
  • DELETE /contracts/{id} - Delete contract
  • GET /contracts/external-id/{externalId} - Get contract by external ID
  • POST /contracts/{contractId}/contact-persons - Create contract contact person
  • GET /contracts/{contractId}/contact-persons - Get contract contact persons
  • GET /contracts/{contractId}/contact-persons/{id} - Get contact person by ID
  • PATCH /contracts/{contractId}/contact-persons/{id} - Update contact person
  • DELETE /contracts/{contractId}/contact-persons/{id} - Delete contact person
  • GET /contracts/{contractId}/contact-persons/external-id/{externalId} - Get contact person by external ID

Data Models & Schemas

Contract Entity

{
  "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",
  "structureId": "uuid",
  "status": "string",
  "billingStatus": "string",
  "contractType": "string",
  "street": "string",
  "city": "string",
  "country": "string",
  "constructionName": "string",
  "zipCode": "string",
  "additionalInformation": "string",
  "externalId": "string",
  "createdAt": "date-time",
  "updatedAt": "date-time",
  "contactPersons": [
    {
      "id": "uuid",
      "name": "string",
      "position": "string",
      "phone": "string",
      "email": "string",
      "isMain": "boolean",
      "externalId": "string",
      "contractId": "uuid",
      "updatedAt": "date-time"
    }
  ],
  "bookings": []
}

Field Descriptions:

  • id - A unique identifier for the record, typically a string that ensures each entry can be distinctly referenced
  • pickUpAddress - The pickup address for the contract
  • deliveryAddress - The delivery address for the contract
  • selfPickUp - A boolean value indicating whether the client will pick up the items themselves
  • title - A brief, descriptive title of contract, providing an overview of its purpose or subject
  • number - Autogenerated reference number associated with the record, which could be an internal tracking number or an identifier for organization purposes
  • startDate - The date and time when contract begins, formatted in ISO 8601 standard (UTC). This field should indicate when the activity is set to start
  • endDate - The date and time when the contract concludes, also formatted in ISO 8601 standard (UTC). This marks the end of the activity
  • author - A unique identifier (UUID) representing the individual or system that created the record. This helps track who is responsible for the entry
  • point - An object containing geographical coordinates with longitude (lng) and latitude (lat)
  • organization - A unique identifier (UUID) for the organization associated with the record, helping to link the entry to a specific entity
  • structureId - A unique identifier (UUID) for the structure where the record is associated, might be reflecting different kind of internal organizational classification
  • clientId - A unique identifier (UUID) for the client associated with the record
  • status - Status of contract which is based on bookings (See available options here: BookingStatus)
  • billingStatus - Billing Status of contract (See available options here: BillingStatus)
  • contractType - Type of contract (See available options here: ContractTypesEnum)
  • street - The street address related to the contract, providing specific location details
  • city - The city where the contract takes place, necessary for location identification
  • country - The country associated with the record, important for geographical context
  • constructionName - A name associated with the construction or venue, if applicable, providing further identification for the location
  • zipCode - The postal code for the address, assisting in pinpointing the exact location
  • additionalInformation - Any extra details or notes relevant to the record that may not fit into the other specified fields
  • externalId - An identifier that connects this record to external systems or databases, facilitating integration with other platforms
  • createdAt - Timestamp indicating when this contract was first created in the system
  • updatedAt - Timestamp indicating when this contract was last updated in the system
  • contactPersons - Array of associated contact persons for this contract ( ContactPersonEntity )
  • bookings - Array of associated bookings for this contract ( BookingEntity )

Enum Fields

contractType:

  • RENT
  • RENT_TO_OWN
  • SUB_RENTAL
  • RENT_WITH_PERSONNEL
  • INTERNAL_RENT

ContactPerson Entity

{
  "id": "uuid",
  "name": "string",
  "position": "string",
  "phone": "string",
  "email": "string",
  "isMain": "boolean",
  "externalId": "string",
  "contractId": "uuid",
  "updatedAt": "date-time"
}

Field descriptions:

  • id - Unique identifier for the contact person
  • name - Contact person's name
  • position - Contact person's job position or title
  • phone - Contact person's phone number
  • email - Contact person's email address
  • isMain - Whether this is the primary contact person for the contract. Only one contact person per contract can be marked as main
  • externalId - External system identifier for the contact person
  • contractId - The contract this contact person belongs to
  • updatedAt - Timestamp of most recent modification

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