Overview

Introduction

This is the Partner documentation for the ConnectMy.car API. This documentation covers all authorized methods for partners of Touring and Proximus. Contact partners@connectmy.car if you want to use the ConnectMy.car data for your applications.

Tip
The users (car driver) register and manage their applications via https://go.connectmy.car, the partner can find his API keys and stats on his usage on https://portal.connectmy.car and the API is located here https://api.connectmy.car/browser/index.html
Note
Note that info will be only available when users (car drivers) opted in invidually. Each use case, even the one of the fleet manager providing ConnectMy.car to its employees, needs an opt-in per user for use of the users' data, ex-company driving behavior program. Limit the required info to what is actually needed, as the more you ask, the more reluctant the user can be to opt-in for your application!
Touring Proximus

ASBL TOURING CLUB ROYAL DE BELGIQUE

KONINKLIJKE BELGISCHE TOURING CLUB VZW

Rue de la Loi 44, 1040 BRUXELLES, Belgium

VAT BE 0403.471.597

PROXIMUS NV/SA

Bd. du Roi Albert II 27, B-1030 Brussels, Belgium

VAT BE 0202.239.951

Credits

When making API calls, you need credits for your application. Credits are provisioned on the partner account and will be reduced based on usage. The usage is determined by the number of API result items and by the number of active users per month.

API cost per result item

The amount of credits charged for an API call depend on how many results you get back with that call. When you retrieve eg. 10 cars, the call will cost you 10 credits. An API call costs you nothing if you get no results back.

Tip
Think about how you can retrieve the data in the most efficient way, that way you will pay less.
Monthly cost per active user

When you request data from a user, the system will check whether you already requested data for that user that month. Once every month, requesting data for each unique user will cost you credits. The amount of credits depends on the credits per unique user per month setting of your application. An administrator can change this setting for each application individually.

Tip
When you don’t request data for a specific user, that user won’t cost you anything that month.

When an active user is charged at 100 credits per month, and you request /car/cars for the first time and you get eg. 5 cars, the platform will deduct 500 credits from your application’s total available credits. For each of these cars, we check whether the user was already retrieved that month. If it is the first time that month that you requested data, we deduct 100x credits per unique user per month.

No more credits

When you run out of credits, you’ll receive a 403 Forbidden response with a clear description that you have no credits anymore. In this case you will need to obtain an extra pack of ConnectMy.car credits.

At some point, as a partner, you’ll want to link ConnectMy.car accounts with your proprietary user management. This section contains more information on this topic.

Note
Please note that the ConnectMy.car API as it exists today, doesn’t support the OAuth protocol. In the future, we might implement a Connect with my ConnectMy.car account feature. This would allow you as a partner to use our user management system instead of building your own. Since most partners already have user management in place, this feature was not in scope for the pilot platform.
Synchronize on user logon

The preferred moment of linking happens when a user logs on to your application.

ConnectMy.car validates a user’s account by sending an SMS message. A partner probably does the same in their app. We can therefore be sure that the user is who he says he is in both platforms.

Warning
Never ask the user for his/her email to couple ConnectMy.car data. Never ask the user for his/her ConnectMy.car logon credentials, as the user can be suspicious that you will misuse his/her credentials.
Note
If you don’t have proper user validation in place, there’s no other way for now than asking a user’s credentials to link accounts. By decoding the JWT token from the authentication response, you can retrieve the user’s unique identifier (or email address) and query the /account/users/{uuid} endpoint. Please note that it is forbidden to query to query the ConnectMy.car API with the user’s JWT token. The token will invalidate after some time anyways. On top of that, you cannot access all Partner endpoints with a user token, you’ll receive 403 Unauthorized errors for these endpoints.

Most of the time, a user authenticates him/herself with email or username. At that moment, you can synchronize the data between ConnectMy.car and your app. Accounts in the ConnectMy.car platform are uniquely defined by email address. You can lookup an account by querying the /account/accounts/search/findByEmail endpoint.

You can then query the /car/cars/search/findByUserUuid endpoint for several reasons:

  • If you’re interested in the user’s cars

  • Verify if the user still has an opt-in to your application, useful to prevent 403 Unauthorized errors when retrieving the car data.

Note
Please note that the user first needs to opt-in to your application in the https://go.connectmy.car app. Otherwise you won’t have access to his/her information and you cannot show ConnectMy.car data.

This method is the most cost-effective, as you’ll only need to perform a few requests to the ConnectMy.car platform.

Periodically checking accounts

As a partner, you can retrieve all accounts to which you have access with the /account/users endpoint.

Tip
Please be aware that requesting all users can be expensive in terms of credits. Each car you’ll query will cost one credit. See the Credits section for more information.
Periodically checking cars

As a partner, you can retrieve all cars to which you have access with the /car/cars endpoint. A car is coupled to one single account, which you can see in the accountUuid attribute of the response. That accountUuid allows you to directly retrieve the account information with the /account/user/{uuid} endpoint.

Tip
Please be aware that requesting all cars can be expensive in terms of credits. Each car you’ll query will cost one credit. See the Credits section for more information.

HTTP verbs

RESTful ConnectMy.car tries to adhere as closely as possible to standard HTTP and REST conventions in its use of HTTP verbs.

Verb Usage

GET

Used to retrieve a resource

POST

Used to create a new resource

PUT

Used to replace an existing resource

PATCH

Used to partially update an existing resource

DELETE

Used to delete an existing resource

HTTP status codes

RESTful ConnectMy.car tries to adhere as closely as possible to standard HTTP and REST conventions in its use of HTTP status codes.

Status code Usage

200 OK

The request completed successfully

201 Created

A new resource has been created successfully. The resource’s URI is available from the response’s Location header

204 No Content

An update to an existing resource has been applied successfully

400 Bad Request

The request was malformed. The response body will include an error providing further information

404 Not Found

The requested resource did not exist

Hypermedia

RESTful ConnectMy.car uses hypermedia and resources include links to other resources in their responses. Responses are in Hypertext Application Language (HAL) format. Links can be found benath the _links key. Users of the API should not created URIs themselves, instead they should use the above-described links to navigate from resource to resource.

You can use the HAL browser to click through the API.

Resources

Index resource

A GET request will retrieve links to the available resources

Example request
GET / HTTP/1.1
Content-Type: application/json
Host: localhost:8080
Example response
HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 4018

{
  "_links" : {
    "cs:findActiveCarByImei" : {
      "href" : "http://localhost:8080/cars/search/findActiveCarByImei?imei={imei}",
      "templated" : true
    },
    "cs:registerWithDongle" : {
      "href" : "http://localhost:8080/cars/registerWithDongle"
    },
    "cs:linkWithDongle" : {
      "href" : "http://localhost:8080/cars/linkWithDongle"
    },
    "cs:uploadCarFile" : {
      "href" : "http://localhost:8080/cars/{customerUuid}/uploadCarFile?file={file}",
      "templated" : true
    },
    "cs:unlinkUser" : {
      "href" : "http://localhost:8080/cars/{caruuid}/userLink",
      "templated" : true
    },
    "cs:unlinkDongle" : {
      "href" : "http://localhost:8080/cars/{caruuid}/dongleLink?dongleuuid={dongleuuid}",
      "templated" : true
    },
    "cs:uploadDongleFile" : {
      "href" : "http://localhost:8080/dongles/uploadDongleFile?file={file}",
      "templated" : true
    },
    "cs:uploadImeiFile" : {
      "href" : "http://localhost:8080/dongles/{customerUuid}/uploadImeiFile?file={file}",
      "templated" : true
    },
    "cs:dongles" : {
      "href" : "http://localhost:8080/dongles/?filter={filter}",
      "templated" : true
    },
    "cs:dongle" : {
      "href" : "http://localhost:8080/dongles/{uuid}",
      "templated" : true
    },
    "cs:findDongleByIccid" : {
      "href" : "http://localhost:8080/dongles/search/findByIccid?iccid={iccid}",
      "templated" : true
    },
    "cs:findByCustomerUuid" : [ {
      "href" : "http://localhost:8080/cars/search/findByCustomerUuid{?customeruuid,page,size,sort,projection}",
      "templated" : true
    }, {
      "href" : "http://localhost:8080/dongles/search/findByCustomerUuid{?customeruuid,page,size,sort,projection}",
      "templated" : true
    } ],
    "cs:findByCustomerUuidAndIsActiveIsTrue" : {
      "href" : "http://localhost:8080/cars/search/findByCustomerUuidAndIsActiveIsTrue{?customeruuid,page,size,sort,projection}",
      "templated" : true
    },
    "cs:findByUuidIn" : {
      "href" : "http://localhost:8080/cars/search/findByUuidIn{?uuids,projection}",
      "templated" : true
    },
    "cs:countByCustomerUuidAndIsActiveIsTrue" : {
      "href" : "http://localhost:8080/cars/search/countByCustomerUuidAndIsActiveIsTrue{?customerUuid}",
      "templated" : true
    },
    "cs:findByVin" : {
      "href" : "http://localhost:8080/cars/search/findByVin{?vin,projection}",
      "templated" : true
    },
    "cs:findDistinctUsersByUuidIn" : {
      "href" : "http://localhost:8080/cars/search/findDistinctUsersByUuidIn"
    },
    "cs:cars" : {
      "href" : "http://localhost:8080/cars{?page,size,sort,projection}",
      "templated" : true
    },
    "cs:car" : {
      "href" : "http://localhost:8080/cars/{uuid}",
      "templated" : true
    },
    "cs:findDongleEventsByImei" : {
      "href" : "http://localhost:8080/dongleEvents/search/findDongleEventByImei?imei={imei}",
      "templated" : true
    },
    "cs:findDongleEventsToBeSentByImei" : {
      "href" : "http://localhost:8080/dongleEvents/search/findDongleEventsToBeSentByImei?imei={imei}",
      "templated" : true
    },
    "cs:findDongleEventByImeiAndParameter" : {
      "href" : "http://localhost:8080/dongleEvents/search/findDongleEventByImeiAndParameter?imei={imei}&parameter={parameter}",
      "templated" : true
    },
    "cs:events" : {
      "href" : "http://localhost:8080/dongleEvents/"
    },
    "cs:updateDongleEventRetrycount" : {
      "href" : "http://localhost:8080/dongleEvents/{uuid}",
      "templated" : true
    },
    "cs:countByCustomerUuidAndDonglestatus" : {
      "href" : "http://localhost:8080/dongles/search/countByCustomerUuidAndDonglestatus{?customerUuid,dongleStatus}",
      "templated" : true
    },
    "cs:products" : {
      "href" : "http://localhost:8080/products/?filter={filter}",
      "templated" : true
    },
    "curies" : [ {
      "href" : "http://localhost:8080/api-docs/api-guide.html#resources-{rel}",
      "name" : "cs",
      "templated" : true
    } ]
  }
}
Table 1. Links
Relation Description

cs:car

Get car by uuid

cs:cars

Get all cars

cs:uploadCarFile

Upload txt file with Car information

cs:findActiveCarByImei

Find active car for IMEI

cs:unlinkUser

Unlink a user from a car

cs:unlinkDongle

Unlink a dongle from a car

cs:findByCustomerUuid

Find cars by customer

cs:findByCustomerUuidAndIsActiveIsTrue

Find active cars by customer

cs:findByVin

Find car by vin number

cs:findByUuidIn

Find cars by uuids

cs:findDistinctUsersByUuidIn

Find distinct users by car uuids

cs:linkWithDongle

Link a car with a dongle

cs:findDongleEventsByImei

Find DongleEvents by IMEI

cs:findDongleEventsToBeSentByImei

dongleEvents resources

cs:findDongleEventByImeiAndParameter

dongleEvents resources

cs:events

dongleEvents resources

cs:updateDongleEventRetrycount

dongleEvents resources

cs:uploadDongleFile

Upload CSV file with Dongle information

cs:uploadImeiFile

Upload CSV file with IMEI information for coupling Dongles to a Customer

cs:dongles

Get all dongles

cs:dongle

Get dongle by uuid

cs:registerWithDongle

Register Car With Dongle

cs:findDongleByIccid

Find dongle by ICCID

cs:products

Get all products

