TEQ Public API (1.0)

Download OpenAPI specification:

Introduction

With the TEQ API you can integrate your system with the TEQ platform. The API is designed to be easy to use and to provide a seamless integration experience.

The TEQ API is built on HTTP and is RESTful. It has predictable resource URLs and returns HTTP response codes to indicate errors. It also accepts and returns JSON in the HTTP body. Use your favorite HTTP/REST library in your programming language when using this API. This API reference documentation contains the most commonly integrated resources.

Authentication

The API uses OAuth2 for authentication. You will need to obtain an access token to use the API. The access token should be included in the Authorization header of each request. To obtain your access credentials, please contact TEQ support on (support@ferdia.co).

OAuth 2.0 flow

The Authentication supports OAuth 2.0 Client Credentials flow

Authentication-endpoints:

Domain-header

For all API requests an HTTP-header domain must be included. This header should contain the domain/company name that the API-call should be directed to. You will receive this domain name when you sign up for the TEQ API.

TimeZone

The API uses the timezone of the client of the request to calculate dates and times. The timezone should be included in the HTTP-header TimeZone in the format Continent/City (e.g. Europe/Berlin).

Operations/Trips

Returns a list of trips

Returns a list of trips based on the filters provided

query Parameters
triptype
string
Examples:
  • triptype=normal - Normal trips
  • triptype=vip - VIP trips
  • triptype=airport - Airport trips

Trip type

status
string
Examples:
  • status=planning - Planning
  • status=running - running
  • status=closed - Closed

Trip status

department
integer
Example: department=1

The trip department Id

fromDate
string <date>
Example: fromDate=2026-03-01

From Date

toDate
string <date>
Example: toDate=2026-03-02

To Date

customerId
integer
Example: customerId=1000

The Id of the customer for the trip

driverId
integer
Example: driverId=251

The Id of the driver assigned to the trip

vehicleId
integer
Example: vehicleId=9

The Id of the vehicle assigned to the trip

header Parameters
domain
required
string
Example: ferdia

The domain/company to direct the API-call to

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Returns a single trip

Returns a single trip

path Parameters
id
required
string
Example: TQ-001001-S01-N001

Trip Id

header Parameters
domain
required
string
Example: ferdia

The domain/company to direct the API-call to

Responses

Response samples

Content type
application/json
{
  • "tripID": "TQ-001001-S01-N001",
  • "tripType": "NORMAL",
  • "status": "planning",
  • "vehicleID": 10,
  • "driverID": 100,
  • "customerId": 1000,
  • "contactPerson": "John Doe",
  • "pax": 26,
  • "travelFrom": {
    },
  • "travelTo": {
    },
  • "garage": {
    },
  • "withdrawal": {
    },
  • "deliver": {
    },
  • "viaPoints": [
    ],
  • "flag": false,
  • "sign": "Sign value",
  • "alternativeTripName": "Field excursion",
  • "tripExecution": [
    ]
}

Gets the current status of a trip

Gets the current status of a trip

path Parameters
id
required
string
Example: TE-0000001-S01-N001

Trip Id

header Parameters
domain
required
string
Example: ferdia

The domain/company to direct the API-call to

Responses

Response samples

Content type
application/json
{
  • "status": "planning",
  • "current_location": {
    }
}

Sales/Customers

Creates a new customer

Creates a new customer

header Parameters
domain
required
string
Example: ferdia

The domain/company to direct the API-call to

Request Body schema: application/json
required

Customer data

