> ## Documentation Index
> Fetch the complete documentation index at: https://docs.grdd.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Save GPS

> Save GPS location of the active reservations.

## 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**

```ts theme={null}
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**

```json theme={null}
{
    "chfName": "Jane Doe",
    "direction": {
      "heading": "",
      "magnitude": "",
      "unit": ""
    },
    "driverId": "",
    "griddid": "gnettest",
    "headingDir": null,
    "internalBookingId": "H123456",
    "latitude": "51.543400",
    "locationDateTime": "2025-06-04T18:41:39",
    "longitude": "-0.373100",
    "phoneNo": "+15555555555",
    "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:**

```json theme={null}
{
  "success": true,
  "status": 200,
  "error": ""
}
```