cs:countByCustomerUuidAndIsActiveIsTrue

Get number of cars for customer

cs:countByCustomerUuidAndDonglestatus

Get number of dongles for customer

curies

special link to api docs

Errors

A GET request will retrieve links to the available resources Whenever an error response (status code >= 400) is returned, the body will contain a JSON object that describes the problem.

For example, a POST request that attempts to create a car for unauthenticated user will return return status code 403 and error resource in the body

Example request
POST /cars HTTP/1.1
Content-Type: application/hal+json
Host: localhost:8080
Content-Length: 325

{
  "imei" : 860000000000009,
  "licenseplate" : "1-ABC-001",
  "vin" : "2HGFB2F57CH540529",
  "make" : "VOLVO",
  "model" : "XC90",
  "type" : "SUV",
  "color" : "ORANGE",
  "year" : 2016,
  "userUuid" : "a9e93994-b118-4177-b5fb-cff522f130c1",
  "customerUuid" : "b5c52ea1-8c44-469a-9875-567ea8c24bc1",
  "isActive" : true
}
Example response
HTTP/1.1 403 Forbidden
Content-Type: application/hal+json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Content-Length: 410

{
  "_embedded" : {
    "cs:errorResources" : [ {
      "status" : "FORBIDDEN",
      "message" : "Access is denied",
      "code" : "403",
      "exceptionType" : "org.springframework.security.access.AccessDeniedException"
    } ]
  },
  "_links" : {
    "curies" : [ {
      "href" : "http://localhost:8080/api-docs/api-guide.html#resources-{rel}",
      "name" : "cs",
      "templated" : true
    } ]
  }
}
Table 2. Response fields
Path Type Description

_links

Object

Links to other resources

_embedded.cs:errorResources

Array

An array of errors.

_embedded.cs:errorResources.[].status

String

http status of exception

_embedded.cs:errorResources.[].message

String

exception message

_embedded.cs:errorResources.[].code

String

exception code

_embedded.cs:errorResources.[].exceptionType

String

exception type

Authentication

To authenticate yourself and request data, you need to:

  • Retrieve a JWT token by calling the authentication endpoint

  • If you’re a Partner, provide the API key of their application by passing it in the X-ConnectMyCar-API-Key header of your request

Tip
You can find your application’s API key by logging on to the Portal and going to the application’s detail page.

User authentication resource

POST request with user name and password will return authentication token

Example request
POST /auth HTTP/1.1
Content-Type: application/json
Accept: application/json
Host: localhost:8080
Content-Length: 60

{
  "email" : "user@connectmy.car",
  "password" : "sesto"
}
Table 3. Request payload
Path Type Description

email

String

user email

password

String

password

Example Response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 324

{
  "token" : "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJzZXN0byIsInJvbGUiOlsiQURNSU4iXSwiY3JlYXRlZCI6MTUwNzY0NTk0NjEyNywiZXhwIjoxNTA3NjQ2ODQ2LCJ1dWlkIjoiNmNkMjU3MTYtNDA0ZC00MzhkLWI2MWYtZWE0OTJlYmQxOGZlIiwiZW1haWwiOiJ1c2VyQGNvbm5lY3RteS5jYXIifQ.l40AZVTt3y3tcLKOVJScIj6UfvobdQXh1tLCiAyzAfO4DAXFwRUTIKcYr64oVE6phbFwKx8p9HAi0GP5SeZ6xA"
}
Table 4. Response fields
Path Type Description

token

String

authentication token

Refresh authenticated token

GET request will refresh the authentication token

Example request
GET /refreshToken HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJzZXN0byIsImNyZWF0ZWQiOjE0Nzk3MjAzNDYwMDAsImV4cCI6MTUwNzY1NTk0NiwidXVpZCI6IjZjZDI1NzE2LTQwNGQtNDM4ZC1iNjFmLWVhNDkyZWJkMThmZSIsImVtYWlsIjoidXNlckBjb25uZWN0bXkuY2FyIn0.SNVEnKphKEAgEOAknI__oojmS3sebacdt_22jbp54Aoj50PVUzmjPbDi6xs8fUJfdZqeZnIdTPcsVQo9SHrUDA
Accept: application/json
Host: localhost:8080
Table 5. Request headers
Name Description

Authorization

authentication token

Example response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 301

{
  "token" : "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJzZXN0byIsImNyZWF0ZWQiOjE1MDc2NDU5NDYzMjMsImV4cCI6MTUwNzY0Njg0NiwidXVpZCI6IjZjZDI1NzE2LTQwNGQtNDM4ZC1iNjFmLWVhNDkyZWJkMThmZSIsImVtYWlsIjoidXNlckBjb25uZWN0bXkuY2FyIn0.vbm36lp5-d033oBpa7JLTauyAp1UJZKOInRx-Xiop2V2xWR3yYtYmD6h5-rUnZpv4jyMLgo4wn9NivaxeoUi6Q"
}
Table 6. Response fields
Path Type Description

token

String

authentication token

Car Services

Retrieving all cars

A GET request is used to retrieve a list of all the cars.

You’ll only receive those cars to which you have access to:

  • Partners will only receive the cars which are subscribed for the application identified by the X-ConnectMyCar-API-Key header

  • Customers will only receive the cars which are part of their fleet

  • Users will only receive the cars which are their property

  • Administrators will receive all cars

Note
Please note that it is possible that you will not see all information about a car. Depending on the access rights of an application, the result can be different. You can lookup the access rights of your application in the https://portal.connectmy.car application.
Example request
GET /cars?page=0&size=10&sort=licenseplate%2Casc&filter=make%3ABMW HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJyb2xlIjpbIkFETUlOIl0sImNyZWF0ZWQiOjE1MTcyMTY1MTY1NjQsImV4cCI6MTUxNzIxNzA4NywidXVpZCI6ImFhYWFkNWYwLWRlYjktNDZmMC1iMmRjLWQyZjY3ZDZhZmQyNiJ9.GNwxUM-K0XKxEWowq0JgXXSPIoKZS_9Uycb67DdRsQCJxNrpguteX2ANzOQOuu3IKHCt8KTjhSPwjcRWucUfGw
Accept: application/json
Host: localhost:8080
Table 7. Request headers
Name Description

Authorization

security JWT

Table 8. Request parameters
Parameter Description

page

page number to be accessed (optional)

size

page size (optional)

filter

filtering parameters (optional). Format: ?filter=key1:value1,key2:value2

sort

sort results by given field (optional)

Example response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Content-Length: 4673

{
  "_embedded" : {
    "cs:cars" : [ {
      "uuid" : "f108e101-76db-4367-953e-66bf612177de",
      "creationDate" : "2016-10-28T00:00:00",
      "modificationDate" : "2016-10-28T00:00:00",
      "_embedded" : {
        "cs:dongle" : {
          "uuid" : "9f7885e1-5e57-4d77-9b31-84e1439fe51e",
          "imei" : 860000000000004,
          "customerUuid" : "a033a678-6e88-469b-b7a7-7de5c158f0fe",
          "wifiCode" : "73449996",
          "serialNumber" : "500000000004",
          "iccid" : "1000000000000000004",
          "simcardNumber" : "900000000000004",
          "wifiDisabled" : true,
          "createdBy" : "3ef46b6b-c66b-4285-936a-19a63c47db63",
          "donglestatus" : "OPERATIONAL",
          "_links" : {
            "cs:dongle" : {
              "href" : "http://localhost:8080/dongles/9f7885e1-5e57-4d77-9b31-84e1439fe51e{?projection}",
              "templated" : true
            }
          }
        }
      },
      "_links" : {
        "cs:findActiveDongleByCarUuid" : {
          "href" : "http://localhost:8080/cars/dongles/search/findActiveDongleByCarUuid?carUuid=f108e101-76db-4367-953e-66bf612177de"
        },
        "self" : {
          "href" : "http://localhost:8080/cars/f108e101-76db-4367-953e-66bf612177de{?projection}",
          "templated" : true
        },
        "cs:car" : {
          "href" : "http://localhost:8080/cars/f108e101-76db-4367-953e-66bf612177de{?projection}",
          "templated" : true
        }
      },
      "licenseplate" : "1CMC004",
      "vin" : "2G4GK5EX2F9129217",
      "make" : "BMW",
      "model" : "320d",
      "type" : "Berline",
      "year" : 2013,
      "isActive" : true,
      "customerUuid" : "a033a678-6e88-469b-b7a7-7de5c158f0fe",
      "userUuid" : "1c69a8e4-48cf-437c-a8f0-5b25fc0b4960",
      "location" : {
        "longitude" : 0.0,
        "latitude" : 0.0,
        "locationTimestamp" : null
      },
      "diagnostics" : {
        "batteryVoltage" : null,
        "fuelLevel" : null,
        "engineCoolantTemp" : null,
        "diagnosticsTimestamp" : null
      },
      "dataRetrieved" : false
    }, {
      "uuid" : "ef86e3de-e7e7-4e71-8e00-76658f5500e2",
      "creationDate" : "2016-10-28T00:00:00",
      "modificationDate" : "2016-10-28T00:00:00",
      "_embedded" : {
        "cs:dongle" : {
          "uuid" : "fa0b6910-82ed-4fc3-98ac-7534140a9ce8",
          "imei" : 860000000000005,
          "customerUuid" : "a033a678-6e88-469b-b7a7-7de5c158f0fe",
          "wifiCode" : "00897996",
          "serialNumber" : "500000000005",
          "iccid" : "1000000000000000005",
          "simcardNumber" : "900000000000005",
          "wifiDisabled" : false,
          "createdBy" : "a0e3a9b6-0921-4495-859f-2f932ee2239a",
          "donglestatus" : "OPERATIONAL",
          "_links" : {
            "cs:dongle" : {
              "href" : "http://localhost:8080/dongles/fa0b6910-82ed-4fc3-98ac-7534140a9ce8{?projection}",
              "templated" : true
            }
          }
        }
      },
      "_links" : {
        "cs:findActiveDongleByCarUuid" : {
          "href" : "http://localhost:8080/cars/dongles/search/findActiveDongleByCarUuid?carUuid=ef86e3de-e7e7-4e71-8e00-76658f5500e2"
        },
        "self" : {
          "href" : "http://localhost:8080/cars/ef86e3de-e7e7-4e71-8e00-76658f5500e2{?projection}",
          "templated" : true
        },
        "cs:car" : {
          "href" : "http://localhost:8080/cars/ef86e3de-e7e7-4e71-8e00-76658f5500e2{?projection}",
          "templated" : true
        }
      },
      "licenseplate" : "1CMC005",
      "vin" : "5NPDH4AEXDH398743",
      "make" : "BMW",
      "model" : "120d",
      "type" : "Hatchback",
      "year" : 2017,
      "isActive" : true,
      "customerUuid" : "a033a678-6e88-469b-b7a7-7de5c158f0fe",
      "userUuid" : "db132607-49f3-42c1-a4a2-2b042c0d8a9a",
      "location" : {
        "longitude" : 0.0,
        "latitude" : 0.0,
        "locationTimestamp" : null
      },
      "diagnostics" : {
        "batteryVoltage" : null,
        "fuelLevel" : null,
        "engineCoolantTemp" : null,
        "diagnosticsTimestamp" : null
      },
      "dataRetrieved" : false
    } ]
  },
  "_links" : {
    "self" : {
      "href" : "http://localhost:8080/cars"
    },
    "profile" : {
      "href" : "http://localhost:8080/profile/cars"
    },
    "search" : {
      "href" : "http://localhost:8080/cars/search"
    },
    "curies" : [ {
      "href" : "http://localhost:8080/api-docs/api-guide.html#resources-{rel}",
      "name" : "cs",
      "templated" : true
    } ]
  },
  "page" : {
    "size" : 10,
    "totalElements" : 2,
    "totalPages" : 1,
    "number" : 0
  }
}
Table 9. Response fields
Path Type Description

_links

Object

Links to other resources

page

Object

Paging information

_embedded.cs:cars

Array

An array of cars.

_embedded.cs:cars.[].uuid

String

Unique identifier

_embedded.cs:cars.[].vin

String

Vehicle Identification Number (VIN)

_embedded.cs:cars.[].make

String