name
string
email
string <email>
selectAsInvoiceEmail
boolean
invoiceEmail
string <email>
type
string (CustomerType)
Enum: "person" "organization"
orgno
string
object (CustomerCategory)
customerNumber
string
parentCustomerId
integer
object (CustomerAddress)
object (CustomerAddress)
notes
string
paymentType
string
Enum: "Invoice" "Vipps" "Cash" "Card"
deadline
integer
creditLimit
integer
invoiceMethod
string
Enum: "Email" "Post"
purchaseOrder
string
language
string
Enum: "Norwegian" "English" "Swedish" "Danish"
currency
string
Enum: "NOK" "SEK" "DKK" "EUR" "USD" "GBP" "BDT"
EAN
string
VATNumber
string
includeVAT
boolean
displayVAT
boolean
fixedDiscountPercentage
number
Array of objects (NewContactPerson)

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "email": "user@example.com",
  • "selectAsInvoiceEmail": true,
  • "invoiceEmail": "invoice@customer.com",
  • "type": "person",
  • "orgno": "string",
  • "category": {
    },
  • "customerNumber": "string",
  • "parentCustomerId": 0,
  • "address1": {
    },
  • "address2": {
    },
  • "notes": "string",
  • "paymentType": "Invoice",
  • "deadline": 0,
  • "creditLimit": 0,
  • "invoiceMethod": "Email",
  • "purchaseOrder": "string",
  • "language": "Norwegian",
  • "currency": "NOK",
  • "EAN": "string",
  • "VATNumber": "string",
  • "includeVAT": true,
  • "displayVAT": true,
  • "fixedDiscountPercentage": 0,
  • "contactPersons": [
    ]
}

Response samples

Content type
application/json
{
  • "customerId": "string"
}

Returns a list of customers

Returns a list of customers based on the filters provided

query Parameters
type
string (CustomerType)
Enum: "person" "organization"
name
string
email
string
orgno
string
freetext
string
header Parameters
domain
required
string
Example: ferdia

The domain/company to direct the API-call to

Responses

Response samples

Content type
application/json
{
  • "count": 552,
  • "results": [
    ]
}

Updates an existing customer

Updates an existing customer

path Parameters
id
required
integer

Customer ID

header Parameters
domain
required
string
Example: ferdia

The domain/company to direct the API-call to

Request Body schema: application/json
required

Customer data

name
string
email
string <email>
type
string (CustomerType)
Enum: "person" "organization"
orgno
string
object (CustomerCategory)
customerNumber
string
parentCustomerId
integer
orgNumber
string
object (Address)
object (Address)
notes
string
paymentType
string
Enum: "Invoice" "Vipps" "Cash" "Card"
deadline
integer
creditLimit
integer
invoiceMethod
string
Enum: "Email" "Post"
purchaseOrder
string
language
string
Enum: "Norwegian" "English" "Swedish" "Danish"
currency
string
Enum: "NOK" "SEK" "DKK" "EUR" "USD" "GBP" "BDT"
EAN
string
VATNumber
string
includeVAT
boolean
fixedDiscountPercentage
number
Array of objects (ContactPerson)

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "email": "user@example.com",
  • "type": "person",
  • "orgno": "string",
  • "category": {
    },
  • "customerNumber": "string",
  • "parentCustomerId": 0,
  • "orgNumber": "string",
  • "address1": {
    },
  • "address2": {
    },
  • "notes": "string",
  • "paymentType": "Invoice",
  • "deadline": 0,
  • "creditLimit": 0,
  • "invoiceMethod": "Email",
  • "purchaseOrder": "string",
  • "language": "Norwegian",
  • "currency": "NOK",
  • "EAN": "string",
  • "VATNumber": "string",
  • "includeVAT": true,
  • "fixedDiscountPercentage": 0,
  • "contactPersons": [
    ]
}

Response samples

Content type
application/json
{
  • "message": "Invalid request, please review the errors and retry the request"
}

Returns a list of fixed trips for a customer

Returns a list of fixed trips for a customer based on the filters provided

path Parameters
id
required
integer

Customer ID

query Parameters
date
string <date>
Default: "today"

Date to get fixed trips for

header Parameters
domain
required
string
Example: ferdia

The domain/company to direct the API-call to

TimeZone
string
Example: Europe/Berlin

The timezone of the client of the request

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Sales/Customer-categories

