# Device API

## registerDevice

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

เรียกใช้ภายในจาก SDK ทำการลงทะเบียนอุปกรณ์สำหรับแอปพลิเคชัน

##### ส่วนหัวของคำขอ

| ชื่อ | จำเป็น | ค่า | คำอธิบาย |
|---------------|----------|---------------|------------------------------------------------------------|
| Authorization | ใช่ | Token `XXXX` | [API Device Token](/th/developer/api-reference/api-access-token/#device-api-token) เพื่อเข้าถึง Device API แทนที่ `XXXX` ด้วย Device API token จริงของคุณ |


##### เนื้อหาของคำขอ

| ชื่อ | ประเภท | คำอธิบาย |
| ---------------------------------------------- | ------- | --------------------------------------------------------------------------------------------------- |
| application\* | string | [รหัสแอปพลิเคชัน Pushwoosh](/th/developer/api-reference/api-identifiers/#application-code) |
| push\_token | string | [Push token](/th/developer/api-reference/api-identifiers/#push-token) สำหรับอุปกรณ์ |
| language | string | ภาษาท้องถิ่นของอุปกรณ์ ต้องเป็นรหัสสองตัวอักษรพิมพ์เล็กตามมาตรฐาน ISO-639-1 |
| hwid\* | string | สตริงที่ไม่ซ้ำกันเพื่อระบุอุปกรณ์ (IDFV บน iOS, ค่าที่สร้างขึ้นแบบสุ่มบน Android) [เรียนรู้เพิ่มเติม](/th/developer/api-reference/api-identifiers/#hardware-id) |
| timezone | integer | ออฟเซ็ตไทม์โซนเป็นวินาทีสำหรับอุปกรณ์ |
| device\_type\* | integer | [ประเภทอุปกรณ์](/th/developer/api-reference/api-identifiers/#device-type) ดูค่าที่เป็นไปได้ด้านล่าง |
| email | string | ที่อยู่อีเมลที่จะลงทะเบียน (ใช้สำหรับผู้ใช้อีเมลแทน HWID และ push token) |
| tags | object | ค่าแท็กที่จะกำหนดให้กับอุปกรณ์ที่ลงทะเบียน |

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

```json title="ตัวอย่าง"
{
  "request": {
    "application": "XXXXX-XXXXX",        // required. Pushwoosh application code
    "push_token": "dec301908b9ba8XXXXX57a58e40f96f5XXXXX2068674f5XXXXa25cdc250a2a41", // optional.
    "hwid": "1CA6XXXXX-8DAC-XXXXX-XXXXX-B756288B6D3C",                                   // required. Hardware device ID
    "idfa": "AEBE52E7-0XXXXX-455A-XXXXX-E57283966239",                                   // optional.
    "timezone": 3600,                    // optional. Offset in seconds
    "device_type": 1,                    // required. See the possible values below. For emails, 
                                         //           use the "emails" params as described below.
    "email": "email_address@domain.com", // use instead of "hwid" and "push_token" to register
                                         //           the email address for your email project
    "language": "en",                    // optional. ISO 639-1|639-2 language code
    "userId": "Alex",                    // optional.
    "tags": {                            // optional. Tag values to set for the device registered 
      "StringTag": "string value",
      "IntegerTag": 42,
      "ListTag": ["string1", "string2"], // sets the list of values for Tags of List type
      "DateTag": "2024-10-02 22:11",     // note the time should be in UTC
      "BooleanTag": true                 // valid values are: true, false
    },

    // system tags, optionals
    "app_version": "1.2.3", 
    "device_model": "Samsung SM-G355H",
    "os_version": "2.3",

    // optional encryption keys for chrome/firefox
    "public_key": "BNmDO4BTKEMJqaqprTf7t/HBXXXXX/orcXXXXX/scS5CFP6XXXXXHI1/GgRQD8c4kTxTEEF0quvIUiLQqoBY0/Qo=",
    "auth_token": "RlRmCXXXXX/s7XXXXXjKFzoQ==",
 
    // optional FCM keys for Chrome (for 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

### การลงทะเบียนอุปกรณ์อีเมล
เพื่อ**ลงทะเบียนผู้สมัครรับอีเมล**สำหรับแอปของคุณ ให้ส่งพารามิเตอร์ `"email": "email_address@domain.com"` ในคำขอ `/registerDevice` หรือ [`/registerEmail`](/th/developer/api-reference/email-api#registeremail) ของคุณดังนี้:

##### ตัวอย่างคำขอ
```json
{
  "request":{
    "application": "XXXXX-XXXXX",        // required. Pushwoosh application code
    "email": "email_address@domain.com", // required. Email address to register for your email project
    "language": "en",                    // optional. ISO 639-1|639-2 language code
    "userId": "Alex",                    // optional.
    "tags": {                            // optional. Tag values to set for the device registered 
      "StringTag": "string value",
      "IntegerTag": 42,
      "ListTag": ["string1", "string2"], // sets the list of values for Tags of List type
      "DateTag": "2024-10-02 22:11",     // note the time should be in UTC
      "BooleanTag": true                 // valid values are: true, false
    }
  }
}
```

### การลงทะเบียนอุปกรณ์ WhatsApp
หากต้องการลงทะเบียนอุปกรณ์ WhatsApp สำหรับแอปของคุณ ให้ปฏิบัติตามหลักเกณฑ์เหล่านี้:

-   **hwid**: ตรวจสอบให้แน่ใจว่าฟิลด์นี้มีคำนำหน้า whatsapp: ตามด้วยหมายเลขโทรศัพท์ในรูปแบบ E.164 (เช่น whatsapp:+0000000000) หมายเลขโทรศัพท์ต้องถูกต้อง ซึ่ง Pushwoosh จะทำการตรวจสอบ

-   **Push token**: ไม่จำเป็นต้องใช้ push token เนื่องจาก hwid จะทำหน้าที่เป็น push token โดยอัตโนมัติ

-   **device\_type**: ตั้งค่าฟิลด์นี้เป็น 21 เพื่อระบุ WhatsApp เป็นแพลตฟอร์ม

##### ตัวอย่างคำขอ
```json
{ 
  "request": {
    "application": "XXXXX-XXXXX",        // required. Pushwoosh application code
    "hwid": "whatsapp:+0000000000",      // required. WhatsApp prefix and valid phone number
    "timezone": 3600,                    // optional. Time offset in seconds
    "device_type": 21,                   // required. WhatsApp device type is 21
    "language": "en",                    // optional. ISO 639-1|639-2 language code
    "userId": "Alex",                    // optional. User identifier
    "tags": {                            // optional. Tag values for custom segmentation
      "StringTag": "string value",
      "IntegerTag": 42,
      "ListTag": ["string1", "string2"],
      "DateTag": "2024-10-02 22:11",     // UTC format
      "BooleanTag": true  
    },
    "app_version": "1.2.3",              // optional. Application version
    "device_model": "Samsung SM-G355H",  // optional. Device model
    "os_version": "2.3"                  // optional. Operating system version
  }
}
```

### การลงทะเบียนอุปกรณ์ SMS
หากต้องการลงทะเบียนอุปกรณ์ SMS สำหรับแอปของคุณ ให้ปฏิบัติตามหลักเกณฑ์เหล่านี้:

-   **hwid**: ตรวจสอบให้แน่ใจว่าฟิลด์นี้มีหมายเลขโทรศัพท์ในรูปแบบ E.164 (เช่น +0000000000) หมายเลขโทรศัพท์ต้องถูกต้อง ซึ่ง Pushwoosh จะทำการตรวจสอบ

-   **Push token**: ไม่จำเป็นต้องใช้ push token เนื่องจาก hwid จะทำหน้าที่เป็น push token โดยอัตโนมัติ

-   **device\_type**: ตั้งค่าฟิลด์ที่จำเป็นนี้เป็น 18 เพื่อกำหนดให้ SMS เป็นแพลตฟอร์ม

##### ตัวอย่างคำขอ
```json 
{  
   "request": {
      "application": "XXXXX-XXXXX",           // required. Pushwoosh application code
      "hwid": "+0000000000",                  // required. Valid phone number in E.164 format
      "timezone": 3600,                       // optional. Time offset in seconds
      "device_type": 18,                      // required. SMS device type is 18
      "language": "en",                       // optional. ISO 639-1|639-2 language code
      "userId": "Alex",                       // optional. User identifier
      "tags": {                               // optional. Tag values for custom segmentation
           "StringTag": "string value",
           "IntegerTag": 42,
           "ListTag": ["string1", "string2"],
           "DateTag": "2024-10-02 22:11",     // UTC format
           "BooleanTag": true  
      },
      "app_version": "1.2.3",                 // optional. Application version
      "device_model": "Samsung SM-G355H",     // optional. Device model
      "os_version": "2.3"                     // optional. Operating system version
   }
}
```

**รหัสสถานะ**:

| รหัสสถานะ HTTP | status\_code | คำอธิบาย |
| ---------------- | ------------ | -------------------------------------------------- |
| 200 | 200 | ลงทะเบียนอุปกรณ์สำเร็จ |
| 200 | 210 | ข้อผิดพลาดของอาร์กิวเมนต์ ดูข้อมูลเพิ่มเติมใน status\_message |
| 400 | N/A | สตริงคำขอมีรูปแบบไม่ถูกต้อง |
| 500 | 500 | ข้อผิดพลาดภายใน |



## unregisterDevice

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

ลบ push token ของอุปกรณ์ อุปกรณ์ที่ไม่ได้ลงทะเบียนจะยังคงถูกนับใน Total Devices และสามารถเข้าถึงได้ด้วย In-Apps เรียกใช้ภายในจาก SDK

##### ส่วนหัวของคำขอ

| ชื่อ | จำเป็น | ค่า | คำอธิบาย |
|---------------|----------|---------------|------------------------------------------------------------|
| Authorization | ใช่ | Token `XXXX` | [API Device Token](/th/developer/api-reference/api-access-token/#device-api-token) เพื่อเข้าถึง Device API แทนที่ `XXXX` ด้วย Device API token จริงของคุณ |

##### เนื้อหาของคำขอ

| ชื่อ | ประเภท | คำอธิบาย |
| --------------------------------------------- | ------ | --------------------------------------------------- |
| application\* | string | [รหัสแอปพลิเคชัน Pushwoosh](/th/developer/api-reference/api-identifiers/#application-code) |
| hwid\* | string | [Hardware device ID](/th/developer/api-reference/api-identifiers/#hardware-id) ที่ใช้ในคำขอ /registerDevice |

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

```json title="ตัวอย่าง"
{
  "request": {
    "application": "XXXXX-XXXXX",              // required. Pushwoosh application code
    "hwid": "8f65b16XXXXXe7a6beceXXXXX530fb2"  // required. Hardware device ID used in /registerDevice API 
  }
}
```

<Aside type="note">
สำหรับอีเมล ให้เรียกใช้ [`/deleteEmail`](/th/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](/th/developer/api-reference/api-identifiers/#hardware-id) ที่ระบุภายในแอปพลิเคชัน ซึ่งแตกต่างจาก [`/unregisterDevice`](/th/developer/api-reference/device-api/#unregisterdevice) ซึ่งจะลบเฉพาะ push token และเก็บระเบียนอุปกรณ์ไว้ แต่ `/deleteDevice` จะลบอุปกรณ์ออกทั้งหมด คำขอจะถูกประมวลผลแบบอะซิงโครนัส และปลายทางจะส่งคืน `200 OK` ทันทีที่คำขอลบได้รับการยอมรับเพื่อการประมวลผล

#### ส่วนหัวของคำขอ

| ชื่อ | จำเป็น | ค่า | คำอธิบาย |
|---------------|----------|------------------|------------------------------------------------------------|
| Authorization | ใช่ | Token `XXXX` | [API Device Token](/th/developer/api-reference/api-access-token/#device-api-token) เพื่อเข้าถึง Device API แทนที่ `XXXX` ด้วย Device API token จริงของคุณ |
| Content-Type | ใช่ | application/json | |

#### เนื้อหาของคำขอ

| ชื่อ | จำเป็น | ประเภท | คำอธิบาย |
| ----------- | -------- | ------ | ----------------------------------------------------------------------------------------------------------- |
| application | ใช่ | string | [รหัสแอปพลิเคชัน Pushwoosh](/th/developer/api-reference/api-identifiers/#application-code) |
| hwid | ใช่ | string | [Hardware device ID](/th/developer/api-reference/api-identifiers/#hardware-id) ของอุปกรณ์ที่จะลบ |


#### ตัวอย่างคำขอ

```json
{
  "application": "XXXXX-XXXXX",                 // required. Pushwoosh application code
  "hwid": "8f65b16df378e7a6bece9614e1530fb2"    // required. Hardware device ID of the device to delete
}
```

#### ตัวอย่างการตอบกลับ

<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 Device Token](/th/developer/api-reference/api-access-token/#device-api-token) เพื่อเข้าถึง Device API แทนที่ `XXXX` ด้วย Device API token จริงของคุณ |

##### เนื้อหาของคำขอ

| ชื่อ | ประเภท | คำอธิบาย |
| --------------------------------------------- | ------ | ------------------------------------------------------------ |
| application\* | string | [รหัสแอปพลิเคชัน Pushwoosh](/th/developer/api-reference/api-identifiers/#application-code) |
| hwid\* | string | [Hardware device ID](/th/developer/api-reference/api-identifiers/#hardware-id) ที่ใช้ในคำขอ /registerDevice |
| 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",               // required. Pushwoosh application code
    "hwid": "8f65b16XXXXXe7a6becXXXXXe1530fb2", // required. Hardware device ID used in /registerDevice API
    "tags": {                                   // required.
      "StringTag": "string value",
      "IntegerTag": 42,
      "ListTag": ["string1", "string2"],        // sets the list of values for Tags of List type
      "DateTag": "2024-10-02 22:11",            // note the time is in UTC
      "BooleanTag": true                        // valid values are - true, false
    }  
  }
}
```

### การเพิ่มค่าแท็ก Integer

เพื่อ**เพิ่ม**ค่าของแท็ก Integer ให้ใช้พารามิเตอร์ `operation` ที่มีค่า "increment" ดังนี้:

```json
{
  "request":{
    "application": "12345-67890",                   // required. Pushwoosh application code
    "hwid": "21AB7628-XXXX-XXXX-CCC0-PO287CS24CA4", // required. hardware device ID used in /registerDevice API
    "tags": {                                       // required.
      "Level": {                                    // Tag name
        "operation": "increment",                   // overwrites the integer tag in increments of the following value 
        "value": 1                                  // increment for the tag value
      }  
    }  
  }
}
```

### การลดค่าแท็ก Integer

เพื่อ**ลดค่า** ให้ใช้ตัวเลขติดลบเป็นค่าสำหรับการดำเนินการ "increment" (-1, -2, -3, -n):

```json
{
  "request":{
    "application": "12345-67890",                   // required. Pushwoosh application code
    "hwid": "21AB7628-XXXX-XXXX-CCC0-PO287CS24CA4", // required. Hardware device ID used in /registerDevice API
    "tags": {                                       // required
      "Level": {                                    // Tag name
        "operation": "increment",                   // overwrites the integer tag in decrement of the following value 
        "value": -1                                 // decrement for the tag value
      }  
    }  
  }
}
```

### การเพิ่มค่าแท็ก List

เพื่อ**ขยายแท็ก List ด้วยค่าใหม่** ให้ใช้พารามิเตอร์ `operation` ที่มีค่า "append" ดังนี้:

```json title="ตัวอย่าง"
{
  "request": {
    "hwid": "3d124a79XXXXf189XXXX7dfd9XXXXafd", // required. Hardware device ID used in /registerDevice API
    "application": "6XXXX-XXXX3",               // required. Pushwoosh application code
    "tags": {                                   // required.
      "ListTag": {                              // Tag name
        "operation": "append",                  // appends following values to the Tag's list of values
        "value": [                              // values to append
          "tag2",
          "tag3"
        ]
      }
    }
  }
}
```

### การลบค่าแท็ก List

หากต้องการลบค่าบางค่าออกจากแท็ก List ให้ใช้การดำเนินการ "remove" ดังนี้:

```json
{
  "request":{
    "application": "12345-67890",                   // required. Pushwoosh application code
    "hwid": "21AB7628-XXXX-XXXX-CCC0-PO287CS24CA4", // required. Hardware device ID used in /registerDevice API
    "tags": {                                       // required.
      "In-App Product": {                           // Tag name
        "operation": "remove",                      // removes the following values from the list tag
        "value": "outwear_02"                       // value or values to remove
      }
    }  
  }
}
```

### การตั้งค่าแท็กโดยใช้ UserID

หากต้องการตั้งค่าแท็กสำหรับอุปกรณ์ทั้งหมดที่เชื่อมโยงกับ [User ID](/th/developer/api-reference/api-identifiers/#user-id) ที่ต้องการ ให้ใช้พารามิเตอร์ "userId" แทน "hwid"

<Aside type="caution">
ตรวจสอบให้แน่ใจว่าแท็กที่คุณกำลังตั้งค่าเป็นแท็ก [เฉพาะผู้ใช้](/th/developer/guides/audience-and-segmentation/tags/#tag-scope-general-vs-user-specific)
</Aside>

```json title="ตัวอย่าง"
{
  "request":{
    "application": "AAAAA-BBBBB", // Pushwoosh app code
    "userId": "some_user",        // user ID you'd like to set tags for 
    "tags": {                     // tags and values to set
      "Language": "es"
    }  
  }
}
```

<Aside type="note">
สำหรับอีเมล ให้เรียกใช้ [`/setEmailTags`](/th/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 Device Token](/th/developer/api-reference/api-access-token/#device-api-token) เพื่อเข้าถึง Device API แทนที่ `XXXX` ด้วย Device API token จริงของคุณ |

##### เนื้อหาของคำขอ

| ชื่อ | ประเภท | คำอธิบาย |
| --------------------------------------------- | ------ | --------------------------------------------------------------------------------------------------- |
| application\* | string | [รหัสแอปพลิเคชัน Pushwoosh](/th/developer/api-reference/api-identifiers/#application-code) |
| userId | string | [User ID](/th/developer/api-reference/api-identifiers/#user-id) ที่จะใช้แทน "hwid" หากใช้ร่วมกับ "hwid" จะใช้ "hwid" เป็นหลัก |
| hwid | string | [Hardware device ID](/th/developer/api-reference/api-identifiers/#hardware-id) ที่ใช้ในคำขอ `/registerDevice` |

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

```json title="ตัวอย่าง"
{
  "request":{
    "application": "XXXXX-XXXXX",   // required. Pushwoosh application code
    "hwid": "HWID",                 // optional. Hardware device ID used in /registerDevice API
    "userId": "USER_ID"             // optional. Can be used instead of "hwid" to retrieve tags for a specific user
  }
}
```

## setBadge

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

ส่งค่า badge ปัจจุบันสำหรับอุปกรณ์ไปยัง Pushwoosh เรียกใช้ภายในจาก SDK

##### ส่วนหัวของคำขอ

| ชื่อ | จำเป็น | ค่า | คำอธิบาย |
|---------------|----------|---------------|------------------------------------------------------------|
| Authorization | ใช่ | Token `XXXX` | [API Device Token](/th/developer/api-reference/api-access-token/#device-api-token) เพื่อเข้าถึง Device API แทนที่ `XXXX` ด้วย Device API token จริงของคุณ |

##### เนื้อหาของคำขอ

| ชื่อ | ประเภท | คำอธิบาย |
| --------------------------------------------- | ------- | --------------------------------------------------- |
| application\* | string | [รหัสแอปพลิเคชัน Pushwoosh](/th/developer/api-reference/api-identifiers/#application-code) |
| hwid\* | string | [Hardware device ID](/th/developer/api-reference/api-identifiers/#hardware-id) ที่ใช้ในคำขอ /registerDevice |
| badge\* | integer | badge ปัจจุบันบนแอปพลิเคชัน |

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

```json title="ตัวอย่าง"
{
  "request":{
    "application": "XXXXX-XXXXX",               // required. Pushwoosh application code
    "hwid": "8f65b16dXXXXe7a6XXXX9614XXXX0fb2", // required. Hardware device ID used in /registerDevice API
    "badge": 4                                  // required. Current badge on the application
  }
}
```

เรียกใช้จาก SDK ภายใน ส่งค่า badge ปัจจุบันสำหรับอุปกรณ์ไปยัง Pushwoosh ซึ่งจะเกิดขึ้นภายในเมื่อแอปเปลี่ยนค่า badge บนอุปกรณ์ iOS ช่วยให้การเพิ่มค่า badge อัตโนมัติทำงานได้อย่างถูกต้อง

<Aside type="caution">
เมธอดนี้**ไม่ได้**ใช้เพื่ออัปเดตค่า badge บนอุปกรณ์ แต่โปรดใช้คำขอ [`/createMessage`](/th/developer/api-reference/messages-api/#createmessage) พร้อมพารามิเตอร์ `"ios_badges"`
</Aside>



## applicationOpen

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

ลงทะเบียนอีเวนต์การเปิดแอป เรียกใช้ภายในจาก SDK

##### ส่วนหัวของคำขอ

| ชื่อ | จำเป็น | ค่า | คำอธิบาย |
|---------------|----------|---------------|------------------------------------------------------------|
| Authorization | ใช่ | Token `XXXX` | [API Device Token](/th/developer/api-reference/api-access-token/#device-api-token) เพื่อเข้าถึง Device API แทนที่ `XXXX` ด้วย Device API token จริงของคุณ |

##### เนื้อหาของคำขอ

| ชื่อ | ประเภท | คำอธิบาย |
| --------------------------------------------- | ------ | --------------------------------------------------- |
| application\* | string | [รหัสแอปพลิเคชัน Pushwoosh](/th/developer/api-reference/api-identifiers/#application-code) |
| hwid\* | string | [Hardware device ID](/th/developer/api-reference/api-identifiers/#hardware-id) ที่ใช้ในคำขอ `/registerDevice` |

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

```json title="ตัวอย่าง"
{
  "request": {
    "application": "XXXXX-XXXXX",              // required. Pushwoosh application code
    "hwid": "8f65b16dXXXXe7a6XXXX9614eXXXXfb2" // required. Hardware device ID used in /registerDevice API    
  }
}
```



## pushStat

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

ลงทะเบียนอีเวนต์การเปิด push เรียกใช้ภายในจาก SDK

##### ส่วนหัวของคำขอ

| ชื่อ | จำเป็น | ค่า | คำอธิบาย |
|---------------|----------|---------------|------------------------------------------------------------|
| Authorization | ใช่ | Token `XXXX` | [API Device Token](/th/developer/api-reference/api-access-token/#device-api-token) เพื่อเข้าถึง Device API แทนที่ `XXXX` ด้วย Device API token จริงของคุณ |
##### เนื้อหาของคำขอ

| ชื่อ | ประเภท | คำอธิบาย |
| --------------------------------------------- | ------ | --------------------------------------------------------------------------- |
| application\* | string | [รหัสแอปพลิเคชัน Pushwoosh](/th/developer/api-reference/api-identifiers/#application-code) |
| hwid\* | string | [Hardware device ID](/th/developer/api-reference/api-identifiers/#hardware-id) ที่ใช้ในคำขอ /registerDevice |
| userId | string | [User ID](/th/developer/api-reference/api-identifiers/#user-id) ที่จะเชื่อมโยงกับอีเวนต์การเปิด push |
| hash | string | แท็กแฮชที่ได้รับในการแจ้งเตือนแบบพุช (พารามิเตอร์ "p" ของเพย์โหลดพุช) |

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

```json title="ตัวอย่าง"
{
  "request": {
    "application": "XXXXX-XXXXX",               // required. Pushwoosh application code
    "hwid": "8f65b16dfXXXX7a6beXXXX14e1530fb2", // required. Hardware device ID used in /registerDevice API 
    "userId": "USER012345",                     // optional. The user id to associate with the push open event 
    "hash": "HASH_TAG"                          // optional. Hash tag received in push notification
                                                //           ("p" parameter in the push payload)
  }
}
```


## messageDeliveryEvent

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

ลงทะเบียนอีเวนต์การส่ง push สำหรับอุปกรณ์ เรียกใช้ภายในจาก SDK

##### ส่วนหัวของคำขอ

| ชื่อ | จำเป็น | ค่า | คำอธิบาย |
|---------------|----------|---------------|------------------------------------------------------------|
| Authorization | ใช่ | Token `XXXX` | [API Device Token](/th/developer/api-reference/api-access-token/#device-api-token) เพื่อเข้าถึง Device API แทนที่ `XXXX` ด้วย Device API token จริงของคุณ |

##### เนื้อหาของคำขอ

| ชื่อ | ประเภท | คำอธิบาย |
| --------------------------------------------- | ------ | --------------------------------------------------------------------------- |
| application\* | string | [รหัสแอปพลิเคชัน Pushwoosh](/th/developer/api-reference/api-identifiers/#application-code) |
| hwid\* | string | [Hardware device ID](/th/developer/api-reference/api-identifiers/#hardware-id) ที่ใช้ในคำขอ `/registerDevice` |
| hash | string | แท็กแฮชที่ได้รับในการแจ้งเตือนแบบพุช (พารามิเตอร์ "p" ของเพย์โหลดพุช) |

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

```json title="ตัวอย่าง"
 {
  "request": {
    "application": "XXXXX-XXXXX",               // required. Pushwoosh application code
    "hwid": "8f65b16dfXXXX7a6bece9XXXX1530fb2", // required. Hardware device ID used in /registerDevice API
    "hash": "HASH_TAG"                          // optional. Hash tag received in push notification
                                                //           ("p" parameter in the push payload)
  }
}
```