Car make

_embedded.cs:cars.[].model

String

Car model

_embedded.cs:cars.[].type

String

Type of car

_embedded.cs:cars.[].color

String

Car color

_embedded.cs:cars.[].coverType

class be.connectedcar.car.credits.CounterType

The Type Of Touring Coverage

_embedded.cs:cars.[].towingName

String

The name Of Touring Towing

_embedded.cs:cars.[].towingStreet

String

The street Of Touring Towing

_embedded.cs:cars.[].towingHouseNumber

Number

The house number Of Touring Towing

_embedded.cs:cars.[].towingPostCode

String

The city Of Touring Towing

_embedded.cs:cars.[].towingCity

String

The post code Of Touring Towing

_embedded.cs:cars.[].licenseplate

String

License plate

_embedded.cs:cars.[].year

Number

Build year

_embedded.cs:cars.[].userUuid

class java.util.UUID

The user to who the car belongs to

_embedded.cs:cars.[].customerUuid

class java.util.UUID

The customer to who the car blongs to

_embedded.cs:cars.[].location

class be.connectedcar.car.model.Location

Last known location of the car

_embedded.cs:cars.[].diagnostics

class be.connectedcar.car.model.Diagnostics

Latest diagnostics

_embedded.cs:cars.[].creationDate

class java.time.LocalDateTime

Creation timestamp

_embedded.cs:cars.[].modificationDate

class java.time.LocalDateTime

Modification timestamp

_embedded.cs:cars.[].errorResources

class be.connectedcar.car.exception.ErrorResource

When an error occurs, explains the error

_embedded.cs:cars.[].dataRetrieved

class be.connectedcar.car.exception.ErrorResource

Is Data retrieved from external service

_embedded.cs:cars.[].isActive

class be.connectedcar.car.exception.ErrorResource

Is the car active

_embedded.cs:cars.[].obdUrl

class be.connectedcar.car.exception.ErrorResource

Is Data retrieved from external service

_embedded.cs:cars.[]._links

Object

Links to other resources

_embedded.cs:cars.[]._embedded.cs:dongle

Object

Active dongle for this car

Table 10. Links
Relation Description

self

Self link to the resource

search

search link

curies

Link to restdocs

profile

link to metadata

Get car by uuid

Example request
GET /cars/32445087-3a30-42d8-be27-0c636fc27487 HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJyb2xlIjpbIkFETUlOIl0sImNyZWF0ZWQiOjE1MTcyMTY1MTM1NzEsImV4cCI6MTUxNzIxNzA4NywidXVpZCI6ImE5ZTkzOTk0LWIxMTgtNDE3Ny1iNWZiLWNmZjUyMmYxMzBjMSJ9.Hs1Xaq7JdUA-97eWH-KExCghfQzC5BWr1XVzfZeNNIAiNeBdJ8UgJGI_to5QrMPsJGf9Bzs0M5LzbGDSNvHhuQ
Accept: application/json
Host: localhost:8080
Table 11. Request headers
Name Description

Authorization

Authorization token

Table 12. /cars/{uuid}
Parameter Description

uuid

Unique identifier

Example response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Content-Length: 1962

{
  "uuid" : "32445087-3a30-42d8-be27-0c636fc27487",
  "creationDate" : "2016-10-28T00:00:00",
  "modificationDate" : "2016-10-28T00:00:00",
  "_embedded" : {
    "cs:dongle" : {
      "uuid" : "4b75e42d-0392-4e29-b213-439d208f959d",
      "imei" : 860000000000001,
      "wifiCode" : "59257996",
      "serialNumber" : "500000000001",
      "iccid" : "1000000000000000001",
      "simcardNumber" : "900000000000001",
      "wifiDisabled" : true,
      "createdBy" : "3ef46b6b-c66b-4285-936a-19a63c47db63",
      "donglestatus" : "OPERATIONAL",
      "_links" : {
        "cs:dongle" : {
          "href" : "http://localhost:8080/dongles/4b75e42d-0392-4e29-b213-439d208f959d{?projection}",
          "templated" : true
        }
      }
    }
  },
  "_links" : {
    "cs:findActiveDongleByCarUuid" : {
      "href" : "http://localhost:8080/cars/32445087-3a30-42d8-be27-0c636fc27487/dongles/search/findActiveDongleByCarUuid?carUuid=32445087-3a30-42d8-be27-0c636fc27487"
    },
    "self" : {
      "href" : "http://localhost:8080/cars/32445087-3a30-42d8-be27-0c636fc27487{?projection}",
      "templated" : true
    },
    "cs:car" : {
      "href" : "http://localhost:8080/cars/32445087-3a30-42d8-be27-0c636fc27487{?projection}",
      "templated" : true
    },
    "curies" : [ {
      "href" : "http://localhost:8080/api-docs/api-guide.html#resources-{rel}",
      "name" : "cs",
      "templated" : true
    } ]
  },
  "licenseplate" : "1CMC001",
  "vin" : "1HGCR2F82FA059826",
  "make" : "Mercedes",
  "model" : "E",
  "type" : "Break",
  "year" : 2017,
  "isActive" : true,
  "customerUuid" : "b5c52ea1-8c44-469a-9875-567ea8c24bc1",
  "userUuid" : "a9e93994-b118-4177-b5fb-cff522f130c1",
  "location" : {
    "longitude" : 0.0,
    "latitude" : 0.0,
    "locationTimestamp" : null
  },
  "diagnostics" : {
    "batteryVoltage" : null,
    "fuelLevel" : null,
    "engineCoolantTemp" : null,
    "diagnosticsTimestamp" : null
  },
  "dataRetrieved" : false
}
Table 13. Response fields
Path Type Description

uuid

String

Unique identifier

vin

String

Vehicle Identification Number (VIN)

make

String

Car make

model

String

Car model

type

String

Type of car

color

String

Car color

coverType

class be.connectedcar.car.credits.CounterType

The Type Of Touring Coverage

towingName

String

The name Of Touring Towing

towingStreet

String

The street Of Touring Towing

towingHouseNumber

Number

The house number Of Touring Towing

towingPostCode

String

The city Of Touring Towing

towingCity

String

The post code Of Touring Towing

licenseplate

String

License plate

year

Number

Build year

userUuid

class java.util.UUID

The user to who the car belongs to

customerUuid

class java.util.UUID

The customer to who the car blongs to

location

class be.connectedcar.car.model.Location

Last known location of the car

diagnostics

class be.connectedcar.car.model.Diagnostics

Latest diagnostics

creationDate

class java.time.LocalDateTime

Creation timestamp

modificationDate

class java.time.LocalDateTime

Modification timestamp

errorResources

class be.connectedcar.car.exception.ErrorResource

When an error occurs, explains the error

dataRetrieved

class be.connectedcar.car.exception.ErrorResource

Is Data retrieved from external service

isActive

class be.connectedcar.car.exception.ErrorResource

Is the car active

obdUrl

class be.connectedcar.car.exception.ErrorResource

Is Data retrieved from external service

_links

Object

Links to other resources

_embedded.cs:dongle

Object

Active dongle for this car

Table 14. Links
Relation Description

self

Self link to the resource

curies

Link to restdocs

cs:findActiveDongleByCarUuid

Find the active dongle for this car

cs:car

Car resource

cs:dongle

link to dongle resource

cs:account

Account resource

Retrieving a car by VIN number

Example request
GET /cars/search/findByVin?vin=2G4GK5EX2F9129217 HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJyb2xlIjpbIkFETUlOIl0sImNyZWF0ZWQiOjE1MTcyMTY1MTgxNzksImV4cCI6MTUxNzIxNzA4NywidXVpZCI6ImE5ZTkzOTk0LWIxMTgtNDE3Ny1iNWZiLWNmZjUyMmYxMzBjMSJ9.E6TEFqCV69OGdi5D3tf-yph3LI5SjH4S-m8l2kcz5wRwEqPeoZJDjNdfe39DzAGgpDF1--xxtImGRqLAcEM0Gg
Accept: application/json
Host: localhost:8080
Table 15. Request headers
Name Description

Authorization

Authorization token

Table 16. Request parameters
Parameter Description

vin

Vehicle Identification Number (VIN)

Example response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Content-Length: 2005

{
  "uuid" : "f108e101-76db-4367-953e-66bf612177de",
  "creationDate" : "2016-10-28T00:00:00",
  "modificationDate" : "2016-10-28T00:00:00",
  "_embedded" : {
    "cs:dongle" : {
      "uuid" : "9f7885e1-5e57-4d77-9b31-84e1439fe51e",
      "imei" : 860000000000004,
      "customerUuid" : "a033a678-6e88-469b-b7a7-7de5c158f0fe",
      "wifiCode" : "73449996",
      "serialNumber" : "500000000004",
      "iccid" : "1000000000000000004",
      "simcardNumber" : "900000000000004",
      "wifiDisabled" : true,
      "createdBy" : "3ef46b6b-c66b-4285-936a-19a63c47db63",
      "donglestatus" : "OPERATIONAL",
      "_links" : {
        "cs:dongle" : {
          "href" : "http://localhost:8080/dongles/9f7885e1-5e57-4d77-9b31-84e1439fe51e{?projection}",
          "templated" : true
        }
      }
    }
  },
  "_links" : {
    "cs:findActiveDongleByCarUuid" : {
      "href" : "http://localhost:8080/cars/search/findByVin/dongles/search/findActiveDongleByCarUuid?carUuid=f108e101-76db-4367-953e-66bf612177de"
    },
    "self" : {
      "href" : "http://localhost:8080/cars/f108e101-76db-4367-953e-66bf612177de{?projection}",
      "templated" : true
    },
    "cs:car" : {
      "href" : "http://localhost:8080/cars/f108e101-76db-4367-953e-66bf612177de{?projection}",
      "templated" : true
    },
    "curies" : [ {
      "href" : "http://localhost:8080/api-docs/api-guide.html#resources-{rel}",
      "name" : "cs",
      "templated" : true
    } ]
  },
  "licenseplate" : "1CMC004",
  "vin" : "2G4GK5EX2F9129217",
  "make" : "BMW",
  "model" : "320d",
  "type" : "Berline",
  "year" : 2013,
  "isActive" : true,
  "customerUuid" : "a033a678-6e88-469b-b7a7-7de5c158f0fe",
  "userUuid" : "1c69a8e4-48cf-437c-a8f0-5b25fc0b4960",
  "location" : {
    "longitude" : 0.0,
    "latitude" : 0.0,
    "locationTimestamp" : null
  },
  "diagnostics" : {
    "batteryVoltage" : null,
    "fuelLevel" : null,
    "engineCoolantTemp" : null,
    "diagnosticsTimestamp" : null
  },
  "dataRetrieved" : false
}
Table 17. Response fields
Path Type Description

uuid

String

Unique identifier

vin

String

Vehicle Identification Number (VIN)

make

String

Car make

model

String

Car model

type

String

Type of car

color

String

Car color

coverType

class be.connectedcar.car.credits.CounterType

The Type Of Touring Coverage

towingName

String

The name Of Touring Towing

towingStreet

String

The street Of Touring Towing

towingHouseNumber

Number

The house number Of Touring Towing

towingPostCode

String

The city Of Touring Towing

towingCity

String

The post code Of Touring Towing

licenseplate

String

License plate

year

Number

Build year

userUuid

class java.util.UUID

The user to who the car belongs to

customerUuid

class java.util.UUID

The customer to who the car blongs to

location

class be.connectedcar.car.model.Location

Last known location of the car

diagnostics

class be.connectedcar.car.model.Diagnostics

Latest diagnostics

creationDate

class java.time.LocalDateTime

Creation timestamp

modificationDate

class java.time.LocalDateTime

Modification timestamp

errorResources

class be.connectedcar.car.exception.ErrorResource

When an error occurs, explains the error

dataRetrieved

class be.connectedcar.car.exception.ErrorResource

Is Data retrieved from external service

isActive

class be.connectedcar.car.exception.ErrorResource

Is the car active

obdUrl

class be.connectedcar.car.exception.ErrorResource

Is Data retrieved from external service

_links

Object

Links to other resources

_embedded.cs:dongle

Object

Active dongle for this car

