> For the complete documentation index, see [llms.txt](https://docs.ggwp.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ggwp.com/kr/webhooks/api.md).

# 구독 API

\[ 기본 URL: `api.ggwp.com` ]

## **인증**

다음을 참조하십시오 [여기 섹션](/kr/api/standard-package.md#authentication) 인증을 위해.

## **새 버전 v1.1**

새 버전이 `1.1` 작은 변경사항과 함께 출시되었습니다.

변경 로그:

* 새로운 웹후크 이벤트 구독은 기본적으로 `1.1` 버전
* 웹후크 URL로 전송되는 이벤트는 공백 없이 문자열 형식의 페이로드를 가집니다
* 참고: 버전 `1.0` 에 대한 지원은 계속됩니다. 이 버전은 [페이로드 검증](/kr/webhooks/receiving-events.md#request-validation).

## **API**

### **1. 이벤트 구독**

`POST` /webhook/v1/subscriptions

이 API는 고객을 GGWP 플랫폼에서 생성된 이벤트에 구독시킵니다.

**매개변수**

* **url:** 이벤트 발생 시 호출을 받을 URL
* **enabled:** 부울 `true` 또는 `false` 웹후크를 활성화 상태로 둘지 여부를 나타냅니다. 전달되지 않으면 기본값은 `true` 입니다.
* **event\_type:** 구독할 이벤트 유형, [웹훅 이벤트](/kr/webhooks/webhook-events.md)
* **버전:** 페이로드 버전을 나타냅니다. 기본값은 `1.1` 입니다.
* (선택 사항) **headers:** 헤더 이름과 값을 나타내는 키-값 쌍입니다.
  * 헤더 이름은 문자, 숫자 및 하이픈만 포함해야 합니다.
  * 헤더 이름은 최대 256자까지, 값은 최대 1024자까지 가능해야 합니다.
  * 다음 헤더는 예약되어 있어 허용되지 않습니다
    * `content-type`
    * `x-ggwp-hmac-sha256`
    * `host`
    * `content-length`
    * `connection`
    * `transfer-encoding`
    * `expect`

예시:

{% code overflow="wrap" %}

```json
{
	"url": "https://example.com/customerapi",
	"enabled": true,
	"event_type": "player-sanctioned",
	"version": "1.1",
	"headers": {
	    "Authorization": "Bearer <JWT_TOKEN>"
	}
}
```

{% endcode %}

**출력**

* 201

{% code overflow="wrap" %}

```json
{
	"id": "85537238-1053-4057-877e-131838c789d8",
	"url": "https://example.com/customerapi",
	"enabled": true,
	"event_type": "player-sanctioned",
	"version": "1.1",
	"headers": {
	    "Authorization": "Bearer <JWT_TOKEN>"
	},
	"created_at": "2024-02-27T17:02:39",
	"updated_at": "2024-02-27T17:02:39",
	"secret_key": "xxxxxxxxxxxxxx"
}
```

{% endcode %}

이 `secret_key` 이 요청에서 반환된 값은 고객 측에 저장되어야 합니다. 각 구독은 고유한 `secret_key`을 갖습니다. 이는 해당 URL이 합법적인 당사자(이 경우 GGWP)에 의해 호출되고 있는지 검증하는 데 사용됩니다. 자세한 내용은 [이벤트 수신](/kr/webhooks/receiving-events.md) 섹션에서 논의됩니다.

* 400
  * 다음 필드 중 하나라도 누락된 경우: `url`, `event_type`
  * 에 잘못된 URL이 전송되었습니다 `url` 매개변수
  * 잘못된 `event_type` 이(가) 전송되었습니다
  * 잘못된 `버전` 이(가) 전송되었습니다
  * 에 대한 잘못된 값 `enabled` 이(가) 전송되었습니다
  * 에 대한 잘못된 값 `헤더` 이(가) 전송되었습니다
* 403
  * 잘못되었거나 누락된 API 키
* 500

  * 서버 측에서 문제가 발생했습니다. 요청은 몇 분 후에 다시 시도할 수 있습니다. 문제가 지속되면 귀하의 GGWP 계정 관리자에게 문의하십시오.

### 2. 모든 구독 나열

`GET` /webhook/v1/subscriptions

이 API는 고객이 구독한 모든 웹후크를 나열합니다. 다만 `secret_key` 은(는) 반환하지 않습니다. 비밀 키를 가져오기 위한 API 호출을 확인하려면 아래 목록을 보십시오.

**출력**

* 200

{% code overflow="wrap" %}

```json
[
	{
		"id": "85537238-1053-4057-877e-131838c789d8",
		"url": "https://example.com/customerapi",
		"enabled": true,
		"event_type": "player-sanctioned",
		"version": "1.1",
		"headers": {
		    "Authorization": "Bearer <JWT_TOKEN>"
		},
		"created_at": "2024-02-27T16:16:25",
		"updated_at": "2024-02-27T16:16:25"
	},
	{
		"id": "de48a6a4-8bb6-470e-9990-2fd83f3ccbb5",
		"url": "https://example.com/customerapi",
		"enabled": true,
		"event_type": "player-reinstated",
		"version": "1.1",
		"headers": {},
		"created_at": "2024-02-27T16:16:25",
		"updated_at": "2024-02-27T16:16:25"
	},
	...
]
```

{% endcode %}

* 403
  * 잘못되었거나 누락된 API 키

### 3. 구독 업데이트

`PATCH` /webhook/v1/subscriptions/:id

웹후크 구독 속성을 업데이트합니다.&#x20;

**매개변수**

* **id:** 경로 매개변수로 전송됩니다. 수정할 이벤트 구독의 ID입니다.
* **event\_type:** 이벤트 유형을 목록의 다른 이벤트로 업데이트하십시오 [여기](/kr/webhooks/webhook-events.md)
* **url:** 이벤트 발생 시 호출을 받을 URL을 업데이트하십시오
* **enabled:** 다음을 전송하여 구독을 활성화 또는 비활성화하십시오 `true` 또는 `false`
* **버전:** 구독 서비스의 버전을 변경하십시오.
* (선택 사항) **headers:** 헤더 이름과 값을 나타내는 키-값 쌍입니다.

예시:

{% code overflow="wrap" %}

```json
{
	"event_type": "player-sanctioned",
	"url": "https://example.com/customerapi",
	"enabled": true,
	"version": "1.1",
	"headers": {
	    "Authorization": "Bearer <JWT_TOKEN>"
	}
}
```

{% endcode %}

**출력**

* 200

{% code overflow="wrap" %}

```json
{
	"id": "85537238-1053-4057-877e-131838c789d8",
	"url": "https://example.com/customerapi",
	"enabled": true,
	"event_type": "player-sanctioned",
	"version": "1.1",
	"headers": {
	    "Authorization": "Bearer <JWT_TOKEN>"
	},
	"created_at": "2024-02-27T16:16:25",
	"updated_at": "2024-02-27T16:16:25"
}
```

{% endcode %}

* 400
  * 잘못된 `event_type` 이(가) 전송되었습니다
  * 잘못된 `버전` 이(가) 전송되었습니다
  * 에 대한 잘못된 값 `enabled` 이(가) 전송되었습니다
  * 에 대한 잘못된 값 `헤더` 이(가) 전송되었습니다
* 403
  * 잘못되었거나 누락된 API 키
* 500

  * 서버 측에서 문제가 발생했습니다. 요청은 몇 분 후에 다시 시도할 수 있습니다. 문제가 지속되면 귀하의 GGWP 계정 관리자에게 문의하십시오.

### **4. 구독 삭제**

`DELETE` /webhook/v1/subscriptions/:id

주어진 ID로 구독을 삭제합니다.

**매개변수**

* **id:** 경로 매개변수로 전송됩니다. 삭제할 이벤트 구독의 ID입니다.

**출력**

* 200

{% code overflow="wrap" %}

```json
{"success": true}
```

{% endcode %}

* 403
  * 잘못되었거나 누락된 API 키
* 404
  * 구독을 찾을 수 없음
* 500

  * 서버 측에서 문제가 발생했습니다. 요청은 몇 분 후에 다시 시도할 수 있습니다. 문제가 지속되면 귀하의 GGWP 계정 관리자에게 문의하십시오.

### **5. 시크릿 교체**

`POST` /webhook/v1/subscriptions/:id/secret

구독 시크릿 키를 교체합니다. API 호출이 성공하면 시크릿 키는 즉시 업데이트됩니다.

**매개변수**

* **id:** 경로 매개변수로 전송됩니다. 키를 교체할 구독의 ID입니다

**출력**

* 200

{% code overflow="wrap" %}

```json
{
	"secret_key": "yyyyyyyyyyyyyy"
}
```

{% endcode %}

* 403
  * 잘못되었거나 누락된 API 키
* 500

  * 서버 측에서 문제가 발생했습니다. 요청은 몇 분 후에 다시 시도할 수 있습니다. 문제가 지속되면 귀하의 GGWP 계정 관리자에게 문의하십시오.

### **6. 시크릿 가져오기**

`GET` /webhook/v1/subscriptions/:id/secret

주어진 구독의 시크릿 키를 반환합니다 `id`

**매개변수**

* **id:** 경로 매개변수로 전송됩니다. 시크릿 키가 요청된 구독의 ID입니다

**출력**

* 200

{% code overflow="wrap" %}

```json
{
	"secret_key": "yyyyyyyyyyyyyy"
}
```

{% endcode %}

* 403
  * 잘못되었거나 누락된 API 키
