PUDs

A PUD (pickup-and-delivery) is what we call a booking at Gire Mobility.

Create a test account to get started.

Test Account Setup

Create a PUD

To create a PUD you must specify the interval you wish to use. The opposite interval will then be calculated based on the estimated driving and handling time.

Create Pud

post

Create a Pud

Header parameters
x-api-tokenstringRequired

Company API key

Body
commentstringOptional

Comment

Example: This is a comment
hyreBookingIdstringOptional

Hyre booking id

Example: 123456
referenceNumberstringOptional

Reference number

Example: 123456
Responses
201
Pud created
application/json
post
POST /api/v3/puds HTTP/1.1
Host: 
x-api-token: text
Content-Type: application/json
Accept: */*
Content-Length: 704

{
  "pickup": {
    "address": "Møllergata 6",
    "postalCode": "0159",
    "comment": "Please collect keys at the reception.",
    "contactName": "John Doe",
    "contactPhone": "+4712345678",
    "notifyViaSMS": true
  },
  "delivery": {
    "address": "Møllergata 6",
    "postalCode": "0159",
    "comment": "Please collect keys at the reception.",
    "contactName": "John Doe",
    "contactPhone": "+4712345678",
    "notifyViaSMS": true
  },
  "interval": {
    "start": "2021-08-13T12:00:00Z",
    "end": "2021-08-13T14:00:00Z",
    "type": "pickup"
  },
  "vehicle": {
    "model": "Volkswagen Passat",
    "regNumber": "AB12345",
    "temporaryPlates": true
  },
  "customer": {
    "name": "John Doe",
    "phone": "+4712345678",
    "email": "johndoe@example.com"
  },
  "comment": "This is a comment",
  "hyreBookingId": "123456",
  "referenceNumber": "123456"
}
{
  "id": "text",
  "pickup": {
    "address": "Møllergata 6",
    "postalCode": "0159",
    "comment": "Please collect keys at the reception.",
    "contactName": "John Doe",
    "contactPhone": "+4712345678",
    "notifyViaSMS": true,
    "interval": {
      "start": "2021-08-13T12:00:00Z",
      "end": "2021-08-13T14:00:00Z"
    }
  },
  "delivery": {
    "address": "Møllergata 6",
    "postalCode": "0159",
    "comment": "Please collect keys at the reception.",
    "contactName": "John Doe",
    "contactPhone": "+4712345678",
    "notifyViaSMS": true,
    "interval": {
      "start": "2021-08-13T12:00:00Z",
      "end": "2021-08-13T14:00:00Z"
    }
  },
  "vehicle": {
    "model": "Volkswagen Passat",
    "regNumber": "AB12345",
    "temporaryPlates": true
  },
  "driver": {
    "name": "The Stig",
    "phone": "+4712345678",
    "photo": "https://example.com/photo.jpg"
  },
  "price": {
    "price": 1234,
    "currency": "NOK",
    "outOfArea": false
  },
  "customer": {
    "name": "John Doe",
    "phone": "+4712345678",
    "email": "johndoe@example.com"
  },
  "tripDetails": {
    "preDrive": {
      "comment": "Car required a jump start",
      "mileage": 12345,
      "photos": [
        {
          "original": "https://example.com/original.jpg",
          "thumbnail": "https://example.com/thumbnail.jpg"
        }
      ]
    },
    "postDrive": {
      "comment": "Car required a jump start",
      "mileage": 12345,
      "photos": [
        {
          "original": "https://example.com/original.jpg",
          "thumbnail": "https://example.com/thumbnail.jpg"
        }
      ]
    },
    "startedAt": "2021-08-13T12:00:00Z",
    "endedAt": "2021-08-13T12:00:00Z"
  },
  "status": "completed",
  "comment": "Please check the fuel level",
  "pickupCode": "eb9f",
  "createdAt": "2025-06-26T07:48:41.746Z",
  "updatedAt": "2025-06-26T07:48:41.746Z",
  "adminComment": "text",
  "missedTripReason": "Car did not start",
  "hyreBookingId": "text",
  "referenceNumber": "text"
}

Create immediate return Pud

post

Create a Pud with immediate return. The interval type is for the outbound leg.

Header parameters
x-api-tokenstringRequired

Company API key

Body
commentstringOptional

Comment

Example: This is a comment
hyreBookingIdstringOptional

Hyre booking id

Example: 123456
referenceNumberstringOptional

Reference number

Example: 123456
Responses
201
Immediate return Pud created
application/json
post
POST /api/v3/puds/immediate-return HTTP/1.1
Host: 
x-api-token: text
Content-Type: application/json
Accept: */*
Content-Length: 984