Table 18. Links
Relation Description

self

Self link to the resource

curies

Link to restdocs

cs:findActiveDongleByCarUuid

Find the active dongle for this car

cs:car

Car resource

cs:dongle

link to dongle resource

cs:account

Account resource

Retrieving all cars by user uuid

Example request
GET /cars/search/findByUserUuid?useruuid=a9e93994-b118-4177-b5fb-cff522f130c1 HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJyb2xlIjpbIlVTRVIiXSwiY3JlYXRlZCI6MTUxNzIxNjUxOTk4NywiZXhwIjoxNTE3MjE3MDg3LCJ1dWlkIjoiYTllOTM5OTQtYjExOC00MTc3LWI1ZmItY2ZmNTIyZjEzMGMxIn0.coqEKWyt8Xhtjb7uohsoclOvcnZu1FuS96oM2v24K3H63VFV6MQ2_oR7NYhjGkfti_boUWx7UEugubgPIE4xGw
Accept: application/json
Host: localhost:8080
Table 19. Request headers
Name Description

Authorization

security JWT

Table 20. Request parameters
Parameter Description

useruuid

useruuid

Example response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Content-Length: 4485

{
  "_embedded" : {
    "cs:cars" : [ {
      "uuid" : "32445087-3a30-42d8-be27-0c636fc27487",
      "creationDate" : "2016-10-28T00:00:00",
      "modificationDate" : "2016-10-28T00:00:00",
      "_embedded" : {
        "cs:dongle" : {
          "uuid" : "4b75e42d-0392-4e29-b213-439d208f959d",
          "imei" : 860000000000001,
          "wifiCode" : "59257996",
          "serialNumber" : "500000000001",
          "iccid" : "1000000000000000001",
          "simcardNumber" : "900000000000001",
          "wifiDisabled" : true,
          "createdBy" : "3ef46b6b-c66b-4285-936a-19a63c47db63",
          "donglestatus" : "OPERATIONAL",
          "_links" : {
            "cs:dongle" : {
              "href" : "http://localhost:8080/dongles/4b75e42d-0392-4e29-b213-439d208f959d{?projection}",
              "templated" : true
            }
          }
        }
      },
      "_links" : {
        "cs:findActiveDongleByCarUuid" : {
          "href" : "http://localhost:8080/cars/search/findByUserUuid/dongles/search/findActiveDongleByCarUuid?carUuid=32445087-3a30-42d8-be27-0c636fc27487"
        },
        "self" : {
          "href" : "http://localhost:8080/cars/32445087-3a30-42d8-be27-0c636fc27487{?projection}",
          "templated" : true
        },
        "cs:car" : {
          "href" : "http://localhost:8080/cars/32445087-3a30-42d8-be27-0c636fc27487{?projection}",
          "templated" : true
        }
      },
      "licenseplate" : "1CMC001",
      "vin" : "1HGCR2F82FA059826",
      "make" : "Mercedes",
      "model" : "E",
      "type" : "Break",
      "year" : 2017,
      "isActive" : true,
      "customerUuid" : "b5c52ea1-8c44-469a-9875-567ea8c24bc1",
      "userUuid" : "a9e93994-b118-4177-b5fb-cff522f130c1",
      "location" : {
        "longitude" : 0.0,
        "latitude" : 0.0,
        "locationTimestamp" : null
      },
      "diagnostics" : {
        "batteryVoltage" : null,
        "fuelLevel" : null,
        "engineCoolantTemp" : null,
        "diagnosticsTimestamp" : null
      },
      "dataRetrieved" : false
    }, {
      "uuid" : "470bd4ff-1279-4508-9312-69688edf5784",
      "creationDate" : "2016-10-28T00:00:00",
      "modificationDate" : "2016-10-28T00:00:00",
      "_embedded" : {
        "cs:dongle" : {
          "uuid" : "6e05bc41-3b7d-4be6-8e1e-e2c32f7f4c4c",
          "imei" : 861473030024707,
          "customerUuid" : "b5c52ea1-8c44-469a-9875-567ea8c24bc1",
          "wifiCode" : "59257896",
          "serialNumber" : "190801803599",
          "iccid" : "89490421181109019539",
          "simcardNumber" : "239208780175450",
          "wifiDisabled" : true,
          "createdBy" : "b5c52ea1-8c44-469a-9875-567ea8c24bc1",
          "donglestatus" : "OPERATIONAL",
          "_links" : {
            "cs:dongle" : {
              "href" : "http://localhost:8080/dongles/6e05bc41-3b7d-4be6-8e1e-e2c32f7f4c4c{?projection}",
              "templated" : true
            }
          }
        }
      },
      "_links" : {
        "cs:findActiveDongleByCarUuid" : {
          "href" : "http://localhost:8080/cars/search/findByUserUuid/dongles/search/findActiveDongleByCarUuid?carUuid=470bd4ff-1279-4508-9312-69688edf5784"
        },
        "self" : {
          "href" : "http://localhost:8080/cars/470bd4ff-1279-4508-9312-69688edf5784{?projection}",
          "templated" : true
        },
        "cs:car" : {
          "href" : "http://localhost:8080/cars/470bd4ff-1279-4508-9312-69688edf5784{?projection}",
          "templated" : true
        }
      },
      "licenseplate" : "1-KUH-424",
      "vin" : "1FTPW14V27FA69934",
      "make" : "Mercedes",
      "model" : "E",
      "type" : "Break",
      "year" : 2014,
      "isActive" : true,
      "customerUuid" : "b5c52ea1-8c44-469a-9875-567ea8c24bc1",
      "userUuid" : "a9e93994-b118-4177-b5fb-cff522f130c1",
      "location" : {
        "longitude" : 0.0,
        "latitude" : 0.0,
        "locationTimestamp" : null
      },
      "diagnostics" : {
        "batteryVoltage" : null,
        "fuelLevel" : null,
        "engineCoolantTemp" : null,
        "diagnosticsTimestamp" : null
      },
      "dataRetrieved" : false
    } ]
  },
  "_links" : {
    "profile" : {
      "href" : "http://localhost:8080/profile/cars"
    },
    "search" : {
      "href" : "http://localhost:8080/cars/search"
    },
    "curies" : [ {
      "href" : "http://localhost:8080/api-docs/api-guide.html#resources-{rel}",
      "name" : "cs",
      "templated" : true
    } ]
  }
}
Table 21. links
Relation Description

curies

Link to restdocs

profile

link to metadata

search

link to search

User Services

Retrieving all users

A GET request is used to retrieve a list of all the users.

You’ll only receive those users to which you have access to:

  • Partners will only receive the users which have at least one car subscribed for the application identified by the X-ConnectMyCar-API-Key header

  • Administrators will receive all users

Other types of accounts cannot access this method.

Note
Please note that it is possible that you will not see all information about a user. Depending on the access rights of an application, the result can be different. You can lookup the access rights of your application in the https://portal.connectmy.car application.
Example request
GET /users HTTP/1.1
Accept: application/json
Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJyb2xlIjpbIkFETUlOIl0sImNyZWF0ZWQiOjE1MDc2NDM4NDMwOTAsImV4cCI6MTUwODI1MTg1MiwidXVpZCI6IjdkNTlkNGQ5LWU3NjItNGQxNy1iZDE2LTRkOThmMzFlODRhOCJ9.V-9lbr94rci2-sNMfTxWnhHbjoODxgrelAQVhQgrG1bchrCA2nJodNzXauNmKmQT52A2DpNzYwSfdXiOPYNxmA
Host: localhost:8080
Table 22. Request paramters
Parameter Description

page

page number to be accessed (optional)

size

page size (optional)

projection

projection (optional)

sort

sort results by given field (optional)

Example Response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 4685

{
  "_embedded" : {
    "as:users" : [ {
      "uuid" : "38da984e-7d6b-4655-91ba-770cc67aad6b",
      "username" : "daandesmet",
      "email" : "daan.desmet@connectmy.car",
      "address" : {
        "street" : "Autolaan",
        "number" : "6",
        "box" : null,
        "zipcode" : "1000",
        "city" : "Brussel"
      },
      "role" : "USER",
      "active" : true,
      "creationDate" : "2016-11-15T00:00:00",
      "modificationDate" : "2016-11-15T00:00:00",
      "isBlocked" : false,
      "mobile" : "0032472000006",
      "language" : "EN",
      "firstName" : "Daan",
      "lastName" : "De Smet",
      "_links" : {
        "self" : {
          "href" : "http://localhost:8080/accounts/38da984e-7d6b-4655-91ba-770cc67aad6b"
        },
        "as:account" : {
          "href" : "http://localhost:8080/accounts/38da984e-7d6b-4655-91ba-770cc67aad6b"
        }
      }
    }, {
      "uuid" : "387224c2-f885-4e4b-82ae-6402efb394af",
      "username" : "stijnvisser",
      "email" : "stijn.visser@connectmy.car",
      "address" : {
        "street" : "Autolaan",
        "number" : "7",
        "box" : null,
        "zipcode" : "1000",
        "city" : "Brussel"
      },
      "role" : "USER",
      "active" : true,
      "creationDate" : "2016-11-15T00:00:00",
      "modificationDate" : "2016-11-15T00:00:00",
      "isBlocked" : false,
      "mobile" : "0032472000007",
      "language" : "EN",
      "firstName" : "Stijn",
      "lastName" : "Visser",
      "_links" : {
        "self" : {
          "href" : "http://localhost:8080/accounts/387224c2-f885-4e4b-82ae-6402efb394af"
        },
        "as:account" : {
          "href" : "http://localhost:8080/accounts/387224c2-f885-4e4b-82ae-6402efb394af"
        }
      }
    }, {
      "uuid" : "1c69a8e4-48cf-437c-a8f0-5b25fc0b4960",
      "username" : "marieclaes",
      "email" : "marie.claes@connectmy.car",
      "address" : {
        "street" : "Autolaan",
        "number" : "8",
        "box" : null,
        "zipcode" : "1000",
        "city" : "Brussel"
      },
      "role" : "USER",
      "active" : true,
      "creationDate" : "2016-11-15T00:00:00",
      "modificationDate" : "2016-11-15T00:00:00",
      "isBlocked" : false,
      "mobile" : "0032472000008",
      "language" : "EN",
      "firstName" : "Marie",
      "lastName" : "Claes",
      "_links" : {
        "self" : {
          "href" : "http://localhost:8080/accounts/1c69a8e4-48cf-437c-a8f0-5b25fc0b4960"
        },
        "as:account" : {
          "href" : "http://localhost:8080/accounts/1c69a8e4-48cf-437c-a8f0-5b25fc0b4960"
        }
      }
    }, {
      "uuid" : "47a3d950-0a7d-44e9-a4c8-ae704cc85233",
      "username" : "lucasbakker",
      "email" : "lucas.bakker@connectmy.car",
      "address" : {
        "street" : "Autolaan",
        "number" : "9",
        "box" : null,
        "zipcode" : "1000",
        "city" : "Brussel"
      },
      "role" : "USER",
      "active" : true,
      "creationDate" : "2016-11-15T00:00:00",
      "modificationDate" : "2016-11-15T00:00:00",
      "isBlocked" : false,
      "mobile" : "0032472000009",
      "language" : "EN",
      "firstName" : "Lucas",
      "lastName" : "Bakker",
      "_links" : {
        "self" : {
          "href" : "http://localhost:8080/accounts/47a3d950-0a7d-44e9-a4c8-ae704cc85233"
        },
        "as:account" : {
          "href" : "http://localhost:8080/accounts/47a3d950-0a7d-44e9-a4c8-ae704cc85233"
        }
      }
    }, {
      "uuid" : "c901503f-74c4-426b-b0fa-021435c38dfb",
      "username" : "rubenjacobs",
      "email" : "ruben.jacobs@connectmy.car",
      "address" : {
        "street" : "Autolaan",
        "number" : "10",
        "box" : null,
        "zipcode" : "1000",
        "city" : "Brussel"
      },
      "role" : "USER",
      "active" : true,
      "creationDate" : "2016-11-15T00:00:00",
      "modificationDate" : "2016-11-15T00:00:00",
      "isBlocked" : false,
      "mobile" : "0032472000010",
      "language" : "EN",
      "firstName" : "Ruben",
      "lastName" : "Jacobs",
      "_links" : {
        "self" : {
          "href" : "http://localhost:8080/accounts/c901503f-74c4-426b-b0fa-021435c38dfb"
        },
        "as:account" : {
          "href" : "http://localhost:8080/accounts/c901503f-74c4-426b-b0fa-021435c38dfb"
        }
      }
    } ]
  },
  "_links" : {
    "self" : {
      "href" : "http://localhost:8080/users"
    },
    "curies" : [ {
      "href" : "http://localhost:8080/api-docs/api-guide.html#resources-{rel}",
      "name" : "as",
      "templated" : true
    } ]
  },
  "page" : {
    "size" : 20,
    "totalElements" : 5,
    "totalPages" : 1,
    "number" : 0
  }
}
Table 23. Response fields
Path Type Description

