# เปลี่ยน signing secret

Source: https://checkslip.com/docs/rotate-endpoint-secret

POST `https://api.checkslip.com/api/webhooks/endpoints/{endpoint_id}/secret/rotate`

ใช้ API key

ออก secret ใหม่และแสดงครั้งเดียวในคำตอบนี้ · secret เดิมยังใช้ได้อีก 24 ชั่วโมง (ดูเวลาที่ previous_secret_expires_at) ระหว่างนั้นทุกข้อความมีลายเซ็นทั้ง 2 ชุดใน header webhook-signature คั่นด้วยช่องว่าง ติดตั้ง secret ใหม่ในระบบของคุณภายในเวลานั้นแล้วจะไม่พลาดข้อความ · เปลี่ยนซ้ำภายใน 24 ชั่วโมงนั้นไม่ได้ (ROTATION_IN_PROGRESS) · ต้องส่ง header Idempotency-Key · เจ้าของบัญชีได้รับอีเมลแจ้ง โดยไม่มีค่า secret ในอีเมล · ใช้ API key ที่มีสิทธิ์ webhook:manage

## Parameters

| ฟิลด์ | ส่งทาง | ชนิด | จำเป็น |
| --- | --- | --- | --- |
| `endpoint_id` | path | `string` | ใช่ |
| `traceparent` | header | `string` | ไม่ |
| `Idempotency-Key` | header | `string` | ใช่ |

## Responses

### 200 `application/json`

| ฟิลด์ | ชนิด | จำเป็น |
| --- | --- | --- |
| `secret` | `string` | ใช่ |
| `previous_secret_expires_at` | `string (date-time)` | ใช่ |

### Error ที่อาจได้

400 401 403 404 409 422

error ในรูป Problem Details ดูรหัสทั้งหมดที่ [รหัสข้อผิดพลาด](https://checkslip.com/docs/errors)

**cURL**

```bash
curl -X POST https://api.checkslip.com/api/webhooks/endpoints/string/secret/rotate \
  -H "Authorization: Bearer $CHECKSLIP_API_KEY" \
  -H "Idempotency-Key: order-1042-slip-1"
```

**Node.js**

```javascript
const res = await fetch("https://api.checkslip.com/api/webhooks/endpoints/string/secret/rotate", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.CHECKSLIP_API_KEY}`,
    "Idempotency-Key": "order-1042-slip-1",
  },
});
const data = await res.json();
```

**Python**

```python
import os

import requests

res = requests.post(
    "https://api.checkslip.com/api/webhooks/endpoints/string/secret/rotate",
    headers={
        "Authorization": f"Bearer {os.environ['CHECKSLIP_API_KEY']}",
        "Idempotency-Key": "order-1042-slip-1",
    },
)
data = res.json()
```

```json
{
  "secret": "string",
  "previous_secret_expires_at": "2026-11-05T09:30:00+07:00"
}
```
