Skip to main content

Save GPS API Overview

Provider can save the GPS location of the active reservations. The location can be saved as soon as chauffeur is on the way to the passenger. You can call this API as many times as you want. But not more than 1 times per second.

Endpoint

POST https://location.grdd.net/api/GGPS.svc/saveGPScache

Request Body Schema

const GPSGrabSchema = z.object({
export const DriverLocationSchema = z.object({
  griddid: z.string().nullish().describe("griddid: the grid id of the provider"),
  internalBookingId: z.string().nullish().describe("internalBookingId: the internal booking id of the reservation"),
  chfName: z.string().nullish().describe("the name of the chauffeur"),
  direction: z
    .object({
      heading: z.string().nullish().describe("heading: the heading of the vehicle"),
      magnitude: z.string().nullish().describe("magnitude: the magnitude of the vehicle"),
      unit: z.string().nullish().describe("unit: the unit of the vehicle"),
    })
    .nullish(),
  driverId: z.string().nullish().describe("driverId: the id of the driver"),
  headingDir: z.string().nullish().describe("headingDir: the heading direction of the vehicle"),
  //latitude: z.string().nullish(),
  latitude: z.coerce.number().nullish().describe("latitude: the latitude of the vehicle"),
  locationDateTime: z.string().transform((str) => new Date(str)),
  longitude: z.coerce.number().nullish().describe("longitude: the longitude of the vehicle"),
  phoneNo: z.string().nullish().describe("phoneNo: the phone number of the driver"),
  picURL: z.string().nullish().describe("picURL: the picture url of the driver"),
  systemId: z.string().nullish().describe("systemId: the system id of the vehicle"),
  transactionId: z.string().nullish().describe("transactionId: the transaction id of the reservation"),
  vehicleId: z.string().nullish().describe("vehicleId: the id of the vehicle"),
  status: z.string().nullish().describe("status: EN_ROUTE, ON_LOCATION, PASSENGER_ON_BOARD, etx"),
  from: z.string().nullish().describe("from: requester or provider"),
});

Example Request Body

{
    "chfName": "Alex Jones",
    "direction": {
      "heading": "",
      "magnitude": "",
      "unit": ""
    },
    "driverId": "",
    "griddid": "gnettest",
    "headingDir": null,
    "internalBookingId": "H123456",
    "latitude": "51.543400",
    "locationDateTime": "2025-06-04T18:41:39",
    "longitude": "-0.373100",
    "phoneNo": "+15005005000",
    "picURL": "https://www.gravatar.com/avatar/2c7d99fe281ecd3bcd65ab915bac6dd5?s=250",
    "systemId": null,
    "transactionId": "11111111-3ef3-4168-a815-8f7d5e2ea36b",
    "vehicleId": "123"
  }

Success Responses

200 - Success

Returned for both successful company registration and successful dry run validation. Standard Success Response:
{
  "success": true,
  "status": 200,
  "error": ""
}
I