_links

Object

Links to other resources

page

Object

Paging information

_embedded.as:users

Array

An array of users.

Retrieving a user

A GET request is used to get a user.

Example request
GET /users/387224c2-f885-4e4b-82ae-6402efb394af HTTP/1.1
Accept: application/json
Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJyb2xlIjpbIkFETUlOIl0sImNyZWF0ZWQiOjE1MDc2NDM4NDEzMDcsImV4cCI6MTUwODI1MTg1MCwidXVpZCI6IjdjMDdjZDk3LWRjYTMtNDU5ZC1iNDliLTE5OGNiYTgyMWE0YyJ9.ysMUWzZGYpn7BpOvlsZNDiSFli9AKreRayulE4wsuwxQGg267cGTdFDU5weslzybJurRlhwHL5bx8ONc9WsdvA
Host: localhost:8080
Example Response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 901

{
  "uuid" : "387224c2-f885-4e4b-82ae-6402efb394af",
  "username" : "stijnvisser",
  "email" : "stijn.visser@connectmy.car",
  "address" : {
    "street" : "Autolaan",
    "number" : "7",
    "box" : null,
    "zipcode" : "1000",
    "city" : "Brussel"
  },
  "role" : "USER",
  "active" : true,
  "creationDate" : "2016-11-15T00:00:00",
  "modificationDate" : "2016-11-15T00:00:00",
  "isBlocked" : false,
  "mobile" : "0032472000007",
  "language" : "EN",
  "firstName" : "Stijn",
  "lastName" : "Visser",
  "_links" : {
    "self" : {
      "href" : "http://localhost:8080/accounts/387224c2-f885-4e4b-82ae-6402efb394af"
    },
    "as:account" : {
      "href" : "http://localhost:8080/accounts/387224c2-f885-4e4b-82ae-6402efb394af"
    },
    "curies" : [ {
      "href" : "http://localhost:8080/api-docs/api-guide.html#resources-{rel}",
      "name" : "as",
      "templated" : true
    } ]
  }
}
Table 24. Response fields
Path Type Description

uuid

String

Functional unique identifier

username

String

A unique username

email

String

Email address

address

class be.connectedcar.account.model.Address

Address

mobile

String

Mobile number

role

class be.connectedcar.account.model.Role

A default User role will be assigned with creation

active

Boolean

Whether or not the account is activated

isBlocked

Boolean

A boolean to see whether an account is blocked or not

creationDate

class java.time.LocalDateTime

A timestamp of creation is generated with creation

modificationDate

class java.time.LocalDateTime

Modification timestamp

_links

Object

Links to other resources

createdBy

String

uuid of distributor created the customer

name

String

Company name

touring

Boolean

is touring activated

proximus

Boolean

is proximus activated

vatNumber

String

VAT number

companyName

String

Company name

firstName

String

Firstname

lastName

String

Lastname

language

class be.connectedcar.account.model.Language

Language

maxCars

Number

The amount of cars covered in the contract

Table 25. Links
Relation Description

self

Self link to the resource

as:account

User resource

curies

Link to restdocs

Retrieving an account by email

A GET request is used to get an account by email. This search method searches accounts with any role.

Example request
GET /accounts/search/findByEmail?email=daan.desmet%40connectmy.car HTTP/1.1
Accept: application/json
Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJyb2xlIjpbIkFETUlOIl0sImNyZWF0ZWQiOjE1MDc2NDM4NTU0NjAsImV4cCI6MTUwODI1MTg2NCwidXVpZCI6ImFiZTgxODJmLWEyMmUtNDQzMS05MjVhLWM1MGQ0ZDM4YWM2NiJ9.GEUNMTSldYbMyM00euHsgbFC8qAIyykVI3oswb2MRFwhZ0AwJeyUjc9sLDTkrQnIpnLN8MZCz6FBTNLNg1pfeQ
Host: localhost:8080
Table 26. Request paramters
Parameter Description

email

user email

Example Response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 899

{
  "uuid" : "38da984e-7d6b-4655-91ba-770cc67aad6b",
  "username" : "daandesmet",
  "email" : "daan.desmet@connectmy.car",
  "address" : {
    "street" : "Autolaan",
    "number" : "6",
    "box" : null,
    "zipcode" : "1000",
    "city" : "Brussel"
  },
  "role" : "USER",
  "active" : true,
  "creationDate" : "2016-11-15T00:00:00",
  "modificationDate" : "2016-11-15T00:00:00",
  "isBlocked" : false,
  "mobile" : "0032472000006",
  "language" : "EN",
  "firstName" : "Daan",
  "lastName" : "De Smet",
  "_links" : {
    "self" : {
      "href" : "http://localhost:8080/accounts/38da984e-7d6b-4655-91ba-770cc67aad6b"
    },
    "as:account" : {
      "href" : "http://localhost:8080/accounts/38da984e-7d6b-4655-91ba-770cc67aad6b"
    },
    "curies" : [ {
      "href" : "http://localhost:8080/api-docs/api-guide.html#resources-{rel}",
      "name" : "as",
      "templated" : true
    } ]
  }
}
Table 27. Links
Relation Description

self

Self link to the resource

as:account

User resource

curies

Link to restdocs

Data Services

Find Telematics Data

Telematics data is collected and saved once the ConnectMy.car device is connected with a car. The data collected can be retrieved as from the opt-in time of the partner application.

Data sets in this service are not aggregated and provided as collected, as such partners can decide how they aggregate the data. The average collection of events triggered by the ConnectMy.car device is around 10 seconds. Position data is available each 15 seconds. When there is connectivity on the ConnectMy.car device, the position data can be obtained almost live, in case of bad connectivity, the collected data is buffered and send when there is again connectivity.

The device is active for a few minutes after ignition is off and will send data and next go into a sleep mode. For some functions the device can wake up autonomously, ex in case of vibrations.

Example request
GET /telematicsDatas/search/findData?deviceId=861473030020199&page=0&size=20 HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJyb2xlIjpbIkFETUlOIl0sImNyZWF0ZWQiOjE1MDc2NDUwODkwMTQsImV4cCI6MTUwNzY0NTEzOSwidXVpZCI6IjNmMzA1NTM0LThhYTAtNGU4ZS1iMzZmLTE2NmU2M2Y5ODY4NSJ9.H4PoEnuOzhyFM5-hA4BlydqjC6PrzRN3O_TZVEf4RvHOjtQzwOt6drUE6a2QHwq4DLweonJt10b197g_VdYA-g
Accept: application/hal+json
Host: localhost:8080
Table 28. Request headers
Name Description

Authorization

security JWT

Table 29. Request parameters
Parameter Description

deviceId

The Imei number to get data for (optional)

type

The type of data to get filter on (optional)

after

Packets after time in epoch

before

Packets before time in epoch

page

page number to be accessed (optional)

size

page size (optional)

Possible types

Possible packet types are the following:

be.connectedcar.interpreter.data.devicestateinformation.AcceleratorCalibrationStatus
be.connectedcar.interpreter.data.devicestateinformation.CanNotLocateForLongTime
be.connectedcar.interpreter.data.devicestateinformation.DeviceBug
be.connectedcar.interpreter.data.devicestateinformation.Iccid
be.connectedcar.interpreter.data.devicestateinformation.Imsi
be.connectedcar.interpreter.data.devicestateinformation.PowerOnAfterReboot
be.connectedcar.interpreter.data.devicestateinformation.SleepMode
be.connectedcar.interpreter.data.devicestateinformation.UpgradeState
be.connectedcar.interpreter.data.devicestateinformation.WakeUp

be.connectedcar.interpreter.data.drivingbehavior.DrivingTired
be.connectedcar.interpreter.data.drivingbehavior.ExceedIdle
be.connectedcar.interpreter.data.drivingbehavior.SharpTurn
be.connectedcar.interpreter.data.drivingbehavior.SuddenAcceleration
be.connectedcar.interpreter.data.drivingbehavior.SuddenDeceleration

be.connectedcar.interpreter.data.gpsdata.GpsData

be.connectedcar.interpreter.data.tripdata.IgnitionOff
be.connectedcar.interpreter.data.tripdata.IgnitionOn
be.connectedcar.interpreter.data.tripdata.TripSummaryData

be.connectedcar.interpreter.data.vehicledata.VehicleDataFlow
be.connectedcar.interpreter.data.vehicledata.VinCode

be.connectedcar.interpreter.data.vehiclesecuredata.DeviceDisconnect
be.connectedcar.interpreter.data.vehiclesecuredata.DtcData
be.connectedcar.interpreter.data.vehiclesecuredata.LowBatteryVoltage
be.connectedcar.interpreter.data.vehiclesecuredata.SuspectedCollision
be.connectedcar.interpreter.data.vehiclesecuredata.VibrationAfterIgnitionOff
Example response
HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Content-Length: 11802

