# 디바이스 API

## registerDevice

`POST` `https://api.pushwoosh.com/json/1.3/registerDevice`

SDK에서 내부적으로 호출됩니다. 애플리케이션에 디바이스를 등록합니다.

##### 요청 헤더

| 이름 | 필수 | 값 | 설명 |
|---------------|----------|---------------|------------------------------------------------------------|
| Authorization | 예 | Token `XXXX` | 디바이스 API에 접근하기 위한 [API 디바이스 토큰](/ko/developer/api-reference/api-access-token/#device-api-token)입니다. `XXXX`를 실제 디바이스 API 토큰으로 교체하세요. |


##### 요청 본문

| 이름 | 타입 | 설명 |
| ---------------------------------------------- | ------- | --------------------------------------------------------------------------------------------------- |
| application\* | string | [Pushwoosh 애플리케이션 코드](/ko/developer/api-reference/api-identifiers/#application-code) |
| push\_token | string | 디바이스의 [푸시 토큰](/ko/developer/api-reference/api-identifiers/#push-token). |
| language | string | 디바이스의 언어 로케일. ISO-639-1 표준에 따라 소문자 두 글자 코드여야 합니다. |
| hwid\* | string | 디바이스를 식별하는 고유 문자열 (iOS에서는 IDFV, Android에서는 무작위로 생성된 값). [자세히 알아보기](/ko/developer/api-reference/api-identifiers/#hardware-id) |
| timezone | integer | 디바이스의 시간대 오프셋(초 단위). |
| device\_type\* | integer | [디바이스 유형](/ko/developer/api-reference/api-identifiers/#device-type). 아래에서 가능한 값을 확인하세요. |
| email | string | 등록할 이메일 주소 (HWID 및 푸시 토큰 대신 이메일 사용자에 사용). |
| tags | object | 등록된 디바이스에 할당할 태그 값. |

<Tabs>
<TabItem label="200">
```json
{
  "status_code": 200,
  "status_message": "OK",
  "response": null
}
```
</TabItem>
</Tabs>

```json title="예시"
{
  "request": {
    "application": "XXXXX-XXXXX",        // 필수. Pushwoosh 애플리케이션 코드
    "push_token": "dec301908b9ba8XXXXX57a58e40f96f5XXXXX2068674f5XXXXa25cdc250a2a41", // 선택 사항.
    "hwid": "1CA6XXXXX-8DAC-XXXXX-XXXXX-B756288B6D3C",                                   // 필수. 하드웨어 디바이스 ID
    "idfa": "AEBE52E7-0XXXXX-455A-XXXXX-E57283966239",                                   // 선택 사항.
    "timezone": 3600,                    // 선택 사항. 초 단위 오프셋
    "device_type": 1,                    // 필수. 아래에서 가능한 값을 확인하세요. 이메일의 경우,
                                         //           아래 설명된 "emails" 파라미터를 사용하세요.
    "email": "email_address@domain.com", // "hwid" 및 "push_token" 대신 사용하여
                                         //           이메일 프로젝트의 이메일 주소를 등록합니다
    "language": "en",                    // 선택 사항. ISO 639-1|639-2 언어 코드
    "userId": "Alex",                    // 선택 사항.
    "tags": {                            // 선택 사항. 등록된 디바이스에 설정할 태그 값
      "StringTag": "string value",
      "IntegerTag": 42,
      "ListTag": ["string1", "string2"], // 리스트 타입 태그에 대한 값 목록을 설정합니다
      "DateTag": "2024-10-02 22:11",     // 시간은 UTC여야 합니다
      "BooleanTag": true                 // 유효한 값: true, false
    },

    // 시스템 태그, 선택 사항
    "app_version": "1.2.3", 
    "device_model": "Samsung SM-G355H",
    "os_version": "2.3",

    // 선택 사항인 chrome/firefox 암호화 키
    "public_key": "BNmDO4BTKEMJqaqprTf7t/HBXXXXX/orcXXXXX/scS5CFP6XXXXXHI1/GgRQD8c4kTxTEEF0quvIUiLQqoBY0/Qo=",
    "auth_token": "RlRmCXXXXX/s7XXXXXjKFzoQ==",
 
    // 선택 사항인 Chrome용 FCM 키 (XMPP용)
    "fcm_token": "BNmDO4BTKEMJXXXXXprTf7t/XXXXXBQ/orXXXXXc/scS5CFP6zhQGIHI1/GgRQD8c4kTxTEEF0quvIUiLQqoBY0/Qo=",
    "fcm_push_set": "RlXXXXXGM/s7XXXXXjKFzoQ=="
  }
}
```

가능한 디바이스 유형:

* 1 – iOS
* 3 – Android
* 7 – Mac OS X
* 8 – Windows
* 9 – Amazon
* 10 – Safari
* 11 – Chrome
* 12 – Firefox
* 13 – Internet Explorer
* 14 – Email
* 16 – Baidu Android
* 17 – Huawei
* 18 – SMS
* 20 – Web
* 21 – WhatsApp
* 22 – Line
* 23 – Kakao Talk
* 24 – Telegram
* 25 – Apple Wallet
* 26 – Google Wallet
* 27 – Viber

### 이메일 디바이스 등록
앱에 **이메일 구독자를 등록**하려면, `/registerDevice` 또는 [`/registerEmail`](/ko/developer/api-reference/email-api#registeremail) 요청에 `"email": "email_address@domain.com"` 파라미터를 다음과 같이 전송합니다:

##### 요청 예시
```json
{
  "request":{
    "application": "XXXXX-XXXXX",        // 필수. Pushwoosh 애플리케이션 코드
    "email": "email_address@domain.com", // 필수. 이메일 프로젝트에 등록할 이메일 주소
    "language": "en",                    // 선택 사항. ISO 639-1|639-2 언어 코드
    "userId": "Alex",                    // 선택 사항.
    "tags": {                            // 선택 사항. 등록된 디바이스에 설정할 태그 값
      "StringTag": "string value",
      "IntegerTag": 42,
      "ListTag": ["string1", "string2"], // 리스트 타입 태그에 대한 값 목록을 설정합니다
      "DateTag": "2024-10-02 22:11",     // 시간은 UTC여야 합니다
      "BooleanTag": true                 // 유효한 값: true, false
    }
  }
}
```

### WhatsApp 디바이스 등록
앱에 WhatsApp 디바이스를 등록하려면 다음 가이드라인을 따르세요:

- **hwid**: 이 필드에 `whatsapp:` 접두사와 E.164 형식의 전화번호(예: `whatsapp:+0000000000`)가 포함되어 있는지 확인하세요. 전화번호는 유효해야 하며, Pushwoosh가 이를 확인합니다.

- **Push token**: `hwid`가 자동으로 푸시 토큰으로 작동하므로 푸시 토큰은 필요하지 않습니다.

- **device_type**: 이 필드를 21로 설정하여 플랫폼을 WhatsApp으로 지정합니다.

##### 요청 예시
```json
{ 
  "request": {
    "application": "XXXXX-XXXXX",        // 필수. Pushwoosh 애플리케이션 코드
    "hwid": "whatsapp:+0000000000",      // 필수. WhatsApp 접두사와 유효한 전화번호
    "timezone": 3600,                    // 선택 사항. 초 단위 시간 오프셋
    "device_type": 21,                   // 필수. WhatsApp 디바이스 유형은 21입니다
    "language": "en",                    // 선택 사항. ISO 639-1|639-2 언어 코드
    "userId": "Alex",                    // 선택 사항. 사용자 식별자
    "tags": {                            // 선택 사항. 사용자 지정 세분화를 위한 태그 값
      "StringTag": "string value",
      "IntegerTag": 42,
      "ListTag": ["string1", "string2"],
      "DateTag": "2024-10-02 22:11",     // UTC 형식
      "BooleanTag": true  
    },
    "app_version": "1.2.3",              // 선택 사항. 애플리케이션 버전
    "device_model": "Samsung SM-G355H",  // 선택 사항. 디바이스 모델
    "os_version": "2.3"                  // 선택 사항. 운영 체제 버전
  }
}
```

### SMS 디바이스 등록
앱에 SMS 디바이스를 등록하려면 다음 가이드라인을 따르세요:

- **hwid**: 이 필드에 E.164 형식의 전화번호(예: `+0000000000`)가 포함되어 있는지 확인하세요. 전화번호는 유효해야 하며, Pushwoosh가 이를 확인합니다.

- **Push token**: `hwid`가 자동으로 푸시 토큰으로 작동하므로 푸시 토큰은 필요하지 않습니다.

- **device_type**: 이 필수 필드를 18로 설정하여 플랫폼을 SMS로 지정합니다.

##### 요청 예시
```json 
{  
   "request": {
      "application": "XXXXX-XXXXX",           // 필수. Pushwoosh 애플리케이션 코드
      "hwid": "+0000000000",                  // 필수. E.164 형식의 유효한 전화번호
      "timezone": 3600,                       // 선택 사항. 초 단위 시간 오프셋
      "device_type": 18,                      // 필수. SMS 디바이스 유형은 18입니다
      "language": "en",                       // 선택 사항. ISO 639-1|639-2 언어 코드
      "userId": "Alex",                       // 선택 사항. 사용자 식별자
      "tags": {                               // 선택 사항. 사용자 지정 세분화를 위한 태그 값
           "StringTag": "string value",
           "IntegerTag": 42,
           "ListTag": ["string1", "string2"],
           "DateTag": "2024-10-02 22:11",     // UTC 형식
           "BooleanTag": true  
      },
      "app_version": "1.2.3",                 // 선택 사항. 애플리케이션 버전
      "device_model": "Samsung SM-G355H",     // 선택 사항. 디바이스 모델
      "os_version": "2.3"                     // 선택 사항. 운영 체제 버전
   }
}
```

**상태 코드**:

| HTTP 상태 코드 | status\_code | 설명 |
| ---------------- | ------------ | -------------------------------------------------- |
| 200 | 200 | 디바이스가 성공적으로 등록되었습니다. |
| 200 | 210 | 인수 오류. 자세한 내용은 status\_message를 참조하세요. |
| 400 | N/A | 잘못된 형식의 요청 문자열입니다. |
| 500 | 500 | 내부 오류입니다. |



## unregisterDevice

`POST` `https://api.pushwoosh.com/json/1.3/unregisterDevice`

디바이스의 푸시 토큰을 제거합니다. 등록 해제된 디바이스는 여전히 총 디바이스 수에 포함되며 인앱 메시지로 도달할 수 있습니다. SDK에서 내부적으로 호출됩니다.

##### 요청 헤더

| 이름 | 필수 | 값 | 설명 |
|---------------|----------|---------------|------------------------------------------------------------|
| Authorization | 예 | Token `XXXX` | 디바이스 API에 접근하기 위한 [API 디바이스 토큰](/ko/developer/api-reference/api-access-token/#device-api-token)입니다. `XXXX`를 실제 디바이스 API 토큰으로 교체하세요. |

##### 요청 본문

| 이름 | 타입 | 설명 |
| --------------------------------------------- | ------ | --------------------------------------------------- |
| application\* | string | [Pushwoosh 애플리케이션 코드](/ko/developer/api-reference/api-identifiers/#application-code) |
| hwid\* | string | /registerDevice 요청에 사용된 [하드웨어 디바이스 ID](/ko/developer/api-reference/api-identifiers/#hardware-id). |

<Tabs>
<TabItem label="200">
```json
{
    "status_code": 200,
    "status_message": "OK",
    "response": null
}
```
</TabItem>
</Tabs>

```json title="예시"
{
  "request": {
    "application": "XXXXX-XXXXX",              // 필수. Pushwoosh 애플리케이션 코드
    "hwid": "8f65b16XXXXXe7a6beceXXXXX530fb2"  // 필수. /registerDevice API에 사용된 하드웨어 디바이스 ID
  }
}
```

<Aside type="note">
이메일의 경우 [`/deleteEmail`](/ko/developer/api-reference/email-api/#deleteemail)을 호출하세요.
</Aside>

**상태 코드**:

| HTTP 상태 코드 | status\_code | 설명 |
| ---------------- | ------------ | -------------------------------------------------- |
| 200 | 200 | 디바이스 구독이 성공적으로 해지되었습니다. |
| 200 | 210 | 인수 오류. 자세한 내용은 status\_message를 참조하세요. |
| 400 | N/A | 잘못된 형식의 요청 문자열입니다. |
| 500 | 500 | 내부 오류입니다. |



## deleteDevice

`POST` `https://api.pushwoosh.com/api/v2/device-api/deleteDevice`

애플리케이션 내에서 지정된 [HWID](/ko/developer/api-reference/api-identifiers/#hardware-id)로 식별된 디바이스와 모든 관련 데이터를 삭제합니다. 푸시 토큰만 제거하고 디바이스 기록은 유지하는 [`/unregisterDevice`](/ko/developer/api-reference/device-api/#unregisterdevice)와 달리, `/deleteDevice`는 디바이스를 완전히 제거합니다. 요청은 비동기적으로 처리되며, 삭제 요청이 처리되도록 수락되는 즉시 엔드포인트는 `200 OK`를 반환합니다.

#### 요청 헤더

| 이름 | 필수 | 값 | 설명 |
|---------------|----------|------------------|------------------------------------------------------------|
| Authorization | 예 | Token `XXXX` | 디바이스 API에 접근하기 위한 [API 디바이스 토큰](/ko/developer/api-reference/api-access-token/#device-api-token)입니다. `XXXX`를 실제 디바이스 API 토큰으로 교체하세요. |
| Content-Type | 예 | application/json | |

#### 요청 본문

| 이름 | 필수 | 타입 | 설명 |
| ----------- | -------- | ------ | ----------------------------------------------------------------------------------------------------------- |
| application | 예 | string | [Pushwoosh 애플리케이션 코드](/ko/developer/api-reference/api-identifiers/#application-code) |
| hwid | 예 | string | 삭제할 디바이스의 [하드웨어 디바이스 ID](/ko/developer/api-reference/api-identifiers/#hardware-id). |


#### 요청 예시

```json
{
  "application": "XXXXX-XXXXX",                 // 필수. Pushwoosh 애플리케이션 코드
  "hwid": "8f65b16df378e7a6bece9614e1530fb2"    // 필수. 삭제할 디바이스의 하드웨어 디바이스 ID
}
```

#### 응답 예시

<Tabs>
<TabItem label="200">
```json
{
  "status_code": 200,
  "status_message": "OK",
  "response": null
}
```
</TabItem>
</Tabs>

##### 상태 코드

| HTTP 상태 코드 | status\_code | 설명 |
| ---------------- | ------------ | -------------------------------------------------- |
| 200 | 200 | 삭제 요청이 수락되었습니다. |
| 200 | 210 | 인수 오류. 자세한 내용은 status\_message를 참조하세요. |
| 400 | N/A | 잘못된 형식의 요청 문자열입니다. |
| 401 | N/A | Authorization 토큰이 없거나 유효하지 않습니다. |
| 500 | 500 | 내부 오류입니다. |



## setTags

`POST` `https://api.pushwoosh.com/json/1.3/setTags`

디바이스에 대한 태그 값을 설정합니다. SDK에서 호출됩니다.

##### 요청 헤더

| 이름 | 필수 | 값 | 설명 |
|---------------|----------|---------------|------------------------------------------------------------|
| Authorization | 예 | Token `XXXX` | 디바이스 API에 접근하기 위한 [API 디바이스 토큰](/ko/developer/api-reference/api-access-token/#device-api-token)입니다. `XXXX`를 실제 디바이스 API 토큰으로 교체하세요. |

##### 요청 본문

| 이름 | 타입 | 설명 |
| --------------------------------------------- | ------ | ------------------------------------------------------------ |
| application\* | string | [Pushwoosh 애플리케이션 코드](/ko/developer/api-reference/api-identifiers/#application-code) |
| hwid\* | string | /registerDevice 요청에 사용된 [하드웨어 디바이스 ID](/ko/developer/api-reference/api-identifiers/#hardware-id). |
| tags\* | object | 설정할 태그의 JSON 객체. 값을 제거하려면 "null"을 보냅니다. |

<Tabs>
<TabItem label="200">
```json
{
   "status_code": 200,
   "status_message": "OK",
   "response": null
}
```
</TabItem>
</Tabs>

<Aside type="note">
이 메서드는 SDK에서 호출됩니다. 백엔드에서 원격으로 호출할 수 있지만, 백엔드 측에서 최신 hwid 데이터베이스를 유지해야 합니다.
</Aside>

```json title="예시"
{
  "request":{
    "application": "XXXXX-XXXXX",               // 필수. Pushwoosh 애플리케이션 코드
    "hwid": "8f65b16XXXXXe7a6becXXXXXe1530fb2", // 필수. /registerDevice API에 사용된 하드웨어 디바이스 ID
    "tags": {                                   // 필수.
      "StringTag": "string value",
      "IntegerTag": 42,
      "ListTag": ["string1", "string2"],        // 리스트 타입 태그에 대한 값 목록을 설정합니다
      "DateTag": "2024-10-02 22:11",            // 시간은 UTC입니다
      "BooleanTag": true                        // 유효한 값 - true, false
    }  
  }
}
```

### 정수 태그 값 증가시키기

정수 태그의 값을 **증가**시키려면, `operation` 파라미터를 "increment" 값과 함께 다음과 같이 사용합니다:

```json
{
  "request":{
    "application": "12345-67890",                   // 필수. Pushwoosh 애플리케이션 코드
    "hwid": "21AB7628-XXXX-XXXX-CCC0-PO287CS24CA4", // 필수. /registerDevice API에 사용된 하드웨어 디바이스 ID
    "tags": {                                       // 필수.
      "Level": {                                    // 태그 이름
        "operation": "increment",                   // 다음 값만큼 정수 태그를 덮어씁니다
        "value": 1                                  // 태그 값의 증가분
      }  
    }  
  }
}
```

### 정수 태그 값 감소시키기

**감소**시키려면, "increment" 작업에 음수(-1, -2, -3, -n)를 값으로 사용합니다:

```json
{
  "request":{
    "application": "12345-67890",                   // 필수. Pushwoosh 애플리케이션 코드
    "hwid": "21AB7628-XXXX-XXXX-CCC0-PO287CS24CA4", // 필수. /registerDevice API에 사용된 하드웨어 디바이스 ID
    "tags": {                                       // 필수
      "Level": {                                    // 태그 이름
        "operation": "increment",                   // 다음 값만큼 정수 태그를 감소시켜 덮어씁니다
        "value": -1                                 // 태그 값의 감소분
      }  
    }  
  }
}
```

### 리스트 태그 값 추가하기

**리스트 태그에 새 값을 추가**하려면, `operation` 파라미터를 "append" 값과 함께 다음과 같이 사용합니다:

```json title="예시"
{
  "request": {
    "hwid": "3d124a79XXXXf189XXXX7dfd9XXXXafd", // 필수. /registerDevice API에 사용된 하드웨어 디바이스 ID
    "application": "6XXXX-XXXX3",               // 필수. Pushwoosh 애플리케이션 코드
    "tags": {                                   // 필수.
      "ListTag": {                              // 태그 이름
        "operation": "append",                  // 다음 값들을 태그의 값 목록에 추가합니다
        "value": [                              // 추가할 값들
          "tag2",
          "tag3"
        ]
      }
    }
  }
}
```

### 리스트 태그 값 제거하기

리스트 태그에서 일부 값을 제거하려면, "remove" 작업을 다음과 같이 사용합니다:

```json
{
  "request":{
    "application": "12345-67890",                   // 필수. Pushwoosh 애플리케이션 코드
    "hwid": "21AB7628-XXXX-XXXX-CCC0-PO287CS24CA4", // 필수. /registerDevice API에 사용된 하드웨어 디바이스 ID
    "tags": {                                       // 필수.
      "In-App Product": {                           // 태그 이름
        "operation": "remove",                      // 다음 값들을 리스트 태그에서 제거합니다
        "value": "outwear_02"                       // 제거할 값 또는 값들
      }
    }  
  }
}
```

### UserID로 태그 설정하기

특정 [User ID](/ko/developer/api-reference/api-identifiers/#user-id)에 연결된 모든 디바이스에 태그를 설정하려면, "hwid" 대신 "userId" 파라미터를 사용합니다.

<Aside type="caution">
설정하려는 태그가 [사용자별 태그](/ko/developer/guides/audience-and-segmentation/tags/#tag-scope-general-vs-user-specific)인지 확인하세요.
</Aside>

```json title="예시"
{
  "request":{
    "application": "AAAAA-BBBBB", // Pushwoosh 앱 코드
    "userId": "some_user",        // 태그를 설정할 사용자 ID
    "tags": {                     // 설정할 태그와 값
      "Language": "es"
    }  
  }
}
```

<Aside type="note">
이메일의 경우 [`/setEmailTags`](/ko/developer/api-reference/email-api/#setemailtags)를 호출하세요.
</Aside>

**상태 코드:**

| HTTP 상태 코드 | status\_code | 설명 |
| ---------------- | ------------ | -------------------------------------------------- |
| 200 | 200 | 태그가 성공적으로 설정되었습니다. |
| 200 | 210 | 인수 오류. 자세한 내용은 status\_message를 참조하세요. |
| 400 | N/A | 잘못된 형식의 요청 문자열입니다. |
| 500 | 500 | 내부 오류입니다. |


## getTags

`POST` `https://api.pushwoosh.com/json/1.3/getTags`

특정 디바이스에 대한 태그와 해당 값의 목록을 검색합니다.

##### 요청 헤더

| 이름 | 필수 | 값 | 설명 |
|---------------|----------|---------------|------------------------------------------------------------|
| Authorization | 예 | Token `XXXX` | 디바이스 API에 접근하기 위한 [API 디바이스 토큰](/ko/developer/api-reference/api-access-token/#device-api-token)입니다. `XXXX`를 실제 디바이스 API 토큰으로 교체하세요. |

##### 요청 본문

| 이름 | 타입 | 설명 |
| --------------------------------------------- | ------ | --------------------------------------------------------------------------------------------------- |
| application\* | string | [Pushwoosh 애플리케이션 코드](/ko/developer/api-reference/api-identifiers/#application-code) |
| userId | string | "hwid" 대신 사용할 [User ID](/ko/developer/api-reference/api-identifiers/#user-id). "hwid"와 함께 사용될 경우 "hwid"가 우선합니다. |
| hwid | string | `/registerDevice` 요청에 사용된 [하드웨어 디바이스 ID](/ko/developer/api-reference/api-identifiers/#hardware-id). |

<Tabs>
<TabItem label="200">
```json
{
  "status_code": 200,
  "status_message": "OK",
  "response": {
    "result": {
      "Language": "fr"
    }
  }
}
```
</TabItem>
</Tabs>

```json title="예시"
{
  "request":{
    "application": "XXXXX-XXXXX",   // 필수. Pushwoosh 애플리케이션 코드
    "hwid": "HWID",                 // 선택 사항. /registerDevice API에 사용된 하드웨어 디바이스 ID
    "userId": "USER_ID"             // 선택 사항. 특정 사용자의 태그를 검색하기 위해 "hwid" 대신 사용할 수 있습니다
  }
}
```

## setBadge

`POST` `https://api.pushwoosh.com/json/1.3/setBadge`

디바이스의 현재 배지 값을 Pushwoosh로 보냅니다. SDK에서 내부적으로 호출됩니다.

##### 요청 헤더

| 이름 | 필수 | 값 | 설명 |
|---------------|----------|---------------|------------------------------------------------------------|
| Authorization | 예 | Token `XXXX` | 디바이스 API에 접근하기 위한 [API 디바이스 토큰](/ko/developer/api-reference/api-access-token/#device-api-token)입니다. `XXXX`를 실제 디바이스 API 토큰으로 교체하세요. |

##### 요청 본문

| 이름 | 타입 | 설명 |
| --------------------------------------------- | ------- | --------------------------------------------------- |
| application\* | string | [Pushwoosh 애플리케이션 코드](/ko/developer/api-reference/api-identifiers/#application-code) |
| hwid\* | string | /registerDevice 요청에 사용된 [하드웨어 디바이스 ID](/ko/developer/api-reference/api-identifiers/#hardware-id). |
| badge\* | integer | 애플리케이션의 현재 배지. |

<Tabs>
<TabItem label="200">
```json
{
  "status_code": 200,
  "status_message": "OK"
}
```
</TabItem>
</Tabs>

```json title="예시"
{
  "request":{
    "application": "XXXXX-XXXXX",               // 필수. Pushwoosh 애플리케이션 코드
    "hwid": "8f65b16dXXXXe7a6XXXX9614XXXX0fb2", // 필수. /registerDevice API에 사용된 하드웨어 디바이스 ID
    "badge": 4                                  // 필수. 애플리케이션의 현재 배지
  }
}
```

SDK에서 내부적으로 호출됩니다. 디바이스의 현재 배지 값을 Pushwoosh로 보냅니다. 이는 앱이 iOS 디바이스에서 배지 값을 변경할 때 내부적으로 발생합니다. 자동 증가 배지가 제대로 작동하도록 합니다.

<Aside type="caution">
이 메서드는 디바이스의 배지 값을 업데이트하는 데 사용되지 **않습니다**. 대신 `"ios_badges"` 파라미터와 함께 [`/createMessage`](/ko/developer/api-reference/messages-api/#createmessage) 요청을 사용하세요.
</Aside>



## applicationOpen

`POST` `https://api.pushwoosh.com/json/1.3/applicationOpen`

앱 열기 이벤트를 등록합니다. SDK에서 내부적으로 호출됩니다.

##### 요청 헤더

| 이름 | 필수 | 값 | 설명 |
|---------------|----------|---------------|------------------------------------------------------------|
| Authorization | 예 | Token `XXXX` | 디바이스 API에 접근하기 위한 [API 디바이스 토큰](/ko/developer/api-reference/api-access-token/#device-api-token)입니다. `XXXX`를 실제 디바이스 API 토큰으로 교체하세요. |

##### 요청 본문

| 이름 | 타입 | 설명 |
| --------------------------------------------- | ------ | --------------------------------------------------- |
| application\* | string | [Pushwoosh 애플리케이션 코드](/ko/developer/api-reference/api-identifiers/#application-code) |
| hwid\* | string | `/registerDevice` 요청에 사용된 [하드웨어 디바이스 ID](/ko/developer/api-reference/api-identifiers/#hardware-id). |

<Tabs>
<TabItem label="200">
```json
{
  "status_code": 200,
  "status_message": "OK"
}
```
</TabItem>
</Tabs>

```json title="예시"
{
  "request": {
    "application": "XXXXX-XXXXX",              // 필수. Pushwoosh 애플리케이션 코드
    "hwid": "8f65b16dXXXXe7a6XXXX9614eXXXXfb2" // 필수. /registerDevice API에 사용된 하드웨어 디바이스 ID
  }
}
```



## pushStat

`POST` `https://api.pushwoosh.com/json/1.3/pushStat`

푸시 열기 이벤트를 등록합니다. SDK에서 내부적으로 호출됩니다.

##### 요청 헤더

| 이름 | 필수 | 값 | 설명 |
|---------------|----------|---------------|------------------------------------------------------------|
| Authorization | 예 | Token `XXXX` | 디바이스 API에 접근하기 위한 [API 디바이스 토큰](/ko/developer/api-reference/api-access-token/#device-api-token)입니다. `XXXX`를 실제 디바이스 API 토큰으로 교체하세요. |
##### 요청 본문

| 이름 | 타입 | 설명 |
| --------------------------------------------- | ------ | --------------------------------------------------------------------------- |
| application\* | string | [Pushwoosh 애플리케이션 코드](/ko/developer/api-reference/api-identifiers/#application-code) |
| hwid\* | string | /registerDevice 요청에 사용된 [하드웨어 디바이스 ID](/ko/developer/api-reference/api-identifiers/#hardware-id). |
| userId | string | 푸시 열기 이벤트와 연결할 [User ID](/ko/developer/api-reference/api-identifiers/#user-id). |
| hash | string | 푸시 알림에서 받은 해시 태그 (푸시 페이로드의 "p" 파라미터). |

<Tabs>
<TabItem label="200">
```json
{
  "status_code": 200,
  "status_message": "OK",
  "response": null
}
```
</TabItem>
</Tabs>

```json title="예시"
{
  "request": {
    "application": "XXXXX-XXXXX",               // 필수. Pushwoosh 애플리케이션 코드
    "hwid": "8f65b16dfXXXX7a6beXXXX14e1530fb2", // 필수. /registerDevice API에 사용된 하드웨어 디바이스 ID
    "userId": "USER012345",                     // 선택 사항. 푸시 열기 이벤트와 연결할 사용자 ID
    "hash": "HASH_TAG"                          // 선택 사항. 푸시 알림에서 받은 해시 태그
                                                //           (푸시 페이로드의 "p" 파라미터)
  }
}
```


## messageDeliveryEvent

`POST` `https://api.pushwoosh.com/json/1.3/messageDeliveryEvent`

디바이스에 대한 푸시 전달 이벤트를 등록합니다. SDK에서 내부적으로 호출됩니다.

##### 요청 헤더

| 이름 | 필수 | 값 | 설명 |
|---------------|----------|---------------|------------------------------------------------------------|
| Authorization | 예 | Token `XXXX` | 디바이스 API에 접근하기 위한 [API 디바이스 토큰](/ko/developer/api-reference/api-access-token/#device-api-token)입니다. `XXXX`를 실제 디바이스 API 토큰으로 교체하세요. |

##### 요청 본문

| 이름 | 타입 | 설명 |
| --------------------------------------------- | ------ | --------------------------------------------------------------------------- |
| application\* | string | [Pushwoosh 애플리케이션 코드](/ko/developer/api-reference/api-identifiers/#application-code) |
| hwid\* | string | `/registerDevice` 요청에 사용된 [하드웨어 디바이스 ID](/ko/developer/api-reference/api-identifiers/#hardware-id). |
| hash | string | 푸시 알림에서 받은 해시 태그 (푸시 페이로드의 "p" 파라미터). |

<Tabs>
<TabItem label="200">
```json
{
  "status_code": 200,
  "status_message": "OK",
  "response": null
}
```
</TabItem>
</Tabs>

```json title="예시"
 {
  "request": {
    "application": "XXXXX-XXXXX",               // 필수. Pushwoosh 애플리케이션 코드
    "hwid": "8f65b16dfXXXX7a6bece9XXXX1530fb2", // 필수. /registerDevice API에 사용된 하드웨어 디바이스 ID
    "hash": "HASH_TAG"                          // 선택 사항. 푸시 알림에서 받은 해시 태그
                                                //           (푸시 페이로드의 "p" 파라미터)
  }
}
```