{
  "pickup": {
    "address": "Møllergata 6",
    "postalCode": "0159",
    "comment": "Please collect keys at the reception.",
    "contactName": "John Doe",
    "contactPhone": "+4712345678",
    "notifyViaSMS": true
  },
  "delivery": {
    "address": "Møllergata 6",
    "postalCode": "0159",
    "comment": "Please collect keys at the reception.",
    "contactName": "John Doe",
    "contactPhone": "+4712345678",
    "notifyViaSMS": true
  },
  "interval": {
    "start": "2021-08-13T12:00:00Z",
    "end": "2021-08-13T14:00:00Z",
    "type": "pickup"
  },
  "vehicle": {
    "model": "Volkswagen Passat",
    "regNumber": "AB12345",
    "temporaryPlates": true
  },
  "customer": {
    "name": "John Doe",
    "phone": "+4712345678",
    "email": "johndoe@example.com"
  },
  "comment": "This is a comment",
  "hyreBookingId": "123456",
  "referenceNumber": "123456",
  "returnDelivery": {
    "address": "Møllergata 6",
    "postalCode": "0159",
    "comment": "Please collect keys at the reception.",
    "contactName": "John Doe",
    "contactPhone": "+4712345678",
    "notifyViaSMS": true
  },
  "returnVehicle": {
    "model": "Volkswagen Passat",
    "regNumber": "AB12345",
    "temporaryPlates": true
  }
}
{
  "outboundPud": {
    "id": "text",
    "pickup": {
      "address": "Møllergata 6",
      "postalCode": "0159",
      "comment": "Please collect keys at the reception.",
      "contactName": "John Doe",
      "contactPhone": "+4712345678",
      "notifyViaSMS": true,
      "interval": {
        "start": "2021-08-13T12:00:00Z",
        "end": "2021-08-13T14:00:00Z"
      }
    },
    "delivery": {
      "address": "Møllergata 6",
      "postalCode": "0159",
      "comment": "Please collect keys at the reception.",
      "contactName": "John Doe",
      "contactPhone": "+4712345678",
      "notifyViaSMS": true,
      "interval": {
        "start": "2021-08-13T12:00:00Z",
        "end": "2021-08-13T14:00:00Z"
      }
    },
    "vehicle": {
      "model": "Volkswagen Passat",
      "regNumber": "AB12345",
      "temporaryPlates": true
    },
    "driver": {
      "name": "The Stig",
      "phone": "+4712345678",
      "photo": "https://example.com/photo.jpg"
    },
    "price": {
      "price": 1234,
      "currency": "NOK",
      "outOfArea": false
    },
    "customer": {
      "name": "John Doe",
      "phone": "+4712345678",
      "email": "johndoe@example.com"
    },
    "tripDetails": {
      "preDrive": {
        "comment": "Car required a jump start",
        "mileage": 12345,
        "photos": [
          {
            "original": "https://example.com/original.jpg",
            "thumbnail": "https://example.com/thumbnail.jpg"
          }
        ]
      },
      "postDrive": {
        "comment": "Car required a jump start",
        "mileage": 12345,
        "photos": [
          {
            "original": "https://example.com/original.jpg",
            "thumbnail": "https://example.com/thumbnail.jpg"
          }
        ]
      },
      "startedAt": "2021-08-13T12:00:00Z",
      "endedAt": "2021-08-13T12:00:00Z"
    },
    "status": "completed",
    "comment": "Please check the fuel level",
    "pickupCode": "eb9f",
    "createdAt": "2025-06-26T07:48:41.746Z",
    "updatedAt": "2025-06-26T07:48:41.746Z",
    "adminComment": "text",
    "missedTripReason": "Car did not start",
    "hyreBookingId": "text",
    "referenceNumber": "text"
  },
  "returnPud": {
    "id": "text",
    "pickup": {
      "address": "Møllergata 6",
      "postalCode": "0159",
      "comment": "Please collect keys at the reception.",
      "contactName": "John Doe",
      "contactPhone": "+4712345678",
      "notifyViaSMS": true,
      "interval": {
        "start": "2021-08-13T12:00:00Z",
        "end": "2021-08-13T14:00:00Z"
      }
    },
    "delivery": {
      "address": "Møllergata 6",
      "postalCode": "0159",
      "comment": "Please collect keys at the reception.",
      "contactName": "John Doe",
      "contactPhone": "+4712345678",
      "notifyViaSMS": true,
      "interval": {
        "start": "2021-08-13T12:00:00Z",
        "end": "2021-08-13T14:00:00Z"
      }
    },
    "vehicle": {
      "model": "Volkswagen Passat",
      "regNumber": "AB12345",
      "temporaryPlates": true
    },
    "driver": {
      "name": "The Stig",
      "phone": "+4712345678",
      "photo": "https://example.com/photo.jpg"
    },
    "price": {
      "price": 1234,
      "currency": "NOK",
      "outOfArea": false
    },
    "customer": {
      "name": "John Doe",
      "phone": "+4712345678",
      "email": "johndoe@example.com"
    },
    "tripDetails": {
      "preDrive": {
        "comment": "Car required a jump start",
        "mileage": 12345,
        "photos": [
          {
            "original": "https://example.com/original.jpg",
            "thumbnail": "https://example.com/thumbnail.jpg"
          }
        ]
      },
      "postDrive": {
        "comment": "Car required a jump start",
        "mileage": 12345,
        "photos": [
          {
            "original": "https://example.com/original.jpg",
            "thumbnail": "https://example.com/thumbnail.jpg"
          }
        ]
      },
      "startedAt": "2021-08-13T12:00:00Z",
      "endedAt": "2021-08-13T12:00:00Z"
    },
    "status": "completed",
    "comment": "Please check the fuel level",
    "pickupCode": "eb9f",
    "createdAt": "2025-06-26T07:48:41.746Z",
    "updatedAt": "2025-06-26T07:48:41.746Z",
    "adminComment": "text",
    "missedTripReason": "Car did not start",
    "hyreBookingId": "text",
    "referenceNumber": "text"
  }
}