{
  "_embedded" : {
    "ds:vinCodes" : [ {
      "effectiveData" : null,
      "deviceId" : "861473030020199",
      "frameType" : "MSG_TYPE_PUBLISH",
      "frameTime" : 0,
      "obdType" : "PT_OBD_CAN",
      "numberOfVinCode" : 17,
      "vinValue" : "WDD1760121V068655"
    } ],
    "ds:sharpTurns" : [ {
      "effectiveData" : null,
      "deviceId" : "861473030020199",
      "frameType" : "MSG_TYPE_PUBLISH",
      "frameTime" : 1480317949,
      "reportingTime" : 1480317949,
      "gpsPosition" : {
        "positionTime" : 1480317949,
        "positionSource" : "GPS",
        "dataValidity" : "REAL_TIME",
        "eastWestLongitude" : "EAST_LONGITUDE",
        "southNorthLatitude" : "NORTH_LATITUDE",
        "numberOfSatellites" : 9,
        "height" : 10,
        "position" : {
          "x" : 4.46104,
          "y" : 51.05536,
          "type" : "Point",
          "coordinates" : [ 4.46104, 51.05536 ]
        },
        "gpsSpeed" : 7.9,
        "heading" : 51,
        "pdop" : 1.5,
        "hdop" : 0.9,
        "vdop" : 1.2
      },
      "turn" : 0.0
    }, {
      "effectiveData" : null,
      "deviceId" : "861473030020199",
      "frameType" : "MSG_TYPE_PUBLISH",
      "frameTime" : 1480317959,
      "reportingTime" : 1480317959,
      "gpsPosition" : {
        "positionTime" : 1480317959,
        "positionSource" : "GPS",
        "dataValidity" : "REAL_TIME",
        "eastWestLongitude" : "EAST_LONGITUDE",
        "southNorthLatitude" : "NORTH_LATITUDE",
        "numberOfSatellites" : 9,
        "height" : 10,
        "position" : {
          "x" : 4.46104,
          "y" : 51.05536,
          "type" : "Point",
          "coordinates" : [ 4.46104, 51.05536 ]
        },
        "gpsSpeed" : 7.9,
        "heading" : 51,
        "pdop" : 1.5,
        "hdop" : 0.9,
        "vdop" : 1.2
      },
      "turn" : 0.0
    }, {
      "effectiveData" : null,
      "deviceId" : "861473030020199",
      "frameType" : "MSG_TYPE_PUBLISH",
      "frameTime" : 1480317969,
      "reportingTime" : 1480317969,
      "gpsPosition" : {
        "positionTime" : 1480317969,
        "positionSource" : "GPS",
        "dataValidity" : "REAL_TIME",
        "eastWestLongitude" : "EAST_LONGITUDE",
        "southNorthLatitude" : "NORTH_LATITUDE",
        "numberOfSatellites" : 9,
        "height" : 10,
        "position" : {
          "x" : 4.46104,
          "y" : 51.05536,
          "type" : "Point",
          "coordinates" : [ 4.46104, 51.05536 ]
        },
        "gpsSpeed" : 7.9,
        "heading" : 51,
        "pdop" : 1.5,
        "hdop" : 0.9,
        "vdop" : 1.2
      },
      "turn" : 0.0
    } ],
    "ds:suddenAccelerations" : [ {
      "effectiveData" : null,
      "deviceId" : "861473030020199",
      "frameType" : "MSG_TYPE_PUBLISH",
      "frameTime" : 1480317983,
      "reportingTime" : 1480317983,
      "gpsPosition" : {
        "positionTime" : 1480317983,
        "positionSource" : "GPS",
        "dataValidity" : "REAL_TIME",
        "eastWestLongitude" : "EAST_LONGITUDE",
        "southNorthLatitude" : "NORTH_LATITUDE",
        "numberOfSatellites" : 8,
        "height" : 16,
        "position" : {
          "x" : 4.46104,
          "y" : 51.05536,
          "type" : "Point",
          "coordinates" : [ 4.46104, 51.05536 ]
        },
        "gpsSpeed" : 6.4,
        "heading" : 185,
        "pdop" : 1.8,
        "hdop" : 1.0,
        "vdop" : 1.5
      },
      "speedBeforeAcceleration" : 0,
      "speedAfterAcceleration" : 25,
      "accelerationValue" : 2.5
    } ],
    "ds:tripSummaryDatas" : [ {
      "effectiveData" : null,
      "deviceId" : "861473030020199",
      "frameType" : "MSG_TYPE_PUBLISH",
      "frameTime" : 1485429926,
      "ignitionOnTime" : 1485429753,
      "ignitionOnLocation" : {
        "positionTime" : 1484104442,
        "positionSource" : "GPS",
        "dataValidity" : "LAST_TIME",
        "eastWestLongitude" : "EAST_LONGITUDE",
        "southNorthLatitude" : "NORTH_LATITUDE",
        "numberOfSatellites" : 9,
        "height" : 56,
        "position" : {
          "x" : 4.46104,
          "y" : 51.05536,
          "type" : "Point",
          "coordinates" : [ 4.46104, 51.05536 ]
        },
        "gpsSpeed" : 0.0,
        "heading" : 0,
        "pdop" : 1.8,
        "hdop" : 0.9,
        "vdop" : 1.5
      },
      "ignitionOffTime" : 1485429926,
      "ignitionOffLocation" : {
        "positionTime" : 1485429926,
        "positionSource" : "GPS",
        "dataValidity" : "REAL_TIME",
        "eastWestLongitude" : "EAST_LONGITUDE",
        "southNorthLatitude" : "NORTH_LATITUDE",
        "numberOfSatellites" : 5,
        "height" : 0,
        "position" : {
          "x" : 4.46104,
          "y" : 51.05536,
          "type" : "Point",
          "coordinates" : [ 4.46104, 51.05536 ]
        },
        "gpsSpeed" : 0.0,
        "heading" : 0,
        "pdop" : 5.3,
        "hdop" : 1.8,
        "vdop" : 5.0
      },
      "drivingDistanceSource" : "OBD",
      "drivingDistance" : 1206,
      "drivingFuelConsumption" : 286,
      "maxSpeed" : 69,
      "idleTime" : 42,
      "idleFuelConsumption" : 16,
      "numberOfRapidAcceleration" : 0,
      "numberOfRapidDeceleration" : 1,
      "numberOfRapidSharpTurn" : 4,
      "historicalTotalMileage" : 1206,
      "historicalTotalFuelConsumption" : 286,
      "historicalTotalDrivingTime" : 173
    }, {
      "effectiveData" : null,
      "deviceId" : "861473030020199",
      "frameType" : "MSG_TYPE_PUBLISH",
      "frameTime" : 1485429760,
      "ignitionOnTime" : 1485429753,
      "ignitionOnLocation" : {
        "positionTime" : 1485429753,
        "positionSource" : "GPS",
        "dataValidity" : "REAL_TIME",
        "eastWestLongitude" : "EAST_LONGITUDE",
        "southNorthLatitude" : "NORTH_LATITUDE",
        "numberOfSatellites" : 9,
        "height" : 56,
        "position" : {
          "x" : 114.47184,
          "y" : 22.75068,
          "type" : "Point",
          "coordinates" : [ 114.47184, 22.75068 ]
        },
        "gpsSpeed" : 0.0,
        "heading" : 12,
        "pdop" : 9.0,
        "hdop" : 9.0,
        "vdop" : 9.0
      },
      "ignitionOffTime" : 1485429760,
      "ignitionOffLocation" : {
        "positionTime" : 1485429753,
        "positionSource" : "GPS",
        "dataValidity" : "REAL_TIME",
        "eastWestLongitude" : "EAST_LONGITUDE",
        "southNorthLatitude" : "NORTH_LATITUDE",
        "numberOfSatellites" : 9,
        "height" : 56,
        "position" : {
          "x" : 114.47184,
          "y" : 22.75068,
          "type" : "Point",
          "coordinates" : [ 114.47184, 22.75068 ]
        },
        "gpsSpeed" : 0.0,
        "heading" : 12,
        "pdop" : 9.0,
        "hdop" : 9.0,
        "vdop" : 9.0
      },
      "drivingDistanceSource" : "OBD",
      "drivingDistance" : 0,
      "drivingFuelConsumption" : 0,
      "maxSpeed" : 0,
      "idleTime" : 0,
      "idleFuelConsumption" : 0,
      "numberOfRapidAcceleration" : 0,
      "numberOfRapidDeceleration" : 0,
      "numberOfRapidSharpTurn" : 0,
      "historicalTotalMileage" : 0,
      "historicalTotalFuelConsumption" : 0,
      "historicalTotalDrivingTime" : 0
    } ],
    "ds:vibrationAfterIgnitionOffs" : [ {
      "effectiveData" : null,
      "deviceId" : "861473030020199",
      "frameType" : "MSG_TYPE_PUBLISH",
      "frameTime" : 1483657887,
      "reportingTime" : 1483657887,
      "gpsPosition" : {
        "positionTime" : 1484104442,
        "positionSource" : "GPS",
        "dataValidity" : "LAST_TIME",
        "eastWestLongitude" : "EAST_LONGITUDE",
        "southNorthLatitude" : "NORTH_LATITUDE",
        "numberOfSatellites" : 9,
        "height" : 56,
        "position" : {
          "x" : 4.46104,
          "y" : 51.05536,
          "type" : "Point",
          "coordinates" : [ 4.46104, 51.05536 ]
        },
        "gpsSpeed" : 0.0,
        "heading" : 0,
        "pdop" : 1.8,
        "hdop" : 0.9,
        "vdop" : 1.5
      }
    } ],
    "ds:suddenDecelerations" : [ {
      "effectiveData" : null,
      "deviceId" : "861473030020199",
      "frameType" : "MSG_TYPE_PUBLISH",
      "frameTime" : 1480317980,
      "reportingTime" : 1480317980,
      "gpsPosition" : {
        "positionTime" : 1480317979,
        "positionSource" : "GPS",
        "dataValidity" : "REAL_TIME",
        "eastWestLongitude" : "EAST_LONGITUDE",
        "southNorthLatitude" : "NORTH_LATITUDE",
        "numberOfSatellites" : 7,
        "height" : 16,
        "position" : {
          "x" : 4.46104,
          "y" : 51.05536,
          "type" : "Point",
          "coordinates" : [ 4.46104, 51.05536 ]
        },
        "gpsSpeed" : 10.0,
        "heading" : 116,
        "pdop" : 2.0,
        "hdop" : 1.3,
        "vdop" : 1.5
      },
      "speedBeforeDeceleration" : 0,
      "speedAfterDeceleration" : 28,
      "decelerationValue" : 2.8
    } ],
    "ds:ignitionOns" : [ {
      "effectiveData" : null,
      "deviceId" : "861473030020199",
      "frameType" : "MSG_TYPE_PUBLISH",
      "frameTime" : 1490782755,
      "dtcInformation" : {
        "byteDtcData" : null,
        "numberOfOdbFaultCode" : 1,
        "dtcCodes" : [ {
          "faultCode" : "P0488",
          "faultCodeState" : "NOT_FAULT"
        } ],
        "numberOfPrivateOdbFaultCode" : 0,
        "privateDtcCodes" : null
      },
      "ignitionTime" : 1490782755,
      "ignitionOnType" : "RPM_GT_100"
    } ],
    "ds:ignitionOffs" : [ {
      "effectiveData" : null,
      "deviceId" : "861473030020199",
      "frameType" : "MSG_TYPE_PUBLISH",
      "frameTime" : 1485429926,
      "dtcInformation" : {
        "byteDtcData" : null,
        "numberOfOdbFaultCode" : 0,
        "dtcCodes" : null,
        "numberOfPrivateOdbFaultCode" : 0,
        "privateDtcCodes" : null
      },
      "ignitionTime" : 1485429926,
      "ignitionOffType" : "TIME_OF_IGNITION_IS_CONSTANT"
    } ],
    "ds:gpsDatas" : [ {
      "effectiveData" : null,
      "deviceId" : "861473030020199",
      "frameType" : "MSG_TYPE_PUBLISH",
      "frameTime" : 1485429753,
      "dataNumberInPackage" : 1,
      "gpsPosition" : {
        "positionTime" : 1485429753,
        "positionSource" : "GPS",
        "dataValidity" : "REAL_TIME",
        "eastWestLongitude" : "EAST_LONGITUDE",
        "southNorthLatitude" : "NORTH_LATITUDE",
        "numberOfSatellites" : 9,
        "height" : 56,
        "position" : {
          "x" : 114.47184,
          "y" : 22.75068,
          "type" : "Point",
          "coordinates" : [ 114.47184, 22.75068 ]
        },
        "gpsSpeed" : 0.0,
        "heading" : 12,
        "pdop" : 9.0,
        "hdop" : 9.0,
        "vdop" : 9.0
      }
    }, {
      "effectiveData" : null,
      "deviceId" : "861473030020199",
      "frameType" : "MSG_TYPE_PUBLISH",
      "frameTime" : 1485429753,
      "dataNumberInPackage" : 1,
      "gpsPosition" : {
        "positionTime" : 1485429753,
        "positionSource" : "GPS",
        "dataValidity" : "REAL_TIME",
        "eastWestLongitude" : "EAST_LONGITUDE",
        "southNorthLatitude" : "NORTH_LATITUDE",
        "numberOfSatellites" : 9,
        "height" : 56,
        "position" : {
          "x" : 114.47184,
          "y" : 22.75068,
          "type" : "Point",
          "coordinates" : [ 114.47184, 22.75068 ]
        },
        "gpsSpeed" : 0.0,
        "heading" : 12,
        "pdop" : 9.0,
        "hdop" : 9.0,
        "vdop" : 9.0
      }
    } ]
  },
  "_links" : {
    "self" : {
      "href" : "http://localhost:8080/telematicsDatas/search/findData"
    },
    "curies" : [ {
      "href" : "http://localhost:8080/api-docs/api-guide.html#resources-{rel}",
      "name" : "ds",
      "templated" : true
    } ]
  },
  "page" : {
    "size" : 20,
    "totalElements" : 13,
    "totalPages" : 1,
    "number" : 0
  }
}
Table 30. Response fields
Path Type Description

_links

Object

Links to other resources

page

Object

Paging information

_embedded.ds:sharpTurns

Array

An array of sharpTurns.

_embedded.ds:suddenDecelerations

Array

An array of suddenDecelerations.

_embedded.ds:suddenAccelerations

Array

An array of suddenAccelerations.

_embedded.ds:vinCodes

Array

An array of vinCodes.

_embedded.ds:gpsDatas

Array

An array of gpsData.

_embedded.ds:vibrationAfterIgnitionOffs

