Common Response

ThinQ Connect API 에서 공통적으로 사용되는 응답 코드, 에러 코드, 응답 메시지 등에 대해 설명합니다.

HTTP 응답 코드

HTTP 표준 응답 코드 규약

ThinQ Connect API의 응답 코드는 다음과 같은 HTTP 표준 응답 코드 규약에 따라 정의됩니다.

HTTP Response Code

Description

2xx

성공

4xx

에러 (클라이언트에서 요청이 잘못된 경우)

5xx

에러 (서버에서 오류가 발생한 경우)

ThinQ Connect API에서 사용하는 HTTP 응답코드

ThinQ Connect API에서 사용하는 응답 코드는 다음과 같으며, 매 요청마다 다음 중 적절한 응답 코드를 반환합니다.

HTTP Response Code

Text Message

Description

200

OK

정상 응답

400

Bad Request

잘못된 요청임

401

Unauthorized

권한이 없음

404

Not Found

요청 받은 리소스를 찾을 수 없음

500

Internal Server Error

서버 에러임

501

Not Implemented

아직 구현되지 않음

503

Service Unavailable

사용할 수 없는 서비스임

 

에러 코드

HTTP의 응답 코드로 확인 할 수 없는 에러는 에러 코드를 통해 에러 발생 원인을 분석할 수 있습니다. 다음은 ThinQ Connect API에서 공통적으로 사용되는 에러 코드입니다.

규칙

ThinQ Connect API의 에러 코드는 클라이언트 에러와 서버 에러로 구분됩니다.

  • 클라이언트 에러: 클라이언트에게 에러 원인을 알려주기 위해 사용됩니다. 
  • 서버 에러: 서버 문제로 발생하는 에러를 나타내기 위해 사용됩니다. 

Error Code

Description

1000

클라이언트 에러

 

11xx

파라미터

 

12xx

리소스

 

13xx

권한

2000

서버 에러

ThinQ Connect API에서 사용하는 에러 코드

Error Code

Text

Description

HTTP Code

0000

Unknown error

정의 되지 않은 에러 (분석해야 하는 에러)

500

1000

Bad request

잘못된 요청

400

1101

Missing parameters

필수 입력 항목이 누락됨

400

1102

Unacceptable parameters

허용하지 않는 파라미터들이 입력됨

400

1103

Invalid token

토큰 문법이 잘못됨

400

1104

Invalid message id

메시지 ID의 문법이 잘못됨

400

1201

Not registered admin

등록된 관리자가 없음

404

1202

Not registered user

등록된 사용자가 없음

404

1203

Not registered service

등록된 서비스가 없음

404

1204

Not subscribed event

구독된 이벤트가 없음

404

1205

Not registered device

등록된 디바이스가 없음

404

1206

Not subscribed push

구독된 푸쉬가 없음

404

1207

Already subscribed push

등록된 푸쉬가 있음 (동일한 푸쉬가 이미 존재함)

404

1208

Not registered service by admin

관리자가 관리하는 서비스가 아님

404

1209

Not registered user in service

서비스를 사용하는 사용자가 아님

404

1210

Not registered device in service

서비스가 허용하는 디바이스 아님

404

1211

Not registered device by user

사용자가 등록한 디바이스가 아님

404

1212

Not owned device

사용자가 가지고 있지 않은 디바이스

404

1213

Not registered device

등록된 디바이스가 없음

404

1214

Not subscribable device 

이벤트 구독을 허용하지 않는 디바이스

404

1216

Incorrect Header

헤더에 포함된 값이 올바르지 않음

400

1217

Already device deleted

해당 디바이스가 삭제되었음

400

1218

Invalid token

유효하지 않은 토큰임

400

1219

Not supported model

지원하지 않는 제품 모델임

406

1220

Not supported feature

해당 제품 모델에서는 지원하지 않는 기능임

406

1221

Not supported product

지원하지 않는 디바이스 타입임 (해당 서비스 키에 허용된 디바이스 타입이 아님)

406

1222

Not connected device

디바이스가 네트워크에 연결되어 있지 않음

416

1223

Invalid status device

