> 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/jp/webhook/sabusukuripushonapi.md).

# サブスクリプションAPI

\[ ベース URL: `api.ggwp.com` ]

## **認証**

については [こちらのセクション](/jp/apidokyumento-chat/pakkji.md#authentication) を参照してください。

## **新バージョン v1.1**

新しいバージョン `1.1` が、軽微な変更を加えてリリースされました。

変更履歴：

* 新しい webhook イベントのサブスクリプションは既定で `1.1` バージョン
* webhook URL に送信されるイベントでは、ペイロードは空白なしの文字列形式になります
* 注意：バージョン `1.0` のサポートは継続されます。このバージョンでは、HMAC を計算する際にペイロード内の空白を追加で除去する必要があります。 [ペイロード検証](/jp/webhook/ibentono.md#request-validation).

## **API**

### **1. イベントを購読する**

`POST` /webhook/v1/subscriptions

この API は、GGWP プラットフォームで生成されたイベントに顧客を購読登録します。

**パラメータ**

* **URL：** イベント発生時に呼び出しを受け取るURL
* **有効：** ブール値 `true` または `false` webhook を有効状態にするかを示します。既定値は `true` 未指定の場合。
* **event\_type：** 購読するイベントタイプ。下記の [Webhookイベント](/jp/webhook/webhookibento.md)
* **バージョン：** ペイロードのバージョンを示します。既定値は `1.1` 未指定の場合。
* （任意） **ヘッダー：** ヘッダー名と値を表すキーと値のペア。
  * ヘッダー名には英字、数字、ハイフンのみを使用できます。
  * ヘッダー名は最大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 から呼び出されているかを検証するために使用されます。詳細は [イベントの受信](/jp/webhook/ibentono.md) セクションで説明しています。

* 400
  * これらのフィールドのいずれかが欠落している場合： `url`, `event_type`
  * 不正な形式のURLが送信されました `url` パラメータ
  * 無効な `event_type` が送信されます
  * 無効な `バージョン` が送信されます
  * 次の無効な値 `enabled` が送信されます
  * 次の無効な値 `ヘッダー` が送信されます
* 403
  * 無効な API キー、または API キーがありません
* 500

  * サーバー側で問題が発生しました。数分後に再試行できます。問題が続く場合は、GGWP のアカウントマネージャーにお問い合わせください。

### 2. すべてのサブスクリプションを一覧表示する

`GET` /webhook/v1/subscriptions

この API は、顧客が購読しているすべての webhook を一覧表示します。ただし、次のものは返しません。 `secret_key` ただし、秘密鍵を取得するには、以下の一覧で API の GET を確認してください。

**出力**

* 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 キー、または API キーがありません

### 3. サブスクリプションを更新する

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

webhook サブスクリプションの属性を更新します。&#x20;

**パラメータ**

* **id：** パスパラメータとして送信されます。これは、変更対象のイベントサブスクリプションの ID です。
* **event\_type：** イベントタイプを一覧から別のイベントに更新する [こちら](/jp/webhook/webhookibento.md)
* **URL：** イベント発生時に呼び出しを受け取るURLを更新する
* **有効：** 送信することでサブスクリプションを有効または無効にします `true` または `false`
* **バージョン：** サブスクリプションサービスのバージョンを変更します。
* （任意） **ヘッダー：** ヘッダー名と値を表すキーと値のペア。

例：

{% 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 キー、または API キーがありません
* 500

  * サーバー側で問題が発生しました。数分後に再試行できます。問題が続く場合は、GGWP のアカウントマネージャーにお問い合わせください。

### **4. サブスクリプションを削除する**

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

指定された ID のサブスクリプションを削除します。

**パラメータ**

* **id：** パスパラメータとして送信されます。これは、削除対象のイベントサブスクリプションの ID です。

**出力**

* 200

{% code overflow="wrap" %}

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

{% endcode %}

* 403
  * 無効な API キー、または 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 キー、または API キーがありません
* 500

  * サーバー側で問題が発生しました。数分後に再試行できます。問題が続く場合は、GGWP のアカウントマネージャーにお問い合わせください。

### **6. シークレットを取得**

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

指定されたサブスクリプションのシークレットキーを返します `id`

**パラメータ**

* **id：** パスパラメータとして送信されます。これは、シークレットキーを要求する対象のサブスクリプションの ID です

**出力**

* 200

{% code overflow="wrap" %}

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

{% endcode %}

* 403
  * 無効な API キー、または API キーがありません