Array

An array of vibrationAfterIgnitionOff.

_embedded.ds:ignitionOffs

Array

An array of ignitionOff.

_embedded.ds:ignitionOns

Array

An array of ignitionOn.

_embedded.ds:tripSummaryDatas

Array

An array of suddenDecelerations.

_embedded.ds:sharpTurns.[].deviceId

String

The Imei Number of the device

_embedded.ds:sharpTurns.[].frameType

String

The Type of Frame

_embedded.ds:sharpTurns.[].reportingTime

Number

The time that corresponds to the data

_embedded.ds:sharpTurns.[].gpsPosition

Object

The position where device was disconnected

_embedded.ds:sharpTurns.[].gpsPosition.positionTime

Number

Time of the location

_embedded.ds:sharpTurns.[].gpsPosition.positionSource

String

Is the location based on GPS of GSM

_embedded.ds:sharpTurns.[].gpsPosition.dataValidity

String

dataValidity

_embedded.ds:sharpTurns.[].gpsPosition.eastWestLongitude

String

eastWestLongitude

_embedded.ds:sharpTurns.[].gpsPosition.southNorthLatitude

String

southNorthLatitude

_embedded.ds:sharpTurns.[].gpsPosition.numberOfSatellites

Number

The number of satellites

_embedded.ds:sharpTurns.[].gpsPosition.height

Number

Height

_embedded.ds:sharpTurns.[].gpsPosition.position

Object

GeoJson Position

_embedded.ds:sharpTurns.[].gpsPosition.gpsSpeed

Number

Speed according to GPS

_embedded.ds:sharpTurns.[].gpsPosition.heading

Number

Heading

_embedded.ds:sharpTurns.[].gpsPosition.pdop

Number

pdop

_embedded.ds:sharpTurns.[].gpsPosition.hdop

Number

hdop

_embedded.ds:sharpTurns.[].gpsPosition.vdop

Number

vdop

_embedded.ds:sharpTurns.[].turn

Number

turn

_embedded.ds:suddenDecelerations.[].deviceId

String

The Imei Number of the device

_embedded.ds:suddenDecelerations.[].frameType

String

The Type of Frame

_embedded.ds:suddenDecelerations.[].reportingTime

Number

The time that corresponds to the data

_embedded.ds:suddenDecelerations.[].gpsPosition

Object

The position where device was disconnected

_embedded.ds:suddenDecelerations.[].gpsPosition.positionTime

Number

Time of the location

_embedded.ds:suddenDecelerations.[].gpsPosition.positionSource

String

Is the location based on GPS of GSM

_embedded.ds:suddenDecelerations.[].gpsPosition.dataValidity

String

dataValidity

_embedded.ds:suddenDecelerations.[].gpsPosition.eastWestLongitude

String

eastWestLongitude

_embedded.ds:suddenDecelerations.[].gpsPosition.southNorthLatitude

String

southNorthLatitude

_embedded.ds:suddenDecelerations.[].gpsPosition.numberOfSatellites

Number

The number of satellites

_embedded.ds:suddenDecelerations.[].gpsPosition.height

Number

Height

_embedded.ds:suddenDecelerations.[].gpsPosition.position

Object

GeoJson Position

_embedded.ds:suddenDecelerations.[].gpsPosition.gpsSpeed

Number

Speed according to GPS

_embedded.ds:suddenDecelerations.[].gpsPosition.heading

Number

Heading

_embedded.ds:suddenDecelerations.[].gpsPosition.pdop

Number

pdop

_embedded.ds:suddenDecelerations.[].gpsPosition.hdop

Number

hdop

_embedded.ds:suddenDecelerations.[].gpsPosition.vdop

Number

vdop

_embedded.ds:suddenDecelerations.[].speedBeforeDeceleration

Number

speedBeforeDeceleration

_embedded.ds:suddenDecelerations.[].speedAfterDeceleration

Number

speedAfterDeceleration

_embedded.ds:suddenDecelerations.[].decelerationValue

Number

decelerationValue

_embedded.ds:suddenAccelerations.[].deviceId

String

The Imei Number of the device

_embedded.ds:suddenAccelerations.[].frameType

String

The Type of Frame

_embedded.ds:suddenAccelerations.[].reportingTime

Number

The time that corresponds to the data

_embedded.ds:suddenAccelerations.[].gpsPosition

Object

The position where device was disconnected

_embedded.ds:suddenAccelerations.[].gpsPosition.positionTime

Number

Time of the location

_embedded.ds:suddenAccelerations.[].gpsPosition.positionSource

String

Is the location based on GPS of GSM

_embedded.ds:suddenAccelerations.[].gpsPosition.dataValidity

String

dataValidity

_embedded.ds:suddenAccelerations.[].gpsPosition.eastWestLongitude

String

eastWestLongitude

_embedded.ds:suddenAccelerations.[].gpsPosition.southNorthLatitude

String

southNorthLatitude

_embedded.ds:suddenAccelerations.[].gpsPosition.numberOfSatellites

Number

The number of satellites

_embedded.ds:suddenAccelerations.[].gpsPosition.height

Number

Height

_embedded.ds:suddenAccelerations.[].gpsPosition.position

Object

GeoJson Position

_embedded.ds:suddenAccelerations.[].gpsPosition.gpsSpeed

Number

Speed according to GPS

_embedded.ds:suddenAccelerations.[].gpsPosition.heading

Number

Heading

_embedded.ds:suddenAccelerations.[].gpsPosition.pdop

Number

pdop

_embedded.ds:suddenAccelerations.[].gpsPosition.hdop

Number

hdop

_embedded.ds:suddenAccelerations.[].gpsPosition.vdop

Number

vdop

_embedded.ds:suddenAccelerations.[].speedBeforeAcceleration

Number

speedBeforeAcceleration

_embedded.ds:suddenAccelerations.[].speedAfterAcceleration

Number

speedAfterAcceleration

_embedded.ds:suddenAccelerations.[].decelerationValue

Number

decelerationValue

_embedded.ds:vinCodes.[].deviceId

String

The Imei Number of the device

_embedded.ds:vinCodes.[].frameType

String

The Type of Frame

_embedded.ds:vinCodes.[].reportingTime

Number

The time that corresponds to the data

_embedded.ds:vinCodes.[].obdType

String

obdType

_embedded.ds:vinCodes.[].numberOfVinCode

Number

numberOfVinCode

_embedded.ds:vinCodes.[].vinValue

String

vinValue

_embedded.ds:gpsDatas.[].deviceId

String

The Imei Number of the device

_embedded.ds:gpsDatas.[].frameType

String

The Type of Frame

_embedded.ds:gpsDatas.[].reportingTime

Number

The time that corresponds to the data

_embedded.ds:gpsDatas.[].dataNumberInPackage

Number

dataNumberInPackage

_embedded.ds:gpsDatas.[].gpsPosition

Object

The position where device was disconnected

_embedded.ds:gpsDatas.[].gpsPosition.positionTime

Number

Time of the location

_embedded.ds:gpsDatas.[].gpsPosition.positionSource

String

Is the location based on GPS of GSM

_embedded.ds:gpsDatas.[].gpsPosition.dataValidity

String

dataValidity

_embedded.ds:gpsDatas.[].gpsPosition.eastWestLongitude

String

eastWestLongitude

_embedded.ds:gpsDatas.[].gpsPosition.southNorthLatitude

String

southNorthLatitude

_embedded.ds:gpsDatas.[].gpsPosition.numberOfSatellites

Number

The number of satellites

_embedded.ds:gpsDatas.[].gpsPosition.height

Number

Height

_embedded.ds:gpsDatas.[].gpsPosition.position

Object

GeoJson Position

_embedded.ds:gpsDatas.[].gpsPosition.gpsSpeed

Number

Speed according to GPS

_embedded.ds:gpsDatas.[].gpsPosition.heading

Number

Heading

_embedded.ds:gpsDatas.[].gpsPosition.pdop

Number

pdop

_embedded.ds:gpsDatas.[].gpsPosition.hdop

Number

hdop

_embedded.ds:gpsDatas.[].gpsPosition.vdop

Number

vdop

_embedded.ds:vibrationAfterIgnitionOffs.[].deviceId

String

The Imei Number of the device

_embedded.ds:vibrationAfterIgnitionOffs.[].frameType

String

The Type of Frame

_embedded.ds:vibrationAfterIgnitionOffs.[].reportingTime

Number

The time that corresponds to the data

_embedded.ds:vibrationAfterIgnitionOffs.[].gpsPosition

Object

The position where device was disconnected

_embedded.ds:vibrationAfterIgnitionOffs.[].gpsPosition.positionTime

Number

Time of the location

_embedded.ds:vibrationAfterIgnitionOffs.[].gpsPosition.positionSource

String

Is the location based on GPS of GSM

_embedded.ds:vibrationAfterIgnitionOffs.[].gpsPosition.dataValidity

String

dataValidity

_embedded.ds:vibrationAfterIgnitionOffs.[].gpsPosition.eastWestLongitude

String

eastWestLongitude

_embedded.ds:vibrationAfterIgnitionOffs.[].gpsPosition.southNorthLatitude

String

southNorthLatitude

_embedded.ds:vibrationAfterIgnitionOffs.[].gpsPosition.numberOfSatellites

Number

The number of satellites

_embedded.ds:vibrationAfterIgnitionOffs.[].gpsPosition.height

Number

Height

_embedded.ds:vibrationAfterIgnitionOffs.[].gpsPosition.position

Object

GeoJson Position

_embedded.ds:vibrationAfterIgnitionOffs.[].gpsPosition.gpsSpeed

Number

Speed according to GPS

_embedded.ds:vibrationAfterIgnitionOffs.[].gpsPosition.heading

Number

Heading

_embedded.ds:vibrationAfterIgnitionOffs.[].gpsPosition.pdop

Number

pdop

_embedded.ds:vibrationAfterIgnitionOffs.[].gpsPosition.hdop

Number

hdop

_embedded.ds:vibrationAfterIgnitionOffs.[].gpsPosition.vdop

Number

vdop

_embedded.ds:tripSummaryDatas.[].deviceId

String

The Imei Number of the device

_embedded.ds:tripSummaryDatas.[].frameType

String

The Type of Frame

_embedded.ds:tripSummaryDatas.[].reportingTime

Number

The time that corresponds to the data

_embedded.ds:tripSummaryDatas.[].ignitionOnTime

Number

ignitionOffType

_embedded.ds:tripSummaryDatas.[].ignitionOnLocation

Object

ignitionOffType

_embedded.ds:tripSummaryDatas.[].ignitionOnLocation.positionTime

Number

Time of the location

_embedded.ds:tripSummaryDatas.[].ignitionOnLocation.positionSource

String

Is the location based on GPS of GSM

_embedded.ds:tripSummaryDatas.[].ignitionOnLocation.dataValidity

String

dataValidity

_embedded.ds:tripSummaryDatas.[].ignitionOnLocation.eastWestLongitude

String

eastWestLongitude

_embedded.ds:tripSummaryDatas.[].ignitionOnLocation.southNorthLatitude

String

southNorthLatitude

_embedded.ds:tripSummaryDatas.[].ignitionOnLocation.numberOfSatellites

Number

The number of satellites

_embedded.ds:tripSummaryDatas.[].ignitionOnLocation.height

Number

Height

_embedded.ds:tripSummaryDatas.[].ignitionOnLocation.position

Object

GeoJson Position

_embedded.ds:tripSummaryDatas.[].ignitionOnLocation.gpsSpeed

Number

Speed according to GPS

_embedded.ds:tripSummaryDatas.[].ignitionOnLocation.heading

Number

Heading

_embedded.ds:tripSummaryDatas.[].ignitionOnLocation.pdop

Number

pdop

_embedded.ds:tripSummaryDatas.[].ignitionOnLocation.hdop

Number

hdop

_embedded.ds:tripSummaryDatas.[].ignitionOnLocation.vdop

Number

vdop

_embedded.ds:tripSummaryDatas.[].ignitionOffTime

Number

ignitionOffType

_embedded.ds:tripSummaryDatas.[].ignitionOffLocation

Object

ignitionOffType