Creates a new customer category

Creates a new customer category

header Parameters
domain
required
string
Example: ferdia

The domain/company to direct the API-call to

Request Body schema: application/json
required

Customer category data

name
required
string
description
string
active
boolean
default
boolean

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "active": true,
  • "default": true
}

Response samples

Content type
application/json
{
  • "id": 0
}

Returns a list of customer categories

Returns a list of customer categories based on the filters provided

query Parameters
name
string
active
boolean
header Parameters
domain
required
string
Example: ferdia

The domain/company to direct the API-call to

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Returns a customer category by ID

Returns a customer category by ID

path Parameters
id
required
integer

Customer category ID

header Parameters
domain
required
string
Example: ferdia

The domain/company to direct the API-call to

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "description": "string",
  • "active": true,
  • "default": true
}

Updates an existing customer category

Updates an existing customer category

path Parameters
id
required
integer

Customer category ID

header Parameters
domain
required
string
Example: ferdia

The domain/company to direct the API-call to

Request Body schema: application/json
required

Customer category data

name
required
string
description
string
active
boolean
default
boolean

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "active": true,
  • "default": true
}

Response samples

Content type
application/json
{
  • "message": "Invalid request, please review the errors and retry the request"
}

Sales/Requests

Create a new Request

Creats a new Request in the system

header Parameters
domain
required
string
Example: ferdia

The domain/company to direct the API-call to

TimeZone
string
Example: Europe/Berlin

The timezone of the client of the request

Request Body schema: application/json
required

Request data

tripType
string
Default: "OneWay"
Enum: "OneWay" "Return"
departureDate
required
string <date>
departureTime
required
string^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$
returnDate
string <date>
returnTime
string^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$
required
object (Location)
required
object (Location)
pax
required
integer <int32>
busAvailableDuringStay
boolean
Default: false
comments
string
acceptTerms
required
boolean
externalReference
string
customerType
required
string
Default: "person"
Enum: "person" "organization"
companyName
string
companyOrgNumber
string
firstName
required
string
lastName
required
string
email
required
string <email>
phoneNo
required
string

Responses

Request samples

Content type
application/json
{
  • "tripType": "OneWay",
  • "departureDate": "2019-08-24",
  • "departureTime": "string",
  • "returnDate": "2019-08-24",
  • "returnTime": "string",
  • "travelFrom": {
    },
  • "travelTo": {
    },
  • "pax": 0,
  • "busAvailableDuringStay": false,
  • "comments": "string",
  • "acceptTerms": true,
  • "externalReference": "string",
  • "customerType": "person",
  • "companyName": "string",
  • "companyOrgNumber": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "email": "user@example.com",
  • "phoneNo": "string"
}

Response samples

Content type
application/json
{
  • "requestId": "string",
  • "customerId": "string"
}

Create a new Request for a given customer

Create a new Request for a given customer

path Parameters
customerId
required
integer

existing customer Id

header Parameters
domain
required
string
Example: ferdia

The domain/company to direct the API-call to

TimeZone
string
Example: Europe/Berlin

The timezone of the client of the request

Request Body schema: application/json
required

Request data

tripType
string
Default: "OneWay"
Enum: "OneWay" "Return"
departureDate
required
string <date>
departureTime
required
string^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$
returnDate
string <date>
returnTime
string^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$
required
object (Location)
required
object (Location)
pax
required
integer <int32>
busAvailableDuringStay
boolean
Default: false
comments
string
acceptTerms
required
boolean
externalReference
string

Responses

Request samples

Content type
application/json
{
  • "tripType": "OneWay",
  • "departureDate": "2019-08-24",
  • "departureTime": "string",
  • "returnDate": "2019-08-24",
  • "returnTime": "string",
  • "travelFrom": {
    },
  • "travelTo": {
    },
  • "pax": 0,
  • "busAvailableDuringStay": false,
  • "comments": "string",
  • "acceptTerms": true,
  • "externalReference": "string"
}