Immediate return bookings are eligible for a 25% discount:

A-B-A bookings

A-B-C bookings (within standard delivery area)

A-B-C bookings (one or more locations outside standard delivery area)

For an immediate return PUD, the interval type specified is for the first leg of the trip.


Cancel a PUD

You can cancel a PUD as long as it isn't in progress. However, you will only receive a refund if the cancellation happens more than 12 hours before the pickup time. Cancellations after this point are considered missed trips.

Cancel Pud

delete

Cancel a Pud by id. If Pud is part of an immediate return Pud, both legs will be cancelled.

Path parameters
idstringRequired
Header parameters
x-api-tokenstringRequired

Company API key

Responses
200
Pud successfully cancelled
application/json
delete
DELETE /api/v3/puds/{id} HTTP/1.1
Host: 
x-api-token: text
Accept: */*
{
  "id": "text",
  "pickup": {
    "address": "Møllergata 6",
    "postalCode": "0159",
    "comment": "Please collect keys at the reception.",
    "contactName": "John Doe",
    "contactPhone": "+4712345678",
    "notifyViaSMS": true,
    "interval": {
      "start": "2021-08-13T12:00:00Z",
      "end": "2021-08-13T14:00:00Z"
    }
  },
  "delivery": {
    "address": "Møllergata 6",
    "postalCode": "0159",
    "comment": "Please collect keys at the reception.",
    "contactName": "John Doe",
    "contactPhone": "+4712345678",
    "notifyViaSMS": true,
    "interval": {
      "start": "2021-08-13T12:00:00Z",
      "end": "2021-08-13T14:00:00Z"
    }
  },
  "vehicle": {
    "model": "Volkswagen Passat",
    "regNumber": "AB12345",
    "temporaryPlates": true
  },
  "driver": {
    "name": "The Stig",
    "phone": "+4712345678",
    "photo": "https://example.com/photo.jpg"
  },
  "price": {
    "price": 1234,
    "currency": "NOK",
    "outOfArea": false
  },
  "customer": {
    "name": "John Doe",
    "phone": "+4712345678",
    "email": "johndoe@example.com"
  },
  "tripDetails": {
    "preDrive": {
      "comment": "Car required a jump start",
      "mileage": 12345,
      "photos": [
        {
          "original": "https://example.com/original.jpg",
          "thumbnail": "https://example.com/thumbnail.jpg"
        }
      ]
    },
    "postDrive": {
      "comment": "Car required a jump start",
      "mileage": 12345,
      "photos": [
        {
          "original": "https://example.com/original.jpg",
          "thumbnail": "https://example.com/thumbnail.jpg"
        }
      ]
    },
    "startedAt": "2021-08-13T12:00:00Z",
    "endedAt": "2021-08-13T12:00:00Z"
  },
  "status": "completed",
  "comment": "Please check the fuel level",
  "pickupCode": "eb9f",
  "createdAt": "2025-06-26T07:48:41.746Z",
  "updatedAt": "2025-06-26T07:48:41.746Z",
  "adminComment": "text",
  "missedTripReason": "Car did not start",
  "hyreBookingId": "text",
  "referenceNumber": "text"
}

Update a PUD

You can update certain information about a PUD, like contact and vehicle information.

Update Pud

patch

Update a Pud by id

Path parameters
idstringRequired
Header parameters
x-api-tokenstringRequired

Company API key

Body
commentstringOptional

Comment

Example: Please handle with care
referenceNumberstringOptional

Reference number

Example: REF123456
hyreBookingIdstringOptional

Hyre booking id

Example: 123456
Responses
200
Pud updated
application/json
patch
PATCH /api/v3/puds/{id} HTTP/1.1
Host: 
x-api-token: text
Content-Type: application/json
Accept: */*
Content-Length: 509

