GS- Multi Rider API DOC

Created by Moveinsync Help, Modified on Thu, 29 Oct at 8:46 AM by Moveinsync Help

Multiple rider sign in/out vendor integration booking document


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.





Base URL

1) https://api.moveinsync.com (singapore region)

2) https://api.moveinsync.in (india region)


Note: Select the appropriate base URL (.com or .in) based on the customer's site URL.

Scenario 1: If the customer site URL is https://abcd.moveinsync.com/IND/login, use the following base URL: https://api.moveinsync.com

Scenario 2: If the customer site URL is https://efgh.moveinsync.in/IND/login, use the following base URL: https://api.moveinsync.in


Authentication

All APIs require Bearer Token authentication.


Generate Access Token

Endpoint

POST https://api.moveinsync.com/auth/token

 or

 POST https://api.moveinsync.in/auth/token

Curl : 

curl --location 'https://api.moveinsync.com/auth/token' \

--header 'Accept: application/json' \

--header 'Content-Type: application/x-www-form-urlencoded' \

--header 'Authorization: Basic dGVzdDp0ZXN0' \

--data-urlencode 'grant_type=client_credentials'

The above curl is a dummy curl with test username and password


NOTE : In Auth , auth type - "Basic Auth"

Fill the username and password which you will receive from MIS


You need to add token in all API calls to MIS (eg : vendor acceptance , OTP , cab etc) in Headers Authorization : Bearer <access_token>

Used to generate a JWT access token for API authentication.

Notes

  • Production credentials will be shared separately


Auth (Basic Auth)

Header

Value

Username

<username>

Password

<password>




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

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"

}



 End-to-End API Chronology (Booking Lifecycle Flow)

This section defines the sequence in which APIs should be called during the lifecycle of a booking, from vendor acceptance to trip completion.



Step 1: Vendor Acceptance

POST Vendor Acceptance

https://api.moveinsync.com/integration/{{client-id}}/rentlz/booking/status
or
https://api.moveinsync.in/integration/{{client-id}}/rentlz/booking/status

In the headers , Authorization : Bearer <access_token> from the above auth API mentioned

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"

}


 

 Step 2: OTP Submission (Trip Verification Setup)

Endpoint

https://api.moveinsync.com/integration/{client-id}/rentlz/booking/v2/otp
or
https://api.moveinsync.in/integration/{client-id}/rentlz/booking/v2/otp


Description

This API is used to submit OTPs associated with a booking to verify check-in (Sign-In) and check-out (Sign-Out) events.

  • Both signInOtp and signOutOtp must be provided.

  • If the same OTP is used for both events, pass the same value in both fields.

  • OTP must be sent separately for each rider.


Field Details

Field

Description

bookingId

Unique identifier for the booking in the MoveInSync system

signInOtp

sign in OTP of the rider

signOutOtp

sign out OTP of the rider


uniqueRiderEmail

Unique identifier for each rider (OTP must be sent per rider)

client

Unique identifier of the customer (e.g., gs2-UAT, pwcindia-PWCINDIA)


Request Body

[

  {

    "bookingId": "BLR-XXXX-XXXX-XOBB",

    "signInOtp": "1234",

    "signOutOtp": "6789",

    "uniqueRiderEmail": "rider1@gmail.com",

    "client": "pwcindia-PWCINDIA"

  },

  {

    "bookingId": "BLR-XXXX-XXXX-XO1BB",

    "signInOtp": "1234",

    "signOutOtp": "5678",

    "uniqueRiderEmail": "rider2@gmail.com",

    "client": "gs2-UAT"

  }

]


Sample Curl

curl --location --globoff 'https://api.moveinsync.com/integration/{client-id}/rentlz/booking/v2/otp' \

--header 'Authorization: Bearer <Your token>' \

--header 'Content-Type: application/json' \