_embedded.ds:tripSummaryDatas.[].ignitionOffLocation.positionTime

Number

Time of the location

_embedded.ds:tripSummaryDatas.[].ignitionOffLocation.positionSource

String

Is the location based on GPS of GSM

_embedded.ds:tripSummaryDatas.[].ignitionOffLocation.dataValidity

String

dataValidity

_embedded.ds:tripSummaryDatas.[].ignitionOffLocation.eastWestLongitude

String

eastWestLongitude

_embedded.ds:tripSummaryDatas.[].ignitionOffLocation.southNorthLatitude

String

southNorthLatitude

_embedded.ds:tripSummaryDatas.[].ignitionOffLocation.numberOfSatellites

Number

The number of satellites

_embedded.ds:tripSummaryDatas.[].ignitionOffLocation.height

Number

Height

_embedded.ds:tripSummaryDatas.[].ignitionOffLocation.position

Object

GeoJson Position

_embedded.ds:tripSummaryDatas.[].ignitionOffLocation.gpsSpeed

Number

Speed according to GPS

_embedded.ds:tripSummaryDatas.[].ignitionOffLocation.heading

Number

Heading

_embedded.ds:tripSummaryDatas.[].ignitionOffLocation.pdop

Number

pdop

_embedded.ds:tripSummaryDatas.[].ignitionOffLocation.hdop

Number

hdop

_embedded.ds:tripSummaryDatas.[].ignitionOffLocation.vdop

Number

vdop

_embedded.ds:tripSummaryDatas.[].drivingDistanceSource

String

Driving Distance Source GPS or OBD

_embedded.ds:tripSummaryDatas.[].drivingDistance

Number

drivingDistance

_embedded.ds:tripSummaryDatas.[].drivingFuelConsumption

Number

drivingFuelConsumption

_embedded.ds:tripSummaryDatas.[].maxSpeed

Number

maxSpeed

_embedded.ds:tripSummaryDatas.[].idleTime

Number

idleTime

_embedded.ds:tripSummaryDatas.[].idleFuelConsumption

Number

idleFuelConsumption

_embedded.ds:tripSummaryDatas.[].numberOfRapidAcceleration

Number

numberOfRapidAcceleration

_embedded.ds:tripSummaryDatas.[].numberOfRapidDeceleration

Number

numberOfRapidDeceleration

_embedded.ds:tripSummaryDatas.[].numberOfRapidSharpTurn

Number

numberOfRapidSharpTurn

_embedded.ds:tripSummaryDatas.[].historicalTotalMileage

Number

historicalTotalMileage

_embedded.ds:tripSummaryDatas.[].historicalTotalFuelConsumption

Number

historicalTotalFuelConsumption

_embedded.ds:tripSummaryDatas.[].historicalTotalDrivingTime

Number

historicalTotalDrivingTime

_embedded.ds:ignitionOffs.[].deviceId

String

The Imei Number of the device

_embedded.ds:ignitionOffs.[].frameType

String

The Type of Frame

_embedded.ds:ignitionOffs.[].reportingTime

Number

The time that corresponds to the data

_embedded.ds:ignitionOffs.[].ignitionTime

Number

Time Of Ignition Event

_embedded.ds:ignitionOffs.[].ignitionOffType

String

ignitionOffType

_embedded.ds:ignitionOns.[].deviceId

String

The Imei Number of the device

_embedded.ds:ignitionOns.[].frameType

String

The Type of Frame

_embedded.ds:ignitionOns.[].reportingTime

Number

The time that corresponds to the data

_embedded.ds:ignitionOns.[].ignitionTime

Number

Time Of Ignition Event

_embedded.ds:ignitionOns.[].ignitionOnType

String

ignitionOnType

_embedded.ds:ignitionOns.[].dtcInformation

Object

DTC code for the car

_embedded.ds:ignitionOns.[].dtcInformation.byteDtcData

Varies

raw data

_embedded.ds:ignitionOns.[].dtcInformation.numberOfOdbFaultCode

Number

Number of OBD Fault Code

_embedded.ds:ignitionOns.[].dtcInformation.dtcCodes

Varies

OBD Fault Code List

_embedded.ds:ignitionOns.[].dtcInformation.dtcCodes.faultCode

String

OBD Fault Code

_embedded.ds:ignitionOns.[].dtcInformation.dtcCodes.faultCodeState

String

OBD Fault Code State

_embedded.ds:ignitionOns.[].dtcInformation.numberOfPrivateOdbFaultCode

Number

Number of private OBD Fault Code

_embedded.ds:ignitionOns.[].dtcInformation.privateDtcCodes

Varies

Private OBD Fault Code List

_embedded.ds:ignitionOns.[].dtcInformation.privateDtcCodes.faultCode

String

OBD Fault Code

_embedded.ds:ignitionOns.[].dtcInformation.privateDtcCodes.faultCodeState

String

OBD Fault Code State

Table 31. Links
Relation Description

self

Self link to the resource

curies

Link to restdocs

first

link to first page

next

link to next page

last

link to last page

Coverage Services

Retrieve coverage history for car

Administrators, customers and distributors can retrieve the coverage history for a car. Other roles cannot call this endpoint.

Example request
GET /cars/dfcec324-6c70-4846-977e-66342dcd7d89/coverages?page=0&size=10&sort=startDate%2Cdesc HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJyb2xlIjpbIkFETUlOIl0sImNyZWF0ZWQiOjE1MTcyMTY1MzY1MzgsImV4cCI6MTUxNzgyNDU0NSwidXVpZCI6IjZmODQ3NzdjLTM4YjctNDMyZC04OTRhLTE5MDVkNTU0MTNjNiJ9.7WRyH1xngrvlfjL6NjZfFmyCcyKL89OBWFmTDSvaQJuCTS7J5MHdKx8CM3cn-9CyOCzsgcgSbbjzqkoxDIXsmw
Accept: application/json
Host: localhost:8080
Table 32. Request headers
Name Description

Authorization

security JWT

Table 33. Request parameters
Parameter Description

page

page number to be accessed (optional)

size

page size (optional)

sort

sort results by given field (optional)

Example response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Content-Length: 2635

{
  "_embedded" : {
    "cs:coverages" : [ {
      "creationDate" : "2018-01-29T10:02:16.532",
      "_embedded" : {
        "cs:product" : {
          "description" : "Description for TBS_BENELUX_VHL",
          "uuid" : "5702e139-11b4-4cc6-ad50-000000000001",
          "productCode" : "TBS_BENELUX_VHL",
          "_links" : {
            "cs:product" : {
              "href" : "http://localhost:8080/products/5702e139-11b4-4cc6-ad50-000000000001{?projection}",
              "templated" : true
            }
          }
        }
      },
      "_links" : {
        "self" : {
          "href" : "http://localhost:8080/coverages/e1957e9d-169d-4815-8219-a542cc1ffc64"
        }
      },
      "price" : 0.0,
      "startDate" : "2017-04-01"
    }, {
      "creationDate" : "2018-01-29T10:02:16.532",
      "_embedded" : {
        "cs:product" : {
          "description" : "Description for TBS_BENELUX_VHL_OVR",
          "uuid" : "5702e139-11b4-4cc6-ad50-000000000002",
          "productCode" : "TBS_BENELUX_VHL_OVR",
          "_links" : {
            "cs:product" : {
              "href" : "http://localhost:8080/products/5702e139-11b4-4cc6-ad50-000000000002{?projection}",
              "templated" : true
            }
          }
        }
      },
      "_links" : {
        "self" : {
          "href" : "http://localhost:8080/coverages/c7ea78b1-1631-42b2-a21a-7312f6e5bd19"
        }
      },
      "price" : 105.0,
      "startDate" : "2016-05-10",
      "endDate" : "2017-03-31"
    }, {
      "creationDate" : "2018-01-29T10:02:16.532",
      "_embedded" : {
        "cs:product" : {
          "description" : "Description for TBS_BENELUX_VHL",
          "uuid" : "5702e139-11b4-4cc6-ad50-000000000001",
          "productCode" : "TBS_BENELUX_VHL",
          "_links" : {
            "cs:product" : {
              "href" : "http://localhost:8080/products/5702e139-11b4-4cc6-ad50-000000000001{?projection}",
              "templated" : true
            }
          }
        }
      },
      "_links" : {
        "self" : {
          "href" : "http://localhost:8080/coverages/581bed0d-9ffc-46dd-9798-587123b29275"
        }
      },
      "price" : 0.0,
      "startDate" : "2015-01-01",
      "endDate" : "2015-12-31"
    } ]
  },
  "_links" : {
    "self" : {
      "href" : "http://localhost:8080/cars/dfcec324-6c70-4846-977e-66342dcd7d89/coverages"
    },
    "curies" : [ {
      "href" : "http://localhost:8080/api-docs/api-guide.html#resources-{rel}",
      "name" : "cs",
      "templated" : true
    } ]
  },
  "page" : {
    "size" : 10,
    "totalElements" : 3,
    "totalPages" : 1,
    "number" : 0
  }
}
Table 34. Response fields
Path Type Description

_links

Object

Links to other resources

page

Object

Paging information

_embedded.cs:coverages

Array

An array of coverages.

_embedded.cs:coverages.[].price

class java.math.BigDecimal

Start date of the coverage period

_embedded.cs:coverages.[].startDate

class java.time.LocalDate

Start date of the coverage period

_embedded.cs:coverages.[].endDate

class java.time.LocalDate

End date of the coverage period

_embedded.cs:coverages.[].creationDate

class java.time.LocalDateTime

Creation timestamp

_embedded.cs:coverages.[]._links

Object

Links to other resources

_embedded.cs:coverages.[]._embedded.cs:product

Object

Product object

Table 35. Links
Relation Description

self

Self link to the resource

curies

Link to restdocs

first

link to first page

next

link to next page

last

link to last page

Retrieve current coverage for car

Administrators, customers and distributors can retrieve the current coverage plan for a car. Other roles cannot call this endpoint.

Example request
GET /cars/f108e101-76db-4367-953e-66bf612177de/coverages/current HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJyb2xlIjpbIkFETUlOIl0sImNyZWF0ZWQiOjE1MTcyMTY1MzY3OTUsImV4cCI6MTUxNzgyNDU0NSwidXVpZCI6ImZiMGMwNzQ0LTQ3MzMtNDZkZC1iNzNiLThkOTRlN2YwNzUxZiJ9.CkFrOx4z_Y1UoHnPAfD_XD3Dn8s2S6ihYS_y90Z3syRlSQoPNZX4i06Hx1U3B2rtJJoufLP-aQBiv1Qpa_ht1A
Accept: application/json
Host: localhost:8080
Table 36. Request headers
Name Description

Authorization

Authentication token

Table 37. /cars/{carUuid}/coverages/current
Parameter Description

carUuid

Unique identifier of the car

Example response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Content-Length: 773

{
  "creationDate" : "2018-01-29T10:02:16.785",
  "_embedded" : {
    "cs:product" : {
      "description" : "Description for TBS_BENELUX_VHL",
      "uuid" : "5702e139-11b4-4cc6-ad50-000000000001",
      "productCode" : "TBS_BENELUX_VHL",
      "_links" : {
        "cs:product" : {
          "href" : "http://localhost:8080/products/5702e139-11b4-4cc6-ad50-000000000001{?projection}",
          "templated" : true
        }
      }
    }
  },
  "_links" : {
    "self" : {
      "href" : "http://localhost:8080/coverages/0eb76981-8ae1-4646-b5f1-f6b66a1dff75"
    },
    "curies" : [ {
      "href" : "http://localhost:8080/api-docs/api-guide.html#resources-{rel}",
      "name" : "cs",
      "templated" : true
    } ]
  },
  "price" : 0.0,
  "startDate" : "2017-04-01"
}
Table 38. Response fields
Path Type Description

price

class java.math.BigDecimal

Start date of the coverage period

startDate

class java.time.LocalDate

Start date of the coverage period

endDate

class java.time.LocalDate

End date of the coverage period

creationDate

class java.time.LocalDateTime

Creation timestamp

_links

Object

Links to other resources

_embedded.cs:product

Object

Product object

Table 39. Links
Relation Description

self

Self link to the resource

curies

Link to restdocs