Vendor Integration API Documentation
Booking Lifecycle & Operational APIs
This document defines the complete set of APIs required for integration between the vendor platform and the MoveInSync Rentlz platform. It covers the complete booking lifecycle flow from booking creation to trip completion and invoicing.
Overview
Purpose
These APIs enable seamless communication between MoveInSync (MIS) and vendor systems for:
Booking creation and management
Driver and cab allocation
Real-time tracking
Trip lifecycle updates
Billing and invoicing
End-to-End Booking Lifecycle Flow
The following sequence defines the recommended order in which APIs should be triggered during the lifecycle of a booking.
Base URL
Authentication
All APIs require Bearer Token authentication.
Header:
Authorization: Bearer <access_token>
Content-Type: application/json
Generate Access Token
Endpoint
POST https://api.moveinsync.com/auth/token
Description
Used to generate a JWT access token for API authentication.
Notes
Token validity: 24 hours
Production credentials will be shared separately
Request Headers
POST Booking Creation
Vendor needs to provide their endpoints to MIS , MIS will call vendor system for this
This API serves as the primary initiation point. Once a vendor is assigned to a booking, the system MIS transmits the complete booking data to the vendor. This enables the vendor to automatically generate a corresponding record within their internal system, ensuring data synchronization from the outset.
Field Details:
booker: Contains information about the person who booked the service.
name: The name of the booker.
email: Email address of the booker.
mobile: Mobile number of the booker.
bookingId: The unique identifier for the booking that is being created.
reason: The reason for the modification (e.g., "update pickup time," "change vehicle type").
spotBookings: Contains the details of the spot booking being created.
city: The city where the booking is taking place.
spotBookingType: Type of booking (e.g., Airport PickUp).
destinationCity: The destination city if applicable (e.g., for intercity bookings).
vehicleType: The type of vehicle (e.g., Mercedes C-Class).
reason: Reason for the specific booking (e.g., booking creation test).
flightDetails: Flight information if it's an airport pickup/drop booking.
vendor: Vendor information if applicable.
guardReq: Whether an escort is required or not (boolean).
riders: List of riders associated with the booking.
name: Rider’s name.
email: Rider’s email.
phoneCode: Country code for the phone number.
mobile: Rider’s mobile number.
stops: List of stops during the trip. Each stop includes:
address: The stop's address.
time: Time of the stop. All timestamps must be sent in Epoch Milliseconds.
priorityOrder: Priority order of the stop.
geoCord: Geographical coordinates of the stop.
pointType: Type of stop (e.g., "START," "END").
riderMailIds: List of rider emails associated with the stop (used for pickups/drops).
Bodyraw (json)
{
"bookingId": "PUN-BEN-1926-CjW2",
"client": "test-test",
"city": "Pune",
"spotBookingType": "At Disposal (8H80KM)",
"vehicleType": "Toyota Etios / Suzuki Dzire",
"flightDetails": ".",
"guardReq": false,
"requester": {
"name": "Raghuram V",
"email": "dummy@abc.com",
"mobile": "1234567890",
"uniqueRiderId": 0
},
"booker": {
"name": "Raghuram V",
"email": "dummy@abc.com",
"mobile": "1234567890",
"uniqueRiderId": 0
},
"stops": [
{
"address": "Hyatt Pune, Pune Nagar Road, adjacent to Aga Khan Palace, Kalyani Nagar, Pune, Maharashtra, India",
"time": 1778124600000,
"priorityOrder": 1,
"geoCord": "18.554144,73.904842",
"landmark": "",
"pointType": "START",
"riders": [
{
"boardingType": "PickUp",
"name": "Raghuram V",
"email": "dummy@abc.com",
"mobile": "1234567890",
"emplGuid": "",
"phoneCode": "+91",
"gender": "Male",
"uniqueRiderId": 0
}
]
},
{
"address": "Hyatt Pune, Pune Nagar Road, adjacent to Aga Khan Palace, Kalyani Nagar, Pune, Maharashtra, India",
"time": 1778124600000,
"priorityOrder": 2,
"geoCord": "18.554144,73.904842",
"landmark": "",
"pointType": "",
"riders": []
},
{
"address": "Hyatt Pune, Pune Nagar Road, adjacent to Aga Khan Palace, Kalyani Nagar, Pune, Maharashtra, India",
"time": 1778124600000,
"priorityOrder": 3,
"geoCord": "18.554144,73.904842",
"landmark": "",
"pointType": "END",
"riders": [
{
"boardingType": "Drop",
"name": "Raghuram V",
"email": "dummy@abc.com",
"mobile": "1234567890",
"emplGuid": "",
"phoneCode": "+91",
"gender": "Male",
"uniqueRiderId": 0
}
]
}
]
}
POST Booking Edit
Vendor needs to provide their endpoints to MIS , MIS will call vendor system for this
To maintain data integrity during the pre-trip phase, any modifications made by the user to an existing booking are synchronized through this endpoint. The updated information is passed on to the vendor by using this API to ensure their dispatch records reflect the most recent requirements.
modifier: Email address of the user requesting the edit.
bookingId: Unique MoveInSync booking ID to be edited.
reason: Reason provided for the edit (e.g., "change of plan", etc.).
Bodyraw (json)
{
"bookingId": "BLR-BEN-1926-ty6F",
"client": "test-test",
"city": "Bengaluru",
"spotBookingType": "At Disposal (8H80KM)",
"vehicleType": "Honda City / Maruti Ciaz",
"reason": "",
"flightDetails": "NA",
"guardReq": false,
"modifier": {
"uniqueRiderId": 0
},
"stops": [
{
"address": "13th Cross Road, BEL Layout 1st Block, BEL Layout, Vidyaranyapura, Bengaluru, Karnataka 560097, India",
"time": 1778133600000,
"priorityOrder": 1,
"geoCord": "13.073072,77.552497",
"landmark": "344Kalpavruksha 13th cross 3rd block 4th main BEL Layout Vidyaranyapura Bengaluru 560097",
"pointType": "START",
"riders": [
{
"boardingType": "PickUp",
"name": " Iyer",
"email": "yer@abc.com",
"mobile": "1234567890",
"emplGuid": "",
"phoneCode": "+91",
"gender": "Male",
"uniqueRiderId": 0
}
]
},
{
"address": "Bangalore, Karnataka, India",
"time": 1778136435000,
"priorityOrder": 2,
"geoCord": "12.962896,77.57754",
"landmark": "AT DISPOSAL",
"pointType": "END",
"riders": [
{
"boardingType": "Drop",
"name": " Iyer",
"email": "yer@abc.com",
"mobile": "1234567890",
"emplGuid": "",
"phoneCode": "+91",
"gender": "Male",
"uniqueRiderId": 0
}
]
}
}
POST Booking Cancellation
Vendor needs to provide their endpoints to MIS , MIS will call vendor system for this
In the event of a cancellation, this API provides immediate notification to the vendor. The updated status is passed on to the vendor by using this API to facilitate the immediate release of reserved resources and prevent unnecessary vehicle movement.
Field Details:
modifier: Email address of the user requesting the cancellation.
bookingId: Unique MoveInSync booking ID to be canceled.
reason: Reason provided for the cancellation (e.g., "change of plan", "duplicate booking", etc.).
Bodyraw (json)
{
"bookingId": "HYD-KOLD-XXXX-KYCD",
"modifier": "sharma@abc.com",
"reason": "test",
"client": "test-test"
}
POST Vendor Acceptance
https://api.moveinsync.com/integration/{{pwcindia-PWCINDIA}}/rentlz/booking/status
This feedback loop is utilized for the vendor to communicate their capability to fulfill a request. When a vendor has either accepted or rejected a booking, the confirmation details are passed through this API to update the primary system's allocation status.
Status can have the following values:
ACCEPT: Indicates that the booking has been accepted.
DENY: Indicates that the booking has been rejected.
HEADERS
Authorization
Bearer {{access_token}}
Bodyraw (json)
{
"bookingId": "HYD-CHE-1111-WM7L",
"status": "ACCEPT",
"client": "test-test"
}
POST OTP
https://api.moveinsync.com/integration/{{pwcindia-PWCINDIA}}/rentlz/booking/otp
The vendor shares unique One-Time Passwords (OTPs) through this API to be used for the signin and signout procedures of the trip. These credentials must be shared before the final allocation is completed.
signInOtp is the OTP used to verify the start of the trip.
signOutOtp is the OTP used to verify the end of the trip.
If the same OTP is used for both sign-in and sign-out, repeat the same value in both fields.
HEADERS
Authorization
Bearer {{access_token}}
Bodyraw (json)
{
"bookingId": "MUM-ind-1826-FSXW",
"signInOtp": "1234",
"singOutOtp": "5678"
"client": "test-test"
}
POST Cab Driver Allocation
https://api.moveinsync.com/integration/{{pwcindia-PWCINDIA}}/rentlz/booking/assign/cab-driver
This API allows the vendor to send the cab and driver details assigned to a specific booking. The provided information includes the booking ID, the registration number of the cab, the driver's name and mobile number, as well as the type of cab assigned. This ensures that the system receives accurate details about the cab and driver to further transmit this information to the riders.
HEADERS
Authorization
Bearer {{access_token}}
Bodyraw (json)
{
"bookingId": "KOL-PORA-1926-QFC8",
"cabRegNo": "KA05A 1542",
"driverName": "Ankit",
"driverMobile": "1234567890",
"cabType": "TOYOTA CRYSTA",
"client": "test-test"
}
POST Duty-Trip Details
https://api.moveinsync.com/integration/{{pwcindia-PWCINDIA}}/rentlz/booking/start-end
This API is used to log a driver-related event (such as duty start/end or trip start/end) for a given booking. Each event submission includes the location coordinates and timestamp of when the event occurred.
Field Details:
lat: Latitude where the event was recorded.
lang: Longitude where the event was recorded.
time: Timestamp of the event in epoch milliseconds.
eventName: Name of the event being logged. Must be one of the following:
startDuty
startTrip
endTrip
endDuty
Notes:
The API ensures accurate tracking of a driver's duty and trip lifecycle.
Make sure the eventName matches one of the allowed values to avoid validation errors.
time should be sent in epoch milliseconds format (e.g., 1713703420000).
HEADERS
Authorization
Bearer {{access_token}}
Bodyraw (json)
{
"bookingId": "DEL-KOLY-1926-1234",
"lat": "28.6001017",
"lang": "77.10281",
"time": 1778051915000,
"eventName": "endDuty",
"client": "test-test"
}
POST Tracking
https://api.moveinsync.com/integration/{{pwcindia-PWCINDIA}}/rentlz/booking/track
This API is used to send real-time tracking updates for a booking, including vehicle location, movement data (bearing, speed, accuracy), and event type. This enables precise monitoring of the vehicle throughout its journey.
Field Details:
mBearing: Direction in degrees the vehicle is moving.
mSpeed: Speed of the vehicle (usually in m/s or km/h).
mStep: Motion step or change in movement (custom logic defined by client, optional meaning).
mAccuracy: Accuracy of the geolocation coordinates (in meters).
type: Type of tracking event. Must be one of:
dispatch: Driver starts from the garage to reach the pickup point.
arrived: Cab has arrived at the pickup location.
pickup: Ongoing trip between pickup and drop point.
drop: Cab has reached the final drop/destination.
time: Epoch time in milliseconds when the data was captured.
latitude: Latitude coordinate of the vehicle.
longitude: Longitude coordinate of the vehicle.
HEADERS
Authorization
Bearer {{access_token}}
Bodyraw (json)
{
"bookingId": "{{MoveInSync Booking ID}}",
"mBearing": {{Bearing}},
"mSpeed": {{Speed}},
"mStep": {{Step}},
"mAccuracy": {{Accuracy}},
"type": "{{Type}}",
"time": {{Time}},
"latitude": {{Latitude Geocord}},
"longitude": {{Longitude Geocord}},
"client": "{test-test}}"
}
POST Raw Invoice Data
https://api.moveinsync.com/integration/{{pwcindia-PWCINDIA}}/rentlz/booking/raw-invoicing-data
This API is used to submit raw invoicing data associated with a specific booking. The data includes trip information such as the distance traveled, time taken, and driver-related information like the number of driver day and night batches.
Explanation of Request Body Fields:
bookingId: Unique identifier for the booking (e.g., B230411-Z8MA).
tripKm: Total distance of the trip in kilometers.
tripHr: Total time of the trip in hours.
driverDayBataCount: Number of driver day batches (per day).
driverNightBataCount: Number of driver night batches.
garageToPickupKm: Distance in kilometers from the garage to the pickup point.
dropToGarageKm: Distance in kilometers from the drop-off point to the garage.
garageHr: Number of hours spent at the garage.
waitingTime: Waiting time in hours.
escortFareApplicable: Boolean flag indicating if an escort fare is applicable.
numberOfDays: Total number of days for the trip.
legs: Array of legs, each representing a segment of the trip. Each leg contains:
legDistance: Distance of the leg in kilometers.
legStartTime: Start time of the leg in milliseconds (Unix epoch time).
legEndTime: End time of the leg in milliseconds (Unix epoch time).
HEADERS
Authorization
Bearer {{access_token}}
Bodyraw (json)
Raw invoice data for any booking type but not an outstation
{
"bookingId": "KOL-GUR-0826-1234",
"tripKm": 35,
"tripHr": 4.4166665,
"driverDayBataCount": 0,
"driverNightBataCount": 0,
"garageToPickupKm": 10,
"dropToGarageKm": 10,
"garageHr": 1,
"waitingTime": 0,
"escortFareApplicable": false,
"numberOfDays": 0,
"client": "test-test"
Raw booking data for outstation booking type
The difference is that for outstations the bookings can go for more than one day , hence the vendor needs to send each day data in legs.
{
"bookingId": "GGN-GUR-1426-UOG4",
"tripKm": 414.0,
"tripHr": 10.833333,
"driverDayBataCount": 1.0,
"driverNightBataCount": 0.0,
"garageToPickupKm": 6.0,
"dropToGarageKm": 6.0,
"garageHr": 2.0,
"waitingTime": 0.0,
"escortFareApplicable": false,
"numberOfDays": 1,
"client": "pwcindia-PWCINDIA",
"legs": [
{
"legDistance": 414.0,
"legStartTime": 1775007000000,
"legEndTime": 1775049600000
}
]
}
Was this article helpful?
That’s Great!
Thank you for your feedback
Sorry! We couldn't be helpful
Thank you for your feedback
Feedback sent
We appreciate your effort and will try to fix the article