This page does NOT support Internet Explorer. Please use a modern browser like e.g. Google Chrome, Mozilla Firefox or Microsoft Edge.
User (Resource Owner)
The owner of the home appliance. The home appliance must be paired to the user's Home Connect account.
Resource Server
The Home Connect system which enables the access to the user's home appliances.
Application (Client)
Authorization Server
The Home Connect authorization server which issues access tokens to the client.
The Home Connect API supports the OAuth2 Device Flow as shown in the figure below:
Before you can start with the authorization of your application, you need to register your application in the developer portal first. After registration, you get a client ID. You should generate one client ID per client.
POST
https:/
client_id={client_id}&scope={scope}
The request will return the device code and user code in the HTTP body.
{
"device_code": "{device_code}",
"user_code": "{user_code}",
"verification_uri": "{verification_uri}",
"verification_uri_complete": "{verification_uri}?user_code={device_code}",
"expires_in" : 300,
"interval": 5
}
see Section 3.3 of Device Flow
After displaying instructions to the user, the client can start querying an access token by using this endpoint. In addition to the error codes defined in Section 5.2 of [RFC6749], the following error codes are specified by the device flow for use in token endpoint responses:
POST
https:/
grant_type=device_code&device_code={device_code}&client_id={client_id}
The request will return the access token and a refresh token in the HTTP body.
{
"id_token": "{id_token}",
"access_token": "{access_token}",
"expires_in": 86400
"scope": "{scope}",
"refresh_token": "{refresh_token}",
"token_type": "Bearer"
}
Due to the limited access token lifetime of 86400 seconds (24 hours), the client has to request a new access token as soon as the access token has expired. This can be done by using the following token endpoint.
POST
https:/
grant_type=refresh_token&refresh_token={refresh_token}&client_secret={client_secret}
The request will return the new access token in the HTTP body.
{
"id_token": "{id_token}",
"access_token": "{access_token}",
"expires_in": 86400,
"scope": "{scope}",
"refresh_token": "{refresh_token}",
"token_type": "Bearer"
}