--data-raw '[

  {

    "bookingId": "BLR-XXXX-XXXX-XOBB",

    "signInOtp": "1234",

    "signOutOtp": "6789",

    "uniqueRiderEmail": "rider1@gmail.com",

    "client": "pwcindia-PWCINDIA"

  },

  {

    "bookingId": "BLR-XXXX-XXXX-XO1BB",

    "signInOtp": "1234",

    "signOutOtp": "5678",

    "uniqueRiderEmail": "rider2@gmail.com",

    "client": "gs2-UAT"

  }

]'



Notes

  • Same OTP can be reused for both fields if applicable.

  • Each rider must have a separate entry.


Step 3: Cab & Driver Allocation

POST Cab Driver Allocation

https://api.moveinsync.com/integration/{{client-id}}/rentlz/booking/assign/cab-driver
or
https://api.moveinsync.in/integration/{{
client-id}}/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"

}


Step 4: Duty Start & Trip Start

POST Duty-Trip Details

https://api.moveinsync.com/integration/{{client-id}}/rentlz/booking/start-end
or
https://api.moveinsync.in/integration/{{
client-id}}/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": "startDuty",

"client": "test-test"

}


Note: Event Sequence

Each booking goes through four duty events: startDuty, startTrip, endTrip, and endDuty. Send them in this order:

  1. startDuty: marks the start of the driver’s duty.
  2. startTrip: marks the start of the trip.
  3. Rider attendance: submit  attendance for all riders on the trip using the attendance API described below.
  4. endTrip: marks the end of the trip.
  5. endDuty: marks the end of the driver’s duty.

Attendance must be submitted after startTrip and before endTrip. Requests sent outside this window will be rejected.



 Step 5: Attendance Events (During Trip)

Endpoint

https://api.moveinsync.com/integration/{client-id}/rentlz/booking/attendance
or
https://api.moveinsync.in/integration/{client-id}/rentlz/booking/attendance


Description

This API is used to log employee events such as:

  • SIGNIN

  • SIGNOUT

  • NOSHOW

Each request includes booking details, rider details, location, and timestamp.


Field Details

Field

Description

bookingId

Unique identifier for the booking

lat

Latitude

lang

Longitude

time

Timestamp in epoch milliseconds

eventName

Event type

uniqueRiderEmail

Rider identifier

client

Client identifier


Allowed eventName Values

  • SIGNIN

  • SIGNOUT

  • NOSHOW


Request Body (Sample)

{

  "bookingId": "BLR-XXXX-XXXX-XOBB",

  "lat": "22.6211559",

  "lang": "88.4324648",

  "time": 1774806186000,

  "eventName": "SIGNIN",

  "uniqueRiderEmail": "rider1@gmail.com",

  "client": "gs2-UAT"

}


Sample Curl

curl --location --globoff 'https://api.moveinsync.com/integration/{client-id}/rentlz/booking/attendance' \

--header 'Authorization: Bearer <your token>' \

--header 'Content-Type: application/json' \

--data-raw '{

  "bookingId": "BLR-XXXX-XXXX-XO1B",

  "lat": "22.6211559",

  "lang": "88.4324648",

  "time": 1774806186000,

  "eventName": "SIGNIN",

  "uniqueRiderEmail": "rider1@gmail.com",

  "client": "gs2-UAT"

}'



Description
This API captures employee attendance events during the trip lifecycle. 

Attendance must be submitted after startTrip and before endTrip. Requests sent outside this window will be rejected.

Step 6: Tracking

POST Tracking

https://api.moveinsync.com/integration/{{client-id}}/rentlz/booking/track
or
https://api.moveinsync.in/integration/{{client-id}}/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}}"

}


Step 7: Raw Invoice Detail

POST  Raw Invoice Data

https://api.moveinsync.com/integration/{{client-id}}/rentlz/booking/raw-invoicing-data
or
https://api.moveinsync.in/integration/{{
client-id}}/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": "test-id",

"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

Let us know how can we improve this article!

Select at least one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article