{
  "customer": {
    "name": "John Doe",
    "phone": "+4712345678",
    "email": "johndoe@example.com"
  },
  "pickup": {
    "comment": "Please collect keys at the reception.",
    "contactName": "John Doe",
    "contactPhone": "+4712345678",
    "notifyViaSMS": true
  },
  "delivery": {
    "comment": "Please collect keys at the reception.",
    "contactName": "John Doe",
    "contactPhone": "+4712345678",
    "notifyViaSMS": true
  },
  "vehicle": {
    "model": "Volkswagen Passat",
    "regNumber": "AB12345"
  },
  "comment": "Please handle with care",
  "referenceNumber": "REF123456",
  "hyreBookingId": "123456"
}
{
  "id": "text",
  "pickup": {
    "address": "Møllergata 6",
    "postalCode": "0159",
    "comment": "Please collect keys at the reception.",
    "contactName": "John Doe",
    "contactPhone": "+4712345678",
    "notifyViaSMS": true,
    "interval": {
      "start": "2021-08-13T12:00:00Z",
      "end": "2021-08-13T14:00:00Z"
    }
  },
  "delivery": {
    "address": "Møllergata 6",
    "postalCode": "0159",
    "comment": "Please collect keys at the reception.",
    "contactName": "John Doe",
    "contactPhone": "+4712345678",
    "notifyViaSMS": true,
    "interval": {
      "start": "2021-08-13T12:00:00Z",
      "end": "2021-08-13T14:00:00Z"
    }
  },
  "vehicle": {
    "model": "Volkswagen Passat",
    "regNumber": "AB12345",
    "temporaryPlates": true
  },
  "driver": {
    "name": "The Stig",
    "phone": "+4712345678",
    "photo": "https://example.com/photo.jpg"
  },
  "price": {
    "price": 1234,
    "currency": "NOK",
    "outOfArea": false
  },
  "customer": {
    "name": "John Doe",
    "phone": "+4712345678",
    "email": "johndoe@example.com"
  },
  "tripDetails": {
    "preDrive": {
      "comment": "Car required a jump start",
      "mileage": 12345,
      "photos": [
        {
          "original": "https://example.com/original.jpg",
          "thumbnail": "https://example.com/thumbnail.jpg"
        }
      ]
    },
    "postDrive": {
      "comment": "Car required a jump start",
      "mileage": 12345,
      "photos": [
        {
          "original": "https://example.com/original.jpg",
          "thumbnail": "https://example.com/thumbnail.jpg"
        }
      ]
    },
    "startedAt": "2021-08-13T12:00:00Z",
    "endedAt": "2021-08-13T12:00:00Z"
  },
  "status": "completed",
  "comment": "Please check the fuel level",
  "pickupCode": "eb9f",
  "createdAt": "2025-06-26T07:48:41.746Z",
  "updatedAt": "2025-06-26T07:48:41.746Z",
  "adminComment": "text",
  "missedTripReason": "Car did not start",
  "hyreBookingId": "text",
  "referenceNumber": "text"
}

Get PUD

You can retrieve

Get Pud

get

Get Pud by id

Path parameters
idstringRequired
Header parameters
x-api-tokenstringRequired

Company API key