전달된 디바이스 상태 값이 유효하지 않음

416

1224

Invalid device Id

허용되지 않은 디바이스 Id

404

1225

Duplicate device Id

디바이스 Id가 같은 다른 디바이스가 존재할 때

404

1301

Invalid service key

유효하지 않은 서비스 키

401

1302

Not found token

만료된 토큰

401

1303

Not found user

토큰이 발급되지 않은 사용자

401

1304

Not acceptable terms

서비스 약관 미동의

401

1305

Not allowed api

허용되지 않은 API

401

1306

Exceeded API calls

API 호출 횟수 초과

401

1307

Not supported country

지원하지 않는 국가

401

1308

No control authority

디바이스 제어권 없음 (ThinQ App에서 사용중)

401

1309

Not allowed API

사용자가 API에 대한 호출 권한이 없을 때 (userFilter 처리)

401

1310

Not supported domain

제공되지 않은 도메인을 사용한 경우

401

1311

Bad request format

요청 포맷이 잘못된 경우

401

1312

Exceeded number of event subscription

해당 서비스 키에 설정된 이벤트 등록 기기 수의 제한을 넘음

400

2000

Internal server error

내부 서버 에러

500

2101

Not supported model

지원하지 않은 가전 모델

503

2201

Not provided feature

지원하는 기능이 아님

503

2202

Not supported product

지원하는 제품군이 아님

400

2203

Not existent modelJSON

ModelJSON이 없음

503

2205

Invalid device status

디바이스 상태 정보가 정상적으로 전송되지 않았거나, 전송된 정보가 정상적으로 파싱되지 않았을 경우

400

2207

Invalid command error

유효하지 않은 제어 명령일 때 (제어 명령에 정의되지 않은 resource, property 가 포함된 경우)

400

2208

Fail device control

디바이스 제어 실패

400

2209

Device response delay

디바이스 응답 지연

400

2210

Retry request

상태조회 재요청 필요

400

2212

Syncing

ModelJSON 싱크 중  (에어솔루션 제품)

412

2213

Retry after deleting device

ModelJSON 싱크 실패. 디바이스 삭제 후 재시도 바람 (에어솔루션 제품)

412

2214

Fail Request

요청 실패

400

2301

Command not supported in REMOTE OFF

지원하는 제어 명령이 없는 디바이스의 경우 (remoteControl이 false일 때) 

400

2302

Command not supported in {STATE (Exception Code)}

해당 STATE에서는 해당 제어 명령을 지원하지 않음  

  • 예: "Command not supported in HEAT (2302)"

400

2303

Command not supported in ERROR

디바이스가 에러 상태여서 제어가 불가능한 경우

400

2304

Command not supported in POWER OFF

디바이스 전원이 꺼져있어서 제어가 불가능한 경우

400

2305

Command not supported in {MODE (Exception Code)}

해당 MODE에서는 해당 제어 명령을 지원하지 않음

  • 예: "Command not supported in STANDBY (2305)"

400

 

응답 메시지

응답 메시지는 모든 API 요청에 대해 공통적으로 표시되는 공통 메시지와 에러가 발생했을 때 추가적으로 표시되는 에러 메시지로 구성됩니다.

공통 메시지

Name

Type

Description

messageId

string

요청 시 헤더에 포함된 X-Message-ID 값입니다. 이 값을 응답 메시지에 포함시켜서 문제가 있을 때 확인할 수 있도록 합니다.

timestamp

string

요청이 들어왔을 때의 시간을 의미하며 ISO 8601 Format을 따릅니다.

Example

{
  "messageId": "fNvdZ1brTn-wWKUlWGoSVw",
  "timestamp": "2019-06-25T04:52:18.370732"
}

 

에러 메시지

API 실행 중 에러가 발생했을 때, 아래 표와 같은 구조로 에러 값을 반환합니다.

에러 메시지 정보

Name

Type

Description

error

object

발생한 에러에 대한 상세 설명을 제공하는 오브젝트

 

message

string

해당 에러에 대한 간략한 설명

 

code

enum

에러 원인을 상세하게 확인하게 위한 Error Code 값