Response samples

Content type
application/json
{
  • "requestId": "string"
}

Sales/Orders

Get a single order with all order lines

Returns a single order including all trips and other order lines. Exactly one of orderId or orderNumber must be provided.

query Parameters
orderId
integer
Example: orderId=34290

Internal order ID. Mutually exclusive with orderNumber.

orderNumber
string
Example: orderNumber=BT-034150-S01

Order number as displayed in the TEQ UI (e.g. BT-034150-S01). Mutually exclusive with orderId.

header Parameters
domain
required
string
Example: ferdia

The domain/company to direct the API-call to

TimeZone
string
Example: Europe/Berlin

The timezone of the client of the request

Responses

Response samples

Content type
application/json
{
  • "orderId": "34290",
  • "orderNumber": "BT-034150-S01",
  • "status": "sale",
  • "customer": {
    },
  • "contactPerson": {
    },
  • "trips": [
    ]
}

Create a new Order for a given customer

Creats a new Order in the system

path Parameters
customerId
required
integer

existing customer Id

header Parameters
domain
required
string
Example: ferdia

The domain/company to direct the API-call to

TimeZone
string
Example: Europe/Berlin

The timezone of the client of the request

Request Body schema: application/json
required

Request data

orderContactPersonId
integer

The ID of the contact person for the order

object (NewContactPerson)
salesPersonId
integer

The ID of the sales person for the order

externalOrderReference
string

The external order reference

orderStatus
string
Default: "Active order"
Enum: "Draft" "Sent to customer" "Accepted by customer" "Active order"

The status to set for the newly created order

Array of objects (PostTrip)

Responses

Request samples

Content type
application/json
{
  • "orderContactPersonId": 2255,
  • "newOrderContactPerson": {
    },
  • "salesPersonId": 100,
  • "externalOrderReference": "EXT-12345",
  • "orderStatus": "Draft",
  • "trips": [
    ]
}

Response samples

Content type
application/json
{
  • "status": "success",
  • "orderId": "34290",
  • "gen_oid": "BT-034150-S01",
  • "createdRows": 1
}

Returns the status for a given order and the statu

Returns the status for a given order and the status of all trips related to this order

path Parameters
id
required
integer

Order ID

header Parameters
domain
required
string
Example: ferdia

The domain/company to direct the API-call to

Responses

Response samples

Content type
application/json
{
  • "order_id": "34290",
  • "status": "string",
  • "trips": [
    ]
}

Get the order confirmation for a given order

Returns the orderconfirmation for the order in PDF format

path Parameters
id
required
integer

existing order Id

header Parameters
domain
required
string
Example: ferdia

The domain/company to direct the API-call to

Responses

Response samples

Content type
application/json
{
  • "pdf": "string"
}

Adds a trip to an existing order

Adds a new trip to an existing order

header Parameters
domain
required
string
Example: ferdia

The domain/company to direct the API-call to

Request Body schema: application/json
required

Request data

tripType
string
Default: "OneWay"
Enum: "OneWay" "Return"
departureDate
required
string <date>
departureTime
required
string^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$
returnDate
string <date>
returnTime
string^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$
boarding
integer

Number of minutes for boarding the passengers

disembarkation
integer

Number of minutes for disembarking the passengers

required
object (Location)
required
object (Location)
Array of objects (ViaPoint)
pax
required
integer <int32>
busAvailableDuringStay
boolean
Default: false
tripTypeId
integer

The id of the triptrip (GET /core/settings/triptype) to use for the trip

flightno
string

The flight number for the trip, this field is only relevant, but mandatory when the tripTypeId is set to the type Airport Trip

groupReference
string

The group reference for the trip, this field is only relevant when the tripTypeId is set to the type Airport Trip

acceptTerms
required
boolean
vehicleLicensePlate
string