Responses
200
Pud found
application/json
get
GET /api/v3/puds/{id} HTTP/1.1
Host: 
x-api-token: text
Accept: */*
{
  "id": "text",
  "pickup": {
    "address": "Møllergata 6",
    "postalCode": "0159",
    "comment": "Please collect keys at the reception.",
    "contactName": "John Doe",
    "contactPhone": "+4712345678",
    "notifyViaSMS": true,
    "interval": {
      "start": "2021-08-13T12:00:00Z",
      "end": "2021-08-13T14:00:00Z"
    }
  },
  "delivery": {
    "address": "Møllergata 6",
    "postalCode": "0159",
    "comment": "Please collect keys at the reception.",
    "contactName": "John Doe",
    "contactPhone": "+4712345678",
    "notifyViaSMS": true,
    "interval": {
      "start": "2021-08-13T12:00:00Z",
      "end": "2021-08-13T14:00:00Z"
    }
  },
  "vehicle": {
    "model": "Volkswagen Passat",
    "regNumber": "AB12345",
    "temporaryPlates": true
  },
  "driver": {
    "name": "The Stig",
    "phone": "+4712345678",
    "photo": "https://example.com/photo.jpg"
  },
  "price": {
    "price": 1234,
    "currency": "NOK",
    "outOfArea": false
  },
  "customer": {
    "name": "John Doe",
    "phone": "+4712345678",
    "email": "johndoe@example.com"
  },
  "tripDetails": {
    "preDrive": {
      "comment": "Car required a jump start",
      "mileage": 12345,
      "photos": [
        {
          "original": "https://example.com/original.jpg",
          "thumbnail": "https://example.com/thumbnail.jpg"
        }
      ]
    },
    "postDrive": {
      "comment": "Car required a jump start",
      "mileage": 12345,
      "photos": [
        {
          "original": "https://example.com/original.jpg",
          "thumbnail": "https://example.com/thumbnail.jpg"
        }
      ]
    },
    "startedAt": "2021-08-13T12:00:00Z",
    "endedAt": "2021-08-13T12:00:00Z"
  },
  "status": "completed",
  "comment": "Please check the fuel level",
  "pickupCode": "eb9f",
  "createdAt": "2025-06-26T07:48:41.746Z",
  "updatedAt": "2025-06-26T07:48:41.746Z",
  "adminComment": "text",
  "missedTripReason": "Car did not start",
  "hyreBookingId": "text",
  "referenceNumber": "text"
}

Get Puds

get

Get Puds for a company

Header parameters
x-api-tokenstringRequired

Company API key

Responses
200
Puds found
application/json
get
GET /api/v3/puds HTTP/1.1
Host: 
x-api-token: text
Accept: */*
[
  {
    "id": "text",
    "pickup": {
      "address": "Møllergata 6",
      "postalCode": "0159",
      "comment": "Please collect keys at the reception.",
      "contactName": "John Doe",
      "contactPhone": "+4712345678",
      "notifyViaSMS": true,
      "interval": {
        "start": "2021-08-13T12:00:00Z",
        "end": "2021-08-13T14:00:00Z"
      }
    },
    "delivery": {
      "address": "Møllergata 6",
      "postalCode": "0159",
      "comment": "Please collect keys at the reception.",
      "contactName": "John Doe",
      "contactPhone": "+4712345678",
      "notifyViaSMS": true,
      "interval": {
        "start": "2021-08-13T12:00:00Z",
        "end": "2021-08-13T14:00:00Z"
      }
    },
    "vehicle": {
      "model": "Volkswagen Passat",
      "regNumber": "AB12345",
      "temporaryPlates": true
    },
    "driver": {
      "name": "The Stig",
      "phone": "+4712345678",
      "photo": "https://example.com/photo.jpg"
    },
    "price": {
      "price": 1234,
      "currency": "NOK",
      "outOfArea": false
    },
    "customer": {
      "name": "John Doe",
      "phone": "+4712345678",
      "email": "johndoe@example.com"
    },
    "tripDetails": {
      "preDrive": {
        "comment": "Car required a jump start",
        "mileage": 12345,
        "photos": [
          {
            "original": "https://example.com/original.jpg",
            "thumbnail": "https://example.com/thumbnail.jpg"
          }
        ]
      },
      "postDrive": {
        "comment": "Car required a jump start",
        "mileage": 12345,
        "photos": [
          {
            "original": "https://example.com/original.jpg",
            "thumbnail": "https://example.com/thumbnail.jpg"
          }
        ]
      },
      "startedAt": "2021-08-13T12:00:00Z",
      "endedAt": "2021-08-13T12:00:00Z"
    },
    "status": "completed",
    "comment": "Please check the fuel level",
    "pickupCode": "eb9f",
    "createdAt": "2025-06-26T07:48:41.746Z",
    "updatedAt": "2025-06-26T07:48:41.746Z",
    "adminComment": "text",
    "missedTripReason": "Car did not start",
    "hyreBookingId": "text",
    "referenceNumber": "text"
  }
]

Get Pud count

get

Get Pud count for a company

Header parameters
x-api-tokenstringRequired

Company API key

Responses
200
Pud count
application/json
get
GET /api/v3/puds/count HTTP/1.1
Host: 
x-api-token: text
Accept: */*
{
  "count": 1
}
Booking restrictions

Last updated