TaxiCaller version 1
https://{api_domain}.taxicaller.net
- api_domain: required(one of api, api-rc)
The sub-domain at which the API is accessible. "api-rc" is the staging domain
Home
Welcome to the TaxiCaller API Documentation. The TaxiCaller API allows you to connect your application to our service to modify resources in the system. We will add more features and resources over time.
/api/v1/jwt
Convert your API key to a Json Web Token (JWT) that is used as authentication for all other endpoints listed below. The JWT is also referred to as a bearer token.
The generated JWT is valid for 15 minutes.
Create a API jwt token
get /api/v1/jwt/for-key
Create a API jwt token
Query Parameters
- key: required(string)
Your API key
- sub: required(string)
The desired subject for the token. * = all subjects.
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"token": "eyJhbGciOiJIUzI1NiJ9.eyJhdWQiOiI1Mkk3Iiwic3ViIjoiKiIsInVpZCI6MCwlZmxhZ3MiOjAsImV4cCI6MTUzMjMzNzI2OH0.ahoG1S2u9KxFBys7d0tOx_5QOdU_iPYwVv0GJUvmAhY"
}
/api/v1/company/{company_id}/reports
The API supports listing and generating reports. You can create reports in the admin panel.
List currently avalible reports
get /api/v1/company/{company_id}/reports/templates
List currently avalible reports
URI Parameters
- company_id: required(integer)
unique company id
Headers
- Authorization: required(string)
Authentication is handled by provided JsonWebToken
Example:
Bearer xxx.yyy.zzz
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"list": [
{
"id": 4,
"company_id": 0,
"name": "Account jobs"
},
{
"id": 5,
"company_id": 0,
"name": "Driver jobs"
},
{
"id": 6,
"company_id": 0,
"name": "Finished jobs"
},
{
"id": 7,
"company_id": 0,
"name": "Multi company"
},
{
"id": 8,
"company_id": 0,
"name": "Zone-report"
},
{
"id": 24,
"company_id": 5297,
"name": "Account jobs filtered"
}
]
}
Secured by jwt
/api/v1/reports
Generate reports from existing templates that are created graphically in the admin panel. Requires a JWT with sub=reports or sub=*.
Generate a report
post /api/v1/reports/typed/generate
Generate a report
Headers
- Authorization: required(string)
Authentication is handled by provided JsonWebToken
Example:
Bearer xxx.yyy.zzz
Body
Media type: application/json
Type: any
Example:
{
"company_id": 1234,
"report_type": "jobs",
"output_format": "json",
"template_id": 1,
"search_query": {
"period": {
"@type":"custom",
"start":"2018-01-01T00:00:00",
"end":"2019-01-01T00:00:00"
}
}
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"header": {
"account_num": "Account id",
"job_id": "Job id",
"date": "Date",
"start": "Start",
"end": "End",
"passenger": "Passenger",
"pick-up": "Pick-up",
"drop_off": "Drop-off",
"vehicle_num": "Vehicle #",
"driver": "Driver",
"cost_code": "Cost_code",
"project": "Project",
"reference": "Reference",
"tariff": "Tariff",
"extra_1": "Extra 1",
"extra_2": "Extra 2",
"extra_3": "Extra 3",
"sub_total": "Sub total",
"discount": "Discount",
"fop": "FOP",
"payable": "Payable"
},
"columns": [
{
"id": "account_num",
"title": "Account id"
},
{
"id": "job_id",
"title": "Job id"
},
{
"id": "date",
"title": "Date"
},
{
"id": "start",
"title": "Start"
},
{
"id": "end",
"title": "End"
},
{
"id": "passenger",
"title": "Passenger"
},
{
"id": "pick-up",
"title": "Pick-up"
},
{
"id": "drop_off",
"title": "Drop-off"
},
{
"id": "vehicle_num",
"title": "Vehicle #"
},
{
"id": "driver",
"title": "Driver"
},
{
"id": "cost_code",
"title": "Cost_code"
},
{
"id": "project",
"title": "Project"
},
{
"id": "reference",
"title": "Reference"
},
{
"id": "tariff",
"title": "Tariff"
},
{
"id": "extra_1",
"title": "Extra 1"
},
{
"id": "extra_2",
"title": "Extra 2"
},
{
"id": "extra_3",
"title": "Extra 3"
},
{
"id": "sub_total",
"title": "Sub total"
},
{
"id": "discount",
"title": "Discount"
},
{
"id": "fop",
"title": "FOP"
},
{
"id": "payable",
"title": "Payable"
}
],
"results": {
"offset": 0,
"limit": 500000,
"total": 11
},
"rows": [
{
"account_num": "",
"job_id": "5189347",
"date": "13/07/2018",
"start": "13/07/2018 11:35",
"end": "13/07/2018 11:35",
"passenger": "",
"pick-up": "Malmslättsvägen, 584 31 Linköping, Sweden",
"drop_off": "E4, Vikingstad, Sweden",
"vehicle_num": "",
"driver": ", ",
"cost_code": "",
"project": "",
"reference": "",
"tariff": "",
"extra_1": "",
"extra_2": "",
"extra_3": "",
"sub_total": " ",
"discount": "",
"fop": "",
"payable": ""
},
{
"account_num": "",
"job_id": "5189354",
"date": "13/07/2018",
"start": "13/07/2018 16:28",
"end": "13/07/2018 16:28",
"passenger": "Jan banan",
"pick-up": "Järnvägsgatan 3, 582 22 Linköping, Sweden",
"drop_off": "Teknikringen 1A, Linköping, Sweden",
"vehicle_num": "",
"driver": ", ",
"cost_code": "",
"project": "",
"reference": "",
"tariff": "",
"extra_1": "",
"extra_2": "",
"extra_3": "",
"sub_total": " ",
"discount": "",
"fop": "",
"payable": ""
},
{
"account_num": "",
"job_id": "5189348",
"date": "13/07/2018",
"start": "13/07/2018 11:18",
"end": "13/07/2018 11:31",
"passenger": "",
"pick-up": "Jägarvallsvägen 23, 584 22 Linköping, Sweden",
"drop_off": "Slattefors Arbetarebostaden 1, 585 93 Linköping, Sweden",
"vehicle_num": "1",
"driver": "Test, Driver",
"cost_code": "",
"project": "",
"reference": "",
"tariff": "",
"extra_1": "",
"extra_2": "",
"extra_3": "",
"sub_total": " ",
"discount": "",
"fop": "",
"payable": ""
},
{
"account_num": "",
"job_id": "5189350",
"date": "13/07/2018",
"start": "13/07/2018 11:31",
"end": "13/07/2018 11:35",
"passenger": "Jan banan",
"pick-up": "Järnvägsgatan 3, 582 22 Linköping, Sweden",
"drop_off": "Teknikringen 1A, Linköping, Sweden",
"vehicle_num": "1",
"driver": "Test, Driver",
"cost_code": "",
"project": "",
"reference": "",
"tariff": "",
"extra_1": "",
"extra_2": "",
"extra_3": "",
"sub_total": " ",
"discount": "",
"fop": "",
"payable": ""
},
{
"account_num": "",
"job_id": "5189349",
"date": "13/07/2018",
"start": "13/07/2018 11:34",
"end": "13/07/2018 11:34",
"passenger": "",
"pick-up": "Nya Ledbergsvägen, 585 99 Linköping, Sweden",
"drop_off": "LÖNNSBERG, LANDERYD, 585 93 Linköping, Sweden",
"vehicle_num": "",
"driver": ", ",
"cost_code": "",
"project": "",
"reference": "",
"tariff": "",
"extra_1": "",
"extra_2": "",
"extra_3": "",
"sub_total": " ",
"discount": "",
"fop": "",
"payable": ""
},
{
"account_num": "",
"job_id": "5189351",
"date": "13/07/2018",
"start": "13/07/2018 11:35",
"end": "13/07/2018 11:35",
"passenger": "Jan banan",
"pick-up": "Järnvägsgatan 3, 582 22 Linköping, Sweden",
"drop_off": "Teknikringen 1A, Linköping, Sweden",
"vehicle_num": "",
"driver": ", ",
"cost_code": "",
"project": "",
"reference": "",
"tariff": "",
"extra_1": "",
"extra_2": "",
"extra_3": "",
"sub_total": " ",
"discount": "",
"fop": "",
"payable": ""
},
{
"account_num": "",
"job_id": "5189345",
"date": "13/07/2018",
"start": "13/07/2018 10:56",
"end": "13/07/2018 11:04",
"passenger": "",
"pick-up": "Norrgatan 13H, 586 62 Linköping, Sweden",
"drop_off": "Unnamed Road, 587 58 Linköping, Sweden",
"vehicle_num": "1",
"driver": "Test, Driver",
"cost_code": "",
"project": "",
"reference": "",
"tariff": "",
"extra_1": "",
"extra_2": "",
"extra_3": "",
"sub_total": " ",
"discount": "",
"fop": "",
"payable": ""
},
{
"account_num": "",
"job_id": "5189352",
"date": "13/07/2018",
"start": "13/07/2018 16:28",
"end": "13/07/2018 16:28",
"passenger": "Jan banan",
"pick-up": "Järnvägsgatan 3, 582 22 Linköping, Sweden",
"drop_off": "Teknikringen 1A, Linköping, Sweden",
"vehicle_num": "",
"driver": ", ",
"cost_code": "",
"project": "",
"reference": "",
"tariff": "",
"extra_1": "",
"extra_2": "",
"extra_3": "",
"sub_total": " ",
"discount": "",
"fop": "",
"payable": ""
},
{
"account_num": "1807131",
"job_id": "5189364",
"date": "13/07/2018",
"start": "13/07/2018 16:28",
"end": "13/07/2018 16:37",
"passenger": "aaron andersson",
"pick-up": "Nya Kalmarvägen, 584 32 Linköping, Sweden",
"drop_off": "SVIESTAD 1, 585 93 Linköping, Sweden",
"vehicle_num": "1",
"driver": "Test, Driver",
"cost_code": "",
"project": "",
"reference": "",
"tariff": "",
"extra_1": "",
"extra_2": "",
"extra_3": "",
"sub_total": " ",
"discount": "",
"fop": "",
"payable": ""
},
{
"account_num": "",
"job_id": "5189346",
"date": "13/07/2018",
"start": "13/07/2018 11:34",
"end": "13/07/2018 11:34",
"passenger": "John Smith",
"pick-up": "Borraregatan 2, 587 37 Linköping, Sweden",
"drop_off": "Infanterivägen 6, 587 58 Linköping, Sweden",
"vehicle_num": "",
"driver": ", ",
"cost_code": "",
"project": "",
"reference": "",
"tariff": "",
"extra_1": "",
"extra_2": "",
"extra_3": "",
"sub_total": " ",
"discount": "",
"fop": "",
"payable": ""
},
{
"account_num": "",
"job_id": "5189353",
"date": "13/07/2018",
"start": "13/07/2018 16:28",
"end": "13/07/2018 16:28",
"passenger": "Jan banan",
"pick-up": "Järnvägsgatan 3, 582 22 Linköping, Sweden",
"drop_off": "Teknikringen 1A, Linköping, Sweden",
"vehicle_num": "",
"driver": ", ",
"cost_code": "",
"project": "",
"reference": "",
"tariff": "",
"extra_1": "",
"extra_2": "",
"extra_3": "",
"sub_total": " ",
"discount": "",
"fop": "",
"payable": ""
}
]
}
Secured by jwt
/api/v1/company/{company_id}/user
Users connected to your company, e.g. dispatchers and drivers
Gets a list of users
get /api/v1/company/{company_id}/user/list
Gets a list of users
URI Parameters
- company_id: required(integer)
unique company id
Headers
- Authorization: required(string)
Authentication is handled by provided JsonWebToken
Example:
Bearer xxx.yyy.zzz
Query Parameters
- offset: required(integer)
The first record to return
- limit: required(integer)
The number of records to return
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"list": [
{
"id": 7413,
"first_name": "Sven",
"last_name": "Johnsson"
},
{
"id": 8881,
"first_name": "Fredrik",
"last_name": "Fredriksson"
}
]
}
Secured by jwt
Get information about a user.
Updates a user
Deletes a user
get /api/v1/company/{company_id}/user/ids/{user_id}
Get information about a user.
URI Parameters
- company_id: required(integer)
unique company id
- user_id: required(string)
Headers
- Authorization: required(string)
Authentication is handled by provided JsonWebToken
Example:
Bearer xxx.yyy.zzz
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"user": {
"id": 8882,
"first_name": "Petter",
"username": "petter",
"phone_number": "123123",
"roles": 3,
"data": {
"dpidx": [
5313
],
"operator_nbr": "asd",
"license_nbr": "asd",
"device_ids": [],
"phone": {
"sip_account": {
"port": "",
"proxy": "",
"domain": "",
"register_expires": "",
"user": ""
},
"active": 1,
"options": {
"dispatch": {
"callid_replace": "",
"callid_match": "",
"populate": "answer",
"force_transfer": 0,
"clr_job_counts": 0,
"clr_job_extra": 0,
"version": "default"
}
}
},
"address": "asd",
"dispatch": {
"ip_addresses": [],
"groups": []
},
"note": "asd"
},
"last_name": "Andersson",
"avatar": "66411e70917d03b893e189aae1a31aa4fbd44dd0",
"vid": 0,
"cid": 1318,
"options": {
"perms": [
{
"r": 1,
"l": 0
},
{
"r": 2,
"l": 0
}
]
}
},
"blocks": [
{
"id": 43,
"user_id": 8882,
"start": 1771599979,
"end": 1771600279,
"status": "active",
"meta": {
"@type": "driver_conduct",
"reason": "Policy violation",
"vehicle_id": 0,
"soft": true
}
}
]
}
Secured by jwt
post /api/v1/company/{company_id}/user/ids/{user_id}
Updates a user
URI Parameters
- company_id: required(integer)
unique company id
- user_id: required(string)
Headers
- Authorization: required(string)
Authentication is handled by provided JsonWebToken
Example:
Bearer xxx.yyy.zzz
Body
Media type: application/json
Type: any
Example:
{
"user": {
"id": 8882,
"first_name": "Petter",
"username": "petter",
"phone_number": "123123",
"roles": 3,
"data": {
"dpidx": [
5313
],
"operator_nbr": "asd",
"license_nbr": "asd",
"device_ids": [],
"phone": {
"sip_account": {
"port": "",
"proxy": "",
"domain": "",
"register_expires": "",
"user": ""
},
"active": 1,
"options": {
"dispatch": {
"callid_replace": "",
"callid_match": "",
"populate": "answer",
"force_transfer": 0,
"clr_job_counts": 0,
"clr_job_extra": 0,
"version": "default"
}
}
},
"address": "asd",
"dispatch": {
"ip_addresses": [],
"groups": []
},
"note": "asd"
},
"last_name": "Andersson",
"avatar": "66411e70917d03b893e189aae1a31aa4fbd44dd0",
"vid": 0,
"cid": 1318,
"options": {
"perms": [
{
"r": 1,
"l": 0
},
{
"r": 2,
"l": 0
}
]
}
},
"blocks": [
{
"id": 43,
"user_id": 8882,
"start": 1771599979,
"end": 1771600279,
"status": "active",
"meta": {
"@type": "driver_conduct",
"reason": "Policy violation",
"vehicle_id": 0,
"soft": true
}
}
]
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"user": {
"id": 8882,
"first_name": "Petter",
"username": "petter",
"phone_number": "123123",
"roles": 3,
"data": {
"dpidx": [
5313
],
"operator_nbr": "asd",
"license_nbr": "asd",
"device_ids": [],
"phone": {
"sip_account": {
"port": "",
"proxy": "",
"domain": "",
"register_expires": "",
"user": ""
},
"active": 1,
"options": {
"dispatch": {
"callid_replace": "",
"callid_match": "",
"populate": "answer",
"force_transfer": 0,
"clr_job_counts": 0,
"clr_job_extra": 0,
"version": "default"
}
}
},
"address": "asd",
"dispatch": {
"ip_addresses": [],
"groups": []
},
"note": "asd"
},
"last_name": "Andersson",
"avatar": "66411e70917d03b893e189aae1a31aa4fbd44dd0",
"vid": 0,
"cid": 1318,
"options": {
"perms": [
{
"r": 1,
"l": 0
},
{
"r": 2,
"l": 0
}
]
}
},
"blocks": [
{
"id": 43,
"user_id": 8882,
"start": 1771599979,
"end": 1771600279,
"status": "active",
"meta": {
"@type": "driver_conduct",
"reason": "Policy violation",
"vehicle_id": 0,
"soft": true
}
}
]
}
Secured by jwt
delete /api/v1/company/{company_id}/user/ids/{user_id}
Deletes a user
URI Parameters
- company_id: required(integer)
unique company id
- user_id: required(string)
Headers
- Authorization: required(string)
Authentication is handled by provided JsonWebToken
Example:
Bearer xxx.yyy.zzz
Secured by jwt
Suspend a driver. A hard suspension (soft=false) will immediately kick the driver from the system. A soft suspension (soft=true) will block the driver from getting new jobs but allow them to finish current ones. The response includes the block id which is needed to lift the suspension.
post /api/v1/company/{company_id}/user/ids/{user_id}/add-suspension
Suspend a driver. A hard suspension (soft=false) will immediately kick the driver from the system. A soft suspension (soft=true) will block the driver from getting new jobs but allow them to finish current ones. The response includes the block id which is needed to lift the suspension.
URI Parameters
- company_id: required(integer)
unique company id
- user_id: required(string)
Headers
- Authorization: required(string)
Authentication is handled by provided JsonWebToken
Example:
Bearer xxx.yyy.zzz
Body
Media type: application/json
Type: any
Example:
{
"duration": 86400,
"reason": "Policy violation",
"soft": false
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"usage_block": {
"id": 82,
"company_id": 2001,
"user_id": 2020,
"cat_id": 101,
"start": 1772130091,
"end": 1772133691,
"ts": 1772130091935,
"status": "active",
"meta": {
"@type": "driver_conduct",
"reason": "Policy violation",
"soft": false
}
}
}
Secured by jwt
Remove an active driver suspension. The block id can be found in the block list in user information, or in the response from the add-suspension post that was used to create it.
post /api/v1/company/{company_id}/user/ids/{user_id}/remove-suspension
Remove an active driver suspension. The block id can be found in the block list in user information, or in the response from the add-suspension post that was used to create it.
URI Parameters
- company_id: required(integer)
unique company id
- user_id: required(string)
Headers
- Authorization: required(string)
Authentication is handled by provided JsonWebToken
Example:
Bearer xxx.yyy.zzz
Body
Media type: application/json
Type: any
Example:
{
"block_id": 1234
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"usage_block": {
"id": 81,
"company_id": 2001,
"user_id": 2020,
"cat_id": 101,
"start": 1772130205,
"end": 1772130205,
"ts": 1772130205249,
"status": "active",
"meta": {
"@type": "driver_conduct",
"reason": "",
"soft": true
}
}
}
Secured by jwt
Creates a user
post /api/v1/company/{company_id}/user/create
Creates a user
URI Parameters
- company_id: required(integer)
unique company id
Headers
- Authorization: required(string)
Authentication is handled by provided JsonWebToken
Example:
Bearer xxx.yyy.zzz
Body
Media type: application/json
Type: any
Example:
{
"user": {
"id": 8882,
"first_name": "Petter",
"username": "petter",
"phone_number": "123123",
"roles": 3,
"data": {
"dpidx": [
5313
],
"operator_nbr": "asd",
"license_nbr": "asd",
"device_ids": [],
"phone": {
"sip_account": {
"port": "",
"proxy": "",
"domain": "",
"register_expires": "",
"user": ""
},
"active": 1,
"options": {
"dispatch": {
"callid_replace": "",
"callid_match": "",
"populate": "answer",
"force_transfer": 0,
"clr_job_counts": 0,
"clr_job_extra": 0,
"version": "default"
}
}
},
"address": "asd",
"dispatch": {
"ip_addresses": [],
"groups": []
},
"note": "asd"
},
"last_name": "Andersson",
"avatar": "66411e70917d03b893e189aae1a31aa4fbd44dd0",
"vid": 0,
"cid": 1318,
"options": {
"perms": [
{
"r": 1,
"l": 0
},
{
"r": 2,
"l": 0
}
]
}
},
"blocks": [
{
"id": 43,
"user_id": 8882,
"start": 1771599979,
"end": 1771600279,
"status": "active",
"meta": {
"@type": "driver_conduct",
"reason": "Policy violation",
"vehicle_id": 0,
"soft": true
}
}
]
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"user": {
"id": 8882,
"first_name": "Petter",
"username": "petter",
"phone_number": "123123",
"roles": 3,
"data": {
"dpidx": [
5313
],
"operator_nbr": "asd",
"license_nbr": "asd",
"device_ids": [],
"phone": {
"sip_account": {
"port": "",
"proxy": "",
"domain": "",
"register_expires": "",
"user": ""
},
"active": 1,
"options": {
"dispatch": {
"callid_replace": "",
"callid_match": "",
"populate": "answer",
"force_transfer": 0,
"clr_job_counts": 0,
"clr_job_extra": 0,
"version": "default"
}
}
},
"address": "asd",
"dispatch": {
"ip_addresses": [],
"groups": []
},
"note": "asd"
},
"last_name": "Andersson",
"avatar": "66411e70917d03b893e189aae1a31aa4fbd44dd0",
"vid": 0,
"cid": 1318,
"options": {
"perms": [
{
"r": 1,
"l": 0
},
{
"r": 2,
"l": 0
}
]
}
},
"blocks": [
{
"id": 43,
"user_id": 8882,
"start": 1771599979,
"end": 1771600279,
"status": "active",
"meta": {
"@type": "driver_conduct",
"reason": "Policy violation",
"vehicle_id": 0,
"soft": true
}
}
]
}
Secured by jwt
/api/v1/company/{company_id}/vehicle
Manage vehicles registered to your company
Get paginated list of vehicles
get /api/v1/company/{company_id}/vehicle/list
Get paginated list of vehicles
URI Parameters
- company_id: required(integer)
unique company id
Headers
- Authorization: required(string)
Authentication is handled by provided JsonWebToken
Example:
Bearer xxx.yyy.zzz
Query Parameters
- offset: required(integer)
The first record to return
- limit: required(integer)
The number of records to return
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"list": [
{
"id": 1338,
"active": 1,
"number": 6,
"callsign": "Car 6",
"type": 1
},
{
"id": 1339,
"active": 1,
"number": 1000,
"callsign": "Car 1",
"type": 1
},
{
"id": 1340,
"active": 1,
"number": 1000,
"callsign": "Car 1",
"type": 1
},
{
"id": 1341,
"active": 1,
"number": 1000,
"callsign": "Car 1",
"type": 1
},
{
"id": 1342,
"active": 1,
"number": 1000,
"callsign": "Car 1",
"type": 1
}
],
"_metadata": {
"page": {
"limit": 5,
"offset": 10
},
"total_count": 33
}
}
Secured by jwt
Gets a vehicle
Updates a vehicle
get /api/v1/company/{company_id}/vehicle/ids/{vehicle_id}
Gets a vehicle
URI Parameters
- company_id: required(integer)
unique company id
- vehicle_id: required(string)
Headers
- Authorization: required(string)
Authentication is handled by provided JsonWebToken
Example:
Bearer xxx.yyy.zzz
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"vehicle": {
"f": 0,
"tags": {
"phone": "",
"pidxs": [],
"color_name": "Silver",
"plate": "ABC123",
"grg": "0",
"ctids": [],
"equipment": {
"card_reader": true
},
"type": "sedan",
"chassisnbr": "",
"cap_wc": "0",
"pidx": "0",
"capacity_bags": "1",
"cflg": 3,
"color": "silver",
"capacity": "4",
"group": "1",
"make": "Peugeot"
},
"company_id": 1318,
"num": 1,
"a": 1,
"owner_id": 0,
"vtype": 1,
"callsign": "Car 1",
"vehicle_id": 1
}
}
Secured by jwt
post /api/v1/company/{company_id}/vehicle/ids/{vehicle_id}
Updates a vehicle
URI Parameters
- company_id: required(integer)
unique company id
- vehicle_id: required(string)
Headers
- Authorization: required(string)
Authentication is handled by provided JsonWebToken
Example:
Bearer xxx.yyy.zzz
Body
Media type: application/json
Type: any
Example:
{
"vehicle": {
"f": 0,
"tags": {
"phone": "",
"pidxs": [],
"color_name": "Silver",
"plate": "ABC123",
"grg": "0",
"ctids": [],
"equipment": {
"card_reader": true
},
"type": "sedan",
"chassisnbr": "",
"cap_wc": "0",
"pidx": "0",
"capacity_bags": "1",
"cflg": 3,
"color": "silver",
"capacity": "4",
"group": "1",
"make": "Peugeot"
},
"company_id": 1318,
"num": 1,
"a": 1,
"owner_id": 0,
"vtype": 1,
"callsign": "Car 1",
"vehicle_id": 1
}
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"vehicle": {
"f": 0,
"tags": {
"phone": "",
"pidxs": [],
"color_name": "Silver",
"plate": "ABC123",
"grg": "0",
"ctids": [],
"equipment": {
"card_reader": true
},
"type": "sedan",
"chassisnbr": "",
"cap_wc": "0",
"pidx": "0",
"capacity_bags": "1",
"cflg": 3,
"color": "silver",
"capacity": "4",
"group": "1",
"make": "Peugeot"
},
"company_id": 1318,
"num": 1,
"a": 1,
"owner_id": 0,
"vtype": 1,
"callsign": "Car 1",
"vehicle_id": 1
}
}
Secured by jwt
Gets list of users with access to vehicle
Sets list of users with access to vehicle
get /api/v1/company/{company_id}/vehicle/ids/{vehicle_id}/access
Gets list of users with access to vehicle
URI Parameters
- company_id: required(integer)
unique company id
- vehicle_id: required(string)
Headers
- Authorization: required(string)
Authentication is handled by provided JsonWebToken
Example:
Bearer xxx.yyy.zzz
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"access": {
"drivers": [8881, 8882]
}
}
Secured by jwt
post /api/v1/company/{company_id}/vehicle/ids/{vehicle_id}/access
Sets list of users with access to vehicle
URI Parameters
- company_id: required(integer)
unique company id
- vehicle_id: required(string)
Headers
- Authorization: required(string)
Authentication is handled by provided JsonWebToken
Example:
Bearer xxx.yyy.zzz
Body
Media type: application/json
Type: any
Example:
{
"access": {
"drivers": [8881, 8882]
}
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"access": {
"drivers": [8881, 8882]
}
}
Secured by jwt
Suspend or unsuspend a vehicle. When suspending with kick_driver=true, any driver currently logged into this vehicle will be kicked from the system.
post /api/v1/company/{company_id}/vehicle/ids/{vehicle_id}/set-suspended
Suspend or unsuspend a vehicle. When suspending with kick_driver=true, any driver currently logged into this vehicle will be kicked from the system.
URI Parameters
- company_id: required(integer)
unique company id
- vehicle_id: required(string)
Headers
- Authorization: required(string)
Authentication is handled by provided JsonWebToken
Example:
Bearer xxx.yyy.zzz
Body
Media type: application/json
Type: any
Example:
{
"suspend": true,
"kick_driver": true
}
Secured by jwt
Creates a vehicle
post /api/v1/company/{company_id}/vehicle/create
Creates a vehicle
URI Parameters
- company_id: required(integer)
unique company id
Headers
- Authorization: required(string)
Authentication is handled by provided JsonWebToken
Example:
Bearer xxx.yyy.zzz
Body
Media type: application/json
Type: any
Example:
{
"vehicle": {
"f": 0,
"tags": {
"phone": "",
"pidxs": [],
"color_name": "Silver",
"plate": "ABC123",
"grg": "0",
"ctids": [],
"equipment": {
"card_reader": true
},
"type": "sedan",
"chassisnbr": "",
"cap_wc": "0",
"pidx": "0",
"capacity_bags": "1",
"cflg": 3,
"color": "silver",
"capacity": "4",
"group": "1",
"make": "Peugeot"
},
"company_id": 1318,
"num": 1,
"a": 1,
"owner_id": 0,
"vtype": 1,
"callsign": "Car 1",
"vehicle_id": 1
}
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"vehicle": {
"f": 0,
"tags": {
"phone": "",
"pidxs": [],
"color_name": "Silver",
"plate": "ABC123",
"grg": "0",
"ctids": [],
"equipment": {
"card_reader": true
},
"type": "sedan",
"chassisnbr": "",
"cap_wc": "0",
"pidx": "0",
"capacity_bags": "1",
"cflg": 3,
"color": "silver",
"capacity": "4",
"group": "1",
"make": "Peugeot"
},
"company_id": 1318,
"num": 1,
"a": 1,
"owner_id": 0,
"vtype": 1,
"callsign": "Car 1",
"vehicle_id": 1
}
}
Secured by jwt
/api/v1/company/{company_id}/customer/account
For regular customers, you are able to use customer accounts that save their information so that it can be used quickly when booking, and to handle invoicing if the account is meant to be billed.
Gets a list of customer accounts
get /api/v1/company/{company_id}/customer/account/list
URI Parameters
- company_id: required(integer)
unique company id
Headers
- Authorization: required(string)
Authentication is handled by provided JsonWebToken
Example:
Bearer xxx.yyy.zzz
Query Parameters
- offset: required(integer)
The first record to return
- limit: required(integer)
The number of records to return
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"list": [
{
"id": 8884,
"name": "1403161",
"cname": "Duck, Donald",
"type": 0
},
{
"id": 8885,
"name": "1403162",
"cname": "Duck, Daisy",
"type": 0
}
],
"_metadata": {
"page": {
"limit": 5,
"offset": 10
},
"total_count": 33
}
}
Secured by jwt
Gets an account
Updates an account
Deletes an account
get /api/v1/company/{company_id}/customer/account/ids/{account_id}
Gets an account
URI Parameters
- company_id: required(integer)
unique company id
- account_id: required(string)
Headers
- Authorization: required(string)
Authentication is handled by provided JsonWebToken
Example:
Bearer xxx.yyy.zzz
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"account": {
"id": 8884,
"cid": 1318,
"name": "1403161",
"cname": "Duck, Donald",
"lname": "Duck",
"fname": "Donald",
"tags": {
"fee": 0,
"contact_email": "",
"address": "23 Fantasia World Ct.\nOrlando, FL 45632",
"billing_email": "",
"info": "Stock the cars with bottled water.\n\nImportant customer."
},
"etags": {
"comjobs": []
},
"assign": {
"blocked": {
"users": []
}
},
"phone": "+1555111222",
"flags": 1,
"tariff_group": 0,
"t": 0,
"cost_code": "",
"tariff_group_type": 0,
"cts": 1394981673,
"payw": 10,
"parent_id": 0
}
}
Secured by jwt
post /api/v1/company/{company_id}/customer/account/ids/{account_id}
Updates an account
URI Parameters
- company_id: required(integer)
unique company id
- account_id: required(string)
Headers
- Authorization: required(string)
Authentication is handled by provided JsonWebToken
Example:
Bearer xxx.yyy.zzz
Body
Media type: application/json
Type: any
Example:
{
"account": {
"id": 8884,
"cid": 1318,
"name": "1403161",
"cname": "Duck, Donald",
"lname": "Duck",
"fname": "Donald",
"tags": {
"fee": 0,
"contact_email": "",
"address": "23 Fantasia World Ct.\nOrlando, FL 45632",
"billing_email": "",
"info": "Stock the cars with bottled water.\n\nImportant customer."
},
"etags": {
"comjobs": []
},
"assign": {
"blocked": {
"users": []
}
},
"phone": "+1555111222",
"flags": 1,
"tariff_group": 0,
"t": 0,
"cost_code": "",
"tariff_group_type": 0,
"cts": 1394981673,
"payw": 10,
"parent_id": 0
}
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"account": {
"id": 8884,
"cid": 1318,
"name": "1403161",
"cname": "Duck, Donald",
"lname": "Duck",
"fname": "Donald",
"tags": {
"fee": 0,
"contact_email": "",
"address": "23 Fantasia World Ct.\nOrlando, FL 45632",
"billing_email": "",
"info": "Stock the cars with bottled water.\n\nImportant customer."
},
"etags": {
"comjobs": []
},
"assign": {
"blocked": {
"users": []
}
},
"phone": "+1555111222",
"flags": 1,
"tariff_group": 0,
"t": 0,
"cost_code": "",
"tariff_group_type": 0,
"cts": 1394981673,
"payw": 10,
"parent_id": 0
}
}
Secured by jwt
delete /api/v1/company/{company_id}/customer/account/ids/{account_id}
Deletes an account
URI Parameters
- company_id: required(integer)
unique company id
- account_id: required(string)
Headers
- Authorization: required(string)
Authentication is handled by provided JsonWebToken
Example:
Bearer xxx.yyy.zzz
Secured by jwt
creates an account
post /api/v1/company/{company_id}/customer/account/create
creates an account
URI Parameters
- company_id: required(integer)
unique company id
Headers
- Authorization: required(string)
Authentication is handled by provided JsonWebToken
Example:
Bearer xxx.yyy.zzz
Body
Media type: application/json
Type: any
Example:
{
"account": {
"id": 8884,
"cid": 1318,
"name": "1403161",
"cname": "Duck, Donald",
"lname": "Duck",
"fname": "Donald",
"tags": {
"fee": 0,
"contact_email": "",
"address": "23 Fantasia World Ct.\nOrlando, FL 45632",
"billing_email": "",
"info": "Stock the cars with bottled water.\n\nImportant customer."
},
"etags": {
"comjobs": []
},
"assign": {
"blocked": {
"users": []
}
},
"phone": "+1555111222",
"flags": 1,
"tariff_group": 0,
"t": 0,
"cost_code": "",
"tariff_group_type": 0,
"cts": 1394981673,
"payw": 10,
"parent_id": 0
}
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"account": {
"id": 8884,
"cid": 1318,
"name": "1403161",
"cname": "Duck, Donald",
"lname": "Duck",
"fname": "Donald",
"tags": {
"fee": 0,
"contact_email": "",
"address": "23 Fantasia World Ct.\nOrlando, FL 45632",
"billing_email": "",
"info": "Stock the cars with bottled water.\n\nImportant customer."
},
"etags": {
"comjobs": []
},
"assign": {
"blocked": {
"users": []
}
},
"phone": "+1555111222",
"flags": 1,
"tariff_group": 0,
"t": 0,
"cost_code": "",
"tariff_group_type": 0,
"cts": 1394981673,
"payw": 10,
"parent_id": 0
}
}
Secured by jwt
/api/v1/company/{company_id}/client
Client are an account type used by passengers to log into web and mobile booking portals.
Create a new client that your company has full control over
post /api/v1/company/{company_id}/client
Create a new client that your company has full control over
URI Parameters
- company_id: required(integer)
unique company id
Headers
- Authorization: required(string)
Authentication is handled by provided JsonWebToken
Example:
Bearer xxx.yyy.zzz
Body
Media type: application/json
Type: any
Example:
{
"client": {
"first_name": "Jan",
"last_name": "Nilsson",
"phone": "+46123132",
"country": "se",
"email": "jan.nilsson@taxicaller.com"
},
"client_password": "Secret password"
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"client": {
"country": "se",
"company_id": 13001,
"phone": "1234",
"phone_status": 0,
"last_name": "Nilsson",
"id": 4004,
"first_name": "Jan",
"email_status": 0,
"email": "jan.nilsson@taxicaller.com"
}
}
Secured by jwt
Get client ID
Updates a client that your company has full control over
get /api/v1/company/{company_id}/client/{client_id}
Get client ID
URI Parameters
- company_id: required(integer)
unique company id
- client_id: required(string)
Headers
- Authorization: required(string)
Authentication is handled by provided JsonWebToken
Example:
Bearer xxx.yyy.zzz
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"client": {
"country": "se",
"company_id": 13001,
"phone": "1234",
"phone_status": 0,
"last_name": "Nilsson",
"id": 4004,
"first_name": "Jan",
"email_status": 0,
"email": "jan.nilsson@taxicaller.com"
}
}
Secured by jwt
post /api/v1/company/{company_id}/client/{client_id}
Updates a client that your company has full control over
URI Parameters
- company_id: required(integer)
unique company id
- client_id: required(string)
Headers
- Authorization: required(string)
Authentication is handled by provided JsonWebToken
Example:
Bearer xxx.yyy.zzz
Body
Media type: application/json
Type: any
Example:
{
"client": {
"country": "se",
"company_id": 13001,
"phone": "1234",
"phone_status": 0,
"last_name": "Nilsson",
"id": 4004,
"first_name": "Jan",
"email_status": 0,
"email": "jan.nilsson@taxicaller.com"
}
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"client": {
"country": "se",
"company_id": 13001,
"phone": "1234",
"phone_status": 0,
"last_name": "Nilsson",
"id": 4004,
"first_name": "Jan",
"email_status": 0,
"email": "jan.nilsson@taxicaller.com"
}
}
Secured by jwt
Update client password
post /api/v1/company/{company_id}/client/{client_id}/password
Update client password
URI Parameters
- company_id: required(integer)
unique company id
- client_id: required(string)
Headers
- Authorization: required(string)
Authentication is handled by provided JsonWebToken
Example:
Bearer xxx.yyy.zzz
Body
Media type: application/json
Type: any
HTTP status code 200
Secured by jwt
post /api/v1/company/{company_id}/client/{client_id}/link
URI Parameters
- company_id: required(integer)
unique company id
- client_id: required(string)
Headers
- Authorization: required(string)
Authentication is handled by provided JsonWebToken
Example:
Bearer xxx.yyy.zzz
Body
Media type: application/json
Type: any
Example:
{
"account_id": 156134
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"account_id": 156134,
"id": 4,
"type": 1,
"client_id": 4004
}
Secured by jwt
delete /api/v1/company/{company_id}/client/{client_id}/link/{link_id}
URI Parameters
- company_id: required(integer)
unique company id
- client_id: required(string)
- link_id: required(string)
Headers
- Authorization: required(string)
Authentication is handled by provided JsonWebToken
Example:
Bearer xxx.yyy.zzz
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"account_id": 156134,
"id": 4,
"type": 1,
"client_id": 4004
}
Secured by jwt
List all clients controlled by your company
get /api/v1/company/{company_id}/client/list
List all clients controlled by your company
URI Parameters
- company_id: required(integer)
unique company id
Headers
- Authorization: required(string)
Authentication is handled by provided JsonWebToken
Example:
Bearer xxx.yyy.zzz
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"clients": [
{
"country": "se",
"company_id": 13001,
"phone": "+4612348798",
"phone_status": 0,
"last_name": "Peter",
"id": 4004,
"first_name": "Smith",
"email_status": 0,
"email": "peter.smith@taxicaller.com"
},
{
"country": "se",
"company_id": 13001,
"phone": "+4612316546",
"phone_status": 0,
"last_name": "Svensson",
"id": 4005,
"first_name": "Jan",
"email_status": 0,
"email": "jan.svensson@taxicaller.com"
}
],
"_metadata": {
"page": {
"limit": 2,
"offset": 10
},
"total": 33
}
}
Secured by jwt
/api/v1/company/{company_id}/bank
TaxiCaller has support for bank-like accounts and transactions. This is to aid companies to keep track of drivers earnings and payable fees.
Bank accounts are stored in groups. Within each group, each user, customer account or vehicle can have one linked account created by the account-group/ids/{id}/ensure/{target_type} endpoint.
Transactions are made in two steps: First you prepare the transfer order with GET/transfer-order/create, and use the resulting transfer order id to execute the order with POST /transfer-order/ids/{order_id}.
Setup account groups
post /api/v1/company/{company_id}/bank/account-group-setup
Setup account groups
URI Parameters
- company_id: required(integer)
unique company id
Headers
- Authorization: required(string)
Authentication is handled by provided JsonWebToken
Example:
Bearer xxx.yyy.zzz
Body
Media type: application/json
Type: any
Example:
{
"cobanking_setup": {
"accounts": {
"source": {
"name": "Deposit account"
},
"target": {
"name": "Target account"
}
},
"group": {
"currency": "XXP",
"name": "Main group"
}
}
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"cobanking_setup": {
"accounts": {
"source": {
"name": "Deposit account",
"id": 13905
},
"target": {
"name": "Target account",
"id": 13906
}
},
"group": {
"name": "Main group",
"currency": "XXP",
"id": 385
}
}
}
Secured by jwt
Gets a list of account groups
get /api/v1/company/{company_id}/bank/account-group/list
Gets a list of account groups
URI Parameters
- company_id: required(integer)
unique company id
Headers
- Authorization: required(string)
Authentication is handled by provided JsonWebToken
Example:
Bearer xxx.yyy.zzz
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"account_groups": [
{
"company_id": 13698,
"name": "Main group",
"currency": "EUR",
"id": 363,
"default_account": 0
}
]
}Secured by jwt
Create a new account group
post /api/v1/company/{company_id}/bank/account-group/create
Create a new account group
URI Parameters
- company_id: required(integer)
unique company id
Headers
- Authorization: required(string)
Authentication is handled by provided JsonWebToken
Example:
Bearer xxx.yyy.zzz
Body
Media type: application/json
Type: any
Example:
{
"account_group": {
"name": "Main group",
"currency": "EUR",
"default_account": 0
}
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"account_group": {
"company_id": 13698,
"name": "Main group",
"currency": "EUR",
"id": 388,
"default_account": 0
}
}
Secured by jwt
Get an account group by id
Update an account group. Only name can be changed.
get /api/v1/company/{company_id}/bank/account-group/ids/{id}
Get an account group by id
URI Parameters
- company_id: required(integer)
unique company id
- id: required(integer)
Account group id
Headers
- Authorization: required(string)
Authentication is handled by provided JsonWebToken
Example:
Bearer xxx.yyy.zzz
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"account_group": {
"company_id": 13698,
"name": "Main group",
"currency": "EUR",
"id": 388,
"default_account": 0
}
}
Secured by jwt
post /api/v1/company/{company_id}/bank/account-group/ids/{id}
Update an account group. Only name can be changed.
URI Parameters
- company_id: required(integer)
unique company id
- id: required(integer)
Account group id
Headers
- Authorization: required(string)
Authentication is handled by provided JsonWebToken
Example:
Bearer xxx.yyy.zzz
Body
Media type: application/json
Type: any
Example:
{
"account_group": {
"company_id": 13698,
"name": "Main group",
"currency": "EUR",
"id": 388,
"default_account": 0
}
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"account_group": {
"company_id": 13698,
"name": "Main group",
"currency": "EUR",
"id": 388,
"default_account": 0
}
}
Secured by jwt
/api/v1/company/{company_id}/bank/account-group/ids/{id}/links/type/{target_type}/id/{target_id} get
Get an account from a linked resource
get /api/v1/company/{company_id}/bank/account-group/ids/{id}/links/type/{target_type}/id/{target_id}
Get an account from a linked resource
URI Parameters
- company_id: required(integer)
unique company id
- id: required(integer)
Account group id
- target_type: required(string)
Resource type. One of user, vehicle or customer
- target_id: required(integer)
Resource id. The id of the user, vehicle or customer account
Headers
- Authorization: required(string)
Authentication is handled by provided JsonWebToken
Example:
Bearer xxx.yyy.zzz
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"link": {
"account_id": 14953,
"company_id": 13698,
"group_id": 389,
"target_type": "customer",
"target_id": 2088,
"id": 4474
}
}
Secured by jwt
Create linked bank accounts for users, vehicles or customers, if they doesn't already exist for this group.
For users, this request can be sent without a body (or an empty body), in which case bank accounts for all users will be created. For vehicles and customers, a target_ids array is required.
This method will run asynchronously after the request is complete, so no results are provided in the response.
post /api/v1/company/{company_id}/bank/account-group/ids/{id}/ensure/{target_type}
Create linked bank accounts for users, vehicles or customers, if they doesn't already exist for this group.
For users, this request can be sent without a body (or an empty body), in which case bank accounts for all users will be created. For vehicles and customers, a target_ids array is required.
This method will run asynchronously after the request is complete, so no results are provided in the response.
URI Parameters
- company_id: required(integer)
unique company id
- id: required(integer)
Account group id
- target_type: required(string)
Resource type. One of user, vehicle or customer
Headers
- Authorization: required(string)
Authentication is handled by provided JsonWebToken
Example:
Bearer xxx.yyy.zzz
Body
Media type: application/json
Type: any
Example:
{
"target_ids": [2001]
}
Secured by jwt
Gets a list of bank accounts
get /api/v1/company/{company_id}/bank/account/list
Gets a list of bank accounts
URI Parameters
- company_id: required(integer)
unique company id
Headers
- Authorization: required(string)
Authentication is handled by provided JsonWebToken
Example:
Bearer xxx.yyy.zzz
Query Parameters
- currency: (string)
Filters accounts by currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"accounts": [
{
"id": 10001,
"balance": 0,
"last_transaction": 0,
"name": "Driver point source",
"entity_id": 0,
"min_limit": 0,
"currency": "XXP"
},
{
"id": 10002,
"balance": 0,
"last_transaction": 0,
"name": "Driver point target",
"entity_id": 0,
"min_limit": 0,
"currency": "XXP"
},
{
"id": 10003,
"balance": 0,
"last_transaction": 0,
"name": "grp: 102, user-44838",
"entity_id": 0,
"min_limit": 0,
"currency": "XXP"
},
{
"id": 10004,
"balance": 0,
"last_transaction": 0,
"name": "grp: 102, user-9072",
"entity_id": 0,
"min_limit": 0,
"currency": "XXP"
},
{
"id": 10005,
"balance": 0,
"last_transaction": 0,
"name": "grp: 102, user-44807",
"entity_id": 0,
"min_limit": 0,
"currency": "XXP"
},
{
"id": 10006,
"balance": 0,
"last_transaction": 0,
"name": "grp: 102, user-44835",
"entity_id": 0,
"min_limit": 0,
"currency": "XXP"
}
]
}
Secured by jwt
Gets an account
Updates an account. Name and min_limit can be modified, to change the balance the transaction api has to be used.
get /api/v1/company/{company_id}/bank/account/ids/{account_id}
Gets an account
URI Parameters
- company_id: required(integer)
unique company id
- account_id: required(string)
Headers
- Authorization: required(string)
Authentication is handled by provided JsonWebToken
Example:
Bearer xxx.yyy.zzz
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"account": {
"balance": 0,
"min_limit": 0,
"name": "test account",
"currency": "SEK",
"id": 1,
"entity_id": 0,
"last_transaction": 0
}
}
Secured by jwt
post /api/v1/company/{company_id}/bank/account/ids/{account_id}
Updates an account. Name and min_limit can be modified, to change the balance the transaction api has to be used.
URI Parameters
- company_id: required(integer)
unique company id
- account_id: required(string)
Headers
- Authorization: required(string)
Authentication is handled by provided JsonWebToken
Example:
Bearer xxx.yyy.zzz
Body
Media type: application/json
Type: any
Example:
{
"account": {
"balance": 0,
"min_limit": 0,
"name": "test account",
"currency": "SEK",
"id": 1,
"entity_id": 0,
"last_transaction": 0
}
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"account": {
"balance": 0,
"min_limit": 0,
"name": "test account",
"currency": "SEK",
"id": 1,
"entity_id": 0,
"last_transaction": 0
}
}
Secured by jwt
Gets a list of transactions
get /api/v1/company/{company_id}/bank/account/ids/{account_id}/transaction/list
Gets a list of transactions
URI Parameters
- company_id: required(integer)
unique company id
- account_id: required(string)
Headers
- Authorization: required(string)
Authentication is handled by provided JsonWebToken
Example:
Bearer xxx.yyy.zzz
Query Parameters
- offset: required(integer)
The first record to return
- limit: required(integer)
The number of records to return
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"transactions": [
{
"amount": -1000,
"balance": 3000,
"src_id": 0,
"src": 0,
"description": "Top up account",
"currency": "EUR",
"id": 1848386,
"time": 1669051226796,
"account": 0
},
{
"amount": -1000,
"balance": 2000,
"src_id": 0,
"src": 0,
"description": "Top up account",
"currency": "EUR",
"id": 1848385,
"time": 1669051211097,
"account": 0
}
],
"_metadata": {
"total": 2,
"page": {
"offset": 0,
"limit": 50
}
}
}
Secured by jwt
Creates an account
post /api/v1/company/{company_id}/bank/account/create
Creates an account
URI Parameters
- company_id: required(integer)
unique company id
Headers
- Authorization: required(string)
Authentication is handled by provided JsonWebToken
Example:
Bearer xxx.yyy.zzz
Body
Media type: application/json
Type: any
Example:
{
"account": {
"balance": 0,
"min_limit": 0,
"name": "test account",
"currency": "SEK",
"entity_id": 0,
"last_transaction": 0
}
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"account": {
"balance": 0,
"min_limit": 0,
"name": "test account",
"currency": "SEK",
"id": 1,
"entity_id": 0,
"last_transaction": 0
}
}
Secured by jwt
Creates an new transfer
post /api/v1/company/{company_id}/bank/transfer-order/create
Creates an new transfer
URI Parameters
- company_id: required(integer)
unique company id
Headers
- Authorization: required(string)
Authentication is handled by provided JsonWebToken
Example:
Bearer xxx.yyy.zzz
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"order": {
"amount": 0,
"src_id": 0,
"from_account": 0,
"src": 0,
"meta": null,
"description": null,
"currency": null,
"id": 498928963,
"state": 1,
"transaction": null,
"executor_id": 0,
"to_account": 0
}
}
Secured by jwt
Gets a transaction
Executes a transfer order
get /api/v1/company/{company_id}/bank/transfer-order/ids/{order_id}
Gets a transaction
URI Parameters
- company_id: required(integer)
unique company id
- order_id: required(string)
Headers
- Authorization: required(string)
Authentication is handled by provided JsonWebToken
Example:
Bearer xxx.yyy.zzz
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"order": {
"amount": 1000,
"src_id": 0,
"from_account": 10001,
"src": 0,
"meta": null,
"description": "test",
"currency": "SEK",
"id": 498645512,
"state": 20,
"transaction": {
"amount": 1000,
"exchange_rate": 1,
"src_id": 0,
"from_account": 10001,
"src": 0,
"description": "test",
"to_balance": 1000,
"from_balance": -706000,
"meta": null,
"currency": "SEK",
"id": 148,
"time": 1467230079782,
"to_account": 10002
},
"executor_id": 0,
"to_account": 10002
}
}
Secured by jwt
post /api/v1/company/{company_id}/bank/transfer-order/ids/{order_id}
Executes a transfer order
URI Parameters
- company_id: required(integer)
unique company id
- order_id: required(string)
Headers
- Authorization: required(string)
Authentication is handled by provided JsonWebToken
Example:
Bearer xxx.yyy.zzz
Body
Media type: application/json
Type: any
Example:
{
"order": {
"amount": 1000,
"from_account": 10001,
"to_account": 10002,
"description": "test",
"currency": "SEK"
}
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"order": {
"amount": 1000,
"src_id": 0,
"from_account": 10001,
"src": 0,
"meta": null,
"description": "test",
"currency": "SEK",
"id": 498645512,
"state": 20,
"transaction": {
"amount": 1000,
"exchange_rate": 1,
"src_id": 0,
"from_account": 10001,
"src": 0,
"description": "test",
"to_balance": 1000,
"from_balance": -706000,
"meta": null,
"currency": "SEK",
"id": 148,
"time": 1467230079782,
"to_account": 10002
},
"executor_id": 0,
"to_account": 10002
}
}
Secured by jwt
/api/v1/company/{company_id}/document
Upload/download/list documents for the current company
Download the document with the given uid
Delete the document with the given uid
get /api/v1/company/{company_id}/document/ids/{uid}
Download the document with the given uid
URI Parameters
- company_id: required(integer)
unique company id
- uid: required(string)
Headers
- Authorization: required(string)
Authentication is handled by provided JsonWebToken
Example:
Bearer xxx.yyy.zzz
Secured by jwt
delete /api/v1/company/{company_id}/document/ids/{uid}
Upload a document to the document store
post /api/v1/company/{company_id}/document/upload
Upload a document to the document store
URI Parameters
- company_id: required(integer)
unique company id
Headers
- Authorization: required(string)
Authentication is handled by provided JsonWebToken
Example:
Bearer xxx.yyy.zzz
Body
Media type: multipart/form-data
Type: any
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"document": {
"_id": "570f5519457d4cda5a478f8f",
"cid": "13672",
"mimetype": "image/png",
"name": "20160317_155208_dispatch-console-new-customer1_en.png",
"size": 11783
}
}
Secured by jwt
Get a list of metadata for the documents in the document store. Max 100 documents per request.
get /api/v1/company/{company_id}/document/metadata/list
Get a list of metadata for the documents in the document store. Max 100 documents per request.
URI Parameters
- company_id: required(integer)
unique company id
Headers
- Authorization: required(string)
Authentication is handled by provided JsonWebToken
Example:
Bearer xxx.yyy.zzz
Query Parameters
- offset: required(integer)
The first record to return
- limit: required(integer)
The number of records to return
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"list": [
{
"_id": "570f5519457d4cda5a478f8f",
"cid": "13672",
"mimetype": "image/png",
"name": "20160317_155208_dispatch-console-new-customer1_en.png",
"size": 11783
},
{
"_id": "570f551d457d4cda5a478f90",
"cid": "13672",
"mimetype": "image/png",
"name": "20160317_155221_dispatch-console-new-customer2_en.png",
"size": 238170
}
]
}
Secured by jwt
Get metadata for the document with the given uid
get /api/v1/company/{company_id}/document/metadata/ids/{uid}
Get metadata for the document with the given uid
URI Parameters
- company_id: required(integer)
unique company id
- uid: required(string)
Headers
- Authorization: required(string)
Authentication is handled by provided JsonWebToken
Example:
Bearer xxx.yyy.zzz
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"document": {
"_id": "570f5519457d4cda5a478f8f",
"cid": "13672",
"mimetype": "image/png",
"name": "20160317_155208_dispatch-console-new-customer1_en.png",
"size": 11783
}
}
Secured by jwt
/api/v1/company/{company_id}
A simple key value store that can be used to store small amounts of data related to a company.
Get paginated list of all key value pairs
get /api/v1/company/{company_id}/store/list
Get paginated list of all key value pairs
URI Parameters
- company_id: required(integer)
unique company id
Headers
- Authorization: required(string)
Authentication is handled by provided JsonWebToken
Example:
Bearer xxx.yyy.zzz
Query Parameters
- offset: required(integer)
The first record to return
- limit: required(integer)
The number of records to return
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"list": [
{
"company_id": 13698,
"created": 1631542888942,
"value": "some-key-value",
"updated": 1631542888942,
"key": "key-name"
},
{
"company_id": 13698,
"created": 1631544227804,
"value": "some-key-value-2",
"updated": 1631544227804,
"key": "key-name-2"
}
],
"_metadata": {
"total": 2,
"page": {
"offset": 0,
"limit": 1000
}
}
}
Secured by jwt
Retrieves a key value pair.
Creates or updates a key value pair
Deletes a key value pair
get /api/v1/company/{company_id}/store/key/{key}
Retrieves a key value pair.
URI Parameters
- company_id: required(integer)
unique company id
- key: required(string)
Headers
- Authorization: required(string)
Authentication is handled by provided JsonWebToken
Example:
Bearer xxx.yyy.zzz
HTTP status code 200
Body
Media type: application/json (Found)
Type: any
Example:
{
"entry": {
"company_id": 13698,
"created": 1631544227804,
"value": "some-key-value",
"updated": 1631544227804,
"key": "key-name"
}
}
Media type: application/json (Not Found)
Type: any
Example:
{
"entry": null
}
Secured by jwt
post /api/v1/company/{company_id}/store/key/{key}
Creates or updates a key value pair
URI Parameters
- company_id: required(integer)
unique company id
- key: required(string)
Headers
- Authorization: required(string)
Authentication is handled by provided JsonWebToken
Example:
Bearer xxx.yyy.zzz
Body
Media type: application/json
Type: any
Example:
{
"value": "some-key-value"
}HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"entry": {
"company_id": 13698,
"created": 1631544227804,
"value": "some-key-value",
"updated": 1631544227804,
"key": "key-name"
}
}
Secured by jwt
delete /api/v1/company/{company_id}/store/key/{key}
Deletes a key value pair
URI Parameters
- company_id: required(integer)
unique company id
- key: required(string)
Headers
- Authorization: required(string)
Authentication is handled by provided JsonWebToken
Example:
Bearer xxx.yyy.zzz
Secured by jwt
/api/v1/company/{company_id}/webhook/log
Webhook delivery logs. Rows are kept for 7 days after they are written. Requires the WEBHOOK_LOGGING system feature to be enabled for the company.
Get the webhook delivery log for a specific resource (JOB, SHIFT or ORDER). Newest entries first. Both resource_type and resource_id are required.
get /api/v1/company/{company_id}/webhook/log/resource
Get the webhook delivery log for a specific resource (JOB, SHIFT or ORDER). Newest entries first. Both resource_type and resource_id are required.
URI Parameters
- company_id: required(integer)
unique company id
Headers
- Authorization: required(string)
Authentication is handled by provided JsonWebToken
Example:
Bearer xxx.yyy.zzz
Query Parameters
- resource_type: required(one of JOB, SHIFT, ORDER)
Scope of the resource the webhook was sent for.
- resource_id: required(string)
For JOB and SHIFT this is the numeric id as a decimal string (e.g. "23487"). For ORDER this is the hex-encoded 8-byte id.
- offset: required(integer)
The first record to return
- limit: required(integer)
The number of records to return
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"retcode": 0,
"data": {
"entries": [
{
"id": "000006fb9c83c001",
"company_id": 47932,
"resource": {
"type": "JOB",
"id": "23487"
},
"event_type": "JOB_STATE_DELIVERED",
"method": "POST",
"url": "https://example.com/hooks/taxicaller",
"body": "{\"job_id\":23487,\"status\":\"delivered\"}",
"response_code": 200,
"response_body": "{\"ok\":true}",
"response_at": 1745308800123,
"created_at": 1745308800125
},
{
"id": "000006fb9d12a003",
"company_id": 47932,
"resource": {
"type": "JOB",
"id": "23487"
},
"event_type": "JOB_STATUS_CANCEL",
"method": "POST",
"url": "https://example.com/hooks/taxicaller",
"body": "{\"job_id\":23487,\"status\":\"cancel\"}",
"response_code": null,
"response_body": null,
"response_at": null,
"created_at": 1745309400000
}
]
},
"err_msg": ""
}
Secured by jwt
List webhook deliveries within the given time range. Defaults to failures only (response_code >= 400 or no response received at all); set errors_only=false to also include successful deliveries. Newest entries first. Optionally narrow to a specific resource by supplying both resource_type and resource_id.
get /api/v1/company/{company_id}/webhook/log/list
List webhook deliveries within the given time range. Defaults to failures only (response_code >= 400 or no response received at all); set errors_only=false to also include successful deliveries. Newest entries first. Optionally narrow to a specific resource by supplying both resource_type and resource_id.
URI Parameters
- company_id: required(integer)
unique company id
Headers
- Authorization: required(string)
Authentication is handled by provided JsonWebToken
Example:
Bearer xxx.yyy.zzz
Query Parameters
- from: required(integer)
Range start, epoch milliseconds (inclusive).
- to: required(integer)
Range end, epoch milliseconds (exclusive).
- resource_type: (one of JOB, SHIFT, ORDER)
Optional filter by resource scope.
- resource_id: (string)
Optional filter by specific resource id. Requires resource_type to be set. For JOB and SHIFT this is the numeric id as a decimal string (e.g. "23487"); for ORDER the hex-encoded 8-byte id.
- errors_only: (boolean - default: true)
When true (default), only failed deliveries are returned. Set to false to include successful deliveries as well.
- offset: required(integer)
The first record to return
- limit: required(integer)
The number of records to return
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"retcode": 0,
"data": {
"entries": [
{
"id": "000006fb9c83c001",
"company_id": 47932,
"resource": {
"type": "JOB",
"id": "23487"
},
"event_type": "JOB_STATE_DELIVERED",
"method": "POST",
"url": "https://example.com/hooks/taxicaller",
"body": "{\"job_id\":23487,\"status\":\"delivered\"}",
"response_code": 200,
"response_body": "{\"ok\":true}",
"response_at": 1745308800123,
"created_at": 1745308800125
},
{
"id": "000006fb9d12a003",
"company_id": 47932,
"resource": {
"type": "JOB",
"id": "23487"
},
"event_type": "JOB_STATUS_CANCEL",
"method": "POST",
"url": "https://example.com/hooks/taxicaller",
"body": "{\"job_id\":23487,\"status\":\"cancel\"}",
"response_code": null,
"response_body": null,
"response_at": null,
"created_at": 1745309400000
}
]
},
"err_msg": ""
}
Secured by jwt
/api/v1/booker
API used to create bookings and track their progress.
Generates a token to be used by booker api
get /api/v1/booker/booker-token
Generates a token to be used by booker api
Headers
- Authorization: required(string)
Authentication is handled by provided JsonWebToken
Example:
Bearer xxx.yyy.zzz
Query Parameters
- data: required(string)
Example:
{"creds": { "company_id": {{company_id}}, "ops": 3 } }
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"creds": {
"account_id": 0,
"ops": 3,
"company_id": 1318,
"job_id": 0,
"order_id": null
},
"token": "eyJhbGciOiJIUzI1NiJ9.eyJjaWQiOjEzMTgsImppZCI6MCwiYWNpZCI6MCwib3BzIjozLCJzdWIiOiJib29rZXIiLCJleHAiOjE1MTk0MjcyNjN9.C5WLhUSeIZdwLScanPBkMjlqHQV7Wjxo5Fl_td7hfDY"
}
Secured by jwt
Create a new order
post /api/v1/booker/order
Create a new order
Headers
- Authorization: required(string)
Authentication is handled by provided JsonWebToken
Example:
Bearer xxx.yyy.zzz
Body
Media type: application/json
Type: object
Properties- order: required(object)
- company_id: required(integer)
company ID. Can be found on the api keys page.
- provider_id: required(integer)
provider (sub-company) ID. Set to 0 for any provider.
- items: required(object)
Passengers. Basic usage: One user who is responsible for the booking. Advanced usage: Several users, these can have different pick up and drop off which is described below in actions
- @type: required(string)
value should be 'passengers'
- seq: required(integer)
'sequence': passenger number, has to increment by one
- passenger: required(object)
- name: required(string)
full name
- email: required(string)
- phone: required(string)
full phone number including country code
- name: required(string)
- client_id: required(integer)
Id for passenger managed account. Set to 0 for no passenger account.
- account: (object)
- id: required(integer)
customer account id for an account managed by the taxi company. Set to 0 for no customer account.
- id: required(integer)
- require: required(object)
- seats: required(integer)
number of seats
- wc: required(integer)
number of wheelchairs
- bags: required(integer)
number of bags
- seats: required(integer)
- pay_info: required(object)
Payment method.
- @t: required(string)
Payment type: CASH = 0, CARD_PRESENT = 5, BILLED = 10, VOUCHER = 30, ETICKET = 31
- data: required(string)
data required for the chosen payment method: CASH: null, CARD_PRESENT: null, ETICKET: { code: string }, BILLED: { account_id: integer, code: string }, VOUCHER: { voucher_id: long }
- @t: required(string)
- @type: required(string)
- route: required(object)
- meta: required(object)
route meta info
- est_dur: required(string)
estimated route duration in seconds
- dist: required(string)
route distance in meters
- est_dur: required(string)
- nodes: required(object)
Nodes. A node can be a pick up or drop off location. Atleast one pick up node is required, a drop off node is optional depending on settings in the admin panel. A node can contain actions, which determine what passenger(s) should be pickup up or dropped off at that location
- actions: required(object)
An array of actions that should happen at the node
- @type: required(string)
value should be 'client_action'
- item_seq: required(integer)
sequence number of the item to be affected
- action: required(string)
For pick up: 'in', for drop up: 'out'
- @type: required(string)
- location: required(object)
- name: required(string)
The address of the node
- coords: required(array)
An array containing Latitude and Longitude. Taxicaller takes Longitude first then latitude [Long, Lat]. Coords from for example google maps are multiplied by 1e6 ( 15.626493 (Long), 58.415701 (Lat) => [15626493, 58415701] )
- name: required(string)
- times: (object)
optional: set this for the pick up node and not for the drop off node
- arrive: required(object)
- target: required(integer)
Pick up time. Timestamp in unix seconds. for ASAP jobs, the value should be 0.
- target: required(integer)
- arrive: required(object)
- info: required(object)
- all: required(string)
a message for the driver or ''
- all: required(string)
- seq: required(integer)
'sequence': node number, each node should be incremented by one. e.g pick up node seq: 0, drop off node seq: 1
- actions: required(object)
- legs: required(object)
A leg is the route between two nodes. Normal bookings contain one leg: the route between pick up and drop off.
- pts: required(array)
route points from google from pick up to drop off, this is what is shown in the dispatch map for example
- meta: required(string)
same meta object as in route except with values for this leg only
- from_seq: required(integer)
The node from which the leg starts
- to_seq: required(integer)
The node where the leg ends at
- pts: required(array)
- meta: required(object)
- company_id: required(integer)
Example:
{
"order" : {
"company_id" : 123,
"provider_id" : 12345,
"items":
[
{
"@type" : "passengers",
"seq" : 0,
"passenger" : {
"name" : "John Smith",
"phone" : "+46721234567", // full phone number including country code
"email" : "john@example.com"
},
"client_id" : 42,
"account" : { // can be null
"id" : 79020, // customer account id
"extra" : null
},
"require" : {
"seats" : 1, // amount of seats
"wc" : 0, // number of wheelchairs
"bags" : 1 // amount of bag spaces
},
"pay_info": // payment data, e.g cash, card reader
[
{
"@t": 0, // CASH
"data": null
}
],
"custom_fields":{
"tag.driver.1": "true", // Driver tags to be used in the booking
"tag.vehicle.1": "true" // Vehicle tag to be used in the booking
}
}
],
"route": {
"nodes":
[
{
"actions": // contains action such as pick up, drop off
[
{
"@type": "client_action",
"item_seq": 0, // passenger seq
"action": "in" // pick up
}
],
"location" : {
"name" : "Järnvägsgatan 3, 582 22 Linköping, Sweden", // pick up address
"coords" : [ 15626493, 58415701 ] // pick up coordinates, coordinates from google maps are multiplied by 1e6 (15.626493, 58.415701 => 15626493, 58415701) and parsed as [Long, Lat]
},
"times" : {
"arrive" : {
"target" : 1487890582, // pick up time: timestamp in unix seconds
"latest" : 0 // leave this at 0
}
},
"info" : {
"all" : "Needs help with luggage" // a message to the driver or ""
},
"seq" : 0 // "sequence" number
},
{
"actions" : [
{
"@type": "client_action",
"item_seq": 0, // passenger seq
"action": "out" // drop off
}
],
"location" : {
"name" : "Teknikringen 1A, Linköping, Sweden", // drop off address
"coords" : [ 15566656, 58393584 ] // drop off coordinates
},
"times" : null, // can be null for drop off node
"info" : {
},
"seq" : 1 // "sequence" number
}
],
"legs": [
{
"meta": {
"dist": 5496, // estimated leg distance
"est_dur": 603 // estimated leg duration
},
"pts":
[
15621480,
58410380,
15619850,
58410130,
15620170,
58409480,
15618970,
58409330,
15618900,
58409300,
15618800,
58409240,
15618610,
58408880,
15618220,
58408300,
15618090,
58408170,
15617930,
58408070 // more ...
],
"from_seq": 0,
"to_seq": 1
}
],
"meta" : {
"dist": 6264, // TOTAL route distance in meters
"est_dur": 683 // estimated TOTAL duration in seconds
}
}
}
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"order_token": "eyJhbGciOiJIUzI1NiJ9.eyJjaWQiOjEzMTgsIm9pZCI6IjU4YWY2OTU1MDAyNzExYzRmZjQwMDAwMCIsImppZCI6Mzc0NDMzNzAsImFjaWQiOjAsIm9wcyI6Mywic3ViIjoiYm9va2VyIiwiZXhwIjoxNTE5NDI2NzgxfQ.mHeh9_4_Zhf4JGFCAr9GA4ONkjWL4qkC7bmzzwOAERA",
"order": {
"route": {
"nodes": [
{
"times": {
"arrive": {
"target": 0,
"latest": 0
},
"depart": null
},
"location": {
"name": "Järnvägsgatan 3, 582 22 Linköping, Sweden",
"coords": [
15626493,
58415701
]
},
"actions": [],
"seq": 0,
"info": {
"all": "Needs help with luggage"
}
},
{
"times": {
"arrive": {
"target": 0,
"latest": 0
},
"depart": null
},
"location": {
"name": "Teknikringen 1A, Linköping, Sweden",
"coords": [
15566656,
58393584
]
},
"actions": [],
"seq": 1,
"info": {}
}
],
"meta": {
"dist": 6264,
"est_dur": 683
},
"legs": []
},
"company_id": 1318,
"created": 0,
"provider_id": 0,
"order_id": "58af6955002711c4ff400000",
"items": [
{
"pay_info": [],
"passenger": {
"phone": "123456",
"name": "John Smith",
"email": ""
},
"@type": "passengers",
"require": {
"bags": 1,
"wc": 0,
"seats": 2
},
"seq": 0,
"client_id": 0,
"account": null
}
]
}
}
Secured by jwt
Gets an order
Updates the order with new information
get /api/v1/booker/order/{order_id}
Gets an order
URI Parameters
- order_id: required(string)
Can either be a regular order_id (example: 635958864e221576) or a legacy job id (example: job_5295474)
Headers
- Authorization: required(string)
Authentication is handled by provided JsonWebToken
Example:
Bearer xxx.yyy.zzz
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"order_token": "eyJhbGciOiJIUzI1NiJ9.eyJjaWQiOjEzMTgsIm9pZCI6IjU4YWY2OTU1MDAyNzExYzRmZjQwMDAwMCIsImppZCI6Mzc0NDMzNzAsImFjaWQiOjAsIm9wcyI6Mywic3ViIjoiYm9va2VyIiwiZXhwIjoxNTE5NDI2NzgxfQ.mHeh9_4_Zhf4JGFCAr9GA4ONkjWL4qkC7bmzzwOAERA",
"order": {
"route": {
"nodes": [
{
"times": {
"arrive": {
"target": 0,
"latest": 0
},
"depart": null
},
"location": {
"name": "Järnvägsgatan 3, 582 22 Linköping, Sweden",
"coords": [
15626493,
58415701
]
},
"actions": [],
"seq": 0,
"info": {
"all": "Needs help with luggage"
}
},
{
"times": {
"arrive": {
"target": 0,
"latest": 0
},
"depart": null
},
"location": {
"name": "Teknikringen 1A, Linköping, Sweden",
"coords": [
15566656,
58393584
]
},
"actions": [],
"seq": 1,
"info": {}
}
],
"meta": {
"dist": 6264,
"est_dur": 683
},
"legs": []
},
"company_id": 1318,
"created": 0,
"provider_id": 0,
"order_id": "58af6955002711c4ff400000",
"items": [
{
"pay_info": [],
"passenger": {
"phone": "123456",
"name": "John Smith",
"email": ""
},
"@type": "passengers",
"require": {
"bags": 1,
"wc": 0,
"seats": 2
},
"seq": 0,
"client_id": 0,
"account": null
}
]
}
}
Secured by jwt
post /api/v1/booker/order/{order_id}
Updates the order with new information
URI Parameters
- order_id: required(string)
Can either be a regular order_id (example: 635958864e221576) or a legacy job id (example: job_5295474)
Headers
- Authorization: required(string)
Authentication is handled by provided JsonWebToken
Example:
Bearer xxx.yyy.zzz
Body
Media type: application/json
Type: object
Properties- order: required(object)
- company_id: required(integer)
company ID. Can be found on the api keys page.
- provider_id: required(integer)
provider (sub-company) ID. Set to 0 for any provider.
- items: required(object)
Passengers. Basic usage: One user who is responsible for the booking. Advanced usage: Several users, these can have different pick up and drop off which is described below in actions
- @type: required(string)
value should be 'passengers'
- seq: required(integer)
'sequence': passenger number, has to increment by one
- passenger: required(object)
- name: required(string)
full name
- email: required(string)
- phone: required(string)
full phone number including country code
- name: required(string)
- client_id: required(integer)
Id for passenger managed account. Set to 0 for no passenger account.
- account: (object)
- id: required(integer)
customer account id for an account managed by the taxi company. Set to 0 for no customer account.
- id: required(integer)
- require: required(object)
- seats: required(integer)
number of seats
- wc: required(integer)
number of wheelchairs
- bags: required(integer)
number of bags
- seats: required(integer)
- pay_info: required(object)
Payment method.
- @t: required(string)
Payment type: CASH = 0, CARD_PRESENT = 5, BILLED = 10, VOUCHER = 30, ETICKET = 31
- data: required(string)
data required for the chosen payment method: CASH: null, CARD_PRESENT: null, ETICKET: { code: string }, BILLED: { account_id: integer, code: string }, VOUCHER: { voucher_id: long }
- @t: required(string)
- @type: required(string)
- route: required(object)
- meta: required(object)
route meta info
- est_dur: required(string)
estimated route duration in seconds
- dist: required(string)
route distance in meters
- est_dur: required(string)
- nodes: required(object)
Nodes. A node can be a pick up or drop off location. Atleast one pick up node is required, a drop off node is optional depending on settings in the admin panel. A node can contain actions, which determine what passenger(s) should be pickup up or dropped off at that location
- actions: required(object)
An array of actions that should happen at the node
- @type: required(string)
value should be 'client_action'
- item_seq: required(integer)
sequence number of the item to be affected
- action: required(string)
For pick up: 'in', for drop up: 'out'
- @type: required(string)
- location: required(object)
- name: required(string)
The address of the node
- coords: required(array)
An array containing Latitude and Longitude. Taxicaller takes Longitude first then latitude [Long, Lat]. Coords from for example google maps are multiplied by 1e6 ( 15.626493 (Long), 58.415701 (Lat) => [15626493, 58415701] )
- name: required(string)
- times: (object)
optional: set this for the pick up node and not for the drop off node
- arrive: required(object)
- target: required(integer)
Pick up time. Timestamp in unix seconds. for ASAP jobs, the value should be 0.
- target: required(integer)
- arrive: required(object)
- info: required(object)
- all: required(string)
a message for the driver or ''
- all: required(string)
- seq: required(integer)
'sequence': node number, each node should be incremented by one. e.g pick up node seq: 0, drop off node seq: 1
- actions: required(object)
- legs: required(object)
A leg is the route between two nodes. Normal bookings contain one leg: the route between pick up and drop off.
- pts: required(array)
route points from google from pick up to drop off, this is what is shown in the dispatch map for example
- meta: required(string)
same meta object as in route except with values for this leg only
- from_seq: required(integer)
The node from which the leg starts
- to_seq: required(integer)
The node where the leg ends at
- pts: required(array)
- meta: required(object)
- company_id: required(integer)
Example:
{
"order" : {
"company_id" : 123,
"provider_id" : 12345,
"items":
[
{
"@type" : "passengers",
"seq" : 0,
"passenger" : {
"name" : "John Smith",
"phone" : "+46721234567", // full phone number including country code
"email" : "john@example.com"
},
"client_id" : 42,
"account" : { // can be null
"id" : 79020, // customer account id
"extra" : null
},
"require" : {
"seats" : 1, // amount of seats
"wc" : 0, // number of wheelchairs
"bags" : 1 // amount of bag spaces
},
"pay_info": // payment data, e.g cash, card reader
[
{
"@t": 0, // CASH
"data": null
}
],
"custom_fields":{
"tag.driver.1": "true", // Driver tags to be used in the booking
"tag.vehicle.1": "true" // Vehicle tag to be used in the booking
}
}
],
"route": {
"nodes":
[
{
"actions": // contains action such as pick up, drop off
[
{
"@type": "client_action",
"item_seq": 0, // passenger seq
"action": "in" // pick up
}
],
"location" : {
"name" : "Järnvägsgatan 3, 582 22 Linköping, Sweden", // pick up address
"coords" : [ 15626493, 58415701 ] // pick up coordinates, coordinates from google maps are multiplied by 1e6 (15.626493, 58.415701 => 15626493, 58415701) and parsed as [Long, Lat]
},
"times" : {
"arrive" : {
"target" : 1487890582, // pick up time: timestamp in unix seconds
"latest" : 0 // leave this at 0
}
},
"info" : {
"all" : "Needs help with luggage" // a message to the driver or ""
},
"seq" : 0 // "sequence" number
},
{
"actions" : [
{
"@type": "client_action",
"item_seq": 0, // passenger seq
"action": "out" // drop off
}
],
"location" : {
"name" : "Teknikringen 1A, Linköping, Sweden", // drop off address
"coords" : [ 15566656, 58393584 ] // drop off coordinates
},
"times" : null, // can be null for drop off node
"info" : {
},
"seq" : 1 // "sequence" number
}
],
"legs": [
{
"meta": {
"dist": 5496, // estimated leg distance
"est_dur": 603 // estimated leg duration
},
"pts":
[
15621480,
58410380,
15619850,
58410130,
15620170,
58409480,
15618970,
58409330,
15618900,
58409300,
15618800,
58409240,
15618610,
58408880,
15618220,
58408300,
15618090,
58408170,
15617930,
58408070 // more ...
],
"from_seq": 0,
"to_seq": 1
}
],
"meta" : {
"dist": 6264, // TOTAL route distance in meters
"est_dur": 683 // estimated TOTAL duration in seconds
}
}
}
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"order_token": "eyJhbGciOiJIUzI1NiJ9.eyJjaWQiOjEzMTgsIm9pZCI6IjU4YWY2OTU1MDAyNzExYzRmZjQwMDAwMCIsImppZCI6Mzc0NDMzNzAsImFjaWQiOjAsIm9wcyI6Mywic3ViIjoiYm9va2VyIiwiZXhwIjoxNTE5NDI2NzgxfQ.mHeh9_4_Zhf4JGFCAr9GA4ONkjWL4qkC7bmzzwOAERA",
"order": {
"route": {
"nodes": [
{
"times": {
"arrive": {
"target": 0,
"latest": 0
},
"depart": null
},
"location": {
"name": "Järnvägsgatan 3, 582 22 Linköping, Sweden",
"coords": [
15626493,
58415701
]
},
"actions": [],
"seq": 0,
"info": {
"all": "Needs help with luggage"
}
},
{
"times": {
"arrive": {
"target": 0,
"latest": 0
},
"depart": null
},
"location": {
"name": "Teknikringen 1A, Linköping, Sweden",
"coords": [
15566656,
58393584
]
},
"actions": [],
"seq": 1,
"info": {}
}
],
"meta": {
"dist": 6264,
"est_dur": 683
},
"legs": []
},
"company_id": 1318,
"created": 0,
"provider_id": 0,
"order_id": "58af6955002711c4ff400000",
"items": [
{
"pay_info": [],
"passenger": {
"phone": "123456",
"name": "John Smith",
"email": ""
},
"@type": "passengers",
"require": {
"bags": 1,
"wc": 0,
"seats": 2
},
"seq": 0,
"client_id": 0,
"account": null
}
]
}
}
Secured by jwt
Gets order tracking info with vehicle position
get /api/v1/booker/order/{order_id}/track
Gets order tracking info with vehicle position
URI Parameters
- order_id: required(string)
Headers
- Authorization: required(string)
Authentication is handled by provided JsonWebToken
Example:
Bearer xxx.yyy.zzz
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"track": {
"order_ts": 1487891054799,
"order_id": "58af6a6d002711c4ff410000",
"vehicle": {
"pos": [
15640803,
58411939
],
"id": "0000052600000003"
}
}
}
Secured by jwt
Gets status of an order
get /api/v1/booker/order/{order_id}/status
Gets status of an order
URI Parameters
- order_id: required(string)
Headers
- Authorization: required(string)
Authentication is handled by provided JsonWebToken
Example:
Bearer xxx.yyy.zzz
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"order_status": {
"node_etas": [],
"resource": {
"driver": {
"company_id": 1318,
"last_name": "",
"phone_number": "123123123",
"id": 9072,
"avatar": "6979ceae3a5565db3d2df7471194a273731d4a8c",
"first_name": "Peter"
},
"vehicle": {
"number": 3,
"company_id": 1318,
"callsign": "Car 3",
"provider_id": 5313,
"id": "0000052600000003",
"type": 201,
"capacity": {
"bags": 2,
"wc": 0,
"seats": 30
}
}
},
"job": {
"id": 37443371,
"state": "completed"
},
"order_id": "58af6a6d002711c4ff410000",
"node_reports": [
{
"times": {
"arrive": 1487891059,
"depart": 1487891061
},
"state": "completed",
"seq": 0
},
{
"times": {
"arrive": 1487891076,
"depart": 1487891076
},
"state": "completed",
"seq": 1
}
],
"timestamp": 1487891101825
}
}
Secured by jwt
Cancels an order
post /api/v1/booker/order/{order_id}/cancel
Cancels an order
URI Parameters
- order_id: required(string)
Headers
- Authorization: required(string)
Authentication is handled by provided JsonWebToken
Example:
Bearer xxx.yyy.zzz
Body
Media type: application/json
Type: any
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"order_status": {
"node_etas": [],
"resource": {
"driver": {
"company_id": 1318,
"last_name": "",
"phone_number": "123123123",
"id": 9072,
"avatar": "6979ceae3a5565db3d2df7471194a273731d4a8c",
"first_name": "Peter"
},
"vehicle": {
"number": 3,
"company_id": 1318,
"callsign": "Car 3",
"provider_id": 5313,
"id": "0000052600000003",
"type": 201,
"capacity": {
"bags": 2,
"wc": 0,
"seats": 30
}
}
},
"job": {
"id": 37443371,
"state": "completed"
},
"order_id": "58af6a6d002711c4ff410000",
"node_reports": [
{
"times": {
"arrive": 1487891059,
"depart": 1487891061
},
"state": "completed",
"seq": 0
},
{
"times": {
"arrive": 1487891076,
"depart": 1487891076
},
"state": "completed",
"seq": 1
}
],
"timestamp": 1487891101825
}
}
Secured by jwt
Assigns an order to a vehicle or changes dispatch options.
post /api/v1/booker/order/{order_id}/assign
Assigns an order to a vehicle or changes dispatch options.
URI Parameters
- order_id: required(string)
Headers
- Authorization: required(string)
Authentication is handled by provided JsonWebToken
Example:
Bearer xxx.yyy.zzz
Body
Media type: application/json
Type: object
Properties- vehicle_id: required(integer)
The vehicle ID to assign to. Use 0 to unassign.
- auto_assign: required(boolean - default: true)
Whether the system should auto-assign a vehicle. Only relevant when vehicle_id is 0.
Example:
{
"vehicle_id": 123,
"auto_assign": true
}
Secured by jwt
Check availabilty of resources to carry out order
post /api/v1/booker/availability/order
Check availabilty of resources to carry out order
Headers
- Authorization: required(string)
Authentication is handled by provided JsonWebToken
Example:
Bearer xxx.yyy.zzz
Body
Media type: application/json
Type: any
Example:
{
"order" : {
"company_id" : 123,
"provider_id" : 12345,
"items":
[
{
"@type" : "passengers",
"seq" : 0,
"passenger" : {
"name" : "John Smith",
"phone" : "+46721234567", // full phone number including country code
"email" : "john@example.com"
},
"client_id" : 42,
"account" : { // can be null
"id" : 79020, // customer account id
"extra" : null
},
"require" : {
"seats" : 1, // amount of seats
"wc" : 0, // number of wheelchairs
"bags" : 1 // amount of bag spaces
},
"pay_info": // payment data, e.g cash, card reader
[
{
"@t": 0, // CASH
"data": null
}
],
"custom_fields":{
"tag.driver.1": "true", // Driver tags to be used in the booking
"tag.vehicle.1": "true" // Vehicle tag to be used in the booking
}
}
],
"route": {
"nodes":
[
{
"actions": // contains action such as pick up, drop off
[
{
"@type": "client_action",
"item_seq": 0, // passenger seq
"action": "in" // pick up
}
],
"location" : {
"name" : "Järnvägsgatan 3, 582 22 Linköping, Sweden", // pick up address
"coords" : [ 15626493, 58415701 ] // pick up coordinates, coordinates from google maps are multiplied by 1e6 (15.626493, 58.415701 => 15626493, 58415701) and parsed as [Long, Lat]
},
"times" : {
"arrive" : {
"target" : 1487890582, // pick up time: timestamp in unix seconds
"latest" : 0 // leave this at 0
}
},
"info" : {
"all" : "Needs help with luggage" // a message to the driver or ""
},
"seq" : 0 // "sequence" number
},
{
"actions" : [
{
"@type": "client_action",
"item_seq": 0, // passenger seq
"action": "out" // drop off
}
],
"location" : {
"name" : "Teknikringen 1A, Linköping, Sweden", // drop off address
"coords" : [ 15566656, 58393584 ] // drop off coordinates
},
"times" : null, // can be null for drop off node
"info" : {
},
"seq" : 1 // "sequence" number
}
],
"legs": [
{
"meta": {
"dist": 5496, // estimated leg distance
"est_dur": 603 // estimated leg duration
},
"pts":
[
15621480,
58410380,
15619850,
58410130,
15620170,
58409480,
15618970,
58409330,
15618900,
58409300,
15618800,
58409240,
15618610,
58408880,
15618220,
58408300,
15618090,
58408170,
15617930,
58408070 // more ...
],
"from_seq": 0,
"to_seq": 1
}
],
"meta" : {
"dist": 6264, // TOTAL route distance in meters
"est_dur": 683 // estimated TOTAL duration in seconds
}
}
}
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"slots": [
{
"eta": 1506687377,
"company_id": 1318,
"provider_id": 5834,
"fare_quote": {
"amount": 8000000,
"type": "estimate",
"currency": "SEK"
}
},
{
"eta": 1506687377,
"company_id": 1318,
"provider_id": 5313,
"fare_quote": {
"amount": 8000000,
"type": "estimate",
"currency": "SEK"
}
}
]
}