The license plate of the vehicle to use for the trip, only relevant if a specific vehicle is requested

pointOfContact
integer

Use an exsiting point of contact for the customer for this trip

object (NewContactPerson)
object
object
price
number <decimal>

The price of the trip (inc. VAT), only relevant if the trip is already priced and the TEQ price-calcuator shoul be bypassed.

prepaid
boolean
Default: false

If the trip is prepayed

addToPlanning
boolean
Default: false

If true, the trip will be automatically planned to the chosen vehicle (requires vehicleLicensePlate: to be set)

object

The planned duration of the trip, only relevant if the trip is set to addToPlanning

Responses

Request samples

Content type
application/json
{
  • "tripType": "OneWay",
  • "departureDate": "2019-08-24",
  • "departureTime": "string",
  • "returnDate": "2019-08-24",
  • "returnTime": "string",
  • "boarding": 10,
  • "disembarkation": 15,
  • "travelFrom": {
    },
  • "travelTo": {
    },
  • "viaPoints": [
    ],
  • "pax": 0,
  • "busAvailableDuringStay": false,
  • "tripTypeId": 1,
  • "flightno": "AB123",
  • "groupReference": "string",
  • "acceptTerms": true,
  • "vehicleLicensePlate": "string",
  • "pointOfContact": 0,
  • "newPointOfContact": {
    },
  • "comments": {
    },
  • "details": {
    },
  • "price": 1000,
  • "prepaid": false,
  • "addToPlanning": false,
  • "plannedDuration": {
    }
}

Response samples

Content type
application/json
{
  • "message": "Invalid request, please review the errors and retry the request"
}

Sales/Capacity

Returns the vehicle capacity for a given time

Returns the vehicle capacity for a given time

query Parameters
startTime
required
string
Example: startTime=01.01.2025 10:00

The start-time for the trip. Format DD.MM.YYYY HH:MM

endTime
required
string
Example: endTime=01.01.2025 12:00

The end-time for the trip. Format DD.MM.YYYY HH:MM

departmentId
integer

Id of the department to get the capacity for

vehicleTypeId
integer

Id of the vehicle type to get the capacity for

pax
integer

The number of passengers to get the capacity for, vehicle type will be set to default based on the number of passengers

header Parameters
domain
required
string
Example: ferdia

The domain/company to direct the API-call to

Responses

Response samples

Content type
application/json
{
  • "capacity": "High",
  • "departmentId": 0,
  • "departmentName": "string",
  • "vehicletypeId": 0,
  • "vehicleTypeName": "string",
  • "tripCount": {
    },
  • "fullDayInfo": [
    ]
}

Core/Vehicles

Returns a list of vehicles

Returns a list of vehicles

header Parameters
domain
required
string
Example: ferdia

The domain/company to direct the API-call to

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Core/Employees

Returns returns a list of employees

Returns returns a list of employees

query Parameters
name
string

Name of the employee

number
integer

Employee number

header Parameters
domain
required
string
Example: ferdia

The domain/company to direct the API-call to

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Returns calendar entries for an employee

Returns calendar entries for an employee

path Parameters
id
required
string

The ID of the employee

query Parameters
start
string <date>

Start date for the calendar range (YYYY-MM-DD)

end
string <date>

End date for the calendar range (YYYY-MM-DD)

header Parameters
domain
required
string
Example: ferdia

The domain/company to direct the API-call to

TimeZone
string
Example: Europe/Berlin

The timezone of the client of the request

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Core/Settings

Returns a list of trip types

Returns a list of trip types

header Parameters
domain
required
string
Example: ferdia

The domain/company to direct the API-call to

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Core/Products

Returns a list of products

Returns a list of products

query Parameters
itemCode
integer

The Item Code to search for

description
string

The Item Description to search for

header Parameters
domain
required
string
Example: ferdia

The domain/company to direct the API-call to

Responses

Response samples

Content type
application/json
[
  • {
    }
]