diff --git a/docs/README.md b/docs/README.md
index 65d5ba9..0060922 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -1,17 +1,18 @@
-# Partner API SDK for NodeJS
+# Partner API SDK for Python
 ## Installation
 
-npmからインストールすることができます。
+pipからインストールすることができます。
 ```
-$ npm install --save pokepay-partner-sdk
+$ gem install pokepay_partner_python_sdk
+
+# ローカルからインストールする場合
+$ gem install -e /path/to/pokepay_partner_python_sdk
 ```
 
-プロジェクトにて、以下のようにロードできます。
+ロードパスの通ったところにライブラリが配置されていれば、以下のようにロードできます。
 
-```typescript
-import ppsdk from "pokepay-partner-sdk";
-// もしくは
-import { Client, SendEcho } from "pokepay-partner-sdk";
+```python
+import pokepay
 ```
 
 ## Getting started
@@ -23,14 +24,27 @@ import { Client, SendEcho } from "pokepay-partner-sdk";
 - リクエストオブジェクトを作り、`Client` オブジェクトの `send` メソッドに対して渡す
 - レスポンスオブジェクトを得る
 
-```typescript
-import { Client, SendEcho } from "pokepay-partner-sdk";
-const client = new Client("/path/to/config.ini");
-const request = new SendEcho({ message: 'hello' });
-const response = await client.send(request);
+```python
+import pokepay
+from pokepay.client import Client
+
+c = Client('/path/to/config.ini')
+req = pokepay.SendEcho('Hello, world!')
+res = c.send(req)
 ```
 
-レスポンスオブジェクト内にステータスコード、JSONをパースしたハッシュマップ、さらにレスポンス内容のオブジェクトが含まれています。
+レスポンスオブジェクト内にステータスコード、レスポンスのJSONをパースした辞書オブジェクト、実行時間などが含まれています。
+
+```python
+res.status_code
+# => 200
+
+res.body
+# => {'status': 'ok', 'message': 'Hello, world!'}
+
+res.elapsed.microseconds
+# => 800750
+```
 
 ## Settings
 
@@ -49,126 +63,26 @@ SDKプロジェクトルートに `config.ini.sample` というファイルが
 
 また、この設定ファイルには認証に必要な情報が含まれるため、ファイルの管理・取り扱いに十分注意してください。
 
+さらに、オプショナルでタイムゾーン、タイムアウト時間を設定できます。
+
+- `TIMEZONE`: タイムゾーンID。デフォルト値は`Asia/Tokyo`
+- `CONNECTTIMEOUT`: 接続タイムアウト時間(秒)。デフォルトは5秒
+- `TIMEOUT`: 読み込みタイムアウト時間(秒)。デフォルトは5秒
+
 設定ファイル記述例(`config.ini.sample`)
 
 ```
+[global]
+
 CLIENT_ID        = xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
 CLIENT_SECRET    = yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
 API_BASE_URL     = https://partnerapi-sandbox.pokepay.jp
 SSL_KEY_FILE     = /path/to/key.pem
 SSL_CERT_FILE    = /path/to/cert.pem
-```
-
-## Overview
-
-### APIリクエスト
-
-Partner APIへの通信はリクエストオブジェクトを作り、`Client.send` メソッドに渡すことで行われます。
-また `Client.send` は `async function` で `Promise` を返します。`await` することができます。
-たとえば `SendEcho` は送信した内容をそのまま返す処理です。
-
-```typescript
-const request = new SendEcho({ message: 'hello' });
-const response = await client.send(request);
-# => Response 200 OK
-```
-
-通信の結果として、レスポンスオブジェクトが得られます。  
-これはステータスコードとレスポンスボディ、各レスポンスクラスのオブジェクトをインスタンス変数に持つオブジェクトです。
-
-```typescript
-response.code
-# => 200
 
-response.body
-# => {
-  response_data: 'T7hZYdaXYRC0oC8oRrowte89690bYL3Ly05V-IiSzTCslQG-TH0e1i9QYNTySwVS9hiTD6u2---xojelG-66rA',
-  timestamp: '2021-07-20T02:03:07.835Z',
-  partner_call_id: '7cd52e4a-b9a2-48e4-b921-80dcbc6b7f4c'
-}
-
-response.object
-# => { status: 'ok', message: 'hello' }
-
-response.object.message
-# => 'hello'
-```
-
-利用可能なAPI操作については [API Operations](#api-operations) で紹介します。
-
-<a name="paging"></a>
-### ページング
-
-API操作によっては、大量のデータがある場合に備えてページング処理があります。
-その処理では以下のようなプロパティを持つレスポンスオブジェクトを返します。
-
-- rows : 列挙するレスポンスクラスのオブジェクトの配列
-- count : 全体の要素数
-- pagination : 以下のインスタンス変数を持つオブジェクト
-  - current : 現在のページ位置(1からスタート)
-  - per_page : 1ページ当たりの要素数
-  - max_page : 最後のページ番号
-  - has_prev : 前ページを持つかどうかの真理値
-  - has_next : 次ページを持つかどうかの真理値
-
-ページングクラスは `Pagination` で定義されています。
-
-以下にコード例を示します。
-
-```typescript
-const request = new ListTransactions({ "page": 1, "per_page": 50 });
-const response = await client.send(request);
-
-if (response.object.pagination.has_next) {
-  const next_page = response.object.pagination.current + 1;
-  const request = new ListTransactions({ "page": next_page, "per_page": 50 });
-  const response = await client.send(request);
-}
-```
-
-### エラーハンドリング
-
-JavaScript をご使用の場合、必須パラメーターがチェックされます。
-TypeScript は型通りにお使いいただけます。
-
-```javascript
-const request = new SendEcho({});
-=> Error: "message" is required;
-```
-
-API呼び出し時のエラーの場合は `axios` ライブラリのエラーが `throw` されます。
-エラーレスポンスもステータスコードとレスポンスボディを持ちます。
-参考: [axios handling errors](https://github.com/axios/axios#handling-errors)
-
-```typescript
-const axios = require('axios');
-
-const request = SendEcho.new({ message: "hello" });
-
-try {
-  const response = await client.send(request);
-} catch (error) {
-  if (axios.isAxiosError(error)) {
-    if (error.response) {
-      // The request was made and the server responded with a status code
-      // that falls out of the range of 2xx
-      // APIサーバーがエラーレスポンス (2xx 以外) を返した場合
-      console.log(error.response.data);
-      console.log(error.response.status);
-      console.log(error.response.headers);
-    } else if (error.request) {
-      // The request was made but no response was received
-      // `error.request` is an instance of http.ClientRequest
-      // リクエストは作られたが、レスポンスが受け取れなかった場合
-      // `error.request` に `http.ClientRequest` が入ります
-      console.log(error.request);
-    } else {
-      // Something happened in setting up the request that triggered an Error
-      // リクエストを作る際に何かが起こった場合
-      console.log('Error', error.message);
-    }
-  }
-}
+TIMEZONE         = Asia/Tokyo
+CONNECTTIMEOUT   = 10
+TIMEOUT          = 10
 ```
 <a name="api-operations"></a>
 ## API Operations
@@ -177,7 +91,10 @@ try {
 - [GetCpmToken](./transaction.md#get-cpm-token): CPMトークンの状態取得
 - [ListTransactions](./transaction.md#list-transactions): 【廃止】取引履歴を取得する
 - [CreateTransaction](./transaction.md#create-transaction): 【廃止】チャージする
+- [CreateTransactionGroup](./transaction.md#create-transaction-group): トランザクショングループを作成する
+- [ShowTransactionGroup](./transaction.md#show-transaction-group): トランザクショングループを取得する
 - [ListTransactionsV2](./transaction.md#list-transactions-v2): 取引履歴を取得する
+- [ListBillTransactions](./transaction.md#list-bill-transactions): 支払い取引履歴を取得する
 - [CreateTopupTransaction](./transaction.md#create-topup-transaction): チャージする
 - [CreatePaymentTransaction](./transaction.md#create-payment-transaction): 支払いする
 - [CreateCpmTransaction](./transaction.md#create-cpm-transaction): CPMトークンによる取引作成
@@ -189,6 +106,7 @@ try {
 - [GetBulkTransaction](./transaction.md#get-bulk-transaction): バルク取引ジョブの実行状況を取得する
 - [ListBulkTransactionJobs](./transaction.md#list-bulk-transaction-jobs): バルク取引ジョブの詳細情報一覧を取得する
 - [RequestUserStats](./transaction.md#request-user-stats): 指定期間内の顧客が行った取引の統計情報をCSVでダウンロードする
+- [TerminateUserStats](./transaction.md#terminate-user-stats): RequestUserStatsのタスクを強制終了する
 
 ### Transfer
 - [GetAccountTransferSummary](./transfer.md#get-account-transfer-summary): 
@@ -205,9 +123,12 @@ try {
 ### Bill
 - [ListBills](./bill.md#list-bills): 支払いQRコード一覧を表示する
 - [CreateBill](./bill.md#create-bill): 支払いQRコードの発行
+- [GetBill](./bill.md#get-bill): 支払いQRコードの表示
 - [UpdateBill](./bill.md#update-bill): 支払いQRコードの更新
+- [CreatePaymentTransactionWithBill](./bill.md#create-payment-transaction-with-bill): 支払いQRコードを読み取ることで支払いをする
 
 ### Cashtray
+- [CreateTransactionWithCashtray](./cashtray.md#create-transaction-with-cashtray): CashtrayQRコードを読み取ることで取引する
 - [CreateCashtray](./cashtray.md#create-cashtray): Cashtrayを作る
 - [CancelCashtray](./cashtray.md#cancel-cashtray): Cashtrayを無効化する
 - [GetCashtray](./cashtray.md#get-cashtray): Cashtrayの情報を取得する
@@ -223,8 +144,14 @@ try {
 - [GetCustomerAccounts](./customer.md#get-customer-accounts): エンドユーザーのウォレット一覧を表示する
 - [CreateCustomerAccount](./customer.md#create-customer-account): 新規エンドユーザーをウォレットと共に追加する
 - [GetShopAccounts](./customer.md#get-shop-accounts): 店舗ユーザーのウォレット一覧を表示する
+- [GetCustomerCards](./customer.md#get-customer-cards): エンドユーザーのクレジットカード一覧を取得する
 - [ListCustomerTransactions](./customer.md#list-customer-transactions): 取引履歴を取得する
 
+### CreditSession
+- [PostCreditSession](./credit_session.md#post-credit-session): Create credit session
+- [CreateCreditSessionTransaction](./credit_session.md#create-credit-session-transaction): Create transaction with credit session
+- [CaptureCreditSession](./credit_session.md#capture-credit-session): Capture credit session
+
 ### Organization
 - [ListOrganizations](./organization.md#list-organizations): 加盟店組織の一覧を取得する
 - [CreateOrganization](./organization.md#create-organization): 新規加盟店組織を追加する
@@ -237,7 +164,6 @@ try {
 - [UpdateShop](./shop.md#update-shop): 店舗情報を更新する
 
 ### User
-- [GetUser](./user.md#get-user): 
 
 ### Account
 - [ListUserAccounts](./account.md#list-user-accounts): エンドユーザー、店舗ユーザーのウォレット一覧を表示する
@@ -280,7 +206,11 @@ try {
 - [ActivateUserDevice](./user_device.md#activate-user-device): デバイスの有効化
 
 ### BankPay
+- [DeleteBank](./bank_pay.md#delete-bank): 銀行口座の削除
 - [ListBanks](./bank_pay.md#list-banks): 登録した銀行の一覧
 - [CreateBank](./bank_pay.md#create-bank): 銀行口座の登録
 - [CreateBankTopupTransaction](./bank_pay.md#create-bank-topup-transaction): 銀行からのチャージ
 
+### SevenBankATMSession
+- [GetSevenBankATMSession](./seven_bank_atm_session.md#get-seven-bank-atm-session): セブン銀行ATMセッションの取得
+
diff --git a/docs/account.md b/docs/account.md
index e70274f..0ae1784 100644
--- a/docs/account.md
+++ b/docs/account.md
@@ -1,27 +1,35 @@
 # Account
+ウォレットを表すデータです。
+CustomerもMerchantも所有し、ウォレット間の送金は取引として記録されます。
+Customerのウォレットはマネー残高(有償バリュー)、ポイント残高(無償バリュー)の2種類の残高をもちます。
+また有効期限別で金額管理しており、有効期限はチャージ時のコンテキストによって決定されます。
+ユーザはマネー別に複数のウォレットを保有することが可能です。
+ただし１マネー１ウォレットのみであり、同一マネーのウォレットを複数所有することはできません。
+
 
 <a name="list-user-accounts"></a>
 ## ListUserAccounts: エンドユーザー、店舗ユーザーのウォレット一覧を表示する
 ユーザーIDを指定してそのユーザーのウォレット一覧を取得します。
 
-```typescript
-const response: Response<PaginatedAccountDetails> = await client.send(new ListUserAccounts({
-  user_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // ユーザーID
-  page: 637, // ページ番号
-  per_page: 5874 // 1ページ分の取引数
-}));
+```PYTHON
+response = client.send(pp.ListUserAccounts(
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",               # user_id: ユーザーID
+                          page=3876,                                            # ページ番号
+                          per_page=5009                                         # 1ページ分の取引数
+))
 ```
 
 
 
 ### Parameters
-**`user_id`** 
-  
-
+#### `user_id`
 ユーザーIDです。
 
 指定したユーザーIDのウォレット一覧を取得します。パートナーキーと紐づく組織が発行しているマネーのウォレットのみが表示されます。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -29,11 +37,14 @@ const response: Response<PaginatedAccountDetails> = await client.send(new ListUs
 }
 ```
 
-**`page`** 
-  
+</details>
 
+#### `page`
 取得したいページ番号です。デフォルト値は1です。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "integer",
@@ -41,11 +52,14 @@ const response: Response<PaginatedAccountDetails> = await client.send(new ListUs
 }
 ```
 
-**`per_page`** 
-  
+</details>
 
+#### `per_page`
 1ページ当たりのウォレット数です。デフォルト値は50です。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "integer",
@@ -53,6 +67,8 @@ const response: Response<PaginatedAccountDetails> = await client.send(new ListUs
 }
 ```
 
+</details>
+
 
 
 成功したときは
@@ -68,24 +84,25 @@ const response: Response<PaginatedAccountDetails> = await client.send(new ListUs
 ## CreateUserAccount: エンドユーザーのウォレットを作成する
 既存のエンドユーザーに対して、指定したマネーのウォレットを新規作成します
 
-```typescript
-const response: Response<AccountDetail> = await client.send(new CreateUserAccount({
-  user_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // ユーザーID
-  private_money_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // マネーID
-  name: "IP", // ウォレット名
-  external_id: "oWhsZ81p0D8THD4dpuhxNvhxjPfdLCM", // 外部ID
-  metadata: "{\"key1\":\"foo\",\"key2\":\"bar\"}" // ウォレットに付加するメタデータ
-}));
+```PYTHON
+response = client.send(pp.CreateUserAccount(
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",               # user_id: ユーザーID
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",               # private_money_id: マネーID
+                          name="BkYzAxemZaK",                                   # ウォレット名
+                          external_id="wuUfekyaJIsuHhxZpopNYyv6dLAyty2EMgPVlahlWYdbEevp", # 外部ID
+                          metadata="{\"key1\":\"foo\",\"key2\":\"bar\"}"        # ウォレットに付加するメタデータ
+))
 ```
 
 
 
 ### Parameters
-**`user_id`** 
-  
-
+#### `user_id`
 ユーザーIDです。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -93,13 +110,16 @@ const response: Response<AccountDetail> = await client.send(new CreateUserAccoun
 }
 ```
 
-**`private_money_id`** 
-  
+</details>
 
+#### `private_money_id`
 マネーIDです。
 
 作成するウォレットのマネーを指定します。このパラメータは必須です。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -107,9 +127,12 @@ const response: Response<AccountDetail> = await client.send(new CreateUserAccoun
 }
 ```
 
-**`name`** 
-  
+</details>
+
+#### `name`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -118,9 +141,12 @@ const response: Response<AccountDetail> = await client.send(new CreateUserAccoun
 }
 ```
 
-**`external_id`** 
-  
+</details>
 
+#### `external_id`
+
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -129,15 +155,18 @@ const response: Response<AccountDetail> = await client.send(new CreateUserAccoun
 }
 ```
 
-**`metadata`** 
-  
+</details>
 
+#### `metadata`
 ウォレットに付加するメタデータをJSON文字列で指定します。
 指定できるJSON文字列には以下のような制約があります。
 - フラットな構造のJSONを文字列化したものであること。
 - keyは最大32文字の文字列(同じkeyを複数指定することはできません)
 - valueには128文字以下の文字列が指定できます
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -145,6 +174,8 @@ const response: Response<AccountDetail> = await client.send(new CreateUserAccoun
 }
 ```
 
+</details>
+
 
 
 成功したときは
diff --git a/docs/bank_pay.md b/docs/bank_pay.md
index 91c7d24..a4e5cbc 100644
--- a/docs/bank_pay.md
+++ b/docs/bank_pay.md
@@ -1,24 +1,77 @@
 # BankPay
 BankPayを用いた銀行からのチャージ取引などのAPIを提供しています。
 
+<a name="delete-bank"></a>
+## DeleteBank: 銀行口座の削除
+銀行口座を削除します
+
+```PYTHON
+response = client.send(pp.DeleteBank(
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",               # user_device_id: デバイスID
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
+))
+```
+
+
+
+### Parameters
+#### `user_device_id`
+
+<details>
+<summary>スキーマ</summary>
+
+```json
+{
+  "type": "string",
+  "format": "uuid"
+}
+```
+
+</details>
+
+#### `bank_id`
+
+<details>
+<summary>スキーマ</summary>
+
+```json
+{
+  "type": "string",
+  "format": "uuid"
+}
+```
+
+</details>
+
+
+
+成功したときは
+[BankDeleted](./responses.md#bank-deleted)
+を返します
+
+
+
+---
+
 
 <a name="list-banks"></a>
 ## ListBanks: 登録した銀行の一覧
 登録した銀行を一覧します
 
-```typescript
-const response: Response<Banks> = await client.send(new ListBanks({
-  user_device_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // デバイスID
-  private_money_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
-}));
+```PYTHON
+response = client.send(pp.ListBanks(
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",               # user_device_id: デバイスID
+                          private_money_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
+))
 ```
 
 
 
 ### Parameters
-**`user_device_id`** 
-  
+#### `user_device_id`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -27,9 +80,12 @@ const response: Response<Banks> = await client.send(new ListBanks({
 }
 ```
 
-**`private_money_id`** 
-  
+</details>
+
+#### `private_money_id`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -38,6 +94,8 @@ const response: Response<Banks> = await client.send(new ListBanks({
 }
 ```
 
+</details>
+
 
 
 成功したときは
@@ -56,24 +114,24 @@ const response: Response<Banks> = await client.send(new ListBanks({
 ユーザーが銀行口座の登録に成功すると、callback_urlにリクエストが行われます。
 アプリの場合はDeep Linkを使うことを想定しています。
 
-
-```typescript
-const response: Response<BankRegisteringInfo> = await client.send(new CreateBank({
-  user_device_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // デバイスID
-  private_money_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // マネーID
-  callback_url: "<Deep Link>", // コールバックURL
-  kana: "ポケペイタロウ", // ユーザーの氏名 (片仮名で指定)
-  email: "suth9pSzmq@VAxW.com", // ユーザーのメールアドレス
-  birthdate: "19901142" // 生年月日
-}));
+```PYTHON
+response = client.send(pp.CreateBank(
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",               # user_device_id: デバイスID
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",               # private_money_id: マネーID
+                          "<Deep Link>",                                        # callback_url: コールバックURL
+                          "ポケペイタロウ",                                            # kana: ユーザーの氏名 (片仮名で指定)
+                          email="sFDzTIAFGD@PhpB.com",                          # ユーザーのメールアドレス
+                          birthdate="19901142"                                  # 生年月日
+))
 ```
 
 
 
 ### Parameters
-**`user_device_id`** 
-  
+#### `user_device_id`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -82,9 +140,12 @@ const response: Response<BankRegisteringInfo> = await client.send(new CreateBank
 }
 ```
 
-**`private_money_id`** 
-  
+</details>
 
+#### `private_money_id`
+
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -93,9 +154,12 @@ const response: Response<BankRegisteringInfo> = await client.send(new CreateBank
 }
 ```
 
-**`callback_url`** 
-  
+</details>
+
+#### `callback_url`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -104,9 +168,12 @@ const response: Response<BankRegisteringInfo> = await client.send(new CreateBank
 }
 ```
 
-**`kana`** 
-  
+</details>
 
+#### `kana`
+
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -115,9 +182,12 @@ const response: Response<BankRegisteringInfo> = await client.send(new CreateBank
 }
 ```
 
-**`email`** 
-  
+</details>
+
+#### `email`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -127,9 +197,12 @@ const response: Response<BankRegisteringInfo> = await client.send(new CreateBank
 }
 ```
 
-**`birthdate`** 
-  
+</details>
 
+#### `birthdate`
+
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -138,6 +211,8 @@ const response: Response<BankRegisteringInfo> = await client.send(new CreateBank
 }
 ```
 
+</details>
+
 
 
 成功したときは
@@ -153,22 +228,24 @@ const response: Response<BankRegisteringInfo> = await client.send(new CreateBank
 ## CreateBankTopupTransaction: 銀行からのチャージ
 指定のマネーのアカウントにbank_idの口座を用いてチャージを行います。
 
-```typescript
-const response: Response<TransactionDetail> = await client.send(new CreateBankTopupTransaction({
-  user_device_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // デバイスID
-  private_money_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // マネーID
-  amount: 8244, // チャージ金額
-  bank_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // 銀行ID
-  request_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" // リクエストID
-}));
+```PYTHON
+response = client.send(pp.CreateBankTopupTransaction(
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",               # user_device_id: デバイスID
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",               # private_money_id: マネーID
+                          5538,                                                 # amount: チャージ金額
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",               # bank_id: 銀行ID
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",               # request_id: リクエストID
+                          receiver_user_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" # 受け取りユーザーID (デフォルトは自身)
+))
 ```
 
 
 
 ### Parameters
-**`user_device_id`** 
-  
+#### `user_device_id`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -177,9 +254,12 @@ const response: Response<TransactionDetail> = await client.send(new CreateBankTo
 }
 ```
 
-**`private_money_id`** 
-  
+</details>
+
+#### `private_money_id`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -188,9 +268,12 @@ const response: Response<TransactionDetail> = await client.send(new CreateBankTo
 }
 ```
 
-**`amount`** 
-  
+</details>
 
+#### `amount`
+
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -199,9 +282,26 @@ const response: Response<TransactionDetail> = await client.send(new CreateBankTo
 }
 ```
 
-**`bank_id`** 
-  
+</details>
+
+#### `bank_id`
+
+<details>
+<summary>スキーマ</summary>
+
+```json
+{
+  "type": "string",
+  "format": "uuid"
+}
+```
+
+</details>
 
+#### `receiver_user_id`
+
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -210,9 +310,12 @@ const response: Response<TransactionDetail> = await client.send(new CreateBankTo
 }
 ```
 
-**`request_id`** 
-  
+</details>
+
+#### `request_id`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -221,6 +324,8 @@ const response: Response<TransactionDetail> = await client.send(new CreateBankTo
 }
 ```
 
+</details>
+
 
 
 成功したときは
diff --git a/docs/bill.md b/docs/bill.md
index bb182ba..f79c087 100644
--- a/docs/bill.md
+++ b/docs/bill.md
@@ -1,36 +1,48 @@
 # Bill
-支払いQRコード
+支払いQRコード(トークン)を表すデータです。
+URL文字列のまま利用されるケースとQR画像化して利用されるケースがあります。
+ログイン済みユーザアプリで読込むことで、支払い取引を作成します。
+設定される支払い金額(amount)は、固定値とユーザによる自由入力の2パターンがあります。
+amountが空の場合は、ユーザによる自由入力で受け付けた金額で支払いを行います。
+有効期限は比較的長命で利用される事例が多いです。
+
+複数マネー対応支払いQRコードについて:
+オプショナルで複数のマネーを１つの支払いQRコードに設定可能です。
+その場合ユーザ側でどのマネーで支払うか指定可能です。
+複数マネー対応支払いQRコードにはデフォルトのマネーウォレットを設定する必要があり、ユーザがマネーを明示的に選択しなかった場合はデフォルトのマネーによる支払いになります。
+
 
 <a name="list-bills"></a>
 ## ListBills: 支払いQRコード一覧を表示する
 支払いQRコード一覧を表示します。
 
-```typescript
-const response: Response<PaginatedBills> = await client.send(new ListBills({
-  page: 6268, // ページ番号
-  per_page: 5896, // 1ページの表示数
-  bill_id: "Lw9", // 支払いQRコードのID
-  private_money_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // マネーID
-  organization_code: "PX", // 組織コード
-  description: "test bill", // 取引説明文
-  created_from: "2020-04-24T11:52:40.000000Z", // 作成日時(起点)
-  created_to: "2023-06-14T18:59:50.000000Z", // 作成日時(終点)
-  shop_name: "bill test shop1", // 店舗名
-  shop_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // 店舗ID
-  lower_limit_amount: 5836, // 金額の範囲によるフィルタ(下限)
-  upper_limit_amount: 6006, // 金額の範囲によるフィルタ(上限)
-  is_disabled: false // 支払いQRコードが無効化されているかどうか
-}));
+```PYTHON
+response = client.send(pp.ListBills(
+                          page=2050,                                            # ページ番号
+                          per_page=1915,                                        # 1ページの表示数
+                          bill_id="cyY8O4aW8",                                  # 支払いQRコードのID
+                          private_money_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", # マネーID
+                          organization_code="VE256za--m76DX-ze1-4y--dia-yaMgF", # 組織コード
+                          description="test bill",                              # 取引説明文
+                          created_from="2020-08-01T23:02:33.000000Z",           # 作成日時(起点)
+                          created_to="2024-10-28T21:10:42.000000Z",             # 作成日時(終点)
+                          shop_name="bill test shop1",                          # 店舗名
+                          shop_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",       # 店舗ID
+                          lower_limit_amount=981,                               # 金額の範囲によるフィルタ(下限)
+                          upper_limit_amount=5036,                              # 金額の範囲によるフィルタ(上限)
+                          is_disabled=True                                      # 支払いQRコードが無効化されているかどうか
+))
 ```
 
 
 
 ### Parameters
-**`page`** 
-  
-
+#### `page`
 取得したいページ番号です。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "integer",
@@ -38,11 +50,14 @@ const response: Response<PaginatedBills> = await client.send(new ListBills({
 }
 ```
 
-**`per_page`** 
-  
+</details>
 
+#### `per_page`
 1ページに表示する支払いQRコードの数です。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "integer",
@@ -50,22 +65,28 @@ const response: Response<PaginatedBills> = await client.send(new ListBills({
 }
 ```
 
-**`bill_id`** 
-  
+</details>
 
+#### `bill_id`
 支払いQRコードのIDを指定して検索します。IDは前方一致で検索されます。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string"
 }
 ```
 
-**`private_money_id`** 
-  
+</details>
 
+#### `private_money_id`
 支払いQRコードの送金元ウォレットのマネーIDでフィルターします。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -73,11 +94,14 @@ const response: Response<PaginatedBills> = await client.send(new ListBills({
 }
 ```
 
-**`organization_code`** 
-  
+</details>
 
+#### `organization_code`
 支払いQRコードの送金元店舗が所属する組織の組織コードでフィルターします。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -86,11 +110,14 @@ const response: Response<PaginatedBills> = await client.send(new ListBills({
 }
 ```
 
-**`description`** 
-  
+</details>
 
+#### `description`
 支払いQRコードを読み取ることで作られた取引の説明文としてアプリなどに表示されます。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -98,13 +125,16 @@ const response: Response<PaginatedBills> = await client.send(new ListBills({
 }
 ```
 
-**`created_from`** 
-  
+</details>
 
+#### `created_from`
 支払いQRコードの作成日時でフィルターします。
 
 これ以降に作成された支払いQRコードのみ一覧に表示されます。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -112,13 +142,16 @@ const response: Response<PaginatedBills> = await client.send(new ListBills({
 }
 ```
 
-**`created_to`** 
-  
+</details>
 
+#### `created_to`
 支払いQRコードの作成日時でフィルターします。
 
 これ以前に作成された支払いQRコードのみ一覧に表示されます。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -126,11 +159,14 @@ const response: Response<PaginatedBills> = await client.send(new ListBills({
 }
 ```
 
-**`shop_name`** 
-  
+</details>
 
+#### `shop_name`
 支払いQRコードを作成した店舗名でフィルターします。店舗名は部分一致で検索されます。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -138,11 +174,14 @@ const response: Response<PaginatedBills> = await client.send(new ListBills({
 }
 ```
 
-**`shop_id`** 
-  
+</details>
 
+#### `shop_id`
 支払いQRコードを作成した店舗IDでフィルターします。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -150,11 +189,14 @@ const response: Response<PaginatedBills> = await client.send(new ListBills({
 }
 ```
 
-**`lower_limit_amount`** 
-  
+</details>
 
+#### `lower_limit_amount`
 支払いQRコードの金額の下限を指定してフィルターします。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "integer",
@@ -163,11 +205,14 @@ const response: Response<PaginatedBills> = await client.send(new ListBills({
 }
 ```
 
-**`upper_limit_amount`** 
-  
+</details>
 
+#### `upper_limit_amount`
 支払いQRコードの金額の上限を指定してフィルターします。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "integer",
@@ -176,17 +221,22 @@ const response: Response<PaginatedBills> = await client.send(new ListBills({
 }
 ```
 
-**`is_disabled`** 
-  
+</details>
 
+#### `is_disabled`
 支払いQRコードが無効化されているかどうかを表します。デフォルト値は偽(有効)です。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "boolean"
 }
 ```
 
+</details>
+
 
 
 成功したときは
@@ -207,22 +257,24 @@ const response: Response<PaginatedBills> = await client.send(new ListBills({
 ## CreateBill: 支払いQRコードの発行
 支払いQRコードの内容を更新します。支払い先の店舗ユーザーは指定したマネーのウォレットを持っている必要があります。
 
-```typescript
-const response: Response<Bill> = await client.send(new CreateBill({
-  private_money_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // 支払いマネーのマネーID
-  shop_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // 支払い先(受け取り人)の店舗ID
-  amount: 990.0, // 支払い額
-  description: "test bill" // 説明文(アプリ上で取引の説明文として表示される)
-}));
+```PYTHON
+response = client.send(pp.CreateBill(
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",               # private_money_id: 支払いマネーのマネーID
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",               # shop_id: 支払い先(受け取り人)の店舗ID
+                          amount=4209.0,                                        # 支払い額
+                          description="test bill"                               # 説明文(アプリ上で取引の説明文として表示される)
+))
 ```
 
 
 
 ### Parameters
-**`amount`** 
-  
-
+#### `amount`
 支払いQRコードを支払い額を指定します。省略するかnullを渡すと任意金額の支払いQRコードとなり、エンドユーザーがアプリで読み取った際に金額を入力します。
+また、金額を指定する場合の上限額は支払いをするマネーの取引上限額です。
+
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -232,9 +284,12 @@ const response: Response<Bill> = await client.send(new CreateBill({
 }
 ```
 
-**`private_money_id`** 
-  
+</details>
+
+#### `private_money_id`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -243,9 +298,12 @@ const response: Response<Bill> = await client.send(new CreateBill({
 }
 ```
 
-**`shop_id`** 
-  
+</details>
 
+#### `shop_id`
+
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -254,9 +312,12 @@ const response: Response<Bill> = await client.send(new CreateBill({
 }
 ```
 
-**`description`** 
-  
+</details>
+
+#### `description`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -265,6 +326,8 @@ const response: Response<Bill> = await client.send(new CreateBill({
 }
 ```
 
+</details>
+
 
 
 成功したときは
@@ -274,9 +337,10 @@ const response: Response<Bill> = await client.send(new CreateBill({
 ### Error Responses
 |status|type|ja|en|
 |---|---|---|---|
+|400|invalid_parameter_bill_amount_or_range_exceeding_transfer_limit|支払いQRコードの金額がマネーの取引可能金額の上限を超えています|The input amount is exceeding the private money's limit for transfer|
 |403|unpermitted_admin_user|この管理ユーザには権限がありません|Admin does not have permission|
-|422|shop_account_not_found||The shop account is not found|
-|422|private_money_not_found||Private money not found|
+|422|shop_account_not_found|店舗アカウントが見つかりません|The shop account is not found|
+|422|private_money_not_found|マネーが見つかりません|Private money not found|
 |422|shop_user_not_found|店舗が見つかりません|The shop user is not found|
 |422|account_closed|アカウントは退会しています|The account is closed|
 |422|account_pre_closed|アカウントは退会準備中です|The account is pre-closed|
@@ -284,6 +348,45 @@ const response: Response<Bill> = await client.send(new CreateBill({
 
 
 
+---
+
+
+<a name="get-bill"></a>
+## GetBill: 支払いQRコードの表示
+支払いQRコードの内容を表示します。
+
+```PYTHON
+response = client.send(pp.GetBill(
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"                # bill_id: 支払いQRコードのID
+))
+```
+
+
+
+### Parameters
+#### `bill_id`
+表示する支払いQRコードのIDです。
+
+<details>
+<summary>スキーマ</summary>
+
+```json
+{
+  "type": "string",
+  "format": "uuid"
+}
+```
+
+</details>
+
+
+
+成功したときは
+[Bill](./responses.md#bill)
+を返します
+
+
+
 ---
 
 
@@ -291,23 +394,24 @@ const response: Response<Bill> = await client.send(new CreateBill({
 ## UpdateBill: 支払いQRコードの更新
 支払いQRコードの内容を更新します。パラメータは全て省略可能で、指定したもののみ更新されます。
 
-```typescript
-const response: Response<Bill> = await client.send(new UpdateBill({
-  bill_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // 支払いQRコードのID
-  amount: 4136.0, // 支払い額
-  description: "test bill", // 説明文
-  is_disabled: false // 無効化されているかどうか
-}));
+```PYTHON
+response = client.send(pp.UpdateBill(
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",               # bill_id: 支払いQRコードのID
+                          amount=7704.0,                                        # 支払い額
+                          description="test bill",                              # 説明文
+                          is_disabled=False                                     # 無効化されているかどうか
+))
 ```
 
 
 
 ### Parameters
-**`bill_id`** 
-  
-
+#### `bill_id`
 更新対象の支払いQRコードのIDです。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -315,10 +419,13 @@ const response: Response<Bill> = await client.send(new UpdateBill({
 }
 ```
 
-**`amount`** 
-  
+</details>
+
+#### `amount`
+支払いQRコードを支払い額を指定します。nullを渡すと任意金額の支払いQRコードとなり、エンドユーザーがアプリで読み取った際に金額を入力します。また、金額を指定する場合の上限額は支払いをするマネーの取引上限額です。
 
-支払いQRコードを支払い額を指定します。nullを渡すと任意金額の支払いQRコードとなり、エンドユーザーがアプリで読み取った際に金額を入力します。
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -328,11 +435,14 @@ const response: Response<Bill> = await client.send(new UpdateBill({
 }
 ```
 
-**`description`** 
-  
+</details>
 
+#### `description`
 支払いQRコードの詳細説明文です。アプリ上で取引の説明文として表示されます。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -340,17 +450,22 @@ const response: Response<Bill> = await client.send(new UpdateBill({
 }
 ```
 
-**`is_disabled`** 
-  
+</details>
 
+#### `is_disabled`
 支払いQRコードが無効化されているかどうかを指定します。真にすると無効化され、偽にすると有効化します。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "boolean"
 }
 ```
 
+</details>
+
 
 
 成功したときは
@@ -362,4 +477,182 @@ const response: Response<Bill> = await client.send(new UpdateBill({
 ---
 
 
+<a name="create-payment-transaction-with-bill"></a>
+## CreatePaymentTransactionWithBill: 支払いQRコードを読み取ることで支払いをする
+通常支払いQRコードはエンドユーザーのアプリによって読み取られ、アプリとポケペイサーバとの直接通信によって取引が作られます。 もしエンドユーザーとの通信をパートナーのサーバのみに限定したい場合、パートナーのサーバが支払いQRの情報をエンドユーザーから代理受けして、サーバ間連携APIによって実際の支払い取引をリクエストすることになります。
+
+エンドユーザーから受け取った支払いQRコードのIDをエンドユーザーIDと共に渡すことで支払い取引が作られます。
+支払い時には、エンドユーザーの残高のうち、ポイント残高から優先的に消費されます。
+
+```PYTHON
+response = client.send(pp.CreatePaymentTransactionWithBill(
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",               # bill_id: 支払いQRコードのID
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",               # customer_id: エンドユーザーのID
+                          metadata="{\"key\":\"value\"}",                       # 取引メタデータ
+                          request_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",    # リクエストID
+                          strategy="point-preferred"                            # 支払い時の残高消費方式
+))
+```
+
+
+
+### Parameters
+#### `bill_id`
+支払いQRコードのIDです。
+
+QRコード生成時に送金先店舗のウォレット情報や、支払い金額などが登録されています。
+
+<details>
+<summary>スキーマ</summary>
+
+```json
+{
+  "type": "string",
+  "format": "uuid"
+}
+```
+
+</details>
+
+#### `customer_id`
+エンドユーザーIDです。
+
+支払いを行うエンドユーザーを指定します。
+
+<details>
+<summary>スキーマ</summary>
+
+```json
+{
+  "type": "string",
+  "format": "uuid"
+}
+```
+
+</details>
+
+#### `metadata`
+取引作成時に指定されるメタデータです。
+
+任意入力で、全てのkeyとvalueが文字列であるようなフラットな構造のJSON文字列で指定します。
+
+<details>
+<summary>スキーマ</summary>
+
+```json
+{
+  "type": "string",
+  "format": "json"
+}
+```
+
+</details>
+
+#### `request_id`
+取引作成APIの羃等性を担保するためのリクエスト固有のIDです。
+
+取引作成APIで結果が受け取れなかったなどの理由で再試行する際に、二重に取引が作られてしまうことを防ぐために、クライアント側から指定されます。指定は任意で、UUID V4フォーマットでランダム生成した文字列です。リクエストIDは一定期間で削除されます。
+
+リクエストIDを指定したとき、まだそのリクエストIDに対する取引がない場合、新規に取引が作られレスポンスとして返されます。もしそのリクエストIDに対する取引が既にある場合、既存の取引がレスポンスとして返されます。
+既に存在する、別のユーザによる取引とリクエストIDが衝突した場合、request_id_conflictが返ります。
+
+<details>
+<summary>スキーマ</summary>
+
+```json
+{
+  "type": "string",
+  "format": "uuid"
+}
+```
+
+</details>
+
+#### `strategy`
+支払い時に残高がどのように消費されるかを指定します。
+デフォルトでは point-preferred (ポイント優先)が採用されます。
+
+- point-preferred: ポイント残高が優先的に消費され、ポイントがなくなり次第マネー残高から消費されていきます(デフォルト動作)
+- money-only: マネー残高のみから消費され、ポイント残高は使われません
+
+マネー設定でポイント残高のみの利用に設定されている場合(display_money_and_point が point-only の場合)、 strategy の指定に関わらずポイント優先になります。
+
+<details>
+<summary>スキーマ</summary>
+
+```json
+{
+  "type": "string",
+  "enum": [
+    "point-preferred",
+    "money-only"
+  ]
+}
+```
+
+</details>
+
+
+
+成功したときは
+[TransactionDetail](./responses.md#transaction-detail)
+を返します
+
+### Error Responses
+|status|type|ja|en|
+|---|---|---|---|
+|403|unpermitted_admin_user|この管理ユーザには権限がありません|Admin does not have permission|
+|422|disabled_bill|支払いQRコードが無効です|Bill is disabled|
+|422|customer_user_not_found||The customer user is not found|
+|422|bill_not_found|支払いQRコードが見つかりません|Bill not found|
+|422|coupon_not_found|クーポンが見つかりませんでした。|The coupon is not found.|
+|422|credit_session_money_topup_requires_credit_card|オーソリチャージ用マネーではクレジットカードによるチャージのみ許可されています|Credit card is required for topup on credit-session enabled money|
+|422|cannot_topup_during_cvs_authorization_pending|コンビニ決済の予約中はチャージできません|You cannot topup your account while a convenience store payment is pending.|
+|422|credit_session_not_found|オーソリセッションが見つかりません|Credit session not found|
+|422|not_applicable_transaction_type_for_account_topup_quota|チャージ取引以外の取引種別ではチャージ可能枠を使用できません|Account topup quota is not applicable to transaction types other than topup.|
+|422|private_money_topup_quota_not_available|このマネーにはチャージ可能枠の設定がありません|Topup quota is not available with this private money.|
+|422|account_can_not_topup|この店舗からはチャージできません|account can not topup|
+|422|private_money_closed|このマネーは解約されています|This money was closed|
+|422|transaction_has_done|取引は完了しており、キャンセルすることはできません|Transaction has been copmpleted and cannot be canceled|
+|422|account_restricted|特定のアカウントの支払いに制限されています|The account is restricted to pay for a specific account|
+|422|account_balance_not_enough|口座残高が不足してます|The account balance is not enough|
+|422|c2c_transfer_not_allowed|このマネーではユーザ間マネー譲渡は利用できません|Customer to customer transfer is not available for this money|
+|422|account_transfer_limit_exceeded|取引金額が上限を超えました|Too much amount to transfer|
+|422|account_balance_exceeded|口座残高が上限を超えました|The account balance exceeded the limit|
+|422|account_money_topup_transfer_limit_exceeded|マネーチャージ金額が上限を超えました|Too much amount to money topup transfer|
+|422|account_topup_quota_not_splittable|このチャージ可能枠は設定された金額未満の金額には使用できません|This topup quota is only applicable to its designated money amount.|
+|422|topup_amount_exceeding_topup_quota_usable_amount|チャージ金額がチャージ可能枠の利用可能金額を超えています|Topup amount is exceeding the topup quota's usable amount|
+|422|account_topup_quota_inactive|指定されたチャージ可能枠は有効ではありません|Topup quota is inactive|
+|422|account_topup_quota_not_within_applicable_period|指定されたチャージ可能枠の利用可能期間外です|Topup quota is not applicable at this time|
+|422|account_topup_quota_not_found|ウォレットにチャージ可能枠がありません|Topup quota is not found with this account|
+|422|account_total_topup_limit_range|合計チャージ額がマネーで指定された期間内での上限を超えています|The topup exceeds the total amount within the period defined by the money.|
+|422|account_total_topup_limit_entire_period|合計チャージ額がマネーで指定された期間内での上限を超えています|The topup exceeds the total amount defined by the money.|
+|422|coupon_unavailable_shop|このクーポンはこの店舗では使用できません。|This coupon is unavailable for this shop.|
+|422|coupon_already_used|このクーポンは既に使用済みです。|This coupon is already used.|
+|422|coupon_not_received|このクーポンは受け取られていません。|This coupon is not received.|
+|422|coupon_not_sent|このウォレットに対して配信されていないクーポンです。|This coupon is not sent to this account yet.|
+|422|coupon_amount_not_enough|このクーポンを使用するには支払い額が足りません。|The payment amount not enough to use this coupon.|
+|422|coupon_not_payment|クーポンは支払いにのみ使用できます。|Coupons can only be used for payment.|
+|422|coupon_unavailable|このクーポンは使用できません。|This coupon is unavailable.|
+|422|account_suspended|アカウントは停止されています|The account is suspended|
+|422|account_closed|アカウントは退会しています|The account is closed|
+|422|customer_account_not_found||The customer account is not found|
+|422|shop_account_not_found|店舗アカウントが見つかりません|The shop account is not found|
+|422|account_currency_mismatch|アカウント間で通貨が異なっています|Currency mismatch between accounts|
+|422|account_pre_closed|アカウントは退会準備中です|The account is pre-closed|
+|422|account_not_accessible|アカウントにアクセスできません|The account is not accessible by this user|
+|422|terminal_is_invalidated|端末は無効化されています|The terminal is already invalidated|
+|422|same_account_transaction|同じアカウントに送信しています|Sending to the same account|
+|422|transaction_invalid_done_at|取引完了日が無効です|Transaction completion date is invalid|
+|422|transaction_invalid_amount|取引金額が数値ではないか、受け入れられない桁数です|Transaction amount is not a number or cannot be accepted for this currency|
+|422|request_id_conflict|このリクエストIDは他の取引ですでに使用されています。お手数ですが、別のリクエストIDで最初からやり直してください。|The request_id is already used by another transaction. Try again with new request id|
+|422|reserved_word_can_not_specify_to_metadata|取引メタデータに予約語は指定出来ません|Reserved word can not specify to metadata|
+|422|invalid_metadata|メタデータの形式が不正です|Invalid metadata format|
+|503|temporarily_unavailable||Service Unavailable|
+
+
+
+---
+
+
 
diff --git a/docs/bulk.md b/docs/bulk.md
index 48752b0..3f3dbbb 100644
--- a/docs/bulk.md
+++ b/docs/bulk.md
@@ -1,27 +1,35 @@
 # Bulk
+一括取引処理を表すデータです。
+CSVファイルのアップロードにより、複数件の取引をバッチ処理する非同期APIを提供します。
+一括処理のステータス（submitted, examining, queued, processing, error, done）を監視できます。
+処理完了時にコールバックURLへの通知も可能です。
+また、スケジュール実行時刻を指定して将来の時点で処理を実行することもできます。
+
 
 <a name="bulk-create-transaction"></a>
 ## BulkCreateTransaction: CSVファイル一括取引
 CSVファイルから一括取引をします。
 
-```typescript
-const response: Response<BulkTransaction> = await client.send(new BulkCreateTransaction({
-  name: "GSOhV764tKT9oH", // 一括取引タスク名
-  content: "jnPne51Y", // 取引する情報のCSV
-  request_id: "ZOU0zGq4PpZBc0rJPOstD7C9IM7suB5w40dZ", // リクエストID
-  description: "TsuKZGsFElmQpA4RSTaTlLaqlkU49OXmcM1eYLCIvDzYzwAtEksQWSl6Am3gCBrhM35Efmr", // 一括取引の説明
-  private_money_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" // マネーID
-}));
+```PYTHON
+response = client.send(pp.BulkCreateTransaction(
+                          "UFCwG4QGOnpUXmwhMFk",                                # name: 一括取引タスク名
+                          "ufFPOzF9Lv",                                         # content: 取引する情報のCSV
+                          "v7JJIkMwpNGlwPY7w3AePumXzLvyF75pQlwz",               # request_id: リクエストID
+                          description="sKLA3j0RsOTGgnfI7tlICoQDpnLAiZiYSVIBpBUCCSgk4", # 一括取引の説明
+                          private_money_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", # マネーID
+                          callback_url="https://gnk7sP6E.example.com"           # コールバックURL
+))
 ```
 
 
 
 ### Parameters
-**`name`** 
-  
-
+#### `name`
 一括取引タスクの管理用の名前です。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -29,11 +37,14 @@ const response: Response<BulkTransaction> = await client.send(new BulkCreateTran
 }
 ```
 
-**`description`** 
-  
+</details>
 
+#### `description`
 一括取引タスクの管理用の説明文です。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -41,9 +52,9 @@ const response: Response<BulkTransaction> = await client.send(new BulkCreateTran
 }
 ```
 
-**`content`** 
-  
+</details>
 
+#### `content`
 一括取引する情報を書いたCSVの文字列です。
 1行目はヘッダ行で、2行目以降の各行にカンマ区切りの取引データを含みます。
 カラムは以下の7つです。任意のカラムには空文字を指定します。
@@ -67,17 +78,23 @@ const response: Response<BulkTransaction> = await client.send(new BulkCreateTran
 - `point_expires_at`: ポイントの有効期限
   - 任意。指定がないときはマネーに設定された有効期限を適用
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string"
 }
 ```
 
-**`request_id`** 
-  
+</details>
 
+#### `request_id`
 重複したリクエストを判断するためのユニークID。ランダムな36字の文字列を生成して渡してください。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -86,11 +103,14 @@ const response: Response<BulkTransaction> = await client.send(new BulkCreateTran
 }
 ```
 
-**`private_money_id`** 
-  
+</details>
 
+#### `private_money_id`
 マネーIDです。 マネーを指定します。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -98,6 +118,46 @@ const response: Response<BulkTransaction> = await client.send(new BulkCreateTran
 }
 ```
 
+</details>
+
+#### `callback_url`
+一括取引タスクが終了したときに通知されるコールバックURLです。これはオプショナルなパラメータで、未指定の場合は通知されません。
+
+指定したURLに対して、以下の内容のリクエストがPOSTメソッドで送信されます。
+
+リクエスト例:
+ {
+  "bulk_transaction_id": "c9a0b2c0-e8d0-4a7f-9b1d-2f0c3e1a8b7a",
+  "request_id": "1640e29f-157a-46e2-af05-c402726cbf2b",
+  "completed_at": "2025-09-26T14:30:00Z",
+  "status": "done",
+  "success_count": 98,
+  "total_count": 100
+}
+
+- bulk_transaction_id: 一括取引タスクのタスクID
+- request_id: 本APIにクライアント側から指定したrequest_id
+- completed_at: 完了時刻
+- status: 終了時の状態。done (完了状態) か error (エラー) のいずれか
+- success_count: 成功件数
+- total_count: 総件数
+
+リトライ戦略について:
+対象URLにPOSTした結果、500, 502, 503, 504エラーを受け取ったとき、またはタイムアウト (10秒)したときに、最大3回までリトライします。
+成功通知が複数回送信されることもありえるため、request_idで排他処理を行なってください。
+
+<details>
+<summary>スキーマ</summary>
+
+```json
+{
+  "type": "string",
+  "format": "url"
+}
+```
+
+</details>
+
 
 
 成功したときは
@@ -107,10 +167,11 @@ const response: Response<BulkTransaction> = await client.send(new BulkCreateTran
 ### Error Responses
 |status|type|ja|en|
 |---|---|---|---|
+|400|invalid_parameters|項目が無効です|Invalid parameters|
 |403|unpermitted_admin_user|この管理ユーザには権限がありません|Admin does not have permission|
 |403|organization_not_issuer|発行体以外に許可されていない操作です|Unpermitted operation except for issuer organizations.|
 |409|NULL|NULL|NULL|
-|422|private_money_not_found||Private money not found|
+|422|private_money_not_found|マネーが見つかりません|Private money not found|
 |422|bulk_transaction_invalid_csv_format|入力されたCSVデータに誤りがあります|Invalid csv format|
 
 
diff --git a/docs/campaign.md b/docs/campaign.md
index b57d01f..12b64f1 100644
--- a/docs/campaign.md
+++ b/docs/campaign.md
@@ -1,4 +1,9 @@
 # Campaign
+自動ポイント還元ルールの設定を表すデータです。
+Pokepay管理画面やPartnerSDK経由でルール登録、更新が可能です。
+取引(Transaction)または外部決済イベント(ExternalTransaction)の内容によって還元するポイント額を計算し、自動で付与するルールを設定可能です。
+targetとして取引または外部決済イベントを選択して個別設定します。
+
 
 <a name="list-campaigns"></a>
 ## ListCampaigns: キャンペーン一覧を取得する
@@ -6,27 +11,28 @@
 発行体の組織マネージャ権限で、自組織が発行するマネーのキャンペーンについてのみ閲覧可能です。
 閲覧権限がない場合は unpermitted_admin_user エラー(422)が返ります。
 
-```typescript
-const response: Response<PaginatedCampaigns> = await client.send(new ListCampaigns({
-  private_money_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // マネーID
-  is_ongoing: true, // 現在適用可能なキャンペーンかどうか
-  available_from: "2022-04-17T10:22:44.000000Z", // 指定された日時以降に適用可能期間が含まれているか
-  available_to: "2020-02-16T18:11:27.000000Z", // 指定された日時以前に適用可能期間が含まれているか
-  page: 1, // ページ番号
-  per_page: 20 // 1ページ分の取得数
-}));
+```PYTHON
+response = client.send(pp.ListCampaigns(
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",               # private_money_id: マネーID
+                          is_ongoing=True,                                      # 現在適用可能なキャンペーンかどうか
+                          available_from="2025-01-10T07:45:07.000000Z",         # 指定された日時以降に適用可能期間が含まれているか
+                          available_to="2026-02-19T03:35:37.000000Z",           # 指定された日時以前に適用可能期間が含まれているか
+                          page=1,                                               # ページ番号
+                          per_page=20                                           # 1ページ分の取得数
+))
 ```
 
 
 
 ### Parameters
-**`private_money_id`** 
-  
-
+#### `private_money_id`
 マネーIDです。
 
 フィルターとして使われ、指定したマネーでのキャンペーンのみ一覧に表示されます。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -34,25 +40,31 @@ const response: Response<PaginatedCampaigns> = await client.send(new ListCampaig
 }
 ```
 
-**`is_ongoing`** 
-  
+</details>
 
+#### `is_ongoing`
 有効化されており、現在キャンペーン期間内にあるキャンペーンをフィルターするために使われます。
 真であれば適用可能なもののみを抽出し、偽であれば適用不可なもののみを抽出します。
 デフォルトでは未指定(フィルターなし)です。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "boolean"
 }
 ```
 
-**`available_from`** 
-  
+</details>
 
+#### `available_from`
 キャンペーン終了日時が指定された日時以降であるキャンペーンをフィルターするために使われます。
 デフォルトでは未指定(フィルターなし)です。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -60,12 +72,15 @@ const response: Response<PaginatedCampaigns> = await client.send(new ListCampaig
 }
 ```
 
-**`available_to`** 
-  
+</details>
 
+#### `available_to`
 キャンペーン開始日時が指定された日時以前であるキャンペーンをフィルターするために使われます。
 デフォルトでは未指定(フィルターなし)です。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -73,11 +88,14 @@ const response: Response<PaginatedCampaigns> = await client.send(new ListCampaig
 }
 ```
 
-**`page`** 
-  
+</details>
 
+#### `page`
 取得したいページ番号です。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "integer",
@@ -85,11 +103,14 @@ const response: Response<PaginatedCampaigns> = await client.send(new ListCampaig
 }
 ```
 
-**`per_page`** 
-  
+</details>
 
+#### `per_page`
 1ページ分の取得数です。デフォルトでは 20 になっています。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "integer",
@@ -98,6 +119,8 @@ const response: Response<PaginatedCampaigns> = await client.send(new ListCampaig
 }
 ```
 
+</details>
+
 
 
 成功したときは
@@ -108,6 +131,7 @@ const response: Response<PaginatedCampaigns> = await client.send(new ListCampaig
 |status|type|ja|en|
 |---|---|---|---|
 |403|unpermitted_admin_user|この管理ユーザには権限がありません|Admin does not have permission|
+|503|temporarily_unavailable||Service Unavailable|
 
 
 
@@ -118,102 +142,81 @@ const response: Response<PaginatedCampaigns> = await client.send(new ListCampaig
 ## CreateCampaign: ポイント付与キャンペーンを作る
 ポイント付与キャンペーンを作成します。
 
-
-```typescript
-const response: Response<Campaign> = await client.send(new CreateCampaign({
-  name: "FWMml5EKRiDsWg9ZcujQMFmb4vZ2", // キャンペーン名
-  private_money_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // マネーID
-  starts_at: "2022-01-02T00:20:43.000000Z", // キャンペーン開始日時
-  ends_at: "2022-02-12T08:10:50.000000Z", // キャンペーン終了日時
-  priority: 3366, // キャンペーンの適用優先度
-  event: "payment", // イベント種別
-  bear_point_shop_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // ポイント負担先店舗ID
-  description: "HzNm8wdK6sB9HsuClaKx3AfzVa9lboQs", // キャンペーンの説明文
-  status: "enabled", // キャンペーン作成時の状態
-  point_expires_at: "2024-03-11T03:19:42.000000Z", // ポイント有効期限(絶対日時指定)
-  point_expires_in_days: 6554, // ポイント有効期限(相対日数指定)
-  is_exclusive: false, // キャンペーンの重複設定
-  subject: "money", // ポイント付与の対象金額の種別
-  amount_based_point_rules: [{
-  "point_amount": 5,
-  "point_amount_unit": "percent",
-  "subject_more_than_or_equal": 1000,
-  "subject_less_than": 5000
-}, {
-  "point_amount": 5,
-  "point_amount_unit": "percent",
-  "subject_more_than_or_equal": 1000,
-  "subject_less_than": 5000
-}, {
+```PYTHON
+response = client.send(pp.CreateCampaign(
+                          "MgQrA88yuG2X4KRlpHewo2CgFQkdXPF4V9XHbL6zY6vqwgcI7YPEPHgGnEdzhGAMty3evJwcetItJxO93cN0lVNG0lwTGLR8ci2cIIE66fhj", # name: キャンペーン名
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",               # private_money_id: マネーID
+                          "2022-01-16T23:41:19.000000Z",                        # starts_at: キャンペーン開始日時
+                          "2025-01-07T14:58:11.000000Z",                        # ends_at: キャンペーン終了日時
+                          9838,                                                 # priority: キャンペーンの適用優先度
+                          "payment",                                            # event: イベント種別
+                          bear_point_shop_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", # ポイント負担先店舗ID
+                          description="6iiZ64HpvFGkJr1u",                       # キャンペーンの説明文
+                          status="disabled",                                    # キャンペーン作成時の状態
+                          point_expires_at="2023-03-06T09:12:15.000000Z",       # ポイント有効期限(絶対日時指定)
+                          point_expires_in_days=6878,                           # ポイント有効期限(相対日数指定)
+                          is_exclusive=True,                                    # キャンペーンの重複設定
+                          subject="money",                                      # ポイント付与の対象金額の種別
+                          amount_based_point_rules=[{
   "point_amount": 5,
   "point_amount_unit": "percent",
   "subject_more_than_or_equal": 1000,
   "subject_less_than": 5000
-}], // 取引金額ベースのポイント付与ルール
-  product_based_point_rules: [{
+}],                                                                             # 取引金額ベースのポイント付与ルール
+                          product_based_point_rules=[{
   "point_amount": 5,
   "point_amount_unit": "percent",
   "product_code": "4912345678904",
-  "is_multiply_by_count": true,
+  "is_multiply_by_count": True,
   "required_count": 2
-}, {
-  "point_amount": 5,
-  "point_amount_unit": "percent",
+}],                                                                             # 商品情報ベースのポイント付与ルール
+                          blacklisted_product_rules=[{
   "product_code": "4912345678904",
-  "is_multiply_by_count": true,
-  "required_count": 2
+  "classification_code": "c123"
 }, {
-  "point_amount": 5,
-  "point_amount_unit": "percent",
-  "product_code": "4912345678904",
-  "is_multiply_by_count": true,
-  "required_count": 2
-}], // 商品情報ベースのポイント付与ルール
-  blacklisted_product_rules: [{
   "product_code": "4912345678904",
   "classification_code": "c123"
-}], // 商品情報ベースのキャンペーンで除外対象にする商品リスト
-  applicable_days_of_week: [4, 0, 1], // キャンペーンを適用する曜日 (複数指定)
-  applicable_time_ranges: [{
-  "from": "12:00",
-  "to": "23:59"
-}, {
-  "from": "12:00",
-  "to": "23:59"
 }, {
+  "product_code": "4912345678904",
+  "classification_code": "c123"
+}],                                                                             # 商品情報ベースのキャンペーンで除外対象にする商品リスト
+                          applicable_days_of_week=[5],                          # キャンペーンを適用する曜日 (複数指定)
+                          applicable_time_ranges=[{
   "from": "12:00",
   "to": "23:59"
-}], // キャンペーンを適用する時間帯 (複数指定)
-  applicable_shop_ids: ["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"], // キャンペーン適用対象となる店舗IDのリスト
-  minimum_number_of_products: 423, // キャンペーンを適用する1会計内の商品個数の下限
-  minimum_number_of_amount: 5068, // キャンペーンを適用する1会計内の商品総額の下限
-  minimum_number_for_combination_purchase: 9934, // 複数種類の商品を同時購入するときの商品種別数の下限
-  exist_in_each_product_groups: false, // 複数の商品グループにつき1種類以上の商品購入によって発火するキャンペーンの指定フラグ
-  max_point_amount: 626, // キャンペーンによって付与されるポイントの上限
-  max_total_point_amount: 8669, // キャンペーンによって付与されるの1人当たりの累計ポイントの上限
-  dest_private_money_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // ポイント付与先となるマネーID
-  applicable_account_metadata: {
+}],                                                                             # キャンペーンを適用する時間帯 (複数指定)
+                          applicable_shop_ids=["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"], # キャンペーン適用対象となる店舗IDのリスト
+                          blacklisted_shop_ids=["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"], # キャンペーン適用対象外となる店舗IDのリスト(ブラックリスト方式)
+                          minimum_number_of_products=9699,                      # キャンペーンを適用する1会計内の商品個数の下限
+                          minimum_number_of_amount=6716,                        # キャンペーンを適用する1会計内の商品総額の下限
+                          minimum_number_for_combination_purchase=2048,         # 複数種類の商品を同時購入するときの商品種別数の下限
+                          exist_in_each_product_groups=False,                   # 複数の商品グループにつき1種類以上の商品購入によって発火するキャンペーンの指定フラグ
+                          max_point_amount=4834,                                # キャンペーンによって付与されるポイントの上限
+                          max_total_point_amount=3869,                          # キャンペーンによって付与されるの1人当たりの累計ポイントの上限
+                          dest_private_money_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", # ポイント付与先となるマネーID
+                          applicable_account_metadata={
   "key": "sex",
   "value": "male"
-}, // ウォレットに紐付くメタデータが特定の値を持つときにのみ発火するキャンペーンを登録します。
-  applicable_transaction_metadata: {
+},                                                                              # ウォレットに紐付くメタデータが特定の値を持つときにのみ発火するキャンペーンを登録します。
+                          applicable_transaction_metadata={
   "key": "rank",
   "value": "bronze"
-}, // 取引時に指定するメタデータが特定の値を持つときにのみ発火するキャンペーンを登録します。
-  budget_caps_amount: 445075235 // キャンペーン予算上限
-}));
+},                                                                              # 取引時に指定するメタデータが特定の値を持つときにのみ発火するキャンペーンを登録します。
+                          budget_caps_amount=1931083884                         # キャンペーン予算上限
+))
 ```
 
 
 
 ### Parameters
-**`name`** 
-  
-
+#### `name`
 キャンペーン名です(必須項目)。
 
 ポイント付与によってできるチャージ取引の説明文に転記されます。取引説明文はエンドユーザーからも確認できます。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -221,11 +224,14 @@ const response: Response<Campaign> = await client.send(new CreateCampaign({
 }
 ```
 
-**`private_money_id`** 
-  
+</details>
 
+#### `private_money_id`
 キャンペーン対象のマネーのIDです(必須項目)。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -233,13 +239,16 @@ const response: Response<Campaign> = await client.send(new CreateCampaign({
 }
 ```
 
-**`starts_at`** 
-  
+</details>
 
+#### `starts_at`
 キャンペーン開始日時です(必須項目)。
 キャンペーン期間中のみポイントが付与されます。
 開始日時よりも終了日時が前のときはcampaign_invalid_periodエラー(422)になります。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -247,13 +256,16 @@ const response: Response<Campaign> = await client.send(new CreateCampaign({
 }
 ```
 
-**`ends_at`** 
-  
+</details>
 
+#### `ends_at`
 キャンペーン終了日時です(必須項目)。
 キャンペーン期間中のみポイントが付与されます。
 開始日時よりも終了日時が前のときはcampaign_invalid_periodエラー(422)になります。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -261,23 +273,26 @@ const response: Response<Campaign> = await client.send(new CreateCampaign({
 }
 ```
 
-**`priority`** 
-  
+</details>
 
+#### `priority`
 キャンペーンの適用優先度です。
 
 優先度が大きいものから順に適用判定されていきます。
 キャンペーン期間が重なっている同一の優先度のキャンペーンが存在するとcampaign_period_overlapsエラー(422)になります。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "integer"
 }
 ```
 
-**`event`** 
-  
+</details>
 
+#### `event`
 キャンペーンのトリガーとなるイベントの種類を指定します(必須項目)。
 
 以下のいずれかを指定できます。
@@ -289,6 +304,9 @@ const response: Response<Campaign> = await client.send(new CreateCampaign({
 3. external-transaction
    ポケペイ外の取引(現金決済など)
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -300,12 +318,15 @@ const response: Response<Campaign> = await client.send(new CreateCampaign({
 }
 ```
 
-**`bear_point_shop_id`** 
-  
+</details>
 
+#### `bear_point_shop_id`
 ポイントを負担する店舗のIDです。デフォルトではマネー発行体の本店が設定されます。
 ポイント負担先店舗は後から更新することはできません。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -313,11 +334,14 @@ const response: Response<Campaign> = await client.send(new CreateCampaign({
 }
 ```
 
-**`description`** 
-  
+</details>
 
+#### `description`
 キャンペーンの内容を記載します。管理画面などでキャンペーンを管理するための説明文になります。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -325,9 +349,9 @@ const response: Response<Campaign> = await client.send(new CreateCampaign({
 }
 ```
 
-**`status`** 
-  
+</details>
 
+#### `status`
 キャンペーン作成時の状態を指定します。デフォルトではenabledです。
 
 以下のいずれかを指定できます。
@@ -337,6 +361,9 @@ const response: Response<Campaign> = await client.send(new CreateCampaign({
 2. disabled
    無効
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -347,12 +374,15 @@ const response: Response<Campaign> = await client.send(new CreateCampaign({
 }
 ```
 
-**`point_expires_at`** 
-  
+</details>
 
+#### `point_expires_at`
 キャンペーンによって付与されるポイントの有効期限を絶対日時で指定します。
 省略した場合はマネーに設定された有効期限と同じものがポイントの有効期限となります。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -360,12 +390,15 @@ const response: Response<Campaign> = await client.send(new CreateCampaign({
 }
 ```
 
-**`point_expires_in_days`** 
-  
+</details>
 
+#### `point_expires_in_days`
 キャンペーンによって付与されるポイントの有効期限を相対日数で指定します。
 省略した場合はマネーに設定された有効期限と同じものがポイントの有効期限となります。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "integer",
@@ -373,23 +406,26 @@ const response: Response<Campaign> = await client.send(new CreateCampaign({
 }
 ```
 
-**`is_exclusive`** 
-  
+</details>
 
+#### `is_exclusive`
 キャンペーンの重ね掛けを行うかどうかのフラグです。
 
 これにtrueを指定すると他のキャンペーンと同時適用されません。デフォルト値はtrueです。
 falseを指定すると次の優先度の重ね掛け可能なキャンペーンの適用判定に進みます。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "boolean"
 }
 ```
 
-**`subject`** 
-  
+</details>
 
+#### `subject`
 ポイント付与額を計算する対象となる金額の種類を指定します。デフォルト値はallです。
 eventとしてexternal-transactionを指定した場合はポイントとマネーの区別がないためsubjectの指定に関わらず常にallとなります。
 
@@ -402,6 +438,9 @@ moneyを指定すると決済額の中で「マネー」を使って支払った
 all を指定すると決済額全体を対象にします (「ポイント」での取引額を含む)
 注意: event を topup にしたときはポイントの付与に対しても適用されます
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -412,9 +451,9 @@ all を指定すると決済額全体を対象にします (「ポイント」
 }
 ```
 
-**`amount_based_point_rules`** 
-  
+</details>
 
+#### `amount_based_point_rules`
 金額をベースとしてポイント付与を行うルールを指定します。
 amount_based_point_rules と product_based_point_rules はどちらか一方しか指定できません。
 各ルールは一つのみ適用され、条件に重複があった場合は先に記載されたものが優先されます。
@@ -438,6 +477,9 @@ amount_based_point_rules と product_based_point_rules はどちらか一方し
 ]
 ```
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "array",
@@ -447,9 +489,9 @@ amount_based_point_rules と product_based_point_rules はどちらか一方し
 }
 ```
 
-**`product_based_point_rules`** 
-  
+</details>
 
+#### `product_based_point_rules`
 商品情報をベースとしてポイント付与を行うルールを指定します。
 ルールは商品ごとに設定可能で、ルールの配列として指定します。
 amount_based_point_rules と product_based_point_rules はどちらか一方しか指定できません。
@@ -496,6 +538,9 @@ event が payment か external-transaction の時のみ有効です。
 ]
 ```
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "array",
@@ -505,13 +550,16 @@ event が payment か external-transaction の時のみ有効です。
 }
 ```
 
-**`blacklisted_product_rules`** 
-  
+</details>
 
+#### `blacklisted_product_rules`
 商品情報をベースとしてポイント付与を行う際に、事前に除外対象とする商品リストを指定します。
 除外対象の商品コード、または分類コードのパターンの配列として指定します。
 取引時には、まずここで指定した除外対象商品が除かれ、残った商品に対して `product_based_point_rules` のルール群が適用されます。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "array",
@@ -521,13 +569,16 @@ event が payment か external-transaction の時のみ有効です。
 }
 ```
 
-**`applicable_days_of_week`** 
-  
+</details>
 
+#### `applicable_days_of_week`
 キャンペーンを適用する曜日を指定します (複数指定)。
 曜日は整数で表します。月曜を 0 とし、日曜を 6 とします。
 指定しなかった場合は全日を対象にします (曜日による適用条件なし)
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "array",
@@ -539,13 +590,16 @@ event が payment か external-transaction の時のみ有効です。
 }
 ```
 
-**`applicable_time_ranges`** 
-  
+</details>
 
+#### `applicable_time_ranges`
 キャンペーンを適用する時間帯を指定します (複数指定可)。
 時間帯はfromとtoからなるオブジェクトで指定します。
 fromとtoは両方必要です。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "array",
@@ -555,12 +609,35 @@ fromとtoは両方必要です。
 }
 ```
 
-**`applicable_shop_ids`** 
-  
+</details>
 
+#### `applicable_shop_ids`
 キャンペーンを適用する店舗IDを指定します (複数指定)。
 指定しなかった場合は全店舗が対象になります。
 
+<details>
+<summary>スキーマ</summary>
+
+```json
+{
+  "type": "array",
+  "items": {
+    "type": "string",
+    "format": "uuid"
+  }
+}
+```
+
+</details>
+
+#### `blacklisted_shop_ids`
+キャンペーンの適用対象外となる店舗IDをブラックリスト方式で指定します (複数指定可)。
+このパラメータが指定されている場合、blacklisted_shop_idsに含まれていない店舗全てがキャンペーンの適用対象になります。
+blacklisted_shop_idsとapplicable_shop_idsは同時には指定できません。ホワイトリスト方式を使うときはapplicable_shop_idsを指定してください。
+
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "array",
@@ -571,11 +648,14 @@ fromとtoは両方必要です。
 }
 ```
 
-**`minimum_number_of_products`** 
-  
+</details>
 
+#### `minimum_number_of_products`
 このパラメータを指定すると、取引時の1会計内のルールに適合する商品個数がminimum_number_of_productsを超えたときにのみキャンペーンが発火するようになります。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "integer",
@@ -583,11 +663,14 @@ fromとtoは両方必要です。
 }
 ```
 
-**`minimum_number_of_amount`** 
-  
+</details>
 
+#### `minimum_number_of_amount`
 このパラメータを指定すると、取引時の1会計内のルールに適合する商品総額がminimum_number_of_amountを超えたときにのみキャンペーンが発火するようになります。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "integer",
@@ -595,9 +678,9 @@ fromとtoは両方必要です。
 }
 ```
 
-**`minimum_number_for_combination_purchase`** 
-  
+</details>
 
+#### `minimum_number_for_combination_purchase`
 複数種別の商品を同時購入したとき、同時購入キャンペーンの対象となる商品種別数の下限です。デフォルトでは未指定で、指定する場合は1以上の整数を指定します。
 
 このパラメータを指定するときは product_based_point_rules で商品毎のルールが指定されている必要があります。
@@ -670,6 +753,9 @@ fromとtoは両方必要です。
 }
 ```
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "integer",
@@ -677,9 +763,9 @@ fromとtoは両方必要です。
 }
 ```
 
-**`exist_in_each_product_groups`** 
-  
+</details>
 
+#### `exist_in_each_product_groups`
 複数の商品グループの各グループにつき1種類以上の商品が購入されることによって発火するキャンペーンであるときに真を指定します。デフォルトは偽です。
 
 このパラメータを指定するときは product_based_point_rules で商品毎のルールが指定され、さらにその中でgroup_idが指定されている必要があります。group_idは正の整数です。
@@ -760,19 +846,25 @@ exist_in_each_product_groupsが指定されているにも関わらず商品毎
 
 このキャンペーンが設定された状態で、商品a1、b1が同時に購入された場合、各商品に対する個別のルールが適用された上での総和がポイント付与値になりますが、付与値の上限が100ポイントになります。つまり100 + 200=300と計算されますが上限額の100ポイントが実際の付与値になります。商品a1、a2、 b1、b2が同時に購入された場合は100 + 100 + 200 + 200=600ですが上限額の100がポイント付与値になります。 商品a1、a2が同時に購入された場合は全商品グループから1種以上購入されるという条件を満たしていないためポイントは付与されません。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "boolean"
 }
 ```
 
-**`max_point_amount`** 
-  
+</details>
 
+#### `max_point_amount`
 キャンペーンによって付与されるポイントの上限を指定します。デフォルトは未指定です。
 
 このパラメータが指定されている場合、amount_based_point_rules や product_based_point_rules によって計算されるポイント付与値がmax_point_amountを越えている場合、max_point_amountの値がポイント付与値となり、越えていない場合はその値がポイント付与値となります。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "integer",
@@ -780,14 +872,17 @@ exist_in_each_product_groupsが指定されているにも関わらず商品毎
 }
 ```
 
-**`max_total_point_amount`** 
-  
+</details>
 
+#### `max_total_point_amount`
 キャンペーンによって付与される1人当たりの累計ポイント数の上限を指定します。デフォルトは未指定です。
 
 このパラメータが指定されている場合、各ユーザに対してそのキャンペーンによって過去付与されたポイントの累積値が記録されるようになります。
 累積ポイント数がmax_total_point_amountを超えない限りにおいてキャンペーンで算出されたポイントが付与されます。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "integer",
@@ -795,9 +890,9 @@ exist_in_each_product_groupsが指定されているにも関わらず商品毎
 }
 ```
 
-**`dest_private_money_id`** 
-  
+</details>
 
+#### `dest_private_money_id`
 キャンペーンを駆動するイベントのマネーとは「別のマネー」に対してポイントを付けたいときに、そのマネーIDを指定します。
 
 ポイント付与先のマネーはキャンペーンを駆動するイベントのマネーと同一発行体が発行しているものに限ります。その他のマネーIDが指定された場合は private_money_not_found (422) が返ります。
@@ -808,6 +903,9 @@ exist_in_each_product_groupsが指定されているにも関わらず商品毎
 
 別マネーに対するポイント付与は別のtransactionとなります。 RefundTransaction で元のイベントをキャンセルしたときはポイント付与のtransactionもキャンセルされ、逆にポイント付与のtransactionをキャンセルしたときは連動して元のイベントがキャンセルされます。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -815,9 +913,9 @@ exist_in_each_product_groupsが指定されているにも関わらず商品毎
 }
 ```
 
-**`applicable_account_metadata`** 
-  
+</details>
 
+#### `applicable_account_metadata`
 ウォレットに紐付くメタデータが特定の値を持つときにのみ発火するキャンペーンを登録します。
 メタデータの属性名 key とメタデータの値 value の組をオブジェクトとして指定します。
 ウォレットのメタデータはCreateUserAccountやUpdateCustomerAccountで登録できます。
@@ -844,15 +942,18 @@ exist_in_each_product_groupsが指定されているにも関わらず商品毎
 }
 ```
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "object"
 }
 ```
 
-**`applicable_transaction_metadata`** 
-  
+</details>
 
+#### `applicable_transaction_metadata`
 取引時に指定するメタデータが特定の値を持つときにのみ発火するキャンペーンを登録します。
 メタデータの属性名 key とメタデータの値 value の組をオブジェクトとして指定します。
 取引のメタデータはCreatePaymentTransactionやCreateExternalTransactionで登録できます。
@@ -879,20 +980,26 @@ exist_in_each_product_groupsが指定されているにも関わらず商品毎
 }
 ```
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "object"
 }
 ```
 
-**`budget_caps_amount`** 
-  
+</details>
 
+#### `budget_caps_amount`
 キャンペーンの予算上限を指定します。デフォルトは未指定です。
 
 このパラメータが指定されている場合、このキャンペーンの適用により付与されたポイント全体を定期的に集計し、その合計が上限を越えていた場合にはキャンペーンを無効にします。
 一度この値を越えて無効となったキャンペーンを再度有効にすることは出来ません。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "integer",
@@ -901,6 +1008,8 @@ exist_in_each_product_groupsが指定されているにも関わらず商品毎
 }
 ```
 
+</details>
+
 
 
 成功したときは
@@ -913,11 +1022,11 @@ exist_in_each_product_groupsが指定されているにも関わらず商品毎
 |400|invalid_parameters|項目が無効です|Invalid parameters|
 |403|unpermitted_admin_user|この管理ユーザには権限がありません|Admin does not have permission|
 |422|campaign_overlaps|同期間に開催されるキャンペーン間で優先度が重複してます|The campaign period overlaps under the same private-money / type / priority|
-|422|shop_account_not_found||The shop account is not found|
-|422|shop_user_not_found|店舗が見つかりません|The shop user is not found|
-|422|private_money_not_found||Private money not found|
+|422|shop_account_not_found|店舗アカウントが見つかりません|The shop account is not found|
 |422|campaign_period_overlaps|同期間に開催されるキャンペーン間で優先度が重複してます|The campaign period overlaps under the same private-money / type / priority|
 |422|campaign_invalid_period||Invalid campaign period starts_at later than ends_at|
+|422|shop_user_not_found|店舗が見つかりません|The shop user is not found|
+|422|private_money_not_found|マネーが見つかりません|Private money not found|
 
 
 
@@ -930,22 +1039,23 @@ IDを指定してキャンペーンを取得します。
 発行体の組織マネージャ権限で、自組織が発行するマネーのキャンペーンについてのみ閲覧可能です。
 閲覧権限がない場合は unpermitted_admin_user エラー(422)が返ります。
 
-```typescript
-const response: Response<Campaign> = await client.send(new GetCampaign({
-  campaign_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" // キャンペーンID
-}));
+```PYTHON
+response = client.send(pp.GetCampaign(
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"                # campaign_id: キャンペーンID
+))
 ```
 
 
 
 ### Parameters
-**`campaign_id`** 
-  
-
+#### `campaign_id`
 キャンペーンIDです。
 
 指定したIDのキャンペーンを取得します。存在しないIDを指定した場合は404エラー(NotFound)が返ります。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -953,6 +1063,8 @@ const response: Response<Campaign> = await client.send(new GetCampaign({
 }
 ```
 
+</details>
+
 
 
 成功したときは
@@ -968,94 +1080,79 @@ const response: Response<Campaign> = await client.send(new GetCampaign({
 ## UpdateCampaign: ポイント付与キャンペーンを更新する
 ポイント付与キャンペーンを更新します。
 
-
-```typescript
-const response: Response<Campaign> = await client.send(new UpdateCampaign({
-  campaign_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // キャンペーンID
-  name: "lEF94aThPURq2Q4ZM2ZH2d8EggWOOiiO67HWQCePWkLnY7y5P2vTc2kTDF85U9g31HpRLtjhMxgRT9FEddBtVan5HyW6Ua", // キャンペーン名
-  starts_at: "2024-02-27T04:19:25.000000Z", // キャンペーン開始日時
-  ends_at: "2023-09-20T09:15:04.000000Z", // キャンペーン終了日時
-  priority: 5453, // キャンペーンの適用優先度
-  event: "payment", // イベント種別
-  description: "eeBKUXDDy014vqgIch5W6XuTL0vlIdvdIMbz7wUi6BXoKUl0tR07369wBiPR32MXZafz3jffpT8lgGERnFdcWhSdaJfJ60D0H2T", // キャンペーンの説明文
-  status: "enabled", // キャンペーン作成時の状態
-  point_expires_at: "2020-04-06T09:47:28.000000Z", // ポイント有効期限(絶対日時指定)
-  point_expires_in_days: 7266, // ポイント有効期限(相対日数指定)
-  is_exclusive: false, // キャンペーンの重複設定
-  subject: "money", // ポイント付与の対象金額の種別
-  amount_based_point_rules: [{
-  "point_amount": 5,
-  "point_amount_unit": "percent",
-  "subject_more_than_or_equal": 1000,
-  "subject_less_than": 5000
-}, {
+```PYTHON
+response = client.send(pp.UpdateCampaign(
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",               # campaign_id: キャンペーンID
+                          name="rDsQyk3kwOisNW9XsMHBVPsrsYBnLGXRYzu4noxPXNWpdUvBBp2JsuVIINCRpxja7me48LNXqpqJtjZwJILsuUBm8J0tu2v6zDKp9iO7Ari3UHmo6XPE5Oqy1DljVh9nsqgzongKg5SFSpcaiWqMVEyXiabD2fPkrS1NvYbmwucdTPjBOMyHVeFGY5vB7gjE0J3rzoZQgeuXW4rw3Ob3VU", # キャンペーン名
+                          starts_at="2020-06-10T16:30:09.000000Z",              # キャンペーン開始日時
+                          ends_at="2024-09-08T03:51:51.000000Z",                # キャンペーン終了日時
+                          priority=7392,                                        # キャンペーンの適用優先度
+                          event="external-transaction",                         # イベント種別
+                          description="zDljJ6klDtciJUcw1wir4yYsQVBNqeXloDbzzGADkOfMAKTboQcaiYXr4rnNnjCoeQHMuXiGNUysmU86lvAOTbcLzXO1sbMRuBNUlL6K0ReLv75kg6qcs3cEpI1m3wABqtL3bdaVTKdkTjUxGpAh3awQs", # キャンペーンの説明文
+                          status="enabled",                                     # キャンペーン作成時の状態
+                          point_expires_at="2020-05-22T00:56:03.000000Z",       # ポイント有効期限(絶対日時指定)
+                          point_expires_in_days=8167,                           # ポイント有効期限(相対日数指定)
+                          is_exclusive=False,                                   # キャンペーンの重複設定
+                          subject="money",                                      # ポイント付与の対象金額の種別
+                          amount_based_point_rules=[{
   "point_amount": 5,
   "point_amount_unit": "percent",
   "subject_more_than_or_equal": 1000,
   "subject_less_than": 5000
-}, {
-  "point_amount": 5,
-  "point_amount_unit": "percent",
-  "subject_more_than_or_equal": 1000,
-  "subject_less_than": 5000
-}], // 取引金額ベースのポイント付与ルール
-  product_based_point_rules: [{
+}],                                                                             # 取引金額ベースのポイント付与ルール
+                          product_based_point_rules=[{
   "point_amount": 5,
   "point_amount_unit": "percent",
   "product_code": "4912345678904",
-  "is_multiply_by_count": true,
+  "is_multiply_by_count": True,
   "required_count": 2
 }, {
   "point_amount": 5,
   "point_amount_unit": "percent",
   "product_code": "4912345678904",
-  "is_multiply_by_count": true,
+  "is_multiply_by_count": True,
   "required_count": 2
-}], // 商品情報ベースのポイント付与ルール
-  blacklisted_product_rules: [{
+}],                                                                             # 商品情報ベースのポイント付与ルール
+                          blacklisted_product_rules=[{
   "product_code": "4912345678904",
   "classification_code": "c123"
-}], // 商品情報ベースのキャンペーンで除外対象にする商品リスト
-  applicable_days_of_week: [6, 5, 5], // キャンペーンを適用する曜日 (複数指定)
-  applicable_time_ranges: [{
-  "from": "12:00",
-  "to": "23:59"
-}, {
+}],                                                                             # 商品情報ベースのキャンペーンで除外対象にする商品リスト
+                          applicable_days_of_week=[1],                          # キャンペーンを適用する曜日 (複数指定)
+                          applicable_time_ranges=[{
   "from": "12:00",
   "to": "23:59"
-}, {
-  "from": "12:00",
-  "to": "23:59"
-}], // キャンペーンを適用する時間帯 (複数指定)
-  applicable_shop_ids: ["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"], // キャンペーン適用対象となる店舗IDのリスト
-  minimum_number_of_products: 3479, // キャンペーンを適用する1会計内の商品個数の下限
-  minimum_number_of_amount: 261, // キャンペーンを適用する1会計内の商品総額の下限
-  minimum_number_for_combination_purchase: 5057, // 複数種類の商品を同時購入するときの商品種別数の下限
-  exist_in_each_product_groups: false, // 複数の商品グループにつき1種類以上の商品購入によって発火するキャンペーンの指定フラグ
-  max_point_amount: 3581, // キャンペーンによって付与されるポイントの上限
-  max_total_point_amount: 1690, // キャンペーンによって付与されるの1人当たりの累計ポイントの上限
-  applicable_account_metadata: {
+}],                                                                             # キャンペーンを適用する時間帯 (複数指定)
+                          applicable_shop_ids=["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"], # キャンペーン適用対象となる店舗IDのリスト
+                          blacklisted_shop_ids=["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"], # キャンペーン適用対象外となる店舗IDのリスト(ブラックリスト方式)
+                          minimum_number_of_products=5653,                      # キャンペーンを適用する1会計内の商品個数の下限
+                          minimum_number_of_amount=5978,                        # キャンペーンを適用する1会計内の商品総額の下限
+                          minimum_number_for_combination_purchase=8470,         # 複数種類の商品を同時購入するときの商品種別数の下限
+                          exist_in_each_product_groups=True,                    # 複数の商品グループにつき1種類以上の商品購入によって発火するキャンペーンの指定フラグ
+                          max_point_amount=7507,                                # キャンペーンによって付与されるポイントの上限
+                          max_total_point_amount=1370,                          # キャンペーンによって付与されるの1人当たりの累計ポイントの上限
+                          applicable_account_metadata={
   "key": "sex",
   "value": "male"
-}, // ウォレットに紐付くメタデータが特定の値を持つときにのみ発火するキャンペーンを登録します。
-  applicable_transaction_metadata: {
+},                                                                              # ウォレットに紐付くメタデータが特定の値を持つときにのみ発火するキャンペーンを登録します。
+                          applicable_transaction_metadata={
   "key": "rank",
   "value": "bronze"
-}, // 取引時に指定するメタデータが特定の値を持つときにのみ発火するキャンペーンを登録します。
-  budget_caps_amount: 1787258036 // キャンペーン予算上限
-}));
+},                                                                              # 取引時に指定するメタデータが特定の値を持つときにのみ発火するキャンペーンを登録します。
+                          budget_caps_amount=323964643                          # キャンペーン予算上限
+))
 ```
 
 
 
 ### Parameters
-**`campaign_id`** 
-  
-
+#### `campaign_id`
 キャンペーンIDです。
 
 指定したIDのキャンペーンを更新します。存在しないIDを指定した場合は404エラー(NotFound)が返ります。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -1063,13 +1160,16 @@ const response: Response<Campaign> = await client.send(new UpdateCampaign({
 }
 ```
 
-**`name`** 
-  
+</details>
 
+#### `name`
 キャンペーン名です。
 
 ポイント付与によってできるチャージ取引の説明文に転記されます。取引説明文はエンドユーザーからも確認できます。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -1077,13 +1177,16 @@ const response: Response<Campaign> = await client.send(new UpdateCampaign({
 }
 ```
 
-**`starts_at`** 
-  
+</details>
 
+#### `starts_at`
 キャンペーン開始日時です。
 キャンペーン期間中のみポイントが付与されます。
 開始日時よりも終了日時が前のときはcampaign_invalid_periodエラー(422)になります。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -1091,13 +1194,16 @@ const response: Response<Campaign> = await client.send(new UpdateCampaign({
 }
 ```
 
-**`ends_at`** 
-  
+</details>
 
+#### `ends_at`
 キャンペーン終了日時です。
 キャンペーン期間中のみポイントが付与されます。
 開始日時よりも終了日時が前のときはcampaign_invalid_periodエラー(422)になります。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -1105,23 +1211,26 @@ const response: Response<Campaign> = await client.send(new UpdateCampaign({
 }
 ```
 
-**`priority`** 
-  
+</details>
 
+#### `priority`
 キャンペーンの適用優先度です。
 
 優先度が大きいものから順に適用判定されていきます。
 キャンペーン期間が重なっている同一の優先度のキャンペーンが存在するとcampaign_period_overlapsエラー(422)になります。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "integer"
 }
 ```
 
-**`event`** 
-  
+</details>
 
+#### `event`
 キャンペーンのトリガーとなるイベントの種類を指定します。
 
 以下のいずれかを指定できます。
@@ -1133,6 +1242,9 @@ const response: Response<Campaign> = await client.send(new UpdateCampaign({
 3. external-transaction
    ポケペイ外の取引(現金決済など)
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -1144,11 +1256,14 @@ const response: Response<Campaign> = await client.send(new UpdateCampaign({
 }
 ```
 
-**`description`** 
-  
+</details>
 
+#### `description`
 キャンペーンの内容を記載します。管理画面などでキャンペーンを管理するための説明文になります。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -1156,9 +1271,9 @@ const response: Response<Campaign> = await client.send(new UpdateCampaign({
 }
 ```
 
-**`status`** 
-  
+</details>
 
+#### `status`
 キャンペーン作成時の状態を指定します。デフォルトではenabledです。
 
 以下のいずれかを指定できます。
@@ -1168,6 +1283,9 @@ const response: Response<Campaign> = await client.send(new UpdateCampaign({
 2. disabled
    無効
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -1178,12 +1296,15 @@ const response: Response<Campaign> = await client.send(new UpdateCampaign({
 }
 ```
 
-**`point_expires_at`** 
-  
+</details>
 
+#### `point_expires_at`
 キャンペーンによって付与されるポイントの有効期限を絶対日時で指定します。
 省略した場合はマネーに設定された有効期限と同じものがポイントの有効期限となります。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -1191,12 +1312,15 @@ const response: Response<Campaign> = await client.send(new UpdateCampaign({
 }
 ```
 
-**`point_expires_in_days`** 
-  
+</details>
 
+#### `point_expires_in_days`
 キャンペーンによって付与されるポイントの有効期限を相対日数で指定します。
 省略した場合はマネーに設定された有効期限と同じものがポイントの有効期限となります。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "integer",
@@ -1204,23 +1328,26 @@ const response: Response<Campaign> = await client.send(new UpdateCampaign({
 }
 ```
 
-**`is_exclusive`** 
-  
+</details>
 
+#### `is_exclusive`
 キャンペーンの重ね掛けを行うかどうかのフラグです。
 
 これにtrueを指定すると他のキャンペーンと同時適用されません。デフォルト値はtrueです。
 falseを指定すると次の優先度の重ね掛け可能なキャンペーンの適用判定に進みます。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "boolean"
 }
 ```
 
-**`subject`** 
-  
+</details>
 
+#### `subject`
 ポイント付与額を計算する対象となる金額の種類を指定します。デフォルト値はallです。
 eventとしてexternal-transactionを指定した場合はポイントとマネーの区別がないためsubjectの指定に関わらず常にallとなります。
 
@@ -1233,6 +1360,9 @@ moneyを指定すると決済額の中で「マネー」を使って支払った
 all を指定すると決済額全体を対象にします (「ポイント」での取引額を含む)
 注意: event を topup にしたときはポイントの付与に対しても適用されます
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -1243,9 +1373,9 @@ all を指定すると決済額全体を対象にします (「ポイント」
 }
 ```
 
-**`amount_based_point_rules`** 
-  
+</details>
 
+#### `amount_based_point_rules`
 金額をベースとしてポイント付与を行うルールを指定します。
 amount_based_point_rules と product_based_point_rules はどちらか一方しか指定できません。
 各ルールは一つのみ適用され、条件に重複があった場合は先に記載されたものが優先されます。
@@ -1269,6 +1399,9 @@ amount_based_point_rules と product_based_point_rules はどちらか一方し
 ]
 ```
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "array",
@@ -1278,9 +1411,9 @@ amount_based_point_rules と product_based_point_rules はどちらか一方し
 }
 ```
 
-**`product_based_point_rules`** 
-  
+</details>
 
+#### `product_based_point_rules`
 商品情報をベースとしてポイント付与を行うルールを指定します。
 ルールは商品ごとに設定可能で、ルールの配列として指定します。
 amount_based_point_rules と product_based_point_rules はどちらか一方しか指定できません。
@@ -1327,6 +1460,9 @@ event が payment か external-transaction の時のみ有効です。
 ]
 ```
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "array",
@@ -1336,13 +1472,16 @@ event が payment か external-transaction の時のみ有効です。
 }
 ```
 
-**`blacklisted_product_rules`** 
-  
+</details>
 
+#### `blacklisted_product_rules`
 商品情報をベースとしてポイント付与を行う際に、事前に除外対象とする商品リストを指定します。
 除外対象の商品コード、または分類コードのパターンの配列として指定します。
 取引時には、まずここで指定した除外対象商品が除かれ、残った商品に対して `product_based_point_rules` のルール群が適用されます。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "array",
@@ -1352,13 +1491,16 @@ event が payment か external-transaction の時のみ有効です。
 }
 ```
 
-**`applicable_days_of_week`** 
-  
+</details>
 
+#### `applicable_days_of_week`
 キャンペーンを適用する曜日を指定します (複数指定)。
 曜日は整数で表します。月曜を 0 とし、日曜を 6 とします。
 指定しなかった場合は全日を対象にします (曜日による適用条件なし)
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "array",
@@ -1370,13 +1512,16 @@ event が payment か external-transaction の時のみ有効です。
 }
 ```
 
-**`applicable_time_ranges`** 
-  
+</details>
 
+#### `applicable_time_ranges`
 キャンペーンを適用する時間帯を指定します (複数指定可)。
 時間帯はfromとtoからなるオブジェクトで指定します。
 fromとtoは両方必要です。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "array",
@@ -1386,12 +1531,35 @@ fromとtoは両方必要です。
 }
 ```
 
-**`applicable_shop_ids`** 
-  
+</details>
 
+#### `applicable_shop_ids`
 キャンペーンを適用する店舗IDを指定します (複数指定)。
 指定しなかった場合は全店舗が対象になります。
 
+<details>
+<summary>スキーマ</summary>
+
+```json
+{
+  "type": "array",
+  "items": {
+    "type": "string",
+    "format": "uuid"
+  }
+}
+```
+
+</details>
+
+#### `blacklisted_shop_ids`
+キャンペーンの適用対象外となる店舗IDをブラックリスト方式で指定します (複数指定可)。
+このパラメータが指定されている場合、blacklisted_shop_idsに含まれていない店舗全てがキャンペーンの適用対象になります。
+blacklisted_shop_idsとapplicable_shop_idsは同時には指定できません。ホワイトリスト方式を使うときはapplicable_shop_idsを指定してください。
+
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "array",
@@ -1402,11 +1570,14 @@ fromとtoは両方必要です。
 }
 ```
 
-**`minimum_number_of_products`** 
-  
+</details>
 
+#### `minimum_number_of_products`
 このパラメータを指定すると、取引時の1会計内のルールに適合する商品個数がminimum_number_of_productsを超えたときにのみキャンペーンが発火するようになります。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "integer",
@@ -1414,11 +1585,14 @@ fromとtoは両方必要です。
 }
 ```
 
-**`minimum_number_of_amount`** 
-  
+</details>
 
+#### `minimum_number_of_amount`
 このパラメータを指定すると、取引時の1会計内のルールに適合する商品総額がminimum_number_of_amountを超えたときにのみキャンペーンが発火するようになります。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "integer",
@@ -1426,9 +1600,9 @@ fromとtoは両方必要です。
 }
 ```
 
-**`minimum_number_for_combination_purchase`** 
-  
+</details>
 
+#### `minimum_number_for_combination_purchase`
 複数種別の商品を同時購入したとき、同時購入キャンペーンの対象となる商品種別数の下限です。
 
 このパラメータを指定するときは product_based_point_rules で商品毎のルールが指定されている必要があります。
@@ -1501,6 +1675,9 @@ fromとtoは両方必要です。
 }
 ```
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "integer",
@@ -1508,9 +1685,9 @@ fromとtoは両方必要です。
 }
 ```
 
-**`exist_in_each_product_groups`** 
-  
+</details>
 
+#### `exist_in_each_product_groups`
 複数の商品グループの各グループにつき1種類以上の商品が購入されることによって発火するキャンペーンであるときに真を指定します。デフォルトは偽です。
 
 このパラメータを指定するときは product_based_point_rules で商品毎のルールが指定され、さらにその中でgroup_idが指定されている必要があります。group_idは正の整数です。
@@ -1591,19 +1768,25 @@ exist_in_each_product_groupsが指定されているにも関わらず商品毎
 
 このキャンペーンが設定された状態で、商品a1、b1が同時に購入された場合、各商品に対する個別のルールが適用された上での総和がポイント付与値になりますが、付与値の上限が100ポイントになります。つまり100 + 200=300と計算されますが上限額の100ポイントが実際の付与値になります。商品a1、a2、 b1、b2が同時に購入された場合は100 + 100 + 200 + 200=600ですが上限額の100がポイント付与値になります。 商品a1、a2が同時に購入された場合は全商品グループから1種以上購入されるという条件を満たしていないためポイントは付与されません。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "boolean"
 }
 ```
 
-**`max_point_amount`** 
-  
+</details>
 
+#### `max_point_amount`
 キャンペーンによって付与される1取引当たりのポイント数の上限を指定します。デフォルトは未指定です。
 
 このパラメータが指定されている場合、amount_based_point_rules や product_based_point_rules によって計算されるポイント付与値がmax_point_amountを越えている場合、max_point_amountの値がポイント付与値となり、越えていない場合はその値がポイント付与値となります。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "integer",
@@ -1611,14 +1794,17 @@ exist_in_each_product_groupsが指定されているにも関わらず商品毎
 }
 ```
 
-**`max_total_point_amount`** 
-  
+</details>
 
+#### `max_total_point_amount`
 キャンペーンによって付与される1人当たりの累計ポイント数の上限を指定します。デフォルトは未指定です。
 
 このパラメータが指定されている場合、各ユーザに対してそのキャンペーンによって過去付与されたポイントの累積値が記録されるようになります。
 累積ポイント数がmax_total_point_amountを超えない限りにおいてキャンペーンで算出されたポイントが付与されます。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "integer",
@@ -1626,9 +1812,9 @@ exist_in_each_product_groupsが指定されているにも関わらず商品毎
 }
 ```
 
-**`applicable_account_metadata`** 
-  
+</details>
 
+#### `applicable_account_metadata`
 ウォレットに紐付くメタデータが特定の値を持つときにのみ発火するキャンペーンを登録します。
 メタデータの属性名 key とメタデータの値 value の組をオブジェクトとして指定します。
 ウォレットのメタデータはCreateUserAccountやUpdateCustomerAccountで登録できます。
@@ -1655,15 +1841,18 @@ exist_in_each_product_groupsが指定されているにも関わらず商品毎
 }
 ```
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "object"
 }
 ```
 
-**`applicable_transaction_metadata`** 
-  
+</details>
 
+#### `applicable_transaction_metadata`
 取引時に指定するメタデータが特定の値を持つときにのみ発火するキャンペーンを登録します。
 メタデータの属性名 key とメタデータの値 value の組をオブジェクトとして指定します。
 取引のメタデータはCreatePaymentTransactionやCreateExternalTransactionで登録できます。
@@ -1690,15 +1879,18 @@ exist_in_each_product_groupsが指定されているにも関わらず商品毎
 }
 ```
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "object"
 }
 ```
 
-**`budget_caps_amount`** 
-  
+</details>
 
+#### `budget_caps_amount`
 キャンペーンの予算上限を指定します。
 
 キャンペーン予算上限が設定されておらずこのパラメータに数値が指定されている場合、このキャンペーンの適用により付与されたポイント全体を定期的に集計し、その合計が上限を越えていた場合にはキャンペーンを無効にします。
@@ -1706,6 +1898,9 @@ exist_in_each_product_groupsが指定されているにも関わらず商品毎
 キャンペーン予算上限が設定されておらずこのパラメータにnullが指定されている場合、何も発生しない。
 キャンペーン予算上限が設定されておりこのパラメータにnullが指定された場合、キャンペーン予算上限は止まります。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "integer",
@@ -1714,6 +1909,8 @@ exist_in_each_product_groupsが指定されているにも関わらず商品毎
 }
 ```
 
+</details>
+
 
 
 成功したときは
diff --git a/docs/cashtray.md b/docs/cashtray.md
index d81b5ce..0c9da24 100644
--- a/docs/cashtray.md
+++ b/docs/cashtray.md
@@ -1,9 +1,172 @@
 # Cashtray
 Cashtrayは支払いとチャージ両方に使えるQRコードで、店舗ユーザとエンドユーザーの間の主に店頭などでの取引のために用いられます。
+店舗ユーザはCashtrayの状態を監視することができ、取引の成否やエラー事由を知ることができます。
 Cashtrayによる取引では、エンドユーザーがQRコードを読み取った時点で即時取引が作られ、ユーザに対して受け取り確認画面は表示されません。
 Cashtrayはワンタイムで、一度読み取りに成功するか、取引エラーになると失効します。
 また、Cashtrayには有効期限があり、デフォルトでは30分で失効します。
 
+<a name="create-transaction-with-cashtray"></a>
+## CreateTransactionWithCashtray: CashtrayQRコードを読み取ることで取引する
+エンドユーザーから受け取ったCashtray用QRコードのIDをエンドユーザーIDと共に渡すことで支払いあるいはチャージ取引が作られます。
+
+通常CashtrayQRコードはエンドユーザーのアプリによって読み取られ、アプリとポケペイサーバとの直接通信によって取引が作られます。
+もしエンドユーザーとの通信をパートナーのサーバのみに限定したい場合、パートナーのサーバがCashtrayQRの情報をエンドユーザーから代理受けして、サーバ間連携APIによって実際のチャージ取引をリクエストすることになります。
+
+```PYTHON
+response = client.send(pp.CreateTransactionWithCashtray(
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",               # cashtray_id: Cashtray用QRコードのID
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",               # customer_id: エンドユーザーのID
+                          strategy="money-only",                                # 支払い時の残高消費方式
+                          request_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"     # リクエストID
+))
+```
+
+
+
+### Parameters
+#### `cashtray_id`
+Cashtray用QRコードのIDです。
+
+QRコード生成時に送金元店舗のウォレット情報や、金額などが登録されています。
+
+<details>
+<summary>スキーマ</summary>
+
+```json
+{
+  "type": "string",
+  "format": "uuid"
+}
+```
+
+</details>
+
+#### `customer_id`
+エンドユーザーIDです。
+
+<details>
+<summary>スキーマ</summary>
+
+```json
+{
+  "type": "string",
+  "format": "uuid"
+}
+```
+
+</details>
+
+#### `strategy`
+支払い時に残高がどのように消費されるかを指定します。
+チャージの場合は無効です。
+デフォルトでは point-preferred (ポイント優先)が採用されます。
+
+- point-preferred: ポイント残高が優先的に消費され、ポイントがなくなり次第マネー残高から消費されていきます(デフォルト動作)
+- money-only: マネー残高のみから消費され、ポイント残高は使われません
+
+マネー設定でポイント残高のみの利用に設定されている場合(display_money_and_point が point-only の場合)、 strategy の指定に関わらずポイント優先になります。
+
+<details>
+<summary>スキーマ</summary>
+
+```json
+{
+  "type": "string",
+  "enum": [
+    "point-preferred",
+    "money-only"
+  ]
+}
+```
+
+</details>
+
+#### `request_id`
+取引作成APIの羃等性を担保するためのリクエスト固有のIDです。
+
+取引作成APIで結果が受け取れなかったなどの理由で再試行する際に、二重に取引が作られてしまうことを防ぐために、クライアント側から指定されます。
+指定は任意で、UUID V4フォーマットでランダム生成した文字列です。リクエストIDは一定期間で削除されます。
+
+リクエストIDを指定したとき、まだそのリクエストIDに対する取引がない場合、新規に取引が作られレスポンスとして返されます。
+もしそのリクエストIDに対する取引が既にある場合、既存の取引がレスポンスとして返されます。
+既に存在する、別のユーザによる取引とリクエストIDが衝突した場合、request_id_conflictが返ります。
+
+<details>
+<summary>スキーマ</summary>
+
+```json
+{
+  "type": "string",
+  "format": "uuid"
+}
+```
+
+</details>
+
+
+
+成功したときは
+[TransactionDetail](./responses.md#transaction-detail)
+を返します
+
+### Error Responses
+|status|type|ja|en|
+|---|---|---|---|
+|403|unpermitted_admin_user|この管理ユーザには権限がありません|Admin does not have permission|
+|422|account_not_found|アカウントが見つかりません|The account is not found|
+|422|cashtray_not_found|決済QRコードが見つかりません|Cashtray is not found|
+|422|coupon_not_found|クーポンが見つかりませんでした。|The coupon is not found.|
+|422|credit_session_money_topup_requires_credit_card|オーソリチャージ用マネーではクレジットカードによるチャージのみ許可されています|Credit card is required for topup on credit-session enabled money|
+|422|cannot_topup_during_cvs_authorization_pending|コンビニ決済の予約中はチャージできません|You cannot topup your account while a convenience store payment is pending.|
+|422|credit_session_not_found|オーソリセッションが見つかりません|Credit session not found|
+|422|not_applicable_transaction_type_for_account_topup_quota|チャージ取引以外の取引種別ではチャージ可能枠を使用できません|Account topup quota is not applicable to transaction types other than topup.|
+|422|private_money_topup_quota_not_available|このマネーにはチャージ可能枠の設定がありません|Topup quota is not available with this private money.|
+|422|account_can_not_topup|この店舗からはチャージできません|account can not topup|
+|422|private_money_closed|このマネーは解約されています|This money was closed|
+|422|transaction_has_done|取引は完了しており、キャンセルすることはできません|Transaction has been copmpleted and cannot be canceled|
+|422|account_restricted|特定のアカウントの支払いに制限されています|The account is restricted to pay for a specific account|
+|422|account_balance_not_enough|口座残高が不足してます|The account balance is not enough|
+|422|c2c_transfer_not_allowed|このマネーではユーザ間マネー譲渡は利用できません|Customer to customer transfer is not available for this money|
+|422|account_transfer_limit_exceeded|取引金額が上限を超えました|Too much amount to transfer|
+|422|account_balance_exceeded|口座残高が上限を超えました|The account balance exceeded the limit|
+|422|account_money_topup_transfer_limit_exceeded|マネーチャージ金額が上限を超えました|Too much amount to money topup transfer|
+|422|account_topup_quota_not_splittable|このチャージ可能枠は設定された金額未満の金額には使用できません|This topup quota is only applicable to its designated money amount.|
+|422|topup_amount_exceeding_topup_quota_usable_amount|チャージ金額がチャージ可能枠の利用可能金額を超えています|Topup amount is exceeding the topup quota's usable amount|
+|422|account_topup_quota_inactive|指定されたチャージ可能枠は有効ではありません|Topup quota is inactive|
+|422|account_topup_quota_not_within_applicable_period|指定されたチャージ可能枠の利用可能期間外です|Topup quota is not applicable at this time|
+|422|account_topup_quota_not_found|ウォレットにチャージ可能枠がありません|Topup quota is not found with this account|
+|422|account_total_topup_limit_range|合計チャージ額がマネーで指定された期間内での上限を超えています|The topup exceeds the total amount within the period defined by the money.|
+|422|account_total_topup_limit_entire_period|合計チャージ額がマネーで指定された期間内での上限を超えています|The topup exceeds the total amount defined by the money.|
+|422|coupon_unavailable_shop|このクーポンはこの店舗では使用できません。|This coupon is unavailable for this shop.|
+|422|coupon_already_used|このクーポンは既に使用済みです。|This coupon is already used.|
+|422|coupon_not_received|このクーポンは受け取られていません。|This coupon is not received.|
+|422|coupon_not_sent|このウォレットに対して配信されていないクーポンです。|This coupon is not sent to this account yet.|
+|422|coupon_amount_not_enough|このクーポンを使用するには支払い額が足りません。|The payment amount not enough to use this coupon.|
+|422|coupon_not_payment|クーポンは支払いにのみ使用できます。|Coupons can only be used for payment.|
+|422|coupon_unavailable|このクーポンは使用できません。|This coupon is unavailable.|
+|422|account_suspended|アカウントは停止されています|The account is suspended|
+|422|account_closed|アカウントは退会しています|The account is closed|
+|422|customer_account_not_found||The customer account is not found|
+|422|shop_account_not_found|店舗アカウントが見つかりません|The shop account is not found|
+|422|account_currency_mismatch|アカウント間で通貨が異なっています|Currency mismatch between accounts|
+|422|account_pre_closed|アカウントは退会準備中です|The account is pre-closed|
+|422|account_not_accessible|アカウントにアクセスできません|The account is not accessible by this user|
+|422|terminal_is_invalidated|端末は無効化されています|The terminal is already invalidated|
+|422|same_account_transaction|同じアカウントに送信しています|Sending to the same account|
+|422|transaction_invalid_done_at|取引完了日が無効です|Transaction completion date is invalid|
+|422|transaction_invalid_amount|取引金額が数値ではないか、受け入れられない桁数です|Transaction amount is not a number or cannot be accepted for this currency|
+|422|request_id_conflict|このリクエストIDは他の取引ですでに使用されています。お手数ですが、別のリクエストIDで最初からやり直してください。|The request_id is already used by another transaction. Try again with new request id|
+|422|reserved_word_can_not_specify_to_metadata|取引メタデータに予約語は指定出来ません|Reserved word can not specify to metadata|
+|422|invalid_metadata|メタデータの形式が不正です|Invalid metadata format|
+|422|cashtray_already_proceed|この決済QRコードは既に処理されています|Cashtray is already proceed|
+|422|cashtray_expired|この決済QRコードは有効期限が切れています|Cashtray is expired|
+|422|cashtray_already_canceled|この決済QRコードは既に無効化されています|Cashtray is already canceled|
+|503|temporarily_unavailable||Service Unavailable|
+
+
+
+---
+
 
 <a name="create-cashtray"></a>
 ## CreateCashtray: Cashtrayを作る
@@ -14,25 +177,25 @@ Cashtrayを作成します。
 
 その他に、Cashtrayから作られる取引に対する説明文や失効時間を指定できます。
 
-
-```typescript
-const response: Response<Cashtray> = await client.send(new CreateCashtray({
-  private_money_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // マネーID
-  shop_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // 店舗ユーザーID
-  amount: 2174.0, // 金額
-  description: "たい焼き(小倉)", // 取引履歴に表示する説明文
-  expires_in: 2651 // 失効時間(秒)
-}));
+```PYTHON
+response = client.send(pp.CreateCashtray(
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",               # private_money_id: マネーID
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",               # shop_id: 店舗ユーザーID
+                          2561.0,                                               # amount: 金額
+                          description="たい焼き(小倉)",                               # 取引履歴に表示する説明文
+                          expires_in=5484                                       # 失効時間(秒)
+))
 ```
 
 
 
 ### Parameters
-**`private_money_id`** 
-  
-
+#### `private_money_id`
 取引対象のマネーのIDです(必須項目)。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -40,11 +203,14 @@ const response: Response<Cashtray> = await client.send(new CreateCashtray({
 }
 ```
 
-**`shop_id`** 
-  
+</details>
 
+#### `shop_id`
 店舗のユーザーIDです(必須項目)。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -52,24 +218,30 @@ const response: Response<Cashtray> = await client.send(new CreateCashtray({
 }
 ```
 
-**`amount`** 
-  
+</details>
 
+#### `amount`
 マネー額です(必須項目)。
 正の値を与えるとチャージになり、負の値を与えると支払いとなります。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "number"
 }
 ```
 
-**`description`** 
-  
+</details>
 
+#### `description`
 Cashtrayを読み取ったときに作られる取引の説明文です(最大200文字、任意項目)。
 アプリや管理画面などの取引履歴に表示されます。デフォルトでは空文字になります。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -77,11 +249,14 @@ Cashtrayを読み取ったときに作られる取引の説明文です(最大20
 }
 ```
 
-**`expires_in`** 
-  
+</details>
 
+#### `expires_in`
 Cashtrayが失効するまでの時間を秒単位で指定します(任意項目、デフォルト値は1800秒(30分))。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "integer",
@@ -89,6 +264,8 @@ Cashtrayが失効するまでの時間を秒単位で指定します(任意項
 }
 ```
 
+</details>
+
 
 
 成功したときは
@@ -114,20 +291,21 @@ Cashtrayを無効化します。
 これにより、 `GetCashtray` のレスポンス中の `canceled_at` に無効化時点での現在時刻が入るようになります。
 エンドユーザーが無効化されたQRコードを読み取ると `cashtray_already_canceled` エラーとなり、取引は失敗します。
 
-```typescript
-const response: Response<Cashtray> = await client.send(new CancelCashtray({
-  cashtray_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" // CashtrayのID
-}));
+```PYTHON
+response = client.send(pp.CancelCashtray(
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"                # cashtray_id: CashtrayのID
+))
 ```
 
 
 
 ### Parameters
-**`cashtray_id`** 
-  
-
+#### `cashtray_id`
 無効化するCashtrayのIDです。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -135,6 +313,8 @@ const response: Response<Cashtray> = await client.send(new CancelCashtray({
 }
 ```
 
+</details>
+
 
 
 成功したときは
@@ -207,20 +387,21 @@ if (attempt == null) {
 }
 ```
 
-```typescript
-const response: Response<CashtrayWithResult> = await client.send(new GetCashtray({
-  cashtray_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" // CashtrayのID
-}));
+```PYTHON
+response = client.send(pp.GetCashtray(
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"                # cashtray_id: CashtrayのID
+))
 ```
 
 
 
 ### Parameters
-**`cashtray_id`** 
-  
-
+#### `cashtray_id`
 情報を取得するCashtrayのIDです。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -228,6 +409,8 @@ const response: Response<CashtrayWithResult> = await client.send(new GetCashtray
 }
 ```
 
+</details>
+
 
 
 成功したときは
@@ -243,23 +426,24 @@ const response: Response<CashtrayWithResult> = await client.send(new GetCashtray
 ## UpdateCashtray: Cashtrayの情報を更新する
 Cashtrayの内容を更新します。bodyパラメーターは全て省略可能で、指定したもののみ更新されます。
 
-```typescript
-const response: Response<Cashtray> = await client.send(new UpdateCashtray({
-  cashtray_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // CashtrayのID
-  amount: 4502.0, // 金額
-  description: "たい焼き(小倉)", // 取引履歴に表示する説明文
-  expires_in: 5907 // 失効時間(秒)
-}));
+```PYTHON
+response = client.send(pp.UpdateCashtray(
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",               # cashtray_id: CashtrayのID
+                          amount=4123.0,                                        # 金額
+                          description="たい焼き(小倉)",                               # 取引履歴に表示する説明文
+                          expires_in=4449                                       # 失効時間(秒)
+))
 ```
 
 
 
 ### Parameters
-**`cashtray_id`** 
-  
-
+#### `cashtray_id`
 更新対象のCashtrayのIDです。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -267,24 +451,30 @@ const response: Response<Cashtray> = await client.send(new UpdateCashtray({
 }
 ```
 
-**`amount`** 
-  
+</details>
 
+#### `amount`
 マネー額です(任意項目)。
 正の値を与えるとチャージになり、負の値を与えると支払いとなります。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "number"
 }
 ```
 
-**`description`** 
-  
+</details>
 
+#### `description`
 Cashtrayを読み取ったときに作られる取引の説明文です(最大200文字、任意項目)。
 アプリや管理画面などの取引履歴に表示されます。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -292,11 +482,14 @@ Cashtrayを読み取ったときに作られる取引の説明文です(最大20
 }
 ```
 
-**`expires_in`** 
-  
+</details>
 
+#### `expires_in`
 Cashtrayが失効するまでの時間を秒で指定します(任意項目、デフォルト値は1800秒(30分))。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "integer",
@@ -304,6 +497,8 @@ Cashtrayが失効するまでの時間を秒で指定します(任意項目、
 }
 ```
 
+</details>
+
 
 
 成功したときは
diff --git a/docs/check.md b/docs/check.md
index 408def1..6756e3a 100644
--- a/docs/check.md
+++ b/docs/check.md
@@ -5,35 +5,36 @@
 
 `https://www-sandbox.pokepay.jp/checks/xxxxxxxx-xxxx-xxxxxxxxx-xxxxxxxxxxxx`
 
-QRコードを読み取る方法以外にも、このURLリンクを直接スマートフォン(iOS/Android)上で開くことによりアプリが起動して取引が行われます。(注意: 上記URLはsandbox環境であるため、アプリもsandbox環境のものである必要があります) 上記URL中の `xxxxxxxx-xxxx-xxxxxxxxx-xxxxxxxxxxxx` の部分がチャージQRコードのIDです。
-
+QRコードを読み取る方法以外にも、このURLリンクを直接スマートフォン(iOS/Android)上で開くことによりアプリが起動して取引が行われます。(注: 上記URLはsandbox環境であるため、アプリもsandbox環境のものである必要があります)
+上記URL中の `xxxxxxxx-xxxx-xxxxxxxxx-xxxxxxxxxxxx` の部分がチャージQRコードのIDです。
 
 <a name="list-checks"></a>
 ## ListChecks: チャージQRコード一覧の取得
 
-```typescript
-const response: Response<PaginatedChecks> = await client.send(new ListChecks({
-  page: 7019, // ページ番号
-  per_page: 50, // 1ページの表示数
-  private_money_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // マネーID
-  organization_code: "N9K7EVH4f0IDf80jI5hM", // 組織コード
-  expires_from: "2023-08-24T10:24:13.000000Z", // 有効期限の期間によるフィルター(開始時点)
-  expires_to: "2021-12-12T10:58:03.000000Z", // 有効期限の期間によるフィルター(終了時点)
-  created_from: "2021-10-01T09:55:54.000000Z", // 作成日時の期間によるフィルター(開始時点)
-  created_to: "2020-07-27T23:18:31.000000Z", // 作成日時の期間によるフィルター(終了時点)
-  issuer_shop_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // 発行店舗ID
-  description: "a", // チャージQRコードの説明文
-  is_onetime: false, // ワンタイムのチャージQRコードかどうか
-  is_disabled: false // 無効化されたチャージQRコードかどうか
-}));
+```PYTHON
+response = client.send(pp.ListChecks(
+                          page=1535,                                            # ページ番号
+                          per_page=50,                                          # 1ページの表示数
+                          private_money_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", # マネーID
+                          organization_code="AuhO2DrrEN6v7h6DIeIXBVaS0Zi07",    # 組織コード
+                          expires_from="2025-09-03T17:37:28.000000Z",           # 有効期限の期間によるフィルター(開始時点)
+                          expires_to="2023-07-15T09:05:54.000000Z",             # 有効期限の期間によるフィルター(終了時点)
+                          created_from="2025-01-11T07:09:28.000000Z",           # 作成日時の期間によるフィルター(開始時点)
+                          created_to="2026-06-05T15:26:18.000000Z",             # 作成日時の期間によるフィルター(終了時点)
+                          issuer_shop_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", # 発行店舗ID
+                          description="JykFEWCq",                               # チャージQRコードの説明文
+                          is_onetime=False,                                     # ワンタイムのチャージQRコードかどうか
+                          is_disabled=True                                      # 無効化されたチャージQRコードかどうか
+))
 ```
 
 
 
 ### Parameters
-**`page`** 
-  
+#### `page`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -42,11 +43,14 @@ const response: Response<PaginatedChecks> = await client.send(new ListChecks({
 }
 ```
 
-**`per_page`** 
-  
+</details>
 
+#### `per_page`
 1ページ当たり表示数です。デフォルト値は50です。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "integer",
@@ -54,11 +58,13 @@ const response: Response<PaginatedChecks> = await client.send(new ListChecks({
 }
 ```
 
-**`private_money_id`** 
-  
+</details>
 
+#### `private_money_id`
 チャージQRコードのチャージ対象のマネーIDで結果をフィルターします。
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -67,12 +73,15 @@ const response: Response<PaginatedChecks> = await client.send(new ListChecks({
 }
 ```
 
-**`organization_code`** 
-  
+</details>
 
+#### `organization_code`
 チャージQRコードの発行店舗の所属組織の組織コードで結果をフィルターします。
 デフォルトでは未指定です。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -80,12 +89,14 @@ const response: Response<PaginatedChecks> = await client.send(new ListChecks({
 }
 ```
 
-**`expires_from`** 
-  
+</details>
 
+#### `expires_from`
 有効期限の期間によるフィルターの開始時点のタイムスタンプです。
 デフォルトでは未指定です。
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -94,12 +105,14 @@ const response: Response<PaginatedChecks> = await client.send(new ListChecks({
 }
 ```
 
-**`expires_to`** 
-  
+</details>
 
+#### `expires_to`
 有効期限の期間によるフィルターの終了時点のタイムスタンプです。
 デフォルトでは未指定です。
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -108,12 +121,14 @@ const response: Response<PaginatedChecks> = await client.send(new ListChecks({
 }
 ```
 
-**`created_from`** 
-  
+</details>
 
+#### `created_from`
 作成日時の期間によるフィルターの開始時点のタイムスタンプです。
 デフォルトでは未指定です。
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -122,12 +137,14 @@ const response: Response<PaginatedChecks> = await client.send(new ListChecks({
 }
 ```
 
-**`created_to`** 
-  
+</details>
 
+#### `created_to`
 作成日時の期間によるフィルターの終了時点のタイムスタンプです。
 デフォルトでは未指定です。
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -136,12 +153,14 @@ const response: Response<PaginatedChecks> = await client.send(new ListChecks({
 }
 ```
 
-**`issuer_shop_id`** 
-  
+</details>
 
+#### `issuer_shop_id`
 チャージQRコードを発行した店舗IDによってフィルターします。
 デフォルトでは未指定です。
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -150,13 +169,15 @@ const response: Response<PaginatedChecks> = await client.send(new ListChecks({
 }
 ```
 
-**`description`** 
-  
+</details>
 
+#### `description`
 チャージQRコードの説明文(description)によってフィルターします。
 部分一致(前方一致)したものを表示します。
 デフォルトでは未指定です。
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -164,14 +185,16 @@ const response: Response<PaginatedChecks> = await client.send(new ListChecks({
 }
 ```
 
-**`is_onetime`** 
-  
+</details>
 
+#### `is_onetime`
 チャージQRコードがワンタイムに設定されているかどうかでフィルターします。
 `true` の場合はワンタイムかどうかでフィルターし、`false`の場合はワンタイムでないものをフィルターします。
 未指定の場合はフィルターしません。
 デフォルトでは未指定です。
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -179,14 +202,16 @@ const response: Response<PaginatedChecks> = await client.send(new ListChecks({
 }
 ```
 
-**`is_disabled`** 
-  
+</details>
 
+#### `is_disabled`
 チャージQRコードが無効化されているかどうかでフィルターします。
 `true` の場合は無効なものをフィルターし、`false`の場合は有効なものをフィルターします。
 未指定の場合はフィルターしません。
 デフォルトでは未指定です。
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -194,6 +219,8 @@ const response: Response<PaginatedChecks> = await client.send(new ListChecks({
 }
 ```
 
+</details>
+
 
 
 成功したときは
@@ -205,7 +232,8 @@ const response: Response<PaginatedChecks> = await client.send(new ListChecks({
 |---|---|---|---|
 |403|unpermitted_admin_user|この管理ユーザには権限がありません|Admin does not have permission|
 |422|organization_not_found||Organization not found|
-|422|private_money_not_found||Private money not found|
+|422|private_money_not_found|マネーが見つかりません|Private money not found|
+|503|temporarily_unavailable||Service Unavailable|
 
 
 
@@ -215,19 +243,19 @@ const response: Response<PaginatedChecks> = await client.send(new ListChecks({
 <a name="create-check"></a>
 ## CreateCheck: チャージQRコードの発行
 
-```typescript
-const response: Response<Check> = await client.send(new CreateCheck({
-  account_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // 送金元の店舗アカウントID
-  money_amount: 1376.0, // 付与マネー額
-  point_amount: 1264.0, // 付与ポイント額
-  description: "test check", // 説明文(アプリ上で取引の説明文として表示される)
-  is_onetime: false, // ワンタイムかどうかのフラグ
-  usage_limit: 396, // ワンタイムでない場合の最大読み取り回数
-  expires_at: "2020-07-16T13:54:51.000000Z", // チャージQRコード自体の失効日時
-  point_expires_at: "2024-03-08T20:32:06.000000Z", // チャージQRコードによって付与されるポイント残高の有効期限
-  point_expires_in_days: 60, // チャージQRコードによって付与されるポイント残高の有効期限(相対日数指定)
-  bear_point_account: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" // ポイント額を負担する店舗のウォレットID
-}));
+```PYTHON
+response = client.send(pp.CreateCheck(
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",               # account_id: 送金元の店舗アカウントID
+                          money_amount=695.0,                                   # 付与マネー額
+                          point_amount=5262.0,                                  # 付与ポイント額
+                          description="test check",                             # 説明文(アプリ上で取引の説明文として表示される)
+                          is_onetime=True,                                      # ワンタイムかどうかのフラグ
+                          usage_limit=8837,                                     # ワンタイムでない場合の最大読み取り回数
+                          expires_at="2023-09-22T01:33:26.000000Z",             # チャージQRコード自体の失効日時
+                          point_expires_at="2025-04-29T03:36:39.000000Z",       # チャージQRコードによって付与されるポイント残高の有効期限
+                          point_expires_in_days=60,                             # チャージQRコードによって付与されるポイント残高の有効期限(相対日数指定)
+                          bear_point_account="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" # ポイント額を負担する店舗のウォレットID
+))
 ```
 
 
@@ -236,12 +264,12 @@ const response: Response<Check> = await client.send(new CreateCheck({
 
 
 ### Parameters
-**`money_amount`** 
-  
-
+#### `money_amount`
 チャージQRコードによって付与されるマネー額です。
 `money_amount`と`point_amount`の少なくともどちらかは指定する必要があります。
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -251,12 +279,14 @@ const response: Response<Check> = await client.send(new CreateCheck({
 }
 ```
 
-**`point_amount`** 
-  
+</details>
 
+#### `point_amount`
 チャージQRコードによって付与されるポイント額です。
 `money_amount`と`point_amount`の少なくともどちらかは指定する必要があります。
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -266,9 +296,12 @@ const response: Response<Check> = await client.send(new CreateCheck({
 }
 ```
 
-**`account_id`** 
-  
+</details>
 
+#### `account_id`
+
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -277,9 +310,12 @@ const response: Response<Check> = await client.send(new CreateCheck({
 }
 ```
 
-**`description`** 
-  
+</details>
+
+#### `description`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -288,13 +324,15 @@ const response: Response<Check> = await client.send(new CreateCheck({
 }
 ```
 
-**`is_onetime`** 
-  
+</details>
 
+#### `is_onetime`
 チャージQRコードが一度の読み取りで失効するときに`true`にします。デフォルト値は`true`です。
 `false`の場合、複数ユーザによって読み取り可能なQRコードになります。
 ただし、その場合も1ユーザにつき1回のみしか読み取れません。
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -302,14 +340,16 @@ const response: Response<Check> = await client.send(new CreateCheck({
 }
 ```
 
-**`usage_limit`** 
-  
+</details>
 
+#### `usage_limit`
 複数ユーザによって読み取り可能なチャージQRコードの最大読み取り回数を指定します。
 NULLに設定すると無制限に読み取り可能なチャージQRコードになります。
 デフォルト値はNULLです。
 ワンタイム指定(`is_onetime`)がされているときは、本パラメータはNULLである必要があります。
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -317,13 +357,15 @@ NULLに設定すると無制限に読み取り可能なチャージQRコード
 }
 ```
 
-**`expires_at`** 
-  
+</details>
 
+#### `expires_at`
 チャージQRコード自体の失効日時を指定します。この日時以降はチャージQRコードを読み取れなくなります。デフォルトでは作成日時から3ヶ月後になります。
 
 チャージQRコード自体の失効日時であって、チャージQRコードによって付与されるマネー残高の有効期限とは異なることに注意してください。マネー残高の有効期限はマネー設定で指定されているものになります。
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -332,13 +374,15 @@ NULLに設定すると無制限に読み取り可能なチャージQRコード
 }
 ```
 
-**`point_expires_at`** 
-  
+</details>
 
+#### `point_expires_at`
 チャージQRコードによって付与されるポイント残高の有効起源を指定します。デフォルトではマネー残高の有効期限と同じものが指定されます。
 
 チャージQRコードにより付与されるマネー残高の有効期限はQRコード毎には指定できませんが、ポイント残高の有効期限は本パラメータにより、QRコード毎に個別に指定することができます。
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -347,13 +391,15 @@ NULLに設定すると無制限に読み取り可能なチャージQRコード
 }
 ```
 
-**`point_expires_in_days`** 
-  
+</details>
 
+#### `point_expires_in_days`
 チャージQRコードによって付与されるポイント残高の有効期限を相対日数で指定します。
 1を指定すると、チャージQRコード作成日の当日中に失効します(翌日0時に失効)。
 `point_expires_at`と`point_expires_in_days`が両方指定されている場合は、チャージQRコードによるチャージ取引ができた時点からより近い方が採用されます。
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -362,12 +408,14 @@ NULLに設定すると無制限に読み取り可能なチャージQRコード
 }
 ```
 
-**`bear_point_account`** 
-  
+</details>
 
+#### `bear_point_account`
 ポイントチャージをする場合、ポイント額を負担する店舗のウォレットIDを指定することができます。
 デフォルトではマネー発行体のデフォルト店舗(本店)がポイント負担先となります。
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -376,6 +424,8 @@ NULLに設定すると無制限に読み取り可能なチャージQRコード
 }
 ```
 
+</details>
+
 
 
 成功したときは
@@ -387,16 +437,16 @@ NULLに設定すると無制限に読み取り可能なチャージQRコード
 |---|---|---|---|
 |400|invalid_parameter_both_point_and_money_are_zero||One of 'money_amount' or 'point_amount' must be a positive (>0) number|
 |400|invalid_parameter_only_merchants_can_attach_points_to_check||Only merchants can attach points to check|
-|400|invalid_parameter_bear_point_account_identification_item_not_unique|ポイントを負担する店舗アカウントを指定するリクエストパラメータには、アカウントID、またはユーザIDのどちらかを含めることができます|Request parameters include either bear_point_account or bear_point_shop_id.|
 |400|invalid_parameter_combination_usage_limit_and_is_onetime||'usage_limit' can not be specified if 'is_onetime' is true.|
-|400|invalid_parameters|項目が無効です|Invalid parameters|
 |400|invalid_parameter_expires_at||'expires_at' must be in the future|
+|400|invalid_parameters|項目が無効です|Invalid parameters|
+|400|invalid_parameter_bear_point_account_identification_item_not_unique|ポイントを負担する店舗アカウントを指定するリクエストパラメータには、アカウントID、またはユーザIDのどちらかを含めることができます|Request parameters include either bear_point_account or bear_point_shop_id.|
 |403|unpermitted_admin_user|この管理ユーザには権限がありません|Admin does not have permission|
 |422|account_can_not_topup|この店舗からはチャージできません|account can not topup|
 |422|account_private_money_is_not_issued_by_organization||The account's private money is not issued by this organization|
-|422|shop_account_not_found||The shop account is not found|
-|422|account_money_topup_transfer_limit_exceeded|マネーチャージ金額が上限を超えました|Too much amount to money topup transfer|
+|422|shop_account_not_found|店舗アカウントが見つかりません|The shop account is not found|
 |422|bear_point_account_not_found|ポイントを負担する店舗アカウントが見つかりません|Bear point account not found.|
+|422|account_money_topup_transfer_limit_exceeded|マネーチャージ金額が上限を超えました|Too much amount to money topup transfer|
 
 
 
@@ -406,20 +456,21 @@ NULLに設定すると無制限に読み取り可能なチャージQRコード
 <a name="get-check"></a>
 ## GetCheck: チャージQRコードの表示
 
-```typescript
-const response: Response<Check> = await client.send(new GetCheck({
-  check_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" // チャージQRコードのID
-}));
+```PYTHON
+response = client.send(pp.GetCheck(
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"                # check_id: チャージQRコードのID
+))
 ```
 
 
 
 ### Parameters
-**`check_id`** 
-  
-
+#### `check_id`
 表示対象のチャージQRコードのIDです。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -427,6 +478,8 @@ const response: Response<Check> = await client.send(new GetCheck({
 }
 ```
 
+</details>
+
 
 
 成功したときは
@@ -441,30 +494,31 @@ const response: Response<Check> = await client.send(new GetCheck({
 <a name="update-check"></a>
 ## UpdateCheck: チャージQRコードの更新
 
-```typescript
-const response: Response<Check> = await client.send(new UpdateCheck({
-  check_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // チャージQRコードのID
-  money_amount: 4707.0, // 付与マネー額
-  point_amount: 5296.0, // 付与ポイント額
-  description: "test check", // チャージQRコードの説明文
-  is_onetime: false, // ワンタイムかどうかのフラグ
-  usage_limit: 8397, // ワンタイムでない場合の最大読み取り回数
-  expires_at: "2023-07-16T17:37:41.000000Z", // チャージQRコード自体の失効日時
-  point_expires_at: "2023-09-28T23:55:20.000000Z", // チャージQRコードによって付与されるポイント残高の有効期限
-  point_expires_in_days: 60, // チャージQRコードによって付与されるポイント残高の有効期限(相対日数指定)
-  bear_point_account: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // ポイント額を負担する店舗のウォレットID
-  is_disabled: false // 無効化されているかどうかのフラグ
-}));
+```PYTHON
+response = client.send(pp.UpdateCheck(
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",               # check_id: チャージQRコードのID
+                          money_amount=3059.0,                                  # 付与マネー額
+                          point_amount=1107.0,                                  # 付与ポイント額
+                          description="test check",                             # チャージQRコードの説明文
+                          is_onetime=False,                                     # ワンタイムかどうかのフラグ
+                          usage_limit=9511,                                     # ワンタイムでない場合の最大読み取り回数
+                          expires_at="2021-06-06T18:20:51.000000Z",             # チャージQRコード自体の失効日時
+                          point_expires_at="2025-12-19T13:47:32.000000Z",       # チャージQRコードによって付与されるポイント残高の有効期限
+                          point_expires_in_days=60,                             # チャージQRコードによって付与されるポイント残高の有効期限(相対日数指定)
+                          bear_point_account="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", # ポイント額を負担する店舗のウォレットID
+                          is_disabled=True                                      # 無効化されているかどうかのフラグ
+))
 ```
 
 
 
 ### Parameters
-**`check_id`** 
-  
-
+#### `check_id`
 更新対象のチャージQRコードのIDです。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -472,12 +526,14 @@ const response: Response<Check> = await client.send(new UpdateCheck({
 }
 ```
 
-**`money_amount`** 
-  
+</details>
 
+#### `money_amount`
 チャージQRコードによって付与されるマネー額です。
 `money_amount`と`point_amount`が両方0になるような更新リクエストはエラーになります。
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -487,12 +543,14 @@ const response: Response<Check> = await client.send(new UpdateCheck({
 }
 ```
 
-**`point_amount`** 
-  
+</details>
 
+#### `point_amount`
 チャージQRコードによって付与されるポイント額です。
 `money_amount`と`point_amount`が両方0になるような更新リクエストはエラーになります。
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -502,12 +560,14 @@ const response: Response<Check> = await client.send(new UpdateCheck({
 }
 ```
 
-**`description`** 
-  
+</details>
 
+#### `description`
 チャージQRコードの説明文です。
 チャージ取引後は、取引の説明文に転記され、取引履歴などに表示されます。
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -516,13 +576,15 @@ const response: Response<Check> = await client.send(new UpdateCheck({
 }
 ```
 
-**`is_onetime`** 
-  
+</details>
 
+#### `is_onetime`
 チャージQRコードが一度の読み取りで失効するときに`true`にします。
 `false`の場合、複数ユーザによって読み取り可能なQRコードになります。
 ただし、その場合も1ユーザにつき1回のみしか読み取れません。
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -530,13 +592,15 @@ const response: Response<Check> = await client.send(new UpdateCheck({
 }
 ```
 
-**`usage_limit`** 
-  
+</details>
 
+#### `usage_limit`
 複数ユーザによって読み取り可能なチャージQRコードの最大読み取り回数を指定します。
 NULLに設定すると無制限に読み取り可能なチャージQRコードになります。
 ワンタイム指定(`is_onetime`)がされているときは、本パラメータはNULLである必要があります。
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -544,13 +608,15 @@ NULLに設定すると無制限に読み取り可能なチャージQRコード
 }
 ```
 
-**`expires_at`** 
-  
+</details>
 
+#### `expires_at`
 チャージQRコード自体の失効日時を指定します。この日時以降はチャージQRコードを読み取れなくなります。
 
 チャージQRコード自体の失効日時であって、チャージQRコードによって付与されるマネー残高の有効期限とは異なることに注意してください。マネー残高の有効期限はマネー設定で指定されているものになります。
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -559,13 +625,15 @@ NULLに設定すると無制限に読み取り可能なチャージQRコード
 }
 ```
 
-**`point_expires_at`** 
-  
+</details>
 
+#### `point_expires_at`
 チャージQRコードによって付与されるポイント残高の有効起源を指定します。
 
 チャージQRコードにより付与されるマネー残高の有効期限はQRコード毎には指定できませんが、ポイント残高の有効期限は本パラメータにより、QRコード毎に個別に指定することができます。
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -574,14 +642,16 @@ NULLに設定すると無制限に読み取り可能なチャージQRコード
 }
 ```
 
-**`point_expires_in_days`** 
-  
+</details>
 
+#### `point_expires_in_days`
 チャージQRコードによって付与されるポイント残高の有効期限を相対日数で指定します。
 1を指定すると、チャージQRコード作成日の当日中に失効します(翌日0時に失効)。
 `point_expires_at`と`point_expires_in_days`が両方指定されている場合は、チャージQRコードによるチャージ取引ができた時点からより近い方が採用されます。
 `point_expires_at`と`point_expires_in_days`が両方NULLに設定されている場合は、マネーに設定されている残高の有効期限と同じになります。
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -590,11 +660,13 @@ NULLに設定すると無制限に読み取り可能なチャージQRコード
 }
 ```
 
-**`bear_point_account`** 
-  
+</details>
 
+#### `bear_point_account`
 ポイントチャージをする場合、ポイント額を負担する店舗のウォレットIDを指定することができます。
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -603,12 +675,14 @@ NULLに設定すると無制限に読み取り可能なチャージQRコード
 }
 ```
 
-**`is_disabled`** 
-  
+</details>
 
+#### `is_disabled`
 チャージQRコードを無効化するときに`true`にします。
 `false`の場合は無効化されているチャージQRコードを再有効化します。
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -616,6 +690,8 @@ NULLに設定すると無制限に読み取り可能なチャージQRコード
 }
 ```
 
+</details>
+
 
 
 成功したときは
@@ -633,25 +709,25 @@ NULLに設定すると無制限に読み取り可能なチャージQRコード
 
 エンドユーザーから受け取ったチャージ用QRコードのIDをエンドユーザーIDと共に渡すことでチャージ取引が作られます。
 
-
-```typescript
-const response: Response<TransactionDetail> = await client.send(new CreateTopupTransactionWithCheck({
-  check_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // チャージ用QRコードのID
-  customer_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // エンドユーザーのID
-  request_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" // リクエストID
-}));
+```PYTHON
+response = client.send(pp.CreateTopupTransactionWithCheck(
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",               # check_id: チャージ用QRコードのID
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",               # customer_id: エンドユーザーのID
+                          request_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"     # リクエストID
+))
 ```
 
 
 
 ### Parameters
-**`check_id`** 
-  
-
+#### `check_id`
 チャージ用QRコードのIDです。
 
 QRコード生成時に送金元店舗のウォレット情報や、送金額などが登録されています。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -659,13 +735,16 @@ QRコード生成時に送金元店舗のウォレット情報や、送金額な
 }
 ```
 
-**`customer_id`** 
-  
+</details>
 
+#### `customer_id`
 エンドユーザーIDです。
 
 送金先のエンドユーザーを指定します。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -673,14 +752,18 @@ QRコード生成時に送金元店舗のウォレット情報や、送金額な
 }
 ```
 
-**`request_id`** 
-  
+</details>
 
+#### `request_id`
 取引作成APIの羃等性を担保するためのリクエスト固有のIDです。
 
 取引作成APIで結果が受け取れなかったなどの理由で再試行する際に、二重に取引が作られてしまうことを防ぐために、クライアント側から指定されます。指定は任意で、UUID V4フォーマットでランダム生成した文字列です。リクエストIDは一定期間で削除されます。
 
 リクエストIDを指定したとき、まだそのリクエストIDに対する取引がない場合、新規に取引が作られレスポンスとして返されます。もしそのリクエストIDに対する取引が既にある場合、既存の取引がレスポンスとして返されます。
+既に存在する、別のユーザによる取引とリクエストIDが衝突した場合、request_id_conflictが返ります。
+
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -689,6 +772,8 @@ QRコード生成時に送金元店舗のウォレット情報や、送金額な
 }
 ```
 
+</details>
+
 
 
 成功したときは
@@ -698,13 +783,17 @@ QRコード生成時に送金元店舗のウォレット情報や、送金額な
 ### Error Responses
 |status|type|ja|en|
 |---|---|---|---|
-|400|invalid_parameters|項目が無効です|Invalid parameters|
 |403|unpermitted_admin_user|この管理ユーザには権限がありません|Admin does not have permission|
-|410|transaction_canceled|取引がキャンセルされました|Transaction was canceled|
 |422|customer_user_not_found||The customer user is not found|
 |422|check_not_found|これはチャージQRコードではありません|This is not a topup QR code|
-|422|invalid_metadata|メタデータの形式が不正です|Invalid metadata format|
+|422|coupon_not_found|クーポンが見つかりませんでした。|The coupon is not found.|
+|422|credit_session_money_topup_requires_credit_card|オーソリチャージ用マネーではクレジットカードによるチャージのみ許可されています|Credit card is required for topup on credit-session enabled money|
+|422|cannot_topup_during_cvs_authorization_pending|コンビニ決済の予約中はチャージできません|You cannot topup your account while a convenience store payment is pending.|
+|422|credit_session_not_found|オーソリセッションが見つかりません|Credit session not found|
+|422|not_applicable_transaction_type_for_account_topup_quota|チャージ取引以外の取引種別ではチャージ可能枠を使用できません|Account topup quota is not applicable to transaction types other than topup.|
+|422|private_money_topup_quota_not_available|このマネーにはチャージ可能枠の設定がありません|Topup quota is not available with this private money.|
 |422|account_can_not_topup|この店舗からはチャージできません|account can not topup|
+|422|private_money_closed|このマネーは解約されています|This money was closed|
 |422|transaction_has_done|取引は完了しており、キャンセルすることはできません|Transaction has been copmpleted and cannot be canceled|
 |422|account_restricted|特定のアカウントの支払いに制限されています|The account is restricted to pay for a specific account|
 |422|account_balance_not_enough|口座残高が不足してます|The account balance is not enough|
@@ -712,8 +801,13 @@ QRコード生成時に送金元店舗のウォレット情報や、送金額な
 |422|account_transfer_limit_exceeded|取引金額が上限を超えました|Too much amount to transfer|
 |422|account_balance_exceeded|口座残高が上限を超えました|The account balance exceeded the limit|
 |422|account_money_topup_transfer_limit_exceeded|マネーチャージ金額が上限を超えました|Too much amount to money topup transfer|
-|422|account_total_topup_limit_range|期間内での合計チャージ額上限に達しました|Entire period topup limit reached|
-|422|account_total_topup_limit_entire_period|全期間での合計チャージ額上限に達しました|Entire period topup limit reached|
+|422|account_topup_quota_not_splittable|このチャージ可能枠は設定された金額未満の金額には使用できません|This topup quota is only applicable to its designated money amount.|
+|422|topup_amount_exceeding_topup_quota_usable_amount|チャージ金額がチャージ可能枠の利用可能金額を超えています|Topup amount is exceeding the topup quota's usable amount|
+|422|account_topup_quota_inactive|指定されたチャージ可能枠は有効ではありません|Topup quota is inactive|
+|422|account_topup_quota_not_within_applicable_period|指定されたチャージ可能枠の利用可能期間外です|Topup quota is not applicable at this time|
+|422|account_topup_quota_not_found|ウォレットにチャージ可能枠がありません|Topup quota is not found with this account|
+|422|account_total_topup_limit_range|合計チャージ額がマネーで指定された期間内での上限を超えています|The topup exceeds the total amount within the period defined by the money.|
+|422|account_total_topup_limit_entire_period|合計チャージ額がマネーで指定された期間内での上限を超えています|The topup exceeds the total amount defined by the money.|
 |422|coupon_unavailable_shop|このクーポンはこの店舗では使用できません。|This coupon is unavailable for this shop.|
 |422|coupon_already_used|このクーポンは既に使用済みです。|This coupon is already used.|
 |422|coupon_not_received|このクーポンは受け取られていません。|This coupon is not received.|
@@ -724,7 +818,7 @@ QRコード生成時に送金元店舗のウォレット情報や、送金額な
 |422|account_suspended|アカウントは停止されています|The account is suspended|
 |422|account_closed|アカウントは退会しています|The account is closed|
 |422|customer_account_not_found||The customer account is not found|
-|422|shop_account_not_found||The shop account is not found|
+|422|shop_account_not_found|店舗アカウントが見つかりません|The shop account is not found|
 |422|account_currency_mismatch|アカウント間で通貨が異なっています|Currency mismatch between accounts|
 |422|account_pre_closed|アカウントは退会準備中です|The account is pre-closed|
 |422|account_not_accessible|アカウントにアクセスできません|The account is not accessible by this user|
@@ -732,6 +826,9 @@ QRコード生成時に送金元店舗のウォレット情報や、送金額な
 |422|same_account_transaction|同じアカウントに送信しています|Sending to the same account|
 |422|transaction_invalid_done_at|取引完了日が無効です|Transaction completion date is invalid|
 |422|transaction_invalid_amount|取引金額が数値ではないか、受け入れられない桁数です|Transaction amount is not a number or cannot be accepted for this currency|
+|422|request_id_conflict|このリクエストIDは他の取引ですでに使用されています。お手数ですが、別のリクエストIDで最初からやり直してください。|The request_id is already used by another transaction. Try again with new request id|
+|422|reserved_word_can_not_specify_to_metadata|取引メタデータに予約語は指定出来ません|Reserved word can not specify to metadata|
+|422|invalid_metadata|メタデータの形式が不正です|Invalid metadata format|
 |422|check_already_received|このチャージQRコードは既に受取済みの為、チャージ出来ませんでした|Check is already received|
 |422|check_unavailable|このチャージQRコードは利用できません|The topup QR code is not available|
 |503|temporarily_unavailable||Service Unavailable|
diff --git a/docs/coupon.md b/docs/coupon.md
index 2dbba42..ac4409a 100644
--- a/docs/coupon.md
+++ b/docs/coupon.md
@@ -1,35 +1,38 @@
 # Coupon
-Couponは支払い時に指定し、支払い処理の前にCouponに指定の方法で値引き処理を行います。
-Couponは特定店舗で利用できるものや利用可能期間、配信条件などを設定できます。
+割引クーポンを表すデータです。
+クーポンをユーザが明示的に利用することによって支払い決済時の割引(固定金額 or 割引率)が適用されます。
+クーポンは支払い時に指定し、支払い処理の前にクーポンに指定の方法で値引き処理を行います。
+クーポン原資を負担する発行店舗を設定したり、配布先を指定することも可能です。
+また、特定店舗で利用できるものや利用可能期間、配信条件などを設定できます。
 
 
 <a name="list-coupons"></a>
 ## ListCoupons: クーポン一覧の取得
 指定したマネーのクーポン一覧を取得します
 
-```typescript
-const response: Response<PaginatedCoupons> = await client.send(new ListCoupons({
-  private_money_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // 対象クーポンのマネーID
-  coupon_id: "aKuslNra", // クーポンID
-  coupon_name: "O", // クーポン名
-  issued_shop_name: "syAiaw", // 発行店舗名
-  available_shop_name: "Wi", // 利用可能店舗名
-  available_from: "2022-10-22T10:14:03.000000Z", // 利用可能期間 (開始日時)
-  available_to: "2021-10-02T15:20:51.000000Z", // 利用可能期間 (終了日時)
-  page: 1, // ページ番号
-  per_page: 50 // 1ページ分の取得数
-}));
+```PYTHON
+response = client.send(pp.ListCoupons(
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",               # private_money_id: 対象クーポンのマネーID
+                          coupon_id="lRg4qB",                                   # クーポンID
+                          coupon_name="0GRM",                                   # クーポン名
+                          issued_shop_name="kbzDn742",                          # 発行店舗名
+                          available_shop_name="8m6fDAk",                        # 利用可能店舗名
+                          available_from="2023-06-18T01:37:55.000000Z",         # 利用可能期間 (開始日時)
+                          available_to="2022-09-24T06:38:54.000000Z",           # 利用可能期間 (終了日時)
+                          page=1,                                               # ページ番号
+                          per_page=50                                           # 1ページ分の取得数
+))
 ```
 
 
 
 ### Parameters
-**`private_money_id`** 
-  
-
+#### `private_money_id`
 対象クーポンのマネーIDです(必須項目)。
 存在しないマネーIDを指定した場合はprivate_money_not_foundエラー(422)が返ります。
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -38,12 +41,14 @@ const response: Response<PaginatedCoupons> = await client.send(new ListCoupons({
 }
 ```
 
-**`coupon_id`** 
-  
+</details>
 
+#### `coupon_id`
 指定されたクーポンIDで結果をフィルターします。
 部分一致(前方一致)します。
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -51,11 +56,13 @@ const response: Response<PaginatedCoupons> = await client.send(new ListCoupons({
 }
 ```
 
-**`coupon_name`** 
-  
+</details>
 
+#### `coupon_name`
 指定されたクーポン名で結果をフィルターします。
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -63,11 +70,13 @@ const response: Response<PaginatedCoupons> = await client.send(new ListCoupons({
 }
 ```
 
-**`issued_shop_name`** 
-  
+</details>
 
+#### `issued_shop_name`
 指定された発行店舗で結果をフィルターします。
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -75,11 +84,13 @@ const response: Response<PaginatedCoupons> = await client.send(new ListCoupons({
 }
 ```
 
-**`available_shop_name`** 
-  
+</details>
 
+#### `available_shop_name`
 指定された利用可能店舗で結果をフィルターします。
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -87,11 +98,13 @@ const response: Response<PaginatedCoupons> = await client.send(new ListCoupons({
 }
 ```
 
-**`available_from`** 
-  
+</details>
 
+#### `available_from`
 利用可能期間でフィルターします。フィルターの開始日時をISO8601形式で指定します。
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -100,11 +113,13 @@ const response: Response<PaginatedCoupons> = await client.send(new ListCoupons({
 }
 ```
 
-**`available_to`** 
-  
+</details>
 
+#### `available_to`
 利用可能期間でフィルターします。フィルターの終了日時をISO8601形式で指定します。
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -113,11 +128,14 @@ const response: Response<PaginatedCoupons> = await client.send(new ListCoupons({
 }
 ```
 
-**`page`** 
-  
+</details>
 
+#### `page`
 取得したいページ番号です。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "integer",
@@ -125,11 +143,14 @@ const response: Response<PaginatedCoupons> = await client.send(new ListCoupons({
 }
 ```
 
-**`per_page`** 
-  
+</details>
 
+#### `per_page`
 1ページ分の取得数です。デフォルトでは 50 になっています。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "integer",
@@ -137,6 +158,8 @@ const response: Response<PaginatedCoupons> = await client.send(new ListCoupons({
 }
 ```
 
+</details>
+
 
 
 成功したときは
@@ -148,7 +171,7 @@ const response: Response<PaginatedCoupons> = await client.send(new ListCoupons({
 |---|---|---|---|
 |403|unpermitted_admin_user|この管理ユーザには権限がありません|Admin does not have permission|
 |422|shop_user_not_found|店舗が見つかりません|The shop user is not found|
-|422|private_money_not_found||Private money not found|
+|422|private_money_not_found|マネーが見つかりません|Private money not found|
 
 
 
@@ -159,38 +182,40 @@ const response: Response<PaginatedCoupons> = await client.send(new ListCoupons({
 ## CreateCoupon: クーポンの登録
 新しいクーポンを登録します
 
-```typescript
-const response: Response<CouponDetail> = await client.send(new CreateCoupon({
-  private_money_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
-  name: "V3bs",
-  starts_at: "2022-05-26T14:59:10.000000Z",
-  ends_at: "2020-01-24T00:21:53.000000Z",
-  issued_shop_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // 発行元の店舗ID
-  description: "kWhHFx3P67yxFmxWAZtUSoiVrIFnb7w6ZClkoqVajvuG5cGcBP5wA9GwSB8bfxMId7hFKERGvYa7vbD1",
-  discount_amount: 2531,
-  discount_percentage: 3785.0,
-  discount_upper_limit: 5241,
-  display_starts_at: "2023-09-04T17:42:15.000000Z", // クーポンの掲載期間(開始日時)
-  display_ends_at: "2021-10-16T10:10:53.000000Z", // クーポンの掲載期間(終了日時)
-  is_disabled: true, // 無効化フラグ
-  is_hidden: true, // クーポン一覧に掲載されるかどうか
-  is_public: true, // アプリ配信なしで受け取れるかどうか
-  code: "XocQ5N98C", // クーポン受け取りコード
-  usage_limit: 2753, // ユーザごとの利用可能回数(NULLの場合は無制限)
-  min_amount: 7894, // クーポン適用可能な最小取引額
-  is_shop_specified: false, // 特定店舗限定のクーポンかどうか
-  available_shop_ids: ["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"], // 利用可能店舗リスト
-  storage_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" // ストレージID
-}));
+```PYTHON
+response = client.send(pp.CreateCoupon(
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
+                          "XCcjSnMwkyUVD7CNl",
+                          "2020-08-09T20:34:27.000000Z",
+                          "2024-02-04T15:25:38.000000Z",
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",               # issued_shop_id: 発行元の店舗ID
+                          description="G8bUcu2404OwW2YlKo3D8R7F9uqtTYDUe0c6WMBb0vMyrrNo2CtAij6bFWlBc9nMouBhD3xaVyDbF9dQAdVbIjdKodnIqsg2hwfCC3ynrJLnPSb5d8avvWNGGZpHcQub7jyKGPEze4eDg0kaj205Q9Vfs",
+                          discount_amount=3469,
+                          discount_percentage=7196.0,
+                          discount_upper_limit=668,
+                          display_starts_at="2025-08-11T04:34:35.000000Z",      # クーポンの掲載期間(開始日時)
+                          display_ends_at="2023-01-04T09:03:52.000000Z",        # クーポンの掲載期間(終了日時)
+                          is_disabled=False,                                    # 無効化フラグ
+                          is_hidden=True,                                       # クーポン一覧に掲載されるかどうか
+                          is_public=True,                                       # アプリ配信なしで受け取れるかどうか
+                          code="dWlEYjRq",                                      # クーポン受け取りコード
+                          usage_limit=2909,                                     # ユーザごとの利用可能回数(NULLの場合は無制限)
+                          min_amount=5761,                                      # クーポン適用可能な最小取引額
+                          is_shop_specified=True,                               # 特定店舗限定のクーポンかどうか
+                          available_shop_ids=["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"], # 利用可能店舗リスト
+                          storage_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",    # ストレージID
+                          num_recipients_cap=8931                               # クーポンを受け取ることができるユーザ数上限
+))
 ```
 
 `is_shop_specified`と`available_shop_ids`は同時に指定する必要があります。
 
 
 ### Parameters
-**`private_money_id`** 
-  
+#### `private_money_id`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -199,9 +224,12 @@ const response: Response<CouponDetail> = await client.send(new CreateCoupon({
 }
 ```
 
-**`name`** 
-  
+</details>
 
+#### `name`
+
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -210,9 +238,12 @@ const response: Response<CouponDetail> = await client.send(new CreateCoupon({
 }
 ```
 
-**`description`** 
-  
+</details>
+
+#### `description`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -221,9 +252,12 @@ const response: Response<CouponDetail> = await client.send(new CreateCoupon({
 }
 ```
 
-**`discount_amount`** 
-  
+</details>
 
+#### `discount_amount`
+
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -232,9 +266,12 @@ const response: Response<CouponDetail> = await client.send(new CreateCoupon({
 }
 ```
 
-**`discount_percentage`** 
-  
+</details>
+
+#### `discount_percentage`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -243,9 +280,12 @@ const response: Response<CouponDetail> = await client.send(new CreateCoupon({
 }
 ```
 
-**`discount_upper_limit`** 
-  
+</details>
 
+#### `discount_upper_limit`
+
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -254,9 +294,12 @@ const response: Response<CouponDetail> = await client.send(new CreateCoupon({
 }
 ```
 
-**`starts_at`** 
-  
+</details>
+
+#### `starts_at`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -265,9 +308,12 @@ const response: Response<CouponDetail> = await client.send(new CreateCoupon({
 }
 ```
 
-**`ends_at`** 
-  
+</details>
 
+#### `ends_at`
+
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -276,9 +322,12 @@ const response: Response<CouponDetail> = await client.send(new CreateCoupon({
 }
 ```
 
-**`display_starts_at`** 
-  
+</details>
+
+#### `display_starts_at`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -287,9 +336,12 @@ const response: Response<CouponDetail> = await client.send(new CreateCoupon({
 }
 ```
 
-**`display_ends_at`** 
-  
+</details>
 
+#### `display_ends_at`
+
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -298,9 +350,12 @@ const response: Response<CouponDetail> = await client.send(new CreateCoupon({
 }
 ```
 
-**`is_disabled`** 
-  
+</details>
+
+#### `is_disabled`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -308,12 +363,14 @@ const response: Response<CouponDetail> = await client.send(new CreateCoupon({
 }
 ```
 
-**`is_hidden`** 
-  
+</details>
 
+#### `is_hidden`
 アプリに表示されるクーポン一覧に掲載されるかどうか。
 主に一時的に掲載から外したいときに用いられる。そのためis_publicの設定よりも優先される。
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -321,9 +378,12 @@ const response: Response<CouponDetail> = await client.send(new CreateCoupon({
 }
 ```
 
-**`is_public`** 
-  
+</details>
 
+#### `is_public`
+
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -331,9 +391,12 @@ const response: Response<CouponDetail> = await client.send(new CreateCoupon({
 }
 ```
 
-**`code`** 
-  
+</details>
+
+#### `code`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -341,9 +404,12 @@ const response: Response<CouponDetail> = await client.send(new CreateCoupon({
 }
 ```
 
-**`usage_limit`** 
-  
+</details>
 
+#### `usage_limit`
+
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -351,9 +417,12 @@ const response: Response<CouponDetail> = await client.send(new CreateCoupon({
 }
 ```
 
-**`min_amount`** 
-  
+</details>
+
+#### `min_amount`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -361,9 +430,12 @@ const response: Response<CouponDetail> = await client.send(new CreateCoupon({
 }
 ```
 
-**`issued_shop_id`** 
-  
+</details>
 
+#### `issued_shop_id`
+
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -372,9 +444,12 @@ const response: Response<CouponDetail> = await client.send(new CreateCoupon({
 }
 ```
 
-**`is_shop_specified`** 
-  
+</details>
+
+#### `is_shop_specified`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -382,9 +457,12 @@ const response: Response<CouponDetail> = await client.send(new CreateCoupon({
 }
 ```
 
-**`available_shop_ids`** 
-  
+</details>
 
+#### `available_shop_ids`
+
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -396,11 +474,14 @@ const response: Response<CouponDetail> = await client.send(new CreateCoupon({
 }
 ```
 
-**`storage_id`** 
-  
+</details>
 
+#### `storage_id`
 Storage APIでアップロードしたクーポン画像のStorage IDを指定します
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -408,6 +489,22 @@ Storage APIでアップロードしたクーポン画像のStorage IDを指定
 }
 ```
 
+</details>
+
+#### `num_recipients_cap`
+
+<details>
+<summary>スキーマ</summary>
+
+```json
+{
+  "type": "integer",
+  "minimum": 1
+}
+```
+
+</details>
+
 
 
 成功したときは
@@ -421,7 +518,7 @@ Storage APIでアップロードしたクーポン画像のStorage IDを指定
 |403|unpermitted_admin_user|この管理ユーザには権限がありません|Admin does not have permission|
 |404|partner_storage_not_found|指定したIDのデータは保存されていません|Not found by storage_id|
 |422|shop_user_not_found|店舗が見つかりません|The shop user is not found|
-|422|private_money_not_found||Private money not found|
+|422|private_money_not_found|マネーが見つかりません|Private money not found|
 |422|coupon_image_storage_conflict|クーポン画像のストレージIDは既に存在します|The coupon image storage_id is already exists|
 
 
@@ -433,22 +530,23 @@ Storage APIでアップロードしたクーポン画像のStorage IDを指定
 ## GetCoupon: クーポンの取得
 指定したIDを持つクーポンを取得します
 
-```typescript
-const response: Response<CouponDetail> = await client.send(new GetCoupon({
-  coupon_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" // クーポンID
-}));
+```PYTHON
+response = client.send(pp.GetCoupon(
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"                # coupon_id: クーポンID
+))
 ```
 
 
 
 ### Parameters
-**`coupon_id`** 
-  
-
+#### `coupon_id`
 取得するクーポンのIDです。
 UUIDv4フォーマットである必要があり、フォーマットが異なる場合は InvalidParametersエラー(400)が返ります。
 指定したIDのクーポンが存在しない場合はCouponNotFoundエラー(422)が返ります。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -456,6 +554,8 @@ UUIDv4フォーマットである必要があり、フォーマットが異な
 }
 ```
 
+</details>
+
 
 
 成功したときは
@@ -471,28 +571,29 @@ UUIDv4フォーマットである必要があり、フォーマットが異な
 ## UpdateCoupon: クーポンの更新
 指定したクーポンを更新します
 
-```typescript
-const response: Response<CouponDetail> = await client.send(new UpdateCoupon({
-  coupon_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // クーポンID
-  name: "RC5FLAIRiGKuI8CNBTqLCZ99AjVbK3l31NeAICSoLJdEVZoJB0H5I2jNmYRtpCMs9TezTj3A085y",
-  description: "5hWQ3gdeDOWFExGORRYNLJdsZ6n3IGoF44i0499bTqwmusa",
-  discount_amount: 1992,
-  discount_percentage: 2356.0,
-  discount_upper_limit: 4836,
-  starts_at: "2023-09-27T17:27:45.000000Z",
-  ends_at: "2023-03-30T03:01:03.000000Z",
-  display_starts_at: "2022-01-22T03:47:12.000000Z", // クーポンの掲載期間(開始日時)
-  display_ends_at: "2020-03-02T05:57:04.000000Z", // クーポンの掲載期間(終了日時)
-  is_disabled: false, // 無効化フラグ
-  is_hidden: false, // クーポン一覧に掲載されるかどうか
-  is_public: false, // アプリ配信なしで受け取れるかどうか
-  code: "Mwrj", // クーポン受け取りコード
-  usage_limit: 2742, // ユーザごとの利用可能回数(NULLの場合は無制限)
-  min_amount: 9894, // クーポン適用可能な最小取引額
-  is_shop_specified: false, // 特定店舗限定のクーポンかどうか
-  available_shop_ids: ["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"], // 利用可能店舗リスト
-  storage_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" // ストレージID
-}));
+```PYTHON
+response = client.send(pp.UpdateCoupon(
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",               # coupon_id: クーポンID
+                          name="8BVVabHLEG4agkq2G8IRGQBS0nc",
+                          description="LLndRaY2NqmWOdlkOhTjC67yWAbgIrPt858HfVRa8DX5UPvkC2RO0Ka4lYXy6v8yeYaDtl3yxclWSiWAV8VoZ5q4f3l3OfQm9YtxuJKrD",
+                          discount_amount=6681,
+                          discount_percentage=3462.0,
+                          discount_upper_limit=4621,
+                          starts_at="2020-09-13T23:41:13.000000Z",
+                          ends_at="2025-04-28T21:03:55.000000Z",
+                          display_starts_at="2021-05-17T04:04:54.000000Z",      # クーポンの掲載期間(開始日時)
+                          display_ends_at="2026-06-13T11:26:38.000000Z",        # クーポンの掲載期間(終了日時)
+                          is_disabled=False,                                    # 無効化フラグ
+                          is_hidden=False,                                      # クーポン一覧に掲載されるかどうか
+                          is_public=False,                                      # アプリ配信なしで受け取れるかどうか
+                          code="xAhF9F",                                        # クーポン受け取りコード
+                          usage_limit=445,                                      # ユーザごとの利用可能回数(NULLの場合は無制限)
+                          min_amount=7191,                                      # クーポン適用可能な最小取引額
+                          is_shop_specified=True,                               # 特定店舗限定のクーポンかどうか
+                          available_shop_ids=["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"], # 利用可能店舗リスト
+                          storage_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",    # ストレージID
+                          num_recipients_cap=6560                               # クーポンを受け取ることができるユーザ数上限
+))
 ```
 
 
@@ -501,9 +602,10 @@ const response: Response<CouponDetail> = await client.send(new UpdateCoupon({
 
 
 ### Parameters
-**`coupon_id`** 
-  
+#### `coupon_id`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -512,9 +614,12 @@ const response: Response<CouponDetail> = await client.send(new UpdateCoupon({
 }
 ```
 
-**`name`** 
-  
+</details>
 
+#### `name`
+
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -523,9 +628,12 @@ const response: Response<CouponDetail> = await client.send(new UpdateCoupon({
 }
 ```
 
-**`description`** 
-  
+</details>
+
+#### `description`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -534,9 +642,12 @@ const response: Response<CouponDetail> = await client.send(new UpdateCoupon({
 }
 ```
 
-**`discount_amount`** 
-  
+</details>
 
+#### `discount_amount`
+
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -545,9 +656,12 @@ const response: Response<CouponDetail> = await client.send(new UpdateCoupon({
 }
 ```
 
-**`discount_percentage`** 
-  
+</details>
+
+#### `discount_percentage`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -556,9 +670,12 @@ const response: Response<CouponDetail> = await client.send(new UpdateCoupon({
 }
 ```
 
-**`discount_upper_limit`** 
-  
+</details>
 
+#### `discount_upper_limit`
+
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -567,9 +684,12 @@ const response: Response<CouponDetail> = await client.send(new UpdateCoupon({
 }
 ```
 
-**`starts_at`** 
-  
+</details>
+
+#### `starts_at`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -578,9 +698,12 @@ const response: Response<CouponDetail> = await client.send(new UpdateCoupon({
 }
 ```
 
-**`ends_at`** 
-  
+</details>
 
+#### `ends_at`
+
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -589,9 +712,12 @@ const response: Response<CouponDetail> = await client.send(new UpdateCoupon({
 }
 ```
 
-**`display_starts_at`** 
-  
+</details>
+
+#### `display_starts_at`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -600,9 +726,12 @@ const response: Response<CouponDetail> = await client.send(new UpdateCoupon({
 }
 ```
 
-**`display_ends_at`** 
-  
+</details>
 
+#### `display_ends_at`
+
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -611,9 +740,12 @@ const response: Response<CouponDetail> = await client.send(new UpdateCoupon({
 }
 ```
 
-**`is_disabled`** 
-  
+</details>
+
+#### `is_disabled`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -621,12 +753,14 @@ const response: Response<CouponDetail> = await client.send(new UpdateCoupon({
 }
 ```
 
-**`is_hidden`** 
-  
+</details>
 
+#### `is_hidden`
 アプリに表示されるクーポン一覧に掲載されるかどうか。
 主に一時的に掲載から外したいときに用いられる。そのためis_publicの設定よりも優先される。
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -634,9 +768,12 @@ const response: Response<CouponDetail> = await client.send(new UpdateCoupon({
 }
 ```
 
-**`is_public`** 
-  
+</details>
 
+#### `is_public`
+
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -644,9 +781,12 @@ const response: Response<CouponDetail> = await client.send(new UpdateCoupon({
 }
 ```
 
-**`code`** 
-  
+</details>
+
+#### `code`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -654,9 +794,12 @@ const response: Response<CouponDetail> = await client.send(new UpdateCoupon({
 }
 ```
 
-**`usage_limit`** 
-  
+</details>
 
+#### `usage_limit`
+
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -664,9 +807,12 @@ const response: Response<CouponDetail> = await client.send(new UpdateCoupon({
 }
 ```
 
-**`min_amount`** 
-  
+</details>
+
+#### `min_amount`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -674,9 +820,12 @@ const response: Response<CouponDetail> = await client.send(new UpdateCoupon({
 }
 ```
 
-**`is_shop_specified`** 
-  
+</details>
 
+#### `is_shop_specified`
+
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -684,9 +833,12 @@ const response: Response<CouponDetail> = await client.send(new UpdateCoupon({
 }
 ```
 
-**`available_shop_ids`** 
-  
+</details>
+
+#### `available_shop_ids`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -698,11 +850,14 @@ const response: Response<CouponDetail> = await client.send(new UpdateCoupon({
 }
 ```
 
-**`storage_id`** 
-  
+</details>
 
+#### `storage_id`
 Storage APIでアップロードしたクーポン画像のStorage IDを指定します
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -710,6 +865,22 @@ Storage APIでアップロードしたクーポン画像のStorage IDを指定
 }
 ```
 
+</details>
+
+#### `num_recipients_cap`
+
+<details>
+<summary>スキーマ</summary>
+
+```json
+{
+  "type": "integer",
+  "minimum": 1
+}
+```
+
+</details>
+
 
 
 成功したときは
diff --git a/docs/credit_session.md b/docs/credit_session.md
new file mode 100644
index 0000000..0fad216
--- /dev/null
+++ b/docs/credit_session.md
@@ -0,0 +1,284 @@
+# CreditSession
+クレジットカード決済セッションを管理するためのAPIです。
+Veritrans（決済ゲートウェイ）との連携でクレジットカード決済を実現します。
+セッションには有効期限があり、セッション作成後に取引の実行や売上確定（キャプチャ）を行います。
+3Dセキュア認証にも対応しています。
+
+
+<a name="post-credit-session"></a>
+## PostCreditSession: Create credit session
+
+```PYTHON
+response = client.send(pp.PostCreditSession(
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
+                          "2023-09-04T08:00:20.000000Z",                        # expires_at: セッション有効期限
+                          request_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"     # 冪等性キー
+))
+```
+
+
+
+### Parameters
+#### `customer_id`
+
+<details>
+<summary>スキーマ</summary>
+
+```json
+{
+  "type": "string",
+  "format": "uuid"
+}
+```
+
+</details>
+
+#### `private_money_id`
+
+<details>
+<summary>スキーマ</summary>
+
+```json
+{
+  "type": "string",
+  "format": "uuid"
+}
+```
+
+</details>
+
+#### `card_id`
+
+<details>
+<summary>スキーマ</summary>
+
+```json
+{
+  "type": "string",
+  "format": "uuid"
+}
+```
+
+</details>
+
+#### `expires_at`
+セッション有効期限
+制約: リクエスト時刻から30日以内
+例: "2024-01-15T10:30:00+00:00"
+
+<details>
+<summary>スキーマ</summary>
+
+```json
+{
+  "type": "string",
+  "format": "date-time"
+}
+```
+
+</details>
+
+#### `request_id`
+冪等性キー
+同一のrequest_idを持つリクエストは冪等に処理されます。
+
+<details>
+<summary>スキーマ</summary>
+
+```json
+{
+  "type": "string",
+  "format": "uuid"
+}
+```
+
+</details>
+
+
+
+成功したときは
+[CreditSession](./responses.md#credit-session)
+を返します
+
+### Error Responses
+|status|type|ja|en|
+|---|---|---|---|
+|503|temporarily_unavailable||Service Unavailable|
+
+
+
+---
+
+
+<a name="create-credit-session-transaction"></a>
+## CreateCreditSessionTransaction: Create transaction with credit session
+クレジットセッションを使用して取引を作成します。
+セッションIDと取引金額を指定します。
+
+```PYTHON
+response = client.send(pp.CreateCreditSessionTransaction(
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",               # session_id: クレジットセッションID
+                          5162.0,                                               # amount: 取引金額
+                          shop_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",       # 店舗ID
+                          description="8uYVQrlAwBlTLDHylYVoU0Lud9b5MHdM8UnuwQ7jNoaulXZjgrVDfW2ufNp0gAs9phyFh2aSmdruAKFNN9YCEWSULZdpylXeF6qvGwUl7ATMaf3NqLOcKmTPNREiEdfOxleMzyqb14XnQoYrg3WK0gxDGSVD8", # 取引説明
+                          request_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"     # 冪等性キー
+))
+```
+
+
+
+### Parameters
+#### `session_id`
+クレジットセッションID
+
+事前に作成されたクレジットセッションのIDを指定します。
+
+<details>
+<summary>スキーマ</summary>
+
+```json
+{
+  "type": "string",
+  "format": "uuid"
+}
+```
+
+</details>
+
+#### `amount`
+取引金額
+支払い金額を指定します。
+
+<details>
+<summary>スキーマ</summary>
+
+```json
+{
+  "type": "number",
+  "minimum": 0
+}
+```
+
+</details>
+
+#### `shop_id`
+店舗ID
+支払いを行う店舗のIDを指定します。
+
+<details>
+<summary>スキーマ</summary>
+
+```json
+{
+  "type": "string",
+  "format": "uuid"
+}
+```
+
+</details>
+
+#### `description`
+取引説明
+取引の説明や備考を指定します。省略時は空文字列になります。
+
+<details>
+<summary>スキーマ</summary>
+
+```json
+{
+  "type": "string",
+  "maxLength": 200
+}
+```
+
+</details>
+
+#### `request_id`
+冪等性キー
+同一のrequest_idを持つリクエストは冪等に処理されます。
+
+<details>
+<summary>スキーマ</summary>
+
+```json
+{
+  "type": "string",
+  "format": "uuid"
+}
+```
+
+</details>
+
+
+
+成功したときは
+[CreditSessionTransactionResult](./responses.md#credit-session-transaction-result)
+を返します
+
+
+
+---
+
+
+<a name="capture-credit-session"></a>
+## CaptureCreditSession: Capture credit session
+クレジットセッションの売上確定（キャプチャ）を行います。
+セッション内で行われた支払いの合計金額をクレジットカードに請求します。
+
+```PYTHON
+response = client.send(pp.CaptureCreditSession(
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",               # session_id: クレジットセッションID
+                          request_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"     # 冪等性キー
+))
+```
+
+
+
+### Parameters
+#### `session_id`
+クレジットセッションID
+
+キャプチャ対象のクレジットセッションのIDを指定します。
+
+<details>
+<summary>スキーマ</summary>
+
+```json
+{
+  "type": "string",
+  "format": "uuid"
+}
+```
+
+</details>
+
+#### `request_id`
+冪等性キー
+同一のrequest_idを持つリクエストは冪等に処理されます。
+
+<details>
+<summary>スキーマ</summary>
+
+```json
+{
+  "type": "string",
+  "format": "uuid"
+}
+```
+
+</details>
+
+
+
+成功したときは
+[CapturedCreditSession](./responses.md#captured-credit-session)
+を返します
+
+
+
+---
+
+
+
diff --git a/docs/customer.md b/docs/customer.md
index e633ccc..15fd21e 100644
--- a/docs/customer.md
+++ b/docs/customer.md
@@ -1,26 +1,33 @@
 # Customer
+エンドユーザー（顧客）のウォレット情報を管理するためのAPIです。
+エンドユーザーのウォレット（アカウント）の作成・更新・取得を行います。
+ウォレットにはマネー残高（有償バリュー）とポイント残高（無償バリュー）があり、
+有効期限別に金額が管理されています。
+また、外部システム連携用のexternal_idやメタデータを設定することも可能です。
+
 
 <a name="delete-account"></a>
 ## DeleteAccount: ウォレットを退会する
 ウォレットを退会します。一度ウォレットを退会した後は、そのウォレットを再び利用可能な状態に戻すことは出来ません。
 
-```typescript
-const response: Response<AccountDeleted> = await client.send(new DeleteAccount({
-  account_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // ウォレットID
-  cashback: false // 返金有無
-}));
+```PYTHON
+response = client.send(pp.DeleteAccount(
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",               # account_id: ウォレットID
+                          cashback=False                                        # 返金有無
+))
 ```
 
 
 
 ### Parameters
-**`account_id`** 
-  
-
+#### `account_id`
 ウォレットIDです。
 
 指定したウォレットIDのウォレットを退会します。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -28,17 +35,22 @@ const response: Response<AccountDeleted> = await client.send(new DeleteAccount({
 }
 ```
 
-**`cashback`** 
-  
+</details>
 
+#### `cashback`
 退会時の返金有無です。エンドユーザに返金を行う場合、真を指定して下さい。現在のマネー残高を全て現金で返金したものとして記録されます。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "boolean"
 }
 ```
 
+</details>
+
 
 
 成功したときは
@@ -54,22 +66,23 @@ const response: Response<AccountDeleted> = await client.send(new DeleteAccount({
 ## GetAccount: ウォレット情報を表示する
 ウォレットを取得します。
 
-```typescript
-const response: Response<AccountDetail> = await client.send(new GetAccount({
-  account_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" // ウォレットID
-}));
+```PYTHON
+response = client.send(pp.GetAccount(
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"                # account_id: ウォレットID
+))
 ```
 
 
 
 ### Parameters
-**`account_id`** 
-  
-
+#### `account_id`
 ウォレットIDです。
 
 フィルターとして使われ、指定したウォレットIDのウォレットを取得します。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -77,6 +90,8 @@ const response: Response<AccountDetail> = await client.send(new GetAccount({
 }
 ```
 
+</details>
+
 
 
 成功したときは
@@ -98,25 +113,26 @@ const response: Response<AccountDetail> = await client.send(new GetAccount({
 
 エンドユーザーのウォレット情報更新には UpdateCustomerAccount が使用できます。
 
-```typescript
-const response: Response<AccountDetail> = await client.send(new UpdateAccount({
-  account_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // ウォレットID
-  is_suspended: true, // ウォレットが凍結されているかどうか
-  status: "suspended", // ウォレット状態
-  can_transfer_topup: false // チャージ可能かどうか
-}));
+```PYTHON
+response = client.send(pp.UpdateAccount(
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",               # account_id: ウォレットID
+                          is_suspended=True,                                    # ウォレットが凍結されているかどうか
+                          status="pre-closed",                                  # ウォレット状態
+                          can_transfer_topup=True                               # チャージ可能かどうか
+))
 ```
 
 
 
 ### Parameters
-**`account_id`** 
-  
-
+#### `account_id`
 ウォレットIDです。
 
 指定したウォレットIDのウォレットの状態を更新します。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -124,22 +140,28 @@ const response: Response<AccountDetail> = await client.send(new UpdateAccount({
 }
 ```
 
-**`is_suspended`** 
-  
+</details>
 
+#### `is_suspended`
 ウォレットの凍結状態です。真にするとウォレットが凍結され、そのウォレットでは新規取引ができなくなります。偽にすると凍結解除されます。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "boolean"
 }
 ```
 
-**`status`** 
-  
+</details>
 
+#### `status`
 ウォレットの状態です。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -151,17 +173,22 @@ const response: Response<AccountDetail> = await client.send(new UpdateAccount({
 }
 ```
 
-**`can_transfer_topup`** 
-  
+</details>
 
+#### `can_transfer_topup`
 店舗ユーザーがエンドユーザーにチャージ可能かどうかです。真にするとチャージ可能となり、偽にするとチャージ不可能となります。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "boolean"
 }
 ```
 
+</details>
+
 
 
 成功したときは
@@ -177,27 +204,28 @@ const response: Response<AccountDetail> = await client.send(new UpdateAccount({
 ## ListAccountBalances: エンドユーザーの残高内訳を表示する
 エンドユーザーのウォレット毎の残高を有効期限別のリストとして取得します。
 
-```typescript
-const response: Response<PaginatedAccountBalance> = await client.send(new ListAccountBalances({
-  account_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // ウォレットID
-  page: 9466, // ページ番号
-  per_page: 2486, // 1ページ分の取引数
-  expires_at_from: "2021-05-09T05:12:58.000000Z", // 有効期限の期間によるフィルター(開始時点)
-  expires_at_to: "2021-07-24T06:37:04.000000Z", // 有効期限の期間によるフィルター(終了時点)
-  direction: "asc" // 有効期限によるソート順序
-}));
+```PYTHON
+response = client.send(pp.ListAccountBalances(
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",               # account_id: ウォレットID
+                          page=7145,                                            # ページ番号
+                          per_page=7394,                                        # 1ページ分の取引数
+                          expires_at_from="2024-11-02T13:05:57.000000Z",        # 有効期限の期間によるフィルター(開始時点)
+                          expires_at_to="2024-04-18T05:34:58.000000Z",          # 有効期限の期間によるフィルター(終了時点)
+                          direction="asc"                                       # 有効期限によるソート順序
+))
 ```
 
 
 
 ### Parameters
-**`account_id`** 
-  
-
+#### `account_id`
 ウォレットIDです。
 
 フィルターとして使われ、指定したウォレットIDのウォレット残高を取得します。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -205,11 +233,14 @@ const response: Response<PaginatedAccountBalance> = await client.send(new ListAc
 }
 ```
 
-**`page`** 
-  
+</details>
 
+#### `page`
 取得したいページ番号です。デフォルト値は1です。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "integer",
@@ -217,11 +248,14 @@ const response: Response<PaginatedAccountBalance> = await client.send(new ListAc
 }
 ```
 
-**`per_page`** 
-  
+</details>
 
+#### `per_page`
 1ページ分のウォレット残高数です。デフォルト値は30です。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "integer",
@@ -229,11 +263,14 @@ const response: Response<PaginatedAccountBalance> = await client.send(new ListAc
 }
 ```
 
-**`expires_at_from`** 
-  
+</details>
 
+#### `expires_at_from`
 有効期限の期間によるフィルターの開始時点のタイムスタンプです。デフォルトでは未指定です。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -241,11 +278,14 @@ const response: Response<PaginatedAccountBalance> = await client.send(new ListAc
 }
 ```
 
-**`expires_at_to`** 
-  
+</details>
 
+#### `expires_at_to`
 有効期限の期間によるフィルターの終了時点のタイムスタンプです。デフォルトでは未指定です。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -253,11 +293,14 @@ const response: Response<PaginatedAccountBalance> = await client.send(new ListAc
 }
 ```
 
-**`direction`** 
-  
+</details>
 
+#### `direction`
 有効期限によるソートの順序を指定します。デフォルト値はasc (昇順)です。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -268,6 +311,8 @@ const response: Response<PaginatedAccountBalance> = await client.send(new ListAc
 }
 ```
 
+</details>
+
 
 
 成功したときは
@@ -283,27 +328,28 @@ const response: Response<PaginatedAccountBalance> = await client.send(new ListAc
 ## ListAccountExpiredBalances: エンドユーザーの失効済みの残高内訳を表示する
 エンドユーザーのウォレット毎の失効済みの残高を有効期限別のリストとして取得します。
 
-```typescript
-const response: Response<PaginatedAccountBalance> = await client.send(new ListAccountExpiredBalances({
-  account_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // ウォレットID
-  page: 5299, // ページ番号
-  per_page: 9652, // 1ページ分の取引数
-  expires_at_from: "2021-09-30T16:39:14.000000Z", // 有効期限の期間によるフィルター(開始時点)
-  expires_at_to: "2021-04-29T19:55:24.000000Z", // 有効期限の期間によるフィルター(終了時点)
-  direction: "desc" // 有効期限によるソート順序
-}));
+```PYTHON
+response = client.send(pp.ListAccountExpiredBalances(
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",               # account_id: ウォレットID
+                          page=1572,                                            # ページ番号
+                          per_page=2462,                                        # 1ページ分の取引数
+                          expires_at_from="2020-01-26T21:15:59.000000Z",        # 有効期限の期間によるフィルター(開始時点)
+                          expires_at_to="2023-06-20T06:08:09.000000Z",          # 有効期限の期間によるフィルター(終了時点)
+                          direction="asc"                                       # 有効期限によるソート順序
+))
 ```
 
 
 
 ### Parameters
-**`account_id`** 
-  
-
+#### `account_id`
 ウォレットIDです。
 
 フィルターとして使われ、指定したウォレットIDのウォレット残高を取得します。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -311,11 +357,14 @@ const response: Response<PaginatedAccountBalance> = await client.send(new ListAc
 }
 ```
 
-**`page`** 
-  
+</details>
 
+#### `page`
 取得したいページ番号です。デフォルト値は1です。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "integer",
@@ -323,11 +372,14 @@ const response: Response<PaginatedAccountBalance> = await client.send(new ListAc
 }
 ```
 
-**`per_page`** 
-  
+</details>
 
+#### `per_page`
 1ページ分のウォレット残高数です。デフォルト値は30です。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "integer",
@@ -335,11 +387,14 @@ const response: Response<PaginatedAccountBalance> = await client.send(new ListAc
 }
 ```
 
-**`expires_at_from`** 
-  
+</details>
 
+#### `expires_at_from`
 有効期限の期間によるフィルターの開始時点のタイムスタンプです。デフォルトでは未指定です。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -347,11 +402,14 @@ const response: Response<PaginatedAccountBalance> = await client.send(new ListAc
 }
 ```
 
-**`expires_at_to`** 
-  
+</details>
 
+#### `expires_at_to`
 有効期限の期間によるフィルターの終了時点のタイムスタンプです。デフォルトでは未指定です。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -359,11 +417,14 @@ const response: Response<PaginatedAccountBalance> = await client.send(new ListAc
 }
 ```
 
-**`direction`** 
-  
+</details>
 
+#### `direction`
 有効期限によるソートの順序を指定します。デフォルト値はdesc (降順)です。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -374,6 +435,8 @@ const response: Response<PaginatedAccountBalance> = await client.send(new ListAc
 }
 ```
 
+</details>
+
 
 
 成功したときは
@@ -389,26 +452,27 @@ const response: Response<PaginatedAccountBalance> = await client.send(new ListAc
 ## UpdateCustomerAccount: エンドユーザーのウォレット情報を更新する
 エンドユーザーのウォレットの状態を更新します。
 
-```typescript
-const response: Response<AccountWithUser> = await client.send(new UpdateCustomerAccount({
-  account_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // ウォレットID
-  status: "suspended", // ウォレット状態
-  account_name: "DDPPtMusem1WSPOdAkWLCHhP7q7jyjEo8V3Di9DtzhzAGKUtsDdhPal5eEvQkTNVI1DbDv2ICSa1fLqeRzwnNnU8Hy7seU6TPp7YTcvCbmuWQvyjmdKhWFzroFJfg0zCih9qHu842U5SnXNqipKVsIIUjVYx3ZiMVPZEq0xgguEtAXJ6WozfUGo1oVRA1PV2JD5SjzUvS2Jlq6P89tC2Mi1PRe6ex8zQnoMXPxIs0d6X24reGHeQvAP", // アカウント名
-  external_id: "GMsA1rgfPu4olvC1KDDE1G2mGU9YeDH5Tysjz5v4HW6eqkSknj", // 外部ID
-  metadata: "{\"key1\":\"foo\",\"key2\":\"bar\"}" // ウォレットに付加するメタデータ
-}));
+```PYTHON
+response = client.send(pp.UpdateCustomerAccount(
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",               # account_id: ウォレットID
+                          status="active",                                      # ウォレット状態
+                          account_name="Y7PcHPZH7mHIXsOqC2xcKBYhL1xCfnaEpDLcNgoBzsuiKajpcQf4nuECfdVUoATZ0pZ1FEusk3svdOIWNVHFftM1EZPsd7jOCTvYgQYDODNTX3", # アカウント名
+                          external_id="U3qGQBWGDfb1wlkuiN7kKWKFox",             # 外部ID
+                          metadata="{\"key1\":\"foo\",\"key2\":\"bar\"}"        # ウォレットに付加するメタデータ
+))
 ```
 
 
 
 ### Parameters
-**`account_id`** 
-  
-
+#### `account_id`
 ウォレットIDです。
 
 指定したウォレットIDのウォレットの状態を更新します。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -416,11 +480,14 @@ const response: Response<AccountWithUser> = await client.send(new UpdateCustomer
 }
 ```
 
-**`status`** 
-  
+</details>
 
+#### `status`
 ウォレットの状態です。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -432,11 +499,14 @@ const response: Response<AccountWithUser> = await client.send(new UpdateCustomer
 }
 ```
 
-**`account_name`** 
-  
+</details>
 
+#### `account_name`
 変更するウォレット名です。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -444,11 +514,14 @@ const response: Response<AccountWithUser> = await client.send(new UpdateCustomer
 }
 ```
 
-**`external_id`** 
-  
+</details>
 
+#### `external_id`
 変更する外部IDです。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -456,9 +529,9 @@ const response: Response<AccountWithUser> = await client.send(new UpdateCustomer
 }
 ```
 
-**`metadata`** 
-  
+</details>
 
+#### `metadata`
 ウォレットに付加するメタデータをJSON文字列で指定します。
 指定できるJSON文字列には以下のような制約があります。
 - フラットな構造のJSONを文字列化したものであること。
@@ -476,6 +549,9 @@ const response: Response<AccountWithUser> = await client.send(new UpdateCustomer
 
 このときkey1はfooからbazに更新され、key2に対するデータは消去されます。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -483,6 +559,8 @@ const response: Response<AccountWithUser> = await client.send(new UpdateCustomer
 }
 ```
 
+</details>
+
 
 
 成功したときは
@@ -498,31 +576,32 @@ const response: Response<AccountWithUser> = await client.send(new UpdateCustomer
 ## GetCustomerAccounts: エンドユーザーのウォレット一覧を表示する
 マネーを指定してエンドユーザーのウォレット一覧を取得します。
 
-```typescript
-const response: Response<PaginatedAccountWithUsers> = await client.send(new GetCustomerAccounts({
-  private_money_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // マネーID
-  page: 7384, // ページ番号
-  per_page: 5429, // 1ページ分のウォレット数
-  created_at_from: "2023-10-11T21:03:00.000000Z", // ウォレット作成日によるフィルター(開始時点)
-  created_at_to: "2024-03-15T06:32:01.000000Z", // ウォレット作成日によるフィルター(終了時点)
-  is_suspended: true, // ウォレットが凍結状態かどうかでフィルターする
-  status: "active", // ウォレット状態
-  external_id: "W80Xp5YCo9TXEMx6Q3N4lydCpBzThmgOIjIatpE7", // 外部ID
-  tel: "078988131", // エンドユーザーの電話番号
-  email: "qkfWLu8Wbq@qwjf.com" // エンドユーザーのメールアドレス
-}));
+```PYTHON
+response = client.send(pp.GetCustomerAccounts(
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",               # private_money_id: マネーID
+                          page=2508,                                            # ページ番号
+                          per_page=6925,                                        # 1ページ分のウォレット数
+                          created_at_from="2025-08-26T05:14:41.000000Z",        # ウォレット作成日によるフィルター(開始時点)
+                          created_at_to="2022-11-12T15:47:17.000000Z",          # ウォレット作成日によるフィルター(終了時点)
+                          is_suspended=False,                                   # ウォレットが凍結状態かどうかでフィルターする
+                          status="suspended",                                   # ウォレット状態
+                          external_id="9tuL5LH4EHPGJy8ZSoJ1krFHQyhzG",          # 外部ID
+                          tel="05-2286046",                                     # エンドユーザーの電話番号
+                          email="rwRgeSOaGF@6sto.com"                           # エンドユーザーのメールアドレス
+))
 ```
 
 
 
 ### Parameters
-**`private_money_id`** 
-  
-
+#### `private_money_id`
 マネーIDです。
 
 一覧するウォレットのマネーを指定します。このパラメータは必須です。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -530,11 +609,14 @@ const response: Response<PaginatedAccountWithUsers> = await client.send(new GetC
 }
 ```
 
-**`page`** 
-  
+</details>
 
+#### `page`
 取得したいページ番号です。デフォルト値は1です。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "integer",
@@ -542,11 +624,14 @@ const response: Response<PaginatedAccountWithUsers> = await client.send(new GetC
 }
 ```
 
-**`per_page`** 
-  
+</details>
 
+#### `per_page`
 1ページ分のウォレット数です。デフォルト値は30です。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "integer",
@@ -554,11 +639,14 @@ const response: Response<PaginatedAccountWithUsers> = await client.send(new GetC
 }
 ```
 
-**`created_at_from`** 
-  
+</details>
 
+#### `created_at_from`
 ウォレット作成日によるフィルターの開始時点のタイムスタンプです。デフォルトでは未指定です。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -566,11 +654,14 @@ const response: Response<PaginatedAccountWithUsers> = await client.send(new GetC
 }
 ```
 
-**`created_at_to`** 
-  
+</details>
 
+#### `created_at_to`
 ウォレット作成日によるフィルターの終了時点のタイムスタンプです。デフォルトでは未指定です。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -578,22 +669,28 @@ const response: Response<PaginatedAccountWithUsers> = await client.send(new GetC
 }
 ```
 
-**`is_suspended`** 
-  
+</details>
 
+#### `is_suspended`
 このパラメータが指定されている場合、ウォレットの凍結状態で結果がフィルターされます。デフォルトでは未指定です。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "boolean"
 }
 ```
 
-**`status`** 
-  
+</details>
 
+#### `status`
 このパラメータが指定されている場合、ウォレットの状態で結果がフィルターされます。デフォルトでは未指定です。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -605,11 +702,14 @@ const response: Response<PaginatedAccountWithUsers> = await client.send(new GetC
 }
 ```
 
-**`external_id`** 
-  
+</details>
 
+#### `external_id`
 外部IDでのフィルタリングです。デフォルトでは未指定です。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -617,11 +717,14 @@ const response: Response<PaginatedAccountWithUsers> = await client.send(new GetC
 }
 ```
 
-**`tel`** 
-  
+</details>
 
+#### `tel`
 エンドユーザーの電話番号でのフィルタリングです。デフォルトでは未指定です。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -629,11 +732,14 @@ const response: Response<PaginatedAccountWithUsers> = await client.send(new GetC
 }
 ```
 
-**`email`** 
-  
+</details>
 
+#### `email`
 エンドユーザーのメールアドレスでのフィルタリングです。デフォルトでは未指定です。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -641,6 +747,8 @@ const response: Response<PaginatedAccountWithUsers> = await client.send(new GetC
 }
 ```
 
+</details>
+
 
 
 成功したときは
@@ -651,7 +759,7 @@ const response: Response<PaginatedAccountWithUsers> = await client.send(new GetC
 |status|type|ja|en|
 |---|---|---|---|
 |403|unpermitted_admin_user|この管理ユーザには権限がありません|Admin does not have permission|
-|422|private_money_not_found||Private money not found|
+|422|private_money_not_found|マネーが見つかりません|Private money not found|
 
 
 
@@ -665,25 +773,26 @@ const response: Response<PaginatedAccountWithUsers> = await client.send(new GetC
 Partner APIのみから操作可能な特殊なユーザになります。
 システム全体をPartner APIのみで構成する場合にのみ使用してください。
 
-```typescript
-const response: Response<AccountWithUser> = await client.send(new CreateCustomerAccount({
-  private_money_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // マネーID
-  user_name: "ポケペイ太郎", // ユーザー名
-  account_name: "ポケペイ太郎のアカウント", // アカウント名
-  external_id: "PVeBo88egFulBO0" // 外部ID
-}));
+```PYTHON
+response = client.send(pp.CreateCustomerAccount(
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",               # private_money_id: マネーID
+                          user_name="ポケペイ太郎",                                   # ユーザー名
+                          account_name="ポケペイ太郎のアカウント",                          # アカウント名
+                          external_id="VWAQmmxPEjbZK4rVxAUW7FWHkKwdg6799FNaTUu" # 外部ID
+))
 ```
 
 
 
 ### Parameters
-**`private_money_id`** 
-  
-
+#### `private_money_id`
 マネーIDです。
 
 これによって作成するウォレットのマネーを指定します。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -691,11 +800,14 @@ const response: Response<AccountWithUser> = await client.send(new CreateCustomer
 }
 ```
 
-**`user_name`** 
-  
+</details>
 
+#### `user_name`
 ウォレットと共に作成するユーザ名です。省略した場合は空文字となります。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -703,11 +815,14 @@ const response: Response<AccountWithUser> = await client.send(new CreateCustomer
 }
 ```
 
-**`account_name`** 
-  
+</details>
 
+#### `account_name`
 作成するウォレット名です。省略した場合は空文字となります。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -715,11 +830,14 @@ const response: Response<AccountWithUser> = await client.send(new CreateCustomer
 }
 ```
 
-**`external_id`** 
-  
+</details>
 
+#### `external_id`
 PAPIクライアントシステムから利用するPokepayユーザーのIDです。デフォルトでは未指定です。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -727,6 +845,8 @@ PAPIクライアントシステムから利用するPokepayユーザーのIDで
 }
 ```
 
+</details>
+
 
 
 成功したときは
@@ -737,8 +857,8 @@ PAPIクライアントシステムから利用するPokepayユーザーのIDで
 |status|type|ja|en|
 |---|---|---|---|
 |403|unpermitted_admin_user|この管理ユーザには権限がありません|Admin does not have permission|
-|422|user_not_found||The user is not found|
-|422|private_money_not_found||Private money not found|
+|422|user_not_found|ユーザーが見つかりません|The user is not found|
+|422|private_money_not_found|マネーが見つかりません|Private money not found|
 |422|invalid_metadata|メタデータの形式が不正です|Invalid metadata format|
 |422|user_attributes_external_id_not_match|ユーザー属性情報の外部IDが一致しません|Not match external id of user attributes|
 |422|user_attributes_not_found|ユーザー属性情報が存在しません|Not found the user attrubtes|
@@ -754,27 +874,28 @@ PAPIクライアントシステムから利用するPokepayユーザーのIDで
 ## GetShopAccounts: 店舗ユーザーのウォレット一覧を表示する
 マネーを指定して店舗ユーザーのウォレット一覧を取得します。
 
-```typescript
-const response: Response<PaginatedAccountWithUsers> = await client.send(new GetShopAccounts({
-  private_money_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // マネーID
-  page: 8229, // ページ番号
-  per_page: 6517, // 1ページ分のウォレット数
-  created_at_from: "2024-01-23T15:43:54.000000Z", // ウォレット作成日によるフィルター(開始時点)
-  created_at_to: "2022-06-04T22:42:35.000000Z", // ウォレット作成日によるフィルター(終了時点)
-  is_suspended: false // ウォレットが凍結状態かどうかでフィルターする
-}));
+```PYTHON
+response = client.send(pp.GetShopAccounts(
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",               # private_money_id: マネーID
+                          page=5719,                                            # ページ番号
+                          per_page=3774,                                        # 1ページ分のウォレット数
+                          created_at_from="2023-12-16T16:18:22.000000Z",        # ウォレット作成日によるフィルター(開始時点)
+                          created_at_to="2021-06-21T04:26:48.000000Z",          # ウォレット作成日によるフィルター(終了時点)
+                          is_suspended=True                                     # ウォレットが凍結状態かどうかでフィルターする
+))
 ```
 
 
 
 ### Parameters
-**`private_money_id`** 
-  
-
+#### `private_money_id`
 マネーIDです。
 
 一覧するウォレットのマネーを指定します。このパラメータは必須です。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -782,11 +903,14 @@ const response: Response<PaginatedAccountWithUsers> = await client.send(new GetS
 }
 ```
 
-**`page`** 
-  
+</details>
 
+#### `page`
 取得したいページ番号です。デフォルト値は1です。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "integer",
@@ -794,11 +918,14 @@ const response: Response<PaginatedAccountWithUsers> = await client.send(new GetS
 }
 ```
 
-**`per_page`** 
-  
+</details>
 
+#### `per_page`
 1ページ分のウォレット数です。デフォルト値は30です。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "integer",
@@ -806,11 +933,14 @@ const response: Response<PaginatedAccountWithUsers> = await client.send(new GetS
 }
 ```
 
-**`created_at_from`** 
-  
+</details>
 
+#### `created_at_from`
 ウォレット作成日によるフィルターの開始時点のタイムスタンプです。デフォルトでは未指定です。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -818,11 +948,14 @@ const response: Response<PaginatedAccountWithUsers> = await client.send(new GetS
 }
 ```
 
-**`created_at_to`** 
-  
+</details>
 
+#### `created_at_to`
 ウォレット作成日によるフィルターの終了時点のタイムスタンプです。デフォルトでは未指定です。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -830,17 +963,22 @@ const response: Response<PaginatedAccountWithUsers> = await client.send(new GetS
 }
 ```
 
-**`is_suspended`** 
-  
+</details>
 
+#### `is_suspended`
 このパラメータが指定されている場合、ウォレットの凍結状態で結果がフィルターされます。デフォルトでは未指定です。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "boolean"
 }
 ```
 
+</details>
+
 
 
 成功したときは
@@ -851,7 +989,81 @@ const response: Response<PaginatedAccountWithUsers> = await client.send(new GetS
 |status|type|ja|en|
 |---|---|---|---|
 |403|unpermitted_admin_user|この管理ユーザには権限がありません|Admin does not have permission|
-|422|private_money_not_found||Private money not found|
+|422|private_money_not_found|マネーが見つかりません|Private money not found|
+
+
+
+---
+
+
+<a name="get-customer-cards"></a>
+## GetCustomerCards: エンドユーザーのクレジットカード一覧を取得する
+エンドユーザーのクレジットカード一覧を取得します。
+3D Secure認証済みのカードのみが返されます。
+idはcredit-sessions作成時に使用できます。
+
+```PYTHON
+response = client.send(pp.GetCustomerCards(
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",               # customer_id: エンドユーザーID
+                          page=2807,                                            # ページ番号
+                          per_page=59                                           # 1ページ分の要素数
+))
+```
+
+
+
+### Parameters
+#### `customer_id`
+エンドユーザーのIDです。
+
+<details>
+<summary>スキーマ</summary>
+
+```json
+{
+  "type": "string",
+  "format": "uuid"
+}
+```
+
+</details>
+
+#### `page`
+取得したいページ番号です。デフォルト値は1です。
+
+<details>
+<summary>スキーマ</summary>
+
+```json
+{
+  "type": "integer",
+  "minimum": 1
+}
+```
+
+</details>
+
+#### `per_page`
+1ページ当たりの要素数です。デフォルト値は30です。
+
+<details>
+<summary>スキーマ</summary>
+
+```json
+{
+  "type": "integer",
+  "minimum": 1,
+  "maximum": 100
+}
+```
+
+</details>
+
+
+
+成功したときは
+[PaginatedUserCards](./responses.md#paginated-user-cards)
+を返します
 
 
 
@@ -862,29 +1074,30 @@ const response: Response<PaginatedAccountWithUsers> = await client.send(new GetS
 ## ListCustomerTransactions: 取引履歴を取得する
 取引一覧を返します。
 
-```typescript
-const response: Response<PaginatedTransaction> = await client.send(new ListCustomerTransactions({
-  private_money_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // マネーID
-  sender_customer_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // 送金エンドユーザーID
-  receiver_customer_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // 受取エンドユーザーID
-  type: "expire", // 取引種別
-  is_modified: true, // キャンセル済みかどうか
-  from: "2020-09-27T18:26:40.000000Z", // 開始日時
-  to: "2022-09-05T11:19:04.000000Z", // 終了日時
-  page: 1, // ページ番号
-  per_page: 50 // 1ページ分の取引数
-}));
+```PYTHON
+response = client.send(pp.ListCustomerTransactions(
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",               # private_money_id: マネーID
+                          sender_customer_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", # 送金エンドユーザーID
+                          receiver_customer_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", # 受取エンドユーザーID
+                          type="topup",                                         # 取引種別
+                          is_modified=False,                                    # キャンセル済みかどうか
+                          start="2025-09-13T03:13:20.000000Z",                  # 開始日時
+                          to="2022-09-28T01:52:57.000000Z",                     # 終了日時
+                          page=1,                                               # ページ番号
+                          per_page=50                                           # 1ページ分の取引数
+))
 ```
 
 
 
 ### Parameters
-**`private_money_id`** 
-  
-
+#### `private_money_id`
 マネーIDです。
 フィルターとして使われ、指定したマネーでの取引のみ一覧に表示されます。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -892,13 +1105,16 @@ const response: Response<PaginatedTransaction> = await client.send(new ListCusto
 }
 ```
 
-**`sender_customer_id`** 
-  
+</details>
 
+#### `sender_customer_id`
 送金ユーザーIDです。
 
 フィルターとして使われ、指定された送金ユーザーでの取引のみ一覧に表示されます。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -906,13 +1122,16 @@ const response: Response<PaginatedTransaction> = await client.send(new ListCusto
 }
 ```
 
-**`receiver_customer_id`** 
-  
+</details>
 
+#### `receiver_customer_id`
 受取ユーザーIDです。
 
 フィルターとして使われ、指定された受取ユーザーでの取引のみ一覧に表示されます。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -920,9 +1139,9 @@ const response: Response<PaginatedTransaction> = await client.send(new ListCusto
 }
 ```
 
-**`type`** 
-  
+</details>
 
+#### `type`
 取引の種類でフィルターします。
 
 以下の種類を指定できます。
@@ -940,6 +1159,9 @@ const response: Response<PaginatedTransaction> = await client.send(new ListCusto
 6. expire
    ウォレット退会時失効
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -954,28 +1176,34 @@ const response: Response<PaginatedTransaction> = await client.send(new ListCusto
 }
 ```
 
-**`is_modified`** 
-  
+</details>
 
+#### `is_modified`
 キャンセル済みかどうかを判定するフラグです。
 
 これにtrueを指定するとキャンセルされた取引のみ一覧に表示されます。
 falseを指定するとキャンセルされていない取引のみ一覧に表示されます
 何も指定しなければキャンセルの有無にかかわらず一覧に表示されます。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "boolean"
 }
 ```
 
-**`from`** 
-  
+</details>
 
+#### `from`
 抽出期間の開始日時です。
 
 フィルターとして使われ、開始日時以降に発生した取引のみ一覧に表示されます。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -983,13 +1211,16 @@ falseを指定するとキャンセルされていない取引のみ一覧に表
 }
 ```
 
-**`to`** 
-  
+</details>
 
+#### `to`
 抽出期間の終了日時です。
 
 フィルターとして使われ、終了日時以前に発生した取引のみ一覧に表示されます。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -997,11 +1228,14 @@ falseを指定するとキャンセルされていない取引のみ一覧に表
 }
 ```
 
-**`page`** 
-  
+</details>
 
+#### `page`
 取得したいページ番号です。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "integer",
@@ -1009,11 +1243,14 @@ falseを指定するとキャンセルされていない取引のみ一覧に表
 }
 ```
 
-**`per_page`** 
-  
+</details>
 
+#### `per_page`
 1ページ分の取引数です。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "integer",
@@ -1021,6 +1258,8 @@ falseを指定するとキャンセルされていない取引のみ一覧に表
 }
 ```
 
+</details>
+
 
 
 成功したときは
@@ -1032,7 +1271,8 @@ falseを指定するとキャンセルされていない取引のみ一覧に表
 |---|---|---|---|
 |403|unpermitted_admin_user|この管理ユーザには権限がありません|Admin does not have permission|
 |422|customer_user_not_found||The customer user is not found|
-|422|private_money_not_found||Private money not found|
+|422|private_money_not_found|マネーが見つかりません|Private money not found|
+|503|temporarily_unavailable||Service Unavailable|
 
 
 
diff --git a/docs/error-response.csv b/docs/error-response.csv
index 990a441..3ac5afd 100644
--- a/docs/error-response.csv
+++ b/docs/error-response.csv
@@ -1,20 +1,34 @@
 method,path,status_code,type,ja,en
+GET,/ping,418,,,
+POST,/sentry-notification-test,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
 GET,/user,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
 GET,/dashboard,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
 ,,422,shop_user_not_found,"店舗が見つかりません",The shop user is not found
-,,422,private_money_not_found,,Private money not found
+,,422,private_money_not_found,"マネーが見つかりません",Private money not found
+,,503,temporarily_unavailable,,Service Unavailable
 GET,/transfers,403,,,
+,,503,temporarily_unavailable,,Service Unavailable
 GET,/transfers-v2,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
+,,503,temporarily_unavailable,,Service Unavailable
 GET,/transactions,403,,,
+,,503,temporarily_unavailable,,Service Unavailable
 GET,/transactions-v2,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
+,,503,temporarily_unavailable,,Service Unavailable
+GET,/transactions/bill,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
+,,503,temporarily_unavailable,,Service Unavailable
 POST,/transactions,400,invalid_parameter_both_point_and_money_are_zero,,One of 'money_amount' or 'point_amount' must be a positive (>0) number
 ,,400,invalid_parameters,"項目が無効です",Invalid parameters
 ,,403,,,
-,,410,transaction_canceled,"取引がキャンセルされました",Transaction was canceled
 ,,422,customer_user_not_found,,The customer user is not found
 ,,422,shop_user_not_found,"店舗が見つかりません",The shop user is not found
-,,422,private_money_not_found,,Private money not found
+,,422,private_money_not_found,"マネーが見つかりません",Private money not found
+,,422,credit_session_money_topup_requires_credit_card,"オーソリチャージ用マネーではクレジットカードによるチャージのみ許可されています",Credit card is required for topup on credit-session enabled money
+,,422,cannot_topup_during_cvs_authorization_pending,"コンビニ決済の予約中はチャージできません",You cannot topup your account while a convenience store payment is pending.
+,,422,credit_session_not_found,"オーソリセッションが見つかりません",Credit session not found
+,,422,not_applicable_transaction_type_for_account_topup_quota,"チャージ取引以外の取引種別ではチャージ可能枠を使用できません",Account topup quota is not applicable to transaction types other than topup.
+,,422,private_money_topup_quota_not_available,"このマネーにはチャージ可能枠の設定がありません",Topup quota is not available with this private money.
 ,,422,account_can_not_topup,"この店舗からはチャージできません",account can not topup
+,,422,private_money_closed,"このマネーは解約されています",This money was closed
 ,,422,transaction_has_done,"取引は完了しており、キャンセルすることはできません",Transaction has been copmpleted and cannot be canceled
 ,,422,account_restricted,"特定のアカウントの支払いに制限されています",The account is restricted to pay for a specific account
 ,,422,account_balance_not_enough,"口座残高が不足してます",The account balance is not enough
@@ -22,8 +36,14 @@ POST,/transactions,400,invalid_parameter_both_point_and_money_are_zero,,One of '
 ,,422,account_transfer_limit_exceeded,"取引金額が上限を超えました",Too much amount to transfer
 ,,422,account_balance_exceeded,"口座残高が上限を超えました",The account balance exceeded the limit
 ,,422,account_money_topup_transfer_limit_exceeded,"マネーチャージ金額が上限を超えました",Too much amount to money topup transfer
-,,422,account_total_topup_limit_range,"期間内での合計チャージ額上限に達しました",Entire period topup limit reached
-,,422,account_total_topup_limit_entire_period,"全期間での合計チャージ額上限に達しました",Entire period topup limit reached
+,,422,reserved_word_can_not_specify_to_metadata,"取引メタデータに予約語は指定出来ません",Reserved word can not specify to metadata
+,,422,account_topup_quota_not_splittable,"このチャージ可能枠は設定された金額未満の金額には使用できません",This topup quota is only applicable to its designated money amount.
+,,422,topup_amount_exceeding_topup_quota_usable_amount,"チャージ金額がチャージ可能枠の利用可能金額を超えています",Topup amount is exceeding the topup quota's usable amount
+,,422,account_topup_quota_inactive,"指定されたチャージ可能枠は有効ではありません",Topup quota is inactive
+,,422,account_topup_quota_not_within_applicable_period,"指定されたチャージ可能枠の利用可能期間外です",Topup quota is not applicable at this time
+,,422,account_topup_quota_not_found,"ウォレットにチャージ可能枠がありません",Topup quota is not found with this account
+,,422,account_total_topup_limit_range,"合計チャージ額がマネーで指定された期間内での上限を超えています",The topup exceeds the total amount within the period defined by the money.
+,,422,account_total_topup_limit_entire_period,"合計チャージ額がマネーで指定された期間内での上限を超えています",The topup exceeds the total amount defined by the money.
 ,,422,coupon_unavailable_shop,"このクーポンはこの店舗では使用できません。",This coupon is unavailable for this shop.
 ,,422,coupon_already_used,"このクーポンは既に使用済みです。",This coupon is already used.
 ,,422,coupon_not_received,"このクーポンは受け取られていません。",This coupon is not received.
@@ -34,7 +54,7 @@ POST,/transactions,400,invalid_parameter_both_point_and_money_are_zero,,One of '
 ,,422,account_suspended,"アカウントは停止されています",The account is suspended
 ,,422,account_closed,"アカウントは退会しています",The account is closed
 ,,422,customer_account_not_found,,The customer account is not found
-,,422,shop_account_not_found,,The shop account is not found
+,,422,shop_account_not_found,"店舗アカウントが見つかりません",The shop account is not found
 ,,422,account_currency_mismatch,"アカウント間で通貨が異なっています",Currency mismatch between accounts
 ,,422,account_pre_closed,"アカウントは退会準備中です",The account is pre-closed
 ,,422,account_not_accessible,"アカウントにアクセスできません",The account is not accessible by this user
@@ -45,14 +65,17 @@ POST,/transactions,400,invalid_parameter_both_point_and_money_are_zero,,One of '
 ,,503,temporarily_unavailable,,Service Unavailable
 GET,/transactions/:uuid,403,,,
 ,,404,,,
+,,503,temporarily_unavailable,,Service Unavailable
 GET,/transactions/requests/:request-id,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
 ,,422,transaction_not_found,"取引が見つかりません",Transaction not found
+,,503,temporarily_unavailable,,Service Unavailable
 POST,/transactions/:uuid/refund,400,invalid_mdk_token,,Invalid MDK token
 ,,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
 ,,404,card_not_found,"カードが見つかりません",
 ,,409,already_registered_veritrans_card,"このカードは既に登録されています",
 ,,409,already_registered_veritrans_account,"この会員は既に登録されています",
 ,,422,transaction_not_found,"取引が見つかりません",Transaction not found
+,,422,private_money_closed,"このマネーは解約されています",This money was closed
 ,,422,can_not_refund_bank_transaction,"銀行取引はキャンセルできません",Bank transactions cannot be cancelled.
 ,,422,unavailable_card_error,"このクレジットカードはご利用になれません",The credit card is unavailable
 ,,422,veritrans_wrong_password_or_cancel,"本人認証に失敗しました。（パスワード間違い、キャンセル、カード会社判定）",Not complete authentication by cardholder.
@@ -68,9 +91,14 @@ POST,/transactions/:uuid/refund,400,invalid_mdk_token,,Invalid MDK token
 POST,/transactions/topup,400,invalid_parameter_both_point_and_money_are_zero,,One of 'money_amount' or 'point_amount' must be a positive (>0) number
 ,,400,invalid_parameters,"項目が無効です",Invalid parameters
 ,,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
-,,410,transaction_canceled,"取引がキャンセルされました",Transaction was canceled
-,,422,invalid_metadata,"メタデータの形式が不正です",Invalid metadata format
+,,422,coupon_not_found,"クーポンが見つかりませんでした。",The coupon is not found.
+,,422,credit_session_money_topup_requires_credit_card,"オーソリチャージ用マネーではクレジットカードによるチャージのみ許可されています",Credit card is required for topup on credit-session enabled money
+,,422,cannot_topup_during_cvs_authorization_pending,"コンビニ決済の予約中はチャージできません",You cannot topup your account while a convenience store payment is pending.
+,,422,credit_session_not_found,"オーソリセッションが見つかりません",Credit session not found
+,,422,not_applicable_transaction_type_for_account_topup_quota,"チャージ取引以外の取引種別ではチャージ可能枠を使用できません",Account topup quota is not applicable to transaction types other than topup.
+,,422,private_money_topup_quota_not_available,"このマネーにはチャージ可能枠の設定がありません",Topup quota is not available with this private money.
 ,,422,account_can_not_topup,"この店舗からはチャージできません",account can not topup
+,,422,private_money_closed,"このマネーは解約されています",This money was closed
 ,,422,transaction_has_done,"取引は完了しており、キャンセルすることはできません",Transaction has been copmpleted and cannot be canceled
 ,,422,account_restricted,"特定のアカウントの支払いに制限されています",The account is restricted to pay for a specific account
 ,,422,account_balance_not_enough,"口座残高が不足してます",The account balance is not enough
@@ -78,8 +106,13 @@ POST,/transactions/topup,400,invalid_parameter_both_point_and_money_are_zero,,On
 ,,422,account_transfer_limit_exceeded,"取引金額が上限を超えました",Too much amount to transfer
 ,,422,account_balance_exceeded,"口座残高が上限を超えました",The account balance exceeded the limit
 ,,422,account_money_topup_transfer_limit_exceeded,"マネーチャージ金額が上限を超えました",Too much amount to money topup transfer
-,,422,account_total_topup_limit_range,"期間内での合計チャージ額上限に達しました",Entire period topup limit reached
-,,422,account_total_topup_limit_entire_period,"全期間での合計チャージ額上限に達しました",Entire period topup limit reached
+,,422,account_topup_quota_not_splittable,"このチャージ可能枠は設定された金額未満の金額には使用できません",This topup quota is only applicable to its designated money amount.
+,,422,topup_amount_exceeding_topup_quota_usable_amount,"チャージ金額がチャージ可能枠の利用可能金額を超えています",Topup amount is exceeding the topup quota's usable amount
+,,422,account_topup_quota_inactive,"指定されたチャージ可能枠は有効ではありません",Topup quota is inactive
+,,422,account_topup_quota_not_within_applicable_period,"指定されたチャージ可能枠の利用可能期間外です",Topup quota is not applicable at this time
+,,422,account_topup_quota_not_found,"ウォレットにチャージ可能枠がありません",Topup quota is not found with this account
+,,422,account_total_topup_limit_range,"合計チャージ額がマネーで指定された期間内での上限を超えています",The topup exceeds the total amount within the period defined by the money.
+,,422,account_total_topup_limit_entire_period,"合計チャージ額がマネーで指定された期間内での上限を超えています",The topup exceeds the total amount defined by the money.
 ,,422,coupon_unavailable_shop,"このクーポンはこの店舗では使用できません。",This coupon is unavailable for this shop.
 ,,422,coupon_already_used,"このクーポンは既に使用済みです。",This coupon is already used.
 ,,422,coupon_not_received,"このクーポンは受け取られていません。",This coupon is not received.
@@ -96,17 +129,24 @@ POST,/transactions/topup,400,invalid_parameter_both_point_and_money_are_zero,,On
 ,,422,same_account_transaction,"同じアカウントに送信しています",Sending to the same account
 ,,422,transaction_invalid_done_at,"取引完了日が無効です",Transaction completion date is invalid
 ,,422,transaction_invalid_amount,"取引金額が数値ではないか、受け入れられない桁数です",Transaction amount is not a number or cannot be accepted for this currency
+,,422,request_id_conflict,"このリクエストIDは他の取引ですでに使用されています。お手数ですが、別のリクエストIDで最初からやり直してください。",The request_id is already used by another transaction. Try again with new request id
+,,422,reserved_word_can_not_specify_to_metadata,"取引メタデータに予約語は指定出来ません",Reserved word can not specify to metadata
+,,422,invalid_metadata,"メタデータの形式が不正です",Invalid metadata format
 ,,422,customer_account_not_found,,The customer account is not found
-,,422,shop_account_not_found,,The shop account is not found
-,,422,private_money_not_found,,Private money not found
+,,422,shop_account_not_found,"店舗アカウントが見つかりません",The shop account is not found
+,,422,private_money_not_found,"マネーが見つかりません",Private money not found
 ,,503,temporarily_unavailable,,Service Unavailable
-POST,/transactions/topup/check,400,invalid_parameters,"項目が無効です",Invalid parameters
-,,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
-,,410,transaction_canceled,"取引がキャンセルされました",Transaction was canceled
+POST,/transactions/topup/check,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
 ,,422,customer_user_not_found,,The customer user is not found
 ,,422,check_not_found,"これはチャージQRコードではありません",This is not a topup QR code
-,,422,invalid_metadata,"メタデータの形式が不正です",Invalid metadata format
+,,422,coupon_not_found,"クーポンが見つかりませんでした。",The coupon is not found.
+,,422,credit_session_money_topup_requires_credit_card,"オーソリチャージ用マネーではクレジットカードによるチャージのみ許可されています",Credit card is required for topup on credit-session enabled money
+,,422,cannot_topup_during_cvs_authorization_pending,"コンビニ決済の予約中はチャージできません",You cannot topup your account while a convenience store payment is pending.
+,,422,credit_session_not_found,"オーソリセッションが見つかりません",Credit session not found
+,,422,not_applicable_transaction_type_for_account_topup_quota,"チャージ取引以外の取引種別ではチャージ可能枠を使用できません",Account topup quota is not applicable to transaction types other than topup.
+,,422,private_money_topup_quota_not_available,"このマネーにはチャージ可能枠の設定がありません",Topup quota is not available with this private money.
 ,,422,account_can_not_topup,"この店舗からはチャージできません",account can not topup
+,,422,private_money_closed,"このマネーは解約されています",This money was closed
 ,,422,transaction_has_done,"取引は完了しており、キャンセルすることはできません",Transaction has been copmpleted and cannot be canceled
 ,,422,account_restricted,"特定のアカウントの支払いに制限されています",The account is restricted to pay for a specific account
 ,,422,account_balance_not_enough,"口座残高が不足してます",The account balance is not enough
@@ -114,8 +154,13 @@ POST,/transactions/topup/check,400,invalid_parameters,"項目が無効です",In
 ,,422,account_transfer_limit_exceeded,"取引金額が上限を超えました",Too much amount to transfer
 ,,422,account_balance_exceeded,"口座残高が上限を超えました",The account balance exceeded the limit
 ,,422,account_money_topup_transfer_limit_exceeded,"マネーチャージ金額が上限を超えました",Too much amount to money topup transfer
-,,422,account_total_topup_limit_range,"期間内での合計チャージ額上限に達しました",Entire period topup limit reached
-,,422,account_total_topup_limit_entire_period,"全期間での合計チャージ額上限に達しました",Entire period topup limit reached
+,,422,account_topup_quota_not_splittable,"このチャージ可能枠は設定された金額未満の金額には使用できません",This topup quota is only applicable to its designated money amount.
+,,422,topup_amount_exceeding_topup_quota_usable_amount,"チャージ金額がチャージ可能枠の利用可能金額を超えています",Topup amount is exceeding the topup quota's usable amount
+,,422,account_topup_quota_inactive,"指定されたチャージ可能枠は有効ではありません",Topup quota is inactive
+,,422,account_topup_quota_not_within_applicable_period,"指定されたチャージ可能枠の利用可能期間外です",Topup quota is not applicable at this time
+,,422,account_topup_quota_not_found,"ウォレットにチャージ可能枠がありません",Topup quota is not found with this account
+,,422,account_total_topup_limit_range,"合計チャージ額がマネーで指定された期間内での上限を超えています",The topup exceeds the total amount within the period defined by the money.
+,,422,account_total_topup_limit_entire_period,"合計チャージ額がマネーで指定された期間内での上限を超えています",The topup exceeds the total amount defined by the money.
 ,,422,coupon_unavailable_shop,"このクーポンはこの店舗では使用できません。",This coupon is unavailable for this shop.
 ,,422,coupon_already_used,"このクーポンは既に使用済みです。",This coupon is already used.
 ,,422,coupon_not_received,"このクーポンは受け取られていません。",This coupon is not received.
@@ -126,7 +171,7 @@ POST,/transactions/topup/check,400,invalid_parameters,"項目が無効です",In
 ,,422,account_suspended,"アカウントは停止されています",The account is suspended
 ,,422,account_closed,"アカウントは退会しています",The account is closed
 ,,422,customer_account_not_found,,The customer account is not found
-,,422,shop_account_not_found,,The shop account is not found
+,,422,shop_account_not_found,"店舗アカウントが見つかりません",The shop account is not found
 ,,422,account_currency_mismatch,"アカウント間で通貨が異なっています",Currency mismatch between accounts
 ,,422,account_pre_closed,"アカウントは退会準備中です",The account is pre-closed
 ,,422,account_not_accessible,"アカウントにアクセスできません",The account is not accessible by this user
@@ -134,13 +179,64 @@ POST,/transactions/topup/check,400,invalid_parameters,"項目が無効です",In
 ,,422,same_account_transaction,"同じアカウントに送信しています",Sending to the same account
 ,,422,transaction_invalid_done_at,"取引完了日が無効です",Transaction completion date is invalid
 ,,422,transaction_invalid_amount,"取引金額が数値ではないか、受け入れられない桁数です",Transaction amount is not a number or cannot be accepted for this currency
+,,422,request_id_conflict,"このリクエストIDは他の取引ですでに使用されています。お手数ですが、別のリクエストIDで最初からやり直してください。",The request_id is already used by another transaction. Try again with new request id
+,,422,reserved_word_can_not_specify_to_metadata,"取引メタデータに予約語は指定出来ません",Reserved word can not specify to metadata
+,,422,invalid_metadata,"メタデータの形式が不正です",Invalid metadata format
 ,,422,check_already_received,"このチャージQRコードは既に受取済みの為、チャージ出来ませんでした",Check is already received
 ,,422,check_unavailable,"このチャージQRコードは利用できません",The topup QR code is not available
 ,,503,temporarily_unavailable,,Service Unavailable
 POST,/transactions/topup/seven-bank-atm,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
 ,,404,notfound,,Not found
-,,410,transaction_canceled,"取引がキャンセルされました",Transaction was canceled
+,,422,customer_account_not_found,,The customer account is not found
+,,422,shop_account_not_found,"店舗アカウントが見つかりません",The shop account is not found
+,,422,account_suspended,"アカウントは停止されています",The account is suspended
+,,422,account_closed,"アカウントは退会しています",The account is closed
+,,422,credit_session_money_topup_requires_credit_card,"オーソリチャージ用マネーではクレジットカードによるチャージのみ許可されています",Credit card is required for topup on credit-session enabled money
+,,422,cannot_topup_during_cvs_authorization_pending,"コンビニ決済の予約中はチャージできません",You cannot topup your account while a convenience store payment is pending.
+,,422,credit_session_not_found,"オーソリセッションが見つかりません",Credit session not found
+,,422,not_applicable_transaction_type_for_account_topup_quota,"チャージ取引以外の取引種別ではチャージ可能枠を使用できません",Account topup quota is not applicable to transaction types other than topup.
+,,422,private_money_topup_quota_not_available,"このマネーにはチャージ可能枠の設定がありません",Topup quota is not available with this private money.
+,,422,account_can_not_topup,"この店舗からはチャージできません",account can not topup
+,,422,account_currency_mismatch,"アカウント間で通貨が異なっています",Currency mismatch between accounts
+,,422,account_pre_closed,"アカウントは退会準備中です",The account is pre-closed
+,,422,account_not_accessible,"アカウントにアクセスできません",The account is not accessible by this user
+,,422,terminal_is_invalidated,"端末は無効化されています",The terminal is already invalidated
+,,422,same_account_transaction,"同じアカウントに送信しています",Sending to the same account
+,,422,private_money_closed,"このマネーは解約されています",This money was closed
+,,422,transaction_has_done,"取引は完了しており、キャンセルすることはできません",Transaction has been copmpleted and cannot be canceled
+,,422,transaction_invalid_done_at,"取引完了日が無効です",Transaction completion date is invalid
+,,422,transaction_invalid_amount,"取引金額が数値ではないか、受け入れられない桁数です",Transaction amount is not a number or cannot be accepted for this currency
+,,422,account_restricted,"特定のアカウントの支払いに制限されています",The account is restricted to pay for a specific account
+,,422,account_balance_not_enough,"口座残高が不足してます",The account balance is not enough
+,,422,c2c_transfer_not_allowed,"このマネーではユーザ間マネー譲渡は利用できません",Customer to customer transfer is not available for this money
+,,422,account_transfer_limit_exceeded,"取引金額が上限を超えました",Too much amount to transfer
+,,422,account_balance_exceeded,"口座残高が上限を超えました",The account balance exceeded the limit
+,,422,account_money_topup_transfer_limit_exceeded,"マネーチャージ金額が上限を超えました",Too much amount to money topup transfer
+,,422,reserved_word_can_not_specify_to_metadata,"取引メタデータに予約語は指定出来ません",Reserved word can not specify to metadata
+,,422,account_topup_quota_not_splittable,"このチャージ可能枠は設定された金額未満の金額には使用できません",This topup quota is only applicable to its designated money amount.
+,,422,topup_amount_exceeding_topup_quota_usable_amount,"チャージ金額がチャージ可能枠の利用可能金額を超えています",Topup amount is exceeding the topup quota's usable amount
+,,422,account_topup_quota_inactive,"指定されたチャージ可能枠は有効ではありません",Topup quota is inactive
+,,422,account_topup_quota_not_within_applicable_period,"指定されたチャージ可能枠の利用可能期間外です",Topup quota is not applicable at this time
+,,422,account_topup_quota_not_found,"ウォレットにチャージ可能枠がありません",Topup quota is not found with this account
+,,422,account_total_topup_limit_range,"合計チャージ額がマネーで指定された期間内での上限を超えています",The topup exceeds the total amount within the period defined by the money.
+,,422,account_total_topup_limit_entire_period,"合計チャージ額がマネーで指定された期間内での上限を超えています",The topup exceeds the total amount defined by the money.
+,,422,coupon_unavailable_shop,"このクーポンはこの店舗では使用できません。",This coupon is unavailable for this shop.
+,,422,coupon_already_used,"このクーポンは既に使用済みです。",This coupon is already used.
+,,422,coupon_not_received,"このクーポンは受け取られていません。",This coupon is not received.
+,,422,coupon_not_sent,"このウォレットに対して配信されていないクーポンです。",This coupon is not sent to this account yet.
+,,422,coupon_amount_not_enough,"このクーポンを使用するには支払い額が足りません。",The payment amount not enough to use this coupon.
+,,422,coupon_not_payment,"クーポンは支払いにのみ使用できます。",Coupons can only be used for payment.
+,,422,coupon_unavailable,"このクーポンは使用できません。",This coupon is unavailable.
+,,503,temporarily_unavailable,,Service Unavailable
+POST,/transactions/payment,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
+,,422,coupon_not_found,"クーポンが見つかりませんでした。",The coupon is not found.
+,,422,credit_session_money_topup_requires_credit_card,"オーソリチャージ用マネーではクレジットカードによるチャージのみ許可されています",Credit card is required for topup on credit-session enabled money
+,,422,cannot_topup_during_cvs_authorization_pending,"コンビニ決済の予約中はチャージできません",You cannot topup your account while a convenience store payment is pending.
+,,422,credit_session_not_found,"オーソリセッションが見つかりません",Credit session not found
+,,422,not_applicable_transaction_type_for_account_topup_quota,"チャージ取引以外の取引種別ではチャージ可能枠を使用できません",Account topup quota is not applicable to transaction types other than topup.
+,,422,private_money_topup_quota_not_available,"このマネーにはチャージ可能枠の設定がありません",Topup quota is not available with this private money.
 ,,422,account_can_not_topup,"この店舗からはチャージできません",account can not topup
+,,422,private_money_closed,"このマネーは解約されています",This money was closed
 ,,422,transaction_has_done,"取引は完了しており、キャンセルすることはできません",Transaction has been copmpleted and cannot be canceled
 ,,422,account_restricted,"特定のアカウントの支払いに制限されています",The account is restricted to pay for a specific account
 ,,422,account_balance_not_enough,"口座残高が不足してます",The account balance is not enough
@@ -148,8 +244,13 @@ POST,/transactions/topup/seven-bank-atm,403,unpermitted_admin_user,"この管理
 ,,422,account_transfer_limit_exceeded,"取引金額が上限を超えました",Too much amount to transfer
 ,,422,account_balance_exceeded,"口座残高が上限を超えました",The account balance exceeded the limit
 ,,422,account_money_topup_transfer_limit_exceeded,"マネーチャージ金額が上限を超えました",Too much amount to money topup transfer
-,,422,account_total_topup_limit_range,"期間内での合計チャージ額上限に達しました",Entire period topup limit reached
-,,422,account_total_topup_limit_entire_period,"全期間での合計チャージ額上限に達しました",Entire period topup limit reached
+,,422,account_topup_quota_not_splittable,"このチャージ可能枠は設定された金額未満の金額には使用できません",This topup quota is only applicable to its designated money amount.
+,,422,topup_amount_exceeding_topup_quota_usable_amount,"チャージ金額がチャージ可能枠の利用可能金額を超えています",Topup amount is exceeding the topup quota's usable amount
+,,422,account_topup_quota_inactive,"指定されたチャージ可能枠は有効ではありません",Topup quota is inactive
+,,422,account_topup_quota_not_within_applicable_period,"指定されたチャージ可能枠の利用可能期間外です",Topup quota is not applicable at this time
+,,422,account_topup_quota_not_found,"ウォレットにチャージ可能枠がありません",Topup quota is not found with this account
+,,422,account_total_topup_limit_range,"合計チャージ額がマネーで指定された期間内での上限を超えています",The topup exceeds the total amount within the period defined by the money.
+,,422,account_total_topup_limit_entire_period,"合計チャージ額がマネーで指定された期間内での上限を超えています",The topup exceeds the total amount defined by the money.
 ,,422,coupon_unavailable_shop,"このクーポンはこの店舗では使用できません。",This coupon is unavailable for this shop.
 ,,422,coupon_already_used,"このクーポンは既に使用済みです。",This coupon is already used.
 ,,422,coupon_not_received,"このクーポンは受け取られていません。",This coupon is not received.
@@ -159,8 +260,6 @@ POST,/transactions/topup/seven-bank-atm,403,unpermitted_admin_user,"この管理
 ,,422,coupon_unavailable,"このクーポンは使用できません。",This coupon is unavailable.
 ,,422,account_suspended,"アカウントは停止されています",The account is suspended
 ,,422,account_closed,"アカウントは退会しています",The account is closed
-,,422,customer_account_not_found,,The customer account is not found
-,,422,shop_account_not_found,,The shop account is not found
 ,,422,account_currency_mismatch,"アカウント間で通貨が異なっています",Currency mismatch between accounts
 ,,422,account_pre_closed,"アカウントは退会準備中です",The account is pre-closed
 ,,422,account_not_accessible,"アカウントにアクセスできません",The account is not accessible by this user
@@ -168,12 +267,25 @@ POST,/transactions/topup/seven-bank-atm,403,unpermitted_admin_user,"この管理
 ,,422,same_account_transaction,"同じアカウントに送信しています",Sending to the same account
 ,,422,transaction_invalid_done_at,"取引完了日が無効です",Transaction completion date is invalid
 ,,422,transaction_invalid_amount,"取引金額が数値ではないか、受け入れられない桁数です",Transaction amount is not a number or cannot be accepted for this currency
-,,503,temporarily_unavailable,,Service Unavailable
-POST,/transactions/payment,400,invalid_parameters,"項目が無効です",Invalid parameters
-,,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
-,,410,transaction_canceled,"取引がキャンセルされました",Transaction was canceled
+,,422,request_id_conflict,"このリクエストIDは他の取引ですでに使用されています。お手数ですが、別のリクエストIDで最初からやり直してください。",The request_id is already used by another transaction. Try again with new request id
+,,422,reserved_word_can_not_specify_to_metadata,"取引メタデータに予約語は指定出来ません",Reserved word can not specify to metadata
 ,,422,invalid_metadata,"メタデータの形式が不正です",Invalid metadata format
+,,422,customer_account_not_found,,The customer account is not found
+,,422,shop_account_not_found,"店舗アカウントが見つかりません",The shop account is not found
+,,422,private_money_not_found,"マネーが見つかりません",Private money not found
+,,503,temporarily_unavailable,,Service Unavailable
+POST,/transactions/payment/bill,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
+,,422,disabled_bill,"支払いQRコードが無効です",Bill is disabled
+,,422,customer_user_not_found,,The customer user is not found
+,,422,bill_not_found,"支払いQRコードが見つかりません",Bill not found
+,,422,coupon_not_found,"クーポンが見つかりませんでした。",The coupon is not found.
+,,422,credit_session_money_topup_requires_credit_card,"オーソリチャージ用マネーではクレジットカードによるチャージのみ許可されています",Credit card is required for topup on credit-session enabled money
+,,422,cannot_topup_during_cvs_authorization_pending,"コンビニ決済の予約中はチャージできません",You cannot topup your account while a convenience store payment is pending.
+,,422,credit_session_not_found,"オーソリセッションが見つかりません",Credit session not found
+,,422,not_applicable_transaction_type_for_account_topup_quota,"チャージ取引以外の取引種別ではチャージ可能枠を使用できません",Account topup quota is not applicable to transaction types other than topup.
+,,422,private_money_topup_quota_not_available,"このマネーにはチャージ可能枠の設定がありません",Topup quota is not available with this private money.
 ,,422,account_can_not_topup,"この店舗からはチャージできません",account can not topup
+,,422,private_money_closed,"このマネーは解約されています",This money was closed
 ,,422,transaction_has_done,"取引は完了しており、キャンセルすることはできません",Transaction has been copmpleted and cannot be canceled
 ,,422,account_restricted,"特定のアカウントの支払いに制限されています",The account is restricted to pay for a specific account
 ,,422,account_balance_not_enough,"口座残高が不足してます",The account balance is not enough
@@ -181,8 +293,13 @@ POST,/transactions/payment,400,invalid_parameters,"項目が無効です",Invali
 ,,422,account_transfer_limit_exceeded,"取引金額が上限を超えました",Too much amount to transfer
 ,,422,account_balance_exceeded,"口座残高が上限を超えました",The account balance exceeded the limit
 ,,422,account_money_topup_transfer_limit_exceeded,"マネーチャージ金額が上限を超えました",Too much amount to money topup transfer
-,,422,account_total_topup_limit_range,"期間内での合計チャージ額上限に達しました",Entire period topup limit reached
-,,422,account_total_topup_limit_entire_period,"全期間での合計チャージ額上限に達しました",Entire period topup limit reached
+,,422,account_topup_quota_not_splittable,"このチャージ可能枠は設定された金額未満の金額には使用できません",This topup quota is only applicable to its designated money amount.
+,,422,topup_amount_exceeding_topup_quota_usable_amount,"チャージ金額がチャージ可能枠の利用可能金額を超えています",Topup amount is exceeding the topup quota's usable amount
+,,422,account_topup_quota_inactive,"指定されたチャージ可能枠は有効ではありません",Topup quota is inactive
+,,422,account_topup_quota_not_within_applicable_period,"指定されたチャージ可能枠の利用可能期間外です",Topup quota is not applicable at this time
+,,422,account_topup_quota_not_found,"ウォレットにチャージ可能枠がありません",Topup quota is not found with this account
+,,422,account_total_topup_limit_range,"合計チャージ額がマネーで指定された期間内での上限を超えています",The topup exceeds the total amount within the period defined by the money.
+,,422,account_total_topup_limit_entire_period,"合計チャージ額がマネーで指定された期間内での上限を超えています",The topup exceeds the total amount defined by the money.
 ,,422,coupon_unavailable_shop,"このクーポンはこの店舗では使用できません。",This coupon is unavailable for this shop.
 ,,422,coupon_already_used,"このクーポンは既に使用済みです。",This coupon is already used.
 ,,422,coupon_not_received,"このクーポンは受け取られていません。",This coupon is not received.
@@ -192,6 +309,8 @@ POST,/transactions/payment,400,invalid_parameters,"項目が無効です",Invali
 ,,422,coupon_unavailable,"このクーポンは使用できません。",This coupon is unavailable.
 ,,422,account_suspended,"アカウントは停止されています",The account is suspended
 ,,422,account_closed,"アカウントは退会しています",The account is closed
+,,422,customer_account_not_found,,The customer account is not found
+,,422,shop_account_not_found,"店舗アカウントが見つかりません",The shop account is not found
 ,,422,account_currency_mismatch,"アカウント間で通貨が異なっています",Currency mismatch between accounts
 ,,422,account_pre_closed,"アカウントは退会準備中です",The account is pre-closed
 ,,422,account_not_accessible,"アカウントにアクセスできません",The account is not accessible by this user
@@ -199,17 +318,21 @@ POST,/transactions/payment,400,invalid_parameters,"項目が無効です",Invali
 ,,422,same_account_transaction,"同じアカウントに送信しています",Sending to the same account
 ,,422,transaction_invalid_done_at,"取引完了日が無効です",Transaction completion date is invalid
 ,,422,transaction_invalid_amount,"取引金額が数値ではないか、受け入れられない桁数です",Transaction amount is not a number or cannot be accepted for this currency
-,,422,customer_account_not_found,,The customer account is not found
-,,422,shop_account_not_found,,The shop account is not found
-,,422,private_money_not_found,,Private money not found
+,,422,request_id_conflict,"このリクエストIDは他の取引ですでに使用されています。お手数ですが、別のリクエストIDで最初からやり直してください。",The request_id is already used by another transaction. Try again with new request id
+,,422,reserved_word_can_not_specify_to_metadata,"取引メタデータに予約語は指定出来ません",Reserved word can not specify to metadata
+,,422,invalid_metadata,"メタデータの形式が不正です",Invalid metadata format
 ,,503,temporarily_unavailable,,Service Unavailable
-POST,/transactions/transfer,400,invalid_parameters,"項目が無効です",Invalid parameters
-,,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
-,,410,transaction_canceled,"取引がキャンセルされました",Transaction was canceled
+POST,/transactions/transfer,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
 ,,422,customer_user_not_found,,The customer user is not found
-,,422,private_money_not_found,,Private money not found
-,,422,invalid_metadata,"メタデータの形式が不正です",Invalid metadata format
+,,422,private_money_not_found,"マネーが見つかりません",Private money not found
+,,422,coupon_not_found,"クーポンが見つかりませんでした。",The coupon is not found.
+,,422,credit_session_money_topup_requires_credit_card,"オーソリチャージ用マネーではクレジットカードによるチャージのみ許可されています",Credit card is required for topup on credit-session enabled money
+,,422,cannot_topup_during_cvs_authorization_pending,"コンビニ決済の予約中はチャージできません",You cannot topup your account while a convenience store payment is pending.
+,,422,credit_session_not_found,"オーソリセッションが見つかりません",Credit session not found
+,,422,not_applicable_transaction_type_for_account_topup_quota,"チャージ取引以外の取引種別ではチャージ可能枠を使用できません",Account topup quota is not applicable to transaction types other than topup.
+,,422,private_money_topup_quota_not_available,"このマネーにはチャージ可能枠の設定がありません",Topup quota is not available with this private money.
 ,,422,account_can_not_topup,"この店舗からはチャージできません",account can not topup
+,,422,private_money_closed,"このマネーは解約されています",This money was closed
 ,,422,transaction_has_done,"取引は完了しており、キャンセルすることはできません",Transaction has been copmpleted and cannot be canceled
 ,,422,account_restricted,"特定のアカウントの支払いに制限されています",The account is restricted to pay for a specific account
 ,,422,account_balance_not_enough,"口座残高が不足してます",The account balance is not enough
@@ -217,8 +340,13 @@ POST,/transactions/transfer,400,invalid_parameters,"項目が無効です",Inval
 ,,422,account_transfer_limit_exceeded,"取引金額が上限を超えました",Too much amount to transfer
 ,,422,account_balance_exceeded,"口座残高が上限を超えました",The account balance exceeded the limit
 ,,422,account_money_topup_transfer_limit_exceeded,"マネーチャージ金額が上限を超えました",Too much amount to money topup transfer
-,,422,account_total_topup_limit_range,"期間内での合計チャージ額上限に達しました",Entire period topup limit reached
-,,422,account_total_topup_limit_entire_period,"全期間での合計チャージ額上限に達しました",Entire period topup limit reached
+,,422,account_topup_quota_not_splittable,"このチャージ可能枠は設定された金額未満の金額には使用できません",This topup quota is only applicable to its designated money amount.
+,,422,topup_amount_exceeding_topup_quota_usable_amount,"チャージ金額がチャージ可能枠の利用可能金額を超えています",Topup amount is exceeding the topup quota's usable amount
+,,422,account_topup_quota_inactive,"指定されたチャージ可能枠は有効ではありません",Topup quota is inactive
+,,422,account_topup_quota_not_within_applicable_period,"指定されたチャージ可能枠の利用可能期間外です",Topup quota is not applicable at this time
+,,422,account_topup_quota_not_found,"ウォレットにチャージ可能枠がありません",Topup quota is not found with this account
+,,422,account_total_topup_limit_range,"合計チャージ額がマネーで指定された期間内での上限を超えています",The topup exceeds the total amount within the period defined by the money.
+,,422,account_total_topup_limit_entire_period,"合計チャージ額がマネーで指定された期間内での上限を超えています",The topup exceeds the total amount defined by the money.
 ,,422,coupon_unavailable_shop,"このクーポンはこの店舗では使用できません。",This coupon is unavailable for this shop.
 ,,422,coupon_already_used,"このクーポンは既に使用済みです。",This coupon is already used.
 ,,422,coupon_not_received,"このクーポンは受け取られていません。",This coupon is not received.
@@ -229,7 +357,7 @@ POST,/transactions/transfer,400,invalid_parameters,"項目が無効です",Inval
 ,,422,account_suspended,"アカウントは停止されています",The account is suspended
 ,,422,account_closed,"アカウントは退会しています",The account is closed
 ,,422,customer_account_not_found,,The customer account is not found
-,,422,shop_account_not_found,,The shop account is not found
+,,422,shop_account_not_found,"店舗アカウントが見つかりません",The shop account is not found
 ,,422,account_currency_mismatch,"アカウント間で通貨が異なっています",Currency mismatch between accounts
 ,,422,account_pre_closed,"アカウントは退会準備中です",The account is pre-closed
 ,,422,account_not_accessible,"アカウントにアクセスできません",The account is not accessible by this user
@@ -237,18 +365,25 @@ POST,/transactions/transfer,400,invalid_parameters,"項目が無効です",Inval
 ,,422,same_account_transaction,"同じアカウントに送信しています",Sending to the same account
 ,,422,transaction_invalid_done_at,"取引完了日が無効です",Transaction completion date is invalid
 ,,422,transaction_invalid_amount,"取引金額が数値ではないか、受け入れられない桁数です",Transaction amount is not a number or cannot be accepted for this currency
+,,422,request_id_conflict,"このリクエストIDは他の取引ですでに使用されています。お手数ですが、別のリクエストIDで最初からやり直してください。",The request_id is already used by another transaction. Try again with new request id
+,,422,reserved_word_can_not_specify_to_metadata,"取引メタデータに予約語は指定出来ません",Reserved word can not specify to metadata
+,,422,invalid_metadata,"メタデータの形式が不正です",Invalid metadata format
 ,,503,temporarily_unavailable,,Service Unavailable
-POST,/transactions/exchange,400,invalid_parameters,"項目が無効です",Invalid parameters
-,,410,transaction_canceled,"取引がキャンセルされました",Transaction was canceled
-,,422,account_not_found,"アカウントが見つかりません",The account is not found
+POST,/transactions/exchange,422,account_not_found,"アカウントが見つかりません",The account is not found
 ,,422,transaction_restricted,,Transaction is not allowed
 ,,422,can_not_exchange_between_same_private_money,"同じマネーとの交換はできません",
 ,,422,can_not_exchange_between_users,"異なるユーザー間での交換は出来ません",
+,,422,credit_session_money_topup_requires_credit_card,"オーソリチャージ用マネーではクレジットカードによるチャージのみ許可されています",Credit card is required for topup on credit-session enabled money
+,,422,cannot_topup_during_cvs_authorization_pending,"コンビニ決済の予約中はチャージできません",You cannot topup your account while a convenience store payment is pending.
+,,422,credit_session_not_found,"オーソリセッションが見つかりません",Credit session not found
+,,422,not_applicable_transaction_type_for_account_topup_quota,"チャージ取引以外の取引種別ではチャージ可能枠を使用できません",Account topup quota is not applicable to transaction types other than topup.
+,,422,private_money_topup_quota_not_available,"このマネーにはチャージ可能枠の設定がありません",Topup quota is not available with this private money.
 ,,422,account_can_not_topup,"この店舗からはチャージできません",account can not topup
 ,,422,account_currency_mismatch,"アカウント間で通貨が異なっています",Currency mismatch between accounts
 ,,422,account_not_accessible,"アカウントにアクセスできません",The account is not accessible by this user
 ,,422,terminal_is_invalidated,"端末は無効化されています",The terminal is already invalidated
 ,,422,same_account_transaction,"同じアカウントに送信しています",Sending to the same account
+,,422,private_money_closed,"このマネーは解約されています",This money was closed
 ,,422,transaction_has_done,"取引は完了しており、キャンセルすることはできません",Transaction has been copmpleted and cannot be canceled
 ,,422,transaction_invalid_done_at,"取引完了日が無効です",Transaction completion date is invalid
 ,,422,transaction_invalid_amount,"取引金額が数値ではないか、受け入れられない桁数です",Transaction amount is not a number or cannot be accepted for this currency
@@ -258,8 +393,14 @@ POST,/transactions/exchange,400,invalid_parameters,"項目が無効です",Inval
 ,,422,account_transfer_limit_exceeded,"取引金額が上限を超えました",Too much amount to transfer
 ,,422,account_balance_exceeded,"口座残高が上限を超えました",The account balance exceeded the limit
 ,,422,account_money_topup_transfer_limit_exceeded,"マネーチャージ金額が上限を超えました",Too much amount to money topup transfer
-,,422,account_total_topup_limit_range,"期間内での合計チャージ額上限に達しました",Entire period topup limit reached
-,,422,account_total_topup_limit_entire_period,"全期間での合計チャージ額上限に達しました",Entire period topup limit reached
+,,422,reserved_word_can_not_specify_to_metadata,"取引メタデータに予約語は指定出来ません",Reserved word can not specify to metadata
+,,422,account_topup_quota_not_splittable,"このチャージ可能枠は設定された金額未満の金額には使用できません",This topup quota is only applicable to its designated money amount.
+,,422,topup_amount_exceeding_topup_quota_usable_amount,"チャージ金額がチャージ可能枠の利用可能金額を超えています",Topup amount is exceeding the topup quota's usable amount
+,,422,account_topup_quota_inactive,"指定されたチャージ可能枠は有効ではありません",Topup quota is inactive
+,,422,account_topup_quota_not_within_applicable_period,"指定されたチャージ可能枠の利用可能期間外です",Topup quota is not applicable at this time
+,,422,account_topup_quota_not_found,"ウォレットにチャージ可能枠がありません",Topup quota is not found with this account
+,,422,account_total_topup_limit_range,"合計チャージ額がマネーで指定された期間内での上限を超えています",The topup exceeds the total amount within the period defined by the money.
+,,422,account_total_topup_limit_entire_period,"合計チャージ額がマネーで指定された期間内での上限を超えています",The topup exceeds the total amount defined by the money.
 ,,422,coupon_unavailable_shop,"このクーポンはこの店舗では使用できません。",This coupon is unavailable for this shop.
 ,,422,coupon_already_used,"このクーポンは既に使用済みです。",This coupon is already used.
 ,,422,coupon_not_received,"このクーポンは受け取られていません。",This coupon is not received.
@@ -270,18 +411,24 @@ POST,/transactions/exchange,400,invalid_parameters,"項目が無効です",Inval
 ,,422,account_suspended,"アカウントは停止されています",The account is suspended
 ,,422,account_pre_closed,"アカウントは退会準備中です",The account is pre-closed
 ,,422,account_closed,"アカウントは退会しています",The account is closed
+,,422,request_id_conflict,"このリクエストIDは他の取引ですでに使用されています。お手数ですが、別のリクエストIDで最初からやり直してください。",The request_id is already used by another transaction. Try again with new request id
 ,,503,temporarily_unavailable,,Service Unavailable
-POST,/transactions/cpm,400,invalid_parameters,"項目が無効です",Invalid parameters
-,,403,cpm_unacceptable_amount,"このCPMトークンに対して許可されていない金額です。",The amount is unacceptable for the CPM token
+POST,/transactions/cpm,403,cpm_unacceptable_amount,"このCPMトークンに対して許可されていない金額です。",The amount is unacceptable for the CPM token
 ,,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
-,,410,transaction_canceled,"取引がキャンセルされました",Transaction was canceled
 ,,422,shop_user_not_found,"店舗が見つかりません",The shop user is not found
-,,422,private_money_not_found,,Private money not found
+,,422,private_money_not_found,"マネーが見つかりません",Private money not found
+,,422,cpm_token_strategy_conflict,"CPMトークンに設定された支払い方式と異なる支払い方式が指定されました。",The strategy conflicts with the one set in the CPM token
 ,,422,cpm_token_already_proceed,"このCPMトークンは既に処理されています。",The CPM token is already proceed
 ,,422,cpm_token_already_expired,"このCPMトークンは既に失効しています。",The CPM token is already expired
 ,,422,cpm_token_not_found,"CPMトークンが見つかりませんでした。",The CPM token is not found.
-,,422,invalid_metadata,"メタデータの形式が不正です",Invalid metadata format
+,,422,coupon_not_found,"クーポンが見つかりませんでした。",The coupon is not found.
+,,422,credit_session_money_topup_requires_credit_card,"オーソリチャージ用マネーではクレジットカードによるチャージのみ許可されています",Credit card is required for topup on credit-session enabled money
+,,422,cannot_topup_during_cvs_authorization_pending,"コンビニ決済の予約中はチャージできません",You cannot topup your account while a convenience store payment is pending.
+,,422,credit_session_not_found,"オーソリセッションが見つかりません",Credit session not found
+,,422,not_applicable_transaction_type_for_account_topup_quota,"チャージ取引以外の取引種別ではチャージ可能枠を使用できません",Account topup quota is not applicable to transaction types other than topup.
+,,422,private_money_topup_quota_not_available,"このマネーにはチャージ可能枠の設定がありません",Topup quota is not available with this private money.
 ,,422,account_can_not_topup,"この店舗からはチャージできません",account can not topup
+,,422,private_money_closed,"このマネーは解約されています",This money was closed
 ,,422,transaction_has_done,"取引は完了しており、キャンセルすることはできません",Transaction has been copmpleted and cannot be canceled
 ,,422,account_restricted,"特定のアカウントの支払いに制限されています",The account is restricted to pay for a specific account
 ,,422,account_balance_not_enough,"口座残高が不足してます",The account balance is not enough
@@ -289,8 +436,13 @@ POST,/transactions/cpm,400,invalid_parameters,"項目が無効です",Invalid pa
 ,,422,account_transfer_limit_exceeded,"取引金額が上限を超えました",Too much amount to transfer
 ,,422,account_balance_exceeded,"口座残高が上限を超えました",The account balance exceeded the limit
 ,,422,account_money_topup_transfer_limit_exceeded,"マネーチャージ金額が上限を超えました",Too much amount to money topup transfer
-,,422,account_total_topup_limit_range,"期間内での合計チャージ額上限に達しました",Entire period topup limit reached
-,,422,account_total_topup_limit_entire_period,"全期間での合計チャージ額上限に達しました",Entire period topup limit reached
+,,422,account_topup_quota_not_splittable,"このチャージ可能枠は設定された金額未満の金額には使用できません",This topup quota is only applicable to its designated money amount.
+,,422,topup_amount_exceeding_topup_quota_usable_amount,"チャージ金額がチャージ可能枠の利用可能金額を超えています",Topup amount is exceeding the topup quota's usable amount
+,,422,account_topup_quota_inactive,"指定されたチャージ可能枠は有効ではありません",Topup quota is inactive
+,,422,account_topup_quota_not_within_applicable_period,"指定されたチャージ可能枠の利用可能期間外です",Topup quota is not applicable at this time
+,,422,account_topup_quota_not_found,"ウォレットにチャージ可能枠がありません",Topup quota is not found with this account
+,,422,account_total_topup_limit_range,"合計チャージ額がマネーで指定された期間内での上限を超えています",The topup exceeds the total amount within the period defined by the money.
+,,422,account_total_topup_limit_entire_period,"合計チャージ額がマネーで指定された期間内での上限を超えています",The topup exceeds the total amount defined by the money.
 ,,422,coupon_unavailable_shop,"このクーポンはこの店舗では使用できません。",This coupon is unavailable for this shop.
 ,,422,coupon_already_used,"このクーポンは既に使用済みです。",This coupon is already used.
 ,,422,coupon_not_received,"このクーポンは受け取られていません。",This coupon is not received.
@@ -301,7 +453,7 @@ POST,/transactions/cpm,400,invalid_parameters,"項目が無効です",Invalid pa
 ,,422,account_suspended,"アカウントは停止されています",The account is suspended
 ,,422,account_closed,"アカウントは退会しています",The account is closed
 ,,422,customer_account_not_found,,The customer account is not found
-,,422,shop_account_not_found,,The shop account is not found
+,,422,shop_account_not_found,"店舗アカウントが見つかりません",The shop account is not found
 ,,422,account_currency_mismatch,"アカウント間で通貨が異なっています",Currency mismatch between accounts
 ,,422,account_pre_closed,"アカウントは退会準備中です",The account is pre-closed
 ,,422,account_not_accessible,"アカウントにアクセスできません",The account is not accessible by this user
@@ -309,29 +461,91 @@ POST,/transactions/cpm,400,invalid_parameters,"項目が無効です",Invalid pa
 ,,422,same_account_transaction,"同じアカウントに送信しています",Sending to the same account
 ,,422,transaction_invalid_done_at,"取引完了日が無効です",Transaction completion date is invalid
 ,,422,transaction_invalid_amount,"取引金額が数値ではないか、受け入れられない桁数です",Transaction amount is not a number or cannot be accepted for this currency
+,,422,request_id_conflict,"このリクエストIDは他の取引ですでに使用されています。お手数ですが、別のリクエストIDで最初からやり直してください。",The request_id is already used by another transaction. Try again with new request id
+,,422,reserved_word_can_not_specify_to_metadata,"取引メタデータに予約語は指定出来ません",Reserved word can not specify to metadata
+,,422,invalid_metadata,"メタデータの形式が不正です",Invalid metadata format
 ,,503,temporarily_unavailable,,Service Unavailable
-POST,/transactions/bulk,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
+POST,/transactions/bulk,400,invalid_parameters,"項目が無効です",Invalid parameters
+,,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
 ,,403,organization_not_issuer,"発行体以外に許可されていない操作です",Unpermitted operation except for issuer organizations.
 ,,409,,,
-,,422,private_money_not_found,,Private money not found
+,,422,private_money_not_found,"マネーが見つかりません",Private money not found
 ,,422,bulk_transaction_invalid_csv_format,"入力されたCSVデータに誤りがあります",Invalid csv format
+POST,/transactions/cashtray,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
+,,422,account_not_found,"アカウントが見つかりません",The account is not found
+,,422,cashtray_not_found,"決済QRコードが見つかりません",Cashtray is not found
+,,422,coupon_not_found,"クーポンが見つかりませんでした。",The coupon is not found.
+,,422,credit_session_money_topup_requires_credit_card,"オーソリチャージ用マネーではクレジットカードによるチャージのみ許可されています",Credit card is required for topup on credit-session enabled money
+,,422,cannot_topup_during_cvs_authorization_pending,"コンビニ決済の予約中はチャージできません",You cannot topup your account while a convenience store payment is pending.
+,,422,credit_session_not_found,"オーソリセッションが見つかりません",Credit session not found
+,,422,not_applicable_transaction_type_for_account_topup_quota,"チャージ取引以外の取引種別ではチャージ可能枠を使用できません",Account topup quota is not applicable to transaction types other than topup.
+,,422,private_money_topup_quota_not_available,"このマネーにはチャージ可能枠の設定がありません",Topup quota is not available with this private money.
+,,422,account_can_not_topup,"この店舗からはチャージできません",account can not topup
+,,422,private_money_closed,"このマネーは解約されています",This money was closed
+,,422,transaction_has_done,"取引は完了しており、キャンセルすることはできません",Transaction has been copmpleted and cannot be canceled
+,,422,account_restricted,"特定のアカウントの支払いに制限されています",The account is restricted to pay for a specific account
+,,422,account_balance_not_enough,"口座残高が不足してます",The account balance is not enough
+,,422,c2c_transfer_not_allowed,"このマネーではユーザ間マネー譲渡は利用できません",Customer to customer transfer is not available for this money
+,,422,account_transfer_limit_exceeded,"取引金額が上限を超えました",Too much amount to transfer
+,,422,account_balance_exceeded,"口座残高が上限を超えました",The account balance exceeded the limit
+,,422,account_money_topup_transfer_limit_exceeded,"マネーチャージ金額が上限を超えました",Too much amount to money topup transfer
+,,422,account_topup_quota_not_splittable,"このチャージ可能枠は設定された金額未満の金額には使用できません",This topup quota is only applicable to its designated money amount.
+,,422,topup_amount_exceeding_topup_quota_usable_amount,"チャージ金額がチャージ可能枠の利用可能金額を超えています",Topup amount is exceeding the topup quota's usable amount
+,,422,account_topup_quota_inactive,"指定されたチャージ可能枠は有効ではありません",Topup quota is inactive
+,,422,account_topup_quota_not_within_applicable_period,"指定されたチャージ可能枠の利用可能期間外です",Topup quota is not applicable at this time
+,,422,account_topup_quota_not_found,"ウォレットにチャージ可能枠がありません",Topup quota is not found with this account
+,,422,account_total_topup_limit_range,"合計チャージ額がマネーで指定された期間内での上限を超えています",The topup exceeds the total amount within the period defined by the money.
+,,422,account_total_topup_limit_entire_period,"合計チャージ額がマネーで指定された期間内での上限を超えています",The topup exceeds the total amount defined by the money.
+,,422,coupon_unavailable_shop,"このクーポンはこの店舗では使用できません。",This coupon is unavailable for this shop.
+,,422,coupon_already_used,"このクーポンは既に使用済みです。",This coupon is already used.
+,,422,coupon_not_received,"このクーポンは受け取られていません。",This coupon is not received.
+,,422,coupon_not_sent,"このウォレットに対して配信されていないクーポンです。",This coupon is not sent to this account yet.
+,,422,coupon_amount_not_enough,"このクーポンを使用するには支払い額が足りません。",The payment amount not enough to use this coupon.
+,,422,coupon_not_payment,"クーポンは支払いにのみ使用できます。",Coupons can only be used for payment.
+,,422,coupon_unavailable,"このクーポンは使用できません。",This coupon is unavailable.
+,,422,account_suspended,"アカウントは停止されています",The account is suspended
+,,422,account_closed,"アカウントは退会しています",The account is closed
+,,422,customer_account_not_found,,The customer account is not found
+,,422,shop_account_not_found,"店舗アカウントが見つかりません",The shop account is not found
+,,422,account_currency_mismatch,"アカウント間で通貨が異なっています",Currency mismatch between accounts
+,,422,account_pre_closed,"アカウントは退会準備中です",The account is pre-closed
+,,422,account_not_accessible,"アカウントにアクセスできません",The account is not accessible by this user
+,,422,terminal_is_invalidated,"端末は無効化されています",The terminal is already invalidated
+,,422,same_account_transaction,"同じアカウントに送信しています",Sending to the same account
+,,422,transaction_invalid_done_at,"取引完了日が無効です",Transaction completion date is invalid
+,,422,transaction_invalid_amount,"取引金額が数値ではないか、受け入れられない桁数です",Transaction amount is not a number or cannot be accepted for this currency
+,,422,request_id_conflict,"このリクエストIDは他の取引ですでに使用されています。お手数ですが、別のリクエストIDで最初からやり直してください。",The request_id is already used by another transaction. Try again with new request id
+,,422,reserved_word_can_not_specify_to_metadata,"取引メタデータに予約語は指定出来ません",Reserved word can not specify to metadata
+,,422,invalid_metadata,"メタデータの形式が不正です",Invalid metadata format
+,,422,cashtray_already_proceed,"この決済QRコードは既に処理されています",Cashtray is already proceed
+,,422,cashtray_expired,"この決済QRコードは有効期限が切れています",Cashtray is expired
+,,422,cashtray_already_canceled,"この決済QRコードは既に無効化されています",Cashtray is already canceled
+,,503,temporarily_unavailable,,Service Unavailable
+POST,/transaction-groups,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
+,,422,transaction_group_name_reserved,"指定されたトランザクショングループ名は使用できません",Transaction group name is reserved
+GET,/transaction-groups/:uuid,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
+,,404,transaction_group_not_found,"トランザクショングループが見つかりません",Transaction group not found
 POST,/external-transactions,400,invalid_parameters,"項目が無効です",Invalid parameters
 ,,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
-,,410,transaction_canceled,"取引がキャンセルされました",Transaction was canceled
 ,,422,customer_user_not_found,,The customer user is not found
 ,,422,shop_user_not_found,"店舗が見つかりません",The shop user is not found
-,,422,private_money_not_found,,Private money not found
-,,422,invalid_metadata,"メタデータの形式が不正です",Invalid metadata format
+,,422,private_money_not_found,"マネーが見つかりません",Private money not found
 ,,422,customer_account_not_found,,The customer account is not found
-,,422,shop_account_not_found,,The shop account is not found
+,,422,shop_account_not_found,"店舗アカウントが見つかりません",The shop account is not found
 ,,422,account_suspended,"アカウントは停止されています",The account is suspended
 ,,422,account_closed,"アカウントは退会しています",The account is closed
+,,422,credit_session_money_topup_requires_credit_card,"オーソリチャージ用マネーではクレジットカードによるチャージのみ許可されています",Credit card is required for topup on credit-session enabled money
+,,422,cannot_topup_during_cvs_authorization_pending,"コンビニ決済の予約中はチャージできません",You cannot topup your account while a convenience store payment is pending.
+,,422,credit_session_not_found,"オーソリセッションが見つかりません",Credit session not found
+,,422,not_applicable_transaction_type_for_account_topup_quota,"チャージ取引以外の取引種別ではチャージ可能枠を使用できません",Account topup quota is not applicable to transaction types other than topup.
+,,422,private_money_topup_quota_not_available,"このマネーにはチャージ可能枠の設定がありません",Topup quota is not available with this private money.
 ,,422,account_can_not_topup,"この店舗からはチャージできません",account can not topup
 ,,422,account_currency_mismatch,"アカウント間で通貨が異なっています",Currency mismatch between accounts
 ,,422,account_pre_closed,"アカウントは退会準備中です",The account is pre-closed
 ,,422,account_not_accessible,"アカウントにアクセスできません",The account is not accessible by this user
 ,,422,terminal_is_invalidated,"端末は無効化されています",The terminal is already invalidated
 ,,422,same_account_transaction,"同じアカウントに送信しています",Sending to the same account
+,,422,private_money_closed,"このマネーは解約されています",This money was closed
 ,,422,transaction_has_done,"取引は完了しており、キャンセルすることはできません",Transaction has been copmpleted and cannot be canceled
 ,,422,transaction_invalid_done_at,"取引完了日が無効です",Transaction completion date is invalid
 ,,422,transaction_invalid_amount,"取引金額が数値ではないか、受け入れられない桁数です",Transaction amount is not a number or cannot be accepted for this currency
@@ -341,8 +555,13 @@ POST,/external-transactions,400,invalid_parameters,"項目が無効です",Inval
 ,,422,account_transfer_limit_exceeded,"取引金額が上限を超えました",Too much amount to transfer
 ,,422,account_balance_exceeded,"口座残高が上限を超えました",The account balance exceeded the limit
 ,,422,account_money_topup_transfer_limit_exceeded,"マネーチャージ金額が上限を超えました",Too much amount to money topup transfer
-,,422,account_total_topup_limit_range,"期間内での合計チャージ額上限に達しました",Entire period topup limit reached
-,,422,account_total_topup_limit_entire_period,"全期間での合計チャージ額上限に達しました",Entire period topup limit reached
+,,422,account_topup_quota_not_splittable,"このチャージ可能枠は設定された金額未満の金額には使用できません",This topup quota is only applicable to its designated money amount.
+,,422,topup_amount_exceeding_topup_quota_usable_amount,"チャージ金額がチャージ可能枠の利用可能金額を超えています",Topup amount is exceeding the topup quota's usable amount
+,,422,account_topup_quota_inactive,"指定されたチャージ可能枠は有効ではありません",Topup quota is inactive
+,,422,account_topup_quota_not_within_applicable_period,"指定されたチャージ可能枠の利用可能期間外です",Topup quota is not applicable at this time
+,,422,account_topup_quota_not_found,"ウォレットにチャージ可能枠がありません",Topup quota is not found with this account
+,,422,account_total_topup_limit_range,"合計チャージ額がマネーで指定された期間内での上限を超えています",The topup exceeds the total amount within the period defined by the money.
+,,422,account_total_topup_limit_entire_period,"合計チャージ額がマネーで指定された期間内での上限を超えています",The topup exceeds the total amount defined by the money.
 ,,422,coupon_unavailable_shop,"このクーポンはこの店舗では使用できません。",This coupon is unavailable for this shop.
 ,,422,coupon_already_used,"このクーポンは既に使用済みです。",This coupon is already used.
 ,,422,coupon_not_received,"このクーポンは受け取られていません。",This coupon is not received.
@@ -350,6 +569,8 @@ POST,/external-transactions,400,invalid_parameters,"項目が無効です",Inval
 ,,422,coupon_amount_not_enough,"このクーポンを使用するには支払い額が足りません。",The payment amount not enough to use this coupon.
 ,,422,coupon_not_payment,"クーポンは支払いにのみ使用できます。",Coupons can only be used for payment.
 ,,422,coupon_unavailable,"このクーポンは使用できません。",This coupon is unavailable.
+,,422,reserved_word_can_not_specify_to_metadata,"取引メタデータに予約語は指定出来ません",Reserved word can not specify to metadata
+,,422,invalid_metadata,"メタデータの形式が不正です",Invalid metadata format
 ,,503,temporarily_unavailable,,Service Unavailable
 POST,/external-transactions/:uuid/refund,400,invalid_mdk_token,,Invalid MDK token
 ,,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
@@ -357,6 +578,7 @@ POST,/external-transactions/:uuid/refund,400,invalid_mdk_token,,Invalid MDK toke
 ,,409,already_registered_veritrans_card,"このカードは既に登録されています",
 ,,409,already_registered_veritrans_account,"この会員は既に登録されています",
 ,,422,event_not_found,"イベントが見つかりません",Event not found
+,,422,private_money_closed,"このマネーは解約されています",This money was closed
 ,,422,can_not_refund_bank_transaction,"銀行取引はキャンセルできません",Bank transactions cannot be cancelled.
 ,,422,unavailable_card_error,"このクレジットカードはご利用になれません",The credit card is unavailable
 ,,422,veritrans_wrong_password_or_cancel,"本人認証に失敗しました。（パスワード間違い、キャンセル、カード会社判定）",Not complete authentication by cardholder.
@@ -375,33 +597,39 @@ GET,/bulk-transactions/:uuid,404,notfound,,Not found
 GET,/bulk-transactions/:uuid/jobs,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
 ,,422,bulk_transaction_not_found,"Bulk取引が見つかりません",Bulk transaction not found
 GET,/bills,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
-POST,/bills,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
-,,422,shop_account_not_found,,The shop account is not found
-,,422,private_money_not_found,,Private money not found
+GET,/bills/:uuid,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
+,,422,bill_not_found,"支払いQRコードが見つかりません",Bill not found
+POST,/bills,400,invalid_parameter_bill_amount_or_range_exceeding_transfer_limit,"支払いQRコードの金額がマネーの取引可能金額の上限を超えています",The input amount is exceeding the private money's limit for transfer
+,,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
+,,422,shop_account_not_found,"店舗アカウントが見つかりません",The shop account is not found
+,,422,private_money_not_found,"マネーが見つかりません",Private money not found
 ,,422,shop_user_not_found,"店舗が見つかりません",The shop user is not found
 ,,422,account_closed,"アカウントは退会しています",The account is closed
 ,,422,account_pre_closed,"アカウントは退会準備中です",The account is pre-closed
 ,,422,account_suspended,"アカウントは停止されています",The account is suspended
-PATCH,/bills/:uuid,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
+PATCH,/bills/:uuid,400,invalid_parameter_bill_amount_or_range_exceeding_transfer_limit,"支払いQRコードの金額がマネーの取引可能金額の上限を超えています",The input amount is exceeding the private money's limit for transfer
+,,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
 ,,404,notfound,,Not found
 GET,/checks,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
 ,,422,organization_not_found,,Organization not found
-,,422,private_money_not_found,,Private money not found
+,,422,private_money_not_found,"マネーが見つかりません",Private money not found
+,,503,temporarily_unavailable,,Service Unavailable
 POST,/checks,400,invalid_parameter_both_point_and_money_are_zero,,One of 'money_amount' or 'point_amount' must be a positive (>0) number
 ,,400,invalid_parameter_only_merchants_can_attach_points_to_check,,Only merchants can attach points to check
-,,400,invalid_parameter_bear_point_account_identification_item_not_unique,"ポイントを負担する店舗アカウントを指定するリクエストパラメータには、アカウントID、またはユーザIDのどちらかを含めることができます",Request parameters include either bear_point_account or bear_point_shop_id.
 ,,400,invalid_parameter_combination_usage_limit_and_is_onetime,,'usage_limit' can not be specified if 'is_onetime' is true.
-,,400,invalid_parameters,"項目が無効です",Invalid parameters
 ,,400,invalid_parameter_expires_at,,'expires_at' must be in the future
+,,400,invalid_parameters,"項目が無効です",Invalid parameters
+,,400,invalid_parameter_bear_point_account_identification_item_not_unique,"ポイントを負担する店舗アカウントを指定するリクエストパラメータには、アカウントID、またはユーザIDのどちらかを含めることができます",Request parameters include either bear_point_account or bear_point_shop_id.
 ,,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
 ,,422,account_can_not_topup,"この店舗からはチャージできません",account can not topup
 ,,422,account_private_money_is_not_issued_by_organization,,The account's private money is not issued by this organization
-,,422,shop_account_not_found,,The shop account is not found
-,,422,account_money_topup_transfer_limit_exceeded,"マネーチャージ金額が上限を超えました",Too much amount to money topup transfer
+,,422,shop_account_not_found,"店舗アカウントが見つかりません",The shop account is not found
 ,,422,bear_point_account_not_found,"ポイントを負担する店舗アカウントが見つかりません",Bear point account not found.
+,,422,account_money_topup_transfer_limit_exceeded,"マネーチャージ金額が上限を超えました",Too much amount to money topup transfer
 GET,/checks/:uuid,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
 ,,404,notfound,,Not found
 ,,422,account_private_money_is_not_issued_by_organization,,The account's private money is not issued by this organization
+,,503,temporarily_unavailable,,Service Unavailable
 PATCH,/checks/:uuid,400,invalid_parameter_combination_usage_limit_and_is_onetime,,'usage_limit' can not be specified if 'is_onetime' is true.
 ,,400,invalid_parameters,"項目が無効です",Invalid parameters
 ,,400,invalid_parameter_expires_at,,'expires_at' must be in the future
@@ -428,8 +656,8 @@ PATCH,/users/invitations/:uuid,403,,,
 ,,409,admin_user_conflict,,The Admin-user is already registered
 ,,503,failed_to_send_email,,Failed to send an E-mail.
 POST,/users/:uuid/accounts,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
-,,422,user_not_found,,The user is not found
-,,422,private_money_not_found,,Private money not found
+,,422,user_not_found,"ユーザーが見つかりません",The user is not found
+,,422,private_money_not_found,"マネーが見つかりません",Private money not found
 ,,422,invalid_metadata,"メタデータの形式が不正です",Invalid metadata format
 ,,422,user_attributes_external_id_not_match,"ユーザー属性情報の外部IDが一致しません",Not match external id of user attributes
 ,,422,user_attributes_not_found,"ユーザー属性情報が存在しません",Not found the user attrubtes
@@ -448,25 +676,31 @@ DELETE,/users/:uuid,403,,,
 GET,/private-moneys,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
 ,,422,organization_not_found,,Organization not found
 GET,/private-moneys/:uuid,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
-,,422,private_money_not_found,,Private money not found
+,,422,private_money_not_found,"マネーが見つかりません",Private money not found
 GET,/private-moneys/:uuid/summary,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
 ,,404,,,
-,,422,private_money_not_found,,Private money not found
+,,422,private_money_not_found,"マネーが見つかりません",Private money not found
+,,503,temporarily_unavailable,,Service Unavailable
 GET,/private-moneys/:uuid/clearings,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
-,,422,private_money_not_found,,Private money not found
+,,422,private_money_not_found,"マネーが見つかりません",Private money not found
+,,503,temporarily_unavailable,,Service Unavailable
 GET,/private-moneys/:uuid/organization-summaries,400,invalid_parameters,"項目が無効です",Invalid parameters
 ,,403,,,
 ,,404,,,
-POST,/private-moneys,400,invalid_parameters,"項目が無効です",Invalid parameters
+POST,/private-moneys,400,credit_card_monthly_cap_less_than_daily_cap,"クレジットカードの1か月間のチャージ額上限は1日あたりチャージ上限額以上である必要があります",Credit card's monthly topup cap is less than its daily cap.
+,,400,invalid_parameters,"項目が無効です",Invalid parameters
 ,,403,,,
+,,409,itrust_tenant_code_conflict,"テナント識別子はすでに登録されています",The tenant code is already registered
 ,,409,private_money_conflict,"このマネーは既に登録されています。",The money is already used
+,,422,private_money_invalid_fallback_private_money,"指定されたフォールバックマネーは有効ではありません",The specified fallback private money is not valid
 ,,422,organization_not_found,,Organization not found
 ,,422,only_one_of_months_and_days_can_be_selected,"月と日のどちらか1つだけを選択できます",Only one of months and days can be selected
 ,,422,private_money_topup_transaction_limit_exceeded,"一回のチャージ取引の最大チャージ可能額がウォレットの最大マネー残高を越えています",The money amount for the transaction exceeds the maximum balance
+,,503,temporarily_unavailable,,Service Unavailable
 GET,/terminals,403,,,
 GET,/organizations,400,invalid_parameters,"項目が無効です",Invalid parameters
 ,,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
-,,422,private_money_not_found,,Private money not found
+,,422,private_money_not_found,"マネーが見つかりません",Private money not found
 POST,/organizations,403,,,
 ,,409,organization_conflict,,The organization code is already used
 ,,409,shop_name_conflict,,The shop name is already used
@@ -484,8 +718,9 @@ PUT,/organizations/:code,403,,,
 ,,503,temporarily_unavailable,,Service Unavailable
 GET,/organizations/:code/shops,403,,,
 GET,/shops,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
-,,422,private_money_not_found,,Private money not found
+,,422,private_money_not_found,"マネーが見つかりません",Private money not found
 ,,422,organization_not_found,,Organization not found
+,,503,temporarily_unavailable,,Service Unavailable
 POST,/shops,403,,,
 ,,409,email_conflict,"このメールアドレスは既に使われています",The E-mail address is already registered
 ,,409,shop_name_conflict,,The shop name is already used
@@ -504,32 +739,40 @@ GET,/shops/:uuid,403,unpermitted_admin_user,"この管理ユーザには権限
 PATCH,/shops/:uuid,400,invalid_parameters,"項目が無効です",Invalid parameters
 ,,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
 ,,409,shop_name_conflict,,The shop name is already used
+,,422,head_office_can_not_be_disabled,"本店は無効化できません",Head office can not be disabled
 ,,422,shop_user_not_found,"店舗が見つかりません",The shop user is not found
 ,,422,unavailable_private_money,,Given private money(s) is/are not available
 ,,422,organization_not_member_organization,,The specified organization is not a member organization of the organization accessing this API
 ,,503,temporarily_unavailable,,Service Unavailable
 GET,/customers,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
+,,503,temporarily_unavailable,,Service Unavailable
 GET,/customers/transactions,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
 ,,422,customer_user_not_found,,The customer user is not found
-,,422,private_money_not_found,,Private money not found
+,,422,private_money_not_found,"マネーが見つかりません",Private money not found
+,,503,temporarily_unavailable,,Service Unavailable
 GET,/customers/:uuid,400,invalid_parameters,"項目が無効です",Invalid parameters
 ,,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
 ,,404,notfound,,Not found
 ,,422,account_not_found,"アカウントが見つかりません",The account is not found
-,,422,private_money_not_found,,Private money not found
+,,422,private_money_not_found,"マネーが見つかりません",Private money not found
+GET,/customers/:uuid/cards,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
+,,422,customer_user_not_found,,The customer user is not found
+,,503,temporarily_unavailable,,Service Unavailable
 PATCH,/clearings/:uuid,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
 ,,404,clearing_not_found,"精算が見つかりません",Clearing not found
 ,,503,temporarily_unavailable,,Service Unavailable
 GET,/clearings,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
+,,503,temporarily_unavailable,,Service Unavailable
 GET,/clearings/preview,400,clearing_to_should_be_past_date,"締め日は過去の日付を指定してください",Should set past date for 'closing_date'
 ,,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
-,,422,private_money_not_found,,Private money not found
+,,422,private_money_not_found,"マネーが見つかりません",Private money not found
 POST,/clearings,400,clearing_to_should_be_past_date,"締め日は過去の日付を指定してください",Should set past date for 'closing_date'
 ,,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
-,,422,private_money_not_found,,Private money not found
+,,422,private_money_not_found,"マネーが見つかりません",Private money not found
 GET,/clearings/flico,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
 GET,/clearings/:uuid,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
 ,,404,clearing_not_found,"精算が見つかりません",Clearing not found
+,,503,temporarily_unavailable,,Service Unavailable
 GET,/messaging-operations,403,,,
 POST,/messaging-operations,400,messaging_operation_over_transfer_limit,,The messaging operation's amount is over transfer limit
 ,,400,messaging_operation_sender_account_not_exist,,The account of sender user does not exist
@@ -538,7 +781,7 @@ POST,/messaging-operations,400,messaging_operation_over_transfer_limit,,The mess
 ,,403,,,
 ,,409,messaging_operation_already_done,,The messaging operation is already done
 ,,422,account_can_not_topup,"この店舗からはチャージできません",account can not topup
-,,422,shop_account_not_found,,The shop account is not found
+,,422,shop_account_not_found,"店舗アカウントが見つかりません",The shop account is not found
 ,,503,temporarily_unavailable,,Service Unavailable
 GET,/messaging-operations/receivers,400,invalid_parameters,"項目が無効です",Invalid parameters
 ,,403,,,
@@ -559,7 +802,10 @@ POST,/user-stats,400,invalid_parameters,"項目が無効です",Invalid paramete
 ,,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
 ,,422,invalid_promotional_operation_user,"ユーザーの指定に不正な値が含まれています",Invalid user data is specified
 ,,422,invalid_promotional_operation_status,"不正な処理ステータスです",Invalid operation status is specified
-,,503,user_stats_operation_service_unavailable,"一時的にユーザー統計サービスが利用不能です",User stats service is temporarily unavailable
+POST,/user-stats/terminate,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
+,,422,user_stats_operation_already_done,"指定されたIDの集計処理タスクは既に完了しています",The specified user stats operation is already done
+,,422,user_stats_operation_not_found,"指定されたIDの集計処理タスクが見つかりません",User stats task not found for the operation ID
+,,503,temporarily_unavailable,,Service Unavailable
 POST,/device/pokeregis,400,invalid_parameters,"項目が無効です",Invalid parameters
 ,,403,,,
 ,,409,hardware_id_conflict,,Hardware id is already registered
@@ -583,13 +829,13 @@ POST,/device/pokeregis/:serial-number,400,terminal_is_already_invalidated,,The t
 ,,500,,,
 GET,/device/kiosks,400,,,
 ,,403,,,
-,,422,private_money_not_found,,Private money not found
+,,422,private_money_not_found,"マネーが見つかりません",Private money not found
 ,,422,organization_not_found,,Organization not found
 GET,/device/kiosk-maintenances,403,,,
 GET,/device/kiosks/:kiosk-id,400,,,
 ,,403,,,
 ,,404,,,
-,,422,private_money_not_found,,Private money not found
+,,422,private_money_not_found,"マネーが見つかりません",Private money not found
 ,,422,organization_not_found,,Organization not found
 POST,/merchandise-tag,403,,,
 ,,503,temporarily_unavailable,,Service Unavailable
@@ -599,14 +845,15 @@ POST,/tokens,403,unpermitted_admin_user,"この管理ユーザには権限があ
 ,,422,shop_user_not_found,"店舗が見つかりません",The shop user is not found
 ,,422,organization_not_found,,Organization not found
 GET,/tokens,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
+,,503,temporarily_unavailable,,Service Unavailable
 DELETE,/tokens/:token,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
 ,,404,notfound,,Not found
 ,,503,temporarily_unavailable,,Service Unavailable
 GET,/accounts/customers,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
-,,422,private_money_not_found,,Private money not found
+,,422,private_money_not_found,"マネーが見つかりません",Private money not found
 POST,/accounts/customers,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
-,,422,user_not_found,,The user is not found
-,,422,private_money_not_found,,Private money not found
+,,422,user_not_found,"ユーザーが見つかりません",The user is not found
+,,422,private_money_not_found,"マネーが見つかりません",Private money not found
 ,,422,invalid_metadata,"メタデータの形式が不正です",Invalid metadata format
 ,,422,user_attributes_external_id_not_match,"ユーザー属性情報の外部IDが一致しません",Not match external id of user attributes
 ,,422,user_attributes_not_found,"ユーザー属性情報が存在しません",Not found the user attrubtes
@@ -616,24 +863,30 @@ PATCH,/accounts/:uuid/customers,403,unpermitted_admin_user,"この管理ユー
 ,,422,invalid_metadata,"メタデータの形式が不正です",Invalid metadata format
 ,,422,account_not_found,"アカウントが見つかりません",The account is not found
 ,,422,user_attributes_not_found,"ユーザー属性情報が存在しません",Not found the user attrubtes
-,,422,account_closed,"アカウントは退会しています",The account is closed
 ,,503,temporarily_unavailable,,Service Unavailable
 GET,/accounts/shops,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
-,,422,private_money_not_found,,Private money not found
+,,422,private_money_not_found,"マネーが見つかりません",Private money not found
 GET,/accounts/:uuid,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
 ,,404,notfound,,Not found
+,,503,temporarily_unavailable,,Service Unavailable
 PATCH,/accounts/:uuid,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
 ,,404,notfound,,Not found
+,,422,account_has_active_credit_session,"アクティブなオーソリセッションがあるためアカウントのステータスを変更できません",Cannot change account status with active credit session
 ,,503,temporarily_unavailable,,Service Unavailable
 DELETE,/accounts/:uuid,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
-,,410,transaction_canceled,"取引がキャンセルされました",Transaction was canceled
 ,,422,account_not_found,"アカウントが見つかりません",The account is not found
 ,,422,account_not_pre_closed,"アカウントが退会準備中ではありません",The account is not pre-closed
+,,422,credit_session_money_topup_requires_credit_card,"オーソリチャージ用マネーではクレジットカードによるチャージのみ許可されています",Credit card is required for topup on credit-session enabled money
+,,422,cannot_topup_during_cvs_authorization_pending,"コンビニ決済の予約中はチャージできません",You cannot topup your account while a convenience store payment is pending.
+,,422,credit_session_not_found,"オーソリセッションが見つかりません",Credit session not found
+,,422,not_applicable_transaction_type_for_account_topup_quota,"チャージ取引以外の取引種別ではチャージ可能枠を使用できません",Account topup quota is not applicable to transaction types other than topup.
+,,422,private_money_topup_quota_not_available,"このマネーにはチャージ可能枠の設定がありません",Topup quota is not available with this private money.
 ,,422,account_can_not_topup,"この店舗からはチャージできません",account can not topup
 ,,422,account_currency_mismatch,"アカウント間で通貨が異なっています",Currency mismatch between accounts
 ,,422,account_not_accessible,"アカウントにアクセスできません",The account is not accessible by this user
 ,,422,terminal_is_invalidated,"端末は無効化されています",The terminal is already invalidated
 ,,422,same_account_transaction,"同じアカウントに送信しています",Sending to the same account
+,,422,private_money_closed,"このマネーは解約されています",This money was closed
 ,,422,transaction_has_done,"取引は完了しており、キャンセルすることはできません",Transaction has been copmpleted and cannot be canceled
 ,,422,transaction_invalid_done_at,"取引完了日が無効です",Transaction completion date is invalid
 ,,422,transaction_invalid_amount,"取引金額が数値ではないか、受け入れられない桁数です",Transaction amount is not a number or cannot be accepted for this currency
@@ -643,8 +896,14 @@ DELETE,/accounts/:uuid,403,unpermitted_admin_user,"この管理ユーザには
 ,,422,account_transfer_limit_exceeded,"取引金額が上限を超えました",Too much amount to transfer
 ,,422,account_balance_exceeded,"口座残高が上限を超えました",The account balance exceeded the limit
 ,,422,account_money_topup_transfer_limit_exceeded,"マネーチャージ金額が上限を超えました",Too much amount to money topup transfer
-,,422,account_total_topup_limit_range,"期間内での合計チャージ額上限に達しました",Entire period topup limit reached
-,,422,account_total_topup_limit_entire_period,"全期間での合計チャージ額上限に達しました",Entire period topup limit reached
+,,422,reserved_word_can_not_specify_to_metadata,"取引メタデータに予約語は指定出来ません",Reserved word can not specify to metadata
+,,422,account_topup_quota_not_splittable,"このチャージ可能枠は設定された金額未満の金額には使用できません",This topup quota is only applicable to its designated money amount.
+,,422,topup_amount_exceeding_topup_quota_usable_amount,"チャージ金額がチャージ可能枠の利用可能金額を超えています",Topup amount is exceeding the topup quota's usable amount
+,,422,account_topup_quota_inactive,"指定されたチャージ可能枠は有効ではありません",Topup quota is inactive
+,,422,account_topup_quota_not_within_applicable_period,"指定されたチャージ可能枠の利用可能期間外です",Topup quota is not applicable at this time
+,,422,account_topup_quota_not_found,"ウォレットにチャージ可能枠がありません",Topup quota is not found with this account
+,,422,account_total_topup_limit_range,"合計チャージ額がマネーで指定された期間内での上限を超えています",The topup exceeds the total amount within the period defined by the money.
+,,422,account_total_topup_limit_entire_period,"合計チャージ額がマネーで指定された期間内での上限を超えています",The topup exceeds the total amount defined by the money.
 ,,422,coupon_unavailable_shop,"このクーポンはこの店舗では使用できません。",This coupon is unavailable for this shop.
 ,,422,coupon_already_used,"このクーポンは既に使用済みです。",This coupon is already used.
 ,,422,coupon_not_received,"このクーポンは受け取られていません。",This coupon is not received.
@@ -659,12 +918,16 @@ DELETE,/accounts/:uuid,403,unpermitted_admin_user,"この管理ユーザには
 ,,503,temporarily_unavailable,,Service Unavailable
 GET,/accounts/:uuid/balances,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
 ,,404,notfound,,Not found
+,,503,temporarily_unavailable,,Service Unavailable
 GET,/accounts/:uuid/expired-balances,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
 ,,404,notfound,,Not found
+,,503,temporarily_unavailable,,Service Unavailable
 GET,/accounts/:uuid/transfers/summary,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
 ,,404,notfound,,Not found
+,,503,temporarily_unavailable,,Service Unavailable
 GET,/users/:uuid/accounts,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
 ,,404,notfound,,Not found
+,,503,temporarily_unavailable,,Service Unavailable
 GET,/cashtrays/:uuid,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
 ,,404,notfound,,Not found
 ,,422,shop_user_not_found,"店舗が見つかりません",The shop user is not found
@@ -685,6 +948,7 @@ PATCH,/cashtrays/:uuid,403,unpermitted_admin_user,"この管理ユーザには
 ,,422,shop_user_not_found,"店舗が見つかりません",The shop user is not found
 GET,/cpm/:cpm-token,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
 ,,422,cpm_token_not_found,"CPMトークンが見つかりませんでした。",The CPM token is not found.
+,,503,temporarily_unavailable,,Service Unavailable
 GET,/seven-bank-atm-sessions/:qr-info,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
 ,,404,notfound,,Not found
 PATCH,/seven-bank-atm-sessions/:qr-info,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
@@ -692,19 +956,20 @@ PATCH,/seven-bank-atm-sessions/:qr-info,403,unpermitted_admin_user,"この管理
 POST,/campaigns,400,invalid_parameters,"項目が無効です",Invalid parameters
 ,,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
 ,,422,campaign_overlaps,"同期間に開催されるキャンペーン間で優先度が重複してます",The campaign period overlaps under the same private-money / type / priority
-,,422,shop_account_not_found,,The shop account is not found
-,,422,shop_user_not_found,"店舗が見つかりません",The shop user is not found
-,,422,private_money_not_found,,Private money not found
+,,422,shop_account_not_found,"店舗アカウントが見つかりません",The shop account is not found
 ,,422,campaign_period_overlaps,"同期間に開催されるキャンペーン間で優先度が重複してます",The campaign period overlaps under the same private-money / type / priority
 ,,422,campaign_invalid_period,,Invalid campaign period starts_at later than ends_at
+,,422,shop_user_not_found,"店舗が見つかりません",The shop user is not found
+,,422,private_money_not_found,"マネーが見つかりません",Private money not found
 GET,/campaigns,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
+,,503,temporarily_unavailable,,Service Unavailable
 PATCH,/campaigns/:uuid,400,invalid_parameters,"項目が無効です",Invalid parameters
 ,,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
 ,,404,notfound,,Not found
-,,422,shop_user_not_found,"店舗が見つかりません",The shop user is not found
 ,,422,campaign_budget_caps_exceeded,"キャンペーン予算上限額を越えています",The campaign budget caps exceeded
 GET,/campaigns/:uuid,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
 ,,404,notfound,,Not found
+,,503,temporarily_unavailable,,Service Unavailable
 POST,/webhooks,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
 ,,409,organization_worker_task_finish_webhook_conflict,"そのwebhookは既に登録されています",The webhook is already registered
 GET,/webhooks,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
@@ -717,26 +982,28 @@ DELETE,/webhooks/:uuid,403,unpermitted_admin_user,"この管理ユーザには
 ,,503,temporarily_unavailable,,Service Unavailable
 GET,/coupons,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
 ,,422,shop_user_not_found,"店舗が見つかりません",The shop user is not found
-,,422,private_money_not_found,,Private money not found
+,,422,private_money_not_found,"マネーが見つかりません",Private money not found
 POST,/coupons,400,invalid_parameters,"項目が無効です",Invalid parameters
 ,,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
 ,,404,partner_storage_not_found,"指定したIDのデータは保存されていません",Not found by storage_id
 ,,422,shop_user_not_found,"店舗が見つかりません",The shop user is not found
-,,422,private_money_not_found,,Private money not found
+,,422,private_money_not_found,"マネーが見つかりません",Private money not found
 ,,422,coupon_image_storage_conflict,"クーポン画像のストレージIDは既に存在します",The coupon image storage_id is already exists
 GET,/coupons/:uuid,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
 ,,422,coupon_not_found,"クーポンが見つかりませんでした。",The coupon is not found.
 PATCH,/coupons/:uuid,400,invalid_parameters,"項目が無効です",Invalid parameters
 ,,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
 ,,404,partner_storage_not_found,"指定したIDのデータは保存されていません",Not found by storage_id
+,,422,coupon_recipients_cap_not_set,"クーポンに受け取り人数の上限が設定されていません",Recipients cap is not set to the coupon.
 ,,422,coupon_not_found,"クーポンが見つかりませんでした。",The coupon is not found.
 ,,422,coupon_image_storage_conflict,"クーポン画像のストレージIDは既に存在します",The coupon image storage_id is already exists
+,,422,coupon_reached_recipients_cap,"クーポンの受け取り人数の上限に達しました",The number of recipients of the coupon reached its cap.
 ,,503,temporarily_unavailable,,Service Unavailable
 POST,/storage/v1,400,partner_decryption_failed,"リクエスト中の暗号データを復号化することができませんでした。",Could not decrypt the data.
 ,,400,partner_client_not_found,"partner_clientが見つかりません。",The partner client is not found.
 ,,422,formats_not_supported_by_storage,"このフォーマットは対応していません",This format is not supported
 POST,/user-devices,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
-,,422,user_not_found,,The user is not found
+,,422,user_not_found,"ユーザーが見つかりません",The user is not found
 GET,/user-devices/:uuid,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
 ,,422,user_device_not_found,,The user-device not found
 POST,/user-devices/:uuid/activate,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
@@ -746,25 +1013,31 @@ POST,/user-devices/:uuid/banks,403,unpermitted_admin_user,"この管理ユーザ
 ,,422,user_device_is_disabled,"このデバイスは無効化されています",The user-device is disabled
 ,,422,user_device_not_found,,The user-device not found
 ,,422,bank_registration_limit_error,"8口座を越えて登録できません",Can not register more than 8 accounts.
-,,422,private_money_not_found,,Private money not found
+,,422,private_money_not_found,"マネーが見つかりません",Private money not found
 ,,422,paytree_disabled_private_money,"このマネーは銀行から引き落とし出来ません",This money cannot be charged from the bank
 ,,422,unpermitted_private_money,"このマネーは使えません",This money is not available
 ,,503,incomplete_configration_for_organization_bank,"現状、このマネーは銀行からのチャージを行えません。システム管理者へお問合せ下さい","Currently, this money cannot be topup from this bank. Please contact your system administrator."
 GET,/user-devices/:uuid/banks,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
 ,,403,forbidden,,Forbidden
-,,422,private_money_not_found,,Private money not found
+,,422,private_money_not_found,"マネーが見つかりません",Private money not found
 ,,422,user_device_not_found,,The user-device not found
 POST,/user-devices/:uuid/banks/topup,400,paytree_request_failure,"銀行の外部サービス起因により、チャージに失敗しました",Failure to topup due to external services of the bank
 ,,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
 ,,403,forbidden,,Forbidden
 ,,403,user_bank_disabled_error,"現在、このユーザーは銀行からのチャージは利用できません",Topup from this user's bank have now been stopped.
 ,,404,user_bank_not_found,"登録された銀行が見つかりません",Bank not found
-,,410,transaction_canceled,"取引がキャンセルされました",Transaction was canceled
-,,422,private_money_not_found,,Private money not found
+,,422,user_not_found,"ユーザーが見つかりません",The user is not found
+,,422,private_money_not_found,"マネーが見つかりません",Private money not found
 ,,422,user_device_is_disabled,"このデバイスは無効化されています",The user-device is disabled
 ,,422,user_device_not_found,,The user-device not found
 ,,422,account_not_found,"アカウントが見つかりません",The account is not found
+,,422,credit_session_money_topup_requires_credit_card,"オーソリチャージ用マネーではクレジットカードによるチャージのみ許可されています",Credit card is required for topup on credit-session enabled money
+,,422,cannot_topup_during_cvs_authorization_pending,"コンビニ決済の予約中はチャージできません",You cannot topup your account while a convenience store payment is pending.
+,,422,credit_session_not_found,"オーソリセッションが見つかりません",Credit session not found
+,,422,not_applicable_transaction_type_for_account_topup_quota,"チャージ取引以外の取引種別ではチャージ可能枠を使用できません",Account topup quota is not applicable to transaction types other than topup.
+,,422,private_money_topup_quota_not_available,"このマネーにはチャージ可能枠の設定がありません",Topup quota is not available with this private money.
 ,,422,account_can_not_topup,"この店舗からはチャージできません",account can not topup
+,,422,private_money_closed,"このマネーは解約されています",This money was closed
 ,,422,transaction_has_done,"取引は完了しており、キャンセルすることはできません",Transaction has been copmpleted and cannot be canceled
 ,,422,account_restricted,"特定のアカウントの支払いに制限されています",The account is restricted to pay for a specific account
 ,,422,account_balance_not_enough,"口座残高が不足してます",The account balance is not enough
@@ -772,8 +1045,14 @@ POST,/user-devices/:uuid/banks/topup,400,paytree_request_failure,"銀行の外
 ,,422,account_transfer_limit_exceeded,"取引金額が上限を超えました",Too much amount to transfer
 ,,422,account_balance_exceeded,"口座残高が上限を超えました",The account balance exceeded the limit
 ,,422,account_money_topup_transfer_limit_exceeded,"マネーチャージ金額が上限を超えました",Too much amount to money topup transfer
-,,422,account_total_topup_limit_range,"期間内での合計チャージ額上限に達しました",Entire period topup limit reached
-,,422,account_total_topup_limit_entire_period,"全期間での合計チャージ額上限に達しました",Entire period topup limit reached
+,,422,reserved_word_can_not_specify_to_metadata,"取引メタデータに予約語は指定出来ません",Reserved word can not specify to metadata
+,,422,account_topup_quota_not_splittable,"このチャージ可能枠は設定された金額未満の金額には使用できません",This topup quota is only applicable to its designated money amount.
+,,422,topup_amount_exceeding_topup_quota_usable_amount,"チャージ金額がチャージ可能枠の利用可能金額を超えています",Topup amount is exceeding the topup quota's usable amount
+,,422,account_topup_quota_inactive,"指定されたチャージ可能枠は有効ではありません",Topup quota is inactive
+,,422,account_topup_quota_not_within_applicable_period,"指定されたチャージ可能枠の利用可能期間外です",Topup quota is not applicable at this time
+,,422,account_topup_quota_not_found,"ウォレットにチャージ可能枠がありません",Topup quota is not found with this account
+,,422,account_total_topup_limit_range,"合計チャージ額がマネーで指定された期間内での上限を超えています",The topup exceeds the total amount within the period defined by the money.
+,,422,account_total_topup_limit_entire_period,"合計チャージ額がマネーで指定された期間内での上限を超えています",The topup exceeds the total amount defined by the money.
 ,,422,coupon_unavailable_shop,"このクーポンはこの店舗では使用できません。",This coupon is unavailable for this shop.
 ,,422,coupon_already_used,"このクーポンは既に使用済みです。",This coupon is already used.
 ,,422,coupon_not_received,"このクーポンは受け取られていません。",This coupon is not received.
@@ -784,7 +1063,7 @@ POST,/user-devices/:uuid/banks/topup,400,paytree_request_failure,"銀行の外
 ,,422,account_suspended,"アカウントは停止されています",The account is suspended
 ,,422,account_closed,"アカウントは退会しています",The account is closed
 ,,422,customer_account_not_found,,The customer account is not found
-,,422,shop_account_not_found,,The shop account is not found
+,,422,shop_account_not_found,"店舗アカウントが見つかりません",The shop account is not found
 ,,422,account_currency_mismatch,"アカウント間で通貨が異なっています",Currency mismatch between accounts
 ,,422,account_pre_closed,"アカウントは退会準備中です",The account is pre-closed
 ,,422,account_not_accessible,"アカウントにアクセスできません",The account is not accessible by this user
@@ -792,11 +1071,132 @@ POST,/user-devices/:uuid/banks/topup,400,paytree_request_failure,"銀行の外
 ,,422,same_account_transaction,"同じアカウントに送信しています",Sending to the same account
 ,,422,transaction_invalid_done_at,"取引完了日が無効です",Transaction completion date is invalid
 ,,422,transaction_invalid_amount,"取引金額が数値ではないか、受け入れられない桁数です",Transaction amount is not a number or cannot be accepted for this currency
+,,422,request_id_conflict,"このリクエストIDは他の取引ですでに使用されています。お手数ですが、別のリクエストIDで最初からやり直してください。",The request_id is already used by another transaction. Try again with new request id
 ,,422,paytree_disabled_private_money,"このマネーは銀行から引き落とし出来ません",This money cannot be charged from the bank
 ,,422,unpermitted_private_money,"このマネーは使えません",This money is not available
 ,,503,temporarily_unavailable,,Service Unavailable
 ,,503,incomplete_configration_for_organization_bank,"現状、このマネーは銀行からのチャージを行えません。システム管理者へお問合せ下さい","Currently, this money cannot be topup from this bank. Please contact your system administrator."
+DELETE,/user-devices/:uuid/banks,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
+,,403,forbidden,,Forbidden
+,,404,user_bank_not_found,"登録された銀行が見つかりません",Bank not found
+,,422,user_device_not_found,,The user-device not found
 POST,/paytree/charge-entry-result,400,partner_decryption_failed,"リクエスト中の暗号データを復号化することができませんでした。",Could not decrypt the data.
 ,,400,partner_client_not_found,"partner_clientが見つかりません。",The partner client is not found.
 POST,/paytree/reconcile,400,invalid_parameters,"項目が無効です",Invalid parameters
 ,,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
+,,503,temporarily_unavailable,,Service Unavailable
+POST,/accounts/:uuid/topup-quotas,400,invalid_parameters,"項目が無効です",Invalid parameters
+,,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
+,,422,private_money_topup_quota_not_available,"このマネーにはチャージ可能枠の設定がありません",Topup quota is not available with this private money.
+,,422,account_not_found,"アカウントが見つかりません",The account is not found
+GET,/accounts/:uuid/topup-quotas,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
+,,422,private_money_topup_quota_not_available,"このマネーにはチャージ可能枠の設定がありません",Topup quota is not available with this private money.
+,,422,account_not_found,"アカウントが見つかりません",The account is not found
+GET,/accounts/:uuid/topup-quotas/:quota-id,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
+,,422,account_topup_quota_not_found,"ウォレットにチャージ可能枠がありません",Topup quota is not found with this account
+,,422,private_money_topup_quota_not_available,"このマネーにはチャージ可能枠の設定がありません",Topup quota is not available with this private money.
+,,422,account_not_found,"アカウントが見つかりません",The account is not found
+PATCH,/accounts/:uuid/topup-quotas/:quota-id,400,invalid_parameters,"項目が無効です",Invalid parameters
+,,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
+,,422,account_topup_quota_not_found,"ウォレットにチャージ可能枠がありません",Topup quota is not found with this account
+,,422,private_money_topup_quota_not_available,"このマネーにはチャージ可能枠の設定がありません",Topup quota is not available with this private money.
+,,422,account_not_found,"アカウントが見つかりません",The account is not found
+DELETE,/accounts/:uuid/topup-quotas/:quota-id,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
+,,422,account_topup_quota_not_found,"ウォレットにチャージ可能枠がありません",Topup quota is not found with this account
+,,422,private_money_topup_quota_not_available,"このマネーにはチャージ可能枠の設定がありません",Topup quota is not available with this private money.
+,,422,account_not_found,"アカウントが見つかりません",The account is not found
+GET,/topup-quotas,400,invalid_parameters,"項目が無効です",Invalid parameters
+,,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
+,,422,private_money_topup_quota_not_available,"このマネーにはチャージ可能枠の設定がありません",Topup quota is not available with this private money.
+,,422,account_topup_quota_not_found,"ウォレットにチャージ可能枠がありません",Topup quota is not found with this account
+,,422,account_not_found,"アカウントが見つかりません",The account is not found
+,,422,private_money_not_found,"マネーが見つかりません",Private money not found
+POST,/credit-sessions,503,temporarily_unavailable,,Service Unavailable
+POST,/credit-sessions/:uuid/transactions,503,temporarily_unavailable,,Service Unavailable
+POST,/credit-sessions/:uuid/capture,503,temporarily_unavailable,,Service Unavailable
+POST,/internals/transaction-groups,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
+GET,/internals/transaction-groups/:uuid,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
+,,404,transaction_group_not_found,"トランザクショングループが見つかりません",Transaction group not found
+DELETE,/internals/transaction-groups/:uuid,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
+,,404,transaction_group_not_found,"トランザクショングループが見つかりません",Transaction group not found
+,,503,temporarily_unavailable,,Service Unavailable
+POST,/internals/transactions,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
+,,404,transaction_group_not_found,"トランザクショングループが見つかりません",Transaction group not found
+,,409,transaction_already_belongs_to_transaction_group,"取引はすでに別のグループに属しています",Transaction already belongs to another group
+,,422,transaction_amount_not_determined,"取引金額が指定されておらず、特定できません",Transaction amount is not specified and cannot be determined
+,,422,account_not_found,"アカウントが見つかりません",The account is not found
+,,422,user_not_found,"ユーザーが見つかりません",The user is not found
+,,422,private_money_not_found,"マネーが見つかりません",Private money not found
+,,422,transaction_not_found,"取引が見つかりません",Transaction not found
+,,422,request_id_conflict,"このリクエストIDは他の取引ですでに使用されています。お手数ですが、別のリクエストIDで最初からやり直してください。",The request_id is already used by another transaction. Try again with new request id
+,,503,temporarily_unavailable,,Service Unavailable
+POST,/internals/expire-balance,400,invalid_parameters,"項目が無効です",Invalid parameters
+,,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
+,,404,transaction_group_not_found,"トランザクショングループが見つかりません",Transaction group not found
+,,409,transaction_already_belongs_to_transaction_group,"取引はすでに別のグループに属しています",Transaction already belongs to another group
+,,422,account_not_found,"アカウントが見つかりません",The account is not found
+,,422,user_not_found,"ユーザーが見つかりません",The user is not found
+,,422,private_money_not_found,"マネーが見つかりません",Private money not found
+,,422,credit_session_money_topup_requires_credit_card,"オーソリチャージ用マネーではクレジットカードによるチャージのみ許可されています",Credit card is required for topup on credit-session enabled money
+,,422,cannot_topup_during_cvs_authorization_pending,"コンビニ決済の予約中はチャージできません",You cannot topup your account while a convenience store payment is pending.
+,,422,credit_session_not_found,"オーソリセッションが見つかりません",Credit session not found
+,,422,not_applicable_transaction_type_for_account_topup_quota,"チャージ取引以外の取引種別ではチャージ可能枠を使用できません",Account topup quota is not applicable to transaction types other than topup.
+,,422,private_money_topup_quota_not_available,"このマネーにはチャージ可能枠の設定がありません",Topup quota is not available with this private money.
+,,422,account_can_not_topup,"この店舗からはチャージできません",account can not topup
+,,422,account_currency_mismatch,"アカウント間で通貨が異なっています",Currency mismatch between accounts
+,,422,account_not_accessible,"アカウントにアクセスできません",The account is not accessible by this user
+,,422,terminal_is_invalidated,"端末は無効化されています",The terminal is already invalidated
+,,422,same_account_transaction,"同じアカウントに送信しています",Sending to the same account
+,,422,private_money_closed,"このマネーは解約されています",This money was closed
+,,422,transaction_has_done,"取引は完了しており、キャンセルすることはできません",Transaction has been copmpleted and cannot be canceled
+,,422,transaction_invalid_done_at,"取引完了日が無効です",Transaction completion date is invalid
+,,422,transaction_invalid_amount,"取引金額が数値ではないか、受け入れられない桁数です",Transaction amount is not a number or cannot be accepted for this currency
+,,422,account_restricted,"特定のアカウントの支払いに制限されています",The account is restricted to pay for a specific account
+,,422,account_balance_not_enough,"口座残高が不足してます",The account balance is not enough
+,,422,c2c_transfer_not_allowed,"このマネーではユーザ間マネー譲渡は利用できません",Customer to customer transfer is not available for this money
+,,422,account_transfer_limit_exceeded,"取引金額が上限を超えました",Too much amount to transfer
+,,422,account_balance_exceeded,"口座残高が上限を超えました",The account balance exceeded the limit
+,,422,account_money_topup_transfer_limit_exceeded,"マネーチャージ金額が上限を超えました",Too much amount to money topup transfer
+,,422,reserved_word_can_not_specify_to_metadata,"取引メタデータに予約語は指定出来ません",Reserved word can not specify to metadata
+,,422,account_topup_quota_not_splittable,"このチャージ可能枠は設定された金額未満の金額には使用できません",This topup quota is only applicable to its designated money amount.
+,,422,topup_amount_exceeding_topup_quota_usable_amount,"チャージ金額がチャージ可能枠の利用可能金額を超えています",Topup amount is exceeding the topup quota's usable amount
+,,422,account_topup_quota_inactive,"指定されたチャージ可能枠は有効ではありません",Topup quota is inactive
+,,422,account_topup_quota_not_within_applicable_period,"指定されたチャージ可能枠の利用可能期間外です",Topup quota is not applicable at this time
+,,422,account_topup_quota_not_found,"ウォレットにチャージ可能枠がありません",Topup quota is not found with this account
+,,422,account_total_topup_limit_range,"合計チャージ額がマネーで指定された期間内での上限を超えています",The topup exceeds the total amount within the period defined by the money.
+,,422,account_total_topup_limit_entire_period,"合計チャージ額がマネーで指定された期間内での上限を超えています",The topup exceeds the total amount defined by the money.
+,,422,coupon_unavailable_shop,"このクーポンはこの店舗では使用できません。",This coupon is unavailable for this shop.
+,,422,coupon_already_used,"このクーポンは既に使用済みです。",This coupon is already used.
+,,422,coupon_not_received,"このクーポンは受け取られていません。",This coupon is not received.
+,,422,coupon_not_sent,"このウォレットに対して配信されていないクーポンです。",This coupon is not sent to this account yet.
+,,422,coupon_amount_not_enough,"このクーポンを使用するには支払い額が足りません。",The payment amount not enough to use this coupon.
+,,422,coupon_not_payment,"クーポンは支払いにのみ使用できます。",Coupons can only be used for payment.
+,,422,coupon_unavailable,"このクーポンは使用できません。",This coupon is unavailable.
+,,422,account_suspended,"アカウントは停止されています",The account is suspended
+,,422,account_pre_closed,"アカウントは退会準備中です",The account is pre-closed
+,,422,account_closed,"アカウントは退会しています",The account is closed
+,,422,transaction_not_found,"取引が見つかりません",Transaction not found
+,,422,request_id_conflict,"このリクエストIDは他の取引ですでに使用されています。お手数ですが、別のリクエストIDで最初からやり直してください。",The request_id is already used by another transaction. Try again with new request id
+,,503,temporarily_unavailable,,Service Unavailable
+GET,/internals/system-user,422,user_not_found,"ユーザーが見つかりません",The user is not found
+,,503,temporarily_unavailable,,Service Unavailable
+GET,/internals/private-moneys/:uuid/credit-session-settings,422,private_money_not_found,"マネーが見つかりません",Private money not found
+,,503,temporarily_unavailable,,Service Unavailable
+GET,/jihanpi-vending-machines,400,invalid_parameters,"項目が無効です",Invalid parameters
+,,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
+,,422,organization_not_found,,Organization not found
+,,422,shop_user_not_found,"店舗が見つかりません",The shop user is not found
+,,422,private_money_not_found,"マネーが見つかりません",Private money not found
+POST,/jihanpi-vending-machines,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
+,,409,jihanpi_vending_machine_nfc_tag_id_conflict,"同じ自販機NFCタグIDがすでに存在します",Jihanpi vending machine NFC tag ID conflict
+,,422,jihanpi_vending_machine_not_found,"自販機情報が見つかりません",Jihanpi vending machine not found
+,,422,shop_user_not_found,"店舗が見つかりません",The shop user is not found
+GET,/jihanpi-vending-machines/:uuid,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
+,,422,jihanpi_vending_machine_not_found,"自販機情報が見つかりません",Jihanpi vending machine not found
+PATCH,/jihanpi-vending-machines/:uuid,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
+,,409,jihanpi_vending_machine_nfc_tag_id_conflict,"同じ自販機NFCタグIDがすでに存在します",Jihanpi vending machine NFC tag ID conflict
+,,422,jihanpi_vending_machine_not_found,"自販機情報が見つかりません",Jihanpi vending machine not found
+,,503,temporarily_unavailable,,Service Unavailable
+DELETE,/jihanpi-vending-machines/:uuid,403,unpermitted_admin_user,"この管理ユーザには権限がありません",Admin does not have permission
+,,422,jihanpi_vending_machine_not_found,"自販機情報が見つかりません",Jihanpi vending machine not found
+,,503,temporarily_unavailable,,Service Unavailable
diff --git a/docs/event.md b/docs/event.md
index 63bef99..52910bf 100644
--- a/docs/event.md
+++ b/docs/event.md
@@ -1,4 +1,10 @@
 # Event
+外部決済イベント（ExternalTransaction）を表すデータです。
+Pokepay外の決済（現金決済、クレジットカード決済等）を記録し、ポケペイのポイント還元を実現します。
+外部決済イベントを作成することで、キャンペーン連動によるポイント付与が可能になります。
+イベントのキャンセル（返金）にも対応しており、紐付いたポイント還元も同時にキャンセルされます。
+リクエストIDによる羃等性の担保もサポートしています。
+
 
 <a name="create-external-transaction"></a>
 ## CreateExternalTransaction: ポケペイ外部取引を作成する
@@ -6,48 +12,43 @@
 
 ポケペイ外の現金決済やクレジットカード決済に対してポケペイのポイントを付けたいというときに使用します。
 
-
-```typescript
-const response: Response<ExternalTransactionDetail> = await client.send(new CreateExternalTransaction({
-  shop_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // 店舗ID
-  customer_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // エンドユーザーID
-  private_money_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // マネーID
-  amount: 2106, // 取引額
-  products: [{"jan_code":"abc",
- "name":"name1",
- "unit_price":100,
- "price": 100,
- "quantity": 1,
- "is_discounted": false,
- "other":"{}"}, {"jan_code":"abc",
+```PYTHON
+response = client.send(pp.CreateExternalTransaction(
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",               # shop_id: 店舗ID
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",               # customer_id: エンドユーザーID
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",               # private_money_id: マネーID
+                          7586,                                                 # amount: 取引額
+                          description="たい焼き(小倉)",                               # 取引説明文
+                          metadata="{\"key\":\"value\"}",                       # ポケペイ外部取引メタデータ
+                          products=[{"jan_code":"abc",
  "name":"name1",
  "unit_price":100,
  "price": 100,
  "quantity": 1,
- "is_discounted": false,
+ "is_discounted": False,
  "other":"{}"}, {"jan_code":"abc",
  "name":"name1",
  "unit_price":100,
  "price": 100,
  "quantity": 1,
- "is_discounted": false,
- "other":"{}"}], // 商品情報データ
-  description: "たい焼き(小倉)", // 取引説明文
-  metadata: "{\"key\":\"value\"}", // ポケペイ外部取引メタデータ
-  request_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" // リクエストID
-}));
+ "is_discounted": False,
+ "other":"{}"}],                                                                # 商品情報データ
+                          request_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",    # リクエストID
+                          done_at="2025-04-12T21:38:52.000000Z"                 # ポケペイ外部取引の実施時間
+))
 ```
 
 
 
 ### Parameters
-**`shop_id`** 
-  
-
+#### `shop_id`
 店舗IDです。
 
 ポケペイ外部取引が行なう店舗を指定します。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -55,13 +56,16 @@ const response: Response<ExternalTransactionDetail> = await client.send(new Crea
 }
 ```
 
-**`customer_id`** 
-  
+</details>
 
+#### `customer_id`
 エンドユーザーIDです。
 
 エンドユーザーを指定します。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -69,13 +73,16 @@ const response: Response<ExternalTransactionDetail> = await client.send(new Crea
 }
 ```
 
-**`private_money_id`** 
-  
+</details>
 
+#### `private_money_id`
 マネーIDです。
 
 マネーを指定します。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -83,11 +90,14 @@ const response: Response<ExternalTransactionDetail> = await client.send(new Crea
 }
 ```
 
-**`amount`** 
-  
+</details>
 
+#### `amount`
 取引金額です。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "integer",
@@ -95,13 +105,16 @@ const response: Response<ExternalTransactionDetail> = await client.send(new Crea
 }
 ```
 
-**`description`** 
-  
+</details>
 
+#### `description`
 取引説明文です。
 
 任意入力で、取引履歴に表示される説明文です。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -109,13 +122,16 @@ const response: Response<ExternalTransactionDetail> = await client.send(new Crea
 }
 ```
 
-**`metadata`** 
-  
+</details>
 
+#### `metadata`
 ポケペイ外部取引作成時に指定され、取引と紐付けられるメタデータです。
 
 任意入力で、全てのkeyとvalueが文字列であるようなフラットな構造のJSONで指定します。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -123,9 +139,9 @@ const response: Response<ExternalTransactionDetail> = await client.send(new Crea
 }
 ```
 
-**`products`** 
-  
+</details>
 
+#### `products`
 一つの取引に含まれる商品情報データです。
 以下の内容からなるJSONオブジェクトの配列で指定します。
 
@@ -137,6 +153,9 @@ const response: Response<ExternalTransactionDetail> = await client.send(new Crea
 - `is_discounted`: 賞味期限が近いなどの理由で商品が値引きされているかどうかのフラグ。boolean
 - `other`: その他商品に関する情報。JSONオブジェクトで指定します。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "array",
@@ -146,15 +165,18 @@ const response: Response<ExternalTransactionDetail> = await client.send(new Crea
 }
 ```
 
-**`request_id`** 
-  
+</details>
 
+#### `request_id`
 取引作成APIの羃等性を担保するためのリクエスト固有のIDです。
 
 取引作成APIで結果が受け取れなかったなどの理由で再試行する際に、二重に取引が作られてしまうことを防ぐために、クライアント側から指定されます。指定は任意で、UUID V4フォーマットでランダム生成した文字列です。リクエストIDは一定期間で削除されます。
 
 リクエストIDを指定したとき、まだそのリクエストIDに対する取引がない場合、新規に取引が作られレスポンスとして返されます。もしそのリクエストIDに対する取引が既にある場合、既存の取引がレスポンスとして返されます。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -162,6 +184,25 @@ const response: Response<ExternalTransactionDetail> = await client.send(new Crea
 }
 ```
 
+</details>
+
+#### `done_at`
+ポケペイ外部取引が実際に起こった時間です。
+時間帯指定のポイント付与キャンペーンでの取引時間の計算に使われます。
+デフォルトではCreateExternalTransactionがリクエストされた時間になります。
+
+<details>
+<summary>スキーマ</summary>
+
+```json
+{
+  "type": "string",
+  "format": "date-time"
+}
+```
+
+</details>
+
 
 
 成功したときは
@@ -173,21 +214,25 @@ const response: Response<ExternalTransactionDetail> = await client.send(new Crea
 |---|---|---|---|
 |400|invalid_parameters|項目が無効です|Invalid parameters|
 |403|unpermitted_admin_user|この管理ユーザには権限がありません|Admin does not have permission|
-|410|transaction_canceled|取引がキャンセルされました|Transaction was canceled|
 |422|customer_user_not_found||The customer user is not found|
 |422|shop_user_not_found|店舗が見つかりません|The shop user is not found|
-|422|private_money_not_found||Private money not found|
-|422|invalid_metadata|メタデータの形式が不正です|Invalid metadata format|
+|422|private_money_not_found|マネーが見つかりません|Private money not found|
 |422|customer_account_not_found||The customer account is not found|
-|422|shop_account_not_found||The shop account is not found|
+|422|shop_account_not_found|店舗アカウントが見つかりません|The shop account is not found|
 |422|account_suspended|アカウントは停止されています|The account is suspended|
 |422|account_closed|アカウントは退会しています|The account is closed|
+|422|credit_session_money_topup_requires_credit_card|オーソリチャージ用マネーではクレジットカードによるチャージのみ許可されています|Credit card is required for topup on credit-session enabled money|
+|422|cannot_topup_during_cvs_authorization_pending|コンビニ決済の予約中はチャージできません|You cannot topup your account while a convenience store payment is pending.|
+|422|credit_session_not_found|オーソリセッションが見つかりません|Credit session not found|
+|422|not_applicable_transaction_type_for_account_topup_quota|チャージ取引以外の取引種別ではチャージ可能枠を使用できません|Account topup quota is not applicable to transaction types other than topup.|
+|422|private_money_topup_quota_not_available|このマネーにはチャージ可能枠の設定がありません|Topup quota is not available with this private money.|
 |422|account_can_not_topup|この店舗からはチャージできません|account can not topup|
 |422|account_currency_mismatch|アカウント間で通貨が異なっています|Currency mismatch between accounts|
 |422|account_pre_closed|アカウントは退会準備中です|The account is pre-closed|
 |422|account_not_accessible|アカウントにアクセスできません|The account is not accessible by this user|
 |422|terminal_is_invalidated|端末は無効化されています|The terminal is already invalidated|
 |422|same_account_transaction|同じアカウントに送信しています|Sending to the same account|
+|422|private_money_closed|このマネーは解約されています|This money was closed|
 |422|transaction_has_done|取引は完了しており、キャンセルすることはできません|Transaction has been copmpleted and cannot be canceled|
 |422|transaction_invalid_done_at|取引完了日が無効です|Transaction completion date is invalid|
 |422|transaction_invalid_amount|取引金額が数値ではないか、受け入れられない桁数です|Transaction amount is not a number or cannot be accepted for this currency|
@@ -197,8 +242,13 @@ const response: Response<ExternalTransactionDetail> = await client.send(new Crea
 |422|account_transfer_limit_exceeded|取引金額が上限を超えました|Too much amount to transfer|
 |422|account_balance_exceeded|口座残高が上限を超えました|The account balance exceeded the limit|
 |422|account_money_topup_transfer_limit_exceeded|マネーチャージ金額が上限を超えました|Too much amount to money topup transfer|
-|422|account_total_topup_limit_range|期間内での合計チャージ額上限に達しました|Entire period topup limit reached|
-|422|account_total_topup_limit_entire_period|全期間での合計チャージ額上限に達しました|Entire period topup limit reached|
+|422|account_topup_quota_not_splittable|このチャージ可能枠は設定された金額未満の金額には使用できません|This topup quota is only applicable to its designated money amount.|
+|422|topup_amount_exceeding_topup_quota_usable_amount|チャージ金額がチャージ可能枠の利用可能金額を超えています|Topup amount is exceeding the topup quota's usable amount|
+|422|account_topup_quota_inactive|指定されたチャージ可能枠は有効ではありません|Topup quota is inactive|
+|422|account_topup_quota_not_within_applicable_period|指定されたチャージ可能枠の利用可能期間外です|Topup quota is not applicable at this time|
+|422|account_topup_quota_not_found|ウォレットにチャージ可能枠がありません|Topup quota is not found with this account|
+|422|account_total_topup_limit_range|合計チャージ額がマネーで指定された期間内での上限を超えています|The topup exceeds the total amount within the period defined by the money.|
+|422|account_total_topup_limit_entire_period|合計チャージ額がマネーで指定された期間内での上限を超えています|The topup exceeds the total amount defined by the money.|
 |422|coupon_unavailable_shop|このクーポンはこの店舗では使用できません。|This coupon is unavailable for this shop.|
 |422|coupon_already_used|このクーポンは既に使用済みです。|This coupon is already used.|
 |422|coupon_not_received|このクーポンは受け取られていません。|This coupon is not received.|
@@ -206,6 +256,8 @@ const response: Response<ExternalTransactionDetail> = await client.send(new Crea
 |422|coupon_amount_not_enough|このクーポンを使用するには支払い額が足りません。|The payment amount not enough to use this coupon.|
 |422|coupon_not_payment|クーポンは支払いにのみ使用できます。|Coupons can only be used for payment.|
 |422|coupon_unavailable|このクーポンは使用できません。|This coupon is unavailable.|
+|422|reserved_word_can_not_specify_to_metadata|取引メタデータに予約語は指定出来ません|Reserved word can not specify to metadata|
+|422|invalid_metadata|メタデータの形式が不正です|Invalid metadata format|
 |503|temporarily_unavailable||Service Unavailable|
 
 
@@ -222,19 +274,20 @@ const response: Response<ExternalTransactionDetail> = await client.send(new Crea
 
 取引をキャンセルできるのは1回きりです。既にキャンセルされた取引を重ねてキャンセルしようとすると `transaction_already_refunded (422)` エラーが返ります。
 
-```typescript
-const response: Response<ExternalTransactionDetail> = await client.send(new RefundExternalTransaction({
-  event_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // 取引ID
-  description: "返品対応のため" // 取引履歴に表示する返金事由
-}));
+```PYTHON
+response = client.send(pp.RefundExternalTransaction(
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",               # event_id: 取引ID
+                          description="返品対応のため"                                 # 取引履歴に表示する返金事由
+))
 ```
 
 
 
 ### Parameters
-**`event_id`** 
-  
+#### `event_id`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -243,9 +296,12 @@ const response: Response<ExternalTransactionDetail> = await client.send(new Refu
 }
 ```
 
-**`description`** 
-  
+</details>
 
+#### `description`
+
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -254,6 +310,8 @@ const response: Response<ExternalTransactionDetail> = await client.send(new Refu
 }
 ```
 
+</details>
+
 
 
 成功したときは
@@ -271,18 +329,19 @@ const response: Response<ExternalTransactionDetail> = await client.send(new Refu
 
 発行体の管理者は自組織発行のマネーに紐付くポケペイ外部取引を取得できます。
 
-```typescript
-const response: Response<ExternalTransactionDetail> = await client.send(new GetExternalTransactionByRequestId({
-  request_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" // リクエストID
-}));
+```PYTHON
+response = client.send(pp.GetExternalTransactionByRequestId(
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"                # request_id: リクエストID
+))
 ```
 
 
 
 ### Parameters
-**`request_id`** 
-  
+#### `request_id`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -291,6 +350,8 @@ const response: Response<ExternalTransactionDetail> = await client.send(new GetE
 }
 ```
 
+</details>
+
 
 
 成功したときは
diff --git a/docs/organization.md b/docs/organization.md
index 842404b..a5cc7b7 100644
--- a/docs/organization.md
+++ b/docs/organization.md
@@ -1,27 +1,33 @@
 # Organization
+組織（発行体・加盟店組織）を表すデータです。
+Pokepay上でマネーを発行する発行体や、店舗を束ねる加盟店組織を管理します。
+組織には組織コード、組織名、本社情報などが含まれます。
+組織配下に複数の店舗（Shop）を持つことができます。
+
 
 <a name="list-organizations"></a>
 ## ListOrganizations: 加盟店組織の一覧を取得する
 
-```typescript
-const response: Response<PaginatedOrganizations> = await client.send(new ListOrganizations({
-  private_money_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // マネーID
-  page: 1, // ページ番号
-  per_page: 50, // 1ページ分の取引数
-  name: "J93Y52", // 組織名
-  code: "C590AS7U" // 組織コード
-}));
+```PYTHON
+response = client.send(pp.ListOrganizations(
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",               # private_money_id: マネーID
+                          page=1,                                               # ページ番号
+                          per_page=50,                                          # 1ページ分の取引数
+                          name="nN",                                            # 組織名
+                          code="l"                                              # 組織コード
+))
 ```
 
 
 
 ### Parameters
-**`private_money_id`** 
-  
-
+#### `private_money_id`
 マネーIDです。
 このマネーに加盟している加盟組織がフィルターされます。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -29,11 +35,14 @@ const response: Response<PaginatedOrganizations> = await client.send(new ListOrg
 }
 ```
 
-**`page`** 
-  
+</details>
 
+#### `page`
 取得したいページ番号です。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "integer",
@@ -41,11 +50,14 @@ const response: Response<PaginatedOrganizations> = await client.send(new ListOrg
 }
 ```
 
-**`per_page`** 
-  
+</details>
 
+#### `per_page`
 1ページ分の取引数です。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "integer",
@@ -53,9 +65,12 @@ const response: Response<PaginatedOrganizations> = await client.send(new ListOrg
 }
 ```
 
-**`name`** 
-  
+</details>
+
+#### `name`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -63,9 +78,12 @@ const response: Response<PaginatedOrganizations> = await client.send(new ListOrg
 }
 ```
 
-**`code`** 
-  
+</details>
 
+#### `code`
+
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -73,6 +91,8 @@ const response: Response<PaginatedOrganizations> = await client.send(new ListOrg
 }
 ```
 
+</details>
+
 
 
 成功したときは
@@ -84,7 +104,7 @@ const response: Response<PaginatedOrganizations> = await client.send(new ListOrg
 |---|---|---|---|
 |400|invalid_parameters|項目が無効です|Invalid parameters|
 |403|unpermitted_admin_user|この管理ユーザには権限がありません|Admin does not have permission|
-|422|private_money_not_found||Private money not found|
+|422|private_money_not_found|マネーが見つかりません|Private money not found|
 
 
 
@@ -94,30 +114,31 @@ const response: Response<PaginatedOrganizations> = await client.send(new ListOrg
 <a name="create-organization"></a>
 ## CreateOrganization: 新規加盟店組織を追加する
 
-```typescript
-const response: Response<Organization> = await client.send(new CreateOrganization({
-  code: "ox-supermarket", // 新規組織コード
-  name: "oxスーパー", // 新規組織名
-  private_money_ids: ["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"], // 加盟店組織で有効にするマネーIDの配列
-  issuer_admin_user_email: "iB0DiDGREm@ImyJ.com", // 発行体担当者メールアドレス
-  member_admin_user_email: "DbbC2wEGBf@cAGc.com", // 新規組織担当者メールアドレス
-  bank_name: "XYZ銀行", // 銀行名
-  bank_code: "1234", // 銀行金融機関コード
-  bank_branch_name: "ABC支店", // 銀行支店名
-  bank_branch_code: "123", // 銀行支店コード
-  bank_account_type: "saving", // 銀行口座種別 (普通=saving, 当座=current, その他=other)
-  bank_account: "1234567", // 銀行口座番号
-  bank_account_holder_name: "ﾌｸｻﾞﾜﾕｷﾁ", // 口座名義人名
-  contact_name: "佐藤清" // 担当者名
-}));
+```PYTHON
+response = client.send(pp.CreateOrganization(
+                          "ox-supermarket",                                     # code: 新規組織コード
+                          "oxスーパー",                                             # name: 新規組織名
+                          ["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"],             # private_money_ids: 加盟店組織で有効にするマネーIDの配列
+                          "3R6Ngh2OAi@1Bcn.com",                                # issuer_admin_user_email: 発行体担当者メールアドレス
+                          "wfTRLJa4uo@IhpR.com",                                # member_admin_user_email: 新規組織担当者メールアドレス
+                          bank_name="XYZ銀行",                                    # 銀行名
+                          bank_code="1234",                                     # 銀行金融機関コード
+                          bank_branch_name="ABC支店",                             # 銀行支店名
+                          bank_branch_code="123",                               # 銀行支店コード
+                          bank_account_type="saving",                           # 銀行口座種別 (普通=saving, 当座=current, その他=other)
+                          bank_account="1234567",                               # 銀行口座番号
+                          bank_account_holder_name="ﾌｸｻﾞﾜﾕｷﾁ",                  # 口座名義人名
+                          contact_name="佐藤清"                                    # 担当者名
+))
 ```
 
 
 
 ### Parameters
-**`code`** 
-  
+#### `code`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -126,9 +147,12 @@ const response: Response<Organization> = await client.send(new CreateOrganizatio
 }
 ```
 
-**`name`** 
-  
+</details>
+
+#### `name`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -137,9 +161,12 @@ const response: Response<Organization> = await client.send(new CreateOrganizatio
 }
 ```
 
-**`private_money_ids`** 
-  
+</details>
 
+#### `private_money_ids`
+
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -152,9 +179,12 @@ const response: Response<Organization> = await client.send(new CreateOrganizatio
 }
 ```
 
-**`issuer_admin_user_email`** 
-  
+</details>
+
+#### `issuer_admin_user_email`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -163,9 +193,12 @@ const response: Response<Organization> = await client.send(new CreateOrganizatio
 }
 ```
 
-**`member_admin_user_email`** 
-  
+</details>
 
+#### `member_admin_user_email`
+
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -174,9 +207,12 @@ const response: Response<Organization> = await client.send(new CreateOrganizatio
 }
 ```
 
-**`bank_name`** 
-  
+</details>
+
+#### `bank_name`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -185,9 +221,12 @@ const response: Response<Organization> = await client.send(new CreateOrganizatio
 }
 ```
 
-**`bank_code`** 
-  
+</details>
+
+#### `bank_code`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -196,9 +235,12 @@ const response: Response<Organization> = await client.send(new CreateOrganizatio
 }
 ```
 
-**`bank_branch_name`** 
-  
+</details>
 
+#### `bank_branch_name`
+
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -207,9 +249,12 @@ const response: Response<Organization> = await client.send(new CreateOrganizatio
 }
 ```
 
-**`bank_branch_code`** 
-  
+</details>
+
+#### `bank_branch_code`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -218,9 +263,12 @@ const response: Response<Organization> = await client.send(new CreateOrganizatio
 }
 ```
 
-**`bank_account_type`** 
-  
+</details>
 
+#### `bank_account_type`
+
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -233,9 +281,12 @@ const response: Response<Organization> = await client.send(new CreateOrganizatio
 }
 ```
 
-**`bank_account`** 
-  
+</details>
+
+#### `bank_account`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -245,9 +296,12 @@ const response: Response<Organization> = await client.send(new CreateOrganizatio
 }
 ```
 
-**`bank_account_holder_name`** 
-  
+</details>
+
+#### `bank_account_holder_name`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -257,9 +311,12 @@ const response: Response<Organization> = await client.send(new CreateOrganizatio
 }
 ```
 
-**`contact_name`** 
-  
+</details>
 
+#### `contact_name`
+
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -268,6 +325,8 @@ const response: Response<Organization> = await client.send(new CreateOrganizatio
 }
 ```
 
+</details>
+
 
 
 成功したときは
diff --git a/docs/private_money.md b/docs/private_money.md
index 10f9c24..0e1d39a 100644
--- a/docs/private_money.md
+++ b/docs/private_money.md
@@ -1,4 +1,10 @@
 # Private Money
+Pokepay上で発行する電子マネーを表すデータです。
+電子マネーは１つの発行体(Organization)によって発行されます。
+電子マネーはCustomerやMerchantが所有するウォレット間を送金されます。
+電子マネー残高はユーザが有償で購入するマネーと無償で付与されるポイントの2種類のバリューで構成され、
+それぞれ有効期限決定ロジックは電子マネーの設定に依存します。
+
 
 <a name="get-private-moneys"></a>
 ## GetPrivateMoneys: マネー一覧を取得する
@@ -6,22 +12,23 @@
 パートナーキーの管理者が発行体組織に属している場合、自組織が加盟または発行しているマネーの一覧を返します。また、`organization_code`として決済加盟店の組織コードを指定した場合、発行マネーのうち、その決済加盟店組織が加盟しているマネーの一覧を返します。
 パートナーキーの管理者が決済加盟店組織に属している場合は、自組織が加盟しているマネーの一覧を返します。
 
-```typescript
-const response: Response<PaginatedPrivateMoneys> = await client.send(new GetPrivateMoneys({
-  organization_code: "ox-supermarket", // 組織コード
-  page: 1, // ページ番号
-  per_page: 50 // 1ページ分の取得数
-}));
+```PYTHON
+response = client.send(pp.GetPrivateMoneys(
+                          organization_code="ox-supermarket",                   # 組織コード
+                          page=1,                                               # ページ番号
+                          per_page=50                                           # 1ページ分の取得数
+))
 ```
 
 
 
 ### Parameters
-**`organization_code`** 
-  
-
+#### `organization_code`
 パートナーキーの管理者が発行体組織に属している場合、発行マネーのうち、この組織コードで指定した決済加盟店組織が加盟しているマネーの一覧を返します。決済加盟店組織の管理者は自組織以外を指定することはできません。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -30,9 +37,12 @@ const response: Response<PaginatedPrivateMoneys> = await client.send(new GetPriv
 }
 ```
 
-**`page`** 
-  
+</details>
+
+#### `page`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -41,9 +51,12 @@ const response: Response<PaginatedPrivateMoneys> = await client.send(new GetPriv
 }
 ```
 
-**`per_page`** 
-  
+</details>
 
+#### `per_page`
+
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -52,6 +65,8 @@ const response: Response<PaginatedPrivateMoneys> = await client.send(new GetPriv
 }
 ```
 
+</details>
+
 
 
 成功したときは
@@ -72,23 +87,24 @@ const response: Response<PaginatedPrivateMoneys> = await client.send(new GetPriv
 <a name="get-private-money-organization-summaries"></a>
 ## GetPrivateMoneyOrganizationSummaries: 決済加盟店の取引サマリを取得する
 
-```typescript
-const response: Response<PaginatedPrivateMoneyOrganizationSummaries> = await client.send(new GetPrivateMoneyOrganizationSummaries({
-  private_money_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // マネーID
-  from: "2021-06-04T07:32:54.000000Z", // 開始日時(toと同時に指定する必要有)
-  to: "2022-05-22T18:27:54.000000Z", // 終了日時(fromと同時に指定する必要有)
-  page: 1, // ページ番号
-  per_page: 50 // 1ページ分の取引数
-}));
+```PYTHON
+response = client.send(pp.GetPrivateMoneyOrganizationSummaries(
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",               # private_money_id: マネーID
+                          start="2023-11-03T02:09:32.000000Z",                  # 開始日時(toと同時に指定する必要有)
+                          to="2026-03-30T15:14:20.000000Z",                     # 終了日時(fromと同時に指定する必要有)
+                          page=1,                                               # ページ番号
+                          per_page=50                                           # 1ページ分の取引数
+))
 ```
 
 `from`と`to`は同時に指定する必要があります。
 
 
 ### Parameters
-**`private_money_id`** 
-  
+#### `private_money_id`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -97,9 +113,12 @@ const response: Response<PaginatedPrivateMoneyOrganizationSummaries> = await cli
 }
 ```
 
-**`from`** 
-  
+</details>
+
+#### `from`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -108,9 +127,12 @@ const response: Response<PaginatedPrivateMoneyOrganizationSummaries> = await cli
 }
 ```
 
-**`to`** 
-  
+</details>
 
+#### `to`
+
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -119,9 +141,12 @@ const response: Response<PaginatedPrivateMoneyOrganizationSummaries> = await cli
 }
 ```
 
-**`page`** 
-  
+</details>
+
+#### `page`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -130,9 +155,12 @@ const response: Response<PaginatedPrivateMoneyOrganizationSummaries> = await cli
 }
 ```
 
-**`per_page`** 
-  
+</details>
 
+#### `per_page`
+
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -141,6 +169,8 @@ const response: Response<PaginatedPrivateMoneyOrganizationSummaries> = await cli
 }
 ```
 
+</details>
+
 
 
 成功したときは
@@ -155,20 +185,21 @@ const response: Response<PaginatedPrivateMoneyOrganizationSummaries> = await cli
 <a name="get-private-money-summary"></a>
 ## GetPrivateMoneySummary: 取引サマリを取得する
 
-```typescript
-const response: Response<PrivateMoneySummary> = await client.send(new GetPrivateMoneySummary({
-  private_money_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // マネーID
-  from: "2020-02-09T19:52:16.000000Z", // 開始日時
-  to: "2024-03-20T18:36:22.000000Z" // 終了日時
-}));
+```PYTHON
+response = client.send(pp.GetPrivateMoneySummary(
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",               # private_money_id: マネーID
+                          start="2025-04-08T18:58:51.000000Z",                  # 開始日時
+                          to="2022-11-15T07:44:36.000000Z"                      # 終了日時
+))
 ```
 
 
 
 ### Parameters
-**`private_money_id`** 
-  
+#### `private_money_id`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -177,9 +208,12 @@ const response: Response<PrivateMoneySummary> = await client.send(new GetPrivate
 }
 ```
 
-**`from`** 
-  
+</details>
 
+#### `from`
+
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -188,9 +222,12 @@ const response: Response<PrivateMoneySummary> = await client.send(new GetPrivate
 }
 ```
 
-**`to`** 
-  
+</details>
+
+#### `to`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -199,6 +236,8 @@ const response: Response<PrivateMoneySummary> = await client.send(new GetPrivate
 }
 ```
 
+</details>
+
 
 
 成功したときは
diff --git a/docs/responses.md b/docs/responses.md
index cfbdc9a..a75c8c4 100644
--- a/docs/responses.md
+++ b/docs/responses.md
@@ -1,29 +1,34 @@
 # Responses
-<a name="admin-user-with-shops-and-private-moneys"></a>
-## AdminUserWithShopsAndPrivateMoneys
-* `id (string)`: 
-* `role (string)`: 
-* `email (string)`: 
-* `name (string)`: 
-* `is_active (boolean)`: 
-* `organization (Organization)`: 
-* `shops (User[])`: 
-* `private_moneys (PrivateMoney[])`: 
-
-`organization`は [Organization](#organization) オブジェクトを返します。
+<a name="credit-session"></a>
+## CreditSession
+* `id (str)`: 
+* `expires_at (str)`: 
+
+<a name="captured-credit-session"></a>
+## CapturedCreditSession
+* `session_id (str)`: 
+
+<a name="credit-session-transaction-result"></a>
+## CreditSessionTransactionResult
+
+<a name="paginated-user-cards"></a>
+## PaginatedUserCards
+* `rows (list of UserCards)`: 
+* `count (int)`: 総件数
+* `pagination (Pagination)`: 
 
-`shops`は [User](#user) オブジェクトの配列を返します。
+`rows`は [UserCard](#user-card) オブジェクトのリストを返します。
 
-`private-moneys`は [PrivateMoney](#private-money) オブジェクトの配列を返します。
+`pagination`は [Pagination](#pagination) オブジェクトを返します。
 
 <a name="account-with-user"></a>
 ## AccountWithUser
-* `id (string)`: 
-* `name (string)`: 
-* `is_suspended (boolean)`: 
-* `status (string)`: 
-* `private_money (PrivateMoney)`: 
-* `user (User)`: 
+* `id (str)`: ウォレットID
+* `name (str)`: ウォレット名
+* `is_suspended (bool)`: ウォレットが凍結されているかどうか
+* `status (str)`: ウォレット状態
+* `private_money (PrivateMoney)`: 設定マネー情報
+* `user (User)`: ユーザ情報
 
 `private_money`は [PrivateMoney](#private-money) オブジェクトを返します。
 
@@ -31,17 +36,17 @@
 
 <a name="account-detail"></a>
 ## AccountDetail
-* `id (string)`: 
-* `name (string)`: 
-* `is_suspended (boolean)`: 
-* `status (string)`: 
-* `balance (number)`: 
-* `money_balance (number)`: 
-* `point_balance (number)`: 
-* `point_debt (number)`: 
-* `private_money (PrivateMoney)`: 
-* `user (User)`: 
-* `external_id (string)`: 
+* `id (str)`: ウォレットID
+* `name (str)`: ウォレット名
+* `is_suspended (bool)`: ウォレットが凍結されているかどうか
+* `status (str)`: ウォレット状態
+* `balance (float)`: 総残高
+* `money_balance (float)`: マネー残高
+* `point_balance (float)`: ポイント残高
+* `point_debt (float)`: ポイント負債
+* `private_money (PrivateMoney)`: 設定マネー情報
+* `user (User)`: ユーザ情報
+* `external_id (str)`: 外部ID
 
 `private_money`は [PrivateMoney](#private-money) オブジェクトを返します。
 
@@ -52,36 +57,37 @@
 
 <a name="bill"></a>
 ## Bill
-* `id (string)`: 支払いQRコードのID
-* `amount (number)`: 支払い額
-* `max_amount (number)`: 支払い額を範囲指定した場合の上限
-* `min_amount (number)`: 支払い額を範囲指定した場合の下限
-* `description (string)`: 支払いQRコードの説明文(アプリ上で取引の説明文として表示される)
+* `id (str)`: 支払いQRコードのID
+* `amount (float)`: 支払い額
+* `max_amount (float)`: 支払い額を範囲指定した場合の上限
+* `min_amount (float)`: 支払い額を範囲指定した場合の下限
+* `description (str)`: 支払いQRコードの説明文(アプリ上で取引の説明文として表示される)
 * `account (AccountWithUser)`: 支払いQRコード発行ウォレット
-* `is_disabled (boolean)`: 無効化されているかどうか
-* `token (string)`: 支払いQRコードを解析したときに出てくるURL
+* `is_disabled (bool)`: 無効化されているかどうか
+* `token (str)`: 支払いQRコードを解析したときに出てくるURL
+* `created_at (str)`: 支払いQRコードの作成日時
 
 `account`は [AccountWithUser](#account-with-user) オブジェクトを返します。
 
 <a name="check"></a>
 ## Check
-* `id (string)`: チャージQRコードのID
-* `created_at (string)`: チャージQRコードの作成日時
-* `amount (number)`: チャージマネー額 (deprecated)
-* `money_amount (number)`: チャージマネー額
-* `point_amount (number)`: チャージポイント額
-* `description (string)`: チャージQRコードの説明文(アプリ上で取引の説明文として表示される)
+* `id (str)`: チャージQRコードのID
+* `created_at (str)`: チャージQRコードの作成日時
+* `amount (float)`: チャージマネー額 (deprecated)
+* `money_amount (float)`: チャージマネー額
+* `point_amount (float)`: チャージポイント額
+* `description (str)`: チャージQRコードの説明文(アプリ上で取引の説明文として表示される)
 * `user (User)`: 送金元ユーザ情報
-* `is_onetime (boolean)`: 使用回数が一回限りかどうか
-* `is_disabled (boolean)`: 無効化されているかどうか
-* `expires_at (string)`: チャージQRコード自体の失効日時
-* `last_used_at (string)`: 
+* `is_onetime (bool)`: 使用回数が一回限りかどうか
+* `is_disabled (bool)`: 無効化されているかどうか
+* `expires_at (str)`: チャージQRコード自体の失効日時
+* `last_used_at (str)`: 
 * `private_money (PrivateMoney)`: 対象マネー情報
-* `usage_limit (number)`: 一回限りでない場合の最大読み取り回数
-* `usage_count (number)`: 一回限りでない場合の現在までに読み取られた回数
-* `point_expires_at (string)`: ポイント有効期限(絶対日数指定)
-* `point_expires_in_days (number)`: ポイント有効期限(相対日数指定)
-* `token (string)`: チャージQRコードを解析したときに出てくるURL
+* `usage_limit (int)`: 一回限りでない場合の最大読み取り回数
+* `usage_count (float)`: 一回限りでない場合の現在までに読み取られた回数
+* `point_expires_at (str)`: ポイント有効期限(絶対日数指定)
+* `point_expires_in_days (int)`: ポイント有効期限(相対日数指定)
+* `token (str)`: チャージQRコードを解析したときに出てくるURL
 
 `user`は [User](#user) オブジェクトを返します。
 
@@ -89,23 +95,24 @@
 
 <a name="paginated-checks"></a>
 ## PaginatedChecks
-* `rows (Check[])`: 
-* `count (number)`: 
+* `rows (list of Checks)`: 
+* `count (int)`: 
 * `pagination (Pagination)`: 
 
-`rows`は [Check](#check) オブジェクトの配列を返します。
+`rows`は [Check](#check) オブジェクトのリストを返します。
 
 `pagination`は [Pagination](#pagination) オブジェクトを返します。
 
 <a name="cpm-token"></a>
 ## CpmToken
-* `cpm_token (string)`: 
+* `cpm_token (str)`: 
 * `account (AccountDetail)`: 
 * `transaction (Transaction)`: 
 * `event (ExternalTransaction)`: 
-* `scopes (string[])`: 許可された取引種別
-* `expires_at (string)`: CPMトークンの失効日時
-* `metadata (string)`: エンドユーザー側メタデータ
+* `scopes (list of strs)`: 許可された取引種別
+* `expires_at (str)`: CPMトークンの失効日時
+* `metadata (str)`: エンドユーザー側メタデータ
+* `strategy (str)`: 支払い時の残高消費方式
 
 `account`は [AccountDetail](#account-detail) オブジェクトを返します。
 
@@ -115,25 +122,25 @@
 
 <a name="cashtray"></a>
 ## Cashtray
-* `id (string)`: Cashtray自体のIDです。
-* `amount (number)`: 取引金額
-* `description (string)`: Cashtrayの説明文
+* `id (str)`: Cashtray自体のIDです。
+* `amount (float)`: 取引金額
+* `description (str)`: Cashtrayの説明文
 * `account (AccountWithUser)`: 発行店舗のウォレット
-* `expires_at (string)`: Cashtrayの失効日時
-* `canceled_at (string)`: Cashtrayの無効化日時。NULLの場合は無効化されていません
-* `token (string)`: CashtrayのQRコードを解析したときに出てくるURL
+* `expires_at (str)`: Cashtrayの失効日時
+* `canceled_at (str)`: Cashtrayの無効化日時。NULLの場合は無効化されていません
+* `token (str)`: CashtrayのQRコードを解析したときに出てくるURL
 
 `account`は [AccountWithUser](#account-with-user) オブジェクトを返します。
 
 <a name="cashtray-with-result"></a>
 ## CashtrayWithResult
-* `id (string)`: CashtrayのID
-* `amount (number)`: 取引金額
-* `description (string)`: Cashtrayの説明文(アプリ上で取引の説明文として表示される)
+* `id (str)`: CashtrayのID
+* `amount (float)`: 取引金額
+* `description (str)`: Cashtrayの説明文(アプリ上で取引の説明文として表示される)
 * `account (AccountWithUser)`: 発行店舗のウォレット
-* `expires_at (string)`: Cashtrayの失効日時
-* `canceled_at (string)`: Cashtrayの無効化日時。NULLの場合は無効化されていません
-* `token (string)`: CashtrayのQRコードを解析したときに出てくるURL
+* `expires_at (str)`: Cashtrayの失効日時
+* `canceled_at (str)`: Cashtrayの無効化日時。NULLの場合は無効化されていません
+* `token (str)`: CashtrayのQRコードを解析したときに出てくるURL
 * `attempt (CashtrayAttempt)`: Cashtray読み取り結果
 * `transaction (Transaction)`: 取引結果
 
@@ -145,87 +152,98 @@
 
 <a name="user"></a>
 ## User
-* `id (string)`: ユーザー (または店舗) ID
-* `name (string)`: ユーザー (または店舗) 名
-* `is_merchant (boolean)`: 店舗ユーザーかどうか
+* `id (str)`: ユーザー (または店舗) ID
+* `name (str)`: ユーザー (または店舗) 名
+* `is_merchant (bool)`: 店舗ユーザーかどうか
 
 <a name="organization"></a>
 ## Organization
-* `code (string)`: 組織コード
-* `name (string)`: 組織名
+* `code (str)`: 組織コード
+* `name (str)`: 組織名
 
 <a name="transaction-detail"></a>
 ## TransactionDetail
-* `id (string)`: 取引ID
-* `type (string)`: 取引種別
-* `is_modified (boolean)`: 返金された取引かどうか
-* `sender (User)`: 送金者情報
+* `id (str)`: 取引ID
+* `type (str)`: 取引種別
+* `is_modified (bool)`: 返金された取引かどうか
+* `sender (User)`: 送金ユーザ情報
 * `sender_account (Account)`: 送金ウォレット情報
-* `receiver (User)`: 受取者情報
+* `receiver (User)`: 受取ユーザ情報
 * `receiver_account (Account)`: 受取ウォレット情報
-* `amount (number)`: 取引総額 (マネー額 + ポイント額)
-* `money_amount (number)`: 取引マネー額
-* `point_amount (number)`: 取引ポイント額(キャンペーン付与ポイント合算)
-* `raw_point_amount (number)`: 取引ポイント額
-* `campaign_point_amount (number)`: キャンペーンによるポイント付与額
-* `done_at (string)`: 取引日時
-* `description (string)`: 取引説明文
-* `transfers (Transfer[])`: 
+* `amount (float)`: 取引総額 (マネー額 + ポイント額)
+* `money_amount (float)`: 取引マネー額
+* `point_amount (float)`: 取引ポイント額(キャンペーン付与ポイント合算)
+* `raw_point_amount (float)`: 取引ポイント額
+* `campaign_point_amount (float)`: キャンペーンによるポイント付与額
+* `done_at (str)`: 取引日時
+* `description (str)`: 取引説明文
+* `transfers (list of Transfers)`: 取引明細一覧
 
 `receiver`と`sender`は [User](#user) オブジェクトを返します。
 
 `receiver_account`と`sender_account`は [Account](#account) オブジェクトを返します。
 
-`transfers`は [Transfer](#transfer) オブジェクトの配列を返します。
+`transfers`は [Transfer](#transfer) オブジェクトのリストを返します。
+
+<a name="transaction-group"></a>
+## TransactionGroup
+* `id (str)`: トランザクショングループID
+* `name (str)`: トランザクショングループ名
+* `created_at (str)`: 作成日時
+* `updated_at (str)`: 更新日時
+* `transactions (list of Transactions)`: グループに属する取引一覧
+
+`transactions`は [Transaction](#transaction) オブジェクトのリストを返します。
 
 <a name="shop-with-accounts"></a>
 ## ShopWithAccounts
-* `id (string)`: 店舗ID
-* `name (string)`: 店舗名
-* `organization_code (string)`: 組織コード
-* `status (string)`: 店舗の状態
-* `postal_code (string)`: 店舗の郵便番号
-* `address (string)`: 店舗の住所
-* `tel (string)`: 店舗の電話番号
-* `email (string)`: 店舗のメールアドレス
-* `external_id (string)`: 店舗の外部ID
-* `accounts (ShopAccount[])`: 
-
-`accounts`は [ShopAccount](#shop-account) オブジェクトの配列を返します。
+* `id (str)`: 店舗ID
+* `name (str)`: 店舗名
+* `organization_code (str)`: 組織コード
+* `status (str)`: 店舗の状態
+* `postal_code (str)`: 店舗の郵便番号
+* `address (str)`: 店舗の住所
+* `tel (str)`: 店舗の電話番号
+* `email (str)`: 店舗のメールアドレス
+* `external_id (str)`: 店舗の外部ID
+* `accounts (list of ShopAccounts)`: 
+
+`accounts`は [ShopAccount](#shop-account) オブジェクトのリストを返します。
 
 <a name="bulk-transaction"></a>
 ## BulkTransaction
-* `id (string)`: 
-* `request_id (string)`: リクエストID
-* `name (string)`: バルク取引管理用の名前
-* `description (string)`: バルク取引管理用の説明文
-* `status (string)`: バルク取引の状態
-* `error (string)`: バルク取引のエラー種別
-* `error_lineno (number)`: バルク取引のエラーが発生した行番号
-* `submitted_at (string)`: バルク取引が登録された日時
-* `updated_at (string)`: バルク取引が更新された日時
+* `id (str)`: 
+* `request_id (str)`: リクエストID
+* `name (str)`: バルク取引管理用の名前
+* `description (str)`: バルク取引管理用の説明文
+* `status (str)`: バルク取引の状態
+* `error (str)`: バルク取引のエラー種別
+* `error_lineno (int)`: バルク取引のエラーが発生した行番号
+* `submitted_at (str)`: バルク取引が登録された日時
+* `updated_at (str)`: バルク取引が更新された日時
+* `scheduled_at (str)`: バルク取引の予約実行日時
 
 <a name="paginated-bulk-transaction-job"></a>
 ## PaginatedBulkTransactionJob
-* `rows (BulkTransactionJob[])`: 
-* `count (number)`: 
+* `rows (list of BulkTransactionJobs)`: 
+* `count (int)`: 
 * `pagination (Pagination)`: 
 
-`rows`は [BulkTransactionJob](#bulk-transaction-job) オブジェクトの配列を返します。
+`rows`は [BulkTransactionJob](#bulk-transaction-job) オブジェクトのリストを返します。
 
 `pagination`は [Pagination](#pagination) オブジェクトを返します。
 
 <a name="external-transaction-detail"></a>
 ## ExternalTransactionDetail
-* `id (string)`: ポケペイ外部取引ID
-* `is_modified (boolean)`: 返金された取引かどうか
+* `id (str)`: ポケペイ外部取引ID
+* `is_modified (bool)`: 返金された取引かどうか
 * `sender (User)`: 送金者情報
 * `sender_account (Account)`: 送金ウォレット情報
 * `receiver (User)`: 受取者情報
 * `receiver_account (Account)`: 受取ウォレット情報
-* `amount (number)`: 決済額
-* `done_at (string)`: 取引日時
-* `description (string)`: 取引説明文
+* `amount (float)`: 決済額
+* `done_at (str)`: 取引日時
+* `description (str)`: 取引説明文
 * `transaction (TransactionDetail)`: 関連ポケペイ取引詳細
 
 `receiver`と`sender`は [User](#user) オブジェクトを返します。
@@ -236,184 +254,197 @@
 
 <a name="paginated-private-money-organization-summaries"></a>
 ## PaginatedPrivateMoneyOrganizationSummaries
-* `rows (PrivateMoneyOrganizationSummary[])`: 
-* `count (number)`: 
+* `rows (list of PrivateMoneyOrganizationSummaries)`: 
+* `count (int)`: 
 * `pagination (Pagination)`: 
 
-`rows`は [PrivateMoneyOrganizationSummary](#private-money-organization-summary) オブジェクトの配列を返します。
+`rows`は [PrivateMoneyOrganizationSummary](#private-money-organization-summary) オブジェクトのリストを返します。
 
 `pagination`は [Pagination](#pagination) オブジェクトを返します。
 
 <a name="private-money-summary"></a>
 ## PrivateMoneySummary
-* `topup_amount (number)`: 
-* `refunded_topup_amount (number)`: 
-* `payment_amount (number)`: 
-* `refunded_payment_amount (number)`: 
-* `added_point_amount (number)`: 
-* `topup_point_amount (number)`: 
-* `campaign_point_amount (number)`: 
-* `refunded_added_point_amount (number)`: 
-* `exchange_inflow_amount (number)`: 
-* `exchange_outflow_amount (number)`: 
-* `transaction_count (number)`: 
+* `topup_amount (float)`: 
+* `refunded_topup_amount (float)`: 
+* `payment_amount (float)`: 
+* `refunded_payment_amount (float)`: 
+* `added_point_amount (float)`: 
+* `topup_point_amount (float)`: 
+* `campaign_point_amount (float)`: 
+* `refunded_added_point_amount (float)`: 
+* `exchange_inflow_amount (float)`: 
+* `exchange_outflow_amount (float)`: 
+* `transaction_count (int)`: 
 
 <a name="user-stats-operation"></a>
 ## UserStatsOperation
-* `id (string)`: 集計処理ID
-* `from (string)`: 集計期間の開始時刻
-* `to (string)`: 集計期間の終了時刻
-* `status (string)`: 集計処理の実行ステータス
-* `error_reason (string)`: エラーとなった理由
-* `done_at (string)`: 集計処理の完了時刻
-* `file_url (string)`: 集計結果のCSVのダウンロードURL
-* `requested_at (string)`: 集計リクエストを行った時刻
+* `id (str)`: 集計処理ID
+* `from (str)`: 集計期間の開始時刻
+* `to (str)`: 集計期間の終了時刻
+* `status (str)`: 集計処理の実行ステータス
+* `error_reason (str)`: エラーとなった理由
+* `done_at (str)`: 集計処理の完了時刻
+* `file_url (str)`: 集計結果のCSVのダウンロードURL
+* `requested_at (str)`: 集計リクエストを行った時刻
 
 <a name="user-device"></a>
 ## UserDevice
-* `id (string)`: デバイスID
+* `id (str)`: デバイスID
 * `user (User)`: デバイスを使用するユーザ
-* `is_active (boolean)`: デバイスが有効か
-* `metadata (string)`: デバイスのメタデータ
+* `is_active (bool)`: デバイスが有効か
+* `metadata (str)`: デバイスのメタデータ
 
 `user`は [User](#user) オブジェクトを返します。
 
 <a name="bank-registering-info"></a>
 ## BankRegisteringInfo
-* `redirect_url (string)`: 
-* `paytree_customer_number (string)`: 
+* `redirect_url (str)`: 
+* `paytree_customer_number (str)`: 
 
 <a name="banks"></a>
 ## Banks
-* `rows (Bank[])`: 
-* `count (number)`: 
+* `rows (list of Banks)`: 
+* `count (int)`: 
+
+`rows`は [Bank](#bank) オブジェクトのリストを返します。
 
-`rows`は [Bank](#bank) オブジェクトの配列を返します。
+<a name="bank-deleted"></a>
+## BankDeleted
 
 <a name="paginated-transaction"></a>
 ## PaginatedTransaction
-* `rows (Transaction[])`: 
-* `count (number)`: 
+* `rows (list of Transactions)`: 
+* `count (int)`: 
 * `pagination (Pagination)`: 
 
-`rows`は [Transaction](#transaction) オブジェクトの配列を返します。
+`rows`は [Transaction](#transaction) オブジェクトのリストを返します。
 
 `pagination`は [Pagination](#pagination) オブジェクトを返します。
 
 <a name="paginated-transaction-v2"></a>
 ## PaginatedTransactionV2
-* `rows (Transaction[])`: 
-* `per_page (number)`: 
-* `count (number)`: 
-* `next_page_cursor_id (string)`: 
-* `prev_page_cursor_id (string)`: 
+* `rows (list of Transactions)`: 
+* `per_page (int)`: 
+* `count (int)`: 
+* `next_page_cursor_id (str)`: 
+* `prev_page_cursor_id (str)`: 
 
-`rows`は [Transaction](#transaction) オブジェクトの配列を返します。
+`rows`は [Transaction](#transaction) オブジェクトのリストを返します。
+
+<a name="paginated-bill-transaction"></a>
+## PaginatedBillTransaction
+* `rows (list of BillTransactions)`: 
+* `per_page (int)`: 
+* `count (int)`: 
+* `next_page_cursor_id (str)`: 
+* `prev_page_cursor_id (str)`: 
+
+`rows`は [BillTransaction](#bill-transaction) オブジェクトのリストを返します。
 
 <a name="paginated-transfers"></a>
 ## PaginatedTransfers
-* `rows (Transfer[])`: 
-* `count (number)`: 
+* `rows (list of Transfers)`: 
+* `count (int)`: 
 * `pagination (Pagination)`: 
 
-`rows`は [Transfer](#transfer) オブジェクトの配列を返します。
+`rows`は [Transfer](#transfer) オブジェクトのリストを返します。
 
 `pagination`は [Pagination](#pagination) オブジェクトを返します。
 
 <a name="paginated-transfers-v2"></a>
 ## PaginatedTransfersV2
-* `rows (Transfer[])`: 
-* `per_page (number)`: 
-* `count (number)`: 
-* `next_page_cursor_id (string)`: 
-* `prev_page_cursor_id (string)`: 
+* `rows (list of Transfers)`: 
+* `per_page (int)`: 
+* `count (int)`: 
+* `next_page_cursor_id (str)`: 
+* `prev_page_cursor_id (str)`: 
 
-`rows`は [Transfer](#transfer) オブジェクトの配列を返します。
+`rows`は [Transfer](#transfer) オブジェクトのリストを返します。
 
 <a name="paginated-account-with-users"></a>
 ## PaginatedAccountWithUsers
-* `rows (AccountWithUser[])`: 
-* `count (number)`: 
+* `rows (list of AccountWithUsers)`: 
+* `count (int)`: 
 * `pagination (Pagination)`: 
 
-`rows`は [AccountWithUser](#account-with-user) オブジェクトの配列を返します。
+`rows`は [AccountWithUser](#account-with-user) オブジェクトのリストを返します。
 
 `pagination`は [Pagination](#pagination) オブジェクトを返します。
 
 <a name="paginated-account-details"></a>
 ## PaginatedAccountDetails
-* `rows (AccountDetail[])`: 
-* `count (number)`: 
+* `rows (list of AccountDetails)`: 
+* `count (int)`: 
 * `pagination (Pagination)`: 
 
-`rows`は [AccountDetail](#account-detail) オブジェクトの配列を返します。
+`rows`は [AccountDetail](#account-detail) オブジェクトのリストを返します。
 
 `pagination`は [Pagination](#pagination) オブジェクトを返します。
 
 <a name="paginated-account-balance"></a>
 ## PaginatedAccountBalance
-* `rows (AccountBalance[])`: 
-* `count (number)`: 
+* `rows (list of AccountBalances)`: 
+* `count (int)`: 
 * `pagination (Pagination)`: 
 
-`rows`は [AccountBalance](#account-balance) オブジェクトの配列を返します。
+`rows`は [AccountBalance](#account-balance) オブジェクトのリストを返します。
 
 `pagination`は [Pagination](#pagination) オブジェクトを返します。
 
 <a name="paginated-shops"></a>
 ## PaginatedShops
-* `rows (ShopWithMetadata[])`: 
-* `count (number)`: 
+* `rows (list of ShopWithMetadatas)`: 
+* `count (int)`: 
 * `pagination (Pagination)`: 
 
-`rows`は [ShopWithMetadata](#shop-with-metadata) オブジェクトの配列を返します。
+`rows`は [ShopWithMetadata](#shop-with-metadata) オブジェクトのリストを返します。
 
 `pagination`は [Pagination](#pagination) オブジェクトを返します。
 
 <a name="paginated-bills"></a>
 ## PaginatedBills
-* `rows (Bill[])`: 
-* `count (number)`: 
+* `rows (list of Bills)`: 
+* `count (int)`: 
 * `pagination (Pagination)`: 
 
-`rows`は [Bill](#bill) オブジェクトの配列を返します。
+`rows`は [Bill](#bill) オブジェクトのリストを返します。
 
 `pagination`は [Pagination](#pagination) オブジェクトを返します。
 
 <a name="paginated-private-moneys"></a>
 ## PaginatedPrivateMoneys
-* `rows (PrivateMoney[])`: 
-* `count (number)`: 
+* `rows (list of PrivateMoneys)`: 
+* `count (int)`: 
 * `pagination (Pagination)`: 
 
-`rows`は [PrivateMoney](#private-money) オブジェクトの配列を返します。
+`rows`は [PrivateMoney](#private-money) オブジェクトのリストを返します。
 
 `pagination`は [Pagination](#pagination) オブジェクトを返します。
 
 <a name="campaign"></a>
 ## Campaign
-* `id (string)`: キャンペーンID
-* `name (string)`: キャペーン名
-* `applicable_shops (User[])`: キャンペーン適用対象の店舗リスト
-* `is_exclusive (boolean)`: キャンペーンの重複を許すかどうかのフラグ
-* `starts_at (string)`: キャンペーン開始日時
-* `ends_at (string)`: キャンペーン終了日時
-* `point_expires_at (string)`: キャンペーンによって付与されるポイントの失効日時
-* `point_expires_in_days (number)`: キャンペーンによって付与されるポイントの有効期限(相対指定、単位は日)
-* `priority (number)`: キャンペーンの優先順位
-* `description (string)`: キャンペーン説明文
+* `id (str)`: キャンペーンID
+* `name (str)`: キャペーン名
+* `applicable_shops (list of Users)`: キャンペーン適用対象の店舗リスト
+* `is_exclusive (bool)`: キャンペーンの重複を許すかどうかのフラグ
+* `starts_at (str)`: キャンペーン開始日時
+* `ends_at (str)`: キャンペーン終了日時
+* `point_expires_at (str)`: キャンペーンによって付与されるポイントの失効日時
+* `point_expires_in_days (int)`: キャンペーンによって付与されるポイントの有効期限(相対指定、単位は日)
+* `priority (int)`: キャンペーンの優先順位
+* `description (str)`: キャンペーン説明文
 * `bear_point_shop (User)`: ポイントを負担する店舗
 * `private_money (PrivateMoney)`: キャンペーンを適用するマネー
 * `dest_private_money (PrivateMoney)`: ポイントを付与するマネー
-* `max_total_point_amount (number)`: 一人当たりの累計ポイント上限
-* `point_calculation_rule (string)`: ポイント計算ルール (banklisp表記)
-* `point_calculation_rule_object (string)`: ポイント計算ルール (JSON文字列による表記)
-* `status (string)`: キャンペーンの現在の状態
-* `budget_caps_amount (number)`: キャンペーンの予算上限額
-* `budget_current_amount (number)`: キャンペーンの付与合計額
-* `budget_current_time (string)`: キャンペーンの付与集計日時
+* `max_total_point_amount (int)`: 一人当たりの累計ポイント上限
+* `point_calculation_rule (str)`: ポイント計算ルール (banklisp表記)
+* `point_calculation_rule_object (str)`: ポイント計算ルール (JSON文字列による表記)
+* `status (str)`: キャンペーンの現在の状態
+* `budget_caps_amount (int)`: キャンペーンの予算上限額
+* `budget_current_amount (int)`: キャンペーンの付与合計額
+* `budget_current_time (str)`: キャンペーンの付与集計日時
 
-`applicable-shops`は [User](#user) オブジェクトの配列を返します。
+`applicable-shops`は [User](#user) オブジェクトのリストを返します。
 
 `bear_point_shop`は [User](#user) オブジェクトを返します。
 
@@ -421,133 +452,158 @@
 
 <a name="paginated-campaigns"></a>
 ## PaginatedCampaigns
-* `rows (Campaign[])`: 
-* `count (number)`: 
+* `rows (list of Campaigns)`: 
+* `count (int)`: 
 * `pagination (Pagination)`: 
 
-`rows`は [Campaign](#campaign) オブジェクトの配列を返します。
+`rows`は [Campaign](#campaign) オブジェクトのリストを返します。
 
 `pagination`は [Pagination](#pagination) オブジェクトを返します。
 
 <a name="account-transfer-summary"></a>
 ## AccountTransferSummary
-* `summaries (AccountTransferSummaryElement[])`: 
+* `summaries (list of AccountTransferSummaryElements)`: 
 
-`summaries`は [AccountTransferSummaryElement](#account-transfer-summary-element) オブジェクトの配列を返します。
+`summaries`は [AccountTransferSummaryElement](#account-transfer-summary-element) オブジェクトのリストを返します。
 
 <a name="organization-worker-task-webhook"></a>
 ## OrganizationWorkerTaskWebhook
-* `id (string)`: 
-* `organization_code (string)`: 
-* `task (string)`: 
-* `url (string)`: 
-* `content_type (string)`: 
-* `is_active (boolean)`: 
+* `id (str)`: 
+* `organization_code (str)`: 
+* `task (str)`: 
+* `url (str)`: 
+* `content_type (str)`: 
+* `is_active (bool)`: 
 
 <a name="paginated-organization-worker-task-webhook"></a>
 ## PaginatedOrganizationWorkerTaskWebhook
-* `rows (OrganizationWorkerTaskWebhook[])`: 
-* `count (number)`: 
+* `rows (list of OrganizationWorkerTaskWebhooks)`: 
+* `count (int)`: 
 * `pagination (Pagination)`: 
 
-`rows`は [OrganizationWorkerTaskWebhook](#organization-worker-task-webhook) オブジェクトの配列を返します。
+`rows`は [OrganizationWorkerTaskWebhook](#organization-worker-task-webhook) オブジェクトのリストを返します。
 
 `pagination`は [Pagination](#pagination) オブジェクトを返します。
 
 <a name="coupon-detail"></a>
 ## CouponDetail
-* `id (string)`: クーポンID
-* `name (string)`: クーポン名
+* `id (str)`: クーポンID
+* `name (str)`: クーポン名
 * `issued_shop (User)`: クーポン発行店舗
-* `description (string)`: クーポンの説明文
-* `discount_amount (number)`: クーポンによる値引き額(絶対値指定)
-* `discount_percentage (number)`: クーポンによる値引き率
-* `discount_upper_limit (number)`: クーポンによる値引き上限(値引き率が指定された場合の値引き上限額)
-* `starts_at (string)`: クーポンの利用可能期間(開始日時)
-* `ends_at (string)`: クーポンの利用可能期間(終了日時)
-* `display_starts_at (string)`: クーポンの掲載期間(開始日時)
-* `display_ends_at (string)`: クーポンの掲載期間(終了日時)
-* `usage_limit (number)`: ユーザごとの利用可能回数(NULLの場合は無制限)
-* `min_amount (number)`: クーポン適用可能な最小取引額
-* `is_shop_specified (boolean)`: 特定店舗限定のクーポンかどうか
-* `is_hidden (boolean)`: クーポン一覧に掲載されるかどうか
-* `is_public (boolean)`: アプリ配信なしで受け取れるかどうか
-* `code (string)`: クーポン受け取りコード
-* `is_disabled (boolean)`: 無効化フラグ
-* `token (string)`: クーポンを特定するためのトークン
-* `coupon_image (string)`: クーポン画像のURL
-* `available_shops (User[])`: 利用可能店舗リスト
+* `description (str)`: クーポンの説明文
+* `discount_amount (int)`: クーポンによる値引き額(絶対値指定)
+* `discount_percentage (float)`: クーポンによる値引き率
+* `discount_upper_limit (int)`: クーポンによる値引き上限(値引き率が指定された場合の値引き上限額)
+* `starts_at (str)`: クーポンの利用可能期間(開始日時)
+* `ends_at (str)`: クーポンの利用可能期間(終了日時)
+* `display_starts_at (str)`: クーポンの掲載期間(開始日時)
+* `display_ends_at (str)`: クーポンの掲載期間(終了日時)
+* `usage_limit (int)`: ユーザごとの利用可能回数(NULLの場合は無制限)
+* `min_amount (int)`: クーポン適用可能な最小取引額
+* `is_shop_specified (bool)`: 特定店舗限定のクーポンかどうか
+* `is_hidden (bool)`: クーポン一覧に掲載されるかどうか
+* `is_public (bool)`: アプリ配信なしで受け取れるかどうか
+* `code (str)`: クーポン受け取りコード
+* `is_disabled (bool)`: 無効化フラグ
+* `token (str)`: クーポンを特定するためのトークン
+* `coupon_image (str)`: クーポン画像のURL
+* `available_shops (list of Users)`: 利用可能店舗リスト
 * `private_money (PrivateMoney)`: クーポンのマネー
+* `num_recipients_cap (int)`: クーポンを受け取ることができるユーザ数上限
+* `num_recipients (int)`: クーポンを受け取ったユーザ数
 
 `issued_shop`は [User](#user) オブジェクトを返します。
 
-`available-shops`は [User](#user) オブジェクトの配列を返します。
+`available-shops`は [User](#user) オブジェクトのリストを返します。
 
 `private_money`は [PrivateMoney](#private-money) オブジェクトを返します。
 
 <a name="paginated-coupons"></a>
 ## PaginatedCoupons
-* `rows (Coupon[])`: 
-* `count (number)`: 
+* `rows (list of Coupons)`: 
+* `count (int)`: 
 * `pagination (Pagination)`: 
 
-`rows`は [Coupon](#coupon) オブジェクトの配列を返します。
+`rows`は [Coupon](#coupon) オブジェクトのリストを返します。
 
 `pagination`は [Pagination](#pagination) オブジェクトを返します。
 
 <a name="paginated-organizations"></a>
 ## PaginatedOrganizations
-* `rows (Organization[])`: 
-* `count (number)`: 
+* `rows (list of Organizations)`: 
+* `count (int)`: 
 * `pagination (Pagination)`: 
 
-`rows`は [Organization](#organization) オブジェクトの配列を返します。
+`rows`は [Organization](#organization) オブジェクトのリストを返します。
 
 `pagination`は [Pagination](#pagination) オブジェクトを返します。
 
+<a name="seven-bank-atm-session"></a>
+## SevenBankATMSession
+* `qr_info (str)`: 
+* `account (AccountDetail)`: 
+* `amount (int)`: 
+* `transaction (Transaction)`: 
+* `seven_bank_customer_number (str)`: 
+* `atm_id (str)`: 
+* `audi_id (str)`: 
+* `issuer_code (str)`: 
+* `issuer_name (str)`: 
+* `money_name (str)`: 
+
+`account`は [AccountDetail](#account-detail) オブジェクトを返します。
+
+`transaction`は [Transaction](#transaction) オブジェクトを返します。
+
+<a name="user-card"></a>
+## UserCard
+* `id (str)`: カード識別子
+* `card_number (str)`: マスク済みカード番号
+* `registered_at (str)`: 登録日時
+
+<a name="pagination"></a>
+## Pagination
+* `current (int)`: 
+* `per_page (int)`: 
+* `max_page (int)`: 
+* `has_prev (bool)`: 
+* `has_next (bool)`: 
+
 <a name="private-money"></a>
 ## PrivateMoney
-* `id (string)`: マネーID
-* `name (string)`: マネー名
-* `unit (string)`: マネー単位 (例: 円)
-* `is_exclusive (boolean)`: 会員制のマネーかどうか
-* `description (string)`: マネー説明文
-* `oneline_message (string)`: マネーの要約
+* `id (str)`: マネーID
+* `name (str)`: マネー名
+* `unit (str)`: マネー単位 (例: 円)
+* `is_exclusive (bool)`: 会員制のマネーかどうか
+* `description (str)`: マネー説明文
+* `oneline_message (str)`: マネーの要約
 * `organization (Organization)`: マネーを発行した組織
-* `max_balance (number)`: ウォレットの上限金額
-* `transfer_limit (number)`: マネーの取引上限額
-* `money_topup_transfer_limit (number)`: マネーチャージ取引上限額
-* `type (string)`: マネー種別 (自家型=own, 第三者型=third-party)
-* `expiration_type (string)`: 有効期限種別 (チャージ日起算=static, 最終利用日起算=last-update, 最終チャージ日起算=last-topup-update)
-* `enable_topup_by_member (boolean)`:  (deprecated)
-* `display_money_and_point (string)`: 
+* `max_balance (float)`: ウォレットの上限金額
+* `transfer_limit (float)`: マネーの取引上限額
+* `money_topup_transfer_limit (float)`: マネーチャージ取引上限額
+* `type (str)`: マネー種別 (自家型=own, 第三者型=third-party)
+* `expiration_type (str)`: 有効期限種別 (チャージ日起算=static, 最終利用日起算=last-update, 最終チャージ日起算=last-topup-update)
+* `enable_topup_by_member (bool)`:  (deprecated)
+* `display_money_and_point (str)`: 
 
 `organization`は [Organization](#organization) オブジェクトを返します。
 
-<a name="pagination"></a>
-## Pagination
-* `current (number)`: 
-* `per_page (number)`: 
-* `max_page (number)`: 
-* `has_prev (boolean)`: 
-* `has_next (boolean)`: 
-
 <a name="transaction"></a>
 ## Transaction
-* `id (string)`: 取引ID
-* `type (string)`: 取引種別
-* `is_modified (boolean)`: 返金された取引かどうか
-* `sender (User)`: 送金者情報
+* `id (str)`: 取引ID
+* `type (str)`: 取引種別
+* `is_modified (bool)`: 返金された取引かどうか
+* `sender (User)`: 送金ユーザ情報
 * `sender_account (Account)`: 送金ウォレット情報
-* `receiver (User)`: 受取者情報
+* `receiver (User)`: 受取ユーザ情報
 * `receiver_account (Account)`: 受取ウォレット情報
-* `amount (number)`: 取引総額 (マネー額 + ポイント額)
-* `money_amount (number)`: 取引マネー額
-* `point_amount (number)`: 取引ポイント額(キャンペーン付与ポイント合算)
-* `raw_point_amount (number)`: 取引ポイント額
-* `campaign_point_amount (number)`: キャンペーンによるポイント付与額
-* `done_at (string)`: 取引日時
-* `description (string)`: 取引説明文
+* `amount (float)`: 取引総額 (マネー額 + ポイント額)
+* `money_amount (float)`: 取引マネー額
+* `point_amount (float)`: 取引ポイント額(キャンペーン付与ポイント合算)
+* `raw_point_amount (float)`: 取引ポイント額
+* `campaign_point_amount (float)`: キャンペーンによるポイント付与額
+* `done_at (str)`: 取引日時
+* `description (str)`: 取引説明文
 
 `receiver`と`sender`は [User](#user) オブジェクトを返します。
 
@@ -555,15 +611,15 @@
 
 <a name="external-transaction"></a>
 ## ExternalTransaction
-* `id (string)`: ポケペイ外部取引ID
-* `is_modified (boolean)`: 返金された取引かどうか
+* `id (str)`: ポケペイ外部取引ID
+* `is_modified (bool)`: 返金された取引かどうか
 * `sender (User)`: 送金者情報
 * `sender_account (Account)`: 送金ウォレット情報
 * `receiver (User)`: 受取者情報
 * `receiver_account (Account)`: 受取ウォレット情報
-* `amount (number)`: 決済額
-* `done_at (string)`: 取引日時
-* `description (string)`: 取引説明文
+* `amount (float)`: 決済額
+* `done_at (str)`: 取引日時
+* `description (str)`: 取引説明文
 
 `receiver`と`sender`は [User](#user) オブジェクトを返します。
 
@@ -572,72 +628,72 @@
 <a name="cashtray-attempt"></a>
 ## CashtrayAttempt
 * `account (AccountWithUser)`: エンドユーザーのウォレット
-* `status_code (number)`: ステータスコード
-* `error_type (string)`: エラー型
-* `error_message (string)`: エラーメッセージ
-* `created_at (string)`: Cashtray読み取り記録の作成日時
+* `status_code (float)`: ステータスコード
+* `error_type (str)`: エラー型
+* `error_message (str)`: エラーメッセージ
+* `created_at (str)`: Cashtray読み取り記録の作成日時
 
 `account`は [AccountWithUser](#account-with-user) オブジェクトを返します。
 
 <a name="account"></a>
 ## Account
-* `id (string)`: ウォレットID
-* `name (string)`: ウォレット名
-* `is_suspended (boolean)`: ウォレットが凍結されているかどうか
-* `status (string)`: 
+* `id (str)`: ウォレットID
+* `name (str)`: ウォレット名
+* `is_suspended (bool)`: ウォレットが凍結されているかどうか
+* `status (str)`: ウォレット状態
 * `private_money (PrivateMoney)`: 設定マネー情報
 
 `private_money`は [PrivateMoney](#private-money) オブジェクトを返します。
 
 <a name="transfer"></a>
 ## Transfer
-* `id (string)`: 
-* `sender_account (AccountWithoutPrivateMoneyDetail)`: 
-* `receiver_account (AccountWithoutPrivateMoneyDetail)`: 
-* `amount (number)`: 
-* `money_amount (number)`: 
-* `point_amount (number)`: 
-* `done_at (string)`: 
-* `type (string)`: 
-* `description (string)`: 
-* `transaction_id (string)`: 
+* `id (str)`: 取引明細ID
+* `sender_account (AccountWithoutPrivateMoneyDetail)`: 送金元ウォレット
+* `receiver_account (AccountWithoutPrivateMoneyDetail)`: 送金先ウォレット
+* `amount (float)`: 送金総額 (マネー額 + ポイント額)
+* `money_amount (float)`: 送金マネー額
+* `point_amount (float)`: 送金ポイント額
+* `done_at (str)`: 送金日時
+* `type (str)`: 取引明細種別
+* `description (str)`: 取引明細説明文
+* `transaction_id (str)`: 親取引ID
 
 `receiver_account`と`sender_account`は [AccountWithoutPrivateMoneyDetail](#account-without-private-money-detail) オブジェクトを返します。
 
 <a name="shop-account"></a>
 ## ShopAccount
-* `id (string)`: ウォレットID
-* `name (string)`: ウォレット名
-* `is_suspended (boolean)`: ウォレットが凍結されているかどうか
-* `can_transfer_topup (boolean)`: チャージ可能かどうか
+* `id (str)`: ウォレットID
+* `name (str)`: ウォレット名
+* `is_suspended (bool)`: ウォレットが凍結されているかどうか
+* `can_transfer_topup (bool)`: チャージ可能かどうか
 * `private_money (PrivateMoney)`: 設定マネー情報
 
 `private_money`は [PrivateMoney](#private-money) オブジェクトを返します。
 
 <a name="bulk-transaction-job"></a>
 ## BulkTransactionJob
-* `id (number)`: 
+* `id (int)`: 
 * `bulk_transaction (BulkTransaction)`: 
-* `type (string)`: 取引種別
-* `sender_account_id (string)`: 
-* `receiver_account_id (string)`: 
-* `money_amount (number)`: 
-* `point_amount (number)`: 
-* `description (string)`: バルク取引ジョブ管理用の説明文
-* `bear_point_account_id (string)`: 
-* `point_expires_at (string)`: ポイント有効期限
-* `status (string)`: バルク取引ジョブの状態
-* `error (string)`: バルク取引のエラー種別
-* `lineno (number)`: バルク取引のエラーが発生した行番号
-* `transaction_id (string)`: 
-* `created_at (string)`: バルク取引ジョブが登録された日時
-* `updated_at (string)`: バルク取引ジョブが更新された日時
+* `type (str)`: 取引種別
+* `sender_account_id (str)`: 
+* `receiver_account_id (str)`: 
+* `money_amount (float)`: 
+* `point_amount (float)`: 
+* `description (str)`: バルク取引ジョブ管理用の説明文
+* `bear_point_account_id (str)`: 
+* `point_expires_at (str)`: ポイント有効期限
+* `status (str)`: バルク取引ジョブの状態
+* `error (str)`: バルク取引のエラー種別
+* `lineno (int)`: バルク取引のエラーが発生した行番号
+* `transaction_id (str)`: 
+* `created_at (str)`: バルク取引ジョブが登録された日時
+* `updated_at (str)`: バルク取引ジョブが更新された日時
 
 `bulk_transaction`は [BulkTransaction](#bulk-transaction) オブジェクトを返します。
 
 <a name="private-money-organization-summary"></a>
 ## PrivateMoneyOrganizationSummary
-* `organization_code (string)`: 
+* `organization_code (str)`: 
 * `topup (OrganizationSummary)`: 
 * `payment (OrganizationSummary)`: 
 
@@ -645,84 +701,95 @@
 
 <a name="bank"></a>
 ## Bank
-* `id (string)`: 
+* `id (str)`: 
 * `private_money (PrivateMoney)`: 
-* `bank_name (string)`: 
-* `bank_code (string)`: 
-* `branch_number (string)`: 
-* `branch_name (string)`: 
-* `deposit_type (string)`: 
-* `masked_account_number (string)`: 
-* `account_name (string)`: 
+* `bank_name (str)`: 
+* `bank_code (str)`: 
+* `branch_number (str)`: 
+* `branch_name (str)`: 
+* `deposit_type (str)`: 
+* `masked_account_number (str)`: 
+* `account_name (str)`: 
 
 `private_money`は [PrivateMoney](#private-money) オブジェクトを返します。
 
+<a name="bill-transaction"></a>
+## BillTransaction
+* `transaction (Transaction)`: 
+* `bill (Bill)`: 
+
+`transaction`は [Transaction](#transaction) オブジェクトを返します。
+
+`bill`は [Bill](#bill) オブジェクトを返します。
+
 <a name="account-balance"></a>
 ## AccountBalance
-* `expires_at (string)`: 
-* `money_amount (number)`: 
-* `point_amount (number)`: 
+* `expires_at (str)`: 
+* `money_amount (float)`: 
+* `point_amount (float)`: 
 
 <a name="shop-with-metadata"></a>
 ## ShopWithMetadata
-* `id (string)`: 店舗ID
-* `name (string)`: 店舗名
-* `organization_code (string)`: 組織コード
-* `status (string)`: 店舗の状態
-* `postal_code (string)`: 店舗の郵便番号
-* `address (string)`: 店舗の住所
-* `tel (string)`: 店舗の電話番号
-* `email (string)`: 店舗のメールアドレス
-* `external_id (string)`: 店舗の外部ID
+* `id (str)`: 店舗ID
+* `name (str)`: 店舗名
+* `organization_code (str)`: 組織コード
+* `status (str)`: 店舗の状態
+* `postal_code (str)`: 店舗の郵便番号
+* `address (str)`: 店舗の住所
+* `tel (str)`: 店舗の電話番号
+* `email (str)`: 店舗のメールアドレス
+* `external_id (str)`: 店舗の外部ID
 
 <a name="account-transfer-summary-element"></a>
 ## AccountTransferSummaryElement
-* `transfer_type (string)`: 
-* `money_amount (number)`: 
-* `point_amount (number)`: 
-* `count (number)`: 
+* `transfer_type (str)`: 
+* `money_amount (float)`: 
+* `point_amount (float)`: 
+* `count (float)`: 
 
 <a name="coupon"></a>
 ## Coupon
-* `id (string)`: クーポンID
-* `name (string)`: クーポン名
+* `id (str)`: クーポンID
+* `name (str)`: クーポン名
 * `issued_shop (User)`: クーポン発行店舗
-* `description (string)`: クーポンの説明文
-* `discount_amount (number)`: クーポンによる値引き額(絶対値指定)
-* `discount_percentage (number)`: クーポンによる値引き率
-* `discount_upper_limit (number)`: クーポンによる値引き上限(値引き率が指定された場合の値引き上限額)
-* `starts_at (string)`: クーポンの利用可能期間(開始日時)
-* `ends_at (string)`: クーポンの利用可能期間(終了日時)
-* `display_starts_at (string)`: クーポンの掲載期間(開始日時)
-* `display_ends_at (string)`: クーポンの掲載期間(終了日時)
-* `usage_limit (number)`: ユーザごとの利用可能回数(NULLの場合は無制限)
-* `min_amount (number)`: クーポン適用可能な最小取引額
-* `is_shop_specified (boolean)`: 特定店舗限定のクーポンかどうか
-* `is_hidden (boolean)`: クーポン一覧に掲載されるかどうか
-* `is_public (boolean)`: アプリ配信なしで受け取れるかどうか
-* `code (string)`: クーポン受け取りコード
-* `is_disabled (boolean)`: 無効化フラグ
-* `token (string)`: クーポンを特定するためのトークン
+* `description (str)`: クーポンの説明文
+* `discount_amount (int)`: クーポンによる値引き額(絶対値指定)
+* `discount_percentage (float)`: クーポンによる値引き率
+* `discount_upper_limit (int)`: クーポンによる値引き上限(値引き率が指定された場合の値引き上限額)
+* `starts_at (str)`: クーポンの利用可能期間(開始日時)
+* `ends_at (str)`: クーポンの利用可能期間(終了日時)
+* `display_starts_at (str)`: クーポンの掲載期間(開始日時)
+* `display_ends_at (str)`: クーポンの掲載期間(終了日時)
+* `usage_limit (int)`: ユーザごとの利用可能回数(NULLの場合は無制限)
+* `min_amount (int)`: クーポン適用可能な最小取引額
+* `is_shop_specified (bool)`: 特定店舗限定のクーポンかどうか
+* `is_hidden (bool)`: クーポン一覧に掲載されるかどうか
+* `is_public (bool)`: アプリ配信なしで受け取れるかどうか
+* `code (str)`: クーポン受け取りコード
+* `is_disabled (bool)`: 無効化フラグ
+* `token (str)`: クーポンを特定するためのトークン
+* `num_recipients_cap (int)`: クーポンを受け取ることができるユーザ数上限
+* `num_recipients (int)`: クーポンを受け取ったユーザ数
 
 `issued_shop`は [User](#user) オブジェクトを返します。
 
 <a name="account-without-private-money-detail"></a>
 ## AccountWithoutPrivateMoneyDetail
-* `id (string)`: 
-* `name (string)`: 
-* `is_suspended (boolean)`: 
-* `status (string)`: 
-* `private_money_id (string)`: 
+* `id (str)`: 
+* `name (str)`: 
+* `is_suspended (bool)`: 
+* `status (str)`: 
+* `private_money_id (str)`: 
 * `user (User)`: 
 
 `user`は [User](#user) オブジェクトを返します。
 
 <a name="organization-summary"></a>
 ## OrganizationSummary
-* `count (number)`: 
-* `money_amount (number)`: 
-* `money_count (number)`: 
-* `point_amount (number)`: 
-* `raw_point_amount (number)`: 
-* `campaign_point_amount (number)`: 
-* `point_count (number)`: 
+* `count (int)`: 
+* `money_amount (float)`: 
+* `money_count (int)`: 
+* `point_amount (float)`: 
+* `raw_point_amount (float)`: 
+* `campaign_point_amount (float)`: 
+* `point_count (int)`: 
diff --git a/docs/seven_bank_atm_session.md b/docs/seven_bank_atm_session.md
new file mode 100644
index 0000000..bd3529d
--- /dev/null
+++ b/docs/seven_bank_atm_session.md
@@ -0,0 +1,42 @@
+# SevenBankATMSession
+セブンATMチャージの取引内容を照会するAPIを提供しています。
+
+<a name="get-seven-bank-atm-session"></a>
+## GetSevenBankATMSession: セブン銀行ATMセッションの取得
+セブン銀行ATMセッションを取得します
+
+```PYTHON
+response = client.send(pp.GetSevenBankAtmSession(
+                          "KNmzEARJ1"                                           # qr_info: QRコードの情報
+))
+```
+
+
+
+### Parameters
+#### `qr_info`
+取得するセブン銀行ATMチャージのQRコードの情報です。
+
+<details>
+<summary>スキーマ</summary>
+
+```json
+{
+  "type": "string"
+}
+```
+
+</details>
+
+
+
+成功したときは
+[SevenBankATMSession](./responses.md#seven-bank-atm-session)
+を返します
+
+
+
+---
+
+
+
diff --git a/docs/shop.md b/docs/shop.md
index 5ec4000..fbcb733 100644
--- a/docs/shop.md
+++ b/docs/shop.md
@@ -1,32 +1,38 @@
 # Shop
+店舗（加盟店）を表すデータです。
+Pokepayプラットフォーム上で支払いを受け取る店舗ユーザーを管理します。
+店舗は組織（Organization）に所属し、店舗ごとにウォレットを持ちます。
+店舗情報には住所、電話番号、メールアドレス、外部連携用IDなどが含まれます。
+店舗ステータス（active/disabled）の管理も可能です。
+
 
 <a name="list-shops"></a>
 ## ListShops: 店舗一覧を取得する
 
-```typescript
-const response: Response<PaginatedShops> = await client.send(new ListShops({
-  organization_code: "pocketchange", // 組織コード
-  private_money_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // マネーID
-  name: "oxスーパー三田店", // 店舗名
-  postal_code: "553-4812", // 店舗の郵便番号
-  address: "東京都港区芝...", // 店舗の住所
-  tel: "02809195-646", // 店舗の電話番号
-  email: "YcLTC4xCAB@Leko.com", // 店舗のメールアドレス
-  external_id: "D1pN0MSUSSu62wEl3iPUk", // 店舗の外部ID
-  with_disabled: true, // 無効な店舗を含める
-  page: 1, // ページ番号
-  per_page: 50 // 1ページ分の取引数
-}));
+```PYTHON
+response = client.send(pp.ListShops(
+                          organization_code="pocketchange",                     # 組織コード
+                          private_money_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", # マネーID
+                          name="oxスーパー三田店",                                     # 店舗名
+                          postal_code="202-5336",                               # 店舗の郵便番号
+                          address="東京都港区芝...",                                  # 店舗の住所
+                          tel="054-540-9920",                                   # 店舗の電話番号
+                          email="DEhr0AwKki@QOHC.com",                          # 店舗のメールアドレス
+                          external_id="QCIIRDiJ5EWSps1CcPm4CujuDvi",            # 店舗の外部ID
+                          with_disabled=True,                                   # 無効な店舗を含める
+                          page=1,                                               # ページ番号
+                          per_page=50                                           # 1ページ分の取引数
+))
 ```
 
 
 
 ### Parameters
-**`organization_code`** 
-  
-
+#### `organization_code`
 このパラメータを渡すとその組織の店舗のみが返され、省略すると加盟店も含む店舗が返されます。
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -36,11 +42,13 @@ const response: Response<PaginatedShops> = await client.send(new ListShops({
 }
 ```
 
-**`private_money_id`** 
-  
+</details>
 
+#### `private_money_id`
 このパラメータを渡すとそのマネーのウォレットを持つ店舗のみが返されます。
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -49,11 +57,13 @@ const response: Response<PaginatedShops> = await client.send(new ListShops({
 }
 ```
 
-**`name`** 
-  
+</details>
 
+#### `name`
 このパラメータを渡すとその名前の店舗のみが返されます。
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -63,11 +73,13 @@ const response: Response<PaginatedShops> = await client.send(new ListShops({
 }
 ```
 
-**`postal_code`** 
-  
+</details>
 
+#### `postal_code`
 このパラメータを渡すとその郵便番号が登録された店舗のみが返されます。
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -76,11 +88,13 @@ const response: Response<PaginatedShops> = await client.send(new ListShops({
 }
 ```
 
-**`address`** 
-  
+</details>
 
+#### `address`
 このパラメータを渡すとその住所が登録された店舗のみが返されます。
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -89,11 +103,13 @@ const response: Response<PaginatedShops> = await client.send(new ListShops({
 }
 ```
 
-**`tel`** 
-  
+</details>
 
+#### `tel`
 このパラメータを渡すとその電話番号が登録された店舗のみが返されます。
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -102,11 +118,13 @@ const response: Response<PaginatedShops> = await client.send(new ListShops({
 }
 ```
 
-**`email`** 
-  
+</details>
 
+#### `email`
 このパラメータを渡すとそのメールアドレスが登録された店舗のみが返されます。
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -116,11 +134,13 @@ const response: Response<PaginatedShops> = await client.send(new ListShops({
 }
 ```
 
-**`external_id`** 
-  
+</details>
 
+#### `external_id`
 このパラメータを渡すとその外部IDが登録された店舗のみが返されます。
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -129,11 +149,13 @@ const response: Response<PaginatedShops> = await client.send(new ListShops({
 }
 ```
 
-**`with_disabled`** 
-  
+</details>
 
+#### `with_disabled`
 このパラメータを渡すと無効にされた店舗を含めて返されます。デフォルトでは無効にされた店舗は返されません。
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -141,11 +163,14 @@ const response: Response<PaginatedShops> = await client.send(new ListShops({
 }
 ```
 
-**`page`** 
-  
+</details>
 
+#### `page`
 取得したいページ番号です。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "integer",
@@ -153,11 +178,14 @@ const response: Response<PaginatedShops> = await client.send(new ListShops({
 }
 ```
 
-**`per_page`** 
-  
+</details>
 
+#### `per_page`
 1ページ分の取引数です。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "integer",
@@ -165,6 +193,8 @@ const response: Response<PaginatedShops> = await client.send(new ListShops({
 }
 ```
 
+</details>
+
 
 
 成功したときは
@@ -175,8 +205,9 @@ const response: Response<PaginatedShops> = await client.send(new ListShops({
 |status|type|ja|en|
 |---|---|---|---|
 |403|unpermitted_admin_user|この管理ユーザには権限がありません|Admin does not have permission|
-|422|private_money_not_found||Private money not found|
+|422|private_money_not_found|マネーが見つかりません|Private money not found|
 |422|organization_not_found||Organization not found|
+|503|temporarily_unavailable||Service Unavailable|
 
 
 
@@ -187,24 +218,25 @@ const response: Response<PaginatedShops> = await client.send(new ListShops({
 ## CreateShop: 【廃止】新規店舗を追加する
 新規店舗を追加します。このAPIは廃止予定です。以降は `CreateShopV2` を使用してください。
 
-```typescript
-const response: Response<User> = await client.send(new CreateShop({
-  shop_name: "oxスーパー三田店", // 店舗名
-  shop_postal_code: "003-6412", // 店舗の郵便番号
-  shop_address: "東京都港区芝...", // 店舗の住所
-  shop_tel: "0217-471262", // 店舗の電話番号
-  shop_email: "WXvcqkH6OC@G8bj.com", // 店舗のメールアドレス
-  shop_external_id: "s6Wxag7", // 店舗の外部ID
-  organization_code: "ox-supermarket" // 組織コード
-}));
+```PYTHON
+response = client.send(pp.CreateShop(
+                          "oxスーパー三田店",                                          # shop_name: 店舗名
+                          shop_postal_code="9120026",                           # 店舗の郵便番号
+                          shop_address="東京都港区芝...",                             # 店舗の住所
+                          shop_tel="034-23333",                                 # 店舗の電話番号
+                          shop_email="5RxVGrM7sD@hsRo.com",                     # 店舗のメールアドレス
+                          shop_external_id="ZrBgBn",                            # 店舗の外部ID
+                          organization_code="ox-supermarket"                    # 組織コード
+))
 ```
 
 
 
 ### Parameters
-**`shop_name`** 
-  
+#### `shop_name`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -214,9 +246,12 @@ const response: Response<User> = await client.send(new CreateShop({
 }
 ```
 
-**`shop_postal_code`** 
-  
+</details>
 
+#### `shop_postal_code`
+
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -225,9 +260,12 @@ const response: Response<User> = await client.send(new CreateShop({
 }
 ```
 
-**`shop_address`** 
-  
+</details>
+
+#### `shop_address`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -236,9 +274,12 @@ const response: Response<User> = await client.send(new CreateShop({
 }
 ```
 
-**`shop_tel`** 
-  
+</details>
 
+#### `shop_tel`
+
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -247,9 +288,12 @@ const response: Response<User> = await client.send(new CreateShop({
 }
 ```
 
-**`shop_email`** 
-  
+</details>
+
+#### `shop_email`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -259,9 +303,12 @@ const response: Response<User> = await client.send(new CreateShop({
 }
 ```
 
-**`shop_external_id`** 
-  
+</details>
 
+#### `shop_external_id`
+
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -270,9 +317,12 @@ const response: Response<User> = await client.send(new CreateShop({
 }
 ```
 
-**`organization_code`** 
-  
+</details>
+
+#### `organization_code`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -282,6 +332,8 @@ const response: Response<User> = await client.send(new CreateShop({
 }
 ```
 
+</details>
+
 
 
 成功したときは
@@ -306,30 +358,31 @@ const response: Response<User> = await client.send(new CreateShop({
 <a name="create-shop-v2"></a>
 ## CreateShopV2: 新規店舗を追加する
 
-```typescript
-const response: Response<ShopWithAccounts> = await client.send(new CreateShopV2({
-  name: "oxスーパー三田店", // 店舗名
-  postal_code: "0664295", // 店舗の郵便番号
-  address: "東京都港区芝...", // 店舗の住所
-  tel: "00102538372", // 店舗の電話番号
-  email: "xB23NKDv8d@Bki6.com", // 店舗のメールアドレス
-  external_id: "Z5MR", // 店舗の外部ID
-  organization_code: "ox-supermarket", // 組織コード
-  private_money_ids: ["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"], // 店舗で有効にするマネーIDの配列
-  can_topup_private_money_ids: ["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"] // 店舗でチャージ可能にするマネーIDの配列
-}));
+```PYTHON
+response = client.send(pp.CreateShopV2(
+                          "oxスーパー三田店",                                          # name: 店舗名
+                          postal_code="7420873",                                # 店舗の郵便番号
+                          address="東京都港区芝...",                                  # 店舗の住所
+                          tel="0813-603-4634",                                  # 店舗の電話番号
+                          email="lFFoKvu4lo@beul.com",                          # 店舗のメールアドレス
+                          external_id="XI7c3F",                                 # 店舗の外部ID
+                          organization_code="ox-supermarket",                   # 組織コード
+                          private_money_ids=["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"], # 店舗で有効にするマネーIDの配列
+                          can_topup_private_money_ids=["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"] # 店舗でチャージ可能にするマネーIDの配列
+))
 ```
 
 
 
 ### Parameters
-**`name`** 
-  
-
+#### `name`
 店舗名です。
 
 同一組織内に同名の店舗があった場合は`name_conflict`エラーが返ります。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -338,9 +391,12 @@ const response: Response<ShopWithAccounts> = await client.send(new CreateShopV2(
 }
 ```
 
-**`postal_code`** 
-  
+</details>
+
+#### `postal_code`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -349,9 +405,12 @@ const response: Response<ShopWithAccounts> = await client.send(new CreateShopV2(
 }
 ```
 
-**`address`** 
-  
+</details>
 
+#### `address`
+
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -360,9 +419,12 @@ const response: Response<ShopWithAccounts> = await client.send(new CreateShopV2(
 }
 ```
 
-**`tel`** 
-  
+</details>
+
+#### `tel`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -371,9 +433,12 @@ const response: Response<ShopWithAccounts> = await client.send(new CreateShopV2(
 }
 ```
 
-**`email`** 
-  
+</details>
 
+#### `email`
+
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -383,9 +448,12 @@ const response: Response<ShopWithAccounts> = await client.send(new CreateShopV2(
 }
 ```
 
-**`external_id`** 
-  
+</details>
+
+#### `external_id`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -394,9 +462,12 @@ const response: Response<ShopWithAccounts> = await client.send(new CreateShopV2(
 }
 ```
 
-**`organization_code`** 
-  
+</details>
+
+#### `organization_code`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -406,14 +477,17 @@ const response: Response<ShopWithAccounts> = await client.send(new CreateShopV2(
 }
 ```
 
-**`private_money_ids`** 
-  
+</details>
 
+#### `private_money_ids`
 店舗で有効にするマネーIDの配列を指定します。
 
 店舗が所属する組織が発行または加盟しているマネーのみが指定できます。利用できないマネーが指定された場合は`unavailable_private_money`エラーが返ります。
 このパラメータを省略したときは、店舗が所属する組織が発行または加盟している全てのマネーのウォレットができます。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "array",
@@ -425,14 +499,17 @@ const response: Response<ShopWithAccounts> = await client.send(new CreateShopV2(
 }
 ```
 
-**`can_topup_private_money_ids`** 
-  
+</details>
 
+#### `can_topup_private_money_ids`
 店舗でチャージ可能にするマネーIDの配列を指定します。
 
 このパラメータは発行体のみが指定でき、自身が発行しているマネーのみを指定できます。加盟店が他発行体のマネーに加盟している場合でも、そのチャージ可否を変更することはできません。
 省略したときは対象店舗のその発行体の全てのマネーのアカウントがチャージ不可となります。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "array",
@@ -444,6 +521,8 @@ const response: Response<ShopWithAccounts> = await client.send(new CreateShopV2(
 }
 ```
 
+</details>
+
 
 
 成功したときは
@@ -472,18 +551,19 @@ const response: Response<ShopWithAccounts> = await client.send(new CreateShopV2(
 
 権限に関わらず自組織の店舗情報は表示可能です。それに加え、発行体は自組織の発行しているマネーの加盟店組織の店舗情報を表示できます。
 
-```typescript
-const response: Response<ShopWithAccounts> = await client.send(new GetShop({
-  shop_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" // 店舗ユーザーID
-}));
+```PYTHON
+response = client.send(pp.GetShop(
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"                # shop_id: 店舗ユーザーID
+))
 ```
 
 
 
 ### Parameters
-**`shop_id`** 
-  
+#### `shop_id`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -492,6 +572,8 @@ const response: Response<ShopWithAccounts> = await client.send(new GetShop({
 }
 ```
 
+</details>
+
 
 
 成功したときは
@@ -507,27 +589,28 @@ const response: Response<ShopWithAccounts> = await client.send(new GetShop({
 ## UpdateShop: 店舗情報を更新する
 店舗情報を更新します。bodyパラメーターは全て省略可能で、指定したもののみ更新されます。
 
-```typescript
-const response: Response<ShopWithAccounts> = await client.send(new UpdateShop({
-  shop_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // 店舗ユーザーID
-  name: "oxスーパー三田店", // 店舗名
-  postal_code: "533-7267", // 店舗の郵便番号
-  address: "東京都港区芝...", // 店舗の住所
-  tel: "01-882601", // 店舗の電話番号
-  email: "WjDXemYssW@VQAa.com", // 店舗のメールアドレス
-  external_id: "S9OW", // 店舗の外部ID
-  private_money_ids: [], // 店舗で有効にするマネーIDの配列
-  can_topup_private_money_ids: ["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"], // 店舗でチャージ可能にするマネーIDの配列
-  status: "disabled" // 店舗の状態
-}));
+```PYTHON
+response = client.send(pp.UpdateShop(
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",               # shop_id: 店舗ユーザーID
+                          name="oxスーパー三田店",                                     # 店舗名
+                          postal_code="1920291",                                # 店舗の郵便番号
+                          address="東京都港区芝...",                                  # 店舗の住所
+                          tel="007584-974",                                     # 店舗の電話番号
+                          email="LtrR0H47hb@bDvB.com",                          # 店舗のメールアドレス
+                          external_id="kQWYC4RWqJwsq2yT7AWpCDk",                # 店舗の外部ID
+                          private_money_ids=["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"], # 店舗で有効にするマネーIDの配列
+                          can_topup_private_money_ids=["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"], # 店舗でチャージ可能にするマネーIDの配列
+                          status="active"                                       # 店舗の状態
+))
 ```
 
 
 
 ### Parameters
-**`shop_id`** 
-  
+#### `shop_id`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -536,13 +619,16 @@ const response: Response<ShopWithAccounts> = await client.send(new UpdateShop({
 }
 ```
 
-**`name`** 
-  
+</details>
 
+#### `name`
 店舗名です。
 
 同一組織内に同名の店舗があった場合は`shop_name_conflict`エラーが返ります。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -551,11 +637,14 @@ const response: Response<ShopWithAccounts> = await client.send(new UpdateShop({
 }
 ```
 
-**`postal_code`** 
-  
+</details>
 
+#### `postal_code`
 店舗住所の郵便番号(7桁の数字)です。ハイフンは無視されます。明示的に空の値を設定するにはNULLを指定します。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -563,9 +652,12 @@ const response: Response<ShopWithAccounts> = await client.send(new UpdateShop({
 }
 ```
 
-**`address`** 
-  
+</details>
 
+#### `address`
+
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -574,11 +666,14 @@ const response: Response<ShopWithAccounts> = await client.send(new UpdateShop({
 }
 ```
 
-**`tel`** 
-  
+</details>
 
+#### `tel`
 店舗の電話番号です。ハイフンは無視されます。明示的に空の値を設定するにはNULLを指定します。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -586,11 +681,14 @@ const response: Response<ShopWithAccounts> = await client.send(new UpdateShop({
 }
 ```
 
-**`email`** 
-  
+</details>
 
+#### `email`
 店舗の連絡先メールアドレスです。明示的に空の値を設定するにはNULLを指定します。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -599,11 +697,14 @@ const response: Response<ShopWithAccounts> = await client.send(new UpdateShop({
 }
 ```
 
-**`external_id`** 
-  
+</details>
 
+#### `external_id`
 店舗の外部IDです(最大36文字)。明示的に空の値を設定するにはNULLを指定します。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -611,14 +712,17 @@ const response: Response<ShopWithAccounts> = await client.send(new UpdateShop({
 }
 ```
 
-**`private_money_ids`** 
-  
+</details>
 
+#### `private_money_ids`
 店舗で有効にするマネーIDの配列を指定します。
 
 店舗が所属する組織が発行または加盟しているマネーのみが指定できます。利用できないマネーが指定された場合は`unavailable_private_money`エラーが返ります。
 店舗が既にウォレットを持っている場合に、ここでそのウォレットのマネーIDを指定しないで更新すると、そのマネーのウォレットは凍結(無効化)されます。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "array",
@@ -630,14 +734,17 @@ const response: Response<ShopWithAccounts> = await client.send(new UpdateShop({
 }
 ```
 
-**`can_topup_private_money_ids`** 
-  
+</details>
 
+#### `can_topup_private_money_ids`
 店舗でチャージ可能にするマネーIDの配列を指定します。
 
 このパラメータは発行体のみが指定でき、発行しているマネーのみを指定できます。加盟店が他発行体のマネーに加盟している場合でも、そのチャージ可否を変更することはできません。
 省略したときは対象店舗のその発行体の全てのマネーのアカウントがチャージ不可となります。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "array",
@@ -649,11 +756,14 @@ const response: Response<ShopWithAccounts> = await client.send(new UpdateShop({
 }
 ```
 
-**`status`** 
-  
+</details>
 
+#### `status`
 店舗の状態です。activeを指定すると有効となり、disabledを指定するとリスト表示から除外されます。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -664,6 +774,8 @@ const response: Response<ShopWithAccounts> = await client.send(new UpdateShop({
 }
 ```
 
+</details>
+
 
 
 成功したときは
diff --git a/docs/transaction.md b/docs/transaction.md
index e940f05..f939543 100644
--- a/docs/transaction.md
+++ b/docs/transaction.md
@@ -1,23 +1,35 @@
 # Transaction
+取引を表すデータです。
+マネー(Private Money)のウォレット間の送金を記録し、キャンセルなどで状態が更新されることがあります。
+取引種類として以下が存在します。
+
+- topup: チャージ。Merchant => Customer送金
+- payment: 支払い。Customer => Merchant送金
+- transfer: 個人間譲渡。Customer => Customer送金
+- exchange: マネー間交換。１ユーザのウォレット間の送金（交換）
+- expire: 退会時失効。退会時の払戻を伴わない残高失効履歴
+- cashback: 退会時払戻。退会時の払戻金額履歴
+
 
 <a name="get-cpm-token"></a>
 ## GetCpmToken: CPMトークンの状態取得
 CPMトークンの現在の状態を取得します。CPMトークンの有効期限やCPM取引の状態を返します。
 
-```typescript
-const response: Response<CpmToken> = await client.send(new GetCpmToken({
-  cpm_token: "Km6uKQNQH3PDcRwUCecSBj" // CPMトークン
-}));
+```PYTHON
+response = client.send(pp.GetCpmToken(
+                          "uuGnm3um0ZKYlqHYAPfacx"                              # cpm_token: CPMトークン
+))
 ```
 
 
 
 ### Parameters
-**`cpm_token`** 
-  
-
+#### `cpm_token`
 CPM取引時にエンドユーザーが店舗に提示するバーコードを解析して得られる22桁の文字列です。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -26,6 +38,8 @@ CPM取引時にエンドユーザーが店舗に提示するバーコードを
 }
 ```
 
+</details>
+
 
 
 成功したときは
@@ -41,35 +55,36 @@ CPM取引時にエンドユーザーが店舗に提示するバーコードを
 ## ListTransactions: 【廃止】取引履歴を取得する
 取引一覧を返します。
 
-```typescript
-const response: Response<PaginatedTransaction> = await client.send(new ListTransactions({
-  from: "2021-09-11T23:30:17.000000Z", // 開始日時
-  to: "2022-05-22T06:21:04.000000Z", // 終了日時
-  page: 1, // ページ番号
-  per_page: 50, // 1ページ分の取引数
-  shop_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // 店舗ID
-  customer_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // エンドユーザーID
-  customer_name: "太郎", // エンドユーザー名
-  terminal_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // 端末ID
-  transaction_id: "rY", // 取引ID
-  organization_code: "pocketchange", // 組織コード
-  private_money_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // マネーID
-  is_modified: true, // キャンセルフラグ
-  types: ["topup", "payment"], // 取引種別 (複数指定可)、チャージ=topup、支払い=payment
-  description: "店頭QRコードによる支払い" // 取引説明文
-}));
+```PYTHON
+response = client.send(pp.ListTransactions(
+                          start="2022-03-27T11:31:39.000000Z",                  # 開始日時
+                          to="2025-05-27T16:45:40.000000Z",                     # 終了日時
+                          page=1,                                               # ページ番号
+                          per_page=50,                                          # 1ページ分の取引数
+                          shop_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",       # 店舗ID
+                          customer_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",   # エンドユーザーID
+                          customer_name="太郎",                                   # エンドユーザー名
+                          terminal_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",   # 端末ID
+                          transaction_id="ba4pxX",                              # 取引ID
+                          organization_code="pocketchange",                     # 組織コード
+                          private_money_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", # マネーID
+                          is_modified=False,                                    # キャンセルフラグ
+                          types=["topup", "payment"],                           # 取引種別 (複数指定可)、チャージ=topup、支払い=payment
+                          description="店頭QRコードによる支払い"                           # 取引説明文
+))
 ```
 
 
 
 ### Parameters
-**`from`** 
-  
-
+#### `from`
 抽出期間の開始日時です。
 
 フィルターとして使われ、開始日時以降に発生した取引のみ一覧に表示されます。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -77,13 +92,16 @@ const response: Response<PaginatedTransaction> = await client.send(new ListTrans
 }
 ```
 
-**`to`** 
-  
+</details>
 
+#### `to`
 抽出期間の終了日時です。
 
 フィルターとして使われ、終了日時以前に発生した取引のみ一覧に表示されます。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -91,11 +109,14 @@ const response: Response<PaginatedTransaction> = await client.send(new ListTrans
 }
 ```
 
-**`page`** 
-  
+</details>
 
+#### `page`
 取得したいページ番号です。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "integer",
@@ -103,11 +124,14 @@ const response: Response<PaginatedTransaction> = await client.send(new ListTrans
 }
 ```
 
-**`per_page`** 
-  
+</details>
 
+#### `per_page`
 1ページ分の取引数です。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "integer",
@@ -115,13 +139,16 @@ const response: Response<PaginatedTransaction> = await client.send(new ListTrans
 }
 ```
 
-**`shop_id`** 
-  
+</details>
 
+#### `shop_id`
 店舗IDです。
 
 フィルターとして使われ、指定された店舗での取引のみ一覧に表示されます。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -129,13 +156,16 @@ const response: Response<PaginatedTransaction> = await client.send(new ListTrans
 }
 ```
 
-**`customer_id`** 
-  
+</details>
 
+#### `customer_id`
 エンドユーザーIDです。
 
 フィルターとして使われ、指定されたエンドユーザーでの取引のみ一覧に表示されます。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -143,13 +173,16 @@ const response: Response<PaginatedTransaction> = await client.send(new ListTrans
 }
 ```
 
-**`customer_name`** 
-  
+</details>
 
+#### `customer_name`
 エンドユーザー名です。
 
 フィルターとして使われ、入力された名前に部分一致するエンドユーザーでの取引のみ一覧に表示されます。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -157,13 +190,16 @@ const response: Response<PaginatedTransaction> = await client.send(new ListTrans
 }
 ```
 
-**`terminal_id`** 
-  
+</details>
 
+#### `terminal_id`
 端末IDです。
 
 フィルターとして使われ、指定された端末での取引のみ一覧に表示されます。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -171,26 +207,32 @@ const response: Response<PaginatedTransaction> = await client.send(new ListTrans
 }
 ```
 
-**`transaction_id`** 
-  
+</details>
 
+#### `transaction_id`
 取引IDです。
 
 フィルターとして使われ、指定された取引IDに部分一致(前方一致)する取引のみが一覧に表示されます。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string"
 }
 ```
 
-**`organization_code`** 
-  
+</details>
 
+#### `organization_code`
 組織コードです。
 
 フィルターとして使われ、指定された組織での取引のみ一覧に表示されます。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -199,13 +241,16 @@ const response: Response<PaginatedTransaction> = await client.send(new ListTrans
 }
 ```
 
-**`private_money_id`** 
-  
+</details>
 
+#### `private_money_id`
 マネーIDです。
 
 フィルターとして使われ、指定したマネーでの取引のみ一覧に表示されます。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -213,23 +258,26 @@ const response: Response<PaginatedTransaction> = await client.send(new ListTrans
 }
 ```
 
-**`is_modified`** 
-  
+</details>
 
+#### `is_modified`
 キャンセルフラグです。
 
 これにtrueを指定するとキャンセルされた取引のみ一覧に表示されます。
 デフォルト値はfalseで、キャンセルの有無にかかわらず一覧に表示されます。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "boolean"
 }
 ```
 
-**`types`** 
-  
+</details>
 
+#### `types`
 取引の種類でフィルターします。
 
 以下の種類を指定できます。
@@ -252,6 +300,9 @@ const response: Response<PaginatedTransaction> = await client.send(new ListTrans
 6. expire
    退会時失効取引
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "array",
@@ -269,13 +320,16 @@ const response: Response<PaginatedTransaction> = await client.send(new ListTrans
 }
 ```
 
-**`description`** 
-  
+</details>
 
+#### `description`
 取引を指定の取引説明文でフィルターします。
 
 取引説明文が完全一致する取引のみ抽出されます。取引説明文は最大200文字で記録されています。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -283,6 +337,8 @@ const response: Response<PaginatedTransaction> = await client.send(new ListTrans
 }
 ```
 
+</details>
+
 
 
 成功したときは
@@ -293,6 +349,7 @@ const response: Response<PaginatedTransaction> = await client.send(new ListTrans
 |status|type|ja|en|
 |---|---|---|---|
 |403|NULL|NULL|NULL|
+|503|temporarily_unavailable||Service Unavailable|
 
 
 
@@ -303,24 +360,25 @@ const response: Response<PaginatedTransaction> = await client.send(new ListTrans
 ## CreateTransaction: 【廃止】チャージする
 チャージ取引を作成します。このAPIは廃止予定です。以降は `CreateTopupTransaction` を使用してください。
 
-```typescript
-const response: Response<TransactionDetail> = await client.send(new CreateTransaction({
-  shop_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
-  customer_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
-  private_money_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
-  money_amount: 5717,
-  point_amount: 4033,
-  point_expires_at: "2023-12-23T02:04:08.000000Z", // ポイント有効期限
-  description: "iJrkxUEwT3M91XjHrT"
-}));
+```PYTHON
+response = client.send(pp.CreateTransaction(
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
+                          money_amount=6854,
+                          point_amount=99,
+                          point_expires_at="2023-08-07T19:48:20.000000Z",       # ポイント有効期限
+                          description="d3QQrdtpp5IlW8KnTaroT8w3801ZxeZpTa0FFkkUFLVCDKp9TvCsVFg3Dy6t9FVfvRBKOl2QQeBI5NM6J7"
+))
 ```
 
 
 
 ### Parameters
-**`shop_id`** 
-  
+#### `shop_id`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -329,9 +387,12 @@ const response: Response<TransactionDetail> = await client.send(new CreateTransa
 }
 ```
 
-**`customer_id`** 
-  
+</details>
+
+#### `customer_id`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -340,9 +401,12 @@ const response: Response<TransactionDetail> = await client.send(new CreateTransa
 }
 ```
 
-**`private_money_id`** 
-  
+</details>
 
+#### `private_money_id`
+
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -351,9 +415,12 @@ const response: Response<TransactionDetail> = await client.send(new CreateTransa
 }
 ```
 
-**`money_amount`** 
-  
+</details>
+
+#### `money_amount`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -363,9 +430,12 @@ const response: Response<TransactionDetail> = await client.send(new CreateTransa
 }
 ```
 
-**`point_amount`** 
-  
+</details>
 
+#### `point_amount`
+
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -375,12 +445,15 @@ const response: Response<TransactionDetail> = await client.send(new CreateTransa
 }
 ```
 
-**`point_expires_at`** 
-  
+</details>
 
+#### `point_expires_at`
 ポイントをチャージした場合の、付与されるポイントの有効期限です。
 省略した場合はマネーに設定された有効期限と同じものがポイントの有効期限となります。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -388,9 +461,12 @@ const response: Response<TransactionDetail> = await client.send(new CreateTransa
 }
 ```
 
-**`description`** 
-  
+</details>
 
+#### `description`
+
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -399,6 +475,8 @@ const response: Response<TransactionDetail> = await client.send(new CreateTransa
 }
 ```
 
+</details>
+
 
 
 成功したときは
@@ -411,11 +489,16 @@ const response: Response<TransactionDetail> = await client.send(new CreateTransa
 |400|invalid_parameter_both_point_and_money_are_zero||One of 'money_amount' or 'point_amount' must be a positive (>0) number|
 |400|invalid_parameters|項目が無効です|Invalid parameters|
 |403|NULL|NULL|NULL|
-|410|transaction_canceled|取引がキャンセルされました|Transaction was canceled|
 |422|customer_user_not_found||The customer user is not found|
 |422|shop_user_not_found|店舗が見つかりません|The shop user is not found|
-|422|private_money_not_found||Private money not found|
+|422|private_money_not_found|マネーが見つかりません|Private money not found|
+|422|credit_session_money_topup_requires_credit_card|オーソリチャージ用マネーではクレジットカードによるチャージのみ許可されています|Credit card is required for topup on credit-session enabled money|
+|422|cannot_topup_during_cvs_authorization_pending|コンビニ決済の予約中はチャージできません|You cannot topup your account while a convenience store payment is pending.|
+|422|credit_session_not_found|オーソリセッションが見つかりません|Credit session not found|
+|422|not_applicable_transaction_type_for_account_topup_quota|チャージ取引以外の取引種別ではチャージ可能枠を使用できません|Account topup quota is not applicable to transaction types other than topup.|
+|422|private_money_topup_quota_not_available|このマネーにはチャージ可能枠の設定がありません|Topup quota is not available with this private money.|
 |422|account_can_not_topup|この店舗からはチャージできません|account can not topup|
+|422|private_money_closed|このマネーは解約されています|This money was closed|
 |422|transaction_has_done|取引は完了しており、キャンセルすることはできません|Transaction has been copmpleted and cannot be canceled|
 |422|account_restricted|特定のアカウントの支払いに制限されています|The account is restricted to pay for a specific account|
 |422|account_balance_not_enough|口座残高が不足してます|The account balance is not enough|
@@ -423,8 +506,14 @@ const response: Response<TransactionDetail> = await client.send(new CreateTransa
 |422|account_transfer_limit_exceeded|取引金額が上限を超えました|Too much amount to transfer|
 |422|account_balance_exceeded|口座残高が上限を超えました|The account balance exceeded the limit|
 |422|account_money_topup_transfer_limit_exceeded|マネーチャージ金額が上限を超えました|Too much amount to money topup transfer|
-|422|account_total_topup_limit_range|期間内での合計チャージ額上限に達しました|Entire period topup limit reached|
-|422|account_total_topup_limit_entire_period|全期間での合計チャージ額上限に達しました|Entire period topup limit reached|
+|422|reserved_word_can_not_specify_to_metadata|取引メタデータに予約語は指定出来ません|Reserved word can not specify to metadata|
+|422|account_topup_quota_not_splittable|このチャージ可能枠は設定された金額未満の金額には使用できません|This topup quota is only applicable to its designated money amount.|
+|422|topup_amount_exceeding_topup_quota_usable_amount|チャージ金額がチャージ可能枠の利用可能金額を超えています|Topup amount is exceeding the topup quota's usable amount|
+|422|account_topup_quota_inactive|指定されたチャージ可能枠は有効ではありません|Topup quota is inactive|
+|422|account_topup_quota_not_within_applicable_period|指定されたチャージ可能枠の利用可能期間外です|Topup quota is not applicable at this time|
+|422|account_topup_quota_not_found|ウォレットにチャージ可能枠がありません|Topup quota is not found with this account|
+|422|account_total_topup_limit_range|合計チャージ額がマネーで指定された期間内での上限を超えています|The topup exceeds the total amount within the period defined by the money.|
+|422|account_total_topup_limit_entire_period|合計チャージ額がマネーで指定された期間内での上限を超えています|The topup exceeds the total amount defined by the money.|
 |422|coupon_unavailable_shop|このクーポンはこの店舗では使用できません。|This coupon is unavailable for this shop.|
 |422|coupon_already_used|このクーポンは既に使用済みです。|This coupon is already used.|
 |422|coupon_not_received|このクーポンは受け取られていません。|This coupon is not received.|
@@ -435,7 +524,7 @@ const response: Response<TransactionDetail> = await client.send(new CreateTransa
 |422|account_suspended|アカウントは停止されています|The account is suspended|
 |422|account_closed|アカウントは退会しています|The account is closed|
 |422|customer_account_not_found||The customer account is not found|
-|422|shop_account_not_found||The shop account is not found|
+|422|shop_account_not_found|店舗アカウントが見つかりません|The shop account is not found|
 |422|account_currency_mismatch|アカウント間で通貨が異なっています|Currency mismatch between accounts|
 |422|account_pre_closed|アカウントは退会準備中です|The account is pre-closed|
 |422|account_not_accessible|アカウントにアクセスできません|The account is not accessible by this user|
@@ -447,6 +536,91 @@ const response: Response<TransactionDetail> = await client.send(new CreateTransa
 
 
 
+---
+
+
+<a name="create-transaction-group"></a>
+## CreateTransactionGroup: トランザクショングループを作成する
+複数の取引を1つのグループとして管理できるようにします。
+
+```PYTHON
+response = client.send(pp.CreateTransactionGroup(
+                          "hkzGk2"                                              # name: 作成するトランザクショングループの名称です。
+))
+```
+
+
+
+### Parameters
+#### `name`
+作成するトランザクショングループの名称です。
+"pokepay" で始まる文字列は予約済みのため使用できません。
+
+<details>
+<summary>スキーマ</summary>
+
+```json
+{
+  "type": "string",
+  "maxLength": 64
+}
+```
+
+</details>
+
+
+
+成功したときは
+[TransactionGroup](./responses.md#transaction-group)
+を返します
+
+### Error Responses
+|status|type|ja|en|
+|---|---|---|---|
+|403|unpermitted_admin_user|この管理ユーザには権限がありません|Admin does not have permission|
+|422|transaction_group_name_reserved|指定されたトランザクショングループ名は使用できません|Transaction group name is reserved|
+
+
+
+---
+
+
+<a name="show-transaction-group"></a>
+## ShowTransactionGroup: トランザクショングループを取得する
+指定したトランザクショングループの詳細を返します。
+
+```PYTHON
+response = client.send(pp.ShowTransactionGroup(
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"                # uuid: 取得したいトランザクショングループID
+))
+```
+
+
+
+### Parameters
+#### `uuid`
+取得したいトランザクショングループID
+
+<details>
+<summary>スキーマ</summary>
+
+```json
+{
+  "type": "string",
+  "format": "uuid"
+}
+```
+
+</details>
+
+
+
+成功したときは
+[TransactionGroup](./responses.md#transaction-group)
+を返します
+
+
+
 ---
 
 
@@ -454,36 +628,37 @@ const response: Response<TransactionDetail> = await client.send(new CreateTransa
 ## ListTransactionsV2: 取引履歴を取得する
 取引一覧を返します。
 
-```typescript
-const response: Response<PaginatedTransactionV2> = await client.send(new ListTransactionsV2({
-  private_money_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // マネーID
-  organization_code: "pocketchange", // 組織コード
-  shop_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // 店舗ID
-  terminal_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // 端末ID
-  customer_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // エンドユーザーID
-  customer_name: "太郎", // エンドユーザー名
-  description: "店頭QRコードによる支払い", // 取引説明文
-  transaction_id: "7fMCl81I", // 取引ID
-  is_modified: true, // キャンセルフラグ
-  types: ["topup", "payment"], // 取引種別 (複数指定可)、チャージ=topup、支払い=payment
-  from: "2023-07-26T01:45:12.000000Z", // 開始日時
-  to: "2021-05-20T02:13:37.000000Z", // 終了日時
-  next_page_cursor_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // 次ページへ遷移する際に起点となるtransactionのID
-  prev_page_cursor_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // 前ページへ遷移する際に起点となるtransactionのID
-  per_page: 50 // 1ページ分の取引数
-}));
+```PYTHON
+response = client.send(pp.ListTransactionsV2(
+                          private_money_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", # マネーID
+                          organization_code="pocketchange",                     # 組織コード
+                          shop_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",       # 店舗ID
+                          terminal_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",   # 端末ID
+                          customer_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",   # エンドユーザーID
+                          customer_name="太郎",                                   # エンドユーザー名
+                          description="店頭QRコードによる支払い",                          # 取引説明文
+                          transaction_id="yYl",                                 # 取引ID
+                          is_modified=False,                                    # キャンセルフラグ
+                          types=["topup", "payment"],                           # 取引種別 (複数指定可)、チャージ=topup、支払い=payment
+                          start="2020-07-30T17:54:45.000000Z",                  # 開始日時
+                          to="2025-03-14T01:25:15.000000Z",                     # 終了日時
+                          next_page_cursor_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", # 次ページへ遷移する際に起点となるtransactionのID
+                          prev_page_cursor_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", # 前ページへ遷移する際に起点となるtransactionのID
+                          per_page=50                                           # 1ページ分の取引数
+))
 ```
 
 
 
 ### Parameters
-**`private_money_id`** 
-  
-
+#### `private_money_id`
 マネーIDです。
 
 指定したマネーでの取引が一覧に表示されます。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -491,13 +666,16 @@ const response: Response<PaginatedTransactionV2> = await client.send(new ListTra
 }
 ```
 
-**`organization_code`** 
-  
+</details>
 
+#### `organization_code`
 組織コードです。
 
 フィルターとして使われ、指定された組織の店舗での取引のみ一覧に表示されます。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -506,13 +684,16 @@ const response: Response<PaginatedTransactionV2> = await client.send(new ListTra
 }
 ```
 
-**`shop_id`** 
-  
+</details>
 
+#### `shop_id`
 店舗IDです。
 
 フィルターとして使われ、指定された店舗での取引のみ一覧に表示されます。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -520,13 +701,16 @@ const response: Response<PaginatedTransactionV2> = await client.send(new ListTra
 }
 ```
 
-**`terminal_id`** 
-  
+</details>
 
+#### `terminal_id`
 端末IDです。
 
 フィルターとして使われ、指定された端末での取引のみ一覧に表示されます。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -534,13 +718,16 @@ const response: Response<PaginatedTransactionV2> = await client.send(new ListTra
 }
 ```
 
-**`customer_id`** 
-  
+</details>
 
+#### `customer_id`
 エンドユーザーIDです。
 
 フィルターとして使われ、指定されたエンドユーザーの取引のみ一覧に表示されます。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -548,13 +735,16 @@ const response: Response<PaginatedTransactionV2> = await client.send(new ListTra
 }
 ```
 
-**`customer_name`** 
-  
+</details>
 
+#### `customer_name`
 エンドユーザー名です。
 
 フィルターとして使われ、入力された名前に部分一致するエンドユーザーでの取引のみ一覧に表示されます。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -562,13 +752,16 @@ const response: Response<PaginatedTransactionV2> = await client.send(new ListTra
 }
 ```
 
-**`description`** 
-  
+</details>
 
+#### `description`
 取引を指定の取引説明文でフィルターします。
 
 取引説明文が完全一致する取引のみ抽出されます。取引説明文は最大200文字で記録されています。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -576,36 +769,42 @@ const response: Response<PaginatedTransactionV2> = await client.send(new ListTra
 }
 ```
 
-**`transaction_id`** 
-  
+</details>
 
+#### `transaction_id`
 取引IDです。
 
 フィルターとして使われ、指定された取引IDに部分一致(前方一致)する取引のみが一覧に表示されます。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string"
 }
 ```
 
-**`is_modified`** 
-  
+</details>
 
+#### `is_modified`
 キャンセルフラグです。
 
 これにtrueを指定するとキャンセルされた取引のみ一覧に表示されます。
 デフォルト値はfalseで、キャンセルの有無にかかわらず一覧に表示されます。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "boolean"
 }
 ```
 
-**`types`** 
-  
+</details>
 
+#### `types`
 取引の種類でフィルターします。
 
 以下の種類を指定できます。
@@ -632,6 +831,9 @@ const response: Response<PaginatedTransactionV2> = await client.send(new ListTra
 6. expire
    退会時失効取引
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "array",
@@ -649,13 +851,16 @@ const response: Response<PaginatedTransactionV2> = await client.send(new ListTra
 }
 ```
 
-**`from`** 
-  
+</details>
 
+#### `from`
 抽出期間の開始日時です。
 
 フィルターとして使われ、開始日時以降に発生した取引のみ一覧に表示されます。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -663,13 +868,16 @@ const response: Response<PaginatedTransactionV2> = await client.send(new ListTra
 }
 ```
 
-**`to`** 
-  
+</details>
 
+#### `to`
 抽出期間の終了日時です。
 
 フィルターとして使われ、終了日時以前に発生した取引のみ一覧に表示されます。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -677,15 +885,18 @@ const response: Response<PaginatedTransactionV2> = await client.send(new ListTra
 }
 ```
 
-**`next_page_cursor_id`** 
-  
+</details>
 
+#### `next_page_cursor_id`
 次ページへ遷移する際に起点となるtransactionのID(前ページの末尾要素のID)です。
 本APIのレスポンスにもnext_page_cursor_idが含まれており、これがnull値の場合は最後のページであることを意味します。
 UUIDである場合は次のページが存在することを意味し、このnext_page_cursor_idをリクエストパラメータに含めることで次ページに遷移します。
 
 next_page_cursor_idのtransaction自体は次のページには含まれません。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -693,9 +904,9 @@ next_page_cursor_idのtransaction自体は次のページには含まれませ
 }
 ```
 
-**`prev_page_cursor_id`** 
-  
+</details>
 
+#### `prev_page_cursor_id`
 前ページへ遷移する際に起点となるtransactionのID(次ページの先頭要素のID)です。
 
 本APIのレスポンスにもprev_page_cursor_idが含まれており、これがnull値の場合は先頭のページであることを意味します。
@@ -703,6 +914,9 @@ UUIDである場合は前のページが存在することを意味し、このp
 
 prev_page_cursor_idのtransaction自体は前のページには含まれません。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -710,13 +924,16 @@ prev_page_cursor_idのtransaction自体は前のページには含まれませ
 }
 ```
 
-**`per_page`** 
-  
+</details>
 
+#### `per_page`
 1ページ分の取引数です。
 
 デフォルト値は50です。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "integer",
@@ -725,6 +942,8 @@ prev_page_cursor_idのtransaction自体は前のページには含まれませ
 }
 ```
 
+</details>
+
 
 
 成功したときは
@@ -735,6 +954,312 @@ prev_page_cursor_idのtransaction自体は前のページには含まれませ
 |status|type|ja|en|
 |---|---|---|---|
 |403|unpermitted_admin_user|この管理ユーザには権限がありません|Admin does not have permission|
+|503|temporarily_unavailable||Service Unavailable|
+
+
+
+---
+
+
+<a name="list-bill-transactions"></a>
+## ListBillTransactions: 支払い取引履歴を取得する
+支払いによって発生した取引を支払いのデータとともに一覧で返します。
+
+```PYTHON
+response = client.send(pp.ListBillTransactions(
+                          private_money_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", # マネーID
+                          organization_code="pocketchange",                     # 組織コード
+                          shop_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",       # 店舗ID
+                          customer_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",   # エンドユーザーID
+                          customer_name="太郎",                                   # エンドユーザー名
+                          terminal_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",   # エンドユーザー端末ID
+                          description="店頭QRコードによる支払い",                          # 取引説明文
+                          transaction_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", # 取引ID
+                          bill_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",       # 支払いQRコードのID
+                          is_modified=True,                                     # キャンセルフラグ
+                          start="2021-06-04T01:56:12.000000Z",                  # 開始日時
+                          to="2026-03-07T00:18:34.000000Z",                     # 終了日時
+                          next_page_cursor_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", # 次ページへ遷移する際に起点となるtransactionのID
+                          prev_page_cursor_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", # 前ページへ遷移する際に起点となるtransactionのID
+                          per_page=50                                           # 1ページ分の取引数
+))
+```
+
+
+
+### Parameters
+#### `private_money_id`
+マネーIDです。
+
+指定したマネーでの取引が一覧に表示されます。
+
+<details>
+<summary>スキーマ</summary>
+
+```json
+{
+  "type": "string",
+  "format": "uuid"
+}
+```
+
+</details>
+
+#### `organization_code`
+組織コードです。
+
+フィルターとして使われ、指定された組織の店舗での取引のみ一覧に表示されます。
+
+<details>
+<summary>スキーマ</summary>
+
+```json
+{
+  "type": "string",
+  "maxLength": 32,
+  "pattern": "^[a-zA-Z0-9-]*$"
+}
+```
+
+</details>
+
+#### `shop_id`
+店舗IDです。
+
+フィルターとして使われ、指定された店舗での取引のみ一覧に表示されます。
+
+<details>
+<summary>スキーマ</summary>
+
+```json
+{
+  "type": "string",
+  "format": "uuid"
+}
+```
+
+</details>
+
+#### `customer_id`
+エンドユーザーIDです。
+
+フィルターとして使われ、指定されたエンドユーザーの取引のみ一覧に表示されます。
+
+<details>
+<summary>スキーマ</summary>
+
+```json
+{
+  "type": "string",
+  "format": "uuid"
+}
+```
+
+</details>
+
+#### `customer_name`
+エンドユーザー名です。
+
+フィルターとして使われ、入力された名前に部分一致するエンドユーザーでの取引のみ一覧に表示されます。
+
+<details>
+<summary>スキーマ</summary>
+
+```json
+{
+  "type": "string",
+  "maxLength": 256
+}
+```
+
+</details>
+
+#### `terminal_id`
+エンドユーザーの端末IDです。
+フィルターとして使われ、指定された端末での取引のみ一覧に表示されます。
+
+<details>
+<summary>スキーマ</summary>
+
+```json
+{
+  "type": "string",
+  "format": "uuid"
+}
+```
+
+</details>
+
+#### `description`
+取引を指定の取引説明文でフィルターします。
+
+取引説明文が完全一致する取引のみ抽出されます。取引説明文は最大200文字で記録されています。
+
+<details>
+<summary>スキーマ</summary>
+
+```json
+{
+  "type": "string",
+  "maxLength": 200
+}
+```
+
+</details>
+
+#### `transaction_id`
+取引IDです。
+
+フィルターとして使われ、指定された取引IDに部分一致(前方一致)する取引のみが一覧に表示されます。
+
+<details>
+<summary>スキーマ</summary>
+
+```json
+{
+  "type": "string",
+  "format": "uuid"
+}
+```
+
+</details>
+
+#### `bill_id`
+支払いQRコードのIDです。
+
+フィルターとして使われ、指定された支払いQRコードIDに部分一致(前方一致)する取引のみが一覧に表示されます。
+
+<details>
+<summary>スキーマ</summary>
+
+```json
+{
+  "type": "string",
+  "format": "uuid"
+}
+```
+
+</details>
+
+#### `is_modified`
+キャンセルフラグです。
+
+これにtrueを指定するとキャンセルされた取引のみ一覧に表示されます。
+デフォルト値はfalseで、キャンセルの有無にかかわらず一覧に表示されます。
+
+<details>
+<summary>スキーマ</summary>
+
+```json
+{
+  "type": "boolean"
+}
+```
+
+</details>
+
+#### `from`
+抽出期間の開始日時です。
+
+フィルターとして使われ、開始日時以降に発生した取引のみ一覧に表示されます。
+
+<details>
+<summary>スキーマ</summary>
+
+```json
+{
+  "type": "string",
+  "format": "date-time"
+}
+```
+
+</details>
+
+#### `to`
+抽出期間の終了日時です。
+
+フィルターとして使われ、終了日時以前に発生した取引のみ一覧に表示されます。
+
+<details>
+<summary>スキーマ</summary>
+
+```json
+{
+  "type": "string",
+  "format": "date-time"
+}
+```
+
+</details>
+
+#### `next_page_cursor_id`
+次ページへ遷移する際に起点となるtransactionのID(前ページの末尾要素のID)です。
+本APIのレスポンスにもnext_page_cursor_idが含まれており、これがnull値の場合は最後のページであることを意味します。
+UUIDである場合は次のページが存在することを意味し、このnext_page_cursor_idをリクエストパラメータに含めることで次ページに遷移します。
+
+next_page_cursor_idのtransaction自体は次のページには含まれません。
+
+<details>
+<summary>スキーマ</summary>
+
+```json
+{
+  "type": "string",
+  "format": "uuid"
+}
+```
+
+</details>
+
+#### `prev_page_cursor_id`
+前ページへ遷移する際に起点となるtransactionのID(次ページの先頭要素のID)です。
+
+本APIのレスポンスにもprev_page_cursor_idが含まれており、これがnull値の場合は先頭のページであることを意味します。
+UUIDである場合は前のページが存在することを意味し、このprev_page_cursor_idをリクエストパラメータに含めることで前ページに遷移します。
+
+prev_page_cursor_idのtransaction自体は前のページには含まれません。
+
+<details>
+<summary>スキーマ</summary>
+
+```json
+{
+  "type": "string",
+  "format": "uuid"
+}
+```
+
+</details>
+
+#### `per_page`
+1ページ分の取引数です。
+
+デフォルト値は50です。
+
+<details>
+<summary>スキーマ</summary>
+
+```json
+{
+  "type": "integer",
+  "minimum": 1,
+  "maximum": 1000
+}
+```
+
+</details>
+
+
+
+成功したときは
+[PaginatedBillTransaction](./responses.md#paginated-bill-transaction)
+を返します
+
+### Error Responses
+|status|type|ja|en|
+|---|---|---|---|
+|403|unpermitted_admin_user|この管理ユーザには権限がありません|Admin does not have permission|
+|503|temporarily_unavailable||Service Unavailable|
 
 
 
@@ -745,31 +1270,32 @@ prev_page_cursor_idのtransaction自体は前のページには含まれませ
 ## CreateTopupTransaction: チャージする
 チャージ取引を作成します。
 
-```typescript
-const response: Response<TransactionDetail> = await client.send(new CreateTopupTransaction({
-  shop_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // 店舗ID
-  customer_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // エンドユーザーのID
-  private_money_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // マネーID
-  bear_point_shop_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // ポイント支払時の負担店舗ID
-  money_amount: 7635, // マネー額
-  point_amount: 7752, // ポイント額
-  point_expires_at: "2021-01-04T13:53:36.000000Z", // ポイント有効期限
-  description: "初夏のチャージキャンペーン", // 取引履歴に表示する説明文
-  metadata: "{\"key\":\"value\"}", // 取引メタデータ
-  request_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" // リクエストID
-}));
+```PYTHON
+response = client.send(pp.CreateTopupTransaction(
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",               # shop_id: 店舗ID
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",               # customer_id: エンドユーザーのID
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",               # private_money_id: マネーID
+                          bear_point_shop_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", # ポイント支払時の負担店舗ID
+                          money_amount=4943,                                    # マネー額
+                          point_amount=1872,                                    # ポイント額
+                          point_expires_at="2024-11-09T23:39:20.000000Z",       # ポイント有効期限
+                          description="初夏のチャージキャンペーン",                          # 取引履歴に表示する説明文
+                          metadata="{\"key\":\"value\"}",                       # 取引メタデータ
+                          request_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"     # リクエストID
+))
 ```
 
 
 
 ### Parameters
-**`shop_id`** 
-  
-
+#### `shop_id`
 店舗IDです。
 
 送金元の店舗を指定します。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -777,13 +1303,16 @@ const response: Response<TransactionDetail> = await client.send(new CreateTopupT
 }
 ```
 
-**`customer_id`** 
-  
+</details>
 
+#### `customer_id`
 エンドユーザーIDです。
 
 送金先のエンドユーザーを指定します。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -791,13 +1320,16 @@ const response: Response<TransactionDetail> = await client.send(new CreateTopupT
 }
 ```
 
-**`private_money_id`** 
-  
+</details>
 
+#### `private_money_id`
 マネーIDです。
 
 マネーを指定します。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -805,13 +1337,16 @@ const response: Response<TransactionDetail> = await client.send(new CreateTopupT
 }
 ```
 
-**`bear_point_shop_id`** 
-  
+</details>
 
+#### `bear_point_shop_id`
 ポイント支払時の負担店舗IDです。
 
 ポイント支払い時に実際お金を負担する店舗を指定します。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -819,14 +1354,17 @@ const response: Response<TransactionDetail> = await client.send(new CreateTopupT
 }
 ```
 
-**`money_amount`** 
-  
+</details>
 
+#### `money_amount`
 マネー額です。
 
 送金するマネー額を指定します。
 デフォルト値は0で、money_amountとpoint_amountの両方が0のときにはinvalid_parameter_both_point_and_money_are_zero(エラーコード400)が返ります。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "integer",
@@ -834,14 +1372,17 @@ const response: Response<TransactionDetail> = await client.send(new CreateTopupT
 }
 ```
 
-**`point_amount`** 
-  
+</details>
 
+#### `point_amount`
 ポイント額です。
 
 送金するポイント額を指定します。
 デフォルト値は0で、money_amountとpoint_amountの両方が0のときにはinvalid_parameter_both_point_and_money_are_zero(エラーコード400)が返ります。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "integer",
@@ -849,12 +1390,15 @@ const response: Response<TransactionDetail> = await client.send(new CreateTopupT
 }
 ```
 
-**`point_expires_at`** 
-  
+</details>
 
+#### `point_expires_at`
 ポイントをチャージした場合の、付与されるポイントの有効期限です。
 省略した場合はマネーに設定された有効期限と同じものがポイントの有効期限となります。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -862,13 +1406,16 @@ const response: Response<TransactionDetail> = await client.send(new CreateTopupT
 }
 ```
 
-**`description`** 
-  
+</details>
 
+#### `description`
 取引説明文です。
 
 任意入力で、取引履歴に表示される説明文です。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -876,13 +1423,16 @@ const response: Response<TransactionDetail> = await client.send(new CreateTopupT
 }
 ```
 
-**`metadata`** 
-  
+</details>
 
+#### `metadata`
 取引作成時に指定されるメタデータです。
 
 任意入力で、全てのkeyとvalueが文字列であるようなフラットな構造のJSON文字列で指定します。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -890,14 +1440,18 @@ const response: Response<TransactionDetail> = await client.send(new CreateTopupT
 }
 ```
 
-**`request_id`** 
-  
+</details>
 
+#### `request_id`
 取引作成APIの羃等性を担保するためのリクエスト固有のIDです。
 
 取引作成APIで結果が受け取れなかったなどの理由で再試行する際に、二重に取引が作られてしまうことを防ぐために、クライアント側から指定されます。指定は任意で、UUID V4フォーマットでランダム生成した文字列です。リクエストIDは一定期間で削除されます。
 
 リクエストIDを指定したとき、まだそのリクエストIDに対する取引がない場合、新規に取引が作られレスポンスとして返されます。もしそのリクエストIDに対する取引が既にある場合、既存の取引がレスポンスとして返されます。
+既に存在する、別のユーザによる取引とリクエストIDが衝突した場合、request_id_conflictが返ります。
+
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -906,6 +1460,8 @@ const response: Response<TransactionDetail> = await client.send(new CreateTopupT
 }
 ```
 
+</details>
+
 
 
 成功したときは
@@ -918,9 +1474,14 @@ const response: Response<TransactionDetail> = await client.send(new CreateTopupT
 |400|invalid_parameter_both_point_and_money_are_zero||One of 'money_amount' or 'point_amount' must be a positive (>0) number|
 |400|invalid_parameters|項目が無効です|Invalid parameters|
 |403|unpermitted_admin_user|この管理ユーザには権限がありません|Admin does not have permission|
-|410|transaction_canceled|取引がキャンセルされました|Transaction was canceled|
-|422|invalid_metadata|メタデータの形式が不正です|Invalid metadata format|
+|422|coupon_not_found|クーポンが見つかりませんでした。|The coupon is not found.|
+|422|credit_session_money_topup_requires_credit_card|オーソリチャージ用マネーではクレジットカードによるチャージのみ許可されています|Credit card is required for topup on credit-session enabled money|
+|422|cannot_topup_during_cvs_authorization_pending|コンビニ決済の予約中はチャージできません|You cannot topup your account while a convenience store payment is pending.|
+|422|credit_session_not_found|オーソリセッションが見つかりません|Credit session not found|
+|422|not_applicable_transaction_type_for_account_topup_quota|チャージ取引以外の取引種別ではチャージ可能枠を使用できません|Account topup quota is not applicable to transaction types other than topup.|
+|422|private_money_topup_quota_not_available|このマネーにはチャージ可能枠の設定がありません|Topup quota is not available with this private money.|
 |422|account_can_not_topup|この店舗からはチャージできません|account can not topup|
+|422|private_money_closed|このマネーは解約されています|This money was closed|
 |422|transaction_has_done|取引は完了しており、キャンセルすることはできません|Transaction has been copmpleted and cannot be canceled|
 |422|account_restricted|特定のアカウントの支払いに制限されています|The account is restricted to pay for a specific account|
 |422|account_balance_not_enough|口座残高が不足してます|The account balance is not enough|
@@ -928,8 +1489,13 @@ const response: Response<TransactionDetail> = await client.send(new CreateTopupT
 |422|account_transfer_limit_exceeded|取引金額が上限を超えました|Too much amount to transfer|
 |422|account_balance_exceeded|口座残高が上限を超えました|The account balance exceeded the limit|
 |422|account_money_topup_transfer_limit_exceeded|マネーチャージ金額が上限を超えました|Too much amount to money topup transfer|
-|422|account_total_topup_limit_range|期間内での合計チャージ額上限に達しました|Entire period topup limit reached|
-|422|account_total_topup_limit_entire_period|全期間での合計チャージ額上限に達しました|Entire period topup limit reached|
+|422|account_topup_quota_not_splittable|このチャージ可能枠は設定された金額未満の金額には使用できません|This topup quota is only applicable to its designated money amount.|
+|422|topup_amount_exceeding_topup_quota_usable_amount|チャージ金額がチャージ可能枠の利用可能金額を超えています|Topup amount is exceeding the topup quota's usable amount|
+|422|account_topup_quota_inactive|指定されたチャージ可能枠は有効ではありません|Topup quota is inactive|
+|422|account_topup_quota_not_within_applicable_period|指定されたチャージ可能枠の利用可能期間外です|Topup quota is not applicable at this time|
+|422|account_topup_quota_not_found|ウォレットにチャージ可能枠がありません|Topup quota is not found with this account|
+|422|account_total_topup_limit_range|合計チャージ額がマネーで指定された期間内での上限を超えています|The topup exceeds the total amount within the period defined by the money.|
+|422|account_total_topup_limit_entire_period|合計チャージ額がマネーで指定された期間内での上限を超えています|The topup exceeds the total amount defined by the money.|
 |422|coupon_unavailable_shop|このクーポンはこの店舗では使用できません。|This coupon is unavailable for this shop.|
 |422|coupon_already_used|このクーポンは既に使用済みです。|This coupon is already used.|
 |422|coupon_not_received|このクーポンは受け取られていません。|This coupon is not received.|
@@ -946,9 +1512,12 @@ const response: Response<TransactionDetail> = await client.send(new CreateTopupT
 |422|same_account_transaction|同じアカウントに送信しています|Sending to the same account|
 |422|transaction_invalid_done_at|取引完了日が無効です|Transaction completion date is invalid|
 |422|transaction_invalid_amount|取引金額が数値ではないか、受け入れられない桁数です|Transaction amount is not a number or cannot be accepted for this currency|
+|422|request_id_conflict|このリクエストIDは他の取引ですでに使用されています。お手数ですが、別のリクエストIDで最初からやり直してください。|The request_id is already used by another transaction. Try again with new request id|
+|422|reserved_word_can_not_specify_to_metadata|取引メタデータに予約語は指定出来ません|Reserved word can not specify to metadata|
+|422|invalid_metadata|メタデータの形式が不正です|Invalid metadata format|
 |422|customer_account_not_found||The customer account is not found|
-|422|shop_account_not_found||The shop account is not found|
-|422|private_money_not_found||Private money not found|
+|422|shop_account_not_found|店舗アカウントが見つかりません|The shop account is not found|
+|422|private_money_not_found|マネーが見つかりません|Private money not found|
 |503|temporarily_unavailable||Service Unavailable|
 
 
@@ -961,36 +1530,50 @@ const response: Response<TransactionDetail> = await client.send(new CreateTopupT
 支払取引を作成します。
 支払い時には、エンドユーザーの残高のうち、ポイント残高から優先的に消費されます。
 
-
-```typescript
-const response: Response<TransactionDetail> = await client.send(new CreatePaymentTransaction({
-  shop_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // 店舗ID
-  customer_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // エンドユーザーID
-  private_money_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // マネーID
-  amount: 984, // 支払い額
-  products: [{"jan_code":"abc",
+```PYTHON
+response = client.send(pp.CreatePaymentTransaction(
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",               # shop_id: 店舗ID
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",               # customer_id: エンドユーザーID
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",               # private_money_id: マネーID
+                          3416,                                                 # amount: 支払い額
+                          description="たい焼き(小倉)",                               # 取引履歴に表示する説明文
+                          metadata="{\"key\":\"value\"}",                       # 取引メタデータ
+                          products=[{"jan_code":"abc",
+ "name":"name1",
+ "unit_price":100,
+ "price": 100,
+ "quantity": 1,
+ "is_discounted": False,
+ "other":"{}"}, {"jan_code":"abc",
+ "name":"name1",
+ "unit_price":100,
+ "price": 100,
+ "quantity": 1,
+ "is_discounted": False,
+ "other":"{}"}, {"jan_code":"abc",
  "name":"name1",
  "unit_price":100,
  "price": 100,
  "quantity": 1,
- "is_discounted": false,
- "other":"{}"}], // 商品情報データ
-  description: "たい焼き(小倉)", // 取引履歴に表示する説明文
-  metadata: "{\"key\":\"value\"}", // 取引メタデータ
-  request_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" // リクエストID
-}));
+ "is_discounted": False,
+ "other":"{}"}],                                                                # 商品情報データ
+                          request_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",    # リクエストID
+                          strategy="point-preferred",                           # 支払い時の残高消費方式
+                          coupon_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"      # クーポンID
+))
 ```
 
 
 
 ### Parameters
-**`shop_id`** 
-  
-
+#### `shop_id`
 店舗IDです。
 
 送金先の店舗を指定します。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -998,13 +1581,16 @@ const response: Response<TransactionDetail> = await client.send(new CreatePaymen
 }
 ```
 
-**`customer_id`** 
-  
+</details>
 
+#### `customer_id`
 エンドユーザーIDです。
 
 送金元のエンドユーザーを指定します。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -1012,13 +1598,16 @@ const response: Response<TransactionDetail> = await client.send(new CreatePaymen
 }
 ```
 
-**`private_money_id`** 
-  
+</details>
 
+#### `private_money_id`
 マネーIDです。
 
 マネーを指定します。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -1026,13 +1615,16 @@ const response: Response<TransactionDetail> = await client.send(new CreatePaymen
 }
 ```
 
-**`amount`** 
-  
+</details>
 
+#### `amount`
 マネー額です。
 
 送金するマネー額を指定します。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "integer",
@@ -1040,13 +1632,16 @@ const response: Response<TransactionDetail> = await client.send(new CreatePaymen
 }
 ```
 
-**`description`** 
-  
+</details>
 
+#### `description`
 取引説明文です。
 
 任意入力で、取引履歴に表示される説明文です。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -1054,13 +1649,16 @@ const response: Response<TransactionDetail> = await client.send(new CreatePaymen
 }
 ```
 
-**`metadata`** 
-  
+</details>
 
+#### `metadata`
 取引作成時に指定されるメタデータです。
 
 任意入力で、全てのkeyとvalueが文字列であるようなフラットな構造のJSON文字列で指定します。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -1068,9 +1666,9 @@ const response: Response<TransactionDetail> = await client.send(new CreatePaymen
 }
 ```
 
-**`products`** 
-  
+</details>
 
+#### `products`
 一つの取引に含まれる商品情報データです。
 以下の内容からなるJSONオブジェクトの配列で指定します。
 
@@ -1082,6 +1680,9 @@ const response: Response<TransactionDetail> = await client.send(new CreatePaymen
 - `is_discounted`: 賞味期限が近いなどの理由で商品が値引きされているかどうかのフラグ。boolean
 - `other`: その他商品に関する情報。JSONオブジェクトで指定します。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "array",
@@ -1091,14 +1692,57 @@ const response: Response<TransactionDetail> = await client.send(new CreatePaymen
 }
 ```
 
-**`request_id`** 
-  
+</details>
 
+#### `request_id`
 取引作成APIの羃等性を担保するためのリクエスト固有のIDです。
 
 取引作成APIで結果が受け取れなかったなどの理由で再試行する際に、二重に取引が作られてしまうことを防ぐために、クライアント側から指定されます。指定は任意で、UUID V4フォーマットでランダム生成した文字列です。リクエストIDは一定期間で削除されます。
 
 リクエストIDを指定したとき、まだそのリクエストIDに対する取引がない場合、新規に取引が作られレスポンスとして返されます。もしそのリクエストIDに対する取引が既にある場合、既存の取引がレスポンスとして返されます。
+既に存在する、別のユーザによる取引とリクエストIDが衝突した場合、request_id_conflictが返ります。
+
+<details>
+<summary>スキーマ</summary>
+
+```json
+{
+  "type": "string",
+  "format": "uuid"
+}
+```
+
+</details>
+
+#### `strategy`
+支払い時に残高がどのように消費されるかを指定します。
+デフォルトでは point-preferred (ポイント優先)が採用されます。
+
+- point-preferred: ポイント残高が優先的に消費され、ポイントがなくなり次第マネー残高から消費されていきます(デフォルト動作)
+- money-only: マネー残高のみから消費され、ポイント残高は使われません
+
+マネー設定でポイント残高のみの利用に設定されている場合(display_money_and_point が point-only の場合)、 strategy の指定に関わらずポイント優先になります。
+
+<details>
+<summary>スキーマ</summary>
+
+```json
+{
+  "type": "string",
+  "enum": [
+    "point-preferred",
+    "money-only"
+  ]
+}
+```
+
+</details>
+
+#### `coupon_id`
+支払いに対して適用するクーポンのIDを指定します。
+
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -1107,6 +1751,8 @@ const response: Response<TransactionDetail> = await client.send(new CreatePaymen
 }
 ```
 
+</details>
+
 
 
 成功したときは
@@ -1116,11 +1762,15 @@ const response: Response<TransactionDetail> = await client.send(new CreatePaymen
 ### Error Responses
 |status|type|ja|en|
 |---|---|---|---|
-|400|invalid_parameters|項目が無効です|Invalid parameters|
 |403|unpermitted_admin_user|この管理ユーザには権限がありません|Admin does not have permission|
-|410|transaction_canceled|取引がキャンセルされました|Transaction was canceled|
-|422|invalid_metadata|メタデータの形式が不正です|Invalid metadata format|
+|422|coupon_not_found|クーポンが見つかりませんでした。|The coupon is not found.|
+|422|credit_session_money_topup_requires_credit_card|オーソリチャージ用マネーではクレジットカードによるチャージのみ許可されています|Credit card is required for topup on credit-session enabled money|
+|422|cannot_topup_during_cvs_authorization_pending|コンビニ決済の予約中はチャージできません|You cannot topup your account while a convenience store payment is pending.|
+|422|credit_session_not_found|オーソリセッションが見つかりません|Credit session not found|
+|422|not_applicable_transaction_type_for_account_topup_quota|チャージ取引以外の取引種別ではチャージ可能枠を使用できません|Account topup quota is not applicable to transaction types other than topup.|
+|422|private_money_topup_quota_not_available|このマネーにはチャージ可能枠の設定がありません|Topup quota is not available with this private money.|
 |422|account_can_not_topup|この店舗からはチャージできません|account can not topup|
+|422|private_money_closed|このマネーは解約されています|This money was closed|
 |422|transaction_has_done|取引は完了しており、キャンセルすることはできません|Transaction has been copmpleted and cannot be canceled|
 |422|account_restricted|特定のアカウントの支払いに制限されています|The account is restricted to pay for a specific account|
 |422|account_balance_not_enough|口座残高が不足してます|The account balance is not enough|
@@ -1128,8 +1778,13 @@ const response: Response<TransactionDetail> = await client.send(new CreatePaymen
 |422|account_transfer_limit_exceeded|取引金額が上限を超えました|Too much amount to transfer|
 |422|account_balance_exceeded|口座残高が上限を超えました|The account balance exceeded the limit|
 |422|account_money_topup_transfer_limit_exceeded|マネーチャージ金額が上限を超えました|Too much amount to money topup transfer|
-|422|account_total_topup_limit_range|期間内での合計チャージ額上限に達しました|Entire period topup limit reached|
-|422|account_total_topup_limit_entire_period|全期間での合計チャージ額上限に達しました|Entire period topup limit reached|
+|422|account_topup_quota_not_splittable|このチャージ可能枠は設定された金額未満の金額には使用できません|This topup quota is only applicable to its designated money amount.|
+|422|topup_amount_exceeding_topup_quota_usable_amount|チャージ金額がチャージ可能枠の利用可能金額を超えています|Topup amount is exceeding the topup quota's usable amount|
+|422|account_topup_quota_inactive|指定されたチャージ可能枠は有効ではありません|Topup quota is inactive|
+|422|account_topup_quota_not_within_applicable_period|指定されたチャージ可能枠の利用可能期間外です|Topup quota is not applicable at this time|
+|422|account_topup_quota_not_found|ウォレットにチャージ可能枠がありません|Topup quota is not found with this account|
+|422|account_total_topup_limit_range|合計チャージ額がマネーで指定された期間内での上限を超えています|The topup exceeds the total amount within the period defined by the money.|
+|422|account_total_topup_limit_entire_period|合計チャージ額がマネーで指定された期間内での上限を超えています|The topup exceeds the total amount defined by the money.|
 |422|coupon_unavailable_shop|このクーポンはこの店舗では使用できません。|This coupon is unavailable for this shop.|
 |422|coupon_already_used|このクーポンは既に使用済みです。|This coupon is already used.|
 |422|coupon_not_received|このクーポンは受け取られていません。|This coupon is not received.|
@@ -1146,9 +1801,12 @@ const response: Response<TransactionDetail> = await client.send(new CreatePaymen
 |422|same_account_transaction|同じアカウントに送信しています|Sending to the same account|
 |422|transaction_invalid_done_at|取引完了日が無効です|Transaction completion date is invalid|
 |422|transaction_invalid_amount|取引金額が数値ではないか、受け入れられない桁数です|Transaction amount is not a number or cannot be accepted for this currency|
+|422|request_id_conflict|このリクエストIDは他の取引ですでに使用されています。お手数ですが、別のリクエストIDで最初からやり直してください。|The request_id is already used by another transaction. Try again with new request id|
+|422|reserved_word_can_not_specify_to_metadata|取引メタデータに予約語は指定出来ません|Reserved word can not specify to metadata|
+|422|invalid_metadata|メタデータの形式が不正です|Invalid metadata format|
 |422|customer_account_not_found||The customer account is not found|
-|422|shop_account_not_found||The shop account is not found|
-|422|private_money_not_found||Private money not found|
+|422|shop_account_not_found|店舗アカウントが見つかりません|The shop account is not found|
+|422|private_money_not_found|マネーが見つかりません|Private money not found|
 |503|temporarily_unavailable||Service Unavailable|
 
 
@@ -1161,47 +1819,48 @@ const response: Response<TransactionDetail> = await client.send(new CreatePaymen
 CPMトークンにより取引を作成します。
 CPMトークンに設定されたスコープの取引を作ることができます。
 
-
-```typescript
-const response: Response<TransactionDetail> = await client.send(new CreateCpmTransaction({
-  cpm_token: "TmEReE1YV9ebnUBpzD7d9D", // CPMトークン
-  shop_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // 店舗ID
-  amount: 8647.0, // 取引金額
-  products: [{"jan_code":"abc",
+```PYTHON
+response = client.send(pp.CreateCpmTransaction(
+                          "OiEYcNwwBKhoxCdqw8SDS6",                             # cpm_token: CPMトークン
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",               # shop_id: 店舗ID
+                          8780.0,                                               # amount: 取引金額
+                          description="たい焼き(小倉)",                               # 取引説明文
+                          metadata="{\"key\":\"value\"}",                       # 店舗側メタデータ
+                          products=[{"jan_code":"abc",
  "name":"name1",
  "unit_price":100,
  "price": 100,
  "quantity": 1,
- "is_discounted": false,
+ "is_discounted": False,
  "other":"{}"}, {"jan_code":"abc",
  "name":"name1",
  "unit_price":100,
  "price": 100,
  "quantity": 1,
- "is_discounted": false,
+ "is_discounted": False,
  "other":"{}"}, {"jan_code":"abc",
  "name":"name1",
  "unit_price":100,
  "price": 100,
  "quantity": 1,
- "is_discounted": false,
- "other":"{}"}], // 商品情報データ
-  description: "たい焼き(小倉)", // 取引説明文
-  metadata: "{\"key\":\"value\"}", // 店舗側メタデータ
-  request_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" // リクエストID
-}));
+ "is_discounted": False,
+ "other":"{}"}],                                                                # 商品情報データ
+                          request_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",    # リクエストID
+                          strategy="point-preferred"                            # 支払い時の残高消費方式
+))
 ```
 
 
 
 ### Parameters
-**`cpm_token`** 
-  
-
+#### `cpm_token`
 エンドユーザーによって作られ、アプリなどに表示され、店舗に対して提示される22桁の文字列です。
 
 エンドユーザーによって許可された取引のスコープを持っています。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -1210,13 +1869,16 @@ const response: Response<TransactionDetail> = await client.send(new CreateCpmTra
 }
 ```
 
-**`shop_id`** 
-  
+</details>
 
+#### `shop_id`
 店舗IDです。
 
 支払いやチャージを行う店舗を指定します。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -1224,26 +1886,32 @@ const response: Response<TransactionDetail> = await client.send(new CreateCpmTra
 }
 ```
 
-**`amount`** 
-  
+</details>
 
+#### `amount`
 取引金額を指定します。
 
 正の値を与えるとチャージになり、負の値を与えると支払いとなります。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "number"
 }
 ```
 
-**`description`** 
-  
+</details>
 
+#### `description`
 取引説明文です。
 
 エンドユーザーアプリの取引履歴などに表示されます。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -1251,13 +1919,16 @@ const response: Response<TransactionDetail> = await client.send(new CreateCpmTra
 }
 ```
 
-**`metadata`** 
-  
+</details>
 
+#### `metadata`
 取引作成時に店舗側から指定されるメタデータです。
 
 任意入力で、全てのkeyとvalueが文字列であるようなフラットな構造のJSON文字列で指定します。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -1265,9 +1936,9 @@ const response: Response<TransactionDetail> = await client.send(new CreateCpmTra
 }
 ```
 
-**`products`** 
-  
+</details>
 
+#### `products`
 一つの取引に含まれる商品情報データです。
 以下の内容からなるJSONオブジェクトの配列で指定します。
 
@@ -1279,6 +1950,9 @@ const response: Response<TransactionDetail> = await client.send(new CreateCpmTra
 - `is_discounted`: 賞味期限が近いなどの理由で商品が値引きされているかどうかのフラグ。boolean
 - `other`: その他商品に関する情報。JSONオブジェクトで指定します。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "array",
@@ -1288,14 +1962,18 @@ const response: Response<TransactionDetail> = await client.send(new CreateCpmTra
 }
 ```
 
-**`request_id`** 
-  
+</details>
 
+#### `request_id`
 取引作成APIの羃等性を担保するためのリクエスト固有のIDです。
 
 取引作成APIで結果が受け取れなかったなどの理由で再試行する際に、二重に取引が作られてしまうことを防ぐために、クライアント側から指定されます。指定は任意で、UUID V4フォーマットでランダム生成した文字列です。リクエストIDは一定期間で削除されます。
 
 リクエストIDを指定したとき、まだそのリクエストIDに対する取引がない場合、新規に取引が作られレスポンスとして返されます。もしそのリクエストIDに対する取引が既にある場合、既存の取引がレスポンスとして返されます。
+既に存在する、別のユーザによる取引とリクエストIDが衝突した場合、request_id_conflictが返ります。
+
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -1304,6 +1982,31 @@ const response: Response<TransactionDetail> = await client.send(new CreateCpmTra
 }
 ```
 
+</details>
+
+#### `strategy`
+支払い時に残高がどのように消費されるかを指定します。
+エンドユーザーがCPMトークン作成時に指定した残高消費方式と一致するか、どちらか一方のみが指定されている必要があります。
+両方が指定されていて値が異なる場合、cpm_token_strategy_conflictが返ります。
+
+- point-preferred: ポイント残高が優先的に消費され、ポイントがなくなり次第マネー残高から消費されていきます
+- money-only: マネー残高のみから消費され、ポイント残高は使われません
+
+<details>
+<summary>スキーマ</summary>
+
+```json
+{
+  "type": "string",
+  "enum": [
+    "point-preferred",
+    "money-only"
+  ]
+}
+```
+
+</details>
+
 
 
 成功したときは
@@ -1313,17 +2016,22 @@ const response: Response<TransactionDetail> = await client.send(new CreateCpmTra
 ### Error Responses
 |status|type|ja|en|
 |---|---|---|---|
-|400|invalid_parameters|項目が無効です|Invalid parameters|
 |403|cpm_unacceptable_amount|このCPMトークンに対して許可されていない金額です。|The amount is unacceptable for the CPM token|
 |403|unpermitted_admin_user|この管理ユーザには権限がありません|Admin does not have permission|
-|410|transaction_canceled|取引がキャンセルされました|Transaction was canceled|
 |422|shop_user_not_found|店舗が見つかりません|The shop user is not found|
-|422|private_money_not_found||Private money not found|
+|422|private_money_not_found|マネーが見つかりません|Private money not found|
+|422|cpm_token_strategy_conflict|CPMトークンに設定された支払い方式と異なる支払い方式が指定されました。|The strategy conflicts with the one set in the CPM token|
 |422|cpm_token_already_proceed|このCPMトークンは既に処理されています。|The CPM token is already proceed|
 |422|cpm_token_already_expired|このCPMトークンは既に失効しています。|The CPM token is already expired|
 |422|cpm_token_not_found|CPMトークンが見つかりませんでした。|The CPM token is not found.|
-|422|invalid_metadata|メタデータの形式が不正です|Invalid metadata format|
+|422|coupon_not_found|クーポンが見つかりませんでした。|The coupon is not found.|
+|422|credit_session_money_topup_requires_credit_card|オーソリチャージ用マネーではクレジットカードによるチャージのみ許可されています|Credit card is required for topup on credit-session enabled money|
+|422|cannot_topup_during_cvs_authorization_pending|コンビニ決済の予約中はチャージできません|You cannot topup your account while a convenience store payment is pending.|
+|422|credit_session_not_found|オーソリセッションが見つかりません|Credit session not found|
+|422|not_applicable_transaction_type_for_account_topup_quota|チャージ取引以外の取引種別ではチャージ可能枠を使用できません|Account topup quota is not applicable to transaction types other than topup.|
+|422|private_money_topup_quota_not_available|このマネーにはチャージ可能枠の設定がありません|Topup quota is not available with this private money.|
 |422|account_can_not_topup|この店舗からはチャージできません|account can not topup|
+|422|private_money_closed|このマネーは解約されています|This money was closed|
 |422|transaction_has_done|取引は完了しており、キャンセルすることはできません|Transaction has been copmpleted and cannot be canceled|
 |422|account_restricted|特定のアカウントの支払いに制限されています|The account is restricted to pay for a specific account|
 |422|account_balance_not_enough|口座残高が不足してます|The account balance is not enough|
@@ -1331,8 +2039,13 @@ const response: Response<TransactionDetail> = await client.send(new CreateCpmTra
 |422|account_transfer_limit_exceeded|取引金額が上限を超えました|Too much amount to transfer|
 |422|account_balance_exceeded|口座残高が上限を超えました|The account balance exceeded the limit|
 |422|account_money_topup_transfer_limit_exceeded|マネーチャージ金額が上限を超えました|Too much amount to money topup transfer|
-|422|account_total_topup_limit_range|期間内での合計チャージ額上限に達しました|Entire period topup limit reached|
-|422|account_total_topup_limit_entire_period|全期間での合計チャージ額上限に達しました|Entire period topup limit reached|
+|422|account_topup_quota_not_splittable|このチャージ可能枠は設定された金額未満の金額には使用できません|This topup quota is only applicable to its designated money amount.|
+|422|topup_amount_exceeding_topup_quota_usable_amount|チャージ金額がチャージ可能枠の利用可能金額を超えています|Topup amount is exceeding the topup quota's usable amount|
+|422|account_topup_quota_inactive|指定されたチャージ可能枠は有効ではありません|Topup quota is inactive|
+|422|account_topup_quota_not_within_applicable_period|指定されたチャージ可能枠の利用可能期間外です|Topup quota is not applicable at this time|
+|422|account_topup_quota_not_found|ウォレットにチャージ可能枠がありません|Topup quota is not found with this account|
+|422|account_total_topup_limit_range|合計チャージ額がマネーで指定された期間内での上限を超えています|The topup exceeds the total amount within the period defined by the money.|
+|422|account_total_topup_limit_entire_period|合計チャージ額がマネーで指定された期間内での上限を超えています|The topup exceeds the total amount defined by the money.|
 |422|coupon_unavailable_shop|このクーポンはこの店舗では使用できません。|This coupon is unavailable for this shop.|
 |422|coupon_already_used|このクーポンは既に使用済みです。|This coupon is already used.|
 |422|coupon_not_received|このクーポンは受け取られていません。|This coupon is not received.|
@@ -1343,7 +2056,7 @@ const response: Response<TransactionDetail> = await client.send(new CreateCpmTra
 |422|account_suspended|アカウントは停止されています|The account is suspended|
 |422|account_closed|アカウントは退会しています|The account is closed|
 |422|customer_account_not_found||The customer account is not found|
-|422|shop_account_not_found||The shop account is not found|
+|422|shop_account_not_found|店舗アカウントが見つかりません|The shop account is not found|
 |422|account_currency_mismatch|アカウント間で通貨が異なっています|Currency mismatch between accounts|
 |422|account_pre_closed|アカウントは退会準備中です|The account is pre-closed|
 |422|account_not_accessible|アカウントにアクセスできません|The account is not accessible by this user|
@@ -1351,6 +2064,9 @@ const response: Response<TransactionDetail> = await client.send(new CreateCpmTra
 |422|same_account_transaction|同じアカウントに送信しています|Sending to the same account|
 |422|transaction_invalid_done_at|取引完了日が無効です|Transaction completion date is invalid|
 |422|transaction_invalid_amount|取引金額が数値ではないか、受け入れられない桁数です|Transaction amount is not a number or cannot be accepted for this currency|
+|422|request_id_conflict|このリクエストIDは他の取引ですでに使用されています。お手数ですが、別のリクエストIDで最初からやり直してください。|The request_id is already used by another transaction. Try again with new request id|
+|422|reserved_word_can_not_specify_to_metadata|取引メタデータに予約語は指定出来ません|Reserved word can not specify to metadata|
+|422|invalid_metadata|メタデータの形式が不正です|Invalid metadata format|
 |503|temporarily_unavailable||Service Unavailable|
 
 
@@ -1363,29 +2079,29 @@ const response: Response<TransactionDetail> = await client.send(new CreateCpmTra
 エンドユーザー間での送金取引(個人間送金)を作成します。
 個人間送金で送れるのはマネーのみで、ポイントを送ることはできません。送金元のマネー残高のうち、有効期限が最も遠いものから順に送金されます。
 
-
-```typescript
-const response: Response<TransactionDetail> = await client.send(new CreateTransferTransaction({
-  sender_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // 送金元ユーザーID
-  receiver_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // 受取ユーザーID
-  private_money_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // マネーID
-  amount: 3614.0, // 送金額
-  metadata: "{\"key\":\"value\"}", // 取引メタデータ
-  description: "たい焼き(小倉)", // 取引履歴に表示する説明文
-  request_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" // リクエストID
-}));
+```PYTHON
+response = client.send(pp.CreateTransferTransaction(
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",               # sender_id: 送金元ユーザーID
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",               # receiver_id: 受取ユーザーID
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",               # private_money_id: マネーID
+                          4150.0,                                               # amount: 送金額
+                          metadata="{\"key\":\"value\"}",                       # 取引メタデータ
+                          description="たい焼き(小倉)",                               # 取引履歴に表示する説明文
+                          request_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"     # リクエストID
+))
 ```
 
 
 
 ### Parameters
-**`sender_id`** 
-  
-
+#### `sender_id`
 エンドユーザーIDです。
 
 送金元のエンドユーザー(送り主)を指定します。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -1393,13 +2109,16 @@ const response: Response<TransactionDetail> = await client.send(new CreateTransf
 }
 ```
 
-**`receiver_id`** 
-  
+</details>
 
+#### `receiver_id`
 エンドユーザーIDです。
 
 送金先のエンドユーザー(受け取り人)を指定します。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -1407,13 +2126,16 @@ const response: Response<TransactionDetail> = await client.send(new CreateTransf
 }
 ```
 
-**`private_money_id`** 
-  
+</details>
 
+#### `private_money_id`
 マネーIDです。
 
 マネーを指定します。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -1421,13 +2143,16 @@ const response: Response<TransactionDetail> = await client.send(new CreateTransf
 }
 ```
 
-**`amount`** 
-  
+</details>
 
+#### `amount`
 マネー額です。
 
 送金するマネー額を指定します。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "number",
@@ -1435,13 +2160,16 @@ const response: Response<TransactionDetail> = await client.send(new CreateTransf
 }
 ```
 
-**`metadata`** 
-  
+</details>
 
+#### `metadata`
 取引作成時に指定されるメタデータです。
 
 任意入力で、全てのkeyとvalueが文字列であるようなフラットな構造のJSON文字列で指定します。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -1449,13 +2177,16 @@ const response: Response<TransactionDetail> = await client.send(new CreateTransf
 }
 ```
 
-**`description`** 
-  
+</details>
 
+#### `description`
 取引説明文です。
 
 任意入力で、取引履歴に表示される説明文です。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -1463,14 +2194,18 @@ const response: Response<TransactionDetail> = await client.send(new CreateTransf
 }
 ```
 
-**`request_id`** 
-  
+</details>
 
+#### `request_id`
 取引作成APIの羃等性を担保するためのリクエスト固有のIDです。
 
 取引作成APIで結果が受け取れなかったなどの理由で再試行する際に、二重に取引が作られてしまうことを防ぐために、クライアント側から指定されます。指定は任意で、UUID V4フォーマットでランダム生成した文字列です。リクエストIDは一定期間で削除されます。
 
 リクエストIDを指定したとき、まだそのリクエストIDに対する取引がない場合、新規に取引が作られレスポンスとして返されます。もしそのリクエストIDに対する取引が既にある場合、既存の取引がレスポンスとして返されます。
+既に存在する、別のユーザによる取引とリクエストIDが衝突した場合、request_id_conflictが返ります。
+
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -1479,6 +2214,8 @@ const response: Response<TransactionDetail> = await client.send(new CreateTransf
 }
 ```
 
+</details>
+
 
 
 成功したときは
@@ -1488,13 +2225,17 @@ const response: Response<TransactionDetail> = await client.send(new CreateTransf
 ### Error Responses
 |status|type|ja|en|
 |---|---|---|---|
-|400|invalid_parameters|項目が無効です|Invalid parameters|
 |403|unpermitted_admin_user|この管理ユーザには権限がありません|Admin does not have permission|
-|410|transaction_canceled|取引がキャンセルされました|Transaction was canceled|
 |422|customer_user_not_found||The customer user is not found|
-|422|private_money_not_found||Private money not found|
-|422|invalid_metadata|メタデータの形式が不正です|Invalid metadata format|
+|422|private_money_not_found|マネーが見つかりません|Private money not found|
+|422|coupon_not_found|クーポンが見つかりませんでした。|The coupon is not found.|
+|422|credit_session_money_topup_requires_credit_card|オーソリチャージ用マネーではクレジットカードによるチャージのみ許可されています|Credit card is required for topup on credit-session enabled money|
+|422|cannot_topup_during_cvs_authorization_pending|コンビニ決済の予約中はチャージできません|You cannot topup your account while a convenience store payment is pending.|
+|422|credit_session_not_found|オーソリセッションが見つかりません|Credit session not found|
+|422|not_applicable_transaction_type_for_account_topup_quota|チャージ取引以外の取引種別ではチャージ可能枠を使用できません|Account topup quota is not applicable to transaction types other than topup.|
+|422|private_money_topup_quota_not_available|このマネーにはチャージ可能枠の設定がありません|Topup quota is not available with this private money.|
 |422|account_can_not_topup|この店舗からはチャージできません|account can not topup|
+|422|private_money_closed|このマネーは解約されています|This money was closed|
 |422|transaction_has_done|取引は完了しており、キャンセルすることはできません|Transaction has been copmpleted and cannot be canceled|
 |422|account_restricted|特定のアカウントの支払いに制限されています|The account is restricted to pay for a specific account|
 |422|account_balance_not_enough|口座残高が不足してます|The account balance is not enough|
@@ -1502,8 +2243,13 @@ const response: Response<TransactionDetail> = await client.send(new CreateTransf
 |422|account_transfer_limit_exceeded|取引金額が上限を超えました|Too much amount to transfer|
 |422|account_balance_exceeded|口座残高が上限を超えました|The account balance exceeded the limit|
 |422|account_money_topup_transfer_limit_exceeded|マネーチャージ金額が上限を超えました|Too much amount to money topup transfer|
-|422|account_total_topup_limit_range|期間内での合計チャージ額上限に達しました|Entire period topup limit reached|
-|422|account_total_topup_limit_entire_period|全期間での合計チャージ額上限に達しました|Entire period topup limit reached|
+|422|account_topup_quota_not_splittable|このチャージ可能枠は設定された金額未満の金額には使用できません|This topup quota is only applicable to its designated money amount.|
+|422|topup_amount_exceeding_topup_quota_usable_amount|チャージ金額がチャージ可能枠の利用可能金額を超えています|Topup amount is exceeding the topup quota's usable amount|
+|422|account_topup_quota_inactive|指定されたチャージ可能枠は有効ではありません|Topup quota is inactive|
+|422|account_topup_quota_not_within_applicable_period|指定されたチャージ可能枠の利用可能期間外です|Topup quota is not applicable at this time|
+|422|account_topup_quota_not_found|ウォレットにチャージ可能枠がありません|Topup quota is not found with this account|
+|422|account_total_topup_limit_range|合計チャージ額がマネーで指定された期間内での上限を超えています|The topup exceeds the total amount within the period defined by the money.|
+|422|account_total_topup_limit_entire_period|合計チャージ額がマネーで指定された期間内での上限を超えています|The topup exceeds the total amount defined by the money.|
 |422|coupon_unavailable_shop|このクーポンはこの店舗では使用できません。|This coupon is unavailable for this shop.|
 |422|coupon_already_used|このクーポンは既に使用済みです。|This coupon is already used.|
 |422|coupon_not_received|このクーポンは受け取られていません。|This coupon is not received.|
@@ -1514,7 +2260,7 @@ const response: Response<TransactionDetail> = await client.send(new CreateTransf
 |422|account_suspended|アカウントは停止されています|The account is suspended|
 |422|account_closed|アカウントは退会しています|The account is closed|
 |422|customer_account_not_found||The customer account is not found|
-|422|shop_account_not_found||The shop account is not found|
+|422|shop_account_not_found|店舗アカウントが見つかりません|The shop account is not found|
 |422|account_currency_mismatch|アカウント間で通貨が異なっています|Currency mismatch between accounts|
 |422|account_pre_closed|アカウントは退会準備中です|The account is pre-closed|
 |422|account_not_accessible|アカウントにアクセスできません|The account is not accessible by this user|
@@ -1522,6 +2268,9 @@ const response: Response<TransactionDetail> = await client.send(new CreateTransf
 |422|same_account_transaction|同じアカウントに送信しています|Sending to the same account|
 |422|transaction_invalid_done_at|取引完了日が無効です|Transaction completion date is invalid|
 |422|transaction_invalid_amount|取引金額が数値ではないか、受け入れられない桁数です|Transaction amount is not a number or cannot be accepted for this currency|
+|422|request_id_conflict|このリクエストIDは他の取引ですでに使用されています。お手数ですが、別のリクエストIDで最初からやり直してください。|The request_id is already used by another transaction. Try again with new request id|
+|422|reserved_word_can_not_specify_to_metadata|取引メタデータに予約語は指定出来ません|Reserved word can not specify to metadata|
+|422|invalid_metadata|メタデータの形式が不正です|Invalid metadata format|
 |503|temporarily_unavailable||Service Unavailable|
 
 
@@ -1532,23 +2281,24 @@ const response: Response<TransactionDetail> = await client.send(new CreateTransf
 <a name="create-exchange-transaction"></a>
 ## CreateExchangeTransaction
 
-```typescript
-const response: Response<TransactionDetail> = await client.send(new CreateExchangeTransaction({
-  user_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
-  sender_private_money_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
-  receiver_private_money_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
-  amount: 1360,
-  description: "vPtZOQ7wRQgMzlEQYhb78oA0LE9nGzsoBIqSCZEncCQxjIhrUeBMFsGSoFMs14cvovqZ6GQpcxkL1iWim0Xpy9XRR4FHqayBd9Y6naDnCaj1IshUK5sOcLMoSdluvLDw0rIOalhSCHrt5J1YKxmhpIQaAHuF1XqBsQEc2YHzb0v51JNexx20BlobdlTY6n3",
-  request_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" // リクエストID
-}));
+```PYTHON
+response = client.send(pp.CreateExchangeTransaction(
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
+                          4080,
+                          description="Lm8HBuYz7E9ZuYBAHz0vH45u4SHdXpfYeqMtcfd8wxcygIW1kAzyAHjkW0eFslSf8NaBTyV6GBT8tDHI0zWcr0sMpkdiHOOwl5xIQiAP4",
+                          request_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"     # リクエストID
+))
 ```
 
 
 
 ### Parameters
-**`user_id`** 
-  
+#### `user_id`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -1557,9 +2307,12 @@ const response: Response<TransactionDetail> = await client.send(new CreateExchan
 }
 ```
 
-**`sender_private_money_id`** 
-  
+</details>
+
+#### `sender_private_money_id`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -1568,9 +2321,12 @@ const response: Response<TransactionDetail> = await client.send(new CreateExchan
 }
 ```
 
-**`receiver_private_money_id`** 
-  
+</details>
+
+#### `receiver_private_money_id`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -1579,9 +2335,12 @@ const response: Response<TransactionDetail> = await client.send(new CreateExchan
 }
 ```
 
-**`amount`** 
-  
+</details>
 
+#### `amount`
+
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -1590,9 +2349,12 @@ const response: Response<TransactionDetail> = await client.send(new CreateExchan
 }
 ```
 
-**`description`** 
-  
+</details>
+
+#### `description`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -1601,14 +2363,18 @@ const response: Response<TransactionDetail> = await client.send(new CreateExchan
 }
 ```
 
-**`request_id`** 
-  
+</details>
 
+#### `request_id`
 取引作成APIの羃等性を担保するためのリクエスト固有のIDです。
 
 取引作成APIで結果が受け取れなかったなどの理由で再試行する際に、二重に取引が作られてしまうことを防ぐために、クライアント側から指定されます。指定は任意で、UUID V4フォーマットでランダム生成した文字列です。リクエストIDは一定期間で削除されます。
 
 リクエストIDを指定したとき、まだそのリクエストIDに対する取引がない場合、新規に取引が作られレスポンスとして返されます。もしそのリクエストIDに対する取引が既にある場合、既存の取引がレスポンスとして返されます。
+既に存在する、別のユーザによる取引とリクエストIDが衝突した場合、request_id_conflictが返ります。
+
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -1617,6 +2383,8 @@ const response: Response<TransactionDetail> = await client.send(new CreateExchan
 }
 ```
 
+</details>
+
 
 
 成功したときは
@@ -1626,17 +2394,21 @@ const response: Response<TransactionDetail> = await client.send(new CreateExchan
 ### Error Responses
 |status|type|ja|en|
 |---|---|---|---|
-|400|invalid_parameters|項目が無効です|Invalid parameters|
-|410|transaction_canceled|取引がキャンセルされました|Transaction was canceled|
 |422|account_not_found|アカウントが見つかりません|The account is not found|
 |422|transaction_restricted||Transaction is not allowed|
 |422|can_not_exchange_between_same_private_money|同じマネーとの交換はできません||
 |422|can_not_exchange_between_users|異なるユーザー間での交換は出来ません||
+|422|credit_session_money_topup_requires_credit_card|オーソリチャージ用マネーではクレジットカードによるチャージのみ許可されています|Credit card is required for topup on credit-session enabled money|
+|422|cannot_topup_during_cvs_authorization_pending|コンビニ決済の予約中はチャージできません|You cannot topup your account while a convenience store payment is pending.|
+|422|credit_session_not_found|オーソリセッションが見つかりません|Credit session not found|
+|422|not_applicable_transaction_type_for_account_topup_quota|チャージ取引以外の取引種別ではチャージ可能枠を使用できません|Account topup quota is not applicable to transaction types other than topup.|
+|422|private_money_topup_quota_not_available|このマネーにはチャージ可能枠の設定がありません|Topup quota is not available with this private money.|
 |422|account_can_not_topup|この店舗からはチャージできません|account can not topup|
 |422|account_currency_mismatch|アカウント間で通貨が異なっています|Currency mismatch between accounts|
 |422|account_not_accessible|アカウントにアクセスできません|The account is not accessible by this user|
 |422|terminal_is_invalidated|端末は無効化されています|The terminal is already invalidated|
 |422|same_account_transaction|同じアカウントに送信しています|Sending to the same account|
+|422|private_money_closed|このマネーは解約されています|This money was closed|
 |422|transaction_has_done|取引は完了しており、キャンセルすることはできません|Transaction has been copmpleted and cannot be canceled|
 |422|transaction_invalid_done_at|取引完了日が無効です|Transaction completion date is invalid|
 |422|transaction_invalid_amount|取引金額が数値ではないか、受け入れられない桁数です|Transaction amount is not a number or cannot be accepted for this currency|
@@ -1646,8 +2418,14 @@ const response: Response<TransactionDetail> = await client.send(new CreateExchan
 |422|account_transfer_limit_exceeded|取引金額が上限を超えました|Too much amount to transfer|
 |422|account_balance_exceeded|口座残高が上限を超えました|The account balance exceeded the limit|
 |422|account_money_topup_transfer_limit_exceeded|マネーチャージ金額が上限を超えました|Too much amount to money topup transfer|
-|422|account_total_topup_limit_range|期間内での合計チャージ額上限に達しました|Entire period topup limit reached|
-|422|account_total_topup_limit_entire_period|全期間での合計チャージ額上限に達しました|Entire period topup limit reached|
+|422|reserved_word_can_not_specify_to_metadata|取引メタデータに予約語は指定出来ません|Reserved word can not specify to metadata|
+|422|account_topup_quota_not_splittable|このチャージ可能枠は設定された金額未満の金額には使用できません|This topup quota is only applicable to its designated money amount.|
+|422|topup_amount_exceeding_topup_quota_usable_amount|チャージ金額がチャージ可能枠の利用可能金額を超えています|Topup amount is exceeding the topup quota's usable amount|
+|422|account_topup_quota_inactive|指定されたチャージ可能枠は有効ではありません|Topup quota is inactive|
+|422|account_topup_quota_not_within_applicable_period|指定されたチャージ可能枠の利用可能期間外です|Topup quota is not applicable at this time|
+|422|account_topup_quota_not_found|ウォレットにチャージ可能枠がありません|Topup quota is not found with this account|
+|422|account_total_topup_limit_range|合計チャージ額がマネーで指定された期間内での上限を超えています|The topup exceeds the total amount within the period defined by the money.|
+|422|account_total_topup_limit_entire_period|合計チャージ額がマネーで指定された期間内での上限を超えています|The topup exceeds the total amount defined by the money.|
 |422|coupon_unavailable_shop|このクーポンはこの店舗では使用できません。|This coupon is unavailable for this shop.|
 |422|coupon_already_used|このクーポンは既に使用済みです。|This coupon is already used.|
 |422|coupon_not_received|このクーポンは受け取られていません。|This coupon is not received.|
@@ -1658,6 +2436,7 @@ const response: Response<TransactionDetail> = await client.send(new CreateExchan
 |422|account_suspended|アカウントは停止されています|The account is suspended|
 |422|account_pre_closed|アカウントは退会準備中です|The account is pre-closed|
 |422|account_closed|アカウントは退会しています|The account is closed|
+|422|request_id_conflict|このリクエストIDは他の取引ですでに使用されています。お手数ですが、別のリクエストIDで最初からやり直してください。|The request_id is already used by another transaction. Try again with new request id|
 |503|temporarily_unavailable||Service Unavailable|
 
 
@@ -1669,22 +2448,23 @@ const response: Response<TransactionDetail> = await client.send(new CreateExchan
 ## GetTransaction: 取引情報を取得する
 取引を取得します。
 
-```typescript
-const response: Response<TransactionDetail> = await client.send(new GetTransaction({
-  transaction_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" // 取引ID
-}));
+```PYTHON
+response = client.send(pp.GetTransaction(
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"                # transaction_id: 取引ID
+))
 ```
 
 
 
 ### Parameters
-**`transaction_id`** 
-  
-
+#### `transaction_id`
 取引IDです。
 
 フィルターとして使われ、指定した取引IDの取引を取得します。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -1692,6 +2472,8 @@ const response: Response<TransactionDetail> = await client.send(new GetTransacti
 }
 ```
 
+</details>
+
 
 
 成功したときは
@@ -1713,20 +2495,21 @@ const response: Response<TransactionDetail> = await client.send(new GetTransacti
 チャージ取引のキャンセル時に返金すべき残高が足りないときは `account_balance_not_enough (422)` エラーが返ります。
 取引をキャンセルできるのは1回きりです。既にキャンセルされた取引を重ねてキャンセルしようとすると `transaction_already_refunded (422)` エラーが返ります。
 
-```typescript
-const response: Response<TransactionDetail> = await client.send(new RefundTransaction({
-  transaction_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // 取引ID
-  description: "返品対応のため", // 取引履歴に表示する返金事由
-  returning_point_expires_at: "2021-03-07T17:35:30.000000Z" // 返却ポイントの有効期限
-}));
+```PYTHON
+response = client.send(pp.RefundTransaction(
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",               # transaction_id: 取引ID
+                          description="返品対応のため",                                # 取引履歴に表示する返金事由
+                          returning_point_expires_at="2020-10-26T03:07:54.000000Z" # 返却ポイントの有効期限
+))
 ```
 
 
 
 ### Parameters
-**`transaction_id`** 
-  
+#### `transaction_id`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -1735,9 +2518,12 @@ const response: Response<TransactionDetail> = await client.send(new RefundTransa
 }
 ```
 
-**`description`** 
-  
+</details>
 
+#### `description`
+
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -1746,11 +2532,14 @@ const response: Response<TransactionDetail> = await client.send(new RefundTransa
 }
 ```
 
-**`returning_point_expires_at`** 
-  
+</details>
 
+#### `returning_point_expires_at`
 ポイント支払いを含む支払い取引をキャンセルする際にユーザへ返却されるポイントの有効期限です。デフォルトでは未指定です。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -1758,6 +2547,8 @@ const response: Response<TransactionDetail> = await client.send(new RefundTransa
 }
 ```
 
+</details>
+
 
 
 成功したときは
@@ -1773,22 +2564,23 @@ const response: Response<TransactionDetail> = await client.send(new RefundTransa
 ## GetTransactionByRequestId: リクエストIDから取引情報を取得する
 取引を取得します。
 
-```typescript
-const response: Response<TransactionDetail> = await client.send(new GetTransactionByRequestId({
-  request_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" // リクエストID
-}));
+```PYTHON
+response = client.send(pp.GetTransactionByRequestId(
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"                # request_id: リクエストID
+))
 ```
 
 
 
 ### Parameters
-**`request_id`** 
-  
-
+#### `request_id`
 取引作成時にクライアントが生成し指定するリクエストIDです。
 
 リクエストIDに対応する取引が存在すればその取引を返し、無ければNotFound(404)を返します。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -1796,6 +2588,8 @@ const response: Response<TransactionDetail> = await client.send(new GetTransacti
 }
 ```
 
+</details>
+
 
 
 成功したときは
@@ -1810,21 +2604,22 @@ const response: Response<TransactionDetail> = await client.send(new GetTransacti
 <a name="get-bulk-transaction"></a>
 ## GetBulkTransaction: バルク取引ジョブの実行状況を取得する
 
-```typescript
-const response: Response<BulkTransaction> = await client.send(new GetBulkTransaction({
-  bulk_transaction_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" // バルク取引ジョブID
-}));
+```PYTHON
+response = client.send(pp.GetBulkTransaction(
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"                # bulk_transaction_id: バルク取引ジョブID
+))
 ```
 
 
 
 ### Parameters
-**`bulk_transaction_id`** 
-  
-
+#### `bulk_transaction_id`
 バルク取引ジョブIDです。
 バルク取引ジョブ登録時にレスポンスに含まれます。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -1832,6 +2627,8 @@ const response: Response<BulkTransaction> = await client.send(new GetBulkTransac
 }
 ```
 
+</details>
+
 
 
 成功したときは
@@ -1846,23 +2643,24 @@ const response: Response<BulkTransaction> = await client.send(new GetBulkTransac
 <a name="list-bulk-transaction-jobs"></a>
 ## ListBulkTransactionJobs: バルク取引ジョブの詳細情報一覧を取得する
 
-```typescript
-const response: Response<PaginatedBulkTransactionJob> = await client.send(new ListBulkTransactionJobs({
-  bulk_transaction_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // バルク取引ジョブID
-  page: 1, // ページ番号
-  per_page: 50 // 1ページ分の取得数
-}));
+```PYTHON
+response = client.send(pp.ListBulkTransactionJobs(
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",               # bulk_transaction_id: バルク取引ジョブID
+                          page=1,                                               # ページ番号
+                          per_page=50                                           # 1ページ分の取得数
+))
 ```
 
 
 
 ### Parameters
-**`bulk_transaction_id`** 
-  
-
+#### `bulk_transaction_id`
 バルク取引ジョブIDです。
 バルク取引ジョブ登録時にレスポンスに含まれます。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -1870,11 +2668,14 @@ const response: Response<PaginatedBulkTransactionJob> = await client.send(new Li
 }
 ```
 
-**`page`** 
-  
+</details>
 
+#### `page`
 取得したいページ番号です。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "integer",
@@ -1882,11 +2683,14 @@ const response: Response<PaginatedBulkTransactionJob> = await client.send(new Li
 }
 ```
 
-**`per_page`** 
-  
+</details>
 
+#### `per_page`
 1ページ分の取得数です。デフォルトでは 50 になっています。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "integer",
@@ -1894,6 +2698,8 @@ const response: Response<PaginatedBulkTransactionJob> = await client.send(new Li
 }
 ```
 
+</details>
+
 
 
 成功したときは
@@ -1924,22 +2730,23 @@ CSVの作成は非同期で行われるため完了まで少しの間待つ必
 
 また、指定期間より前の決済を時間をおいてキャンセルした場合などには payment_money_amount, payment_point_amount, payment_transaction_count が負の値になることもあることに留意してください。
 
-```typescript
-const response: Response<UserStatsOperation> = await client.send(new RequestUserStats({
-  from: "2022-05-20T17:56:49.000000+09:00", // 集計期間の開始時刻
-  to: "2023-12-10T01:16:11.000000+09:00" // 集計期間の終了時刻
-}));
+```PYTHON
+response = client.send(pp.RequestUserStats(
+                          "2022-05-20T17:56:49.000000+09:00",                   # from: 集計期間の開始時刻
+                          "2023-12-10T01:16:11.000000+09:00"                    # to: 集計期間の終了時刻
+))
 ```
 
 
 
 ### Parameters
-**`from`** 
-  
-
+#### `from`
 集計する期間の開始時刻をISO8601形式で指定します。
 時刻は現在時刻、及び `to` で指定する時刻以前である必要があります。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -1947,12 +2754,15 @@ const response: Response<UserStatsOperation> = await client.send(new RequestUser
 }
 ```
 
-**`to`** 
-  
+</details>
 
+#### `to`
 集計する期間の終了時刻をISO8601形式で指定します。
 時刻は現在時刻、及び `from` で指定する時刻の間である必要があります。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -1960,6 +2770,8 @@ const response: Response<UserStatsOperation> = await client.send(new RequestUser
 }
 ```
 
+</details>
+
 
 
 成功したときは
@@ -1973,7 +2785,61 @@ const response: Response<UserStatsOperation> = await client.send(new RequestUser
 |403|unpermitted_admin_user|この管理ユーザには権限がありません|Admin does not have permission|
 |422|invalid_promotional_operation_user|ユーザーの指定に不正な値が含まれています|Invalid user data is specified|
 |422|invalid_promotional_operation_status|不正な処理ステータスです|Invalid operation status is specified|
-|503|user_stats_operation_service_unavailable|一時的にユーザー統計サービスが利用不能です|User stats service is temporarily unavailable|
+
+
+
+---
+
+
+<a name="terminate-user-stats"></a>
+## TerminateUserStats: RequestUserStatsのタスクを強制終了する
+RequestUserStatsによるファイル生成のタスクを強制終了するためのAPIです。
+RequestUserStatsのレスポンス中の `operation_id` をキーにして強制終了リクエストを送ります。
+既に集計タスクが終了している場合は何も行いません。
+発行体に対して結果通知用のWebhook URLが設定されている場合、強制終了成功時には以下のような内容のPOSTリクエストが送られます。
+
+- task: "process_user_stats_operation"
+- operation_id: 強制終了対象のタスクID
+- status: "terminated"
+
+```PYTHON
+response = client.send(pp.TerminateUserStats(
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"                # operation_id: 集計タスクID
+))
+```
+
+
+
+### Parameters
+#### `operation_id`
+強制終了対象の集計タスクIDです。
+必須パラメータであり、指定されたタスクIDが存在しない場合は `user_stats_operation_not_found`エラー(422)が返ります。
+
+<details>
+<summary>スキーマ</summary>
+
+```json
+{
+  "type": "string",
+  "format": "uuid"
+}
+```
+
+</details>
+
+
+
+成功したときは
+[UserStatsOperation](./responses.md#user-stats-operation)
+を返します
+
+### Error Responses
+|status|type|ja|en|
+|---|---|---|---|
+|403|unpermitted_admin_user|この管理ユーザには権限がありません|Admin does not have permission|
+|422|user_stats_operation_already_done|指定されたIDの集計処理タスクは既に完了しています|The specified user stats operation is already done|
+|422|user_stats_operation_not_found|指定されたIDの集計処理タスクが見つかりません|User stats task not found for the operation ID|
+|503|temporarily_unavailable||Service Unavailable|
 
 
 
diff --git a/docs/transfer.md b/docs/transfer.md
index 9e8815e..788730f 100644
--- a/docs/transfer.md
+++ b/docs/transfer.md
@@ -1,28 +1,35 @@
 # Transfer
+送金取引明細を表すデータです。
+マネー(Private Money)のウォレット間の送金記録を取得します。
+取引(Transaction)は複数の送金明細(Transfer)で構成されています。
+送金明細には送金元・送金先のアカウント情報、マネー額、ポイント額などが含まれます。
+取引種別として、payment, topup, campaign-topup, transfer, exchange, refund-payment, refund-topup, cashback, expire等があります。
+
 
 <a name="get-account-transfer-summary"></a>
 ## GetAccountTransferSummary: 
 ウォレットを指定して取引明細種別毎の集計を返す
 
-```typescript
-const response: Response<AccountTransferSummary> = await client.send(new GetAccountTransferSummary({
-  account_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // ウォレットID
-  from: "2023-04-22T08:46:24.000000Z", // 集計期間の開始時刻
-  to: "2020-09-13T23:17:15.000000Z", // 集計期間の終了時刻
-  transfer_types: ["topup", "payment"] // 取引明細種別 (複数指定可)
-}));
+```PYTHON
+response = client.send(pp.GetAccountTransferSummary(
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",               # account_id: ウォレットID
+                          start="2020-08-31T08:50:29.000000Z",                  # 集計期間の開始時刻
+                          to="2026-06-05T02:52:32.000000Z",                     # 集計期間の終了時刻
+                          transfer_types=["topup", "payment"]                   # 取引明細種別 (複数指定可)
+))
 ```
 
 
 
 ### Parameters
-**`account_id`** 
-  
-
+#### `account_id`
 ウォレットIDです。
 
 ここで指定したウォレットIDの取引明細レベルでの集計を取得します。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -30,9 +37,12 @@ const response: Response<AccountTransferSummary> = await client.send(new GetAcco
 }
 ```
 
-**`from`** 
-  
+</details>
 
+#### `from`
+
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -41,9 +51,12 @@ const response: Response<AccountTransferSummary> = await client.send(new GetAcco
 }
 ```
 
-**`to`** 
-  
+</details>
+
+#### `to`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -52,9 +65,9 @@ const response: Response<AccountTransferSummary> = await client.send(new GetAcco
 }
 ```
 
-**`transfer_types`** 
-  
+</details>
 
+#### `transfer_types`
 取引明細の種別でフィルターします。
 以下の種別を指定できます。
 
@@ -83,6 +96,9 @@ const response: Response<AccountTransferSummary> = await client.send(new GetAcco
 - refund-exchange-outflow
   交換による他マネーへの流出取引に対するキャンセル取引
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "array",
@@ -106,6 +122,8 @@ const response: Response<AccountTransferSummary> = await client.send(new GetAcco
 }
 ```
 
+</details>
+
 
 
 成功したときは
@@ -120,31 +138,32 @@ const response: Response<AccountTransferSummary> = await client.send(new GetAcco
 <a name="list-transfers"></a>
 ## ListTransfers
 
-```typescript
-const response: Response<PaginatedTransfers> = await client.send(new ListTransfers({
-  from: "2023-11-06T15:31:02.000000Z",
-  to: "2023-04-27T15:13:46.000000Z",
-  page: 2519,
-  per_page: 2166,
-  shop_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
-  shop_name: "m4rhE7PkEzPYVXfzwtjxI8n9Z0CQKMUdsLKbKLcaV6nH18WcZidvZ",
-  customer_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
-  customer_name: "55mAgOE16AnmYbzCLHYWconVaiJFwoOHJhs1D1kk2Z65xpUZ28FCmVx3QLXn5K0ujHfTEebumDwnUvtTuwE1P6w3jvuc6WVynWZlMwTGtLKHNv0GHMA8YNVctqn0HylBEaWFtKmGqTMRGGhLK4md8CvDRXJmyMUq3nONdNUldEz",
-  transaction_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
-  private_money_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
-  is_modified: false,
-  transaction_types: ["transfer", "exchange", "payment", "expire", "topup"],
-  transfer_types: ["exchange", "expire", "topup", "payment", "coupon"], // 取引明細の種類でフィルターします。
-  description: "店頭QRコードによる支払い" // 取引詳細説明文
-}));
+```PYTHON
+response = client.send(pp.ListTransfers(
+                          start="2024-11-18T08:24:13.000000Z",
+                          to="2023-02-26T03:56:51.000000Z",
+                          page=3943,
+                          per_page=7335,
+                          shop_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
+                          shop_name="uFUQK5yc0JqyEbk4xV1ElwOVpwOgCs3REJLXlOpH9qH3TntlxmPSv0sqeMHVeJGZnQaE4lp3S7TMyfZKpPybiZ1Lwce18e7Eq5OqWuTabdRaaHOyfGqVUncXzhjskeGyZxmbEy050Zlv3tzVr8aTPDqMKbxS0Vs3OlIrdnx7rU9Fte9Z",
+                          customer_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
+                          customer_name="59oBy13mtel3d8TfJ3Ol39ScasZnA58jo0hnztlMdM7BVfn4iFYyJJXfrDUn2Z5dTBMhYMOaLFSQqsldJHk3l4cpZ7fJl29A3O6y0fQnXOgwkIth5yMWiTVYzb9YasuIp7v4EzACicWq4Ul0bBBFnJwjrPufrwL5Z4qM5cyeftMbZhJuNsCdqVbAgL",
+                          transaction_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
+                          private_money_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
+                          is_modified=True,
+                          transaction_types=["payment", "cashback", "transfer", "topup", "exchange", "expire"],
+                          transfer_types=["exchange", "campaign", "transfer", "topup"], # 取引明細の種類でフィルターします。
+                          description="店頭QRコードによる支払い"                           # 取引詳細説明文
+))
 ```
 
 
 
 ### Parameters
-**`from`** 
-  
+#### `from`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -153,9 +172,12 @@ const response: Response<PaginatedTransfers> = await client.send(new ListTransfe
 }
 ```
 
-**`to`** 
-  
+</details>
+
+#### `to`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -164,9 +186,12 @@ const response: Response<PaginatedTransfers> = await client.send(new ListTransfe
 }
 ```
 
-**`page`** 
-  
+</details>
 
+#### `page`
+
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -175,9 +200,12 @@ const response: Response<PaginatedTransfers> = await client.send(new ListTransfe
 }
 ```
 
-**`per_page`** 
-  
+</details>
+
+#### `per_page`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -186,9 +214,12 @@ const response: Response<PaginatedTransfers> = await client.send(new ListTransfe
 }
 ```
 
-**`shop_id`** 
-  
+</details>
 
+#### `shop_id`
+
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -197,9 +228,12 @@ const response: Response<PaginatedTransfers> = await client.send(new ListTransfe
 }
 ```
 
-**`shop_name`** 
-  
+</details>
+
+#### `shop_name`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -208,9 +242,12 @@ const response: Response<PaginatedTransfers> = await client.send(new ListTransfe
 }
 ```
 
-**`customer_id`** 
-  
+</details>
+
+#### `customer_id`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -219,9 +256,12 @@ const response: Response<PaginatedTransfers> = await client.send(new ListTransfe
 }
 ```
 
-**`customer_name`** 
-  
+</details>
 
+#### `customer_name`
+
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -230,9 +270,12 @@ const response: Response<PaginatedTransfers> = await client.send(new ListTransfe
 }
 ```
 
-**`transaction_id`** 
-  
+</details>
+
+#### `transaction_id`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -241,9 +284,12 @@ const response: Response<PaginatedTransfers> = await client.send(new ListTransfe
 }
 ```
 
-**`private_money_id`** 
-  
+</details>
 
+#### `private_money_id`
+
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -252,9 +298,12 @@ const response: Response<PaginatedTransfers> = await client.send(new ListTransfe
 }
 ```
 
-**`is_modified`** 
-  
+</details>
+
+#### `is_modified`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -262,9 +311,12 @@ const response: Response<PaginatedTransfers> = await client.send(new ListTransfe
 }
 ```
 
-**`transaction_types`** 
-  
+</details>
 
+#### `transaction_types`
+
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -283,9 +335,9 @@ const response: Response<PaginatedTransfers> = await client.send(new ListTransfe
 }
 ```
 
-**`transfer_types`** 
-  
+</details>
 
+#### `transfer_types`
 取引明細の種類でフィルターします。
 
 以下の種類を指定できます。
@@ -311,6 +363,9 @@ const response: Response<PaginatedTransfers> = await client.send(new ListTransfe
 7. expire
 退会時失効取引
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "array",
@@ -330,13 +385,16 @@ const response: Response<PaginatedTransfers> = await client.send(new ListTransfe
 }
 ```
 
-**`description`** 
-  
+</details>
 
+#### `description`
 取引詳細を指定の取引詳細説明文でフィルターします。
 
 取引詳細説明文が完全一致する取引のみ抽出されます。取引詳細説明文は最大200文字で記録されています。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -344,6 +402,8 @@ const response: Response<PaginatedTransfers> = await client.send(new ListTransfe
 }
 ```
 
+</details>
+
 
 
 成功したときは
@@ -354,6 +414,7 @@ const response: Response<PaginatedTransfers> = await client.send(new ListTransfe
 |status|type|ja|en|
 |---|---|---|---|
 |403|NULL|NULL|NULL|
+|503|temporarily_unavailable||Service Unavailable|
 
 
 
@@ -363,36 +424,37 @@ const response: Response<PaginatedTransfers> = await client.send(new ListTransfe
 <a name="list-transfers-v2"></a>
 ## ListTransfersV2
 
-```typescript
-const response: Response<PaginatedTransfersV2> = await client.send(new ListTransfersV2({
-  shop_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // 店舗ID
-  shop_name: "YwHPZ5GyoYYcgPPK3Dchqik562nQJ7JN9nEMDfH9ZULXMKOjFu2fGiShoySflnRPKvTH4Qb4HK1DE5zpHipftSBuuUyajKD4UG1MO97nrik73QyiaNKms0iFYGrWxxlKwOlCibtq2e0nqtXLNITG9Gffmmox8hwqx5x", // 店舗名
-  customer_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // エンドユーザーID
-  customer_name: "fQZGPMXFo6oIvZGxUJAAeHeUyg78eCpqwfbVaGI8MUg6pkTJeF4LA5VGWmlO55tLRhXfPthFrTbvP80JDs4TLAvvWwguBec41EmwzzFrgc709a7P9KtTHr3zG8NnPjRfIRrqy3FohrRiHbftN77E9sKP2LWTHQkvbYQTkmfSmGSFmTTeLGAy7h6m", // エンドユーザー名
-  transaction_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // 取引ID
-  private_money_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // マネーID
-  is_modified: true, // キャンセルフラグ
-  transaction_types: ["payment", "topup"], // 取引種別 (複数指定可)、チャージ=topup、支払い=payment
-  next_page_cursor_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // 次ページへ遷移する際に起点となるtransferのID
-  prev_page_cursor_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // 前ページへ遷移する際に起点となるtransferのID
-  per_page: 50, // 1ページ分の取引数
-  transfer_types: ["transfer"], // 取引明細種別 (複数指定可)
-  description: "店頭QRコードによる支払い", // 取引詳細説明文
-  from: "2021-03-13T08:53:43.000000Z", // 開始日時
-  to: "2023-03-05T13:08:25.000000Z" // 終了日時
-}));
+```PYTHON
+response = client.send(pp.ListTransfersV2(
+                          shop_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",       # 店舗ID
+                          shop_name="QVC38rMOaKHSf5htPpycWdWsbduWBxtfg1Kliu47KITpvwbo61t0xPHohZAfXS5WAq97VI0kJjyO9S00lRKqhRSKyv4aeUNiX5kIXisF2lvLdWFAH9CECfmZyvOgcw2bcIoYI3B409EBsOM5mHn7CA1SM3xNEFCgQheyCbSnP7P0SqnjQBF0gNpyvaBHzjlAdXU9fbl4BElEfYJcTmiRof0lbldCRsSSTgoxq", # 店舗名
+                          customer_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",   # エンドユーザーID
+                          customer_name="3aCnDQum7xlHp8mSoN73gaH3XPjunt8NgffostplBJ13qPcXVXQ9E7OqefuC0zsB8aQbgel1VXLZNhM7VCGfzH0EqAidHGV4baZPNRUSJ", # エンドユーザー名
+                          transaction_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", # 取引ID
+                          private_money_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", # マネーID
+                          is_modified=False,                                    # キャンセルフラグ
+                          transaction_types=["payment"],                        # 取引種別 (複数指定可)、チャージ=topup、支払い=payment
+                          next_page_cursor_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", # 次ページへ遷移する際に起点となるtransferのID
+                          prev_page_cursor_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", # 前ページへ遷移する際に起点となるtransferのID
+                          per_page=50,                                          # 1ページ分の取引数
+                          transfer_types=["exchange"],                          # 取引明細種別 (複数指定可)
+                          description="店頭QRコードによる支払い",                          # 取引詳細説明文
+                          start="2025-08-28T05:23:52.000000Z",                  # 開始日時
+                          to="2025-06-01T07:49:00.000000Z"                      # 終了日時
+))
 ```
 
 
 
 ### Parameters
-**`shop_id`** 
-  
-
+#### `shop_id`
 店舗IDです。
 
 フィルターとして使われ、指定された店舗での取引のみ一覧に表示されます。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -400,13 +462,16 @@ const response: Response<PaginatedTransfersV2> = await client.send(new ListTrans
 }
 ```
 
-**`shop_name`** 
-  
+</details>
 
+#### `shop_name`
 店舗名です。
 
 フィルターとして使われ、入力された名前に部分一致する店舗での取引のみ一覧に表示されます。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -414,13 +479,16 @@ const response: Response<PaginatedTransfersV2> = await client.send(new ListTrans
 }
 ```
 
-**`customer_id`** 
-  
+</details>
 
+#### `customer_id`
 エンドユーザーIDです。
 
 フィルターとして使われ、指定されたエンドユーザーの取引のみ一覧に表示されます。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -428,13 +496,16 @@ const response: Response<PaginatedTransfersV2> = await client.send(new ListTrans
 }
 ```
 
-**`customer_name`** 
-  
+</details>
 
+#### `customer_name`
 エンドユーザー名です。
 
 フィルターとして使われ、入力された名前に部分一致するエンドユーザーでの取引のみ一覧に表示されます。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -442,13 +513,16 @@ const response: Response<PaginatedTransfersV2> = await client.send(new ListTrans
 }
 ```
 
-**`transaction_id`** 
-  
+</details>
 
+#### `transaction_id`
 取引IDです。
 
 フィルターとして使われ、指定された取引IDに部分一致(前方一致)する取引のみが一覧に表示されます。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -456,13 +530,16 @@ const response: Response<PaginatedTransfersV2> = await client.send(new ListTrans
 }
 ```
 
-**`private_money_id`** 
-  
+</details>
 
+#### `private_money_id`
 マネーIDです。
 
 指定したマネーでの取引が一覧に表示されます。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -470,23 +547,26 @@ const response: Response<PaginatedTransfersV2> = await client.send(new ListTrans
 }
 ```
 
-**`is_modified`** 
-  
+</details>
 
+#### `is_modified`
 キャンセルフラグです。
 
 これにtrueを指定するとキャンセルされた取引のみ一覧に表示されます。
 デフォルト値はfalseで、キャンセルの有無にかかわらず一覧に表示されます。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "boolean"
 }
 ```
 
-**`transaction_types`** 
-  
+</details>
 
+#### `transaction_types`
 取引の種類でフィルターします。
 
 以下の種類を指定できます。
@@ -513,6 +593,9 @@ const response: Response<PaginatedTransfersV2> = await client.send(new ListTrans
 6. expire
    退会時失効取引
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "array",
@@ -530,15 +613,18 @@ const response: Response<PaginatedTransfersV2> = await client.send(new ListTrans
 }
 ```
 
-**`next_page_cursor_id`** 
-  
+</details>
 
+#### `next_page_cursor_id`
 次ページへ遷移する際に起点となるtransferのID(前ページの末尾要素のID)です。
 本APIのレスポンスにもnext_page_cursor_idが含まれており、これがnull値の場合は最後のページであることを意味します。
 UUIDである場合は次のページが存在することを意味し、このnext_page_cursor_idをリクエストパラメータに含めることで次ページに遷移します。
 
 next_page_cursor_idのtransfer自体は次のページには含まれません。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -546,9 +632,9 @@ next_page_cursor_idのtransfer自体は次のページには含まれません
 }
 ```
 
-**`prev_page_cursor_id`** 
-  
+</details>
 
+#### `prev_page_cursor_id`
 前ページへ遷移する際に起点となるtransferのID(次ページの先頭要素のID)です。
 
 本APIのレスポンスにもprev_page_cursor_idが含まれており、これがnull値の場合は先頭のページであることを意味します。
@@ -556,6 +642,9 @@ UUIDである場合は前のページが存在することを意味し、このp
 
 prev_page_cursor_idのtransfer自体は前のページには含まれません。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -563,13 +652,16 @@ prev_page_cursor_idのtransfer自体は前のページには含まれません
 }
 ```
 
-**`per_page`** 
-  
+</details>
 
+#### `per_page`
 1ページ分の取引数です。
 
 デフォルト値は50です。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "integer",
@@ -578,9 +670,9 @@ prev_page_cursor_idのtransfer自体は前のページには含まれません
 }
 ```
 
-**`transfer_types`** 
-  
+</details>
 
+#### `transfer_types`
 取引明細の種類でフィルターします。
 
 以下の種類を指定できます。
@@ -606,6 +698,9 @@ prev_page_cursor_idのtransfer自体は前のページには含まれません
 7. expire
 退会時失効取引
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "array",
@@ -625,13 +720,16 @@ prev_page_cursor_idのtransfer自体は前のページには含まれません
 }
 ```
 
-**`description`** 
-  
+</details>
 
+#### `description`
 取引詳細を指定の取引詳細説明文でフィルターします。
 
 取引詳細説明文が完全一致する取引のみ抽出されます。取引詳細説明文は最大200文字で記録されています。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -639,13 +737,16 @@ prev_page_cursor_idのtransfer自体は前のページには含まれません
 }
 ```
 
-**`from`** 
-  
+</details>
 
+#### `from`
 抽出期間の開始日時です。
 
 フィルターとして使われ、開始日時以降に発生した取引のみ一覧に表示されます。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -653,13 +754,16 @@ prev_page_cursor_idのtransfer自体は前のページには含まれません
 }
 ```
 
-**`to`** 
-  
+</details>
 
+#### `to`
 抽出期間の終了日時です。
 
 フィルターとして使われ、終了日時以前に発生した取引のみ一覧に表示されます。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -667,6 +771,8 @@ prev_page_cursor_idのtransfer自体は前のページには含まれません
 }
 ```
 
+</details>
+
 
 
 成功したときは
@@ -677,6 +783,7 @@ prev_page_cursor_idのtransfer自体は前のページには含まれません
 |status|type|ja|en|
 |---|---|---|---|
 |403|unpermitted_admin_user|この管理ユーザには権限がありません|Admin does not have permission|
+|503|temporarily_unavailable||Service Unavailable|
 
 
 
diff --git a/docs/user.md b/docs/user.md
index 956113b..884d17d 100644
--- a/docs/user.md
+++ b/docs/user.md
@@ -1,29 +1,8 @@
 # User
-
-<a name="get-user"></a>
-## GetUser
-
-```typescript
-const response: Response<AdminUserWithShopsAndPrivateMoneys> = await client.send(new GetUser());
-```
-
-
-
-
-
-
-成功したときは
-[AdminUserWithShopsAndPrivateMoneys](./responses.md#admin-user-with-shops-and-private-moneys)
-を返します
-
-### Error Responses
-|status|type|ja|en|
-|---|---|---|---|
-|403|unpermitted_admin_user|この管理ユーザには権限がありません|Admin does not have permission|
-
-
-
----
+ユーザを表すデータです。
+エンドユーザー(Customer)と店舗ユーザー(Merchant)の2種類が存在します。
+エンドユーザーは認証の主体であり、マネー毎にウォレットを持ちます。
+店舗ユーザーは組織に所属し、同じくマネー毎にウォレットを持ちます。
 
 
 
diff --git a/docs/user_device.md b/docs/user_device.md
index e6ad387..c660703 100644
--- a/docs/user_device.md
+++ b/docs/user_device.md
@@ -3,24 +3,24 @@ UserDeviceはユーザー毎のデバイスを管理します。
 あるユーザーが使っている端末を区別する必要がある場合に用いられます。
 これが必要な理由はBank Payを用いたチャージを行う場合は端末を区別できることが要件としてあるためです。
 
-
 <a name="create-user-device"></a>
 ## CreateUserDevice: ユーザーのデバイス登録
 ユーザーのデバイスを新規に登録します
 
-```typescript
-const response: Response<UserDevice> = await client.send(new CreateUserDevice({
-  user_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // ユーザーID
-  metadata: "{\"user_agent\": \"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:120.0) Gecko/20100101 Firefox/120.0\"}" // ユーザーデバイスのメタデータ
-}));
+```PYTHON
+response = client.send(pp.CreateUserDevice(
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",               # user_id: ユーザーID
+                          metadata="{\"user_agent\": \"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:120.0) Gecko/20100101 Firefox/120.0\"}" # ユーザーデバイスのメタデータ
+))
 ```
 
 
 
 ### Parameters
-**`user_id`** 
-  
+#### `user_id`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -29,12 +29,14 @@ const response: Response<UserDevice> = await client.send(new CreateUserDevice({
 }
 ```
 
-**`metadata`** 
-  
+</details>
 
+#### `metadata`
 ユーザーのデバイス用の情報をメタデータを保持するために用います。
 例: 端末の固有情報やブラウザのUser-Agent
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -43,6 +45,8 @@ const response: Response<UserDevice> = await client.send(new CreateUserDevice({
 }
 ```
 
+</details>
+
 
 
 成功したときは
@@ -53,7 +57,7 @@ const response: Response<UserDevice> = await client.send(new CreateUserDevice({
 |status|type|ja|en|
 |---|---|---|---|
 |403|unpermitted_admin_user|この管理ユーザには権限がありません|Admin does not have permission|
-|422|user_not_found||The user is not found|
+|422|user_not_found|ユーザーが見つかりません|The user is not found|
 
 
 
@@ -64,18 +68,19 @@ const response: Response<UserDevice> = await client.send(new CreateUserDevice({
 ## GetUserDevice: ユーザーのデバイスを取得
 ユーザーのデバイスの情報を取得します
 
-```typescript
-const response: Response<UserDevice> = await client.send(new GetUserDevice({
-  user_device_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" // ユーザーデバイスID
-}));
+```PYTHON
+response = client.send(pp.GetUserDevice(
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"                # user_device_id: ユーザーデバイスID
+))
 ```
 
 
 
 ### Parameters
-**`user_device_id`** 
-  
+#### `user_device_id`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -84,6 +89,8 @@ const response: Response<UserDevice> = await client.send(new GetUserDevice({
 }
 ```
 
+</details>
+
 
 
 成功したときは
@@ -99,19 +106,19 @@ const response: Response<UserDevice> = await client.send(new GetUserDevice({
 ## ActivateUserDevice: デバイスの有効化
 指定のデバイスを有効化し、それ以外の同一ユーザーのデバイスを無効化します。
 
-
-```typescript
-const response: Response<UserDevice> = await client.send(new ActivateUserDevice({
-  user_device_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" // ユーザーデバイスID
-}));
+```PYTHON
+response = client.send(pp.ActivateUserDevice(
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"                # user_device_id: ユーザーデバイスID
+))
 ```
 
 
 
 ### Parameters
-**`user_device_id`** 
-  
+#### `user_device_id`
 
+<details>
+<summary>スキーマ</summary>
 
 ```json
 {
@@ -120,6 +127,8 @@ const response: Response<UserDevice> = await client.send(new ActivateUserDevice(
 }
 ```
 
+</details>
+
 
 
 成功したときは
diff --git a/docs/webhook.md b/docs/webhook.md
index 03c4152..2f8c92f 100644
--- a/docs/webhook.md
+++ b/docs/webhook.md
@@ -3,25 +3,25 @@ Webhookは特定のワーカータスクでの処理が完了した事を通知
 WebHookにはURLとタスク名、有効化されているかを設定することが出来ます。
 通知はタスク完了時、事前に設定したURLにPOSTリクエストを行います。
 
-
 <a name="list-webhooks"></a>
 ## ListWebhooks: 作成したWebhookの一覧を返す
 
-```typescript
-const response: Response<PaginatedOrganizationWorkerTaskWebhook> = await client.send(new ListWebhooks({
-  page: 1, // ページ番号
-  per_page: 50 // 1ページ分の取得数
-}));
+```PYTHON
+response = client.send(pp.ListWebhooks(
+                          page=1,                                               # ページ番号
+                          per_page=50                                           # 1ページ分の取得数
+))
 ```
 
 
 
 ### Parameters
-**`page`** 
-  
-
+#### `page`
 取得したいページ番号です。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "integer",
@@ -29,11 +29,14 @@ const response: Response<PaginatedOrganizationWorkerTaskWebhook> = await client.
 }
 ```
 
-**`per_page`** 
-  
+</details>
 
+#### `per_page`
 1ページ分の取得数です。デフォルトでは 50 になっています。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "integer",
@@ -41,6 +44,8 @@ const response: Response<PaginatedOrganizationWorkerTaskWebhook> = await client.
 }
 ```
 
+</details>
+
 
 
 成功したときは
@@ -63,21 +68,22 @@ const response: Response<PaginatedOrganizationWorkerTaskWebhook> = await client.
 このAPIにより指定したタスクの終了時に、指定したURLにPOSTリクエストを送信します。
 このとき、リクエストボディは `{"task": <タスク名>}` という値になります。
 
-```typescript
-const response: Response<OrganizationWorkerTaskWebhook> = await client.send(new CreateWebhook({
-  task: "bulk_shops", // タスク名
-  url: "D8" // URL
-}));
+```PYTHON
+response = client.send(pp.CreateWebhook(
+                          "process_user_stats_operation",                       # task: タスク名
+                          "JcmLuj"                                              # url: URL
+))
 ```
 
 
 
 ### Parameters
-**`task`** 
-  
-
+#### `task`
 ワーカータスク名を指定します
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -88,17 +94,22 @@ const response: Response<OrganizationWorkerTaskWebhook> = await client.send(new
 }
 ```
 
-**`url`** 
-  
+</details>
 
+#### `url`
 通知先のURLを指定します
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string"
 }
 ```
 
+</details>
+
 
 
 成功したときは
@@ -120,20 +131,21 @@ const response: Response<OrganizationWorkerTaskWebhook> = await client.send(new
 ## DeleteWebhook: Webhookの削除
 指定したWebhookを削除します
 
-```typescript
-const response: Response<OrganizationWorkerTaskWebhook> = await client.send(new DeleteWebhook({
-  webhook_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" // Webhook ID
-}));
+```PYTHON
+response = client.send(pp.DeleteWebhook(
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"                # webhook_id: Webhook ID
+))
 ```
 
 
 
 ### Parameters
-**`webhook_id`** 
-  
-
+#### `webhook_id`
 削除するWebhookのIDです。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -141,6 +153,8 @@ const response: Response<OrganizationWorkerTaskWebhook> = await client.send(new
 }
 ```
 
+</details>
+
 
 
 成功したときは
@@ -156,23 +170,24 @@ const response: Response<OrganizationWorkerTaskWebhook> = await client.send(new
 ## UpdateWebhook: Webhookの更新
 指定したWebhookの内容を更新します
 
-```typescript
-const response: Response<OrganizationWorkerTaskWebhook> = await client.send(new UpdateWebhook({
-  webhook_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // Webhook ID
-  url: "Qrp", // URL
-  is_active: false, // 有効/無効
-  task: "process_user_stats_operation" // タスク名
-}));
+```PYTHON
+response = client.send(pp.UpdateWebhook(
+                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",               # webhook_id: Webhook ID
+                          url="s8",                                             # URL
+                          is_active=False,                                      # 有効/無効
+                          task="bulk_shops"                                     # タスク名
+))
 ```
 
 
 
 ### Parameters
-**`webhook_id`** 
-  
-
+#### `webhook_id`
 更新するWebhookのIDです。
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -180,33 +195,42 @@ const response: Response<OrganizationWorkerTaskWebhook> = await client.send(new
 }
 ```
 
-**`url`** 
-  
+</details>
 
+#### `url`
 変更するURLを指定します
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string"
 }
 ```
 
-**`is_active`** 
-  
+</details>
 
+#### `is_active`
 trueならWebhookによる通知が有効になり、falseなら無効になります
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "boolean"
 }
 ```
 
-**`task`** 
-  
+</details>
 
+#### `task`
 指定したタスクが終了したときにWebhookによる通知がされます
 
+<details>
+<summary>スキーマ</summary>
+
 ```json
 {
   "type": "string",
@@ -217,6 +241,8 @@ trueならWebhookによる通知が有効になり、falseなら無効になり
 }
 ```
 
+</details>
+
 
 
 成功したときは
diff --git a/partner.yaml b/partner.yaml
index 3ecb963..8405e0e 100644
--- a/partner.yaml
+++ b/partner.yaml
@@ -7,56 +7,151 @@ openapi: '3.0.1'
 info:
   description: >-
     Partner APIs
+
   title:  Partner APIs
-  version: 0.0.0
+  version: 24.3.26
 
 tags:
   - name: Transaction
+    description: |
+      取引を表すデータです。
+      マネー(Private Money)のウォレット間の送金を記録し、キャンセルなどで状態が更新されることがあります。
+      取引種類として以下が存在します。
+
+      - topup: チャージ。Merchant => Customer送金
+      - payment: 支払い。Customer => Merchant送金
+      - transfer: 個人間譲渡。Customer => Customer送金
+      - exchange: マネー間交換。１ユーザのウォレット間の送金（交換）
+      - expire: 退会時失効。退会時の払戻を伴わない残高失効履歴
+      - cashback: 退会時払戻。退会時の払戻金額履歴
   - name: Transfer
-  - name: Check
     description: |
+      送金取引明細を表すデータです。
+      マネー(Private Money)のウォレット間の送金記録を取得します。
+      取引(Transaction)は複数の送金明細(Transfer)で構成されています。
+      送金明細には送金元・送金先のアカウント情報、マネー額、ポイント額などが含まれます。
+      取引種別として、payment, topup, campaign-topup, transfer, exchange, refund-payment, refund-topup, cashback, expire等があります。
+  - name: Check
+    description: |-
       店舗ユーザが発行し、エンドユーザーがポケペイアプリから読み取ることでチャージ取引が発生するQRコードです。
 
       チャージQRコードを解析すると次のようなURLになります(URLは環境によって異なります)。
 
       `https://www-sandbox.pokepay.jp/checks/xxxxxxxx-xxxx-xxxxxxxxx-xxxxxxxxxxxx`
 
-      QRコードを読み取る方法以外にも、このURLリンクを直接スマートフォン(iOS/Android)上で開くことによりアプリが起動して取引が行われます。(注意: 上記URLはsandbox環境であるため、アプリもsandbox環境のものである必要があります) 上記URL中の `xxxxxxxx-xxxx-xxxxxxxxx-xxxxxxxxxxxx` の部分がチャージQRコードのIDです。
+      QRコードを読み取る方法以外にも、このURLリンクを直接スマートフォン(iOS/Android)上で開くことによりアプリが起動して取引が行われます。(注: 上記URLはsandbox環境であるため、アプリもsandbox環境のものである必要があります)
+      上記URL中の `xxxxxxxx-xxxx-xxxxxxxxx-xxxxxxxxxxxx` の部分がチャージQRコードのIDです。
   - name: Bill
-    description: 支払いQRコード
-  - name: Cashtray
     description: |
+      支払いQRコード(トークン)を表すデータです。
+      URL文字列のまま利用されるケースとQR画像化して利用されるケースがあります。
+      ログイン済みユーザアプリで読込むことで、支払い取引を作成します。
+      設定される支払い金額(amount)は、固定値とユーザによる自由入力の2パターンがあります。
+      amountが空の場合は、ユーザによる自由入力で受け付けた金額で支払いを行います。
+      有効期限は比較的長命で利用される事例が多いです。
+
+      複数マネー対応支払いQRコードについて:
+      オプショナルで複数のマネーを１つの支払いQRコードに設定可能です。
+      その場合ユーザ側でどのマネーで支払うか指定可能です。
+      複数マネー対応支払いQRコードにはデフォルトのマネーウォレットを設定する必要があり、ユーザがマネーを明示的に選択しなかった場合はデフォルトのマネーによる支払いになります。
+  - name: Cashtray
+    description: |-
       Cashtrayは支払いとチャージ両方に使えるQRコードで、店舗ユーザとエンドユーザーの間の主に店頭などでの取引のために用いられます。
+      店舗ユーザはCashtrayの状態を監視することができ、取引の成否やエラー事由を知ることができます。
       Cashtrayによる取引では、エンドユーザーがQRコードを読み取った時点で即時取引が作られ、ユーザに対して受け取り確認画面は表示されません。
       Cashtrayはワンタイムで、一度読み取りに成功するか、取引エラーになると失効します。
       また、Cashtrayには有効期限があり、デフォルトでは30分で失効します。
 
   - name: Customer
+    description: |
+      エンドユーザー（顧客）のウォレット情報を管理するためのAPIです。
+      エンドユーザーのウォレット（アカウント）の作成・更新・取得を行います。
+      ウォレットにはマネー残高（有償バリュー）とポイント残高（無償バリュー）があり、
+      有効期限別に金額が管理されています。
+      また、外部システム連携用のexternal_idやメタデータを設定することも可能です。
+  - name: CreditSession
+    description: |
+      クレジットカード決済セッションを管理するためのAPIです。
+      Veritrans（決済ゲートウェイ）との連携でクレジットカード決済を実現します。
+      セッションには有効期限があり、セッション作成後に取引の実行や売上確定（キャプチャ）を行います。
+      3Dセキュア認証にも対応しています。
   - name: Organization
+    description: |
+      組織（発行体・加盟店組織）を表すデータです。
+      Pokepay上でマネーを発行する発行体や、店舗を束ねる加盟店組織を管理します。
+      組織には組織コード、組織名、本社情報などが含まれます。
+      組織配下に複数の店舗（Shop）を持つことができます。
   - name: Shop
+    description: |
+      店舗（加盟店）を表すデータです。
+      Pokepayプラットフォーム上で支払いを受け取る店舗ユーザーを管理します。
+      店舗は組織（Organization）に所属し、店舗ごとにウォレットを持ちます。
+      店舗情報には住所、電話番号、メールアドレス、外部連携用IDなどが含まれます。
+      店舗ステータス（active/disabled）の管理も可能です。
   - name: User
+    description: |
+      ユーザを表すデータです。
+      エンドユーザー(Customer)と店舗ユーザー(Merchant)の2種類が存在します。
+      エンドユーザーは認証の主体であり、マネー毎にウォレットを持ちます。
+      店舗ユーザーは組織に所属し、同じくマネー毎にウォレットを持ちます。
   - name: Account
+    description: |
+      ウォレットを表すデータです。
+      CustomerもMerchantも所有し、ウォレット間の送金は取引として記録されます。
+      Customerのウォレットはマネー残高(有償バリュー)、ポイント残高(無償バリュー)の2種類の残高をもちます。
+      また有効期限別で金額管理しており、有効期限はチャージ時のコンテキストによって決定されます。
+      ユーザはマネー別に複数のウォレットを保有することが可能です。
+      ただし１マネー１ウォレットのみであり、同一マネーのウォレットを複数所有することはできません。
   - name: Private Money
+    description: |
+      Pokepay上で発行する電子マネーを表すデータです。
+      電子マネーは１つの発行体(Organization)によって発行されます。
+      電子マネーはCustomerやMerchantが所有するウォレット間を送金されます。
+      電子マネー残高はユーザが有償で購入するマネーと無償で付与されるポイントの2種類のバリューで構成され、
+      それぞれ有効期限決定ロジックは電子マネーの設定に依存します。
   - name: Bulk
+    description: |
+      一括取引処理を表すデータです。
+      CSVファイルのアップロードにより、複数件の取引をバッチ処理する非同期APIを提供します。
+      一括処理のステータス（submitted, examining, queued, processing, error, done）を監視できます。
+      処理完了時にコールバックURLへの通知も可能です。
+      また、スケジュール実行時刻を指定して将来の時点で処理を実行することもできます。
   - name: Event
+    description: |
+      外部決済イベント（ExternalTransaction）を表すデータです。
+      Pokepay外の決済（現金決済、クレジットカード決済等）を記録し、ポケペイのポイント還元を実現します。
+      外部決済イベントを作成することで、キャンペーン連動によるポイント付与が可能になります。
+      イベントのキャンセル（返金）にも対応しており、紐付いたポイント還元も同時にキャンセルされます。
+      リクエストIDによる羃等性の担保もサポートしています。
   - name: Campaign
-  - name: Webhook
     description: |
+      自動ポイント還元ルールの設定を表すデータです。
+      Pokepay管理画面やPartnerSDK経由でルール登録、更新が可能です。
+      取引(Transaction)または外部決済イベント(ExternalTransaction)の内容によって還元するポイント額を計算し、自動で付与するルールを設定可能です。
+      targetとして取引または外部決済イベントを選択して個別設定します。
+  - name: Webhook
+    description: |-
       Webhookは特定のワーカータスクでの処理が完了した事を通知します。
       WebHookにはURLとタスク名、有効化されているかを設定することが出来ます。
       通知はタスク完了時、事前に設定したURLにPOSTリクエストを行います。
   - name: Coupon
     description: |
-      Couponは支払い時に指定し、支払い処理の前にCouponに指定の方法で値引き処理を行います。
-      Couponは特定店舗で利用できるものや利用可能期間、配信条件などを設定できます。
+      割引クーポンを表すデータです。
+      クーポンをユーザが明示的に利用することによって支払い決済時の割引(固定金額 or 割引率)が適用されます。
+      クーポンは支払い時に指定し、支払い処理の前にクーポンに指定の方法で値引き処理を行います。
+      クーポン原資を負担する発行店舗を設定したり、配布先を指定することも可能です。
+      また、特定店舗で利用できるものや利用可能期間、配信条件などを設定できます。
   - name: UserDevice
-    description: |
+    description: |-
       UserDeviceはユーザー毎のデバイスを管理します。
       あるユーザーが使っている端末を区別する必要がある場合に用いられます。
       これが必要な理由はBank Payを用いたチャージを行う場合は端末を区別できることが要件としてあるためです。
   - name: BankPay
-    description: |
+    description: |-
       BankPayを用いた銀行からのチャージ取引などのAPIを提供しています。
+  - name: SevenBankATMSession
+    description: |-
+      セブンATMチャージの取引内容を照会するAPIを提供しています。
 
 components:
   schemas:
@@ -75,6 +170,57 @@ components:
           pattern: '^ok$'
         message:
           type: string
+    CreditSession:
+      x-pokepay-schema-type: "response"
+      properties:
+        id:
+          type: string
+          format: uuid
+        expires_at:
+          type: string
+          description: 有効期限
+          format: date-time
+    CapturedCreditSession:
+      x-pokepay-schema-type: "response"
+      properties:
+        session_id:
+          type: string
+          format: uuid
+          description: キャプチャされたセッションのID
+    CreditSessionTransactionResult:
+      x-pokepay-schema-type: "response"
+      description: クレジットセッション取引の結果。Veritrans microserviceから返されたレスポンス。
+      type: object
+    UserCard:
+      x-pokepay-schema-type: "response"
+      properties:
+        id:
+          type: string
+          format: uuid
+          title: 'カード識別子'
+          description: 'カードの一意識別子（UUID）'
+        card_number:
+          type: string
+          title: 'マスク済みカード番号'
+          description: 'マスクされたカード番号（例: 411111********11）'
+        registered_at:
+          type: string
+          format: date-time
+          title: '登録日時'
+          description: 'カードが登録された日時'
+    PaginatedUserCards:
+      x-pokepay-schema-type: "response"
+      properties:
+        rows:
+          type: array
+          items:
+            $ref: '#/components/schemas/UserCard'
+        count:
+          type: integer
+          title: '総件数'
+          description: 'フィルタ条件に一致する全カードの件数'
+        pagination:
+          $ref: '#/components/schemas/Pagination'
     Pagination:
       x-pokepay-schema-type: "response"
       properties:
@@ -123,68 +269,137 @@ components:
           type: string
           format: uuid
           title: 'ウォレットID'
+          description: 'ウォレットID'
         name:
           type: string
           title: 'ウォレット名'
+          description: 'ウォレット名'
         is_suspended:
           type: boolean
           title: 'ウォレットが凍結されているかどうか'
+          description: |-
+            管理者によってユーザのウォレットが凍結されているかどうかのフラグです。
+            statusがsuspendedかどうかと同義です。
         status:
           type: string
           enum: [active, suspended, pre-closed, closed]
+          title: 'ウォレット状態'
+          description: |-
+            ウォレットの状態です。active状態以外のウォレットでは取引が失敗します。
+
+            - active: 有効状態
+            - suspended: 凍結状態。管理者によって凍結されている状態です。
+            - pre-closed: 退会準備状態。退会の前にこの状態を経る必要があります。
+            - closed: 退会状態。この状態では残高が0になっています。
         private_money:
           $ref: '#/components/schemas/PrivateMoney'
           title: '設定マネー情報'
+          description: 'ウォレットが取り扱うマネーです。1つのウォレットが取り扱えるマネーは1つのみです。'
     AccountWithUser:
       x-pokepay-schema-type: "response"
       properties:
         id:
           type: string
           format: uuid
+          title: 'ウォレットID'
+          description: 'ウォレットID'
         name:
           type: string
+          title: 'ウォレット名'
+          description: 'ウォレット名'
         is_suspended:
           type: boolean
+          title: 'ウォレットが凍結されているかどうか'
+          description: |-
+            管理者によってユーザのウォレットが凍結されているかどうかのフラグです。
+            statusがsuspendedかどうかと同義です。
         status:
           type: string
           enum: [active, suspended, pre-closed, closed]
+          title: 'ウォレット状態'
+          description: |-
+            ウォレットの状態です。active状態以外のウォレットでは取引が失敗します。
+
+            - active: 有効状態
+            - suspended: 凍結状態。管理者によって凍結されている状態です。
+            - pre-closed: 退会準備状態。退会の前にこの状態を経る必要があります。
+            - closed: 退会状態。この状態では残高が0になっています。
         private_money:
           $ref: '#/components/schemas/PrivateMoney'
+          title: '設定マネー情報'
+          description: 'ウォレットが取り扱うマネーです。1つのウォレットが取り扱えるマネーは1つのみです。'
         user:
           $ref: '#/components/schemas/User'
+          title: 'ユーザ情報'
+          description: 'ウォレットを所持しているユーザ情報です。'
     AccountDetail:
       x-pokepay-schema-type: "response"
       properties:
         id:
           type: string
           format: uuid
+          title: 'ウォレットID'
+          description: 'ウォレットID'
         name:
           type: string
+          title: 'ウォレット名'
+          description: 'ウォレット名'
         is_suspended:
           type: boolean
+          title: 'ウォレットが凍結されているかどうか'
+          description: |-
+            管理者によってユーザのウォレットが凍結されているかどうかのフラグです。
+            statusがsuspendedかどうかと同義です。
         status:
           type: string
           enum: [active, suspended, pre-closed, closed]
+          title: 'ウォレット状態'
+          description: |-
+            ウォレットの状態です。active状態以外のウォレットでは取引が失敗します。
+
+            - active: 有効状態
+            - suspended: 凍結状態。管理者によって凍結されている状態です。
+            - pre-closed: 退会準備状態。退会の前にこの状態を経る必要があります。
+            - closed: 退会状態。この状態では残高が0になっています。
         balance:
           type: number
           format: decimal
+          title: '総残高'
+          description: 'ウォレットに入っている総残高です(マネー残高 + ポイント残高)。'
         money_balance:
           type: number
           format: decimal
+          title: 'マネー残高'
+          description: 'ウォレットに入っているマネー残高です。'
         point_balance:
           type: number
           format: decimal
+          title: 'ポイント残高'
+          description: 'ウォレットに入っているポイント残高です。'
         point_debt:
           type: number
           format: decimal
+          title: 'ポイント負債'
+          description: |-
+            ポイント負債とは、支払いによってポイントを消費した後で、それ以前のポイント付与取引をキャンセルした場合に生じる負のポイントです。
+            次回以降のポイント付与からポイント負債分が差し引かれます。
         private_money:
           $ref: '#/components/schemas/PrivateMoney'
+          title: '設定マネー情報'
+          description: 'ウォレットが取り扱うマネーです。1つのウォレットが取り扱えるマネーは1つのみです。'
         user:
           $ref: '#/components/schemas/User'
+          title: 'ユーザ情報'
+          description: 'ウォレットを所持しているユーザ情報です。'
         external_id:
           type: string
           nullable: true
           maxLength: 50
+          title: '外部ID'
+          description: |-
+            ウォレットに対して設定されている外部IDです。
+            外部IDはポケペイ外のシステムで発番されるもので、ポケペイのウォレットと紐付けて管理したい場合に使用されます。
+            任意で設定される項目で、最大50桁の文字列が指定できます。
     ShopAccount:
       x-pokepay-schema-type: "response"
       properties:
@@ -257,6 +472,10 @@ components:
         token:
           type: string
           title: 支払いQRコードを解析したときに出てくるURL
+        created_at:
+          type: string
+          format: date-time
+          title: 支払いQRコードの作成日時
     Check:
       x-pokepay-schema-type: "response"
       properties:
@@ -373,6 +592,17 @@ components:
           description: |-
             取引作成時に店舗側から指定されるメタデータです。
             全てのkeyとvalueが文字列であるようなフラットな構造のJSON文字列です。
+        strategy:
+          type: string
+          enum: [point-preferred, money-only]
+          nullable: true
+          title: 支払い時の残高消費方式
+          description: |-
+            エンドユーザーがCPMトークン作成時に指定した残高消費方式です。
+            nullの場合は支払い時にpoint-preferred(ポイント優先)として扱われます。
+
+            - point-preferred: ポイント残高が優先的に消費され、ポイントがなくなり次第マネー残高から消費されていきます
+            - money-only: マネー残高のみから消費され、ポイント残高は使われません
 
     Cashtray:
       x-pokepay-schema-type: "response"
@@ -566,7 +796,7 @@ components:
         type:
           type: string
           title: '取引種別'
-          description: |
+          description: |-
             各取引種別の値の意味は以下の通りです。
             - topup: チャージ
             - payment: 支払い
@@ -580,13 +810,13 @@ components:
           title: '返金された取引かどうか'
         sender:
           $ref: '#/components/schemas/User'
-          title: '送金者情報'
+          title: '送金ユーザ情報'
         sender_account:
           $ref: '#/components/schemas/Account'
           title: '送金ウォレット情報'
         receiver:
           $ref: '#/components/schemas/User'
-          title: '受取者情報'
+          title: '受取ユーザ情報'
         receiver_account:
           $ref: '#/components/schemas/Account'
           title: '受取ウォレット情報'
@@ -599,7 +829,7 @@ components:
         point_amount:
           type: number
           title: '取引ポイント額(キャンペーン付与ポイント合算)'
-          description: |
+          description: |-
             取引のポイント額です。
             キャンペーンによるポイント付与額との合算値なので、元々の取引のポイント額のみを取り出したいときは `raw_point_amount` を参照してください。
             チャージ取引の場合、point_amount = raw_point_amount + campaign_point_amount
@@ -608,21 +838,28 @@ components:
         raw_point_amount:
           type: number
           title: '取引ポイント額'
-          description: |
+          description: |-
             取引のポイント額です。
-            キャンペーンによるポイント付与額を含まない、元々の取引で支払われたポイント額を表します。
+            支払いの場合、キャンペーンによるポイント付与額を含まない、元々の取引で支払われたポイント額を表します。
           nullable: true
         campaign_point_amount:
           type: number
           title: 'キャンペーンによるポイント付与額'
+          description: |-
+            ポケペイのキャンペーン機能により付与されたポイント額です。
+            支払い取引、チャージ取引のどちらでもポイント付与される可能性があり、本来の支払い金額/チャージ金額と分離するためのフィールドです。
           nullable: true
         done_at:
           type: string
           format: date-time
           title: '取引日時'
+          description: |-
+            取引が起こった日時です。
         description:
           type: string
           title: '取引説明文'
+          description: |-
+            取引の説明文です。
     TransactionDetail:
       x-pokepay-schema-type: "response"
       properties:
@@ -633,7 +870,7 @@ components:
         type:
           type: string
           title: '取引種別'
-          description: |
+          description: |-
             各取引種別の値の意味は以下の通りです。
             - topup: チャージ
             - payment: 支払い
@@ -647,13 +884,13 @@ components:
           title: '返金された取引かどうか'
         sender:
           $ref: '#/components/schemas/User'
-          title: '送金者情報'
+          title: '送金ユーザ情報'
         sender_account:
           $ref: '#/components/schemas/Account'
           title: '送金ウォレット情報'
         receiver:
           $ref: '#/components/schemas/User'
-          title: '受取者情報'
+          title: '受取ユーザ情報'
         receiver_account:
           $ref: '#/components/schemas/Account'
           title: '受取ウォレット情報'
@@ -666,7 +903,7 @@ components:
         point_amount:
           type: number
           title: '取引ポイント額(キャンペーン付与ポイント合算)'
-          description: |
+          description: |-
             取引のポイント額です。
             キャンペーンによるポイント付与額との合算値なので、元々の取引のポイント額のみを取り出したいときは `raw_point_amount` を参照してください。
             チャージ取引の場合、point_amount = raw_point_amount + campaign_point_amount
@@ -675,23 +912,65 @@ components:
         raw_point_amount:
           type: number
           title: '取引ポイント額'
-          description: |
+          description: |-
             取引のポイント額です。
-            キャンペーンによるポイント付与額を含まない、元々の取引で支払われたポイント額を表します。
+            支払いの場合、キャンペーンによるポイント付与額を含まない、元々の取引で支払われたポイント額を表します。
         campaign_point_amount:
           type: number
           title: 'キャンペーンによるポイント付与額'
+          description: |-
+            ポケペイのキャンペーン機能により付与されたポイント額です。
+            支払い取引、チャージ取引のどちらでもポイント付与される可能性があり、本来の支払い金額/チャージ金額と分離するためのフィールドです。
         done_at:
           type: string
           format: date-time
           title: '取引日時'
+          description: |-
+            取引が起こった日時です。
         description:
           type: string
           title: '取引説明文'
+          description: |-
+            取引の説明文です。
         transfers:
           type: array
           items:
             $ref: '#/components/schemas/Transfer'
+          title: '取引明細一覧'
+          description: |-
+            取引の内訳を表す取引明細の一覧です。
+            元々の取引に加えて、キャンペーンによるポイント付与や、キャンセル取引などが該当します。
+    TransactionGroup:
+      x-pokepay-schema-type: "response"
+      properties:
+        id:
+          type: string
+          format: uuid
+          title: 'トランザクショングループID'
+        name:
+          type: string
+          maxLength: 64
+          title: 'トランザクショングループ名'
+        created_at:
+          type: string
+          format: date-time
+          title: '作成日時'
+        updated_at:
+          type: string
+          format: date-time
+          title: '更新日時'
+        transactions:
+          type: array
+          items:
+            $ref: '#/components/schemas/Transaction'
+          title: 'グループに属する取引一覧'
+    BillTransaction:
+      x-pokepay-schema-type: "response"
+      properties:
+        transaction:
+          $ref: '#/components/schemas/Transaction'
+        bill:
+          $ref: '#/components/schemas/Bill'
     ShopWithMetadata:
       x-pokepay-schema-type: "response"
       properties:
@@ -819,6 +1098,11 @@ components:
           type: string
           format: date-time
           title: バルク取引が更新された日時
+        scheduled_at:
+          type: string
+          format: date-time
+          nullable: true
+          title: バルク取引の予約実行日時
     BulkTransactionJob:
       x-pokepay-schema-type: "response"
       properties:
@@ -921,33 +1205,74 @@ components:
         id:
           type: string
           format: uuid
+          title: '取引明細ID'
+          description: '取引明細IDです。'
         sender_account:
           $ref: '#/components/schemas/AccountWithoutPrivateMoneyDetail'
+          title: '送金元ウォレット'
+          description: '送金元ウォレット情報です。'
         receiver_account:
           $ref: '#/components/schemas/AccountWithoutPrivateMoneyDetail'
+          title: '送金先ウォレット'
+          description: '送金先ウォレット情報です。'
         amount:
           type: number
           format: decimal
           minimum: 0
+          title: '送金総額 (マネー額 + ポイント額)'
+          description: '取引明細の送金総額です (マネー額 + ポイント額)。'
         money_amount:
           type: number
           format: decimal
           minimum: 0
+          title: '送金マネー額'
+          description: '取引明細のマネーのみの送金額です。'
         point_amount:
           type: number
           format: decimal
           minimum: 0
+          title: '送金ポイント額'
+          description: '取引明細のポイントのみの送金額です。'
         done_at:
           type: string
           format: date-time
+          title: '送金日時'
+          description: |-
+            送金が起こった日時です。
+            1つの取引の中でも、ポイント付与やキャンセルは遅れて行なわれるため、親取引の取引日時とは異なることがあります。
         type:
           type: string
           enum: [topup, payment, refund-topup, refund-payment, transfer, exchange-inflow, exchange-outflow, refund-exchange-inflow, refund-exchange-outflow, campaign-topup, refund-campaign, use-coupon, refund-coupon, cashback, expire]
+          title: '取引明細種別'
+          description: |-
+            各取引明細種別の値の意味は以下の通りです。
+            - topup: チャージ
+            - payment: 支払い
+            - refund-topup: チャージ取引に対するキャンセル
+            - refund-payment: 支払い取引に対するキャンセル
+            - transfer: 個人間送金
+            - exchange-inflow: マネー間交換 (他マネーのウォレットからの流入)
+            - exchange-outflow: マネー間交換 (他マネーのウォレットへのの流出)
+            - refund-exchange-inflow: マネー間交換のキャンセル (他マネーのウォレットからの流入のキャンセル)
+            - refund-exchange-outflow: マネー間交換のキャンセル (他マネーのウォレットへのの流出のキャンセル)
+            - campaign-topup: キャンペーンによるポイント付与
+            - refund-campaign-topup: キャンペーンによるポイント付与のキャンセル
+            - use-coupon: クーポンによる値引き処理
+            - cashback: ウォレット退会時の払い戻し処理
+            - expire: ウォレット退会時の残高失効処理
         description:
           type: string
+          title: '取引明細説明文'
+          description: |-
+            取引明細の説明文です。
         transaction_id:
           type: string
           format: uuid
+          title: '親取引ID'
+          description: |-
+            親取引のIDです。
+            取引明細(Transfer)は親取引(Transaction)に対して複数存在します。
+
     ExternalTransaction:
       x-pokepay-schema-type: "response"
       properties:
@@ -1016,7 +1341,7 @@ components:
           $ref: '#/components/schemas/TransactionDetail'
           nullable: true
           title: 関連ポケペイ取引詳細
-          description: |
+          description: |-
             ポケペイ外取引と連動して作られたポケペイ取引の取引詳細です。
             例えば、キャンペーンによるポイント付与取引やキャンセル状況などの情報が含まれます。
             ポケペイ取引が存在しない場合はnullが設定されます。
@@ -1279,6 +1604,10 @@ components:
           type: integer
           minimum: 0
 
+    BankDeleted:
+      x-pokepay-schema-type: "response"
+      properties: {}
+
     PaginatedTransaction:
       x-pokepay-schema-type: "response"
       properties:
@@ -1318,6 +1647,32 @@ components:
             前ページ取得するためのID。
 
             実際にはrows先頭
+    PaginatedBillTransaction:
+      x-pokepay-schema-type: "response"
+      properties:
+        rows:
+          type: array
+          items:
+            $ref: '#/components/schemas/BillTransaction'
+        per_page:
+          type: integer
+        count:
+          type: integer
+        next_page_cursor_id:
+          type: string
+          format: uuid
+          nullable: true
+          description: |-
+            次ページ取得するためのID。次ページ取得するためのID。
+            実際にはrows末尾
+        prev_page_cursor_id:
+          type: string
+          format: uuid
+          nullable: true
+          description: |-
+            前ページ取得するためのID。
+
+            実際にはrows先頭
     PaginatedTransfers:
       x-pokepay-schema-type: "response"
       properties:
@@ -1647,7 +2002,7 @@ components:
         is_hidden:
           type: boolean
           title: 'クーポン一覧に掲載されるかどうか'
-          description: |
+          description: |-
             アプリに表示されるクーポン一覧に掲載されるかどうか。
             主に一時的に掲載から外したいときに用いられる。そのためis_publicの設定よりも優先される。
         is_public:
@@ -1663,6 +2018,20 @@ components:
         token:
           type: string
           title: 'クーポンを特定するためのトークン'
+        num_recipients_cap:
+          type: integer
+          nullable: true
+          title: 'クーポンを受け取ることができるユーザ数上限'
+          description: |-
+            クーポンを受け取ることができるユーザ数の上限が設定されているクーポンに対してのみ正の整数が返され、
+            上限が設定されていないクーポンではnullが返されます。
+        num_recipients:
+          type: integer
+          nullable: true
+          title: 'クーポンを受け取ったユーザ数'
+          description: |-
+            クーポンを受け取ることができるユーザ数の上限が設定されているクーポンに対してのみ、受け取り済みのユーザ数が表示されます。
+            上限が設定されていないクーポンではnullが返されます。
     CouponDetail:
       x-pokepay-schema-type: "response"
       properties:
@@ -1721,7 +2090,7 @@ components:
         is_hidden:
           type: boolean
           title: 'クーポン一覧に掲載されるかどうか'
-          description: |
+          description: |-
             アプリに表示されるクーポン一覧に掲載されるかどうか。
             主に一時的に掲載から外したいときに用いられる。そのためis_publicの設定よりも優先される。
         is_public:
@@ -1749,6 +2118,20 @@ components:
         private_money:
           $ref: '#/components/schemas/PrivateMoney'
           title: 'クーポンのマネー'
+        num_recipients_cap:
+          type: integer
+          nullable: true
+          title: 'クーポンを受け取ることができるユーザ数上限'
+          description: |-
+            クーポンを受け取ることができるユーザ数の上限が設定されているクーポンに対してのみ正の整数が返され、
+            上限が設定されていないクーポンではnullが返されます。
+        num_recipients:
+          type: integer
+          nullable: true
+          title: 'クーポンを受け取ったユーザ数'
+          description: |-
+            クーポンを受け取ることができるユーザ数の上限が設定されているクーポンに対してのみ、受け取り済みのユーザ数が表示されます。
+            上限が設定されていないクーポンではnullが返されます。
     PaginatedCoupons:
       x-pokepay-schema-type: "response"
       properties:
@@ -1774,6 +2157,39 @@ components:
         pagination:
           $ref: '#/components/schemas/Pagination'
 
+    SevenBankATMSession:
+      x-pokepay-schema-type: "response"
+      properties:
+        qr_info:
+          type: string
+          maxLength: 23
+        account:
+          $ref: '#/components/schemas/AccountDetail'
+        amount:
+          type: integer
+        transaction:
+          $ref: '#/components/schemas/Transaction'
+          nullable: true
+        seven_bank_customer_number:
+          type: string
+        atm_id:
+          type: string
+          maxLength: 7
+          nullable: true
+        audi_id:
+          type: string
+          maxLength: 4
+          nullable: true
+        issuer_code:
+          type: string
+          nullable: true
+        issuer_name:
+          type: string
+          nullable: true
+        money_name:
+          type: string
+          nullable: true
+
     BadRequest:
       x-pokepay-schema-type: "response"
       oneOf:
@@ -1951,6 +2367,12 @@ components:
         application/json:
           schema:
             $ref: '#/components/schemas/Conflict'
+    TemporarilyUnavailable:
+      description: Temporarily unavailable
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/TemporarilyUnavailable'
     UserStatsOperationServiceUnavailable:
       description: User stats operation service is temporarily unavailable
       content:
@@ -1990,54 +2412,239 @@ paths:
                 $ref: '#/components/schemas/Echo'
         '400':
           $ref: '#/components/responses/BadRequest'
-  /user:
-    get:
+  /credit-sessions:
+    post:
+      x-pokepay-operator-name: "PostCreditSession"
+      x-pokepay-allow-server-side: true
       tags:
-        - User
+        - CreditSession
+      summary: Create credit session
+      operationId: createCreditSession
+      requestBody:
+        required: true
+        content:
+          application/json:
+            schema:
+              type: object
+              required:
+                - customer_id
+                - private_money_id
+                - card_id
+                - expires_at
+              properties:
+                customer_id:
+                  type: string
+                  format: uuid
+                private_money_id:
+                  type: string
+                  format: uuid
+                card_id:
+                  type: string
+                  format: uuid
+                expires_at:
+                  type: string
+                  format: date-time
+                  description: |-
+                    セッション有効期限
+                    制約: リクエスト時刻から30日以内
+                    例: "2024-01-15T10:30:00+00:00"
+                request_id:
+                  type: string
+                  format: uuid
+                  description: |-
+                    冪等性キー
+                    同一のrequest_idを持つリクエストは冪等に処理されます。
       responses:
         '200':
-          description: OK
+          description: Credit session created
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/AdminUserWithShopsAndPrivateMoneys'
-  /users/{user_id}/accounts:
-    get:
-      tags:
-        - Account
-      summary: 'エンドユーザー、店舗ユーザーのウォレット一覧を表示する'
-      description: ユーザーIDを指定してそのユーザーのウォレット一覧を取得します。
-      x-pokepay-operator-name: "ListUserAccounts"
+                $ref: '#/components/schemas/CreditSession'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '503':
+          $ref: '#/components/responses/TemporarilyUnavailable'
+  /credit-sessions/{session_id}/transactions:
+    post:
+      x-pokepay-operator-name: "CreateCreditSessionTransaction"
       x-pokepay-allow-server-side: true
+      tags:
+        - CreditSession
+      summary: Create transaction with credit session
+      description: |-
+        クレジットセッションを使用して取引を作成します。
+        セッションIDと取引金額を指定します。
+      operationId: createCreditSessionTransaction
       parameters:
         - in: path
-          name: user_id
+          name: session_id
           required: true
           schema:
             type: string
             format: uuid
-            title: 'ユーザーID'
+            title: 'クレジットセッションID'
           description: |-
-            ユーザーIDです。
+            クレジットセッションID
 
-            指定したユーザーIDのウォレット一覧を取得します。パートナーキーと紐づく組織が発行しているマネーのウォレットのみが表示されます。
+            事前に作成されたクレジットセッションのIDを指定します。
       requestBody:
         required: true
         content:
           application/json:
             schema:
+              type: object
+              required: ["amount"]
               properties:
-                page:
-                  type: integer
-                  minimum: 1
-                  title: 'ページ番号'
-                  description: 取得したいページ番号です。デフォルト値は1です。
-                per_page:
-                  type: integer
-                  minimum: 1
-                  title: '1ページ分の取引数'
-                  description: 1ページ当たりのウォレット数です。デフォルト値は50です。
-      responses:
+                amount:
+                  type: number
+                  minimum: 0
+                  description: |-
+                    取引金額
+                    支払い金額を指定します。
+                shop_id:
+                  type: string
+                  format: uuid
+                  description: |-
+                    店舗ID
+                    支払いを行う店舗のIDを指定します。
+                description:
+                  type: string
+                  maxLength: 200
+                  default: ""
+                  description: |-
+                    取引説明
+                    取引の説明や備考を指定します。省略時は空文字列になります。
+                request_id:
+                  type: string
+                  format: uuid
+                  description: |-
+                    冪等性キー
+                    同一のrequest_idを持つリクエストは冪等に処理されます。
+      responses:
+        '200':
+          description: Transaction created successfully
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/CreditSessionTransactionResult'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '503':
+          $ref: '#/components/responses/TemporarilyUnavailable'
+  /credit-sessions/{session_id}/capture:
+    post:
+      x-pokepay-operator-name: "CaptureCreditSession"
+      x-pokepay-allow-server-side: true
+      tags:
+        - CreditSession
+      summary: Capture credit session
+      description: |-
+        クレジットセッションの売上確定（キャプチャ）を行います。
+        セッション内で行われた支払いの合計金額をクレジットカードに請求します。
+      operationId: captureCreditSession
+      parameters:
+        - in: path
+          name: session_id
+          required: true
+          schema:
+            type: string
+            format: uuid
+            title: 'クレジットセッションID'
+          description: |-
+            クレジットセッションID
+
+            キャプチャ対象のクレジットセッションのIDを指定します。
+      requestBody:
+        required: false
+        content:
+          application/json:
+            schema:
+              type: object
+              properties:
+                request_id:
+                  type: string
+                  format: uuid
+                  description: |-
+                    冪等性キー
+                    同一のrequest_idを持つリクエストは冪等に処理されます。
+      responses:
+        '200':
+          description: Credit session captured successfully
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/CapturedCreditSession'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '503':
+          $ref: '#/components/responses/TemporarilyUnavailable'
+  /user:
+    get:
+      tags:
+        - User
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/AdminUserWithShopsAndPrivateMoneys'
+  /users/{user_id}/accounts:
+    get:
+      tags:
+        - Account
+      summary: 'エンドユーザー、店舗ユーザーのウォレット一覧を表示する'
+      description: ユーザーIDを指定してそのユーザーのウォレット一覧を取得します。
+      x-pokepay-operator-name: "ListUserAccounts"
+      x-pokepay-allow-server-side: true
+      parameters:
+        - in: path
+          name: user_id
+          required: true
+          schema:
+            type: string
+            format: uuid
+            title: 'ユーザーID'
+          description: |-
+            ユーザーIDです。
+
+            指定したユーザーIDのウォレット一覧を取得します。パートナーキーと紐づく組織が発行しているマネーのウォレットのみが表示されます。
+      requestBody:
+        required: true
+        content:
+          application/json:
+            schema:
+              properties:
+                page:
+                  type: integer
+                  minimum: 1
+                  title: 'ページ番号'
+                  description: 取得したいページ番号です。デフォルト値は1です。
+                per_page:
+                  type: integer
+                  minimum: 1
+                  title: '1ページ分の取引数'
+                  description: 1ページ当たりのウォレット数です。デフォルト値は50です。
+      responses:
         '200':
           description: OK
           content:
@@ -2856,7 +3463,9 @@ paths:
                   nullable: true
                   format: decimal
                   title: '支払い額'
-                  description: 支払いQRコードを支払い額を指定します。省略するかnullを渡すと任意金額の支払いQRコードとなり、エンドユーザーがアプリで読み取った際に金額を入力します。
+                  description: |-
+                    支払いQRコードを支払い額を指定します。省略するかnullを渡すと任意金額の支払いQRコードとなり、エンドユーザーがアプリで読み取った際に金額を入力します。
+                    また、金額を指定する場合の上限額は支払いをするマネーの取引上限額です。
                 private_money_id:
                   type: string
                   format: uuid
@@ -2885,6 +3494,38 @@ paths:
           $ref: '#/components/responses/UnprocessableEntity'
 
   /bills/{bill_id}:
+    get:
+      tags:
+        - Bill
+      summary: '支払いQRコードの表示'
+      description: 支払いQRコードの内容を表示します。
+      x-pokepay-operator-name: "GetBill"
+      x-pokepay-allow-server-side: true
+      parameters:
+        - in: path
+          name: bill_id
+          required: true
+          schema:
+            type: string
+            format: uuid
+            title: '支払いQRコードのID'
+          description: |-
+            表示する支払いQRコードのIDです。
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Bill'
+        '400':
+          $ref: '#/components/responses/InvalidParameters'
+        '403':
+          $ref: '#/components/responses/UnpermittedAdminUser'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
     patch:
       tags:
         - Bill
@@ -2914,7 +3555,7 @@ paths:
                   nullable: true
                   format: decimal
                   title: '支払い額'
-                  description: 支払いQRコードを支払い額を指定します。nullを渡すと任意金額の支払いQRコードとなり、エンドユーザーがアプリで読み取った際に金額を入力します。
+                  description: 支払いQRコードを支払い額を指定します。nullを渡すと任意金額の支払いQRコードとなり、エンドユーザーがアプリで読み取った際に金額を入力します。また、金額を指定する場合の上限額は支払いをするマネーの取引上限額です。
                 description:
                   type: string
                   maxLength: 200
@@ -2958,7 +3599,7 @@ paths:
                   minimum: 0
                   format: decimal
                   title: '付与マネー額'
-                  description: |
+                  description: |-
                     チャージQRコードによって付与されるマネー額です。
                     `money_amount`と`point_amount`の少なくともどちらかは指定する必要があります。
                 point_amount:
@@ -2966,7 +3607,7 @@ paths:
                   minimum: 0
                   format: decimal
                   title: '付与ポイント額'
-                  description: |
+                  description: |-
                     チャージQRコードによって付与されるポイント額です。
                     `money_amount`と`point_amount`の少なくともどちらかは指定する必要があります。
                 account_id:
@@ -2981,7 +3622,7 @@ paths:
                 is_onetime:
                   type: boolean
                   title: 'ワンタイムかどうかのフラグ'
-                  description: |
+                  description: |-
                     チャージQRコードが一度の読み取りで失効するときに`true`にします。デフォルト値は`true`です。
                     `false`の場合、複数ユーザによって読み取り可能なQRコードになります。
                     ただし、その場合も1ユーザにつき1回のみしか読み取れません。
@@ -2989,7 +3630,7 @@ paths:
                   type: integer
                   nullable: true
                   title: 'ワンタイムでない場合の最大読み取り回数'
-                  description: |
+                  description: |-
                     複数ユーザによって読み取り可能なチャージQRコードの最大読み取り回数を指定します。
                     NULLに設定すると無制限に読み取り可能なチャージQRコードになります。
                     デフォルト値はNULLです。
@@ -2998,7 +3639,7 @@ paths:
                   type: string
                   format: date-time
                   title: 'チャージQRコード自体の失効日時'
-                  description: |
+                  description: |-
                     チャージQRコード自体の失効日時を指定します。この日時以降はチャージQRコードを読み取れなくなります。デフォルトでは作成日時から3ヶ月後になります。
 
                     チャージQRコード自体の失効日時であって、チャージQRコードによって付与されるマネー残高の有効期限とは異なることに注意してください。マネー残高の有効期限はマネー設定で指定されているものになります。
@@ -3006,7 +3647,7 @@ paths:
                   type: string
                   format: date-time
                   title: 'チャージQRコードによって付与されるポイント残高の有効期限'
-                  description: |
+                  description: |-
                     チャージQRコードによって付与されるポイント残高の有効起源を指定します。デフォルトではマネー残高の有効期限と同じものが指定されます。
 
                     チャージQRコードにより付与されるマネー残高の有効期限はQRコード毎には指定できませんが、ポイント残高の有効期限は本パラメータにより、QRコード毎に個別に指定することができます。
@@ -3014,7 +3655,7 @@ paths:
                   type: integer
                   minimum: 1
                   title: 'チャージQRコードによって付与されるポイント残高の有効期限(相対日数指定)'
-                  description: |
+                  description: |-
                     チャージQRコードによって付与されるポイント残高の有効期限を相対日数で指定します。
                     1を指定すると、チャージQRコード作成日の当日中に失効します(翌日0時に失効)。
                     `point_expires_at`と`point_expires_in_days`が両方指定されている場合は、チャージQRコードによるチャージ取引ができた時点からより近い方が採用されます。
@@ -3023,7 +3664,7 @@ paths:
                   type: string
                   format: uuid
                   title: 'ポイント額を負担する店舗のウォレットID'
-                  description: |
+                  description: |-
                     ポイントチャージをする場合、ポイント額を負担する店舗のウォレットIDを指定することができます。
                     デフォルトではマネー発行体のデフォルト店舗(本店)がポイント負担先となります。
       responses:
@@ -3065,7 +3706,7 @@ paths:
                   type: string
                   format: uuid
                   title: 'マネーID'
-                  description: |
+                  description: |-
                     チャージQRコードのチャージ対象のマネーIDで結果をフィルターします。
                 organization_code:
                   type: string
@@ -3078,48 +3719,48 @@ paths:
                   type: string
                   format: date-time
                   title: '有効期限の期間によるフィルター(開始時点)'
-                  description: |
+                  description: |-
                     有効期限の期間によるフィルターの開始時点のタイムスタンプです。
                     デフォルトでは未指定です。
                 expires_to:
                   type: string
                   format: date-time
                   title: '有効期限の期間によるフィルター(終了時点)'
-                  description: |
+                  description: |-
                     有効期限の期間によるフィルターの終了時点のタイムスタンプです。
                     デフォルトでは未指定です。
                 created_from:
                   type: string
                   format: date-time
                   title: '作成日時の期間によるフィルター(開始時点)'
-                  description: |
+                  description: |-
                     作成日時の期間によるフィルターの開始時点のタイムスタンプです。
                     デフォルトでは未指定です。
                 created_to:
                   type: string
                   format: date-time
                   title: '作成日時の期間によるフィルター(終了時点)'
-                  description: |
+                  description: |-
                     作成日時の期間によるフィルターの終了時点のタイムスタンプです。
                     デフォルトでは未指定です。
                 issuer_shop_id:
                   type: string
                   format: uuid
                   title: '発行店舗ID'
-                  description: |
+                  description: |-
                     チャージQRコードを発行した店舗IDによってフィルターします。
                     デフォルトでは未指定です。
                 description:
                   type: string
                   title: 'チャージQRコードの説明文'
-                  description: |
+                  description: |-
                     チャージQRコードの説明文(description)によってフィルターします。
                     部分一致(前方一致)したものを表示します。
                     デフォルトでは未指定です。
                 is_onetime:
                   type: boolean
                   title: 'ワンタイムのチャージQRコードかどうか'
-                  description: |
+                  description: |-
                     チャージQRコードがワンタイムに設定されているかどうかでフィルターします。
                     `true` の場合はワンタイムかどうかでフィルターし、`false`の場合はワンタイムでないものをフィルターします。
                     未指定の場合はフィルターしません。
@@ -3127,7 +3768,7 @@ paths:
                 is_disabled:
                   type: boolean
                   title: '無効化されたチャージQRコードかどうか'
-                  description: |
+                  description: |-
                     チャージQRコードが無効化されているかどうかでフィルターします。
                     `true` の場合は無効なものをフィルターし、`false`の場合は有効なものをフィルターします。
                     未指定の場合はフィルターしません。
@@ -3204,7 +3845,7 @@ paths:
                   minimum: 0
                   format: decimal
                   title: '付与マネー額'
-                  description: |
+                  description: |-
                     チャージQRコードによって付与されるマネー額です。
                     `money_amount`と`point_amount`が両方0になるような更新リクエストはエラーになります。
                 point_amount:
@@ -3212,21 +3853,21 @@ paths:
                   minimum: 0
                   format: decimal
                   title: '付与ポイント額'
-                  description: |
+                  description: |-
                     チャージQRコードによって付与されるポイント額です。
                     `money_amount`と`point_amount`が両方0になるような更新リクエストはエラーになります。
                 description:
                   type: string
                   maxLength: 200
                   title: 'チャージQRコードの説明文'
-                  description: |
+                  description: |-
                     チャージQRコードの説明文です。
                     チャージ取引後は、取引の説明文に転記され、取引履歴などに表示されます。
                   example: 'test check'
                 is_onetime:
                   type: boolean
                   title: 'ワンタイムかどうかのフラグ'
-                  description: |
+                  description: |-
                     チャージQRコードが一度の読み取りで失効するときに`true`にします。
                     `false`の場合、複数ユーザによって読み取り可能なQRコードになります。
                     ただし、その場合も1ユーザにつき1回のみしか読み取れません。
@@ -3234,7 +3875,7 @@ paths:
                   type: integer
                   nullable: true
                   title: 'ワンタイムでない場合の最大読み取り回数'
-                  description: |
+                  description: |-
                     複数ユーザによって読み取り可能なチャージQRコードの最大読み取り回数を指定します。
                     NULLに設定すると無制限に読み取り可能なチャージQRコードになります。
                     ワンタイム指定(`is_onetime`)がされているときは、本パラメータはNULLである必要があります。
@@ -3242,7 +3883,7 @@ paths:
                   type: string
                   format: date-time
                   title: 'チャージQRコード自体の失効日時'
-                  description: |
+                  description: |-
                     チャージQRコード自体の失効日時を指定します。この日時以降はチャージQRコードを読み取れなくなります。
 
                     チャージQRコード自体の失効日時であって、チャージQRコードによって付与されるマネー残高の有効期限とは異なることに注意してください。マネー残高の有効期限はマネー設定で指定されているものになります。
@@ -3251,7 +3892,7 @@ paths:
                   format: date-time
                   nullable: true
                   title: 'チャージQRコードによって付与されるポイント残高の有効期限'
-                  description: |
+                  description: |-
                     チャージQRコードによって付与されるポイント残高の有効起源を指定します。
 
                     チャージQRコードにより付与されるマネー残高の有効期限はQRコード毎には指定できませんが、ポイント残高の有効期限は本パラメータにより、QRコード毎に個別に指定することができます。
@@ -3260,7 +3901,7 @@ paths:
                   minimum: 1
                   nullable: true
                   title: 'チャージQRコードによって付与されるポイント残高の有効期限(相対日数指定)'
-                  description: |
+                  description: |-
                     チャージQRコードによって付与されるポイント残高の有効期限を相対日数で指定します。
                     1を指定すると、チャージQRコード作成日の当日中に失効します(翌日0時に失効)。
                     `point_expires_at`と`point_expires_in_days`が両方指定されている場合は、チャージQRコードによるチャージ取引ができた時点からより近い方が採用されます。
@@ -3270,12 +3911,12 @@ paths:
                   type: string
                   format: uuid
                   title: 'ポイント額を負担する店舗のウォレットID'
-                  description: |
+                  description: |-
                     ポイントチャージをする場合、ポイント額を負担する店舗のウォレットIDを指定することができます。
                 is_disabled:
                   type: boolean
                   title: '無効化されているかどうかのフラグ'
-                  description: |
+                  description: |-
                     チャージQRコードを無効化するときに`true`にします。
                     `false`の場合は無効化されているチャージQRコードを再有効化します。
       responses:
@@ -3535,6 +4176,76 @@ paths:
           $ref: '#/components/responses/Forbidden'
         '422':
           $ref: '#/components/responses/UnprocessableEntity'
+  /transaction-groups:
+    post:
+      tags:
+        - Transaction
+      summary: 'トランザクショングループを作成する'
+      description: |-
+        複数の取引を1つのグループとして管理できるようにします。
+      x-pokepay-operator-name: "CreateTransactionGroup"
+      x-pokepay-allow-server-side: true
+      requestBody:
+        required: true
+        content:
+          application/json:
+            schema:
+              type: object
+              required:
+                - name
+              properties:
+                name:
+                  type: string
+                  maxLength: 64
+                  description: |-
+                    作成するトランザクショングループの名称です。
+                    "pokepay" で始まる文字列は予約済みのため使用できません。
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/TransactionGroup'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+  /transaction-groups/{uuid}:
+    get:
+      tags:
+        - Transaction
+      summary: 'トランザクショングループを取得する'
+      description: 指定したトランザクショングループの詳細を返します。
+      x-pokepay-operator-name: "ShowTransactionGroup"
+      x-pokepay-allow-server-side: true
+      parameters:
+        - name: uuid
+          in: path
+          required: true
+          schema:
+            type: string
+            format: uuid
+          description: 取得したいトランザクショングループID
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/TransactionGroup'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
   /transactions-v2:
     get:
       tags:
@@ -3713,6 +4424,164 @@ paths:
                 $ref: '#/components/schemas/PaginatedTransactionV2'
         '400':
           $ref: '#/components/responses/InvalidParameters'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+  /transactions/bill:
+    get:
+      tags:
+        - Transaction
+      summary: '支払い取引履歴を取得する'
+      description: 支払いによって発生した取引を支払いのデータとともに一覧で返します。
+      x-pokepay-operator-name: "ListBillTransactions"
+      x-pokepay-allow-server-side: true
+      requestBody:
+        required: true
+        content:
+          application/json:
+            schema:
+              properties:
+                private_money_id:
+                  type: string
+                  format: uuid
+                  title: 'マネーID'
+                  description: |-
+                    マネーIDです。
+
+                    指定したマネーでの取引が一覧に表示されます。
+                organization_code:
+                  type: string
+                  pattern: '^[a-zA-Z0-9-]*$'
+                  maxLength: 32
+                  title: '組織コード'
+                  description: |-
+                    組織コードです。
+
+                    フィルターとして使われ、指定された組織の店舗での取引のみ一覧に表示されます。
+                  example: 'pocketchange'
+                shop_id:
+                  type: string
+                  format: uuid
+                  title: '店舗ID'
+                  description: |-
+                    店舗IDです。
+
+                    フィルターとして使われ、指定された店舗での取引のみ一覧に表示されます。
+                customer_id:
+                  type: string
+                  format: uuid
+                  title: 'エンドユーザーID'
+                  description: |-
+                    エンドユーザーIDです。
+
+                    フィルターとして使われ、指定されたエンドユーザーの取引のみ一覧に表示されます。
+                customer_name:
+                  type: string
+                  maxLength: 256
+                  title: 'エンドユーザー名'
+                  description: |-
+                    エンドユーザー名です。
+
+                    フィルターとして使われ、入力された名前に部分一致するエンドユーザーでの取引のみ一覧に表示されます。
+                  example: 太郎
+                terminal_id:
+                   type: string
+                   format: uuid
+                   title: 'エンドユーザー端末ID'
+                   description: |-
+                     エンドユーザーの端末IDです。
+                     フィルターとして使われ、指定された端末での取引のみ一覧に表示されます。
+                description:
+                  type: string
+                  maxLength: 200
+                  title: '取引説明文'
+                  description: |-
+                    取引を指定の取引説明文でフィルターします。
+
+                    取引説明文が完全一致する取引のみ抽出されます。取引説明文は最大200文字で記録されています。
+                  example: 店頭QRコードによる支払い
+                transaction_id:
+                  type: string
+                  format: uuid
+                  title: '取引ID'
+                  description: |-
+                    取引IDです。
+
+                    フィルターとして使われ、指定された取引IDに部分一致(前方一致)する取引のみが一覧に表示されます。
+                bill_id:
+                  type: string
+                  format: uuid
+                  title: '支払いQRコードのID'
+                  description: |-
+                    支払いQRコードのIDです。
+
+                    フィルターとして使われ、指定された支払いQRコードIDに部分一致(前方一致)する取引のみが一覧に表示されます。
+                is_modified:
+                  type: boolean
+                  title: 'キャンセルフラグ'
+                  description: |-
+                    キャンセルフラグです。
+
+                    これにtrueを指定するとキャンセルされた取引のみ一覧に表示されます。
+                    デフォルト値はfalseで、キャンセルの有無にかかわらず一覧に表示されます。
+                from:
+                  type: string
+                  format: date-time
+                  title: '開始日時'
+                  description: |-
+                    抽出期間の開始日時です。
+
+                    フィルターとして使われ、開始日時以降に発生した取引のみ一覧に表示されます。
+                to:
+                  type: string
+                  format: date-time
+                  title: '終了日時'
+                  description: |-
+                    抽出期間の終了日時です。
+
+                    フィルターとして使われ、終了日時以前に発生した取引のみ一覧に表示されます。
+                next_page_cursor_id:
+                  type: string
+                  format: uuid
+                  title: '次ページへ遷移する際に起点となるtransactionのID'
+                  description: |-
+                    次ページへ遷移する際に起点となるtransactionのID(前ページの末尾要素のID)です。
+                    本APIのレスポンスにもnext_page_cursor_idが含まれており、これがnull値の場合は最後のページであることを意味します。
+                    UUIDである場合は次のページが存在することを意味し、このnext_page_cursor_idをリクエストパラメータに含めることで次ページに遷移します。
+
+                    next_page_cursor_idのtransaction自体は次のページには含まれません。
+                prev_page_cursor_id:
+                  type: string
+                  format: uuid
+                  title: '前ページへ遷移する際に起点となるtransactionのID'
+                  description: |-
+                    前ページへ遷移する際に起点となるtransactionのID(次ページの先頭要素のID)です。
+
+                    本APIのレスポンスにもprev_page_cursor_idが含まれており、これがnull値の場合は先頭のページであることを意味します。
+                    UUIDである場合は前のページが存在することを意味し、このprev_page_cursor_idをリクエストパラメータに含めることで前ページに遷移します。
+
+                    prev_page_cursor_idのtransaction自体は前のページには含まれません。
+                per_page:
+                  type: integer
+                  minimum: 1
+                  maximum: 1000
+                  default: 50
+                  title: '1ページ分の取引数'
+                  description: |-
+                    1ページ分の取引数です。
+
+                    デフォルト値は50です。
+                  example: 50
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/PaginatedBillTransaction'
+        '400':
+          $ref: '#/components/responses/InvalidParameters'
+        '403':
+          $ref: '#/components/responses/Forbidden'
   /transactions/topup:
     post:
       tags:
@@ -3814,6 +4683,7 @@ paths:
                     取引作成APIで結果が受け取れなかったなどの理由で再試行する際に、二重に取引が作られてしまうことを防ぐために、クライアント側から指定されます。指定は任意で、UUID V4フォーマットでランダム生成した文字列です。リクエストIDは一定期間で削除されます。
 
                     リクエストIDを指定したとき、まだそのリクエストIDに対する取引がない場合、新規に取引が作られレスポンスとして返されます。もしそのリクエストIDに対する取引が既にある場合、既存の取引がレスポンスとして返されます。
+                    既に存在する、別のユーザによる取引とリクエストIDが衝突した場合、request_id_conflictが返ります。
                   example: '9dbfd997-b948-40d3-a3bf-6bc1a01368d2'
       responses:
         '200':
@@ -3833,7 +4703,7 @@ paths:
       tags:
         - Check
       summary: 'チャージQRコードを読み取ることでチャージする'
-      description: |
+      description: |-
         通常チャージQRコードはエンドユーザーのアプリによって読み取られ、アプリとポケペイサーバとの直接通信によって取引が作られます。 もしエンドユーザーとの通信をパートナーのサーバのみに限定したい場合、パートナーのサーバがチャージQRの情報をエンドユーザーから代理受けして、サーバ間連携APIによって実際のチャージ取引をリクエストすることになります。
 
         エンドユーザーから受け取ったチャージ用QRコードのIDをエンドユーザーIDと共に渡すことでチャージ取引が作られます。
@@ -3872,6 +4742,7 @@ paths:
                     取引作成APIで結果が受け取れなかったなどの理由で再試行する際に、二重に取引が作られてしまうことを防ぐために、クライアント側から指定されます。指定は任意で、UUID V4フォーマットでランダム生成した文字列です。リクエストIDは一定期間で削除されます。
 
                     リクエストIDを指定したとき、まだそのリクエストIDに対する取引がない場合、新規に取引が作られレスポンスとして返されます。もしそのリクエストIDに対する取引が既にある場合、既存の取引がレスポンスとして返されます。
+                    既に存在する、別のユーザによる取引とリクエストIDが衝突した場合、request_id_conflictが返ります。
                   example: '9dbfd997-b948-40d3-a3bf-6bc1a01368d2'
       responses:
         '200':
@@ -3893,7 +4764,7 @@ paths:
       tags:
         - Transaction
       summary: '支払いする'
-      description: |
+      description: |-
         支払取引を作成します。
         支払い時には、エンドユーザーの残高のうち、ポイント残高から優先的に消費されます。
       x-pokepay-operator-name: "CreatePaymentTransaction"
@@ -3956,8 +4827,97 @@ paths:
                     任意入力で、全てのkeyとvalueが文字列であるようなフラットな構造のJSON文字列で指定します。
                   example: |-
                     {"key":"value"}
-                products:
-                  $ref: '#/components/schemas/Products'
+                products:
+                  $ref: '#/components/schemas/Products'
+                request_id:
+                  type: string
+                  format: uuid
+                  title: 'リクエストID'
+                  description: |-
+                    取引作成APIの羃等性を担保するためのリクエスト固有のIDです。
+
+                    取引作成APIで結果が受け取れなかったなどの理由で再試行する際に、二重に取引が作られてしまうことを防ぐために、クライアント側から指定されます。指定は任意で、UUID V4フォーマットでランダム生成した文字列です。リクエストIDは一定期間で削除されます。
+
+                    リクエストIDを指定したとき、まだそのリクエストIDに対する取引がない場合、新規に取引が作られレスポンスとして返されます。もしそのリクエストIDに対する取引が既にある場合、既存の取引がレスポンスとして返されます。
+                    既に存在する、別のユーザによる取引とリクエストIDが衝突した場合、request_id_conflictが返ります。
+                  example: '9dbfd997-b948-40d3-a3bf-6bc1a01368d2'
+                strategy:
+                  type: string
+                  enum: [point-preferred, money-only]
+                  title: '支払い時の残高消費方式'
+                  description: |-
+                    支払い時に残高がどのように消費されるかを指定します。
+                    デフォルトでは point-preferred (ポイント優先)が採用されます。
+
+                    - point-preferred: ポイント残高が優先的に消費され、ポイントがなくなり次第マネー残高から消費されていきます(デフォルト動作)
+                    - money-only: マネー残高のみから消費され、ポイント残高は使われません
+
+                    マネー設定でポイント残高のみの利用に設定されている場合(display_money_and_point が point-only の場合)、 strategy の指定に関わらずポイント優先になります。
+                  example: 'point-preferred'
+                coupon_id:
+                  type: string
+                  format: uuid
+                  title: 'クーポンID'
+                  description: |-
+                    支払いに対して適用するクーポンのIDを指定します。
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/TransactionDetail'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+  /transactions/payment/bill:
+    post:
+      tags:
+        - Bill
+      summary: '支払いQRコードを読み取ることで支払いをする'
+      description: |-
+        通常支払いQRコードはエンドユーザーのアプリによって読み取られ、アプリとポケペイサーバとの直接通信によって取引が作られます。 もしエンドユーザーとの通信をパートナーのサーバのみに限定したい場合、パートナーのサーバが支払いQRの情報をエンドユーザーから代理受けして、サーバ間連携APIによって実際の支払い取引をリクエストすることになります。
+
+        エンドユーザーから受け取った支払いQRコードのIDをエンドユーザーIDと共に渡すことで支払い取引が作られます。
+        支払い時には、エンドユーザーの残高のうち、ポイント残高から優先的に消費されます。
+      x-pokepay-operator-name: "CreatePaymentTransactionWithBill"
+      x-pokepay-allow-server-side: true
+      requestBody:
+        required: true
+        content:
+          application/json:
+            schema:
+              required: ["bill_id", "customer_id"]
+              properties:
+                bill_id:
+                  type: string
+                  format: uuid
+                  title: '支払いQRコードのID'
+                  description: |-
+                    支払いQRコードのIDです。
+
+                    QRコード生成時に送金先店舗のウォレット情報や、支払い金額などが登録されています。
+                customer_id:
+                  type: string
+                  format: uuid
+                  title: 'エンドユーザーのID'
+                  description: |-
+                    エンドユーザーIDです。
+
+                    支払いを行うエンドユーザーを指定します。
+                metadata:
+                  type: string
+                  format: json
+                  title: '取引メタデータ'
+                  description:  |-
+                    取引作成時に指定されるメタデータです。
+
+                    任意入力で、全てのkeyとvalueが文字列であるようなフラットな構造のJSON文字列で指定します。
+                  example: |-
+                    {"key":"value"}
                 request_id:
                   type: string
                   format: uuid
@@ -3968,7 +4928,22 @@ paths:
                     取引作成APIで結果が受け取れなかったなどの理由で再試行する際に、二重に取引が作られてしまうことを防ぐために、クライアント側から指定されます。指定は任意で、UUID V4フォーマットでランダム生成した文字列です。リクエストIDは一定期間で削除されます。
 
                     リクエストIDを指定したとき、まだそのリクエストIDに対する取引がない場合、新規に取引が作られレスポンスとして返されます。もしそのリクエストIDに対する取引が既にある場合、既存の取引がレスポンスとして返されます。
+                    既に存在する、別のユーザによる取引とリクエストIDが衝突した場合、request_id_conflictが返ります。
                   example: '9dbfd997-b948-40d3-a3bf-6bc1a01368d2'
+                strategy:
+                  type: string
+                  enum: [point-preferred, money-only]
+                  default: 'point-preferred'
+                  title: '支払い時の残高消費方式'
+                  description: |-
+                    支払い時に残高がどのように消費されるかを指定します。
+                    デフォルトでは point-preferred (ポイント優先)が採用されます。
+
+                    - point-preferred: ポイント残高が優先的に消費され、ポイントがなくなり次第マネー残高から消費されていきます(デフォルト動作)
+                    - money-only: マネー残高のみから消費され、ポイント残高は使われません
+
+                    マネー設定でポイント残高のみの利用に設定されている場合(display_money_and_point が point-only の場合)、 strategy の指定に関わらずポイント優先になります。
+                  example: 'point-preferred'
       responses:
         '200':
           description: OK
@@ -3980,6 +4955,8 @@ paths:
           $ref: '#/components/responses/BadRequest'
         '403':
           $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
         '422':
           $ref: '#/components/responses/UnprocessableEntity'
   /transactions/cpm:
@@ -3987,7 +4964,7 @@ paths:
       tags:
         - Transaction
       summary: 'CPMトークンによる取引作成'
-      description: |
+      description: |-
         CPMトークンにより取引を作成します。
         CPMトークンに設定されたスコープの取引を作ることができます。
       x-pokepay-operator-name: "CreateCpmTransaction"
@@ -4054,7 +5031,21 @@ paths:
                     取引作成APIで結果が受け取れなかったなどの理由で再試行する際に、二重に取引が作られてしまうことを防ぐために、クライアント側から指定されます。指定は任意で、UUID V4フォーマットでランダム生成した文字列です。リクエストIDは一定期間で削除されます。
 
                     リクエストIDを指定したとき、まだそのリクエストIDに対する取引がない場合、新規に取引が作られレスポンスとして返されます。もしそのリクエストIDに対する取引が既にある場合、既存の取引がレスポンスとして返されます。
+                    既に存在する、別のユーザによる取引とリクエストIDが衝突した場合、request_id_conflictが返ります。
                   example: '9dbfd997-b948-40d3-a3bf-6bc1a01368d2'
+                strategy:
+                  type: string
+                  enum: [point-preferred, money-only]
+                  nullable: true
+                  title: '支払い時の残高消費方式'
+                  description: |-
+                    支払い時に残高がどのように消費されるかを指定します。
+                    エンドユーザーがCPMトークン作成時に指定した残高消費方式と一致するか、どちらか一方のみが指定されている必要があります。
+                    両方が指定されていて値が異なる場合、cpm_token_strategy_conflictが返ります。
+
+                    - point-preferred: ポイント残高が優先的に消費され、ポイントがなくなり次第マネー残高から消費されていきます
+                    - money-only: マネー残高のみから消費され、ポイント残高は使われません
+                  example: 'point-preferred'
       responses:
         '200':
           description: OK
@@ -4125,12 +5116,94 @@ paths:
           $ref: '#/components/responses/Forbidden'
         '422':
           $ref: '#/components/responses/UnprocessableEntity'
+
+  /transactions/cashtray:
+    post:
+      tags:
+        - Cashtray
+      summary: 'CashtrayQRコードを読み取ることで取引する'
+      description: |-
+        エンドユーザーから受け取ったCashtray用QRコードのIDをエンドユーザーIDと共に渡すことで支払いあるいはチャージ取引が作られます。
+
+        通常CashtrayQRコードはエンドユーザーのアプリによって読み取られ、アプリとポケペイサーバとの直接通信によって取引が作られます。
+        もしエンドユーザーとの通信をパートナーのサーバのみに限定したい場合、パートナーのサーバがCashtrayQRの情報をエンドユーザーから代理受けして、サーバ間連携APIによって実際のチャージ取引をリクエストすることになります。
+
+      x-pokepay-operator-name: "CreateTransactionWithCashtray"
+      x-pokepay-allow-server-side: true
+      requestBody:
+        required: true
+        content:
+          application/json:
+            schema:
+              required: ["cashtray_id", "customer_id"]
+              properties:
+                cashtray_id:
+                  type: string
+                  format: uuid
+                  title: 'Cashtray用QRコードのID'
+                  description: |-
+                    Cashtray用QRコードのIDです。
+
+                    QRコード生成時に送金元店舗のウォレット情報や、金額などが登録されています。
+
+                customer_id:
+                  type: string
+                  format: uuid
+                  title: 'エンドユーザーのID'
+                  description: |-
+                    エンドユーザーIDです。
+
+                strategy:
+                  type: string
+                  enum: [point-preferred, money-only]
+                  default: 'point-preferred'
+                  title: '支払い時の残高消費方式'
+                  description: |-
+                    支払い時に残高がどのように消費されるかを指定します。
+                    チャージの場合は無効です。
+                    デフォルトでは point-preferred (ポイント優先)が採用されます。
+
+                    - point-preferred: ポイント残高が優先的に消費され、ポイントがなくなり次第マネー残高から消費されていきます(デフォルト動作)
+                    - money-only: マネー残高のみから消費され、ポイント残高は使われません
+
+                    マネー設定でポイント残高のみの利用に設定されている場合(display_money_and_point が point-only の場合)、 strategy の指定に関わらずポイント優先になります。
+
+                request_id:
+                  type: string
+                  format: uuid
+                  title: 'リクエストID'
+                  description: |-
+                    取引作成APIの羃等性を担保するためのリクエスト固有のIDです。
+
+                    取引作成APIで結果が受け取れなかったなどの理由で再試行する際に、二重に取引が作られてしまうことを防ぐために、クライアント側から指定されます。
+                    指定は任意で、UUID V4フォーマットでランダム生成した文字列です。リクエストIDは一定期間で削除されます。
+
+                    リクエストIDを指定したとき、まだそのリクエストIDに対する取引がない場合、新規に取引が作られレスポンスとして返されます。
+                    もしそのリクエストIDに対する取引が既にある場合、既存の取引がレスポンスとして返されます。
+                    既に存在する、別のユーザによる取引とリクエストIDが衝突した場合、request_id_conflictが返ります。
+                  example: '9dbfd997-b948-40d3-a3bf-6bc1a01368d2'
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/TransactionDetail'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+
   /transactions/transfer:
     post:
       tags:
         - Transaction
       summary: '個人間送金'
-      description: |
+      description: |-
         エンドユーザー間での送金取引(個人間送金)を作成します。
         個人間送金で送れるのはマネーのみで、ポイントを送ることはできません。送金元のマネー残高のうち、有効期限が最も遠いものから順に送金されます。
       x-pokepay-operator-name: "CreateTransferTransaction"
@@ -4203,6 +5276,7 @@ paths:
                     取引作成APIで結果が受け取れなかったなどの理由で再試行する際に、二重に取引が作られてしまうことを防ぐために、クライアント側から指定されます。指定は任意で、UUID V4フォーマットでランダム生成した文字列です。リクエストIDは一定期間で削除されます。
 
                     リクエストIDを指定したとき、まだそのリクエストIDに対する取引がない場合、新規に取引が作られレスポンスとして返されます。もしそのリクエストIDに対する取引が既にある場合、既存の取引がレスポンスとして返されます。
+                    既に存在する、別のユーザによる取引とリクエストIDが衝突した場合、request_id_conflictが返ります。
                   example: '9dbfd997-b948-40d3-a3bf-6bc1a01368d2'
       responses:
         '200':
@@ -4255,6 +5329,7 @@ paths:
                     取引作成APIで結果が受け取れなかったなどの理由で再試行する際に、二重に取引が作られてしまうことを防ぐために、クライアント側から指定されます。指定は任意で、UUID V4フォーマットでランダム生成した文字列です。リクエストIDは一定期間で削除されます。
 
                     リクエストIDを指定したとき、まだそのリクエストIDに対する取引がない場合、新規に取引が作られレスポンスとして返されます。もしそのリクエストIDに対する取引が既にある場合、既存の取引がレスポンスとして返されます。
+                    既に存在する、別のユーザによる取引とリクエストIDが衝突した場合、request_id_conflictが返ります。
                   example: '9dbfd997-b948-40d3-a3bf-6bc1a01368d2'
       responses:
         '200':
@@ -4333,6 +5408,37 @@ paths:
                   title: 'マネーID'
                   description: |-
                     マネーIDです。 マネーを指定します。
+                callback_url:
+                  type: string
+                  nullable: true
+                  format: url
+                  title: コールバックURL
+                  description: |-
+                    一括取引タスクが終了したときに通知されるコールバックURLです。これはオプショナルなパラメータで、未指定の場合は通知されません。
+
+                    指定したURLに対して、以下の内容のリクエストがPOSTメソッドで送信されます。
+
+                    リクエスト例:
+                     {
+                      "bulk_transaction_id": "c9a0b2c0-e8d0-4a7f-9b1d-2f0c3e1a8b7a",
+                      "request_id": "1640e29f-157a-46e2-af05-c402726cbf2b",
+                      "completed_at": "2025-09-26T14:30:00Z",
+                      "status": "done",
+                      "success_count": 98,
+                      "total_count": 100
+                    }
+
+                    - bulk_transaction_id: 一括取引タスクのタスクID
+                    - request_id: 本APIにクライアント側から指定したrequest_id
+                    - completed_at: 完了時刻
+                    - status: 終了時の状態。done (完了状態) か error (エラー) のいずれか
+                    - success_count: 成功件数
+                    - total_count: 総件数
+
+                    リトライ戦略について:
+                    対象URLにPOSTした結果、500, 502, 503, 504エラーを受け取ったとき、またはタイムアウト (10秒)したときに、最大3回までリトライします。
+                    成功通知が複数回送信されることもありえるため、request_idで排他処理を行なってください。
+
       responses:
         '200':
           description: OK
@@ -4470,7 +5576,7 @@ paths:
       tags:
         - Event
       summary: 'ポケペイ外部取引を作成する'
-      description: |
+      description: |-
         ポケペイ外部取引を作成します。
 
         ポケペイ外の現金決済やクレジットカード決済に対してポケペイのポイントを付けたいというときに使用します。
@@ -4549,6 +5655,14 @@ paths:
 
                     リクエストIDを指定したとき、まだそのリクエストIDに対する取引がない場合、新規に取引が作られレスポンスとして返されます。もしそのリクエストIDに対する取引が既にある場合、既存の取引がレスポンスとして返されます。
                   example: 9dbfd997-b948-40d3-a3bf-6bc1a01368d2
+                done_at:
+                  type: string
+                  format: date-time
+                  title: 'ポケペイ外部取引の実施時間'
+                  description: |-
+                    ポケペイ外部取引が実際に起こった時間です。
+                    時間帯指定のポイント付与キャンペーンでの取引時間の計算に使われます。
+                    デフォルトではCreateExternalTransactionがリクエストされた時間になります。
       responses:
         '200':
           description: OK
@@ -5100,14 +6214,14 @@ paths:
                   pattern: '^[a-zA-Z0-9-]*$'
                   maxLength: 32
                   title: '組織コード'
-                  description: |
+                  description: |-
                     このパラメータを渡すとその組織の店舗のみが返され、省略すると加盟店も含む店舗が返されます。
                   example: 'pocketchange'
                 private_money_id:
                   type: string
                   format: uuid
                   title: 'マネーID'
-                  description: |
+                  description: |-
                     このパラメータを渡すとそのマネーのウォレットを持つ店舗のみが返されます。
                 name:
                   type: string
@@ -5115,44 +6229,44 @@ paths:
                   maxLength: 256
                   title: '店舗名'
                   example: 'oxスーパー三田店'
-                  description: |
+                  description: |-
                     このパラメータを渡すとその名前の店舗のみが返されます。
                 postal_code:
                   type: string
                   pattern: '^[0-9]{3}-?[0-9]{4}$'
                   title: '店舗の郵便番号'
-                  description: |
+                  description: |-
                     このパラメータを渡すとその郵便番号が登録された店舗のみが返されます。
                 address:
                   type: string
                   maxLength: 256
                   title: '店舗の住所'
                   example: '東京都港区芝...'
-                  description: |
+                  description: |-
                     このパラメータを渡すとその住所が登録された店舗のみが返されます。
                 tel:
                   type: string
                   pattern: '^0[0-9]{1,3}-?[0-9]{2,4}-?[0-9]{3,4}$'
                   title: '店舗の電話番号'
-                  description: |
+                  description: |-
                     このパラメータを渡すとその電話番号が登録された店舗のみが返されます。
                 email:
                   type: string
                   format: email
                   maxLength: 256
                   title: '店舗のメールアドレス'
-                  description: |
+                  description: |-
                     このパラメータを渡すとそのメールアドレスが登録された店舗のみが返されます。
                 external_id:
                   type: string
                   maxLength: 36
                   title: '店舗の外部ID'
-                  description: |
+                  description: |-
                     このパラメータを渡すとその外部IDが登録された店舗のみが返されます。
                 with_disabled:
                   type: boolean
                   title: '無効な店舗を含める'
-                  description: |
+                  description: |-
                     このパラメータを渡すと無効にされた店舗を含めて返されます。デフォルトでは無効にされた店舗は返されません。
                 page:
                   type: integer
@@ -5631,6 +6745,54 @@ paths:
           $ref: '#/components/responses/NotFound'
         '422':
           $ref: '#/components/responses/UnprocessableEntity'
+  /customers/{customer_id}/cards:
+    get:
+      tags:
+        - Customer
+      summary: 'エンドユーザーのクレジットカード一覧を取得する'
+      description: |-
+        エンドユーザーのクレジットカード一覧を取得します。
+        3D Secure認証済みのカードのみが返されます。
+        idはcredit-sessions作成時に使用できます。
+      x-pokepay-operator-name: "GetCustomerCards"
+      x-pokepay-allow-server-side: true
+      parameters:
+        - in: path
+          name: customer_id
+          required: true
+          schema:
+            type: string
+            format: uuid
+            title: 'エンドユーザーID'
+          description: エンドユーザーのIDです。
+      requestBody:
+        required: true
+        content:
+          application/json:
+            schema:
+              properties:
+                page:
+                  type: integer
+                  minimum: 1
+                  title: 'ページ番号'
+                  description: 取得したいページ番号です。デフォルト値は1です。
+                per_page:
+                  type: integer
+                  minimum: 1
+                  maximum: 100
+                  title: '1ページ分の要素数'
+                  description: 1ページ当たりの要素数です。デフォルト値は30です。
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/PaginatedUserCards'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
   /customers/transactions:
     get:
       tags:
@@ -5823,7 +6985,7 @@ paths:
       tags:
         - Cashtray
       summary: 'Cashtrayを作る'
-      description: |
+      description: |-
         Cashtrayを作成します。
 
         エンドユーザーに対して支払いまたはチャージを行う店舗の情報(店舗ユーザーIDとマネーID)と、取引金額が必須項目です。
@@ -6076,7 +7238,7 @@ paths:
       tags:
         - Campaign
       summary: 'ポイント付与キャンペーンを作る'
-      description: |
+      description: |-
         ポイント付与キャンペーンを作成します。
       x-pokepay-operator-name: "CreateCampaign"
       x-pokepay-allow-server-side: true
@@ -6086,6 +7248,8 @@ paths:
           application/json:
             schema:
               required: ["name", "private_money_id", "starts_at", "ends_at","priority", "event"]
+              x-pokepay-conditional-parameters:
+                xor: [applicable_shop_ids, blacklisted_shop_ids]
               properties:
                 name:
                   title: 'キャンペーン名'
@@ -6358,6 +7522,13 @@ paths:
                         description: |-
                           キャンペーン対象の商品を複数個購入したときに、個数に応じてポイント付与額を増やすかどうかのフラグです。
                           デフォルト値は false です。
+                      is_floor_after_multiply:
+                        type: boolean
+                        title: '小数点以下切り捨てを個数を掛けた後に行うかどうか'
+                        description: |-
+                          is_multiply_by_countが指定されたとき、デフォルトでは商品ごとに付与ポイントが計算された後、少数点以下切り捨てが行なわれ、その後商品個数が掛けられます。
+                          このフラグを有効にすると、商品ごとに付与ポイントが計算された後、商品個数が掛けられ、その後に少数点以下切り捨てが行なわれるようになります。
+                          デフォルト値は false です。
                       starts_at:
                         type: string
                         format: date-time
@@ -6520,6 +7691,16 @@ paths:
                   description: |-
                     キャンペーンを適用する店舗IDを指定します (複数指定)。
                     指定しなかった場合は全店舗が対象になります。
+                blacklisted_shop_ids:
+                  type: array
+                  items:
+                    type: string
+                    format: uuid
+                  title: 'キャンペーン適用対象外となる店舗IDのリスト(ブラックリスト方式)'
+                  description: |-
+                    キャンペーンの適用対象外となる店舗IDをブラックリスト方式で指定します (複数指定可)。
+                    このパラメータが指定されている場合、blacklisted_shop_idsに含まれていない店舗全てがキャンペーンの適用対象になります。
+                    blacklisted_shop_idsとapplicable_shop_idsは同時には指定できません。ホワイトリスト方式を使うときはapplicable_shop_idsを指定してください。
                 minimum_number_of_products:
                   type: integer
                   minimum: 1
@@ -6893,12 +8074,14 @@ paths:
                     デフォルトでは未指定(フィルターなし)です。
                 page:
                   type: integer
+                  default: 1
                   minimum: 1
                   title: 'ページ番号'
                   description: 取得したいページ番号です。
                   example: 1
                 per_page:
                   type: integer
+                  default: 20
                   minimum: 1
                   maximum: 50
                   title: '1ページ分の取得数'
@@ -6955,7 +8138,7 @@ paths:
       tags:
         - Campaign
       summary: 'ポイント付与キャンペーンを更新する'
-      description: |
+      description: |-
         ポイント付与キャンペーンを更新します。
       x-pokepay-operator-name: "UpdateCampaign"
       x-pokepay-allow-server-side: true
@@ -6976,6 +8159,8 @@ paths:
         content:
           application/json:
             schema:
+              x-pokepay-conditional-parameters:
+                xor: [applicable_shop_ids, blacklisted_shop_ids]
               properties:
                 name:
                   title: 'キャンペーン名'
@@ -7238,6 +8423,13 @@ paths:
                         description: |-
                           キャンペーン対象の商品を複数個購入したときに、個数に応じてポイント付与額を増やすかどうかのフラグです。
                           デフォルト値は false です。
+                      is_floor_after_multiply:
+                        type: boolean
+                        title: '小数点以下切り捨てを個数を掛けた後に行うかどうか'
+                        description: |-
+                          is_multiply_by_countが指定されたとき、デフォルトでは商品ごとに付与ポイントが計算された後、少数点以下切り捨てが行なわれ、その後商品個数が掛けられます。
+                          このフラグを有効にすると、商品ごとに付与ポイントが計算された後、商品個数が掛けられ、その後に少数点以下切り捨てが行なわれるようになります。
+                          デフォルト値は false です。
                       starts_at:
                         type: string
                         format: date-time
@@ -7404,6 +8596,17 @@ paths:
                   description: |-
                     キャンペーンを適用する店舗IDを指定します (複数指定)。
                     指定しなかった場合は全店舗が対象になります。
+                blacklisted_shop_ids:
+                  type: array
+                  items:
+                    type: string
+                    format: uuid
+                  nullable: true
+                  title: 'キャンペーン適用対象外となる店舗IDのリスト(ブラックリスト方式)'
+                  description: |-
+                    キャンペーンの適用対象外となる店舗IDをブラックリスト方式で指定します (複数指定可)。
+                    このパラメータが指定されている場合、blacklisted_shop_idsに含まれていない店舗全てがキャンペーンの適用対象になります。
+                    blacklisted_shop_idsとapplicable_shop_idsは同時には指定できません。ホワイトリスト方式を使うときはapplicable_shop_idsを指定してください。
                 minimum_number_of_products:
                   type: integer
                   minimum: 1
@@ -7789,6 +8992,50 @@ paths:
         '503':
           $ref: '#/components/responses/UserStatsOperationServiceUnavailable'
 
+  /user-stats/terminate:
+    post:
+      tags:
+        - Transaction
+      summary: 'RequestUserStatsのタスクを強制終了する'
+      description: |-
+        RequestUserStatsによるファイル生成のタスクを強制終了するためのAPIです。
+        RequestUserStatsのレスポンス中の `operation_id` をキーにして強制終了リクエストを送ります。
+        既に集計タスクが終了している場合は何も行いません。
+        発行体に対して結果通知用のWebhook URLが設定されている場合、強制終了成功時には以下のような内容のPOSTリクエストが送られます。
+
+        - task: "process_user_stats_operation"
+        - operation_id: 強制終了対象のタスクID
+        - status: "terminated"
+      x-pokepay-operator-name: "TerminateUserStats"
+      x-pokepay-allow-server-side: true
+      requestBody:
+        required: true
+        content:
+          application/json:
+            schema:
+              required: ["operation_id"]
+              properties:
+                operation_id:
+                  type: string
+                  format: uuid
+                  title: '集計タスクID'
+                  description: |-
+                    強制終了対象の集計タスクIDです。
+                    必須パラメータであり、指定されたタスクIDが存在しない場合は `user_stats_operation_not_found`エラー(422)が返ります。
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/UserStatsOperation'
+        '400':
+          $ref: '#/components/responses/InvalidParameters'
+        '403':
+          $ref: '#/components/responses/UnpermittedAdminUser'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+
   /webhooks:
     post:
       x-pokepay-operator-name: "CreateWebhook"
@@ -7975,7 +9222,7 @@ paths:
                   type: string
                   format: json
                   title: ユーザーデバイスのメタデータ
-                  description: |
+                  description: |-
                     ユーザーのデバイス用の情報をメタデータを保持するために用います。
                     例: 端末の固有情報やブラウザのUser-Agent
                   example: '{"user_agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:120.0) Gecko/20100101 Firefox/120.0"}'
@@ -8032,7 +9279,7 @@ paths:
       tags:
         - UserDevice
       summary: デバイスの有効化
-      description: |
+      description: |-
         指定のデバイスを有効化し、それ以外の同一ユーザーのデバイスを無効化します。
       parameters:
         - in: path
@@ -8067,7 +9314,7 @@ paths:
       tags:
         - BankPay
       summary: 銀行口座の登録
-      description: |
+      description: |-
         銀行口座の登録を始めるAPIです。レスポンスに含まれるredirect_urlをユーザーの端末で開き銀行を登録します。
 
         ユーザーが銀行口座の登録に成功すると、callback_urlにリクエストが行われます。
@@ -8167,6 +9414,46 @@ paths:
           $ref: '#/components/responses/NotFound'
         '422':
           $ref: '#/components/responses/UnprocessableEntity'
+    delete:
+      x-pokepay-operator-name: "DeleteBank"
+      x-pokepay-allow-server-side: true
+      tags:
+        - BankPay
+      summary: 銀行口座の削除
+      description: 銀行口座を削除します
+      parameters:
+        - in: path
+          name: user_device_id
+          required: true
+          schema:
+            type: string
+            format: uuid
+            title: "デバイスID"
+      requestBody:
+        required: true
+        content:
+          application/json:
+            schema:
+              required: [bank_id]
+              properties:
+                bank_id:
+                  type: string
+                  format: uuid
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/BankDeleted'
+        '400':
+          $ref: '#/components/responses/InvalidParameters'
+        '403':
+          $ref: '#/components/responses/UnpermittedAdminUser'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
 
   /user-devices/{user_device_id}/banks/topup:
     post:
@@ -8203,6 +9490,10 @@ paths:
                   type: string
                   format: uuid
                   title: '銀行ID'
+                receiver_user_id:
+                  type: string
+                  format: uuid
+                  title: '受け取りユーザーID (デフォルトは自身)'
                 request_id:
                   type: string
                   format: uuid
@@ -8242,41 +9533,41 @@ paths:
                   type: string
                   format: uuid
                   title: '対象クーポンのマネーID'
-                  description: |
+                  description: |-
                     対象クーポンのマネーIDです(必須項目)。
                     存在しないマネーIDを指定した場合はprivate_money_not_foundエラー(422)が返ります。
                 coupon_id:
                   type: string
                   title: 'クーポンID'
-                  description: |
+                  description: |-
                     指定されたクーポンIDで結果をフィルターします。
                     部分一致(前方一致)します。
                 coupon_name:
                   type: string
                   title: 'クーポン名'
-                  description: |
+                  description: |-
                     指定されたクーポン名で結果をフィルターします。
                 issued_shop_name:
                   type: string
                   title: '発行店舗名'
-                  description: |
+                  description: |-
                     指定された発行店舗で結果をフィルターします。
                 available_shop_name:
                   type: string
                   title: '利用可能店舗名'
-                  description: |
+                  description: |-
                     指定された利用可能店舗で結果をフィルターします。
                 available_from:
                   type: string
                   format: date-time
                   title: '利用可能期間 (開始日時)'
-                  description: |
+                  description: |-
                     利用可能期間でフィルターします。フィルターの開始日時をISO8601形式で指定します。
                 available_to:
                   type: string
                   format: date-time
                   title: '利用可能期間 (終了日時)'
-                  description: |
+                  description: |-
                     利用可能期間でフィルターします。フィルターの終了日時をISO8601形式で指定します。
                 page:
                   type: integer
@@ -8360,7 +9651,7 @@ paths:
                 is_hidden:
                   type: boolean
                   title: 'クーポン一覧に掲載されるかどうか'
-                  description: |
+                  description: |-
                     アプリに表示されるクーポン一覧に掲載されるかどうか。
                     主に一時的に掲載から外したいときに用いられる。そのためis_publicの設定よりも優先される。
                 is_public:
@@ -8394,6 +9685,10 @@ paths:
                   format: uuid
                   title: "ストレージID"
                   description: "Storage APIでアップロードしたクーポン画像のStorage IDを指定します"
+                num_recipients_cap:
+                  type: integer
+                  minimum: 1
+                  title: 'クーポンを受け取ることができるユーザ数上限'
       responses:
         '200':
           description: OK
@@ -8505,7 +9800,7 @@ paths:
                 is_hidden:
                   type: boolean
                   title: 'クーポン一覧に掲載されるかどうか'
-                  description: |
+                  description: |-
                     アプリに表示されるクーポン一覧に掲載されるかどうか。
                     主に一時的に掲載から外したいときに用いられる。そのためis_publicの設定よりも優先される。
                 is_public:
@@ -8537,6 +9832,10 @@ paths:
                   format: uuid
                   title: "ストレージID"
                   description: "Storage APIでアップロードしたクーポン画像のStorage IDを指定します"
+                num_recipients_cap:
+                  type: integer
+                  minimum: 1
+                  title: 'クーポンを受け取ることができるユーザ数上限'
       responses:
         '200':
           description: OK
@@ -8552,3 +9851,36 @@ paths:
           $ref: '#/components/responses/NotFound'
         '422':
           $ref: '#/components/responses/UnprocessableEntity'
+
+  /seven-bank-atm-sessions/{qr_info}:
+    get:
+      x-pokepay-operator-name: "GetSevenBankATMSession"
+      x-pokepay-allow-server-side: true
+      tags:
+        - SevenBankATMSession
+      summary: セブン銀行ATMセッションの取得
+      description: セブン銀行ATMセッションを取得します
+      parameters:
+        - in: path
+          name: qr_info
+          required: true
+          schema:
+            type: string
+            title: 'QRコードの情報'
+          description: |-
+            取得するセブン銀行ATMチャージのQRコードの情報です。
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/SevenBankATMSession'
+        '400':
+          $ref: '#/components/responses/InvalidParameters'
+        '403':
+          $ref: '#/components/responses/UnpermittedAdminUser'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
diff --git a/pokepay/__init__.py b/pokepay/__init__.py
index 405127c..1cadbac 100644
--- a/pokepay/__init__.py
+++ b/pokepay/__init__.py
@@ -7,12 +7,15 @@
 from pokepay.response.response import *
 from pokepay.request.get_ping import *
 from pokepay.request.send_echo import *
+from pokepay.request.post_credit_session import *
+from pokepay.request.create_credit_session_transaction import *
+from pokepay.request.capture_credit_session import *
 from pokepay.request.get_user import *
 from pokepay.request.list_user_accounts import *
 from pokepay.request.create_user_account import *
+from pokepay.request.delete_account import *
 from pokepay.request.get_account import *
 from pokepay.request.update_account import *
-from pokepay.request.delete_account import *
 from pokepay.request.list_account_balances import *
 from pokepay.request.list_account_expired_balances import *
 from pokepay.request.update_customer_account import *
@@ -22,16 +25,25 @@
 from pokepay.request.get_shop_accounts import *
 from pokepay.request.list_bills import *
 from pokepay.request.create_bill import *
+from pokepay.request.get_bill import *
 from pokepay.request.update_bill import *
+from pokepay.request.list_checks import *
 from pokepay.request.create_check import *
+from pokepay.request.get_check import *
+from pokepay.request.update_check import *
 from pokepay.request.get_cpm_token import *
 from pokepay.request.list_transactions import *
 from pokepay.request.create_transaction import *
+from pokepay.request.create_transaction_group import *
+from pokepay.request.show_transaction_group import *
 from pokepay.request.list_transactions_v2 import *
+from pokepay.request.list_bill_transactions import *
 from pokepay.request.create_topup_transaction import *
 from pokepay.request.create_topup_transaction_with_check import *
 from pokepay.request.create_payment_transaction import *
+from pokepay.request.create_payment_transaction_with_bill import *
 from pokepay.request.create_cpm_transaction import *
+from pokepay.request.create_transaction_with_cashtray import *
 from pokepay.request.create_transfer_transaction import *
 from pokepay.request.create_exchange_transaction import *
 from pokepay.request.bulk_create_transaction import *
@@ -40,8 +52,10 @@
 from pokepay.request.get_transaction_by_request_id import *
 from pokepay.request.create_external_transaction import *
 from pokepay.request.refund_external_transaction import *
+from pokepay.request.get_external_transaction_by_request_id import *
 from pokepay.request.list_transfers import *
 from pokepay.request.list_transfers_v2 import *
+from pokepay.request.list_organizations import *
 from pokepay.request.create_organization import *
 from pokepay.request.list_shops import *
 from pokepay.request.create_shop import *
@@ -51,20 +65,43 @@
 from pokepay.request.get_private_moneys import *
 from pokepay.request.get_private_money_organization_summaries import *
 from pokepay.request.get_private_money_summary import *
+from pokepay.request.get_customer_cards import *
 from pokepay.request.list_customer_transactions import *
 from pokepay.request.get_bulk_transaction import *
 from pokepay.request.list_bulk_transaction_jobs import *
 from pokepay.request.create_cashtray import *
-from pokepay.request.get_cashtray import *
 from pokepay.request.cancel_cashtray import *
+from pokepay.request.get_cashtray import *
 from pokepay.request.update_cashtray import *
-from pokepay.request.create_campaign import *
 from pokepay.request.list_campaigns import *
+from pokepay.request.create_campaign import *
 from pokepay.request.get_campaign import *
 from pokepay.request.update_campaign import *
 from pokepay.request.request_user_stats import *
+from pokepay.request.terminate_user_stats import *
+from pokepay.request.list_webhooks import *
+from pokepay.request.create_webhook import *
+from pokepay.request.delete_webhook import *
+from pokepay.request.update_webhook import *
+from pokepay.request.create_user_device import *
+from pokepay.request.get_user_device import *
+from pokepay.request.activate_user_device import *
+from pokepay.request.delete_bank import *
+from pokepay.request.list_banks import *
+from pokepay.request.create_bank import *
+from pokepay.request.create_bank_topup_transaction import *
+from pokepay.request.list_coupons import *
+from pokepay.request.create_coupon import *
+from pokepay.request.get_coupon import *
+from pokepay.request.update_coupon import *
+from pokepay.request.get_seven_bank_atm_session import *
 from pokepay.response.pong import *
 from pokepay.response.echo import *
+from pokepay.response.credit_session import *
+from pokepay.response.captured_credit_session import *
+from pokepay.response.credit_session_transaction_result import *
+from pokepay.response.user_card import *
+from pokepay.response.paginated_user_cards import *
 from pokepay.response.pagination import *
 from pokepay.response.admin_user_with_shops_and_private_moneys import *
 from pokepay.response.account import *
@@ -75,6 +112,7 @@
 from pokepay.response.account_balance import *
 from pokepay.response.bill import *
 from pokepay.response.check import *
+from pokepay.response.paginated_checks import *
 from pokepay.response.cpm_token import *
 from pokepay.response.cashtray import *
 from pokepay.response.cashtray_with_result import *
@@ -84,23 +122,31 @@
 from pokepay.response.organization import *
 from pokepay.response.transaction import *
 from pokepay.response.transaction_detail import *
+from pokepay.response.transaction_group import *
+from pokepay.response.bill_transaction import *
 from pokepay.response.shop_with_metadata import *
 from pokepay.response.shop_with_accounts import *
-from pokepay.response.user_transaction import *
 from pokepay.response.bulk_transaction import *
 from pokepay.response.bulk_transaction_job import *
 from pokepay.response.paginated_bulk_transaction_job import *
 from pokepay.response.account_without_private_money_detail import *
 from pokepay.response.transfer import *
 from pokepay.response.external_transaction import *
+from pokepay.response.external_transaction_detail import *
 from pokepay.response.product import *
 from pokepay.response.organization_summary import *
 from pokepay.response.private_money_organization_summary import *
 from pokepay.response.paginated_private_money_organization_summaries import *
 from pokepay.response.private_money_summary import *
 from pokepay.response.user_stats_operation import *
+from pokepay.response.user_device import *
+from pokepay.response.bank_registering_info import *
+from pokepay.response.bank import *
+from pokepay.response.banks import *
+from pokepay.response.bank_deleted import *
 from pokepay.response.paginated_transaction import *
 from pokepay.response.paginated_transaction_v2 import *
+from pokepay.response.paginated_bill_transaction import *
 from pokepay.response.paginated_transfers import *
 from pokepay.response.paginated_transfers_v2 import *
 from pokepay.response.paginated_accounts import *
@@ -114,6 +160,13 @@
 from pokepay.response.paginated_campaigns import *
 from pokepay.response.account_transfer_summary_element import *
 from pokepay.response.account_transfer_summary import *
+from pokepay.response.organization_worker_task_webhook import *
+from pokepay.response.paginated_organization_worker_task_webhook import *
+from pokepay.response.coupon import *
+from pokepay.response.coupon_detail import *
+from pokepay.response.paginated_coupons import *
+from pokepay.response.paginated_organizations import *
+from pokepay.response.seven_bank_atm_session import *
 from pokepay.response.bad_request import *
 from pokepay.response.partner_client_not_found import *
 from pokepay.response.partner_decryption_failed import *
diff --git a/pokepay/request/activate_user_device.py b/pokepay/request/activate_user_device.py
new file mode 100644
index 0000000..f767299
--- /dev/null
+++ b/pokepay/request/activate_user_device.py
@@ -0,0 +1,15 @@
+# DO NOT EDIT: File is generated by code generator.
+
+from pokepay.request.request import PokepayRequest
+from pokepay.response.user_device import UserDevice
+
+
+class ActivateUserDevice(PokepayRequest):
+    def __init__(self, user_device_id):
+        self.path = "/user-devices" + "/" + user_device_id + "/activate"
+        self.method = "POST"
+        self.body_params = {}
+        
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
+        self.response_class = UserDevice
diff --git a/pokepay/request/bulk_create_transaction.py b/pokepay/request/bulk_create_transaction.py
index 81391cd..747f234 100644
--- a/pokepay/request/bulk_create_transaction.py
+++ b/pokepay/request/bulk_create_transaction.py
@@ -12,4 +12,6 @@ def __init__(self, name, content, request_id, **rest_args):
                             "content": content,
                             "request_id": request_id}
         self.body_params.update(rest_args)
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
         self.response_class = BulkTransaction
diff --git a/pokepay/request/cancel_cashtray.py b/pokepay/request/cancel_cashtray.py
index 475f921..c3e0eb5 100644
--- a/pokepay/request/cancel_cashtray.py
+++ b/pokepay/request/cancel_cashtray.py
@@ -10,4 +10,6 @@ def __init__(self, cashtray_id):
         self.method = "DELETE"
         self.body_params = {}
         
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
         self.response_class = Cashtray
diff --git a/pokepay/request/capture_credit_session.py b/pokepay/request/capture_credit_session.py
new file mode 100644
index 0000000..eb3524e
--- /dev/null
+++ b/pokepay/request/capture_credit_session.py
@@ -0,0 +1,15 @@
+# DO NOT EDIT: File is generated by code generator.
+
+from pokepay.request.request import PokepayRequest
+from pokepay.response.captured_credit_session import CapturedCreditSession
+
+
+class CaptureCreditSession(PokepayRequest):
+    def __init__(self, session_id, **rest_args):
+        self.path = "/credit-sessions" + "/" + session_id + "/capture"
+        self.method = "POST"
+        self.body_params = {}
+        self.body_params.update(rest_args)
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
+        self.response_class = CapturedCreditSession
diff --git a/pokepay/request/create_bank.py b/pokepay/request/create_bank.py
new file mode 100644
index 0000000..68226c5
--- /dev/null
+++ b/pokepay/request/create_bank.py
@@ -0,0 +1,17 @@
+# DO NOT EDIT: File is generated by code generator.
+
+from pokepay.request.request import PokepayRequest
+from pokepay.response.bank_registering_info import BankRegisteringInfo
+
+
+class CreateBank(PokepayRequest):
+    def __init__(self, user_device_id, private_money_id, callback_url, kana, **rest_args):
+        self.path = "/user-devices" + "/" + user_device_id + "/banks"
+        self.method = "POST"
+        self.body_params = {"private_money_id": private_money_id,
+                            "callback_url": callback_url,
+                            "kana": kana}
+        self.body_params.update(rest_args)
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
+        self.response_class = BankRegisteringInfo
diff --git a/pokepay/request/create_bank_topup_transaction.py b/pokepay/request/create_bank_topup_transaction.py
new file mode 100644
index 0000000..105f963
--- /dev/null
+++ b/pokepay/request/create_bank_topup_transaction.py
@@ -0,0 +1,18 @@
+# DO NOT EDIT: File is generated by code generator.
+
+from pokepay.request.request import PokepayRequest
+from pokepay.response.transaction_detail import TransactionDetail
+
+
+class CreateBankTopupTransaction(PokepayRequest):
+    def __init__(self, user_device_id, private_money_id, amount, bank_id, request_id, **rest_args):
+        self.path = "/user-devices" + "/" + user_device_id + "/banks" + "/topup"
+        self.method = "POST"
+        self.body_params = {"private_money_id": private_money_id,
+                            "amount": amount,
+                            "bank_id": bank_id,
+                            "request_id": request_id}
+        self.body_params.update(rest_args)
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
+        self.response_class = TransactionDetail
diff --git a/pokepay/request/create_bill.py b/pokepay/request/create_bill.py
index 04a794e..ae0c0b6 100644
--- a/pokepay/request/create_bill.py
+++ b/pokepay/request/create_bill.py
@@ -11,4 +11,6 @@ def __init__(self, private_money_id, shop_id, **rest_args):
         self.body_params = {"private_money_id": private_money_id,
                             "shop_id": shop_id}
         self.body_params.update(rest_args)
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
         self.response_class = Bill
diff --git a/pokepay/request/create_campaign.py b/pokepay/request/create_campaign.py
index 81ce7dc..aa6f776 100644
--- a/pokepay/request/create_campaign.py
+++ b/pokepay/request/create_campaign.py
@@ -15,4 +15,6 @@ def __init__(self, name, private_money_id, starts_at, ends_at, priority, event,
                             "priority": priority,
                             "event": event}
         self.body_params.update(rest_args)
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
         self.response_class = Campaign
diff --git a/pokepay/request/create_cashtray.py b/pokepay/request/create_cashtray.py
index 5e2edb6..8264600 100644
--- a/pokepay/request/create_cashtray.py
+++ b/pokepay/request/create_cashtray.py
@@ -12,4 +12,6 @@ def __init__(self, private_money_id, shop_id, amount, **rest_args):
                             "shop_id": shop_id,
                             "amount": amount}
         self.body_params.update(rest_args)
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
         self.response_class = Cashtray
diff --git a/pokepay/request/create_check.py b/pokepay/request/create_check.py
index 4f92acf..cd8f5aa 100644
--- a/pokepay/request/create_check.py
+++ b/pokepay/request/create_check.py
@@ -10,4 +10,6 @@ def __init__(self, account_id, **rest_args):
         self.method = "POST"
         self.body_params = {"account_id": account_id}
         self.body_params.update(rest_args)
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
         self.response_class = Check
diff --git a/pokepay/request/create_coupon.py b/pokepay/request/create_coupon.py
new file mode 100644
index 0000000..abbc9ba
--- /dev/null
+++ b/pokepay/request/create_coupon.py
@@ -0,0 +1,19 @@
+# DO NOT EDIT: File is generated by code generator.
+
+from pokepay.request.request import PokepayRequest
+from pokepay.response.coupon_detail import CouponDetail
+
+
+class CreateCoupon(PokepayRequest):
+    def __init__(self, private_money_id, name, starts_at, ends_at, issued_shop_id, **rest_args):
+        self.path = "/coupons"
+        self.method = "POST"
+        self.body_params = {"private_money_id": private_money_id,
+                            "name": name,
+                            "starts_at": starts_at,
+                            "ends_at": ends_at,
+                            "issued_shop_id": issued_shop_id}
+        self.body_params.update(rest_args)
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
+        self.response_class = CouponDetail
diff --git a/pokepay/request/create_cpm_transaction.py b/pokepay/request/create_cpm_transaction.py
index f819a33..2e8d988 100644
--- a/pokepay/request/create_cpm_transaction.py
+++ b/pokepay/request/create_cpm_transaction.py
@@ -12,4 +12,6 @@ def __init__(self, cpm_token, shop_id, amount, **rest_args):
                             "shop_id": shop_id,
                             "amount": amount}
         self.body_params.update(rest_args)
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
         self.response_class = TransactionDetail
diff --git a/pokepay/request/create_credit_session_transaction.py b/pokepay/request/create_credit_session_transaction.py
new file mode 100644
index 0000000..43a1687
--- /dev/null
+++ b/pokepay/request/create_credit_session_transaction.py
@@ -0,0 +1,15 @@
+# DO NOT EDIT: File is generated by code generator.
+
+from pokepay.request.request import PokepayRequest
+from pokepay.response.credit_session_transaction_result import CreditSessionTransactionResult
+
+
+class CreateCreditSessionTransaction(PokepayRequest):
+    def __init__(self, session_id, amount, **rest_args):
+        self.path = "/credit-sessions" + "/" + session_id + "/transactions"
+        self.method = "POST"
+        self.body_params = {"amount": amount}
+        self.body_params.update(rest_args)
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
+        self.response_class = CreditSessionTransactionResult
diff --git a/pokepay/request/create_customer_account.py b/pokepay/request/create_customer_account.py
index 61f53d3..808c270 100644
--- a/pokepay/request/create_customer_account.py
+++ b/pokepay/request/create_customer_account.py
@@ -10,4 +10,6 @@ def __init__(self, private_money_id, **rest_args):
         self.method = "POST"
         self.body_params = {"private_money_id": private_money_id}
         self.body_params.update(rest_args)
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
         self.response_class = AccountWithUser
diff --git a/pokepay/request/create_exchange_transaction.py b/pokepay/request/create_exchange_transaction.py
index 56f6587..2caad63 100644
--- a/pokepay/request/create_exchange_transaction.py
+++ b/pokepay/request/create_exchange_transaction.py
@@ -13,4 +13,6 @@ def __init__(self, user_id, sender_private_money_id, receiver_private_money_id,
                             "receiver_private_money_id": receiver_private_money_id,
                             "amount": amount}
         self.body_params.update(rest_args)
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
         self.response_class = TransactionDetail
diff --git a/pokepay/request/create_external_transaction.py b/pokepay/request/create_external_transaction.py
index 3ec3976..126f93a 100644
--- a/pokepay/request/create_external_transaction.py
+++ b/pokepay/request/create_external_transaction.py
@@ -1,7 +1,7 @@
 # DO NOT EDIT: File is generated by code generator.
 
 from pokepay.request.request import PokepayRequest
-from pokepay.response.external_transaction import ExternalTransaction
+from pokepay.response.external_transaction_detail import ExternalTransactionDetail
 
 
 class CreateExternalTransaction(PokepayRequest):
@@ -13,4 +13,6 @@ def __init__(self, shop_id, customer_id, private_money_id, amount, **rest_args):
                             "private_money_id": private_money_id,
                             "amount": amount}
         self.body_params.update(rest_args)
-        self.response_class = ExternalTransaction
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
+        self.response_class = ExternalTransactionDetail
diff --git a/pokepay/request/create_organization.py b/pokepay/request/create_organization.py
index e4e8566..0ea416e 100644
--- a/pokepay/request/create_organization.py
+++ b/pokepay/request/create_organization.py
@@ -14,4 +14,6 @@ def __init__(self, code, name, private_money_ids, issuer_admin_user_email, membe
                             "issuer_admin_user_email": issuer_admin_user_email,
                             "member_admin_user_email": member_admin_user_email}
         self.body_params.update(rest_args)
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
         self.response_class = Organization
diff --git a/pokepay/request/create_payment_transaction.py b/pokepay/request/create_payment_transaction.py
index 4d73a47..4ca39c9 100644
--- a/pokepay/request/create_payment_transaction.py
+++ b/pokepay/request/create_payment_transaction.py
@@ -13,4 +13,6 @@ def __init__(self, shop_id, customer_id, private_money_id, amount, **rest_args):
                             "private_money_id": private_money_id,
                             "amount": amount}
         self.body_params.update(rest_args)
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
         self.response_class = TransactionDetail
diff --git a/pokepay/request/create_payment_transaction_with_bill.py b/pokepay/request/create_payment_transaction_with_bill.py
new file mode 100644
index 0000000..2a57d5e
--- /dev/null
+++ b/pokepay/request/create_payment_transaction_with_bill.py
@@ -0,0 +1,16 @@
+# DO NOT EDIT: File is generated by code generator.
+
+from pokepay.request.request import PokepayRequest
+from pokepay.response.transaction_detail import TransactionDetail
+
+
+class CreatePaymentTransactionWithBill(PokepayRequest):
+    def __init__(self, bill_id, customer_id, **rest_args):
+        self.path = "/transactions" + "/payment" + "/bill"
+        self.method = "POST"
+        self.body_params = {"bill_id": bill_id,
+                            "customer_id": customer_id}
+        self.body_params.update(rest_args)
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
+        self.response_class = TransactionDetail
diff --git a/pokepay/request/create_shop.py b/pokepay/request/create_shop.py
index 04cecde..24e4aba 100644
--- a/pokepay/request/create_shop.py
+++ b/pokepay/request/create_shop.py
@@ -10,4 +10,6 @@ def __init__(self, shop_name, **rest_args):
         self.method = "POST"
         self.body_params = {"shop_name": shop_name}
         self.body_params.update(rest_args)
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
         self.response_class = User
diff --git a/pokepay/request/create_shop_v2.py b/pokepay/request/create_shop_v2.py
index 6bb24ba..ba2095a 100644
--- a/pokepay/request/create_shop_v2.py
+++ b/pokepay/request/create_shop_v2.py
@@ -10,4 +10,6 @@ def __init__(self, name, **rest_args):
         self.method = "POST"
         self.body_params = {"name": name}
         self.body_params.update(rest_args)
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
         self.response_class = ShopWithAccounts
diff --git a/pokepay/request/create_topup_transaction.py b/pokepay/request/create_topup_transaction.py
index 4086fef..2a8a2ce 100644
--- a/pokepay/request/create_topup_transaction.py
+++ b/pokepay/request/create_topup_transaction.py
@@ -12,4 +12,6 @@ def __init__(self, shop_id, customer_id, private_money_id, **rest_args):
                             "customer_id": customer_id,
                             "private_money_id": private_money_id}
         self.body_params.update(rest_args)
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
         self.response_class = TransactionDetail
diff --git a/pokepay/request/create_topup_transaction_with_check.py b/pokepay/request/create_topup_transaction_with_check.py
index 7e2c44e..80fa3be 100644
--- a/pokepay/request/create_topup_transaction_with_check.py
+++ b/pokepay/request/create_topup_transaction_with_check.py
@@ -5,10 +5,12 @@
 
 
 class CreateTopupTransactionWithCheck(PokepayRequest):
-    def __init__(self, check_id, customer_id):
+    def __init__(self, check_id, customer_id, **rest_args):
         self.path = "/transactions" + "/topup" + "/check"
         self.method = "POST"
         self.body_params = {"check_id": check_id,
                             "customer_id": customer_id}
-        
+        self.body_params.update(rest_args)
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
         self.response_class = TransactionDetail
diff --git a/pokepay/request/create_transaction.py b/pokepay/request/create_transaction.py
index beef855..df1d55d 100644
--- a/pokepay/request/create_transaction.py
+++ b/pokepay/request/create_transaction.py
@@ -12,4 +12,6 @@ def __init__(self, shop_id, customer_id, private_money_id, **rest_args):
                             "customer_id": customer_id,
                             "private_money_id": private_money_id}
         self.body_params.update(rest_args)
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
         self.response_class = TransactionDetail
diff --git a/pokepay/request/create_transaction_group.py b/pokepay/request/create_transaction_group.py
new file mode 100644
index 0000000..060af1c
--- /dev/null
+++ b/pokepay/request/create_transaction_group.py
@@ -0,0 +1,15 @@
+# DO NOT EDIT: File is generated by code generator.
+
+from pokepay.request.request import PokepayRequest
+from pokepay.response.transaction_group import TransactionGroup
+
+
+class CreateTransactionGroup(PokepayRequest):
+    def __init__(self, name):
+        self.path = "/transaction-groups"
+        self.method = "POST"
+        self.body_params = {"name": name}
+        
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
+        self.response_class = TransactionGroup
diff --git a/pokepay/request/create_transaction_with_cashtray.py b/pokepay/request/create_transaction_with_cashtray.py
new file mode 100644
index 0000000..ad308ed
--- /dev/null
+++ b/pokepay/request/create_transaction_with_cashtray.py
@@ -0,0 +1,16 @@
+# DO NOT EDIT: File is generated by code generator.
+
+from pokepay.request.request import PokepayRequest
+from pokepay.response.transaction_detail import TransactionDetail
+
+
+class CreateTransactionWithCashtray(PokepayRequest):
+    def __init__(self, cashtray_id, customer_id, **rest_args):
+        self.path = "/transactions" + "/cashtray"
+        self.method = "POST"
+        self.body_params = {"cashtray_id": cashtray_id,
+                            "customer_id": customer_id}
+        self.body_params.update(rest_args)
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
+        self.response_class = TransactionDetail
diff --git a/pokepay/request/create_transfer_transaction.py b/pokepay/request/create_transfer_transaction.py
index 912d3d6..c272a8a 100644
--- a/pokepay/request/create_transfer_transaction.py
+++ b/pokepay/request/create_transfer_transaction.py
@@ -13,4 +13,6 @@ def __init__(self, sender_id, receiver_id, private_money_id, amount, **rest_args
                             "private_money_id": private_money_id,
                             "amount": amount}
         self.body_params.update(rest_args)
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
         self.response_class = TransactionDetail
diff --git a/pokepay/request/create_user_account.py b/pokepay/request/create_user_account.py
index 15dd627..daa2356 100644
--- a/pokepay/request/create_user_account.py
+++ b/pokepay/request/create_user_account.py
@@ -10,4 +10,6 @@ def __init__(self, user_id, private_money_id, **rest_args):
         self.method = "POST"
         self.body_params = {"private_money_id": private_money_id}
         self.body_params.update(rest_args)
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
         self.response_class = AccountDetail
diff --git a/pokepay/request/create_user_device.py b/pokepay/request/create_user_device.py
new file mode 100644
index 0000000..8eb73e0
--- /dev/null
+++ b/pokepay/request/create_user_device.py
@@ -0,0 +1,15 @@
+# DO NOT EDIT: File is generated by code generator.
+
+from pokepay.request.request import PokepayRequest
+from pokepay.response.user_device import UserDevice
+
+
+class CreateUserDevice(PokepayRequest):
+    def __init__(self, user_id, **rest_args):
+        self.path = "/user-devices"
+        self.method = "POST"
+        self.body_params = {"user_id": user_id}
+        self.body_params.update(rest_args)
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
+        self.response_class = UserDevice
diff --git a/pokepay/request/create_webhook.py b/pokepay/request/create_webhook.py
new file mode 100644
index 0000000..9e00ad2
--- /dev/null
+++ b/pokepay/request/create_webhook.py
@@ -0,0 +1,16 @@
+# DO NOT EDIT: File is generated by code generator.
+
+from pokepay.request.request import PokepayRequest
+from pokepay.response.organization_worker_task_webhook import OrganizationWorkerTaskWebhook
+
+
+class CreateWebhook(PokepayRequest):
+    def __init__(self, task, url):
+        self.path = "/webhooks"
+        self.method = "POST"
+        self.body_params = {"task": task,
+                            "url": url}
+        
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
+        self.response_class = OrganizationWorkerTaskWebhook
diff --git a/pokepay/request/delete_account.py b/pokepay/request/delete_account.py
index d43c7bc..cdb8a2e 100644
--- a/pokepay/request/delete_account.py
+++ b/pokepay/request/delete_account.py
@@ -10,4 +10,6 @@ def __init__(self, account_id, **rest_args):
         self.method = "DELETE"
         self.body_params = {}
         self.body_params.update(rest_args)
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
         self.response_class = AccountDeleted
diff --git a/pokepay/request/delete_bank.py b/pokepay/request/delete_bank.py
new file mode 100644
index 0000000..cc2d0e5
--- /dev/null
+++ b/pokepay/request/delete_bank.py
@@ -0,0 +1,15 @@
+# DO NOT EDIT: File is generated by code generator.
+
+from pokepay.request.request import PokepayRequest
+from pokepay.response.bank_deleted import BankDeleted
+
+
+class DeleteBank(PokepayRequest):
+    def __init__(self, user_device_id, bank_id):
+        self.path = "/user-devices" + "/" + user_device_id + "/banks"
+        self.method = "DELETE"
+        self.body_params = {"bank_id": bank_id}
+        
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
+        self.response_class = BankDeleted
diff --git a/pokepay/request/delete_webhook.py b/pokepay/request/delete_webhook.py
new file mode 100644
index 0000000..8fb3155
--- /dev/null
+++ b/pokepay/request/delete_webhook.py
@@ -0,0 +1,15 @@
+# DO NOT EDIT: File is generated by code generator.
+
+from pokepay.request.request import PokepayRequest
+from pokepay.response.organization_worker_task_webhook import OrganizationWorkerTaskWebhook
+
+
+class DeleteWebhook(PokepayRequest):
+    def __init__(self, webhook_id):
+        self.path = "/webhooks" + "/" + webhook_id
+        self.method = "DELETE"
+        self.body_params = {}
+        
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
+        self.response_class = OrganizationWorkerTaskWebhook
diff --git a/pokepay/request/get_account.py b/pokepay/request/get_account.py
index 6a499bc..4566081 100644
--- a/pokepay/request/get_account.py
+++ b/pokepay/request/get_account.py
@@ -10,4 +10,6 @@ def __init__(self, account_id):
         self.method = "GET"
         self.body_params = {}
         
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
         self.response_class = AccountDetail
diff --git a/pokepay/request/get_account_transfer_summary.py b/pokepay/request/get_account_transfer_summary.py
index be99c2a..adc598f 100644
--- a/pokepay/request/get_account_transfer_summary.py
+++ b/pokepay/request/get_account_transfer_summary.py
@@ -10,4 +10,6 @@ def __init__(self, account_id, **rest_args):
         self.method = "GET"
         self.body_params = {}
         self.body_params.update(rest_args)
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
         self.response_class = AccountTransferSummary
diff --git a/pokepay/request/get_bill.py b/pokepay/request/get_bill.py
new file mode 100644
index 0000000..c16bf5e
--- /dev/null
+++ b/pokepay/request/get_bill.py
@@ -0,0 +1,15 @@
+# DO NOT EDIT: File is generated by code generator.
+
+from pokepay.request.request import PokepayRequest
+from pokepay.response.bill import Bill
+
+
+class GetBill(PokepayRequest):
+    def __init__(self, bill_id):
+        self.path = "/bills" + "/" + bill_id
+        self.method = "GET"
+        self.body_params = {}
+        
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
+        self.response_class = Bill
diff --git a/pokepay/request/get_bulk_transaction.py b/pokepay/request/get_bulk_transaction.py
index 11c0708..447ead0 100644
--- a/pokepay/request/get_bulk_transaction.py
+++ b/pokepay/request/get_bulk_transaction.py
@@ -10,4 +10,6 @@ def __init__(self, bulk_transaction_id):
         self.method = "GET"
         self.body_params = {}
         
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
         self.response_class = BulkTransaction
diff --git a/pokepay/request/get_campaign.py b/pokepay/request/get_campaign.py
index 8219486..dddb8cf 100644
--- a/pokepay/request/get_campaign.py
+++ b/pokepay/request/get_campaign.py
@@ -10,4 +10,6 @@ def __init__(self, campaign_id):
         self.method = "GET"
         self.body_params = {}
         
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
         self.response_class = Campaign
diff --git a/pokepay/request/get_cashtray.py b/pokepay/request/get_cashtray.py
index 4f5b8b5..1b9d97b 100644
--- a/pokepay/request/get_cashtray.py
+++ b/pokepay/request/get_cashtray.py
@@ -10,4 +10,6 @@ def __init__(self, cashtray_id):
         self.method = "GET"
         self.body_params = {}
         
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
         self.response_class = CashtrayWithResult
diff --git a/pokepay/request/get_check.py b/pokepay/request/get_check.py
new file mode 100644
index 0000000..44cb0a2
--- /dev/null
+++ b/pokepay/request/get_check.py
@@ -0,0 +1,15 @@
+# DO NOT EDIT: File is generated by code generator.
+
+from pokepay.request.request import PokepayRequest
+from pokepay.response.check import Check
+
+
+class GetCheck(PokepayRequest):
+    def __init__(self, check_id):
+        self.path = "/checks" + "/" + check_id
+        self.method = "GET"
+        self.body_params = {}
+        
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
+        self.response_class = Check
diff --git a/pokepay/request/get_coupon.py b/pokepay/request/get_coupon.py
new file mode 100644
index 0000000..1be6500
--- /dev/null
+++ b/pokepay/request/get_coupon.py
@@ -0,0 +1,15 @@
+# DO NOT EDIT: File is generated by code generator.
+
+from pokepay.request.request import PokepayRequest
+from pokepay.response.coupon_detail import CouponDetail
+
+
+class GetCoupon(PokepayRequest):
+    def __init__(self, coupon_id):
+        self.path = "/coupons" + "/" + coupon_id
+        self.method = "GET"
+        self.body_params = {}
+        
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
+        self.response_class = CouponDetail
diff --git a/pokepay/request/get_cpm_token.py b/pokepay/request/get_cpm_token.py
index c299c35..0653bde 100644
--- a/pokepay/request/get_cpm_token.py
+++ b/pokepay/request/get_cpm_token.py
@@ -10,4 +10,6 @@ def __init__(self, cpm_token):
         self.method = "GET"
         self.body_params = {}
         
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
         self.response_class = CpmToken
diff --git a/pokepay/request/get_customer_accounts.py b/pokepay/request/get_customer_accounts.py
index 96dabc7..680d590 100644
--- a/pokepay/request/get_customer_accounts.py
+++ b/pokepay/request/get_customer_accounts.py
@@ -10,4 +10,6 @@ def __init__(self, private_money_id, **rest_args):
         self.method = "GET"
         self.body_params = {"private_money_id": private_money_id}
         self.body_params.update(rest_args)
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
         self.response_class = PaginatedAccountWithUsers
diff --git a/pokepay/request/get_customer_cards.py b/pokepay/request/get_customer_cards.py
new file mode 100644
index 0000000..276493b
--- /dev/null
+++ b/pokepay/request/get_customer_cards.py
@@ -0,0 +1,15 @@
+# DO NOT EDIT: File is generated by code generator.
+
+from pokepay.request.request import PokepayRequest
+from pokepay.response.paginated_user_cards import PaginatedUserCards
+
+
+class GetCustomerCards(PokepayRequest):
+    def __init__(self, customer_id, **rest_args):
+        self.path = "/customers" + "/" + customer_id + "/cards"
+        self.method = "GET"
+        self.body_params = {}
+        self.body_params.update(rest_args)
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
+        self.response_class = PaginatedUserCards
diff --git a/pokepay/request/get_external_transaction_by_request_id.py b/pokepay/request/get_external_transaction_by_request_id.py
new file mode 100644
index 0000000..95fdc3f
--- /dev/null
+++ b/pokepay/request/get_external_transaction_by_request_id.py
@@ -0,0 +1,15 @@
+# DO NOT EDIT: File is generated by code generator.
+
+from pokepay.request.request import PokepayRequest
+from pokepay.response.external_transaction_detail import ExternalTransactionDetail
+
+
+class GetExternalTransactionByRequestId(PokepayRequest):
+    def __init__(self, request_id):
+        self.path = "/external-transactions" + "/requests" + "/" + request_id
+        self.method = "GET"
+        self.body_params = {}
+        
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
+        self.response_class = ExternalTransactionDetail
diff --git a/pokepay/request/get_ping.py b/pokepay/request/get_ping.py
index ed5d205..81853d4 100644
--- a/pokepay/request/get_ping.py
+++ b/pokepay/request/get_ping.py
@@ -10,4 +10,6 @@ def __init__(self, ):
         self.method = "GET"
         self.body_params = {}
         
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
         self.response_class = Pong
diff --git a/pokepay/request/get_private_money_organization_summaries.py b/pokepay/request/get_private_money_organization_summaries.py
index 91f75a8..2dc92f2 100644
--- a/pokepay/request/get_private_money_organization_summaries.py
+++ b/pokepay/request/get_private_money_organization_summaries.py
@@ -10,4 +10,6 @@ def __init__(self, private_money_id, **rest_args):
         self.method = "GET"
         self.body_params = {}
         self.body_params.update(rest_args)
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
         self.response_class = PaginatedPrivateMoneyOrganizationSummaries
diff --git a/pokepay/request/get_private_money_summary.py b/pokepay/request/get_private_money_summary.py
index 60491a1..be0de10 100644
--- a/pokepay/request/get_private_money_summary.py
+++ b/pokepay/request/get_private_money_summary.py
@@ -10,4 +10,6 @@ def __init__(self, private_money_id, **rest_args):
         self.method = "GET"
         self.body_params = {}
         self.body_params.update(rest_args)
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
         self.response_class = PrivateMoneySummary
diff --git a/pokepay/request/get_private_moneys.py b/pokepay/request/get_private_moneys.py
index 711b4e7..b7dadd1 100644
--- a/pokepay/request/get_private_moneys.py
+++ b/pokepay/request/get_private_moneys.py
@@ -10,4 +10,6 @@ def __init__(self, **rest_args):
         self.method = "GET"
         self.body_params = {}
         self.body_params.update(rest_args)
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
         self.response_class = PaginatedPrivateMoneys
diff --git a/pokepay/request/get_seven_bank_atm_session.py b/pokepay/request/get_seven_bank_atm_session.py
new file mode 100644
index 0000000..efd0ac1
--- /dev/null
+++ b/pokepay/request/get_seven_bank_atm_session.py
@@ -0,0 +1,15 @@
+# DO NOT EDIT: File is generated by code generator.
+
+from pokepay.request.request import PokepayRequest
+from pokepay.response.seven_bank_atm_session import SevenBankATMSession
+
+
+class GetSevenBankATMSession(PokepayRequest):
+    def __init__(self, qr_info):
+        self.path = "/seven-bank-atm-sessions" + "/" + qr_info
+        self.method = "GET"
+        self.body_params = {}
+        
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
+        self.response_class = SevenBankATMSession
diff --git a/pokepay/request/get_shop.py b/pokepay/request/get_shop.py
index 1a4ff02..3034910 100644
--- a/pokepay/request/get_shop.py
+++ b/pokepay/request/get_shop.py
@@ -10,4 +10,6 @@ def __init__(self, shop_id):
         self.method = "GET"
         self.body_params = {}
         
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
         self.response_class = ShopWithAccounts
diff --git a/pokepay/request/get_shop_accounts.py b/pokepay/request/get_shop_accounts.py
index e6f47d2..31ea79b 100644
--- a/pokepay/request/get_shop_accounts.py
+++ b/pokepay/request/get_shop_accounts.py
@@ -10,4 +10,6 @@ def __init__(self, private_money_id, **rest_args):
         self.method = "GET"
         self.body_params = {"private_money_id": private_money_id}
         self.body_params.update(rest_args)
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
         self.response_class = PaginatedAccountWithUsers
diff --git a/pokepay/request/get_transaction.py b/pokepay/request/get_transaction.py
index 9818db5..94b40a9 100644
--- a/pokepay/request/get_transaction.py
+++ b/pokepay/request/get_transaction.py
@@ -10,4 +10,6 @@ def __init__(self, transaction_id):
         self.method = "GET"
         self.body_params = {}
         
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
         self.response_class = TransactionDetail
diff --git a/pokepay/request/get_transaction_by_request_id.py b/pokepay/request/get_transaction_by_request_id.py
index 693e73d..89f8d5b 100644
--- a/pokepay/request/get_transaction_by_request_id.py
+++ b/pokepay/request/get_transaction_by_request_id.py
@@ -10,4 +10,6 @@ def __init__(self, request_id):
         self.method = "GET"
         self.body_params = {}
         
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
         self.response_class = TransactionDetail
diff --git a/pokepay/request/get_user.py b/pokepay/request/get_user.py
index 0944054..086be3a 100644
--- a/pokepay/request/get_user.py
+++ b/pokepay/request/get_user.py
@@ -10,4 +10,6 @@ def __init__(self, ):
         self.method = "GET"
         self.body_params = {}
         
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
         self.response_class = AdminUserWithShopsAndPrivateMoneys
diff --git a/pokepay/request/get_user_device.py b/pokepay/request/get_user_device.py
new file mode 100644
index 0000000..ba3ee98
--- /dev/null
+++ b/pokepay/request/get_user_device.py
@@ -0,0 +1,15 @@
+# DO NOT EDIT: File is generated by code generator.
+
+from pokepay.request.request import PokepayRequest
+from pokepay.response.user_device import UserDevice
+
+
+class GetUserDevice(PokepayRequest):
+    def __init__(self, user_device_id):
+        self.path = "/user-devices" + "/" + user_device_id
+        self.method = "GET"
+        self.body_params = {}
+        
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
+        self.response_class = UserDevice
diff --git a/pokepay/request/list_account_balances.py b/pokepay/request/list_account_balances.py
index ebc7fb9..839b3a4 100644
--- a/pokepay/request/list_account_balances.py
+++ b/pokepay/request/list_account_balances.py
@@ -10,4 +10,6 @@ def __init__(self, account_id, **rest_args):
         self.method = "GET"
         self.body_params = {}
         self.body_params.update(rest_args)
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
         self.response_class = PaginatedAccountBalance
diff --git a/pokepay/request/list_account_expired_balances.py b/pokepay/request/list_account_expired_balances.py
index e4c73c5..619ffff 100644
--- a/pokepay/request/list_account_expired_balances.py
+++ b/pokepay/request/list_account_expired_balances.py
@@ -10,4 +10,6 @@ def __init__(self, account_id, **rest_args):
         self.method = "GET"
         self.body_params = {}
         self.body_params.update(rest_args)
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
         self.response_class = PaginatedAccountBalance
diff --git a/pokepay/request/list_banks.py b/pokepay/request/list_banks.py
new file mode 100644
index 0000000..b52db4c
--- /dev/null
+++ b/pokepay/request/list_banks.py
@@ -0,0 +1,15 @@
+# DO NOT EDIT: File is generated by code generator.
+
+from pokepay.request.request import PokepayRequest
+from pokepay.response.banks import Banks
+
+
+class ListBanks(PokepayRequest):
+    def __init__(self, user_device_id, **rest_args):
+        self.path = "/user-devices" + "/" + user_device_id + "/banks"
+        self.method = "GET"
+        self.body_params = {}
+        self.body_params.update(rest_args)
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
+        self.response_class = Banks
diff --git a/pokepay/request/list_bill_transactions.py b/pokepay/request/list_bill_transactions.py
new file mode 100644
index 0000000..6213426
--- /dev/null
+++ b/pokepay/request/list_bill_transactions.py
@@ -0,0 +1,15 @@
+# DO NOT EDIT: File is generated by code generator.
+
+from pokepay.request.request import PokepayRequest
+from pokepay.response.paginated_bill_transaction import PaginatedBillTransaction
+
+
+class ListBillTransactions(PokepayRequest):
+    def __init__(self, **rest_args):
+        self.path = "/transactions" + "/bill"
+        self.method = "GET"
+        self.body_params = {}
+        self.body_params.update(rest_args)
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
+        self.response_class = PaginatedBillTransaction
diff --git a/pokepay/request/list_bills.py b/pokepay/request/list_bills.py
index 3dcca1a..5049a30 100644
--- a/pokepay/request/list_bills.py
+++ b/pokepay/request/list_bills.py
@@ -10,4 +10,6 @@ def __init__(self, **rest_args):
         self.method = "GET"
         self.body_params = {}
         self.body_params.update(rest_args)
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
         self.response_class = PaginatedBills
diff --git a/pokepay/request/list_bulk_transaction_jobs.py b/pokepay/request/list_bulk_transaction_jobs.py
index ce8fa6e..8d5a2b4 100644
--- a/pokepay/request/list_bulk_transaction_jobs.py
+++ b/pokepay/request/list_bulk_transaction_jobs.py
@@ -10,4 +10,6 @@ def __init__(self, bulk_transaction_id, **rest_args):
         self.method = "GET"
         self.body_params = {}
         self.body_params.update(rest_args)
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
         self.response_class = PaginatedBulkTransactionJob
diff --git a/pokepay/request/list_campaigns.py b/pokepay/request/list_campaigns.py
index 4c9efbb..bb2bdb7 100644
--- a/pokepay/request/list_campaigns.py
+++ b/pokepay/request/list_campaigns.py
@@ -10,4 +10,6 @@ def __init__(self, private_money_id, **rest_args):
         self.method = "GET"
         self.body_params = {"private_money_id": private_money_id}
         self.body_params.update(rest_args)
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
         self.response_class = PaginatedCampaigns
diff --git a/pokepay/request/list_checks.py b/pokepay/request/list_checks.py
new file mode 100644
index 0000000..9d4f3c1
--- /dev/null
+++ b/pokepay/request/list_checks.py
@@ -0,0 +1,15 @@
+# DO NOT EDIT: File is generated by code generator.
+
+from pokepay.request.request import PokepayRequest
+from pokepay.response.paginated_checks import PaginatedChecks
+
+
+class ListChecks(PokepayRequest):
+    def __init__(self, **rest_args):
+        self.path = "/checks"
+        self.method = "GET"
+        self.body_params = {}
+        self.body_params.update(rest_args)
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
+        self.response_class = PaginatedChecks
diff --git a/pokepay/request/list_coupons.py b/pokepay/request/list_coupons.py
new file mode 100644
index 0000000..8c045cd
--- /dev/null
+++ b/pokepay/request/list_coupons.py
@@ -0,0 +1,15 @@
+# DO NOT EDIT: File is generated by code generator.
+
+from pokepay.request.request import PokepayRequest
+from pokepay.response.paginated_coupons import PaginatedCoupons
+
+
+class ListCoupons(PokepayRequest):
+    def __init__(self, private_money_id, **rest_args):
+        self.path = "/coupons"
+        self.method = "GET"
+        self.body_params = {"private_money_id": private_money_id}
+        self.body_params.update(rest_args)
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
+        self.response_class = PaginatedCoupons
diff --git a/pokepay/request/list_customer_transactions.py b/pokepay/request/list_customer_transactions.py
index f8ba611..837d2dd 100644
--- a/pokepay/request/list_customer_transactions.py
+++ b/pokepay/request/list_customer_transactions.py
@@ -10,4 +10,6 @@ def __init__(self, private_money_id, **rest_args):
         self.method = "GET"
         self.body_params = {"private_money_id": private_money_id}
         self.body_params.update(rest_args)
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
         self.response_class = PaginatedTransaction
diff --git a/pokepay/request/list_organizations.py b/pokepay/request/list_organizations.py
new file mode 100644
index 0000000..ebe7e9f
--- /dev/null
+++ b/pokepay/request/list_organizations.py
@@ -0,0 +1,15 @@
+# DO NOT EDIT: File is generated by code generator.
+
+from pokepay.request.request import PokepayRequest
+from pokepay.response.paginated_organizations import PaginatedOrganizations
+
+
+class ListOrganizations(PokepayRequest):
+    def __init__(self, private_money_id, **rest_args):
+        self.path = "/organizations"
+        self.method = "GET"
+        self.body_params = {"private_money_id": private_money_id}
+        self.body_params.update(rest_args)
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
+        self.response_class = PaginatedOrganizations
diff --git a/pokepay/request/list_shops.py b/pokepay/request/list_shops.py
index ea2381f..b3391be 100644
--- a/pokepay/request/list_shops.py
+++ b/pokepay/request/list_shops.py
@@ -10,4 +10,6 @@ def __init__(self, **rest_args):
         self.method = "GET"
         self.body_params = {}
         self.body_params.update(rest_args)
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
         self.response_class = PaginatedShops
diff --git a/pokepay/request/list_transactions.py b/pokepay/request/list_transactions.py
index eff7038..f4895ef 100644
--- a/pokepay/request/list_transactions.py
+++ b/pokepay/request/list_transactions.py
@@ -10,4 +10,6 @@ def __init__(self, **rest_args):
         self.method = "GET"
         self.body_params = {}
         self.body_params.update(rest_args)
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
         self.response_class = PaginatedTransaction
diff --git a/pokepay/request/list_transactions_v2.py b/pokepay/request/list_transactions_v2.py
index 8b22a54..bd1ccc5 100644
--- a/pokepay/request/list_transactions_v2.py
+++ b/pokepay/request/list_transactions_v2.py
@@ -10,4 +10,6 @@ def __init__(self, **rest_args):
         self.method = "GET"
         self.body_params = {}
         self.body_params.update(rest_args)
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
         self.response_class = PaginatedTransactionV2
diff --git a/pokepay/request/list_transfers.py b/pokepay/request/list_transfers.py
index ce12cfa..96c21ea 100644
--- a/pokepay/request/list_transfers.py
+++ b/pokepay/request/list_transfers.py
@@ -10,4 +10,6 @@ def __init__(self, **rest_args):
         self.method = "GET"
         self.body_params = {}
         self.body_params.update(rest_args)
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
         self.response_class = PaginatedTransfers
diff --git a/pokepay/request/list_transfers_v2.py b/pokepay/request/list_transfers_v2.py
index 293e018..68a95ee 100644
--- a/pokepay/request/list_transfers_v2.py
+++ b/pokepay/request/list_transfers_v2.py
@@ -10,4 +10,6 @@ def __init__(self, **rest_args):
         self.method = "GET"
         self.body_params = {}
         self.body_params.update(rest_args)
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
         self.response_class = PaginatedTransfersV2
diff --git a/pokepay/request/list_user_accounts.py b/pokepay/request/list_user_accounts.py
index 4fb3fdc..3d497a5 100644
--- a/pokepay/request/list_user_accounts.py
+++ b/pokepay/request/list_user_accounts.py
@@ -10,4 +10,6 @@ def __init__(self, user_id, **rest_args):
         self.method = "GET"
         self.body_params = {}
         self.body_params.update(rest_args)
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
         self.response_class = PaginatedAccountDetails
diff --git a/pokepay/request/list_webhooks.py b/pokepay/request/list_webhooks.py
new file mode 100644
index 0000000..5718eb5
--- /dev/null
+++ b/pokepay/request/list_webhooks.py
@@ -0,0 +1,15 @@
+# DO NOT EDIT: File is generated by code generator.
+
+from pokepay.request.request import PokepayRequest
+from pokepay.response.paginated_organization_worker_task_webhook import PaginatedOrganizationWorkerTaskWebhook
+
+
+class ListWebhooks(PokepayRequest):
+    def __init__(self, **rest_args):
+        self.path = "/webhooks"
+        self.method = "GET"
+        self.body_params = {}
+        self.body_params.update(rest_args)
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
+        self.response_class = PaginatedOrganizationWorkerTaskWebhook
diff --git a/pokepay/request/post_credit_session.py b/pokepay/request/post_credit_session.py
new file mode 100644
index 0000000..b4e5736
--- /dev/null
+++ b/pokepay/request/post_credit_session.py
@@ -0,0 +1,18 @@
+# DO NOT EDIT: File is generated by code generator.
+
+from pokepay.request.request import PokepayRequest
+from pokepay.response.credit_session import CreditSession
+
+
+class PostCreditSession(PokepayRequest):
+    def __init__(self, customer_id, private_money_id, card_id, expires_at, **rest_args):
+        self.path = "/credit-sessions"
+        self.method = "POST"
+        self.body_params = {"customer_id": customer_id,
+                            "private_money_id": private_money_id,
+                            "card_id": card_id,
+                            "expires_at": expires_at}
+        self.body_params.update(rest_args)
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
+        self.response_class = CreditSession
diff --git a/pokepay/request/refund_external_transaction.py b/pokepay/request/refund_external_transaction.py
index c147535..527ab20 100644
--- a/pokepay/request/refund_external_transaction.py
+++ b/pokepay/request/refund_external_transaction.py
@@ -1,7 +1,7 @@
 # DO NOT EDIT: File is generated by code generator.
 
 from pokepay.request.request import PokepayRequest
-from pokepay.response.external_transaction import ExternalTransaction
+from pokepay.response.external_transaction_detail import ExternalTransactionDetail
 
 
 class RefundExternalTransaction(PokepayRequest):
@@ -10,4 +10,6 @@ def __init__(self, event_id, **rest_args):
         self.method = "POST"
         self.body_params = {}
         self.body_params.update(rest_args)
-        self.response_class = ExternalTransaction
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
+        self.response_class = ExternalTransactionDetail
diff --git a/pokepay/request/refund_transaction.py b/pokepay/request/refund_transaction.py
index 93fc5dd..458f1a1 100644
--- a/pokepay/request/refund_transaction.py
+++ b/pokepay/request/refund_transaction.py
@@ -10,4 +10,6 @@ def __init__(self, transaction_id, **rest_args):
         self.method = "POST"
         self.body_params = {}
         self.body_params.update(rest_args)
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
         self.response_class = TransactionDetail
diff --git a/pokepay/request/request_user_stats.py b/pokepay/request/request_user_stats.py
index f83df0a..d550cf4 100644
--- a/pokepay/request/request_user_stats.py
+++ b/pokepay/request/request_user_stats.py
@@ -5,10 +5,12 @@
 
 
 class RequestUserStats(PokepayRequest):
-    def __init__(self, start, to):
+    def __init__(self, from_, to):
         self.path = "/user-stats"
         self.method = "POST"
-        self.body_params = {"from": start,
+        self.body_params = {"from": from_,
                             "to": to}
         
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
         self.response_class = UserStatsOperation
diff --git a/pokepay/request/send_echo.py b/pokepay/request/send_echo.py
index 75a02ba..9b3fe7e 100644
--- a/pokepay/request/send_echo.py
+++ b/pokepay/request/send_echo.py
@@ -10,4 +10,6 @@ def __init__(self, message):
         self.method = "POST"
         self.body_params = {"message": message}
         
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
         self.response_class = Echo
diff --git a/pokepay/request/show_transaction_group.py b/pokepay/request/show_transaction_group.py
new file mode 100644
index 0000000..bdb4349
--- /dev/null
+++ b/pokepay/request/show_transaction_group.py
@@ -0,0 +1,15 @@
+# DO NOT EDIT: File is generated by code generator.
+
+from pokepay.request.request import PokepayRequest
+from pokepay.response.transaction_group import TransactionGroup
+
+
+class ShowTransactionGroup(PokepayRequest):
+    def __init__(self, uuid):
+        self.path = "/transaction-groups" + "/" + uuid
+        self.method = "GET"
+        self.body_params = {}
+        
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
+        self.response_class = TransactionGroup
diff --git a/pokepay/request/terminate_user_stats.py b/pokepay/request/terminate_user_stats.py
new file mode 100644
index 0000000..cb1ccfa
--- /dev/null
+++ b/pokepay/request/terminate_user_stats.py
@@ -0,0 +1,15 @@
+# DO NOT EDIT: File is generated by code generator.
+
+from pokepay.request.request import PokepayRequest
+from pokepay.response.user_stats_operation import UserStatsOperation
+
+
+class TerminateUserStats(PokepayRequest):
+    def __init__(self, operation_id):
+        self.path = "/user-stats" + "/terminate"
+        self.method = "POST"
+        self.body_params = {"operation_id": operation_id}
+        
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
+        self.response_class = UserStatsOperation
diff --git a/pokepay/request/update_account.py b/pokepay/request/update_account.py
index 1fa2b6b..33345f5 100644
--- a/pokepay/request/update_account.py
+++ b/pokepay/request/update_account.py
@@ -10,4 +10,6 @@ def __init__(self, account_id, **rest_args):
         self.method = "PATCH"
         self.body_params = {}
         self.body_params.update(rest_args)
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
         self.response_class = AccountDetail
diff --git a/pokepay/request/update_bill.py b/pokepay/request/update_bill.py
index 456cf91..4419b5f 100644
--- a/pokepay/request/update_bill.py
+++ b/pokepay/request/update_bill.py
@@ -10,4 +10,6 @@ def __init__(self, bill_id, **rest_args):
         self.method = "PATCH"
         self.body_params = {}
         self.body_params.update(rest_args)
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
         self.response_class = Bill
diff --git a/pokepay/request/update_campaign.py b/pokepay/request/update_campaign.py
index a089cf4..ef247a9 100644
--- a/pokepay/request/update_campaign.py
+++ b/pokepay/request/update_campaign.py
@@ -10,4 +10,6 @@ def __init__(self, campaign_id, **rest_args):
         self.method = "PATCH"
         self.body_params = {}
         self.body_params.update(rest_args)
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
         self.response_class = Campaign
diff --git a/pokepay/request/update_cashtray.py b/pokepay/request/update_cashtray.py
index 213b11b..1564a71 100644
--- a/pokepay/request/update_cashtray.py
+++ b/pokepay/request/update_cashtray.py
@@ -10,4 +10,6 @@ def __init__(self, cashtray_id, **rest_args):
         self.method = "PATCH"
         self.body_params = {}
         self.body_params.update(rest_args)
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
         self.response_class = Cashtray
diff --git a/pokepay/request/update_check.py b/pokepay/request/update_check.py
new file mode 100644
index 0000000..db8082d
--- /dev/null
+++ b/pokepay/request/update_check.py
@@ -0,0 +1,15 @@
+# DO NOT EDIT: File is generated by code generator.
+
+from pokepay.request.request import PokepayRequest
+from pokepay.response.check import Check
+
+
+class UpdateCheck(PokepayRequest):
+    def __init__(self, check_id, **rest_args):
+        self.path = "/checks" + "/" + check_id
+        self.method = "PATCH"
+        self.body_params = {}
+        self.body_params.update(rest_args)
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
+        self.response_class = Check
diff --git a/pokepay/request/update_coupon.py b/pokepay/request/update_coupon.py
new file mode 100644
index 0000000..aaae969
--- /dev/null
+++ b/pokepay/request/update_coupon.py
@@ -0,0 +1,15 @@
+# DO NOT EDIT: File is generated by code generator.
+
+from pokepay.request.request import PokepayRequest
+from pokepay.response.coupon_detail import CouponDetail
+
+
+class UpdateCoupon(PokepayRequest):
+    def __init__(self, coupon_id, **rest_args):
+        self.path = "/coupons" + "/" + coupon_id
+        self.method = "PATCH"
+        self.body_params = {}
+        self.body_params.update(rest_args)
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
+        self.response_class = CouponDetail
diff --git a/pokepay/request/update_customer_account.py b/pokepay/request/update_customer_account.py
index 9225199..6efa788 100644
--- a/pokepay/request/update_customer_account.py
+++ b/pokepay/request/update_customer_account.py
@@ -10,4 +10,6 @@ def __init__(self, account_id, **rest_args):
         self.method = "PATCH"
         self.body_params = {}
         self.body_params.update(rest_args)
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
         self.response_class = AccountWithUser
diff --git a/pokepay/request/update_shop.py b/pokepay/request/update_shop.py
index 78cd0a2..61e3aa3 100644
--- a/pokepay/request/update_shop.py
+++ b/pokepay/request/update_shop.py
@@ -10,4 +10,6 @@ def __init__(self, shop_id, **rest_args):
         self.method = "PATCH"
         self.body_params = {}
         self.body_params.update(rest_args)
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
         self.response_class = ShopWithAccounts
diff --git a/pokepay/request/update_webhook.py b/pokepay/request/update_webhook.py
new file mode 100644
index 0000000..4febda4
--- /dev/null
+++ b/pokepay/request/update_webhook.py
@@ -0,0 +1,15 @@
+# DO NOT EDIT: File is generated by code generator.
+
+from pokepay.request.request import PokepayRequest
+from pokepay.response.organization_worker_task_webhook import OrganizationWorkerTaskWebhook
+
+
+class UpdateWebhook(PokepayRequest):
+    def __init__(self, webhook_id, **rest_args):
+        self.path = "/webhooks" + "/" + webhook_id
+        self.method = "PATCH"
+        self.body_params = {}
+        self.body_params.update(rest_args)
+        if 'start' in self.body_params:
+            self.body_params['from'] = self.body_params.pop('start')
+        self.response_class = OrganizationWorkerTaskWebhook
diff --git a/pokepay/response/bank.py b/pokepay/response/bank.py
new file mode 100644
index 0000000..8dfa2dc
--- /dev/null
+++ b/pokepay/response/bank.py
@@ -0,0 +1,45 @@
+# DO NOT EDIT: File is generated by code generator.
+
+from pokepay.response.response import PokepayResponse
+
+
+class Bank(PokepayResponse):
+    def __init__(self, response, response_body):
+        super().__init__(response, response_body)
+        self.id = response_body['id']
+        self.private_money = response_body['private_money']
+        self.bank_name = response_body['bank_name']
+        self.bank_code = response_body['bank_code']
+        self.branch_number = response_body['branch_number']
+        self.branch_name = response_body['branch_name']
+        self.deposit_type = response_body['deposit_type']
+        self.masked_account_number = response_body['masked_account_number']
+        self.account_name = response_body['account_name']
+
+    def id(self):
+        return self.id
+
+    def private_money(self):
+        return self.private_money
+
+    def bank_name(self):
+        return self.bank_name
+
+    def bank_code(self):
+        return self.bank_code
+
+    def branch_number(self):
+        return self.branch_number
+
+    def branch_name(self):
+        return self.branch_name
+
+    def deposit_type(self):
+        return self.deposit_type
+
+    def masked_account_number(self):
+        return self.masked_account_number
+
+    def account_name(self):
+        return self.account_name
+
diff --git a/pokepay/response/bank_deleted.py b/pokepay/response/bank_deleted.py
new file mode 100644
index 0000000..5b60481
--- /dev/null
+++ b/pokepay/response/bank_deleted.py
@@ -0,0 +1,11 @@
+# DO NOT EDIT: File is generated by code generator.
+
+from pokepay.response.response import PokepayResponse
+
+
+class BankDeleted(PokepayResponse):
+    def __init__(self, response, response_body):
+        super().__init__(response, response_body)
+        
+
+    
diff --git a/pokepay/response/bank_registering_info.py b/pokepay/response/bank_registering_info.py
new file mode 100644
index 0000000..4560445
--- /dev/null
+++ b/pokepay/response/bank_registering_info.py
@@ -0,0 +1,17 @@
+# DO NOT EDIT: File is generated by code generator.
+
+from pokepay.response.response import PokepayResponse
+
+
+class BankRegisteringInfo(PokepayResponse):
+    def __init__(self, response, response_body):
+        super().__init__(response, response_body)
+        self.redirect_url = response_body['redirect_url']
+        self.paytree_customer_number = response_body['paytree_customer_number']
+
+    def redirect_url(self):
+        return self.redirect_url
+
+    def paytree_customer_number(self):
+        return self.paytree_customer_number
+
diff --git a/pokepay/response/banks.py b/pokepay/response/banks.py
new file mode 100644
index 0000000..589fe90
--- /dev/null
+++ b/pokepay/response/banks.py
@@ -0,0 +1,17 @@
+# DO NOT EDIT: File is generated by code generator.
+
+from pokepay.response.response import PokepayResponse
+
+
+class Banks(PokepayResponse):
+    def __init__(self, response, response_body):
+        super().__init__(response, response_body)
+        self.rows = response_body['rows']
+        self.count = response_body['count']
+
+    def rows(self):
+        return self.rows
+
+    def count(self):
+        return self.count
+
diff --git a/pokepay/response/bill.py b/pokepay/response/bill.py
index e624232..ab8ffa8 100644
--- a/pokepay/response/bill.py
+++ b/pokepay/response/bill.py
@@ -14,6 +14,7 @@ def __init__(self, response, response_body):
         self.account = response_body['account']
         self.is_disabled = response_body['is_disabled']
         self.token = response_body['token']
+        self.created_at = response_body['created_at']
 
     def id(self):
         return self.id
@@ -39,3 +40,6 @@ def is_disabled(self):
     def token(self):
         return self.token
 
+    def created_at(self):
+        return self.created_at
+
diff --git a/pokepay/response/bill_transaction.py b/pokepay/response/bill_transaction.py
new file mode 100644
index 0000000..a7d4c17
--- /dev/null
+++ b/pokepay/response/bill_transaction.py
@@ -0,0 +1,17 @@
+# DO NOT EDIT: File is generated by code generator.
+
+from pokepay.response.response import PokepayResponse
+
+
+class BillTransaction(PokepayResponse):
+    def __init__(self, response, response_body):
+        super().__init__(response, response_body)
+        self.transaction = response_body['transaction']
+        self.bill = response_body['bill']
+
+    def transaction(self):
+        return self.transaction
+
+    def bill(self):
+        return self.bill
+
diff --git a/pokepay/response/bulk_transaction.py b/pokepay/response/bulk_transaction.py
index efc7f3a..d83019a 100644
--- a/pokepay/response/bulk_transaction.py
+++ b/pokepay/response/bulk_transaction.py
@@ -15,6 +15,7 @@ def __init__(self, response, response_body):
         self.error_lineno = response_body['error_lineno']
         self.submitted_at = response_body['submitted_at']
         self.updated_at = response_body['updated_at']
+        self.scheduled_at = response_body['scheduled_at']
 
     def id(self):
         return self.id
@@ -43,3 +44,6 @@ def submitted_at(self):
     def updated_at(self):
         return self.updated_at
 
+    def scheduled_at(self):
+        return self.scheduled_at
+
diff --git a/pokepay/response/campaign.py b/pokepay/response/campaign.py
index d929558..5397d26 100644
--- a/pokepay/response/campaign.py
+++ b/pokepay/response/campaign.py
@@ -23,6 +23,9 @@ def __init__(self, response, response_body):
         self.point_calculation_rule = response_body['point_calculation_rule']
         self.point_calculation_rule_object = response_body['point_calculation_rule_object']
         self.status = response_body['status']
+        self.budget_caps_amount = response_body['budget_caps_amount']
+        self.budget_current_amount = response_body['budget_current_amount']
+        self.budget_current_time = response_body['budget_current_time']
 
     def id(self):
         return self.id
@@ -75,3 +78,12 @@ def point_calculation_rule_object(self):
     def status(self):
         return self.status
 
+    def budget_caps_amount(self):
+        return self.budget_caps_amount
+
+    def budget_current_amount(self):
+        return self.budget_current_amount
+
+    def budget_current_time(self):
+        return self.budget_current_time
+
diff --git a/pokepay/response/captured_credit_session.py b/pokepay/response/captured_credit_session.py
new file mode 100644
index 0000000..3cac451
--- /dev/null
+++ b/pokepay/response/captured_credit_session.py
@@ -0,0 +1,13 @@
+# DO NOT EDIT: File is generated by code generator.
+
+from pokepay.response.response import PokepayResponse
+
+
+class CapturedCreditSession(PokepayResponse):
+    def __init__(self, response, response_body):
+        super().__init__(response, response_body)
+        self.session_id = response_body['session_id']
+
+    def session_id(self):
+        return self.session_id
+
diff --git a/pokepay/response/check.py b/pokepay/response/check.py
index ba347aa..b6f6aac 100644
--- a/pokepay/response/check.py
+++ b/pokepay/response/check.py
@@ -16,6 +16,7 @@ def __init__(self, response, response_body):
         self.is_onetime = response_body['is_onetime']
         self.is_disabled = response_body['is_disabled']
         self.expires_at = response_body['expires_at']
+        self.last_used_at = response_body['last_used_at']
         self.private_money = response_body['private_money']
         self.usage_limit = response_body['usage_limit']
         self.usage_count = response_body['usage_count']
@@ -53,6 +54,9 @@ def is_disabled(self):
     def expires_at(self):
         return self.expires_at
 
+    def last_used_at(self):
+        return self.last_used_at
+
     def private_money(self):
         return self.private_money
 
diff --git a/pokepay/response/coupon.py b/pokepay/response/coupon.py
new file mode 100644
index 0000000..32fa0e1
--- /dev/null
+++ b/pokepay/response/coupon.py
@@ -0,0 +1,93 @@
+# DO NOT EDIT: File is generated by code generator.
+
+from pokepay.response.response import PokepayResponse
+
+
+class Coupon(PokepayResponse):
+    def __init__(self, response, response_body):
+        super().__init__(response, response_body)
+        self.id = response_body['id']
+        self.name = response_body['name']
+        self.issued_shop = response_body['issued_shop']
+        self.description = response_body['description']
+        self.discount_amount = response_body['discount_amount']
+        self.discount_percentage = response_body['discount_percentage']
+        self.discount_upper_limit = response_body['discount_upper_limit']
+        self.starts_at = response_body['starts_at']
+        self.ends_at = response_body['ends_at']
+        self.display_starts_at = response_body['display_starts_at']
+        self.display_ends_at = response_body['display_ends_at']
+        self.usage_limit = response_body['usage_limit']
+        self.min_amount = response_body['min_amount']
+        self.is_shop_specified = response_body['is_shop_specified']
+        self.is_hidden = response_body['is_hidden']
+        self.is_public = response_body['is_public']
+        self.code = response_body['code']
+        self.is_disabled = response_body['is_disabled']
+        self.token = response_body['token']
+        self.num_recipients_cap = response_body['num_recipients_cap']
+        self.num_recipients = response_body['num_recipients']
+
+    def id(self):
+        return self.id
+
+    def name(self):
+        return self.name
+
+    def issued_shop(self):
+        return self.issued_shop
+
+    def description(self):
+        return self.description
+
+    def discount_amount(self):
+        return self.discount_amount
+
+    def discount_percentage(self):
+        return self.discount_percentage
+
+    def discount_upper_limit(self):
+        return self.discount_upper_limit
+
+    def starts_at(self):
+        return self.starts_at
+
+    def ends_at(self):
+        return self.ends_at
+
+    def display_starts_at(self):
+        return self.display_starts_at
+
+    def display_ends_at(self):
+        return self.display_ends_at
+
+    def usage_limit(self):
+        return self.usage_limit
+
+    def min_amount(self):
+        return self.min_amount
+
+    def is_shop_specified(self):
+        return self.is_shop_specified
+
+    def is_hidden(self):
+        return self.is_hidden
+
+    def is_public(self):
+        return self.is_public
+
+    def code(self):
+        return self.code
+
+    def is_disabled(self):
+        return self.is_disabled
+
+    def token(self):
+        return self.token
+
+    def num_recipients_cap(self):
+        return self.num_recipients_cap
+
+    def num_recipients(self):
+        return self.num_recipients
+
diff --git a/pokepay/response/coupon_detail.py b/pokepay/response/coupon_detail.py
new file mode 100644
index 0000000..4e7c802
--- /dev/null
+++ b/pokepay/response/coupon_detail.py
@@ -0,0 +1,105 @@
+# DO NOT EDIT: File is generated by code generator.
+
+from pokepay.response.response import PokepayResponse
+
+
+class CouponDetail(PokepayResponse):
+    def __init__(self, response, response_body):
+        super().__init__(response, response_body)
+        self.id = response_body['id']
+        self.name = response_body['name']
+        self.issued_shop = response_body['issued_shop']
+        self.description = response_body['description']
+        self.discount_amount = response_body['discount_amount']
+        self.discount_percentage = response_body['discount_percentage']
+        self.discount_upper_limit = response_body['discount_upper_limit']
+        self.starts_at = response_body['starts_at']
+        self.ends_at = response_body['ends_at']
+        self.display_starts_at = response_body['display_starts_at']
+        self.display_ends_at = response_body['display_ends_at']
+        self.usage_limit = response_body['usage_limit']
+        self.min_amount = response_body['min_amount']
+        self.is_shop_specified = response_body['is_shop_specified']
+        self.is_hidden = response_body['is_hidden']
+        self.is_public = response_body['is_public']
+        self.code = response_body['code']
+        self.is_disabled = response_body['is_disabled']
+        self.token = response_body['token']
+        self.coupon_image = response_body['coupon_image']
+        self.available_shops = response_body['available_shops']
+        self.private_money = response_body['private_money']
+        self.num_recipients_cap = response_body['num_recipients_cap']
+        self.num_recipients = response_body['num_recipients']
+
+    def id(self):
+        return self.id
+
+    def name(self):
+        return self.name
+
+    def issued_shop(self):
+        return self.issued_shop
+
+    def description(self):
+        return self.description
+
+    def discount_amount(self):
+        return self.discount_amount
+
+    def discount_percentage(self):
+        return self.discount_percentage
+
+    def discount_upper_limit(self):
+        return self.discount_upper_limit
+
+    def starts_at(self):
+        return self.starts_at
+
+    def ends_at(self):
+        return self.ends_at
+
+    def display_starts_at(self):
+        return self.display_starts_at
+
+    def display_ends_at(self):
+        return self.display_ends_at
+
+    def usage_limit(self):
+        return self.usage_limit
+
+    def min_amount(self):
+        return self.min_amount
+
+    def is_shop_specified(self):
+        return self.is_shop_specified
+
+    def is_hidden(self):
+        return self.is_hidden
+
+    def is_public(self):
+        return self.is_public
+
+    def code(self):
+        return self.code
+
+    def is_disabled(self):
+        return self.is_disabled
+
+    def token(self):
+        return self.token
+
+    def coupon_image(self):
+        return self.coupon_image
+
+    def available_shops(self):
+        return self.available_shops
+
+    def private_money(self):
+        return self.private_money
+
+    def num_recipients_cap(self):
+        return self.num_recipients_cap
+
+    def num_recipients(self):
+        return self.num_recipients
+
diff --git a/pokepay/response/cpm_token.py b/pokepay/response/cpm_token.py
index 2fef708..f1c4c0a 100644
--- a/pokepay/response/cpm_token.py
+++ b/pokepay/response/cpm_token.py
@@ -13,6 +13,7 @@ def __init__(self, response, response_body):
         self.scopes = response_body['scopes']
         self.expires_at = response_body['expires_at']
         self.metadata = response_body['metadata']
+        self.strategy = response_body['strategy']
 
     def cpm_token(self):
         return self.cpm_token
@@ -35,3 +36,6 @@ def expires_at(self):
     def metadata(self):
         return self.metadata
 
+    def strategy(self):
+        return self.strategy
+
diff --git a/pokepay/response/credit_session.py b/pokepay/response/credit_session.py
new file mode 100644
index 0000000..0109c82
--- /dev/null
+++ b/pokepay/response/credit_session.py
@@ -0,0 +1,17 @@
+# DO NOT EDIT: File is generated by code generator.
+
+from pokepay.response.response import PokepayResponse
+
+
+class CreditSession(PokepayResponse):
+    def __init__(self, response, response_body):
+        super().__init__(response, response_body)
+        self.id = response_body['id']
+        self.expires_at = response_body['expires_at']
+
+    def id(self):
+        return self.id
+
+    def expires_at(self):
+        return self.expires_at
+
diff --git a/pokepay/response/credit_session_transaction_result.py b/pokepay/response/credit_session_transaction_result.py
new file mode 100644
index 0000000..10e38c0
--- /dev/null
+++ b/pokepay/response/credit_session_transaction_result.py
@@ -0,0 +1,11 @@
+# DO NOT EDIT: File is generated by code generator.
+
+from pokepay.response.response import PokepayResponse
+
+
+class CreditSessionTransactionResult(PokepayResponse):
+    def __init__(self, response, response_body):
+        super().__init__(response, response_body)
+        
+
+    
diff --git a/pokepay/response/user_transaction.py b/pokepay/response/external_transaction_detail.py
similarity index 52%
rename from pokepay/response/user_transaction.py
rename to pokepay/response/external_transaction_detail.py
index 184ba7e..846ee06 100644
--- a/pokepay/response/user_transaction.py
+++ b/pokepay/response/external_transaction_detail.py
@@ -3,51 +3,47 @@
 from pokepay.response.response import PokepayResponse
 
 
-class UserTransaction(PokepayResponse):
+class ExternalTransactionDetail(PokepayResponse):
     def __init__(self, response, response_body):
         super().__init__(response, response_body)
         self.id = response_body['id']
-        self.user = response_body['user']
-        self.balance = response_body['balance']
+        self.is_modified = response_body['is_modified']
+        self.sender = response_body['sender']
+        self.sender_account = response_body['sender_account']
+        self.receiver = response_body['receiver']
+        self.receiver_account = response_body['receiver_account']
         self.amount = response_body['amount']
-        self.money_amount = response_body['money_amount']
-        self.point_amount = response_body['point_amount']
-        self.account = response_body['account']
-        self.description = response_body['description']
         self.done_at = response_body['done_at']
-        self.type = response_body['type']
-        self.is_modified = response_body['is_modified']
+        self.description = response_body['description']
+        self.transaction = response_body['transaction']
 
     def id(self):
         return self.id
 
-    def user(self):
-        return self.user
-
-    def balance(self):
-        return self.balance
+    def is_modified(self):
+        return self.is_modified
 
-    def amount(self):
-        return self.amount
+    def sender(self):
+        return self.sender
 
-    def money_amount(self):
-        return self.money_amount
+    def sender_account(self):
+        return self.sender_account
 
-    def point_amount(self):
-        return self.point_amount
+    def receiver(self):
+        return self.receiver
 
-    def account(self):
-        return self.account
+    def receiver_account(self):
+        return self.receiver_account
 
-    def description(self):
-        return self.description
+    def amount(self):
+        return self.amount
 
     def done_at(self):
         return self.done_at
 
-    def type(self):
-        return self.type
+    def description(self):
+        return self.description
 
-    def is_modified(self):
-        return self.is_modified
+    def transaction(self):
+        return self.transaction
 
diff --git a/pokepay/response/organization_summary.py b/pokepay/response/organization_summary.py
index b3af9dd..d6f3fa7 100644
--- a/pokepay/response/organization_summary.py
+++ b/pokepay/response/organization_summary.py
@@ -10,6 +10,8 @@ def __init__(self, response, response_body):
         self.money_amount = response_body['money_amount']
         self.money_count = response_body['money_count']
         self.point_amount = response_body['point_amount']
+        self.raw_point_amount = response_body['raw_point_amount']
+        self.campaign_point_amount = response_body['campaign_point_amount']
         self.point_count = response_body['point_count']
 
     def count(self):
@@ -24,6 +26,12 @@ def money_count(self):
     def point_amount(self):
         return self.point_amount
 
+    def raw_point_amount(self):
+        return self.raw_point_amount
+
+    def campaign_point_amount(self):
+        return self.campaign_point_amount
+
     def point_count(self):
         return self.point_count
 
diff --git a/pokepay/response/organization_worker_task_webhook.py b/pokepay/response/organization_worker_task_webhook.py
new file mode 100644
index 0000000..56e1de9
--- /dev/null
+++ b/pokepay/response/organization_worker_task_webhook.py
@@ -0,0 +1,33 @@
+# DO NOT EDIT: File is generated by code generator.
+
+from pokepay.response.response import PokepayResponse
+
+
+class OrganizationWorkerTaskWebhook(PokepayResponse):
+    def __init__(self, response, response_body):
+        super().__init__(response, response_body)
+        self.id = response_body['id']
+        self.organization_code = response_body['organization_code']
+        self.task = response_body['task']
+        self.url = response_body['url']
+        self.content_type = response_body['content_type']
+        self.is_active = response_body['is_active']
+
+    def id(self):
+        return self.id
+
+    def organization_code(self):
+        return self.organization_code
+
+    def task(self):
+        return self.task
+
+    def url(self):
+        return self.url
+
+    def content_type(self):
+        return self.content_type
+
+    def is_active(self):
+        return self.is_active
+
diff --git a/pokepay/response/paginated_bill_transaction.py b/pokepay/response/paginated_bill_transaction.py
new file mode 100644
index 0000000..9476cbb
--- /dev/null
+++ b/pokepay/response/paginated_bill_transaction.py
@@ -0,0 +1,29 @@
+# DO NOT EDIT: File is generated by code generator.
+
+from pokepay.response.response import PokepayResponse
+
+
+class PaginatedBillTransaction(PokepayResponse):
+    def __init__(self, response, response_body):
+        super().__init__(response, response_body)
+        self.rows = response_body['rows']
+        self.per_page = response_body['per_page']
+        self.count = response_body['count']
+        self.next_page_cursor_id = response_body['next_page_cursor_id']
+        self.prev_page_cursor_id = response_body['prev_page_cursor_id']
+
+    def rows(self):
+        return self.rows
+
+    def per_page(self):
+        return self.per_page
+
+    def count(self):
+        return self.count
+
+    def next_page_cursor_id(self):
+        return self.next_page_cursor_id
+
+    def prev_page_cursor_id(self):
+        return self.prev_page_cursor_id
+
diff --git a/pokepay/response/paginated_checks.py b/pokepay/response/paginated_checks.py
new file mode 100644
index 0000000..0c418aa
--- /dev/null
+++ b/pokepay/response/paginated_checks.py
@@ -0,0 +1,21 @@
+# DO NOT EDIT: File is generated by code generator.
+
+from pokepay.response.response import PokepayResponse
+
+
+class PaginatedChecks(PokepayResponse):
+    def __init__(self, response, response_body):
+        super().__init__(response, response_body)
+        self.rows = response_body['rows']
+        self.count = response_body['count']
+        self.pagination = response_body['pagination']
+
+    def rows(self):
+        return self.rows
+
+    def count(self):
+        return self.count
+
+    def pagination(self):
+        return self.pagination
+
diff --git a/pokepay/response/paginated_coupons.py b/pokepay/response/paginated_coupons.py
new file mode 100644
index 0000000..b97bb28
--- /dev/null
+++ b/pokepay/response/paginated_coupons.py
@@ -0,0 +1,21 @@
+# DO NOT EDIT: File is generated by code generator.
+
+from pokepay.response.response import PokepayResponse
+
+
+class PaginatedCoupons(PokepayResponse):
+    def __init__(self, response, response_body):
+        super().__init__(response, response_body)
+        self.rows = response_body['rows']
+        self.count = response_body['count']
+        self.pagination = response_body['pagination']
+
+    def rows(self):
+        return self.rows
+
+    def count(self):
+        return self.count
+
+    def pagination(self):
+        return self.pagination
+
diff --git a/pokepay/response/paginated_organization_worker_task_webhook.py b/pokepay/response/paginated_organization_worker_task_webhook.py
new file mode 100644
index 0000000..106c638
--- /dev/null
+++ b/pokepay/response/paginated_organization_worker_task_webhook.py
@@ -0,0 +1,21 @@
+# DO NOT EDIT: File is generated by code generator.
+
+from pokepay.response.response import PokepayResponse
+
+
+class PaginatedOrganizationWorkerTaskWebhook(PokepayResponse):
+    def __init__(self, response, response_body):
+        super().__init__(response, response_body)
+        self.rows = response_body['rows']
+        self.count = response_body['count']
+        self.pagination = response_body['pagination']
+
+    def rows(self):
+        return self.rows
+
+    def count(self):
+        return self.count
+
+    def pagination(self):
+        return self.pagination
+
diff --git a/pokepay/response/paginated_organizations.py b/pokepay/response/paginated_organizations.py
new file mode 100644
index 0000000..d4a9b86
--- /dev/null
+++ b/pokepay/response/paginated_organizations.py
@@ -0,0 +1,21 @@
+# DO NOT EDIT: File is generated by code generator.
+
+from pokepay.response.response import PokepayResponse
+
+
+class PaginatedOrganizations(PokepayResponse):
+    def __init__(self, response, response_body):
+        super().__init__(response, response_body)
+        self.rows = response_body['rows']
+        self.count = response_body['count']
+        self.pagination = response_body['pagination']
+
+    def rows(self):
+        return self.rows
+
+    def count(self):
+        return self.count
+
+    def pagination(self):
+        return self.pagination
+
diff --git a/pokepay/response/paginated_user_cards.py b/pokepay/response/paginated_user_cards.py
new file mode 100644
index 0000000..820ef07
--- /dev/null
+++ b/pokepay/response/paginated_user_cards.py
@@ -0,0 +1,21 @@
+# DO NOT EDIT: File is generated by code generator.
+
+from pokepay.response.response import PokepayResponse
+
+
+class PaginatedUserCards(PokepayResponse):
+    def __init__(self, response, response_body):
+        super().__init__(response, response_body)
+        self.rows = response_body['rows']
+        self.count = response_body['count']
+        self.pagination = response_body['pagination']
+
+    def rows(self):
+        return self.rows
+
+    def count(self):
+        return self.count
+
+    def pagination(self):
+        return self.pagination
+
diff --git a/pokepay/response/private_money.py b/pokepay/response/private_money.py
index ae1e2e8..5e09700 100644
--- a/pokepay/response/private_money.py
+++ b/pokepay/response/private_money.py
@@ -15,6 +15,7 @@ def __init__(self, response, response_body):
         self.organization = response_body['organization']
         self.max_balance = response_body['max_balance']
         self.transfer_limit = response_body['transfer_limit']
+        self.money_topup_transfer_limit = response_body['money_topup_transfer_limit']
         self.type = response_body['type']
         self.expiration_type = response_body['expiration_type']
         self.enable_topup_by_member = response_body['enable_topup_by_member']
@@ -47,6 +48,9 @@ def max_balance(self):
     def transfer_limit(self):
         return self.transfer_limit
 
+    def money_topup_transfer_limit(self):
+        return self.money_topup_transfer_limit
+
     def type(self):
         return self.type
 
diff --git a/pokepay/response/private_money_summary.py b/pokepay/response/private_money_summary.py
index 283cdcb..b980b0d 100644
--- a/pokepay/response/private_money_summary.py
+++ b/pokepay/response/private_money_summary.py
@@ -11,6 +11,8 @@ def __init__(self, response, response_body):
         self.payment_amount = response_body['payment_amount']
         self.refunded_payment_amount = response_body['refunded_payment_amount']
         self.added_point_amount = response_body['added_point_amount']
+        self.topup_point_amount = response_body['topup_point_amount']
+        self.campaign_point_amount = response_body['campaign_point_amount']
         self.refunded_added_point_amount = response_body['refunded_added_point_amount']
         self.exchange_inflow_amount = response_body['exchange_inflow_amount']
         self.exchange_outflow_amount = response_body['exchange_outflow_amount']
@@ -31,6 +33,12 @@ def refunded_payment_amount(self):
     def added_point_amount(self):
         return self.added_point_amount
 
+    def topup_point_amount(self):
+        return self.topup_point_amount
+
+    def campaign_point_amount(self):
+        return self.campaign_point_amount
+
     def refunded_added_point_amount(self):
         return self.refunded_added_point_amount
 
diff --git a/pokepay/response/product.py b/pokepay/response/product.py
index 776571d..0338442 100644
--- a/pokepay/response/product.py
+++ b/pokepay/response/product.py
@@ -10,6 +10,7 @@ def __init__(self, response, response_body):
         self.name = response_body['name']
         self.unit_price = response_body['unit_price']
         self.price = response_body['price']
+        self.quantity = response_body['quantity']
         self.is_discounted = response_body['is_discounted']
         self.other = response_body['other']
 
@@ -25,6 +26,9 @@ def unit_price(self):
     def price(self):
         return self.price
 
+    def quantity(self):
+        return self.quantity
+
     def is_discounted(self):
         return self.is_discounted
 
diff --git a/pokepay/response/seven_bank_atm_session.py b/pokepay/response/seven_bank_atm_session.py
new file mode 100644
index 0000000..485a6e0
--- /dev/null
+++ b/pokepay/response/seven_bank_atm_session.py
@@ -0,0 +1,49 @@
+# DO NOT EDIT: File is generated by code generator.
+
+from pokepay.response.response import PokepayResponse
+
+
+class SevenBankATMSession(PokepayResponse):
+    def __init__(self, response, response_body):
+        super().__init__(response, response_body)
+        self.qr_info = response_body['qr_info']
+        self.account = response_body['account']
+        self.amount = response_body['amount']
+        self.transaction = response_body['transaction']
+        self.seven_bank_customer_number = response_body['seven_bank_customer_number']
+        self.atm_id = response_body['atm_id']
+        self.audi_id = response_body['audi_id']
+        self.issuer_code = response_body['issuer_code']
+        self.issuer_name = response_body['issuer_name']
+        self.money_name = response_body['money_name']
+
+    def qr_info(self):
+        return self.qr_info
+
+    def account(self):
+        return self.account
+
+    def amount(self):
+        return self.amount
+
+    def transaction(self):
+        return self.transaction
+
+    def seven_bank_customer_number(self):
+        return self.seven_bank_customer_number
+
+    def atm_id(self):
+        return self.atm_id
+
+    def audi_id(self):
+        return self.audi_id
+
+    def issuer_code(self):
+        return self.issuer_code
+
+    def issuer_name(self):
+        return self.issuer_name
+
+    def money_name(self):
+        return self.money_name
+
diff --git a/pokepay/response/shop_with_accounts.py b/pokepay/response/shop_with_accounts.py
index 8a92110..0b62e7d 100644
--- a/pokepay/response/shop_with_accounts.py
+++ b/pokepay/response/shop_with_accounts.py
@@ -9,6 +9,7 @@ def __init__(self, response, response_body):
         self.id = response_body['id']
         self.name = response_body['name']
         self.organization_code = response_body['organization_code']
+        self.status = response_body['status']
         self.postal_code = response_body['postal_code']
         self.address = response_body['address']
         self.tel = response_body['tel']
@@ -25,6 +26,9 @@ def name(self):
     def organization_code(self):
         return self.organization_code
 
+    def status(self):
+        return self.status
+
     def postal_code(self):
         return self.postal_code
 
diff --git a/pokepay/response/shop_with_metadata.py b/pokepay/response/shop_with_metadata.py
index f8f185a..3707c1a 100644
--- a/pokepay/response/shop_with_metadata.py
+++ b/pokepay/response/shop_with_metadata.py
@@ -9,6 +9,7 @@ def __init__(self, response, response_body):
         self.id = response_body['id']
         self.name = response_body['name']
         self.organization_code = response_body['organization_code']
+        self.status = response_body['status']
         self.postal_code = response_body['postal_code']
         self.address = response_body['address']
         self.tel = response_body['tel']
@@ -24,6 +25,9 @@ def name(self):
     def organization_code(self):
         return self.organization_code
 
+    def status(self):
+        return self.status
+
     def postal_code(self):
         return self.postal_code
 
diff --git a/pokepay/response/transaction.py b/pokepay/response/transaction.py
index 0b68a78..0254904 100644
--- a/pokepay/response/transaction.py
+++ b/pokepay/response/transaction.py
@@ -16,6 +16,8 @@ def __init__(self, response, response_body):
         self.amount = response_body['amount']
         self.money_amount = response_body['money_amount']
         self.point_amount = response_body['point_amount']
+        self.raw_point_amount = response_body['raw_point_amount']
+        self.campaign_point_amount = response_body['campaign_point_amount']
         self.done_at = response_body['done_at']
         self.description = response_body['description']
 
@@ -49,6 +51,12 @@ def money_amount(self):
     def point_amount(self):
         return self.point_amount
 
+    def raw_point_amount(self):
+        return self.raw_point_amount
+
+    def campaign_point_amount(self):
+        return self.campaign_point_amount
+
     def done_at(self):
         return self.done_at
 
diff --git a/pokepay/response/transaction_detail.py b/pokepay/response/transaction_detail.py
index 88485ea..83a95d9 100644
--- a/pokepay/response/transaction_detail.py
+++ b/pokepay/response/transaction_detail.py
@@ -16,6 +16,8 @@ def __init__(self, response, response_body):
         self.amount = response_body['amount']
         self.money_amount = response_body['money_amount']
         self.point_amount = response_body['point_amount']
+        self.raw_point_amount = response_body['raw_point_amount']
+        self.campaign_point_amount = response_body['campaign_point_amount']
         self.done_at = response_body['done_at']
         self.description = response_body['description']
         self.transfers = response_body['transfers']
@@ -50,6 +52,12 @@ def money_amount(self):
     def point_amount(self):
         return self.point_amount
 
+    def raw_point_amount(self):
+        return self.raw_point_amount
+
+    def campaign_point_amount(self):
+        return self.campaign_point_amount
+
     def done_at(self):
         return self.done_at
 
diff --git a/pokepay/response/transaction_group.py b/pokepay/response/transaction_group.py
new file mode 100644
index 0000000..fb4ecdd
--- /dev/null
+++ b/pokepay/response/transaction_group.py
@@ -0,0 +1,29 @@
+# DO NOT EDIT: File is generated by code generator.
+
+from pokepay.response.response import PokepayResponse
+
+
+class TransactionGroup(PokepayResponse):
+    def __init__(self, response, response_body):
+        super().__init__(response, response_body)
+        self.id = response_body['id']
+        self.name = response_body['name']
+        self.created_at = response_body['created_at']
+        self.updated_at = response_body['updated_at']
+        self.transactions = response_body['transactions']
+
+    def id(self):
+        return self.id
+
+    def name(self):
+        return self.name
+
+    def created_at(self):
+        return self.created_at
+
+    def updated_at(self):
+        return self.updated_at
+
+    def transactions(self):
+        return self.transactions
+
diff --git a/pokepay/response/user_card.py b/pokepay/response/user_card.py
new file mode 100644
index 0000000..e0c6b11
--- /dev/null
+++ b/pokepay/response/user_card.py
@@ -0,0 +1,21 @@
+# DO NOT EDIT: File is generated by code generator.
+
+from pokepay.response.response import PokepayResponse
+
+
+class UserCard(PokepayResponse):
+    def __init__(self, response, response_body):
+        super().__init__(response, response_body)
+        self.id = response_body['id']
+        self.card_number = response_body['card_number']
+        self.registered_at = response_body['registered_at']
+
+    def id(self):
+        return self.id
+
+    def card_number(self):
+        return self.card_number
+
+    def registered_at(self):
+        return self.registered_at
+
diff --git a/pokepay/response/user_device.py b/pokepay/response/user_device.py
new file mode 100644
index 0000000..605f06f
--- /dev/null
+++ b/pokepay/response/user_device.py
@@ -0,0 +1,25 @@
+# DO NOT EDIT: File is generated by code generator.
+
+from pokepay.response.response import PokepayResponse
+
+
+class UserDevice(PokepayResponse):
+    def __init__(self, response, response_body):
+        super().__init__(response, response_body)
+        self.id = response_body['id']
+        self.user = response_body['user']
+        self.is_active = response_body['is_active']
+        self.metadata = response_body['metadata']
+
+    def id(self):
+        return self.id
+
+    def user(self):
+        return self.user
+
+    def is_active(self):
+        return self.is_active
+
+    def metadata(self):
+        return self.metadata
+
diff --git a/pokepay/response/user_stats_operation.py b/pokepay/response/user_stats_operation.py
index b89a760..d5c8536 100644
--- a/pokepay/response/user_stats_operation.py
+++ b/pokepay/response/user_stats_operation.py
@@ -7,7 +7,7 @@ class UserStatsOperation(PokepayResponse):
     def __init__(self, response, response_body):
         super().__init__(response, response_body)
         self.id = response_body['id']
-        self.start = response_body['from']
+        self.from_ = response_body['from']
         self.to = response_body['to']
         self.status = response_body['status']
         self.error_reason = response_body['error_reason']
@@ -18,8 +18,8 @@ def __init__(self, response, response_body):
     def id(self):
         return self.id
 
-    def start(self):
-        return self.start
+    def from_(self):
+        return self.from_
 
     def to(self):
         return self.to
diff --git a/setup.py b/setup.py
index 074ff2a..3f7e863 100644
--- a/setup.py
+++ b/setup.py
@@ -18,7 +18,7 @@
 EMAIL = 'dev@pocket-change.jp'
 AUTHOR = 'Pocket Change inc.'
 REQUIRES_PYTHON = '>=3.6.0'
-VERSION = '1.0.4'
+VERSION = '1.0.5'
 
 # What packages are required for this module to be executed?
 REQUIRED = ['requests', 'configparser', 'uuid', 'pytz', 'pycryptodomex']
diff --git a/tests/create_new_customer_with_account_test.py b/tests/create_new_customer_with_account_test.py
new file mode 100644
index 0000000..6d3aa0a
--- /dev/null
+++ b/tests/create_new_customer_with_account_test.py
@@ -0,0 +1,67 @@
+# coding: utf-8
+# DO NOT EDIT: File is generated by code generator.
+
+import os
+import unittest
+import pokepay as pp
+from pokepay.client import Client
+import tests.util
+
+package_root = os.path.dirname(os.path.dirname(pp.__file__))
+config_path = os.path.join(package_root, 'config.ini')
+client = Client(config_path)
+
+def testCreateNewCustomerWithAccount(self):
+    user_name = "user-name" + tests.util.random_string(6)
+    account_name = "account-name" + tests.util.random_string(6)
+    customer_account = client.send(pp.CreateCustomerAccount(
+        "4b138a4c-8944-4f98-a5c4-96d3c1c415eb",
+        user_name: user_name,
+        account_name: account_name
+    ))
+    self.assertEqual(user_name, customer_account.user.name)
+    self.assertEqual(account_name, customer_account.name)
+    shop_name = "shop-name" + tests.util.random_string(6)
+    shop = client.send(pp.CreateShopV2(
+        shop_name,
+        private_money_ids: ["4b138a4c-8944-4f98-a5c4-96d3c1c415eb"],
+        can_topup_private_money_ids: ["4b138a4c-8944-4f98-a5c4-96d3c1c415eb"]
+    ))
+    topup_transaction = client.send(pp.CreateTopupTransaction(
+        shop.id,
+        customer_account.user.id,
+        "4b138a4c-8944-4f98-a5c4-96d3c1c415eb",
+        money_amount: 1000,
+        point_amount: 1000
+    ))
+    self.assertEqual(topup_transaction.type, "topup")
+    payment_transaction = client.send(pp.CreatePaymentTransaction(
+        shop.id,
+        customer_account.user.id,
+        "4b138a4c-8944-4f98-a5c4-96d3c1c415eb",
+        100
+    ))
+    bill = client.send(pp.CreateBill(
+        "4b138a4c-8944-4f98-a5c4-96d3c1c415eb",
+        shop.id
+    ))
+    bill_updated = client.send(pp.UpdateBill(
+        bill.id,
+        amount: 200.0
+    ))
+    bill_payment = client.send(pp.CreatePaymentTransactionWithBill(
+        bill.id,
+        customer_account.user.id
+    ))
+    self.assertEqual(payment_transaction.type, "payment")
+    self.assertEqual(bill_payment.type, "payment")
+    transactions = client.send(pp.ListTransactionsV2(private_money_id: "4b138a4c-8944-4f98-a5c4-96d3c1c415eb",
+        shop_id: shop.id,
+        customer_id: customer_account.user.id
+    ))
+    bill_transactions = client.send(pp.ListBillTransactions(private_money_id: "4b138a4c-8944-4f98-a5c4-96d3c1c415eb",
+        shop_id: shop.id,
+        customer_id: customer_account.user.id
+    ))
+    self.assertEqual(transactions.count, 3)
+    self.assertEqual(bill_transactions.count, 1)
diff --git a/tests/create_organization_test.py b/tests/create_organization_test.py
new file mode 100644
index 0000000..473f8b5
--- /dev/null
+++ b/tests/create_organization_test.py
@@ -0,0 +1,59 @@
+# coding: utf-8
+# DO NOT EDIT: File is generated by code generator.
+
+import os
+import unittest
+import pokepay as pp
+from pokepay.client import Client
+import tests.util
+
+package_root = os.path.dirname(os.path.dirname(pp.__file__))
+config_path = os.path.join(package_root, 'config.ini')
+client = Client(config_path)
+
+def testCreateOrganization(self):
+    code = "test-org" + tests.util.random_string(6)
+    name = "テスト組織" + tests.util.random_string(4)
+    private_money_ids = ["4b138a4c-8944-4f98-a5c4-96d3c1c415eb"]
+    issuer_admin_user_email = "blackhole@pokepay.jp"
+    member_admin_user_email = "blackhole@pokepay.jp"
+    response = client.send(pp.CreateOrganization(
+        code,
+        name,
+        private_money_ids,
+        issuer_admin_user_email,
+        member_admin_user_email
+    ))
+    self.assertEqual(code, response.code)
+    self.assertEqual(name, response.name)
+def testCreateOrganizationWithMetadata(self):
+    code = "test-org" + tests.util.random_string(6)
+    name = "テスト組織" + tests.util.random_string(4)
+    private_money_ids = ["4b138a4c-8944-4f98-a5c4-96d3c1c415eb"]
+    issuer_admin_user_email = "blackhole@pokepay.jp"
+    member_admin_user_email = "blackhole@pokepay.jp"
+    bank_code = "1234"
+    bank_name = tests.util.random_string(4) + "銀行"
+    bank_branch_code = "123"
+    bank_branch_name = tests.util.random_string(4) + "支店"
+    bank_account_type = "saving"
+    bank_account = "1234567"
+    bank_account_holder_name = "ﾌｸｻﾞﾜﾕｷﾁ"
+    contact_name = "佐藤清"
+    response = client.send(pp.CreateOrganization(
+        code,
+        name,
+        private_money_ids,
+        issuer_admin_user_email,
+        member_admin_user_email,
+        bank_code: bank_code,
+        bank_name: bank_name,
+        bank_branch_code: bank_branch_code,
+        bank_branch_name: bank_branch_name,
+        bank_account_type: bank_account_type,
+        bank_account: bank_account,
+        bank_account_holder_name: bank_account_holder_name,
+        contact_name: contact_name
+    ))
+    self.assertEqual(code, response.code)
+    self.assertEqual(name, response.name)
diff --git a/tests/list_organizations.py b/tests/list_organizations.py
new file mode 100644
index 0000000..fbeee02
--- /dev/null
+++ b/tests/list_organizations.py
@@ -0,0 +1,24 @@
+# coding: utf-8
+# DO NOT EDIT: File is generated by code generator.
+
+import os
+import unittest
+import pokepay as pp
+from pokepay.client import Client
+import tests.util
+
+package_root = os.path.dirname(os.path.dirname(pp.__file__))
+config_path = os.path.join(package_root, 'config.ini')
+client = Client(config_path)
+
+def simple(self):
+    response = client.send(pp.ListOrganizations(
+        "4b138a4c-8944-4f98-a5c4-96d3c1c415eb"
+    ))
+    print(response)
+def paging(self):
+    response = client.send(pp.ListOrganizations(
+        "4b138a4c-8944-4f98-a5c4-96d3c1c415eb",
+        per_page: 3
+    ))
+    self.assertEqual(3, response.pagination.per_page)
diff --git a/tests/register_bank_account.py b/tests/register_bank_account.py
new file mode 100644
index 0000000..266c9e9
--- /dev/null
+++ b/tests/register_bank_account.py
@@ -0,0 +1,44 @@
+# coding: utf-8
+# DO NOT EDIT: File is generated by code generator.
+
+import os
+import unittest
+import pokepay as pp
+from pokepay.client import Client
+import tests.util
+
+package_root = os.path.dirname(os.path.dirname(pp.__file__))
+config_path = os.path.join(package_root, 'config.ini')
+client = Client(config_path)
+
+def testRegisterBankAccount(self):
+    customer_name = "customer-name" + tests.util.random_string(6)
+    account_name = "account-name" + tests.util.random_string(6)
+    customer = client.send(pp.CreateCustomerAccount(
+        "4b138a4c-8944-4f98-a5c4-96d3c1c415eb",
+        user_name: customer_name,
+        account_name: account_name
+    ))
+    user_device_metadata = "{\"user_agent\": \"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:120.0) Gecko/20100101 Firefox/120.0\"}"
+    user_device = client.send(pp.CreateUserDevice(
+        customer.user.id,
+        metadata: user_device_metadata
+    ))
+    get_user_device_response = client.send(pp.GetUserDevice(
+        user_device.id
+    ))
+    self.assertEqual(get_user_device_response.is_active, False)
+    user_device_activated = client.send(pp.ActivateUserDevice(
+        get_user_device_response.id
+    ))
+    self.assertEqual(user_device_activated.is_active, True)
+    create_bank = client.send(pp.CreateBank(
+        get_user_device_response.id,
+        "4b138a4c-8944-4f98-a5c4-96d3c1c415eb",
+        "dummy",
+        "ポケペイタロウ"
+    ))
+    bank_accounts_listed = client.send(pp.ListBanks(
+        get_user_device_response.id
+    ))
+    self.assertEqual(bank_accounts_listed.count, 0)
diff --git a/tests/send_echo_test.py b/tests/send_echo_test.py
new file mode 100644
index 0000000..41b51eb
--- /dev/null
+++ b/tests/send_echo_test.py
@@ -0,0 +1,19 @@
+# coding: utf-8
+# DO NOT EDIT: File is generated by code generator.
+
+import os
+import unittest
+import pokepay as pp
+from pokepay.client import Client
+import tests.util
+
+package_root = os.path.dirname(os.path.dirname(pp.__file__))
+config_path = os.path.join(package_root, 'config.ini')
+client = Client(config_path)
+
+def simpleTest(self):
+    response = client.send(pp.SendEcho(
+        "Hello"
+    ))
+    self.assertEqual("ok", response.status)
+    self.assertEqual("Hello", response.message)
diff --git a/tests/test_request_validation.py b/tests/test_request_validation.py
index 3313dbc..73c80a7 100644
--- a/tests/test_request_validation.py
+++ b/tests/test_request_validation.py
@@ -20,7 +20,73 @@ def test_get_ping_0(self):
 
     def test_send_echo_0(self):
         response = client.send(pp.SendEcho(
-                                  "AIRkH"
+                                  "DgdY"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_post_credit_session_0(self):
+        response = client.send(pp.PostCreditSession(
+                                  "f7badafa-54a1-4511-b337-e4aa1c1fe652",
+                                  "7c419418-aa59-4e5c-bbdc-7d8d6bf88c31",
+                                  "1cca797a-a4ae-4807-a9ad-4bab80f00988",
+                                  "2024-03-08T03:04:44.000000Z"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_post_credit_session_1(self):
+        response = client.send(pp.PostCreditSession(
+                                  "f7badafa-54a1-4511-b337-e4aa1c1fe652",
+                                  "7c419418-aa59-4e5c-bbdc-7d8d6bf88c31",
+                                  "1cca797a-a4ae-4807-a9ad-4bab80f00988",
+                                  "2024-03-08T03:04:44.000000Z",
+                                  request_id="cc450cba-668f-4380-854c-2e6dae6d9426"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_credit_session_transaction_0(self):
+        response = client.send(pp.CreateCreditSessionTransaction(
+                                  "adc1965b-ba46-41c2-8dfc-c8ee6468fd6e",
+                                  9780.0
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_credit_session_transaction_1(self):
+        response = client.send(pp.CreateCreditSessionTransaction(
+                                  "adc1965b-ba46-41c2-8dfc-c8ee6468fd6e",
+                                  9780.0,
+                                  request_id="2c826d8b-e412-4dbe-a759-328251097330"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_credit_session_transaction_2(self):
+        response = client.send(pp.CreateCreditSessionTransaction(
+                                  "adc1965b-ba46-41c2-8dfc-c8ee6468fd6e",
+                                  9780.0,
+                                  description="BddIYIaGsnHTfyj3vGhpYs6lE3PVxThCRcEAVa4JmfjoJZ9ajsO39BqxPDSP5BpfA0dYcuMmHpa4aDHWm32hBFhI0DxRhz83lKq4Wp1hKlNvpHM0s7Dd9Uu6qWqC0qUtLag9adxARTcCtKjz1M2kusM3cVDMOGMtpxWNvKR6Gcp6PWCiN",
+                                  request_id="637c48af-86f9-48ed-82e1-99558a467bfe"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_credit_session_transaction_3(self):
+        response = client.send(pp.CreateCreditSessionTransaction(
+                                  "adc1965b-ba46-41c2-8dfc-c8ee6468fd6e",
+                                  9780.0,
+                                  shop_id="4d1e7adb-31c9-4ea0-b5b6-7310d8249eec",
+                                  description="IyVNDYRttS46oTXBYnbHbMuAdnXANiixumuncg7egxc7L05i8jkZ1Waa6h6AAgB9jXehhbgsnyiHZ1n3qwk3r3QhfSXAhy6Q6NsE0G4ETHn0hBw4No1YXyGaN9eZjSIQORsTn19Lt83IRfp6apsZzwHUg",
+                                  request_id="3c19993c-6f8f-4de2-b2ae-9871bf5118f1"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_capture_credit_session_0(self):
+        response = client.send(pp.CaptureCreditSession(
+                                  "40765da0-f6f2-41cc-b413-655243e97309"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_capture_credit_session_1(self):
+        response = client.send(pp.CaptureCreditSession(
+                                  "40765da0-f6f2-41cc-b413-655243e97309",
+                                  request_id="ff18fd70-52a7-4b0f-9227-95a7c5dcd5cd"
         ))
         self.assertNotEqual(response.status_code, 400)
 
@@ -31,463 +97,463 @@ def test_get_user_0(self):
 
     def test_list_user_accounts_0(self):
         response = client.send(pp.ListUserAccounts(
-                                  "a0cca592-bf22-4263-8ecd-026754ff855d"
+                                  "580852da-986e-4146-8a04-b74de803cf9c"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_user_accounts_1(self):
         response = client.send(pp.ListUserAccounts(
-                                  "a0cca592-bf22-4263-8ecd-026754ff855d",
-                                  per_page=3358
+                                  "580852da-986e-4146-8a04-b74de803cf9c",
+                                  per_page=6774
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_user_accounts_2(self):
         response = client.send(pp.ListUserAccounts(
-                                  "a0cca592-bf22-4263-8ecd-026754ff855d",
-                                  page=5271,
-                                  per_page=8562
+                                  "580852da-986e-4146-8a04-b74de803cf9c",
+                                  page=4049,
+                                  per_page=405
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_user_account_0(self):
         response = client.send(pp.CreateUserAccount(
-                                  "4790f39c-f3ce-4a37-b7c6-ca019185d723",
-                                  "9f527c51-9a7e-4677-87ab-ae21ff187cf5"
+                                  "53a50385-11f5-46f5-a3d9-62a90c8a29c4",
+                                  "6cddcb78-7848-485a-a46e-a0ab2dc39ee9"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_user_account_1(self):
         response = client.send(pp.CreateUserAccount(
-                                  "4790f39c-f3ce-4a37-b7c6-ca019185d723",
-                                  "9f527c51-9a7e-4677-87ab-ae21ff187cf5",
+                                  "53a50385-11f5-46f5-a3d9-62a90c8a29c4",
+                                  "6cddcb78-7848-485a-a46e-a0ab2dc39ee9",
                                   metadata="{\"key1\":\"foo\",\"key2\":\"bar\"}"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_user_account_2(self):
         response = client.send(pp.CreateUserAccount(
-                                  "4790f39c-f3ce-4a37-b7c6-ca019185d723",
-                                  "9f527c51-9a7e-4677-87ab-ae21ff187cf5",
-                                  external_id="iGtQW4pnFSkfz0ZA",
+                                  "53a50385-11f5-46f5-a3d9-62a90c8a29c4",
+                                  "6cddcb78-7848-485a-a46e-a0ab2dc39ee9",
+                                  external_id="kAchiJbVP3ZTnJxIJTqpbj9hQa29LtqbzIUCtrgI5GH6",
                                   metadata="{\"key1\":\"foo\",\"key2\":\"bar\"}"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_user_account_3(self):
         response = client.send(pp.CreateUserAccount(
-                                  "4790f39c-f3ce-4a37-b7c6-ca019185d723",
-                                  "9f527c51-9a7e-4677-87ab-ae21ff187cf5",
-                                  name="uHKErS89ga8rAwXpAiqwTxt1HL4wWzmkMDA4SVfWD13Zj3L9DQPYajb0tVdWEdtL2ujHbA770c9iXi2Q1VWdznJovLhT0BrHHw3tEdBOJZocfpIFBg2EP1IMpzVlOR0ZjHbJ4pIYeH1mIjK91BovJNiyan2Rg9xEgMUhIRyB0Lq7z8Ljil9JSMA7rA7mkLLtmKfguDK2IgQjODYIDOJbPEulQI",
-                                  external_id="vNSkQALktsxpQNr6y6a28m0nRuldHpS",
+                                  "53a50385-11f5-46f5-a3d9-62a90c8a29c4",
+                                  "6cddcb78-7848-485a-a46e-a0ab2dc39ee9",
+                                  name="Qi2f3OojTDEk0fitYgKzfXu0N7ZPQ6Ey6Tu3BU56A0DovC2AWlgsj8AO1bqHH9NHpqZwH1tkpyNDcuWxfr4xKRRC5UPfddKJfLPJmxAhDpkltxfpGBgKzLBW",
+                                  external_id="M",
                                   metadata="{\"key1\":\"foo\",\"key2\":\"bar\"}"
         ))
         self.assertNotEqual(response.status_code, 400)
 
+    def test_delete_account_0(self):
+        response = client.send(pp.DeleteAccount(
+                                  "6e0f5443-faad-451b-9992-5ce9c4e4ae3a"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_delete_account_1(self):
+        response = client.send(pp.DeleteAccount(
+                                  "6e0f5443-faad-451b-9992-5ce9c4e4ae3a",
+                                  cashback=False
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
     def test_get_account_0(self):
         response = client.send(pp.GetAccount(
-                                  "ce82075e-0d91-419b-b5bc-31458306bc55"
+                                  "659420e6-ccd8-47bd-9f80-4444609cfe97"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_update_account_0(self):
         response = client.send(pp.UpdateAccount(
-                                  "9d4a4a80-c7f0-40db-a450-36e946e1971a"
+                                  "95c86f58-0405-4529-92d0-94c33ae0c1e2"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_update_account_1(self):
         response = client.send(pp.UpdateAccount(
-                                  "9d4a4a80-c7f0-40db-a450-36e946e1971a",
+                                  "95c86f58-0405-4529-92d0-94c33ae0c1e2",
                                   can_transfer_topup=False
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_update_account_2(self):
         response = client.send(pp.UpdateAccount(
-                                  "9d4a4a80-c7f0-40db-a450-36e946e1971a",
-                                  status="suspended",
+                                  "95c86f58-0405-4529-92d0-94c33ae0c1e2",
+                                  status="pre-closed",
                                   can_transfer_topup=True
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_update_account_3(self):
         response = client.send(pp.UpdateAccount(
-                                  "9d4a4a80-c7f0-40db-a450-36e946e1971a",
+                                  "95c86f58-0405-4529-92d0-94c33ae0c1e2",
                                   is_suspended=True,
-                                  status="suspended",
+                                  status="active",
                                   can_transfer_topup=False
         ))
         self.assertNotEqual(response.status_code, 400)
 
-    def test_delete_account_0(self):
-        response = client.send(pp.DeleteAccount(
-                                  "3f9092d1-1997-4132-869d-a7c75a5d798b"
-        ))
-        self.assertNotEqual(response.status_code, 400)
-
-    def test_delete_account_1(self):
-        response = client.send(pp.DeleteAccount(
-                                  "3f9092d1-1997-4132-869d-a7c75a5d798b",
-                                  cashback=True
-        ))
-        self.assertNotEqual(response.status_code, 400)
-
     def test_list_account_balances_0(self):
         response = client.send(pp.ListAccountBalances(
-                                  "fe9ba5e6-5a43-4eb0-a1f4-973999643afe"
+                                  "d5604b93-65ee-41d4-b3d2-ab9edcaac0bf"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_account_balances_1(self):
         response = client.send(pp.ListAccountBalances(
-                                  "fe9ba5e6-5a43-4eb0-a1f4-973999643afe",
+                                  "d5604b93-65ee-41d4-b3d2-ab9edcaac0bf",
                                   direction="asc"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_account_balances_2(self):
         response = client.send(pp.ListAccountBalances(
-                                  "fe9ba5e6-5a43-4eb0-a1f4-973999643afe",
-                                  expires_at_to="2019-01-29T08:31:34.000000+09:00",
+                                  "d5604b93-65ee-41d4-b3d2-ab9edcaac0bf",
+                                  expires_at_to="2024-07-17T16:43:47.000000Z",
                                   direction="asc"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_account_balances_3(self):
         response = client.send(pp.ListAccountBalances(
-                                  "fe9ba5e6-5a43-4eb0-a1f4-973999643afe",
-                                  expires_at_from="2025-01-12T13:40:21.000000+09:00",
-                                  expires_at_to="2023-01-11T21:31:56.000000+09:00",
-                                  direction="asc"
+                                  "d5604b93-65ee-41d4-b3d2-ab9edcaac0bf",
+                                  expires_at_from="2021-04-06T08:41:06.000000Z",
+                                  expires_at_to="2023-06-02T11:51:13.000000Z",
+                                  direction="desc"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_account_balances_4(self):
         response = client.send(pp.ListAccountBalances(
-                                  "fe9ba5e6-5a43-4eb0-a1f4-973999643afe",
-                                  per_page=1016,
-                                  expires_at_from="2024-09-04T17:10:42.000000+09:00",
-                                  expires_at_to="2018-06-16T11:20:58.000000+09:00",
+                                  "d5604b93-65ee-41d4-b3d2-ab9edcaac0bf",
+                                  per_page=4634,
+                                  expires_at_from="2024-01-18T23:56:06.000000Z",
+                                  expires_at_to="2021-12-10T18:32:08.000000Z",
                                   direction="desc"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_account_balances_5(self):
         response = client.send(pp.ListAccountBalances(
-                                  "fe9ba5e6-5a43-4eb0-a1f4-973999643afe",
-                                  page=218,
-                                  per_page=2182,
-                                  expires_at_from="2024-06-22T12:06:55.000000+09:00",
-                                  expires_at_to="2024-12-24T09:24:19.000000+09:00",
+                                  "d5604b93-65ee-41d4-b3d2-ab9edcaac0bf",
+                                  page=5372,
+                                  per_page=1503,
+                                  expires_at_from="2021-10-12T09:36:01.000000Z",
+                                  expires_at_to="2023-11-12T04:37:14.000000Z",
                                   direction="asc"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_account_expired_balances_0(self):
         response = client.send(pp.ListAccountExpiredBalances(
-                                  "36c55dae-a763-48a7-a91e-94db92494432"
+                                  "154960a2-ce1f-44d3-ad4e-01f7bc94c80f"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_account_expired_balances_1(self):
         response = client.send(pp.ListAccountExpiredBalances(
-                                  "36c55dae-a763-48a7-a91e-94db92494432",
-                                  direction="asc"
+                                  "154960a2-ce1f-44d3-ad4e-01f7bc94c80f",
+                                  direction="desc"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_account_expired_balances_2(self):
         response = client.send(pp.ListAccountExpiredBalances(
-                                  "36c55dae-a763-48a7-a91e-94db92494432",
-                                  expires_at_to="2024-06-30T13:46:34.000000+09:00",
+                                  "154960a2-ce1f-44d3-ad4e-01f7bc94c80f",
+                                  expires_at_to="2020-05-12T06:39:28.000000Z",
                                   direction="desc"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_account_expired_balances_3(self):
         response = client.send(pp.ListAccountExpiredBalances(
-                                  "36c55dae-a763-48a7-a91e-94db92494432",
-                                  expires_at_from="2016-12-02T09:27:57.000000+09:00",
-                                  expires_at_to="2024-02-13T02:34:31.000000+09:00",
-                                  direction="desc"
+                                  "154960a2-ce1f-44d3-ad4e-01f7bc94c80f",
+                                  expires_at_from="2021-08-10T22:28:30.000000Z",
+                                  expires_at_to="2022-01-02T23:11:37.000000Z",
+                                  direction="asc"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_account_expired_balances_4(self):
         response = client.send(pp.ListAccountExpiredBalances(
-                                  "36c55dae-a763-48a7-a91e-94db92494432",
-                                  per_page=5871,
-                                  expires_at_from="2019-07-12T13:14:21.000000+09:00",
-                                  expires_at_to="2016-08-23T18:23:34.000000+09:00",
-                                  direction="asc"
+                                  "154960a2-ce1f-44d3-ad4e-01f7bc94c80f",
+                                  per_page=4714,
+                                  expires_at_from="2020-04-19T21:07:10.000000Z",
+                                  expires_at_to="2023-01-28T20:39:36.000000Z",
+                                  direction="desc"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_account_expired_balances_5(self):
         response = client.send(pp.ListAccountExpiredBalances(
-                                  "36c55dae-a763-48a7-a91e-94db92494432",
-                                  page=4236,
-                                  per_page=3454,
-                                  expires_at_from="2018-03-08T11:42:37.000000+09:00",
-                                  expires_at_to="2016-04-28T02:09:16.000000+09:00",
-                                  direction="asc"
+                                  "154960a2-ce1f-44d3-ad4e-01f7bc94c80f",
+                                  page=2353,
+                                  per_page=7193,
+                                  expires_at_from="2025-03-14T13:29:46.000000Z",
+                                  expires_at_to="2021-07-19T10:26:05.000000Z",
+                                  direction="desc"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_update_customer_account_0(self):
         response = client.send(pp.UpdateCustomerAccount(
-                                  "84b859aa-f0d3-4f6c-a841-282e9f5ab662"
+                                  "2b9a8465-d8cb-48e1-87c5-c9f23ead12af"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_update_customer_account_1(self):
         response = client.send(pp.UpdateCustomerAccount(
-                                  "84b859aa-f0d3-4f6c-a841-282e9f5ab662",
+                                  "2b9a8465-d8cb-48e1-87c5-c9f23ead12af",
                                   metadata="{\"key1\":\"foo\",\"key2\":\"bar\"}"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_update_customer_account_2(self):
         response = client.send(pp.UpdateCustomerAccount(
-                                  "84b859aa-f0d3-4f6c-a841-282e9f5ab662",
-                                  external_id="rppUqGdxMolEMce2oIWkzh6xh3kO5wXHuEli1NcEVyTrbdyJqm",
+                                  "2b9a8465-d8cb-48e1-87c5-c9f23ead12af",
+                                  external_id="wIngTct5VctC8ahSG576Yk267hNuqsd2aOEu5ugI0fcKm",
                                   metadata="{\"key1\":\"foo\",\"key2\":\"bar\"}"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_update_customer_account_3(self):
         response = client.send(pp.UpdateCustomerAccount(
-                                  "84b859aa-f0d3-4f6c-a841-282e9f5ab662",
-                                  account_name="h3W",
-                                  external_id="fGT9d54NzUibZax1gbE",
+                                  "2b9a8465-d8cb-48e1-87c5-c9f23ead12af",
+                                  account_name="GRUw7sMhCFW8ODbHkZSUPXBsmObvnHUjDTSSciw3PX7IImkvl5vCAHh7QD95u0YIcm0Sp2RluFOAxJTKKlkJp5ENq52OLTcJlnsa7zuy1tusdwen7Z1wrrgdxWfKkML",
+                                  external_id="wrBpORQ9LHlnKRmCd4nadmeyKnqGyqpn3W7S36l",
                                   metadata="{\"key1\":\"foo\",\"key2\":\"bar\"}"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_update_customer_account_4(self):
         response = client.send(pp.UpdateCustomerAccount(
-                                  "84b859aa-f0d3-4f6c-a841-282e9f5ab662",
+                                  "2b9a8465-d8cb-48e1-87c5-c9f23ead12af",
                                   status="suspended",
-                                  account_name="tEhHNUjZJEl7H6aHeFVmJSAKrLNuNDUQhJfNq76RxAuxSVrnur4Ju4ayidm5BuCe0yTSEIanUYTV2eUYLa0Qhqw2R1myjYzFL4j0HTXKtxMi6tvMf7GbuKVO",
-                                  external_id="o81owGN6i0XTT33lqYdKQ0h3ghVZk7eO",
+                                  account_name="4SSSOxW72gqSjd8QPzbjt0rt7UmerReZGbvGgvAZbyLJ1Lea6an4",
+                                  external_id="P1AnQALadFsAzgfKjbtuXg",
                                   metadata="{\"key1\":\"foo\",\"key2\":\"bar\"}"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_get_account_transfer_summary_0(self):
         response = client.send(pp.GetAccountTransferSummary(
-                                  "b9de1b01-2893-4024-85a2-263d27f20e39"
+                                  "2784c798-d5ac-46da-8465-d2dbc213a805"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_get_account_transfer_summary_1(self):
         response = client.send(pp.GetAccountTransferSummary(
-                                  "b9de1b01-2893-4024-85a2-263d27f20e39",
-                                  transfer_types=["refund-payment", "refund-topup", "topup", "refund-exchange-inflow", "payment", "campaign-topup", "refund-exchange-outflow", "exchange-outflow", "refund-campaign", "refund-coupon", "exchange-inflow"]
+                                  "2784c798-d5ac-46da-8465-d2dbc213a805",
+                                  transfer_types=["use-coupon"]
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_get_account_transfer_summary_2(self):
         response = client.send(pp.GetAccountTransferSummary(
-                                  "b9de1b01-2893-4024-85a2-263d27f20e39",
-                                  to="2016-10-27T21:00:49.000000+09:00",
-                                  transfer_types=["refund-exchange-outflow", "use-coupon", "refund-topup", "refund-payment", "campaign-topup", "topup", "payment", "exchange-inflow", "exchange-outflow", "refund-coupon", "refund-campaign", "refund-exchange-inflow"]
+                                  "2784c798-d5ac-46da-8465-d2dbc213a805",
+                                  to="2023-02-07T22:58:38.000000Z",
+                                  transfer_types=["refund-exchange-outflow", "exchange-outflow", "refund-campaign", "refund-exchange-inflow", "payment", "refund-payment", "campaign-topup", "topup", "refund-coupon", "refund-topup", "use-coupon"]
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_get_account_transfer_summary_3(self):
         response = client.send(pp.GetAccountTransferSummary(
-                                  "b9de1b01-2893-4024-85a2-263d27f20e39",
-                                  start="2022-08-16T01:04:09.000000+09:00",
-                                  to="2024-11-25T15:55:46.000000+09:00",
-                                  transfer_types=["refund-campaign", "topup", "refund-topup", "refund-exchange-outflow", "exchange-inflow", "refund-exchange-inflow", "exchange-outflow", "use-coupon", "campaign-topup", "payment", "refund-payment"]
+                                  "2784c798-d5ac-46da-8465-d2dbc213a805",
+                                  start="2023-09-02T11:04:26.000000Z",
+                                  to="2023-04-29T14:54:57.000000Z",
+                                  transfer_types=["payment", "refund-coupon", "campaign-topup", "refund-exchange-outflow", "topup", "refund-campaign"]
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_get_customer_accounts_0(self):
         response = client.send(pp.GetCustomerAccounts(
-                                  "c41f5bb2-749b-44ef-829d-581a94e833f3"
+                                  "0e4e7760-d0c1-43f4-8192-1c94876e3f07"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_get_customer_accounts_1(self):
         response = client.send(pp.GetCustomerAccounts(
-                                  "c41f5bb2-749b-44ef-829d-581a94e833f3",
-                                  email="hUtXGZ9lfp@9Twg.com"
+                                  "0e4e7760-d0c1-43f4-8192-1c94876e3f07",
+                                  email="fcLabY2vDz@XzQx.com"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_get_customer_accounts_2(self):
         response = client.send(pp.GetCustomerAccounts(
-                                  "c41f5bb2-749b-44ef-829d-581a94e833f3",
-                                  tel="0099877969",
-                                  email="qdhqoMR6oA@dT5y.com"
+                                  "0e4e7760-d0c1-43f4-8192-1c94876e3f07",
+                                  tel="0386914",
+                                  email="9VFC5bo0KX@fPAS.com"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_get_customer_accounts_3(self):
         response = client.send(pp.GetCustomerAccounts(
-                                  "c41f5bb2-749b-44ef-829d-581a94e833f3",
-                                  external_id="PsPRTmUYdZdYDDGZDuZn0XgqQIqTu1",
-                                  tel="03131471",
-                                  email="YdRTWbMgZi@B4q5.com"
+                                  "0e4e7760-d0c1-43f4-8192-1c94876e3f07",
+                                  external_id="w8jPQ0hMJ4nPgNJOUuVI3xkUSOX0v",
+                                  tel="0074-316-0237",
+                                  email="pl9MWii2ex@Aarz.com"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_get_customer_accounts_4(self):
         response = client.send(pp.GetCustomerAccounts(
-                                  "c41f5bb2-749b-44ef-829d-581a94e833f3",
-                                  status="pre-closed",
-                                  external_id="IKvcyeytZUeCOzn479Q7e7CQ6",
-                                  tel="073-94-711",
-                                  email="6jQwMdVQzE@T3CT.com"
+                                  "0e4e7760-d0c1-43f4-8192-1c94876e3f07",
+                                  status="active",
+                                  external_id="UllrgsQZQAnUYeKIbZQuPYAKNLvTyMc",
+                                  tel="039-279393",
+                                  email="z5jRHNPv9L@O3Mt.com"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_get_customer_accounts_5(self):
         response = client.send(pp.GetCustomerAccounts(
-                                  "c41f5bb2-749b-44ef-829d-581a94e833f3",
-                                  is_suspended=True,
-                                  status="pre-closed",
-                                  external_id="aadmHoO937wRncWgLEMvwuXtyGneCNJhR9grzsET9HHziGJ",
-                                  tel="0915-585-847",
-                                  email="EnNvZa51B6@RuNH.com"
+                                  "0e4e7760-d0c1-43f4-8192-1c94876e3f07",
+                                  is_suspended=False,
+                                  status="active",
+                                  external_id="yt1wTnktL8AY",
+                                  tel="004073-175",
+                                  email="ncONv8Kje2@pUTW.com"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_get_customer_accounts_6(self):
         response = client.send(pp.GetCustomerAccounts(
-                                  "c41f5bb2-749b-44ef-829d-581a94e833f3",
-                                  created_at_to="2018-07-26T02:42:57.000000+09:00",
+                                  "0e4e7760-d0c1-43f4-8192-1c94876e3f07",
+                                  created_at_to="2022-04-21T04:20:10.000000Z",
                                   is_suspended=False,
-                                  status="pre-closed",
-                                  external_id="kkEIImb7878ag0GpEoXRZP9Tuo6i",
-                                  tel="0402-724",
-                                  email="2arbhJouxW@Q6Fl.com"
+                                  status="suspended",
+                                  external_id="NDe87",
+                                  tel="045226365",
+                                  email="Usk6umIdkj@ysmB.com"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_get_customer_accounts_7(self):
         response = client.send(pp.GetCustomerAccounts(
-                                  "c41f5bb2-749b-44ef-829d-581a94e833f3",
-                                  created_at_from="2017-05-13T13:51:02.000000+09:00",
-                                  created_at_to="2017-01-23T16:21:15.000000+09:00",
-                                  is_suspended=False,
+                                  "0e4e7760-d0c1-43f4-8192-1c94876e3f07",
+                                  created_at_from="2022-05-05T01:50:52.000000Z",
+                                  created_at_to="2024-03-10T11:23:04.000000Z",
+                                  is_suspended=True,
                                   status="suspended",
-                                  external_id="k1iTzlm9ILQGKVJoUCSY35cdkgvsbAY",
-                                  tel="0584488892",
-                                  email="yLz0xsJRhR@VsB9.com"
+                                  external_id="Cy1Ud1e5PrxfXmPZX1VlVfqebv0ckwSJ4e9e0pY47yGoAwg2",
+                                  tel="0343-6615",
+                                  email="wFZHEg2RF0@uEHw.com"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_get_customer_accounts_8(self):
         response = client.send(pp.GetCustomerAccounts(
-                                  "c41f5bb2-749b-44ef-829d-581a94e833f3",
-                                  per_page=6828,
-                                  created_at_from="2021-07-13T22:31:44.000000+09:00",
-                                  created_at_to="2021-01-25T13:11:30.000000+09:00",
+                                  "0e4e7760-d0c1-43f4-8192-1c94876e3f07",
+                                  per_page=2583,
+                                  created_at_from="2022-08-10T17:00:59.000000Z",
+                                  created_at_to="2023-09-15T19:26:54.000000Z",
                                   is_suspended=False,
-                                  status="pre-closed",
-                                  external_id="fWzO75yHWR5FLMa9CO3GmqQepv7",
-                                  tel="080779634",
-                                  email="vLJkkZMMdE@ANfW.com"
+                                  status="suspended",
+                                  external_id="Jbwu9JRSn5a7ymUxn4mfvD7ycun86BZW4IWD5",
+                                  tel="0416-7601-378",
+                                  email="rq2HjQnZoV@WhOd.com"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_get_customer_accounts_9(self):
         response = client.send(pp.GetCustomerAccounts(
-                                  "c41f5bb2-749b-44ef-829d-581a94e833f3",
-                                  page=6145,
-                                  per_page=1495,
-                                  created_at_from="2022-09-03T18:18:14.000000+09:00",
-                                  created_at_to="2020-01-02T09:52:45.000000+09:00",
+                                  "0e4e7760-d0c1-43f4-8192-1c94876e3f07",
+                                  page=9504,
+                                  per_page=992,
+                                  created_at_from="2024-11-26T21:23:31.000000Z",
+                                  created_at_to="2026-05-27T18:46:45.000000Z",
                                   is_suspended=True,
                                   status="suspended",
-                                  external_id="Aje3PJg4zkA5dwRQrAEDCEBzCTk0p",
-                                  tel="07714864-9146",
-                                  email="6QjLE9oTv9@S3Zg.com"
+                                  external_id="EjTApY38vZyrfHaX2ePxiTIXhf26BicGgC0Q3onqPmyIzF",
+                                  tel="06-385030",
+                                  email="DlS2m5Kv5I@bgTW.com"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_customer_account_0(self):
         response = client.send(pp.CreateCustomerAccount(
-                                  "45dccf34-6a82-40cf-8035-99e4f021f54b"
+                                  "835f1a89-8691-4df3-aab7-584d1e24c526"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_customer_account_1(self):
         response = client.send(pp.CreateCustomerAccount(
-                                  "45dccf34-6a82-40cf-8035-99e4f021f54b",
-                                  external_id="9OBT"
+                                  "835f1a89-8691-4df3-aab7-584d1e24c526",
+                                  external_id="nGr0IGEeLzU5ms0HjwVmUqLVvuFmzvx3MioePO7gkO"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_customer_account_2(self):
         response = client.send(pp.CreateCustomerAccount(
-                                  "45dccf34-6a82-40cf-8035-99e4f021f54b",
-                                  account_name="n3gY0HIwJr5Xn6R9PIw5eC52tvIBnMyMg4CnT2dj7ORUTt4jEgn4792da7QYy7V605lzcBixerwgOsZo2yFQXiifPwyEPkMTjwK5UmBamQcUvvHD25XYGaGoRmlkWp",
-                                  external_id="VKSQYACWhdJgT5"
+                                  "835f1a89-8691-4df3-aab7-584d1e24c526",
+                                  account_name="NNAjB",
+                                  external_id="CYm4KWEpCDEdkn0OKxjITuRCVadPy2BbYSAUfNgtCT3a"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_customer_account_3(self):
         response = client.send(pp.CreateCustomerAccount(
-                                  "45dccf34-6a82-40cf-8035-99e4f021f54b",
-                                  user_name="XIAxp1c5Q2vG7By91KC2xkwbMvROWfUAhh6XnZz0yJYgRGAM6oTzljbZYS9b6qmrSFaDiVxdn1z0TuA7dLQ8GnuuGnm3um0ZKYlqHYAPfacx4ba4pxXiFCicQd3QQrdtpp5IlW8KnTaroT8w3801ZxeZpTa0FFkkUFLVCDKp9TvCsVFg3Dy6t9FVfvRBKOl2QQeBI5NM6J7EhkzGk22yYle2ZOPXJOiEYcNwwBKhoxCdqw8S",
-                                  account_name="S6L7O6ohLm8HBuYz7E9ZuYBAHz0vH45u4SHdXpfYeqMtcfd8wxcygIW1kAzyAHjkW0eFs",
-                                  external_id="lSf8NaBTyV6GBT8tD"
+                                  "835f1a89-8691-4df3-aab7-584d1e24c526",
+                                  user_name="JmzxxuQUVBryDZ",
+                                  account_name="3LHlYNS3c0MUvvhZyFdpqg4zFLwpBAFUZ73GCZjYfwcSTcjOL0y0KRT0zFenF09DVyQoa",
+                                  external_id="LlrJk6"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_get_shop_accounts_0(self):
         response = client.send(pp.GetShopAccounts(
-                                  "3418e411-a25d-4ec8-9b49-3e30dff9f6fa"
+                                  "4ba9474d-bb29-4b26-92d0-60cb26e8cd8d"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_get_shop_accounts_1(self):
         response = client.send(pp.GetShopAccounts(
-                                  "3418e411-a25d-4ec8-9b49-3e30dff9f6fa",
-                                  is_suspended=False
+                                  "4ba9474d-bb29-4b26-92d0-60cb26e8cd8d",
+                                  is_suspended=True
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_get_shop_accounts_2(self):
         response = client.send(pp.GetShopAccounts(
-                                  "3418e411-a25d-4ec8-9b49-3e30dff9f6fa",
-                                  created_at_to="2022-08-03T04:31:21.000000+09:00",
+                                  "4ba9474d-bb29-4b26-92d0-60cb26e8cd8d",
+                                  created_at_to="2021-10-31T16:57:13.000000Z",
                                   is_suspended=True
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_get_shop_accounts_3(self):
         response = client.send(pp.GetShopAccounts(
-                                  "3418e411-a25d-4ec8-9b49-3e30dff9f6fa",
-                                  created_at_from="2017-08-07T10:46:15.000000+09:00",
-                                  created_at_to="2025-07-22T01:28:13.000000+09:00",
-                                  is_suspended=False
+                                  "4ba9474d-bb29-4b26-92d0-60cb26e8cd8d",
+                                  created_at_from="2023-11-06T02:31:37.000000Z",
+                                  created_at_to="2024-07-07T08:34:30.000000Z",
+                                  is_suspended=True
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_get_shop_accounts_4(self):
         response = client.send(pp.GetShopAccounts(
-                                  "3418e411-a25d-4ec8-9b49-3e30dff9f6fa",
-                                  per_page=2846,
-                                  created_at_from="2019-11-04T14:53:12.000000+09:00",
-                                  created_at_to="2024-09-23T03:45:25.000000+09:00",
+                                  "4ba9474d-bb29-4b26-92d0-60cb26e8cd8d",
+                                  per_page=6667,
+                                  created_at_from="2023-12-12T11:10:42.000000Z",
+                                  created_at_to="2023-11-10T03:08:06.000000Z",
                                   is_suspended=False
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_get_shop_accounts_5(self):
         response = client.send(pp.GetShopAccounts(
-                                  "3418e411-a25d-4ec8-9b49-3e30dff9f6fa",
-                                  page=7568,
-                                  per_page=1670,
-                                  created_at_from="2021-03-12T15:40:19.000000+09:00",
-                                  created_at_to="2022-08-13T20:07:48.000000+09:00",
-                                  is_suspended=False
+                                  "4ba9474d-bb29-4b26-92d0-60cb26e8cd8d",
+                                  page=7903,
+                                  per_page=1435,
+                                  created_at_from="2021-06-16T10:57:24.000000Z",
+                                  created_at_to="2020-01-11T14:03:41.000000Z",
+                                  is_suspended=True
         ))
         self.assertNotEqual(response.status_code, 400)
 
@@ -504,471 +570,747 @@ def test_list_bills_1(self):
 
     def test_list_bills_2(self):
         response = client.send(pp.ListBills(
-                                  upper_limit_amount=3835,
+                                  upper_limit_amount=9364,
                                   is_disabled=False
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_bills_3(self):
         response = client.send(pp.ListBills(
-                                  lower_limit_amount=1487,
-                                  upper_limit_amount=2295,
+                                  lower_limit_amount=9372,
+                                  upper_limit_amount=5960,
                                   is_disabled=False
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_bills_4(self):
         response = client.send(pp.ListBills(
-                                  shop_id="a3337384-6b0e-467b-951c-478ccdf43586",
-                                  lower_limit_amount=8300,
-                                  upper_limit_amount=5052,
+                                  shop_id="0c7a21e5-557f-4a6d-955b-517b3dd30ee8",
+                                  lower_limit_amount=209,
+                                  upper_limit_amount=816,
                                   is_disabled=False
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_bills_5(self):
         response = client.send(pp.ListBills(
-                                  shop_name="IQiAP4UplfuFUQK5yc0JqyEbk4xV1ElwOVpwOgCs3REJLXlOpH9qH3TntlxmPSv0sqeMHVeJGZnQaE4lp3S7TMyfZKpPybiZ1Lwce18e7Eq5OqWuTabdRaaHOyfGqVUncXzhjskeGyZxmbEy050Zlv3tzVr8aTPDqMKbxS0Vs3OlIrdnx7rU9Fte9Z959oBy13mtel3d8TfJ3Ol39ScasZnA58jo0hnztlMdM7BVfn4iFYyJJXfrDUn2Z",
-                                  shop_id="0b13f435-a4e4-4e54-823d-f14d3d6621e8",
-                                  lower_limit_amount=7968,
-                                  upper_limit_amount=7137,
+                                  shop_name="CqvNNBrhyRg9xxzNXJhnMZrEqyRqPCGzbSmOoYCMUQNjvF4AYLzd022rwQVNfYYCfZZWpAcyBWwWi1DgvTt4hTTZowFPycMflfcbIeOIKes05558vbabHcGuqU0Zpo5L",
+                                  shop_id="ef7517ac-5c42-4f95-a261-57ac8b4cab9d",
+                                  lower_limit_amount=8117,
+                                  upper_limit_amount=3441,
                                   is_disabled=True
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_bills_6(self):
         response = client.send(pp.ListBills(
-                                  created_to="2016-09-02T11:19:30.000000+09:00",
-                                  shop_name="QqsldJHk3l4cpZ7fJl29A3O6y0fQnXOgwkIth5yMWiTVYzb9YasuIp7v4EzACicWq4Ul0bBBFnJwjrPufrwL",
-                                  shop_id="19a57c35-abda-45b4-b1aa-9c3c70c8922e",
-                                  lower_limit_amount=6733,
-                                  upper_limit_amount=4789,
+                                  created_to="2021-01-15T02:18:17.000000Z",
+                                  shop_name="iTBSZQPeDSY9S36TscHpgaN0j8ZeP1HDPDTHzzRIdWxHjKy82N74miDUcOuIVqRIEU93kljq1Q8TjukgNdos",
+                                  shop_id="63703d90-5372-48e3-8528-95733bb1fe11",
+                                  lower_limit_amount=5799,
+                                  upper_limit_amount=2746,
                                   is_disabled=False
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_bills_7(self):
         response = client.send(pp.ListBills(
-                                  created_from="2025-03-09T03:05:10.000000+09:00",
-                                  created_to="2023-04-15T12:14:30.000000+09:00",
-                                  shop_name="hJuNsCdqVbAgLZQKQXblhvdQVC38rMOaKHSf5htPpycWdWsbduWBxtfg1Kliu47KITpvwbo61t0xPHohZAfXS5WAq97VI0kJjyO9S00lRKqhRSKyv4aeUNiX5kIXisF2lvLdWFAH9CECfmZyvOgcw2bcIoYI3B409EBsOM5mHn7CA1SM3xNEFCgQheyCbSnP7P0SqnjQBF0gNpyvaBHzjlAdXU9",
-                                  shop_id="bd0643a7-06e6-4ae2-ac34-114293457d45",
-                                  lower_limit_amount=2117,
-                                  upper_limit_amount=9958,
+                                  created_from="2023-03-11T09:56:39.000000Z",
+                                  created_to="2022-01-02T12:50:41.000000Z",
+                                  shop_name="qVhxkWkSbCcQV2KWKaXCJgJ38wW32AKvILX828FihWZQyqSbK0FMXzQI3K0upT8cYYAuEa7VHyo1Pr6ZXG8JSWzel5X6ggilnbIikjMsDtvgyHs8kXaVldBOvstCOu5vNtx3bBib1BS1IIGWD4mpTYqNNFPcbcfJ8JMK49acleVRspcldtQ5tmURvImdniels4ZrQj5DbpL3fJFTwwcn9WP3m8Vy",
+                                  shop_id="4a5bbff5-1352-4de5-9689-46c39d5f9223",
+                                  lower_limit_amount=472,
+                                  upper_limit_amount=7168,
                                   is_disabled=False
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_bills_8(self):
         response = client.send(pp.ListBills(
-                                  description="TmiRof0lbldCRsSSTgoxqh3aCnDQum7xlHp8mSoN73gaH3XPjunt8NgffostplBJ13qPcXVXQ9E7OqefuC0zsB8aQbgel1VXLZNh",
-                                  created_from="2016-10-27T18:39:04.000000+09:00",
-                                  created_to="2020-04-19T11:21:31.000000+09:00",
-                                  shop_name="VCGfzH0EqAidHGV4baZPNRUSJ9iQNhB3KMhlAuhO2DrrEN6v7h6DIeIXBVaS0Zi07XrJykFEWCqS7fIGsgSUetvzhcyY8O4aW8dVGclxW2nJI1LDT3BhMLUADblZz6ydgd6gveWK49xDzlQxtC3xLL1ERUl6NhqKkDSvghab5bsImY7PcHPZH7mH",
-                                  shop_id="02e6d5fd-fe03-4700-86db-2d49d3ec9fa6",
-                                  lower_limit_amount=3593,
-                                  upper_limit_amount=9203,
+                                  description="5WTYs7Yv5KDLwBcz7zjgazophuiC1VR8XiXW8JGdOuAk94khcXRAwlFr4tlYuwMI02c6YHU8uGe8qGNvTmA6H2tH06f3cpkGDNNhHR4jcwCrCwplpzKOK41mu",
+                                  created_from="2022-11-06T08:17:48.000000Z",
+                                  created_to="2021-10-05T03:28:27.000000Z",
+                                  shop_name="IO2q9f6dQ5BvDAnz25uvrmGGKjRYVWTh4n3trK0bvzHyQJ1u0mKrSXl5b4zkBhHXIiOwN14umNbs9HzTMzg2AFGgoFwChMKyFjnp6NWuVTvukHEJJxjvwAaSkrlPscgFZA7kgmnQGh0g7xEy0gjIfqsy3qqeO2uL3gmJXocI00jDfhi9nkYKzlD45lOs5FqPThDPFGAn6g71",
+                                  shop_id="c5f38ba3-1edd-465f-b7ab-d342a8f1472a",
+                                  lower_limit_amount=569,
+                                  upper_limit_amount=971,
                                   is_disabled=False
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_bills_9(self):
         response = client.send(pp.ListBills(
-                                  organization_code="",
-                                  description="NgoBzsuiKajpcQf4nuECfdVUoATZ0pZ1FEusk3svdOIWNVHFftM1EZPsd7jOCTvYgQYDODNTX3YU3qGQBWGDfb1wlkuiN7kKWKFo",
-                                  created_from="2024-02-23T19:10:44.000000+09:00",
-                                  created_to="2017-10-30T02:54:59.000000+09:00",
-                                  shop_name="9tuL5LH4EHPGJy8ZSoJ1krFHQyhzGXerHPOPDvrwRgeSOaGF6stofVWAQmmxPEjbZK4rVxAUW7FWHkKwdg6799FNaTUuVqVNtvvxMPy8uYVQrlAwBlTLDHylYVoU0Lud9b",
-                                  shop_id="76813135-bc26-424d-88e4-438136936dbf",
-                                  lower_limit_amount=3512,
-                                  upper_limit_amount=7259,
-                                  is_disabled=True
+                                  organization_code="-wrS-x6H6C--D5S6--8xd364V-k1D",
+                                  description="8An",
+                                  created_from="2021-08-02T04:48:29.000000Z",
+                                  created_to="2026-05-23T20:57:14.000000Z",
+                                  shop_name="oXtmv8LerXQe8LjF8Q6qvpD5ZbBwXFvQ1skGDixXFJczCMVyjlRecAjobCopZKVFLb9UiV0XEmtc9iB2syyuELfawMoOZtkTktpas3rTKhS7CSUreJUtTC5W6xtdNcZmGzg6LOAwdB03Wi69g5bppku3R9lJVdDaUu8gKI7uxlsX8tJTVN1o4Avhi0fX5dozKzovfXQ3PHUhjHLVEtSIaxZ8O9N2SLzG35Urh2rbZx2aArvrKFEW",
+                                  shop_id="611e61b0-4d63-4e16-a1c4-585d3d689c31",
+                                  lower_limit_amount=5806,
+                                  upper_limit_amount=8942,
+                                  is_disabled=False
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_bills_10(self):
         response = client.send(pp.ListBills(
-                                  private_money_id="69b26d55-eeee-4bf5-bb98-2f1a29611482",
-                                  organization_code="q-Td-90tz6o18bTME",
-                                  description="ruAKFNN9YCEWSULZdpylXeF6qvGwUl7ATMaf3NqLOcKmTPNREiEdfOxleMzyqb14XnQoYrg3WK0gxDGSVD8anN0lX3R6Ngh2OAi1BcnwfTRLJa4uoIhpR40nORwuCknsFuOeDw3ETEoYbDEhr0AwKkiQOHCQ",
-                                  created_from="2019-04-23T00:27:44.000000+09:00",
-                                  created_to="2016-12-11T02:13:34.000000+09:00",
-                                  shop_name="IIRDiJ5EWSps1CcPm4CujuDviyaRPbQTt1c2CSzS35RxVGrM7sDhsRor5EZrBgBnWdBpXW3vXZAsIGmxl3OdV3odlFFoKvu4lobeulXI7c3F9nyrjjRiAP0nDGe4yWdLtrR0H47hbbDvB2dkQWYC4RW",
-                                  shop_id="8e8f4a02-78f1-42ca-b720-84f336e5ea71",
-                                  lower_limit_amount=4658,
-                                  upper_limit_amount=6184,
+                                  private_money_id="7aba3f2f-45cf-4590-bacb-060ad1610810",
+                                  organization_code="e7--S-GJ--u72-kqv",
+                                  description="hVSBtTuiSKN3fmfJoVUvvyWz4acD4YN59s59xIWGujcTxFFrrXyLyMOsteVH8YLvoUoraYyVUvoHuSd144X7ZEq8UGlMat7Q5BMcC1v73v60y8DMLWrlnr061xWZsz1ogogHitDMic7XGDhIwoiIw8buBfBCDG7j4DoWkpZIbqBi9TROGFtlR9rLj2Y1",
+                                  created_from="2020-11-22T11:42:30.000000Z",
+                                  created_to="2024-05-30T01:45:41.000000Z",
+                                  shop_name="R9gKdUSrcKHlFd3Ur1MCMIUROIYftW7QMsIbzCAj1GsSvfXjxUW5PMdDuBsMe04PTf8vSsZQwwHu7ykbtkzGPhzROeLpMaUZfjz7mGpF3omDB92rueqlmfnAfu7erS3gFr3FTdQ8rwckpkfwdxwxZ95sfTG55oAI4VCG4sTwcY",
+                                  shop_id="e80b7065-a188-4a46-90a5-ef7727a42563",
+                                  lower_limit_amount=6736,
+                                  upper_limit_amount=9760,
                                   is_disabled=True
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_bills_11(self):
         response = client.send(pp.ListBills(
-                                  bill_id="7AWpC",
-                                  private_money_id="05cd6fa3-f4c4-4584-abf9-a19a5bc696cc",
-                                  organization_code="9TFI8-q-o-ZW4-bU",
-                                  description="y2EMgPVlahlWYdbEevpLkzdUFCwG4QGOnpUXmwhMFkO9ufFPOzF9Lvv7JJIkMwpNGlwPY7w3AePumXzLvyF75pQlwzsKLA3j0RsOTGgnfI7tlICoQDpnLAiZiYSVIBpBUCCSgk4gnk7sP6E17lkMgQrA88yuG2X4KRlpHewo2",
-                                  created_from="2022-10-13T17:58:30.000000+09:00",
-                                  created_to="2025-03-12T02:32:46.000000+09:00",
-                                  shop_name="QkdX",
-                                  shop_id="f9a98cd0-f696-4b40-9e46-9b2733ec1f34",
-                                  lower_limit_amount=4515,
-                                  upper_limit_amount=3614,
-                                  is_disabled=False
+                                  bill_id="7",
+                                  private_money_id="7c5edf83-adfe-405a-adcc-4379ce4a60e7",
+                                  organization_code="bF2-JR---id1i-qhN-B3eYx-KH3r",
+                                  description="7GOWj7LV4v5yotPxhlRj2vkjikjfOo5Zy9zD8cfycxdjXF6cmwiKvevzAx7rHin0MHYFpvhqZUg2yG4Wo0L4evFZLjpsodOQD4",
+                                  created_from="2025-03-28T21:18:36.000000Z",
+                                  created_to="2020-01-08T13:59:56.000000Z",
+                                  shop_name="fZ5T5bk20dIuBp2e25agSXyEGickpeze5Yn7vyzhltNB5edjt157B8n6abEccTMUOFUG9Fme9wlEEj2gZC8ckmFOzWRdKb11QTIHM0x5oJQ4O2Nwel4rHJTDGFvqXggC9Tcy7ogKmUw0VnsFyzfyt6Bg95FB1a7IFTBkW9tPubyeqITUoc54",
+                                  shop_id="9be9dd90-eb0f-481a-9faf-a893342c07c8",
+                                  lower_limit_amount=271,
+                                  upper_limit_amount=1376,
+                                  is_disabled=True
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_bills_12(self):
         response = client.send(pp.ListBills(
-                                  per_page=2526,
-                                  bill_id="V9XHbL",
-                                  private_money_id="c3194636-5918-439e-bad9-d4be4bb692a2",
-                                  organization_code="-IR8--7--ERjkpP---0r4-Qj",
-                                  description="wTGLR8ci2cIIE66fhj2n6iiZ64HpvFGkJr1uo4NLstnS7EAbDgQaYkUrDsQyk3kwOisNW9XsMHBVPsrsYBnLGXRYzu4noxPXNWpdUvBBp2Jsu",
-                                  created_from="2017-09-03T20:30:27.000000+09:00",
-                                  created_to="2025-04-24T15:48:33.000000+09:00",
-                                  shop_name="INCRpxja7me48LNXqpqJ",
-                                  shop_id="5bf84d98-de21-4daf-b46a-89da69ccd9e0",
-                                  lower_limit_amount=1911,
-                                  upper_limit_amount=3624,
+                                  per_page=9176,
+                                  bill_id="6lY3NxA2Qq",
+                                  private_money_id="491c89a6-4836-4e81-8c2d-385b812a3387",
+                                  organization_code="-0dgdTpvFpuHP-9p-x28C3",
+                                  description="26EDkzDLnAr7NHvMDZLOk3Kn6N9IKA2DQ0UDl0RkGXqQRpkGArTGUPugetKJLdESdgB4DMlPhuAgx6J23S5a4KJH2dJnXO",
+                                  created_from="2025-09-14T22:54:14.000000Z",
+                                  created_to="2021-06-15T01:10:36.000000Z",
+                                  shop_name="eAy8xYgmSSWd6nFdHza9f0TF30iljDxgSpyfoekUtYXnQ6dyRqDXbojqilSXXfg",
+                                  shop_id="346f8807-de18-4999-8c31-53dbb4914c91",
+                                  lower_limit_amount=2355,
+                                  upper_limit_amount=670,
                                   is_disabled=True
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_bills_13(self):
         response = client.send(pp.ListBills(
-                                  page=140,
-                                  per_page=8266,
-                                  bill_id="uUBm",
-                                  private_money_id="24dc5c38-1511-4a3f-8a5d-5c10562ae630",
-                                  organization_code="-OIPO8f--5J--ZEmK893-r0",
-                                  description="zongKg5SFSpcaiWqMVEyXiabD2fPkrS1NvYbmwucdTPjBOMyHVeFGY5vB7gjE0J3rzoZQgeuXW4rw3Ob3VUIWbzDljJ6klDtciJUcw1w",
-                                  created_from="2024-10-08T13:54:55.000000+09:00",
-                                  created_to="2022-12-22T02:16:07.000000+09:00",
-                                  shop_name="r",
-                                  shop_id="5e81bd98-f8b4-420f-aadc-6cf9683ae759",
-                                  lower_limit_amount=2035,
-                                  upper_limit_amount=9757,
-                                  is_disabled=True
+                                  page=1851,
+                                  per_page=3837,
+                                  bill_id="kM",
+                                  private_money_id="6782b486-91d9-4829-9d53-b4df6c9fa16b",
+                                  organization_code="cIqFB-D2n-1J",
+                                  description="Rbysguh0xXqdkQK8VGfHRzulBqoPAVuBC2EUluqb81O3ZagKE8LcCa8bz2nHShe5EoHVudmx1iMacSt3whWHQ5cbR62EyfrAyRxoXmZ8au8D4esSHy55WYfHfvN0QEBe9OUmuQoNyAxdhT65YfaNVM2xjqlPxxy8RqwFWTQ1",
+                                  created_from="2020-08-30T19:09:28.000000Z",
+                                  created_to="2023-01-14T06:34:30.000000Z",
+                                  shop_name="Vt9bN2zIxNZx4eE9mHPjq6XCvYjxbcuNA5AOQHru6gAXocPu4UpOUbFxl1xg8SX1voG8Gydqo4fQ7D47J36mgyKf2pLnur36TYPgxIzfeirgwWnuJKugM3OQh2JHBnxbiEM0oFGnnvKX9mW4mLerHweV6",
+                                  shop_id="0d5d8b86-11f9-4095-9e3d-92c45f7dddf1",
+                                  lower_limit_amount=7433,
+                                  upper_limit_amount=2436,
+                                  is_disabled=False
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_bill_0(self):
         response = client.send(pp.CreateBill(
-                                  "ee649014-14df-4bce-9571-065bb6b55c95",
-                                  "23be838b-7020-4801-af0f-6f65c939ded8"
+                                  "c0fb4d20-913c-4b92-8d7c-f8465bf9a3f5",
+                                  "b4d1531a-08f2-4d8c-adb2-ad108e5eae01"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_bill_1(self):
         response = client.send(pp.CreateBill(
-                                  "ee649014-14df-4bce-9571-065bb6b55c95",
-                                  "23be838b-7020-4801-af0f-6f65c939ded8",
-                                  description="bzzGADkOfMAKTboQcaiYXr4rnNnjCoeQHMuXiGNUysmU86lvAOTbcLzXO1sbMRuBNUlL6"
+                                  "c0fb4d20-913c-4b92-8d7c-f8465bf9a3f5",
+                                  "b4d1531a-08f2-4d8c-adb2-ad108e5eae01",
+                                  description="HyY5rxBRsFTyEvnewbYd4rNZJsCq7m7arw2NKYH12xHXaAOFqIwxrvxkxwVYBD"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_bill_2(self):
         response = client.send(pp.CreateBill(
-                                  "ee649014-14df-4bce-9571-065bb6b55c95",
-                                  "23be838b-7020-4801-af0f-6f65c939ded8",
-                                  amount=3376.0,
-                                  description="ReLv75kg6qcs3cEpI1m3wABqtL3bdaVTKdkTjUxGpAh3awQssfAXqJYYr4ARYbJcmLujs894lRg4qB30GRMkbzDn742v8m6fDAksXCcjSnMwkyUVD7CNlqSrG8bUcu2404OwW2YlKo3D8R7F9uqtTYDUe0c6WMBb0vMyr"
+                                  "c0fb4d20-913c-4b92-8d7c-f8465bf9a3f5",
+                                  "b4d1531a-08f2-4d8c-adb2-ad108e5eae01",
+                                  amount=8169.0,
+                                  description="CyVTR3czNdwQ9LziqjK5MdQ1lZMyARXVB9A32ESqVUKE1GN9JqLEvyRdA5j20ws4Z1pnjZ8xWKeN3WKGyHX"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_get_bill_0(self):
+        response = client.send(pp.GetBill(
+                                  "f87fba5f-f102-4493-be3d-e2203cd347c3"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_update_bill_0(self):
         response = client.send(pp.UpdateBill(
-                                  "c16a938b-9ef2-44bd-8e6f-2b8a65b0e2b2"
+                                  "e0f0d313-534b-44c4-9166-3cd3cae8eca8"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_update_bill_1(self):
         response = client.send(pp.UpdateBill(
-                                  "c16a938b-9ef2-44bd-8e6f-2b8a65b0e2b2",
-                                  is_disabled=False
+                                  "e0f0d313-534b-44c4-9166-3cd3cae8eca8",
+                                  is_disabled=True
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_update_bill_2(self):
         response = client.send(pp.UpdateBill(
-                                  "c16a938b-9ef2-44bd-8e6f-2b8a65b0e2b2",
-                                  description="CtAij6bFWlBc9nMouBh",
-                                  is_disabled=True
+                                  "e0f0d313-534b-44c4-9166-3cd3cae8eca8",
+                                  description="9olxtCG8sS34enFyHhIbteE1tQOMttUhD0OiwEvovxL7L6kZ3KaNub1zwaCdHgj8ik3dmsSURUNaSg6OcHEm",
+                                  is_disabled=False
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_update_bill_3(self):
         response = client.send(pp.UpdateBill(
-                                  "c16a938b-9ef2-44bd-8e6f-2b8a65b0e2b2",
-                                  amount=9011.0,
-                                  description="x",
+                                  "e0f0d313-534b-44c4-9166-3cd3cae8eca8",
+                                  amount=9641.0,
+                                  description="QFO3Ox8qDzSQ0YVNC6SfrLsEgbwDrafzykU4qQWwEl9RBh7JkqQ2DDr8e6Qf8fK7SBxethCuCr4dBSWzD3agMTAvZtCmtviHLHOBHo",
+                                  is_disabled=True
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_list_checks_0(self):
+        response = client.send(pp.ListChecks(
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_list_checks_1(self):
+        response = client.send(pp.ListChecks(
+                                  is_disabled=True
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_list_checks_2(self):
+        response = client.send(pp.ListChecks(
+                                  is_onetime=True,
+                                  is_disabled=False
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_list_checks_3(self):
+        response = client.send(pp.ListChecks(
+                                  description="Hyso5u9O",
+                                  is_onetime=False,
+                                  is_disabled=False
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_list_checks_4(self):
+        response = client.send(pp.ListChecks(
+                                  issuer_shop_id="44c818ea-319b-40a4-bde9-3d130386e39b",
+                                  description="a9h",
+                                  is_onetime=False,
+                                  is_disabled=False
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_list_checks_5(self):
+        response = client.send(pp.ListChecks(
+                                  created_to="2026-01-03T11:20:35.000000Z",
+                                  issuer_shop_id="b75feffd-26df-441a-a4aa-9db3fbc1786f",
+                                  description="wp1QqOY",
+                                  is_onetime=True,
+                                  is_disabled=True
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_list_checks_6(self):
+        response = client.send(pp.ListChecks(
+                                  created_from="2023-07-11T03:28:10.000000Z",
+                                  created_to="2020-10-21T18:24:20.000000Z",
+                                  issuer_shop_id="464c154a-4b25-4bdb-9f10-3b9d60f88476",
+                                  description="4bnDyHKg7j",
+                                  is_onetime=False,
+                                  is_disabled=False
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_list_checks_7(self):
+        response = client.send(pp.ListChecks(
+                                  expires_to="2023-05-05T01:01:26.000000Z",
+                                  created_from="2020-09-09T12:46:47.000000Z",
+                                  created_to="2022-12-15T10:35:00.000000Z",
+                                  issuer_shop_id="ca7d6152-c142-4ebb-ae11-c6c44cca8ff5",
+                                  description="rb62",
+                                  is_onetime=True,
+                                  is_disabled=True
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_list_checks_8(self):
+        response = client.send(pp.ListChecks(
+                                  expires_from="2023-03-14T04:19:53.000000Z",
+                                  expires_to="2024-05-29T11:57:01.000000Z",
+                                  created_from="2023-07-29T10:54:52.000000Z",
+                                  created_to="2020-06-15T15:29:49.000000Z",
+                                  issuer_shop_id="b3e5f712-1465-4c99-ba61-864ed82b85dc",
+                                  description="035TYh",
+                                  is_onetime=False,
                                   is_disabled=False
         ))
         self.assertNotEqual(response.status_code, 400)
 
+    def test_list_checks_9(self):
+        response = client.send(pp.ListChecks(
+                                  organization_code="YVT689",
+                                  expires_from="2020-10-22T00:16:10.000000Z",
+                                  expires_to="2024-06-09T23:04:00.000000Z",
+                                  created_from="2025-09-08T11:46:38.000000Z",
+                                  created_to="2024-12-15T16:14:57.000000Z",
+                                  issuer_shop_id="409608c2-1a2b-4b49-94b9-fe38a4928645",
+                                  description="3v",
+                                  is_onetime=True,
+                                  is_disabled=False
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_list_checks_10(self):
+        response = client.send(pp.ListChecks(
+                                  private_money_id="adf8571c-8fa2-4769-88ee-9aca7db9a162",
+                                  organization_code="C3RzxMs",
+                                  expires_from="2025-08-25T20:46:16.000000Z",
+                                  expires_to="2020-05-23T14:03:51.000000Z",
+                                  created_from="2022-02-16T23:55:05.000000Z",
+                                  created_to="2020-11-23T03:12:04.000000Z",
+                                  issuer_shop_id="8afa46d4-9052-441f-91a3-85d656335b20",
+                                  description="bDG",
+                                  is_onetime=False,
+                                  is_disabled=False
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_list_checks_11(self):
+        response = client.send(pp.ListChecks(
+                                  per_page=7756,
+                                  private_money_id="3c9ea4c6-0df6-4e9a-9666-05f25bb86037",
+                                  organization_code="cTIqfZGa8VmM7LxaafZsEiZ4",
+                                  expires_from="2025-09-22T02:09:44.000000Z",
+                                  expires_to="2023-04-19T23:42:54.000000Z",
+                                  created_from="2025-11-27T06:26:52.000000Z",
+                                  created_to="2020-10-17T06:21:09.000000Z",
+                                  issuer_shop_id="6bd061f4-f5cc-41a7-85bb-c198be55b3de",
+                                  description="S",
+                                  is_onetime=True,
+                                  is_disabled=False
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_list_checks_12(self):
+        response = client.send(pp.ListChecks(
+                                  page=9404,
+                                  per_page=4850,
+                                  private_money_id="790d017c-4b43-434d-959e-adc88a3e8a23",
+                                  organization_code="Uv6WI9WlLqAjFF",
+                                  expires_from="2023-03-14T11:32:38.000000Z",
+                                  expires_to="2020-07-03T17:47:10.000000Z",
+                                  created_from="2026-05-03T04:20:32.000000Z",
+                                  created_to="2024-09-07T06:38:44.000000Z",
+                                  issuer_shop_id="8a3ab96f-fd08-4bf6-93c9-22c1dd10edb3",
+                                  description="7if4YoZJ",
+                                  is_onetime=True,
+                                  is_disabled=True
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
     def test_create_check_0(self):
         response = client.send(pp.CreateCheck(
-                                  "b0ded9e1-b593-4cd6-ba88-8079a453b844",
-                                  money_amount=3682.0
+                                  "11aa316d-7eda-4f20-b8ce-da3b961ab7b4",
+                                  money_amount=6896.0
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_check_1(self):
         response = client.send(pp.CreateCheck(
-                                  "b0ded9e1-b593-4cd6-ba88-8079a453b844",
-                                  money_amount=4498.0,
-                                  description="9dQAdVbIjdKodnIqsg2hwfCC3ynrJLnPSb5d8avvWNGGZpHcQub7jyKGPEze4eDg0kaj205"
+                                  "11aa316d-7eda-4f20-b8ce-da3b961ab7b4",
+                                  money_amount=2977.0,
+                                  description="NZaugRp11iMcrfILoN8ZP7287JaoYb8spv1FcaYx8c7c37K2BoQEomxqdvzxKVxdoit0"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_check_2(self):
         response = client.send(pp.CreateCheck(
-                                  "b0ded9e1-b593-4cd6-ba88-8079a453b844",
-                                  money_amount=5778.0,
-                                  is_onetime=False,
-                                  description="9Vfs0xgdWlEYjRqPOb8BVVabHLEG4agkq2G8IRGQBS0nchLLndRaY2NqmWOdlkOhTjC67yWAbgIrPt858HfVRa8DX5UPvkC2RO0Ka4lYXy6v8yeYaDtl3yxclWSiWAV8VoZ5q4f3l3OfQm9YtxuJK"
+                                  "11aa316d-7eda-4f20-b8ce-da3b961ab7b4",
+                                  money_amount=7556.0,
+                                  is_onetime=True,
+                                  description="sRdkY0a6T9IRy95uKnYj6aDVb3qDkr4zFWttvA7t4NS9wkdOXwioDpfXuzoNbRpuKefj9znX2XonFzQcO5QEOmdgUm73I2kFchNQksZB6ByT3lV"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_check_3(self):
         response = client.send(pp.CreateCheck(
-                                  "b0ded9e1-b593-4cd6-ba88-8079a453b844",
-                                  money_amount=6130.0,
-                                  usage_limit=2500,
+                                  "11aa316d-7eda-4f20-b8ce-da3b961ab7b4",
+                                  money_amount=4946.0,
+                                  usage_limit=2385,
                                   is_onetime=True,
-                                  description="FgfnOa5xAhF9FsFDzTIAFGDPhp"
+                                  description="7O823WFeXCsADfveWv5SetJLuZcB6tdcwibyPvTHbjOWbqqVGNOP2f7Fmc6XSXX"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_check_4(self):
         response = client.send(pp.CreateCheck(
-                                  "b0ded9e1-b593-4cd6-ba88-8079a453b844",
-                                  money_amount=5537.0,
-                                  expires_at="2024-12-09T23:17:36.000000+09:00",
-                                  usage_limit=9117,
-                                  is_onetime=True,
-                                  description="zEARJ1rvmqI1bSsRkkjQVB7WPQBN4OQef6ic8PJreX4akuWpKD9afhWN8gpYbk1UQRVGeT6q9QlLL4St0RhV6KdSsO2fKUxMoBriyYb61zvPjBcIHUY8RekKTAhSuM7Lo0VuZ1eCkX9fH"
+                                  "11aa316d-7eda-4f20-b8ce-da3b961ab7b4",
+                                  money_amount=2094.0,
+                                  expires_at="2024-09-11T12:51:25.000000Z",
+                                  usage_limit=6416,
+                                  is_onetime=False,
+                                  description="Y5XPxnjFhfkfYgvABxRhjV7rXm6F6onhtgkbe1I3fnSrAjiMpnuQgQNZWqLAFAWqZBqyjs43AAjNChMERBnJER6lOBQBwAgsTow2Z3Uka1wds9TY9Bp5VDJiBPB1XeTNJcIKtWyeNc1zzlxW2hgOK8NI225RAsUHuuLFS4058hKDGnyjbxrF"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_check_5(self):
         response = client.send(pp.CreateCheck(
-                                  "b0ded9e1-b593-4cd6-ba88-8079a453b844",
-                                  money_amount=9711.0,
-                                  point_expires_at="2024-01-25T06:53:05.000000+09:00",
-                                  expires_at="2025-08-01T00:06:50.000000+09:00",
-                                  usage_limit=396,
+                                  "11aa316d-7eda-4f20-b8ce-da3b961ab7b4",
+                                  money_amount=2702.0,
+                                  point_expires_at="2022-03-10T22:59:02.000000Z",
+                                  expires_at="2021-07-30T12:40:06.000000Z",
+                                  usage_limit=7160,
                                   is_onetime=True,
-                                  description="VQAOjB0XTIEf"
+                                  description="kmTZedVWeLbSdWlORFkWxf1fgII7vrhxHZrOEIH6HNdDlfIrfFFwUdXhpSi4j72IcAxs47XeIzYlwiQaQGyn4Age91Y1cWNDBnv9RrzZK5kL8kuH9QZjAoA9Wjz3xWF4fJVtnG3Avmta20vIgud6F1U"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_check_6(self):
         response = client.send(pp.CreateCheck(
-                                  "b0ded9e1-b593-4cd6-ba88-8079a453b844",
-                                  money_amount=1282.0,
-                                  point_expires_in_days=6045,
-                                  point_expires_at="2020-11-23T19:32:02.000000+09:00",
-                                  expires_at="2016-11-05T21:40:18.000000+09:00",
-                                  usage_limit=4226,
-                                  is_onetime=False,
-                                  description="NvwAf7hOlSBfFEUcOQMXEYHzF8m9cIjwUyTMaVMoVAP5OP1Cjryz"
+                                  "11aa316d-7eda-4f20-b8ce-da3b961ab7b4",
+                                  money_amount=3850.0,
+                                  point_expires_in_days=2815,
+                                  point_expires_at="2021-03-16T04:27:51.000000Z",
+                                  expires_at="2022-11-20T03:26:05.000000Z",
+                                  usage_limit=3528,
+                                  is_onetime=True,
+                                  description="k2IRflsv"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_check_7(self):
         response = client.send(pp.CreateCheck(
-                                  "b0ded9e1-b593-4cd6-ba88-8079a453b844",
-                                  money_amount=2688.0,
-                                  bear_point_account="18679ba0-531c-48c0-9544-cc2b776f7486",
-                                  point_expires_in_days=8961,
-                                  point_expires_at="2022-04-03T14:35:05.000000+09:00",
-                                  expires_at="2022-06-02T11:03:48.000000+09:00",
-                                  usage_limit=9788,
-                                  is_onetime=False,
-                                  description="Z0UkOPXKep1jFsPNeua1jB7"
+                                  "11aa316d-7eda-4f20-b8ce-da3b961ab7b4",
+                                  money_amount=9079.0,
+                                  bear_point_account="93a55815-5475-4f22-807c-a196eea46726",
+                                  point_expires_in_days=5723,
+                                  point_expires_at="2026-01-14T18:47:03.000000Z",
+                                  expires_at="2026-01-28T13:14:11.000000Z",
+                                  usage_limit=418,
+                                  is_onetime=True,
+                                  description="k0nQmXMvg0FcWUrBHOSV7LC2s46hfsRF0YKxTClCMK7WZ9OzNLNkjfoAuPSksHUuefNAm0yTlB8Y7jnhE6v0ICVfZpB32LWZFMYYNQ77hNnDgeQkP6BrHNLW2TjgwJkClYsxYjLV6mNckmX"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_check_8(self):
         response = client.send(pp.CreateCheck(
-                                  "b0ded9e1-b593-4cd6-ba88-8079a453b844",
-                                  money_amount=8553.0,
-                                  point_amount=9597.0
+                                  "11aa316d-7eda-4f20-b8ce-da3b961ab7b4",
+                                  money_amount=3927.0,
+                                  point_amount=1661.0
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_check_9(self):
         response = client.send(pp.CreateCheck(
-                                  "b0ded9e1-b593-4cd6-ba88-8079a453b844",
-                                  money_amount=8517.0,
-                                  point_amount=348.0,
-                                  description="F7xhaxW"
+                                  "11aa316d-7eda-4f20-b8ce-da3b961ab7b4",
+                                  money_amount=9955.0,
+                                  point_amount=431.0,
+                                  description="TOBEvT1fZYocBrtgwRLixenA1GWqf2JPqamqpbbuSj1PURjYRasH9ARntTDK9f1O2csoG"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_check_10(self):
         response = client.send(pp.CreateCheck(
-                                  "b0ded9e1-b593-4cd6-ba88-8079a453b844",
-                                  money_amount=457.0,
-                                  point_amount=59.0,
+                                  "11aa316d-7eda-4f20-b8ce-da3b961ab7b4",
+                                  money_amount=1704.0,
+                                  point_amount=650.0,
                                   is_onetime=True,
-                                  description="TjjuPniB6yr4Okg2Udv9iXSqMQb8J3iQSJeJic2mGuJKmsKLeWViwh5Xh0Ohe1EHst26OluNAixs6BC1rh1DjTMJERyJtkUyg63OuNEg3mOoFwMhlx1RPa6KY"
+                                  description="55uy56fVMl4ovKtbbNML"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_check_11(self):
         response = client.send(pp.CreateCheck(
-                                  "b0ded9e1-b593-4cd6-ba88-8079a453b844",
-                                  money_amount=4154.0,
-                                  point_amount=9158.0,
-                                  usage_limit=338,
-                                  is_onetime=False,
-                                  description="bXhU3xeAmdgIIk86pUwNP4PXVypEGcP3yMzT6mxM4uuK6GdmBVGY71PucWuEB8iBjiFIbSubHrvAi7K4jyfS9dg15S1q6jH34UfMTbaogiuk2Hs0mRi4FH4wAH9Jfj7o054MsL4b1CJFFK6iXZLbDkWhxmVZQrN7vHF2MDKVtEIQupvmKHRwHKhrE1cew1CNfg"
+                                  "11aa316d-7eda-4f20-b8ce-da3b961ab7b4",
+                                  money_amount=1019.0,
+                                  point_amount=3999.0,
+                                  usage_limit=2524,
+                                  is_onetime=True,
+                                  description="xf72tklHyikvXSu1xVqKMzKtPMLBX6YLvmDqPAbWtHJHRtQBqCHsx"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_check_12(self):
         response = client.send(pp.CreateCheck(
-                                  "b0ded9e1-b593-4cd6-ba88-8079a453b844",
-                                  money_amount=7863.0,
-                                  point_amount=710.0,
-                                  expires_at="2021-01-29T12:17:29.000000+09:00",
-                                  usage_limit=4681,
+                                  "11aa316d-7eda-4f20-b8ce-da3b961ab7b4",
+                                  money_amount=4232.0,
+                                  point_amount=5355.0,
+                                  expires_at="2021-03-26T09:43:13.000000Z",
+                                  usage_limit=7806,
                                   is_onetime=False,
-                                  description="YctoKArmPX6ICAqae4Gsnk7CCks4Hk5SfM8qCg753Xc8sxEuuaOPh40uyY7zIQa1dLLxrHG11vw1vq47MweLd7PEXecikrpiqy8sfzPeC95z6SUSQpi9Wzm3lpy1cb2RHdUOA0t8u9bgfw5lRkS6OP4v7xcpJRU1gAPOZCWBu1LN9FJ0cnlAGNGx"
+                                  description="iSHcZ37iojnk7j2j33qMA4N2evwLBNS7QyCEhtgNDuAnxydB9u3o7ZMeTosoRh4S0mExQI1uCwHXvSS9"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_check_13(self):
         response = client.send(pp.CreateCheck(
-                                  "b0ded9e1-b593-4cd6-ba88-8079a453b844",
-                                  money_amount=6566.0,
-                                  point_amount=9852.0,
-                                  point_expires_at="2017-10-28T12:04:32.000000+09:00",
-                                  expires_at="2018-06-09T05:37:59.000000+09:00",
-                                  usage_limit=9628,
-                                  is_onetime=False,
-                                  description="Lc8mXM6C7FzYciEIbzm3gXQmk"
+                                  "11aa316d-7eda-4f20-b8ce-da3b961ab7b4",
+                                  money_amount=7160.0,
+                                  point_amount=2088.0,
+                                  point_expires_at="2026-02-06T23:34:09.000000Z",
+                                  expires_at="2020-03-30T00:48:24.000000Z",
+                                  usage_limit=3022,
+                                  is_onetime=True,
+                                  description="eqv2rRxx8SeYgA5RTAZIE0d3whSKLF4xWXCgQOdSsQVPrApoltrzZbMjGbqCaDUv1CsWTy6z2FdXbf"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_check_14(self):
         response = client.send(pp.CreateCheck(
-                                  "b0ded9e1-b593-4cd6-ba88-8079a453b844",
-                                  money_amount=7922.0,
-                                  point_amount=4635.0,
-                                  point_expires_in_days=5699,
-                                  point_expires_at="2020-10-13T15:11:43.000000+09:00",
-                                  expires_at="2022-08-31T03:54:45.000000+09:00",
-                                  usage_limit=6237,
+                                  "11aa316d-7eda-4f20-b8ce-da3b961ab7b4",
+                                  money_amount=8280.0,
+                                  point_amount=3169.0,
+                                  point_expires_in_days=2302,
+                                  point_expires_at="2020-06-21T10:51:14.000000Z",
+                                  expires_at="2020-10-25T14:15:25.000000Z",
+                                  usage_limit=3135,
                                   is_onetime=False,
-                                  description="2Ig2RcyGTEKbRkheq6QL08QyyZhWxWZXOgJUUSaNEWIfPAbzyBHOjNPScM2HIOB9HTAlispEbZ0nm2AG9fUViptAmbz3OlMcIwPiDhPvFVPSC9IO8VxniaFu09a6CuuEqXlxnf5GR396SeNDqXXKEJV0JkE3TjLaqeZO"
+                                  description="HwaVVWGcOvRgfjTir1eeHpnGAvFN5uVHKI7mM3plgJR5fwzKIFQcpGZZVlRU03Fa2F6PUopGrOCijX4VQZjHwhb9lV9sTjbq8Wo22UU1er3T1gBtfr20CiDsCwyLdW5AzEeQbE5VhNxjrtNh84WLuHKWoYQpDLtJyiWbDVy6Ss7attO0KDv"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_check_15(self):
         response = client.send(pp.CreateCheck(
-                                  "b0ded9e1-b593-4cd6-ba88-8079a453b844",
-                                  money_amount=4781.0,
-                                  point_amount=2633.0,
-                                  bear_point_account="7cd70715-9a97-40ff-b7c5-d332a1c742b2",
-                                  point_expires_in_days=1773,
-                                  point_expires_at="2020-01-06T07:22:58.000000+09:00",
-                                  expires_at="2017-02-28T02:18:19.000000+09:00",
-                                  usage_limit=3357,
-                                  is_onetime=False,
-                                  description="SAD7vVGJBWjZfkSD8toOPMhnrU8KE3wpUrjUs8sizjd1z2FtADy5Q3C5jNeYsU9MpL2cFyrblmxyYFjVJ1ksDCEql8"
+                                  "11aa316d-7eda-4f20-b8ce-da3b961ab7b4",
+                                  money_amount=6578.0,
+                                  point_amount=4934.0,
+                                  bear_point_account="e96623cb-b255-40b3-b3d0-7fd936255c3f",
+                                  point_expires_in_days=3930,
+                                  point_expires_at="2021-06-23T00:37:46.000000Z",
+                                  expires_at="2020-08-08T16:24:09.000000Z",
+                                  usage_limit=4996,
+                                  is_onetime=True,
+                                  description="IyRndmm72c26Cd6B3OB7swghUIdkqUOY2HAI87h7tC8vMnTzjNmFWDzLZEPN7HQXwymFrbXYvN3cal4RO9jT63dRDxKNVoewLoaJggIMA5wXB3CTdPu3I6Gb57N6Bfk723xgVJhWc2FLmu9RV4wTQ1eFfFoOmA6KgKFTgUMIqeaKPydQtxKkPEiJ9F7s09s2D07ZJt"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_check_16(self):
         response = client.send(pp.CreateCheck(
-                                  "b0ded9e1-b593-4cd6-ba88-8079a453b844",
-                                  point_amount=5129.0
+                                  "11aa316d-7eda-4f20-b8ce-da3b961ab7b4",
+                                  point_amount=1362.0
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_check_17(self):
         response = client.send(pp.CreateCheck(
-                                  "b0ded9e1-b593-4cd6-ba88-8079a453b844",
-                                  point_amount=9724.0,
-                                  description="3astJ4f63IhsEW"
+                                  "11aa316d-7eda-4f20-b8ce-da3b961ab7b4",
+                                  point_amount=9935.0,
+                                  description="nJyz65lsPnpU0js5rsIZ4cWpER3UtPkG2eq1I6SZr9Xo8DUROCVDxPSk72x92MmliF75MFhbZKuKGU7dTPisUgKnCVzFujd5tp1lylHobnm6HycWppeOG"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_check_18(self):
         response = client.send(pp.CreateCheck(
-                                  "b0ded9e1-b593-4cd6-ba88-8079a453b844",
-                                  point_amount=2452.0,
-                                  is_onetime=True,
-                                  description="V1aJM8EwjAmRBWR0j6oBZVp6NIn0X9ZNmVTX8mLedIikedmC30IadhoI72wGGaOUhWf0bdfCQE42KbdvTX1CfA4ud9qfvPOSoxFI1UweO2XRdO2hY0pCC8FQpyDiFdYn6ST7vY9DrqkrzPV8XVdQkJOO2v1m3A"
+                                  "11aa316d-7eda-4f20-b8ce-da3b961ab7b4",
+                                  point_amount=3859.0,
+                                  is_onetime=False,
+                                  description="5c4bSqVBGp3Ank6BTTvgxHzzgdLIxgPMdYrCUsTg7mFBD5JyTl3OSbQF6o9LFFmkiVCdqahnfY1HR9DfMzD3LCASqee9bY3sHOGNF3Mai4m7no77RN8AasCH56gnyuHFpFsNPJmzuH1GHYOOmiUvKwyiQYSSoPK3"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_check_19(self):
         response = client.send(pp.CreateCheck(
-                                  "b0ded9e1-b593-4cd6-ba88-8079a453b844",
-                                  point_amount=3141.0,
-                                  usage_limit=8665,
+                                  "11aa316d-7eda-4f20-b8ce-da3b961ab7b4",
+                                  point_amount=3592.0,
+                                  usage_limit=2357,
                                   is_onetime=True,
-                                  description="lsFCHOKfiqVfddqZXHyl9FtM3BiAbJG4RFalUDm4QOG36z0pAjeCTeiy225IXwhDEUvB4npxY9ubMTI7cGyilStc03UjxERdVoe6HFhJgKELPhJZ4V6jG807jn4"
+                                  description="GrmU0unMptspEioBBqGcJLaXcepDTPRHElLNQrvWUnk17KWAioiFIGH7shpxz5S2r82nr4Char2DsC6IOlQ3ZCa8lZmMT5mAFAIeN7EOzXnRCcbLOsMiN4tjoxBAROpiRc0j39oPNkDTFwGmGihFz2z0g"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_check_20(self):
         response = client.send(pp.CreateCheck(
-                                  "b0ded9e1-b593-4cd6-ba88-8079a453b844",
-                                  point_amount=3201.0,
-                                  expires_at="2024-12-17T12:16:09.000000+09:00",
-                                  usage_limit=6576,
-                                  is_onetime=False,
-                                  description="fSZTliY3BcoO0R3ofHxO79PyMPuNxlOm9TssUDzbSN9easDT5qaXE9oVV6dzFzoMTL1nMwdKXWkN1V7WK5N3KEyrv8oYx3uFnGQ6ZUjkvuDzL1kINhlYHLw7e"
+                                  "11aa316d-7eda-4f20-b8ce-da3b961ab7b4",
+                                  point_amount=7066.0,
+                                  expires_at="2020-02-09T04:52:58.000000Z",
+                                  usage_limit=5158,
+                                  is_onetime=True,
+                                  description="nSv3peMsqUtDBVf5JNWPBpzSQtetKx5V0IU1H2quyHwM52367FRSK6ZN3dPGJYhssMJ1c"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_check_21(self):
         response = client.send(pp.CreateCheck(
-                                  "b0ded9e1-b593-4cd6-ba88-8079a453b844",
-                                  point_amount=4039.0,
-                                  point_expires_at="2021-10-21T07:15:29.000000+09:00",
-                                  expires_at="2017-04-04T13:28:04.000000+09:00",
-                                  usage_limit=2287,
-                                  is_onetime=False,
-                                  description="z2mwFW2G7CePrEb6qc1vzC0TUXZ7gJxmZbR4QIZxkVF44SiHUuKLea6KXKMTxnuRpjgiKiTeKThsCVHvt0FegcXhZNGhoP3dbXW7imuFIarDCIG12cWukEiPRDcMrsI69et7tZGcxsWh3x4WMFG9JtXGOrRTCDsNsdOxykdQVM02fdP8dPWgv17"
+                                  "11aa316d-7eda-4f20-b8ce-da3b961ab7b4",
+                                  point_amount=3007.0,
+                                  point_expires_at="2025-08-08T18:23:02.000000Z",
+                                  expires_at="2022-06-22T04:29:19.000000Z",
+                                  usage_limit=7940,
+                                  is_onetime=True,
+                                  description="uwaN6FqKGuMQEbIhSKLSxcJDAAH0jwIPbMhYlMMXruKsOetb8P3w3wpAlq46MRFhBa1KSFCImukjAtQPb0UOTifX7KrzTtAdseC51TTzGU05VTqLiAQDTT40IDYkIvu0sCcHMaDTHEOIiZjdOoQxmayWcgZvBQUAudiHvhALf0xr0YedjAtAh"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_check_22(self):
         response = client.send(pp.CreateCheck(
-                                  "b0ded9e1-b593-4cd6-ba88-8079a453b844",
-                                  point_amount=103.0,
-                                  point_expires_in_days=1545,
-                                  point_expires_at="2024-11-28T07:21:26.000000+09:00",
-                                  expires_at="2020-08-26T07:40:31.000000+09:00",
-                                  usage_limit=9070,
+                                  "11aa316d-7eda-4f20-b8ce-da3b961ab7b4",
+                                  point_amount=379.0,
+                                  point_expires_in_days=5154,
+                                  point_expires_at="2023-03-21T03:25:06.000000Z",
+                                  expires_at="2025-12-03T20:22:03.000000Z",
+                                  usage_limit=1588,
                                   is_onetime=False,
-                                  description="VKZ2Yg2XW7z7bqKh4VDMi81vkZfIvFF2aVGBrt4d4BQcmvC7IyShbMWHW8OrxkY"
+                                  description="5ZEYWHc6DIDKem3xaXPio5o0q9x0iUyrfJOMPlYYA9d24g2qlkQeuW1v6Ot04JjRtKJ3Y50yRgOZb7LyYK"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_check_23(self):
         response = client.send(pp.CreateCheck(
-                                  "b0ded9e1-b593-4cd6-ba88-8079a453b844",
-                                  point_amount=5119.0,
-                                  bear_point_account="d1ba1d3b-1fdb-47ca-89e2-a6e51082e5ad",
-                                  point_expires_in_days=2943,
-                                  point_expires_at="2018-08-02T22:30:45.000000+09:00",
-                                  expires_at="2017-07-14T22:48:02.000000+09:00",
-                                  usage_limit=9589,
+                                  "11aa316d-7eda-4f20-b8ce-da3b961ab7b4",
+                                  point_amount=1031.0,
+                                  bear_point_account="24a7f392-2f7b-4452-8d3f-b8d06a33d356",
+                                  point_expires_in_days=3897,
+                                  point_expires_at="2026-03-28T15:42:36.000000Z",
+                                  expires_at="2021-08-08T21:23:34.000000Z",
+                                  usage_limit=5543,
+                                  is_onetime=False,
+                                  description="cOO1w2GShMQxP1XNaA4tMwkt9CEIs7P52Qn8Ps6rGg4gxhQEPHlDMgzo7RyqyjDQCvIVLohtP7YX7LIJvkHIDHAM5JdvPW8u4K9jehE0FIX2d1fsIJRaq4cseT3Jr8x9EZ1qV4Ufa8eDK"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_get_check_0(self):
+        response = client.send(pp.GetCheck(
+                                  "6cdc5517-57ff-4d82-8fc2-6f2ad7130968"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_check_0(self):
+        response = client.send(pp.UpdateCheck(
+                                  "42e4c570-334e-4c3e-98b1-216afe7ba057"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_check_1(self):
+        response = client.send(pp.UpdateCheck(
+                                  "42e4c570-334e-4c3e-98b1-216afe7ba057",
+                                  is_disabled=True
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_check_2(self):
+        response = client.send(pp.UpdateCheck(
+                                  "42e4c570-334e-4c3e-98b1-216afe7ba057",
+                                  bear_point_account="58c6fc1e-aad0-4008-ab38-5edabe3ef82d",
+                                  is_disabled=False
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_check_3(self):
+        response = client.send(pp.UpdateCheck(
+                                  "42e4c570-334e-4c3e-98b1-216afe7ba057",
+                                  point_expires_in_days=4917,
+                                  bear_point_account="9ec4d7b3-6797-4a91-82b0-fdf90cdc7109",
+                                  is_disabled=False
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_check_4(self):
+        response = client.send(pp.UpdateCheck(
+                                  "42e4c570-334e-4c3e-98b1-216afe7ba057",
+                                  point_expires_at="2023-02-13T17:32:32.000000Z",
+                                  point_expires_in_days=8643,
+                                  bear_point_account="c0540a40-0adc-4b7b-9bb9-59edfa1e7d66",
+                                  is_disabled=False
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_check_5(self):
+        response = client.send(pp.UpdateCheck(
+                                  "42e4c570-334e-4c3e-98b1-216afe7ba057",
+                                  expires_at="2022-06-05T04:11:55.000000Z",
+                                  point_expires_at="2020-12-11T01:27:46.000000Z",
+                                  point_expires_in_days=4491,
+                                  bear_point_account="b9ac68ce-2cea-490d-8793-427b16d1e03d",
+                                  is_disabled=True
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_check_6(self):
+        response = client.send(pp.UpdateCheck(
+                                  "42e4c570-334e-4c3e-98b1-216afe7ba057",
+                                  usage_limit=2417,
+                                  expires_at="2026-01-18T10:29:27.000000Z",
+                                  point_expires_at="2020-10-13T06:16:41.000000Z",
+                                  point_expires_in_days=4862,
+                                  bear_point_account="41af95e2-3d54-4991-b94f-c977e4835ef1",
+                                  is_disabled=True
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_check_7(self):
+        response = client.send(pp.UpdateCheck(
+                                  "42e4c570-334e-4c3e-98b1-216afe7ba057",
+                                  is_onetime=True,
+                                  usage_limit=5924,
+                                  expires_at="2023-09-25T18:35:42.000000Z",
+                                  point_expires_at="2022-04-06T00:32:24.000000Z",
+                                  point_expires_in_days=8158,
+                                  bear_point_account="7b996ceb-e2e1-48d0-b02c-5cf7705995fd",
+                                  is_disabled=False
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_check_8(self):
+        response = client.send(pp.UpdateCheck(
+                                  "42e4c570-334e-4c3e-98b1-216afe7ba057",
+                                  description="D0eLyZpFNZ79bus52pNLLPo",
+                                  is_onetime=False,
+                                  usage_limit=7584,
+                                  expires_at="2025-03-24T19:47:24.000000Z",
+                                  point_expires_at="2022-08-06T09:15:36.000000Z",
+                                  point_expires_in_days=7861,
+                                  bear_point_account="70108e13-b814-4953-921d-722526c89c5d",
+                                  is_disabled=False
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_check_9(self):
+        response = client.send(pp.UpdateCheck(
+                                  "42e4c570-334e-4c3e-98b1-216afe7ba057",
+                                  point_amount=7063.0,
+                                  description="CEhVooVmB4cFvbTIGcXWAqG4BSfipEZMFGhk16I7iXigWOnUAkBWGfv1h3SdKWf7Mk6qxlTgasH11ZahWwt0KCw4FDQO05qLTqGDbzQDuaFv4VsaDUMga8HPHLfj8VAxLQCn6DppPY7uZKs5wMf3MBYDCuFCMBOgtd28MFakoJp4sttlPyu0hLTf3LV1FvqM27",
+                                  is_onetime=False,
+                                  usage_limit=2449,
+                                  expires_at="2020-08-03T06:46:10.000000Z",
+                                  point_expires_at="2026-06-03T16:13:08.000000Z",
+                                  point_expires_in_days=2622,
+                                  bear_point_account="a69aa3f1-6679-49e2-bfd4-193394ba5d95",
+                                  is_disabled=True
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_check_10(self):
+        response = client.send(pp.UpdateCheck(
+                                  "42e4c570-334e-4c3e-98b1-216afe7ba057",
+                                  money_amount=4647.0,
+                                  point_amount=6854.0,
+                                  description="WXNEvBDebROkI568yn3vAdg2WzE6cQfJbdKVhYmdIeaGtyZiVBFtaHsVEu5jHLt1IIKsQ450xUM6O5hfI4vi32RsgmtpDzruBR2bpCJbWCsF1XOMwOMfbCbRi8MeoObjQBbD5vivOmPF0WWyAe43BTjYiVtd",
                                   is_onetime=True,
-                                  description="wz6QVslbgmox4sylqaj0m4"
+                                  usage_limit=9498,
+                                  expires_at="2022-07-24T17:11:56.000000Z",
+                                  point_expires_at="2020-01-26T22:14:55.000000Z",
+                                  point_expires_in_days=1480,
+                                  bear_point_account="98e54544-381c-4b93-956d-36e72f84859e",
+                                  is_disabled=True
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_get_cpm_token_0(self):
         response = client.send(pp.GetCpmToken(
-                                  "NHRO5ZxO4O3NjLEysHxuDJ"
+                                  "s4Vk2VUx2tI5N4bIOpNtWw"
         ))
         self.assertNotEqual(response.status_code, 400)
 
@@ -979,226 +1321,238 @@ def test_list_transactions_0(self):
 
     def test_list_transactions_1(self):
         response = client.send(pp.ListTransactions(
-                                  description="z86s8rMyDwBbVQMVNIv43CsGJ1N1Ty1LpoGWtPPIzjjzRC7Vh9LObliCnClJEf5Qg177zO5rb"
+                                  description="RJ7taFGOOZNR9womkOYYXss1h0acoAUmABE9DWtANH45sfx8Sg9q1O62IQSAJ6"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_transactions_2(self):
         response = client.send(pp.ListTransactions(
-                                  types=["cashback"],
-                                  description="EpgsB3u1k6p1M3AaDCD8U2M3hy0vfxtwSmqJp6yKARh5ZRW3Kxq9vutzMeQNTZUuVlFabCqRikwgbBJfMhTrHTPQaRFRzLrLpSH0GqkthOAKJR8VBFpRQxxKQe"
+                                  types=["exchange_inflow", "payment", "exchange_outflow", "expire", "cashback"],
+                                  description="kw6yfFQPcXHRn98CcSXK5Zlq5PBZ9vRV0xbdB"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_transactions_3(self):
         response = client.send(pp.ListTransactions(
-                                  is_modified=True,
-                                  types=["expire"],
-                                  description="TlRS"
+                                  is_modified=False,
+                                  types=["cashback", "exchange_inflow", "topup"],
+                                  description="HS5KI84n4B4JwtxMbsrynFzleqVzZvPQrwaZ5xfzumz05DAlrcpNez8TuusjLCXuqGq9aXt2RyxOmHZB8Yd9TYL0bkCAVqSRIdac4BtBwC2bbOKrqEvtHSmLf6gZqSXb2Lr55RtyiR"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_transactions_4(self):
         response = client.send(pp.ListTransactions(
-                                  private_money_id="c58173e0-6c0a-4927-b350-ae7379973c89",
-                                  is_modified=False,
-                                  types=["expire", "payment", "cashback"],
-                                  description="FQKcrRJGtyzouTG0fNi1SBzVwDCpwO7mzwiIebwBbgsjluVjYrLryI60OsM6yKV"
+                                  private_money_id="f6dbb5f4-3647-4e4a-b11c-cfddf66d2601",
+                                  is_modified=True,
+                                  types=["expire", "payment", "topup", "cashback", "exchange_inflow"],
+                                  description="1KPz6vAaVd6Sg4zOt2LPb0nLBvCfu5QWsdUnRrH9KHVuXFGKt4lw9lRVMCAhIxweHf4mhVFw56RKDemCYdfHKy6kNARZB0e7gSo7Ck5GjWL"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_transactions_5(self):
         response = client.send(pp.ListTransactions(
-                                  organization_code="NiR4y3oI6DDGG-8-2bm99nV4-6",
-                                  private_money_id="810867ad-d660-425c-8f8f-9b012eadea00",
+                                  organization_code="y6An-T47t15W7ARlu",
+                                  private_money_id="0c11c1eb-20b0-4e9a-9fbe-4e78cd912bbc",
                                   is_modified=True,
-                                  types=[],
-                                  description="uCdyUUls75UdwXdZijuTLMB27QQHu"
+                                  types=["expire", "payment", "cashback", "exchange_inflow"],
+                                  description="U5UCBk1mC260SZIPf7lUxpBEwOCUnBV1wl8i3xQfqNGTjhBSpAIG2GVjRLCF7S26ypTzMExe5LQXN3tfMMeaiTEdRlgPRLO6iu4xB9p9hHVju"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_transactions_6(self):
         response = client.send(pp.ListTransactions(
-                                  transaction_id="tN",
-                                  organization_code="s-8M6b-O--i----s",
-                                  private_money_id="539d3808-02e2-45ea-8fb7-13bb48fae77b",
-                                  is_modified=False,
-                                  types=["exchange_inflow", "topup", "expire", "exchange_outflow"],
-                                  description="N4lU5sMlhBuyia62bkzzlqIc0ydT6mqiA8RNdj3U"
+                                  transaction_id="Fsk",
+                                  organization_code="s--sp05F6Y--Z803-2U",
+                                  private_money_id="8751fda1-2336-45b8-86f5-e32552727f1a",
+                                  is_modified=True,
+                                  types=["payment", "exchange_outflow", "topup"],
+                                  description="IBQsKNbECUonyUv3nTPZ701h3"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_transactions_7(self):
         response = client.send(pp.ListTransactions(
-                                  terminal_id="803db879-0d54-4a71-8821-93559b8743f2",
-                                  transaction_id="wecpoFXApI",
-                                  organization_code="-3-5n-r--7-0B--g4l-p-2M-z2-s",
-                                  private_money_id="19ab3ea3-5c42-45bf-a247-5a075756b9a1",
+                                  terminal_id="63c948a2-fd94-4223-967f-44359577ead1",
+                                  transaction_id="ywi2p",
+                                  organization_code="-Y--H-GGc-4e-M-",
+                                  private_money_id="c9294359-f03b-4735-bca4-6614975adc1e",
                                   is_modified=True,
-                                  types=[],
-                                  description="gB5z5qrK2mXuD0UWST9ldTa29xEBfE4jaoCgaw81ksIPXpJoHnKZwzgtMuSjmXprQOJIDMtkxUA3CwMowYwsohy6o54EyGXhKAybq9is4L00eclCf6ygQgmzcLUKbT5feGtXeOgCjHXo5HdhOmdyoXuDdYfk0Kl5lQobWMeUr"
+                                  types=["exchange_outflow", "cashback"],
+                                  description="s73QnlHzwGBVLp2Vmg3eprOU7ktZcHWsZTpEtZX9770nlSO8H2DCl6imPJgn2XjYsZUpQvLebh65Hdtxmvs4SwxRthVVayjO1th3s3e6fayZ2E32vm3RMvvWttu1PJb3d04IfskzbRh2KXDkJqy1UyPaGHVk"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_transactions_8(self):
         response = client.send(pp.ListTransactions(
-                                  customer_name="TL0yrW2IFnoVrabBtuZMnnkajdAwZKazac8bckasxqrpu0M7pIUsW64iTD7n",
-                                  terminal_id="77ac2164-1439-446f-a917-f2119a3bc5b4",
-                                  transaction_id="jTu3F",
-                                  organization_code="M0f6g9mH",
-                                  private_money_id="8c761014-fa19-4562-b6ca-ec6a513b12c1",
+                                  customer_name="yMSdmemZcovbEUc9TiM3DTSa7pJlo8JS6mIVfCl8O6XT",
+                                  terminal_id="3703a79b-b8f0-40a5-879b-eb1b8955fe5c",
+                                  transaction_id="PEJOaN",
+                                  organization_code="kJsWNR-R",
+                                  private_money_id="de093a66-d57f-45b4-aab1-8d5802910a6c",
                                   is_modified=False,
-                                  types=[],
-                                  description="HzepSQlFXs1g1p8h9cEw94TVm3QEXbRfQ4MBKBqC3S2iDFnRE3SwskPWs7mGvsLBFz2ikalm5QIcpZb2q5YnZ6axCoTTIbjOEPBaRli2lUAMJ7CyG5TMfzsA0CzHGei6FNa5iNHS8ae3s1VgKjc7Q8j7Z0S"
+                                  types=["topup", "exchange_outflow"],
+                                  description="XBdwXQXBx9CjvSgZke3VuPIIBeUSxLQqoj9SXP9EgDJcoagTJNb42JvVKNsj3zA7Dw0uibv6O0nFaLFwVLIZnC6rDyYuuG1XnlSIVaCTCoBzc3PolsdbrxUTbpTkQr9CA458OFUiC0xNjD1g6ausYOsWjmgSVes0LvRpIOKLgAa2m76DTKceEBbKe1QbzWrTYvHigd"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_transactions_9(self):
         response = client.send(pp.ListTransactions(
-                                  customer_id="bbb9b557-aa05-42df-8d3f-53cca7d69395",
-                                  customer_name="nzw7xhca7VuCPQn3tgDKKsPg1tK8tF9sjwQnBp1nMIeAnY6Xeri5tCJDZsGcVm09iZYX0jHs0ds3Y41lK02B8JXAbkOFKSHaiDX11U4V4mzkiQ9KgdufJCOqQoqEQic9b7rjANNhMIW5uX0nomeRn6xi8YDAJH7HJXNF3Oy8VhKyGvyermibojKhVPIvz1I1HvcbolySSXeAcLtwR",
-                                  terminal_id="f8abfb31-45b1-413a-a4f8-7c0bcaa3c7c4",
-                                  transaction_id="AJrx0pv",
-                                  organization_code="L2-kAk10H",
-                                  private_money_id="e428bf44-d697-4b39-9345-02bb98291d91",
-                                  is_modified=False,
-                                  types=["expire", "cashback", "exchange_outflow", "payment", "exchange_inflow", "topup"],
-                                  description="oiZ9sjCAHNKHbkDV7xD9UgYkUYCn38T5jddnt"
+                                  customer_id="9e832bc2-0116-4e8a-992b-9776209ccb11",
+                                  customer_name="VDdotVdsHD1HarFGRZ0Q28LywVGUz2sIRxtNbAYMzHePlwRHJLPebYCA3qabphyjXP3xuhhy9uGR",
+                                  terminal_id="248394f3-3ace-4fce-9ecf-875d9d394cfc",
+                                  transaction_id="zmZ5n",
+                                  organization_code="8mf",
+                                  private_money_id="86301539-6e26-4f95-a764-41b630efe5d1",
+                                  is_modified=True,
+                                  types=["payment", "expire"],
+                                  description="L"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_transactions_10(self):
         response = client.send(pp.ListTransactions(
-                                  shop_id="565d6596-9682-4c21-8cfc-05fdab2294df",
-                                  customer_id="336ec650-2cb9-4f90-abc0-a2fc4ae562f7",
-                                  customer_name="vyYD1qoSVwF6tpYAPGi6YnBQDM8MlLw6WNmhQ1XbNNNiRTERN1SPoqCbHjtLPWoEeyLYkaItEzRnlzKYkySdT2Gi04uqdwqTzZvD1PwMG5sUToLzAoDfdSJfprAXytppmaGjNfTvZeWlNcmFKOSukr",
-                                  terminal_id="3c8bd2dc-622f-46d0-b0e1-b4539f4ca774",
-                                  transaction_id="C08Ccb",
-                                  organization_code="-F-0F-30--u8E-UjA1yE-86h-",
-                                  private_money_id="53bd51c1-5eed-4b95-8af9-31db853099f5",
-                                  is_modified=True,
-                                  types=[],
-                                  description="v51Dnx9WEjtPQeVvIzNJybaWd5nDKgnWgGOF388caTufq1V8gMtPEUm5qxAkXQdgmA6Ox4Cr60"
+                                  shop_id="2d0db3db-49b5-44e3-b49e-6b3a1ad5452b",
+                                  customer_id="180f6db0-c1c7-4608-8793-483d48bbb718",
+                                  customer_name="i4ivBi3eJhDgAiQ5RhXwEfmyakwCi2K41MKrJ8u3JtJHw13BJLqURa9CDG8z1r52NxmvSo3IMgKOG9RqgqLtsxscDVj4qDxwlIsjYdDsgNzWfMVYN8tFORiCKaN1GSBkTmsnETZgON7wI25XD4LDGgtc1eHQx1a38fcy9G2ru7CIugZBUKc64A8KJDFHDE0sPhVLSmxr0FU3DnW6K",
+                                  terminal_id="5608c25b-1d92-410e-99f1-9ff3a5830e98",
+                                  transaction_id="DE",
+                                  organization_code="-iW73r1Y-bvxv",
+                                  private_money_id="2c87a899-7567-45b2-b6a0-45c2556c6174",
+                                  is_modified=False,
+                                  types=["topup", "exchange_outflow", "expire", "payment"],
+                                  description="lEOMImvGy37aG3VpRlqKVbLVJ59qzi8HFxZtC5ypm8TU2Y6m10oazOnSDRVBADkHpYoJtK8deELoxPb8vCqW8Z"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_transactions_11(self):
         response = client.send(pp.ListTransactions(
-                                  per_page=2636,
-                                  shop_id="b460e2fc-852f-4293-bf34-3934c1710ae1",
-                                  customer_id="6712c23b-2383-4130-b136-f2dfc8722833",
-                                  customer_name="ByMdg32LG1oWyluqXLUpztzpGIdluCdFeopAnKzAxtAmMd124CMe44VQ69lqvNuxrP4SroQtmwf2SR0athJ6w5HZkze23HnekgXpUMEHxZW0",
-                                  terminal_id="b235fe8f-b71b-42d4-8063-7f367e7f6c65",
-                                  transaction_id="IuVp5e",
-                                  organization_code="-F5d118kJX-",
-                                  private_money_id="aa60ac47-38c9-4730-a4af-9fb95d54910c",
-                                  is_modified=False,
-                                  types=["topup", "cashback", "expire", "exchange_outflow"],
-                                  description="7shqF2iDJgp3ZW8SpDn16YEfYX3JUUHHD0kbha6rpojFdIy8Lev3F8En8X"
+                                  per_page=7693,
+                                  shop_id="fbd6a0e0-3372-4d23-ab95-b071eef4d2bb",
+                                  customer_id="e9ff71e6-bb4e-4dbe-a7a4-8cffa2826d0d",
+                                  customer_name="GAkbzmAIScfq8JbwsUjFhr3NwoEyag2SfuJiolnAr0O5Bazm",
+                                  terminal_id="dcc9becb-ce3e-47f1-897d-62a08961c648",
+                                  transaction_id="UlvI3TLRDU",
+                                  organization_code="1T54RprF9e",
+                                  private_money_id="9921668a-1c8c-4b66-a8c6-1f5b26c71db0",
+                                  is_modified=True,
+                                  types=["payment", "exchange_outflow", "cashback", "topup", "expire", "exchange_inflow"],
+                                  description="Rg4eijui0x4AzukqXii06wz9NdLnaFp0d8NnYZXWwwPUfmYGEVrOM4dkj0diMGxwkBMFBNKhTrrGkGVnz7dW1L5JRcqWGZoB7J2SLBuVTFPFKYeglUQAESlFenRvUgW2C0Pk55puUaBmR66mDvQf3SzEAz6sFhOXUyleHUBygYLLJFfbbjnOxn1Ii4QyB"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_transactions_12(self):
         response = client.send(pp.ListTransactions(
-                                  page=3176,
-                                  per_page=4306,
-                                  shop_id="79be3681-7943-4470-b510-00d67b659019",
-                                  customer_id="0f782632-14e9-479d-a4b4-69bf7fe3967a",
-                                  customer_name="Rrop8yq1iTaMXh9J32aBIrleFDh2AVDnVQPI4cS2rMsWBfreBRQpW9vUd58fde96uK1qpkeDgc6H",
-                                  terminal_id="c303d83d-be81-47e2-9b9e-7b6f388b2233",
-                                  transaction_id="o2wSmfRoo",
-                                  organization_code="l-y0-M-fT9--rXh",
-                                  private_money_id="d1d72603-12a8-4e82-8fd9-317085218001",
+                                  page=5957,
+                                  per_page=1458,
+                                  shop_id="25a1b673-3f5f-40a3-914a-98fc7e5cba0a",
+                                  customer_id="e3566da9-311c-4e37-916b-d3b6fa03dae4",
+                                  customer_name="P6L13ja9VovumOjMgFfs83kBzSot4H9G2QRAYPymeRfFOHsPVjb9UCbPcYx5YXiYOW0oa5SUOR88F7Ubd6EIlmfbIWBjq1h3aM3MFSn6Z9Xp0dYAIwKPnm62HiK775FUjJKUwWsCFULHC5xu9xwKzEEFr",
+                                  terminal_id="8b340176-3230-4a84-86f0-96b569f2b4d6",
+                                  transaction_id="2XFS",
+                                  organization_code="80-tv9Fy1",
+                                  private_money_id="ffac6395-94ec-438f-9b99-6ee786500033",
                                   is_modified=False,
-                                  types=["expire", "topup", "exchange_inflow", "cashback"],
-                                  description="Qy1efJIm6p2nFeDatBkmxJUfJ8iWJ5x76ilzTFGw7NqxtlVIVfYnX2Qn7EnOChsUwktnh8VjRFve7MdNMBgFvJyEEmkecVySQ3ucJUKFqVhyrEcw3WNc5IXHiI2Hhl1OjgN6fFukYqihBSq8D0896GNWlaYQ8akcWxDZkhO"
+                                  types=["topup", "exchange_inflow"],
+                                  description="jzG8UYapgA4DXNtjsg9PgQkXqYPn4dGIxCAVXu8wPFdMI0g8RX9GwTm1EaeDH0runisLVA8D7RtvLwRN8QmXijHIyMGxrgTxrmP2c2b7AqdqrRaU4tsNqOUt"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_transactions_13(self):
         response = client.send(pp.ListTransactions(
-                                  to="2017-06-15T20:11:56.000000+09:00",
-                                  page=2800,
-                                  per_page=6267,
-                                  shop_id="3f07546b-e020-4dfa-91aa-75176d0dfc65",
-                                  customer_id="fd14dc73-60f8-42b2-ad8c-c0ee944b4d65",
-                                  customer_name="2LIVGGp8Vx16M91diHUGfol8Mhj42rW4z5Wjzvhmx48Q4mMZZBBUosSdONTSqEGwk1DyPJJ9VhetNR8hTecHZnx73cRhZIXdPCHq2mv2UAXA",
-                                  terminal_id="2506d490-38f4-4fba-b13d-dd72ed30a710",
-                                  transaction_id="kbL0z4gSPz",
-                                  organization_code="--9-5jKh-66tZieYA7-E",
-                                  private_money_id="3f07627c-77ba-473d-8747-2571b3e7f3e5",
+                                  to="2022-02-07T22:47:04.000000Z",
+                                  page=812,
+                                  per_page=771,
+                                  shop_id="8e5fd89b-2b53-49bb-b81f-9d5341ae038f",
+                                  customer_id="63f4bd61-127c-44de-b53e-1571a8764f09",
+                                  customer_name="YfKcdpEzIZoGgQ8JT7nM2XSRS8qzeJVaYua",
+                                  terminal_id="8e1a411c-2bbb-45e0-855b-273288fccdd7",
+                                  transaction_id="PHw1U",
+                                  organization_code="99q-L-I7f5-U2--fa-Lleb-7e-5-",
+                                  private_money_id="de760078-73fb-4ab5-8577-64070047582e",
                                   is_modified=False,
-                                  types=["exchange_outflow", "cashback", "expire", "topup"],
-                                  description="DzJGZ9TM0TySjAlV"
+                                  types=["exchange_inflow", "exchange_outflow", "payment", "expire", "cashback"],
+                                  description="5OvQdZofRUOUAciXVcpzKCMcrOD6Emk2wkp2iXzqZDQWG9JIPYO9QhKjYAAaWngq9PQfQxKRvEszf3mWAEHwNafuFelOU7xCAyi0eUz4xXH5OLhVoB1lIuiOfxpiSD0ualUMr1aiX"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_transactions_14(self):
         response = client.send(pp.ListTransactions(
-                                  start="2022-08-21T05:02:04.000000+09:00",
-                                  to="2023-08-22T00:59:39.000000+09:00",
-                                  page=7332,
-                                  per_page=726,
-                                  shop_id="bbfaa117-03a9-4fa4-8e3c-44e4ca9e2e88",
-                                  customer_id="dfffc54f-10a5-4bc3-888e-a5167f459165",
-                                  customer_name="kFyfPkq8IYlCnIEfVjyhIzvswfx06lwewFlBxBPgZymInLxkpSlp0CcXJpCFZzCR1WWP7a67366cHWhkYkA6trhbS9trPinjNzKWZdpxUSeeatx6TLoIfkctcu",
-                                  terminal_id="8435a804-3c3d-4433-85d4-18eba3009519",
-                                  transaction_id="D",
-                                  organization_code="-4--jJ-64eW6-Tp-m-V0HjUu9-",
-                                  private_money_id="95c84b40-9503-4a9a-bdf4-ff2d34fc2643",
+                                  start="2025-09-04T12:32:59.000000Z",
+                                  to="2025-10-28T02:35:46.000000Z",
+                                  page=723,
+                                  per_page=2710,
+                                  shop_id="4a4ab0f2-d9fc-4b30-be59-5496244cb9f4",
+                                  customer_id="a380ba3c-56b6-45ae-8fdf-ed9ddd0b2f6e",
+                                  customer_name="t0eqhymEV4KDx3FmD9kbbli1vOnH69EFivIjA6JEHCCuKl",
+                                  terminal_id="1a939b17-6eee-4066-95ce-fcae5000d78a",
+                                  transaction_id="TWFTkh4",
+                                  organization_code="W-i-MgUl-7-e-2lbp47YIY-S-",
+                                  private_money_id="3d39693e-5973-446c-84bb-a724682b8804",
                                   is_modified=False,
-                                  types=["expire", "topup", "exchange_outflow", "exchange_inflow"],
-                                  description="C2YnEIi9qrFhHU4UChBktVJM6Ehoat5RskjtjMRgfY9KAojiVjkW"
+                                  types=["exchange_outflow", "expire", "exchange_inflow", "payment", "topup"],
+                                  description="JS"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_transaction_0(self):
         response = client.send(pp.CreateTransaction(
-                                  "cb1374c7-08da-4914-8de6-4184771c3f04",
-                                  "15918858-c262-4fe8-871c-821841c6becf",
-                                  "79ccd9de-1646-4976-8e8b-75d9511ffeb5"
+                                  "54834b5c-2549-4c46-95f2-4d29e2e821d4",
+                                  "f5f8a4d2-f1ee-49e5-b9a2-8631397a70f5",
+                                  "6dd14e7e-5638-4902-81cb-a0185959ff6d"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_transaction_1(self):
         response = client.send(pp.CreateTransaction(
-                                  "cb1374c7-08da-4914-8de6-4184771c3f04",
-                                  "15918858-c262-4fe8-871c-821841c6becf",
-                                  "79ccd9de-1646-4976-8e8b-75d9511ffeb5",
-                                  description="OwkPTEUz8oSFQeGoSG3k81y4L7o3GM3UKBXMJoycpsy4LyLZFxRuuFLA4Ui8k1KypnJ8Uw7M1CvtXboHcAQ9ViIsvWqws3eBMzyIUtiNxNhmRynGWfznERPtN3LViJS1dpiuu6JWeysJ5UR27acols8OLFNhYvqrdgeoTKVw3QKHsut3xFubIL"
+                                  "54834b5c-2549-4c46-95f2-4d29e2e821d4",
+                                  "f5f8a4d2-f1ee-49e5-b9a2-8631397a70f5",
+                                  "6dd14e7e-5638-4902-81cb-a0185959ff6d",
+                                  description="NYXCce6NgXmM6SU8mT9N7YdoyhvIOK96oQgvpt3OE4bGWfPwqWxwC3DU0ZYNIFrYHkTuOzrywGRNkAeSHinr7X7r9y8K62vZdczxzKDF7OzztIRdIBCYTSHrtKwDRbFJx9qY9kB8kVD"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_transaction_2(self):
         response = client.send(pp.CreateTransaction(
-                                  "cb1374c7-08da-4914-8de6-4184771c3f04",
-                                  "15918858-c262-4fe8-871c-821841c6becf",
-                                  "79ccd9de-1646-4976-8e8b-75d9511ffeb5",
-                                  point_expires_at="2024-11-07T12:20:55.000000+09:00",
-                                  description="ZVISKCKpUoBc7VjLNhPbQNBNhem"
+                                  "54834b5c-2549-4c46-95f2-4d29e2e821d4",
+                                  "f5f8a4d2-f1ee-49e5-b9a2-8631397a70f5",
+                                  "6dd14e7e-5638-4902-81cb-a0185959ff6d",
+                                  point_expires_at="2026-06-01T11:21:33.000000Z",
+                                  description="JMjy6rf4CluMJ3q8UHdGY9c6av2inoQmoszzzj7gjncZRjG49ZyE9dB8fCGfTM2Oyolj4kfEe2uvMtiKxUivt9MIJ97msI3tBe6ti0SO07EXHC5hQ6"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_transaction_3(self):
         response = client.send(pp.CreateTransaction(
-                                  "cb1374c7-08da-4914-8de6-4184771c3f04",
-                                  "15918858-c262-4fe8-871c-821841c6becf",
-                                  "79ccd9de-1646-4976-8e8b-75d9511ffeb5",
-                                  point_amount=6017,
-                                  point_expires_at="2021-07-11T10:11:12.000000+09:00",
-                                  description="jnuLcC94xG8sb1tOVm7p5XAwHfSXk3eOR6TecHTnhwvZsEsT85OfQ8lzdmqxGSg8e3RhOb5BMcQPLOIjmc8VMDMHWqGdZh4akYykFCJxLZHGXI2AIAE56GVf0Gw7"
+                                  "54834b5c-2549-4c46-95f2-4d29e2e821d4",
+                                  "f5f8a4d2-f1ee-49e5-b9a2-8631397a70f5",
+                                  "6dd14e7e-5638-4902-81cb-a0185959ff6d",
+                                  point_amount=9496,
+                                  point_expires_at="2026-04-28T02:49:21.000000Z",
+                                  description="WDcVyEH0QvPCR5IiYZhX71qxxCDFjWtGssb86D9XZfo8j2fPJCGzVYdohDRxcepsSsdecspEcH6zAIM8ju98Xf3eDqYA5vYg7TRPpd99WNI7yrXSKnnTIb76zTEtm8AaIiuGx9L9HalOMU5vigXX7Icn5jXA5Qx"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_transaction_4(self):
         response = client.send(pp.CreateTransaction(
-                                  "cb1374c7-08da-4914-8de6-4184771c3f04",
-                                  "15918858-c262-4fe8-871c-821841c6becf",
-                                  "79ccd9de-1646-4976-8e8b-75d9511ffeb5",
-                                  money_amount=8299,
-                                  point_amount=2285,
-                                  point_expires_at="2019-11-05T17:34:47.000000+09:00",
-                                  description="NPt7OvjdgkL3FTfLMcm3icBM39ZlgHnODxDuHCOV9jJuZqWToSer58JP7CddvYZG2P4sGsjZKQxe7fKpax0Uc45ft1nisEBoOyK7IWRvWeQ7"
+                                  "54834b5c-2549-4c46-95f2-4d29e2e821d4",
+                                  "f5f8a4d2-f1ee-49e5-b9a2-8631397a70f5",
+                                  "6dd14e7e-5638-4902-81cb-a0185959ff6d",
+                                  money_amount=6858,
+                                  point_amount=1488,
+                                  point_expires_at="2025-05-07T04:42:36.000000Z",
+                                  description="bbGkUILhTXtRtmknLVk7hQOvzRC9zFhAU2LnJOGL09rrRBaBOdWWGJsxArgIuumMVdl31leH5Dl7ZUHzS51rJLdw2n2tQfnXr078yWrpzKRIJrBD5D7CpKjeG53Xpalhw5eupOSaoLetupiLJGKA08kULtDXm7mGq20CccqYOFtqhMLy1fSrOZfnZ2mw"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_transaction_group_0(self):
+        response = client.send(pp.CreateTransactionGroup(
+                                  "TeB7HbtOFrcDL7mosyloW0gLyNig5qU771SYwG9bLFfHIbs98VpOgmc8pS7"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_show_transaction_group_0(self):
+        response = client.send(pp.ShowTransactionGroup(
+                                  "0c94c2d7-f495-4c5d-959d-d75a15c697e9"
         ))
         self.assertNotEqual(response.status_code, 400)
 
@@ -1209,920 +1563,1209 @@ def test_list_transactions_v2_0(self):
 
     def test_list_transactions_v2_1(self):
         response = client.send(pp.ListTransactionsV2(
-                                  per_page=728
+                                  per_page=267
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_transactions_v2_2(self):
         response = client.send(pp.ListTransactionsV2(
-                                  prev_page_cursor_id="9de12471-99ca-4b77-9813-2bfcca47c9ff",
-                                  per_page=516
+                                  prev_page_cursor_id="2d6b2f87-f014-45f5-ad0d-10e0b5367189",
+                                  per_page=422
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_transactions_v2_3(self):
         response = client.send(pp.ListTransactionsV2(
-                                  next_page_cursor_id="22ec9ab3-265e-40a5-8442-7863a71151f2",
-                                  prev_page_cursor_id="3ce137c1-2c06-471a-b0da-4aca6ffb016d",
-                                  per_page=336
+                                  next_page_cursor_id="c248bfa6-de5c-429f-b5fb-5fc27c00ea7c",
+                                  prev_page_cursor_id="58ce8032-e8d4-481c-8ace-6dcabd783681",
+                                  per_page=996
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_transactions_v2_4(self):
         response = client.send(pp.ListTransactionsV2(
-                                  to="2022-08-30T12:31:46.000000+09:00",
-                                  next_page_cursor_id="db90af9f-6e3e-4355-8d6e-40e6176c6b1a",
-                                  prev_page_cursor_id="2ffaad79-6d64-45aa-8a44-be69bf94ef44",
-                                  per_page=521
+                                  to="2022-01-12T07:05:06.000000Z",
+                                  next_page_cursor_id="0aefbbca-9b47-4ae0-b605-f38cd3f02fd3",
+                                  prev_page_cursor_id="4405b26d-69eb-4914-b341-35b18464694d",
+                                  per_page=118
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_transactions_v2_5(self):
         response = client.send(pp.ListTransactionsV2(
-                                  start="2016-07-21T22:31:11.000000+09:00",
-                                  to="2021-02-28T12:59:09.000000+09:00",
-                                  next_page_cursor_id="1dc97a39-0a28-440b-a504-36765ac3bb9e",
-                                  prev_page_cursor_id="df2b38e6-1fc4-4b7c-b1ab-9b0a2612f150",
-                                  per_page=268
+                                  start="2023-01-05T16:53:50.000000Z",
+                                  to="2025-04-01T04:25:21.000000Z",
+                                  next_page_cursor_id="e9d81bfe-877e-442e-81b7-81b9bc91d8d3",
+                                  prev_page_cursor_id="abcd1149-1aba-41bc-961e-a206827712be",
+                                  per_page=172
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_transactions_v2_6(self):
         response = client.send(pp.ListTransactionsV2(
-                                  types=["exchange_outflow", "topup", "payment"],
-                                  start="2016-01-01T04:27:16.000000+09:00",
-                                  to="2022-02-25T22:31:49.000000+09:00",
-                                  next_page_cursor_id="090174f5-5769-4e0b-832e-ba49023d62ae",
-                                  prev_page_cursor_id="139de550-9f78-44af-87d8-9991a48220cc",
-                                  per_page=647
+                                  types=["payment", "expire", "topup", "cashback"],
+                                  start="2023-08-04T17:40:54.000000Z",
+                                  to="2023-11-02T15:41:31.000000Z",
+                                  next_page_cursor_id="59b1d643-abd4-4449-af0c-aaa29d626ff5",
+                                  prev_page_cursor_id="972a7718-71fc-4777-9b04-e0a1018d6670",
+                                  per_page=788
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_transactions_v2_7(self):
         response = client.send(pp.ListTransactionsV2(
-                                  is_modified=True,
-                                  types=["topup", "expire"],
-                                  start="2024-06-24T22:54:19.000000+09:00",
-                                  to="2022-01-09T17:10:32.000000+09:00",
-                                  next_page_cursor_id="abfad28a-2261-4770-bb9f-eadaeb23d234",
-                                  prev_page_cursor_id="35e21334-fb29-4919-b760-396ad97efee5",
-                                  per_page=736
+                                  is_modified=False,
+                                  types=["exchange_inflow", "cashback", "payment", "topup", "exchange_outflow"],
+                                  start="2022-04-26T09:01:04.000000Z",
+                                  to="2025-10-16T17:34:04.000000Z",
+                                  next_page_cursor_id="c3f39995-c5e1-40bf-93c2-e62c3326875b",
+                                  prev_page_cursor_id="c0ebcfc5-b7dc-4630-9191-e8aa76b2e620",
+                                  per_page=105
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_transactions_v2_8(self):
         response = client.send(pp.ListTransactionsV2(
-                                  transaction_id="Leg5dXf",
+                                  transaction_id="jzN",
                                   is_modified=True,
-                                  types=[],
-                                  start="2021-08-22T00:03:33.000000+09:00",
-                                  to="2020-05-09T09:50:53.000000+09:00",
-                                  next_page_cursor_id="59d05ac4-417f-4c10-8d1f-fd95efe040e4",
-                                  prev_page_cursor_id="10b62b00-d792-47e2-b891-c453cf6b7021",
-                                  per_page=746
+                                  types=["payment"],
+                                  start="2020-07-03T21:11:56.000000Z",
+                                  to="2022-10-01T05:54:37.000000Z",
+                                  next_page_cursor_id="c70d1ca8-221a-42b0-96e5-9bb0baa6147e",
+                                  prev_page_cursor_id="6f98c972-bfce-4433-9186-7f1d34f50fc5",
+                                  per_page=348
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_transactions_v2_9(self):
         response = client.send(pp.ListTransactionsV2(
-                                  description="dHtUdWqjwNZ6SqXcjRYXWjjppT0r9xvCuvBOfsidrDI9VlsfxLxW5axZvNGABU1Kq4dKF1bCFldqrEeXCX83UsZSPbix6b1Za3ly7V",
-                                  transaction_id="1xEB",
-                                  is_modified=True,
-                                  types=["topup", "cashback", "exchange_outflow", "exchange_inflow", "payment"],
-                                  start="2019-04-19T17:54:35.000000+09:00",
-                                  to="2024-12-02T09:54:02.000000+09:00",
-                                  next_page_cursor_id="6e975fc1-ef3d-43c2-a37a-2612a0ea96b8",
-                                  prev_page_cursor_id="ac5c6261-5ad1-4e56-9134-810abdf9f8b6",
-                                  per_page=717
+                                  description="m7q1SjNjatjjDZX7RIKgDX3b9oA142xLkpis0qy5MfI",
+                                  transaction_id="SyoLqEQKh",
+                                  is_modified=False,
+                                  types=["exchange_outflow", "payment", "cashback", "expire"],
+                                  start="2024-12-08T13:12:39.000000Z",
+                                  to="2023-10-06T22:46:26.000000Z",
+                                  next_page_cursor_id="f73d2590-2281-47f2-8c02-47842a1d6833",
+                                  prev_page_cursor_id="6975e905-43cb-485c-a589-32820fe751f0",
+                                  per_page=44
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_transactions_v2_10(self):
         response = client.send(pp.ListTransactionsV2(
-                                  customer_name="RceMuSvImdDq9y3aEus7kZPbP6pY7uTyJAbvra0dcpr2XBaxBtLUqtpR4s1JU0lVQ2OypewcGn6EYrIoiJUtnz4tPDjzGeH1vMI9teS2D85S1UHA16vfzALVhDfz",
-                                  description="Jqhsy99eYUXwCEgrx3b6fZBGl5iNgWbOvie519sB5ATfDwJwr3eQ20YGcyYu0bMGv3vztYfqlxsbOENjEAJX3lDTAofzZK4Rxx8sLYfBb6BjvrBrNNM0rEDhKG45tzzgCXrxrouPH3h",
-                                  transaction_id="I04AO4rgT",
+                                  customer_name="treugpuZPDhn3kvKQdinTisU7JGahMN0pspm5VBpWaMfH3OlTb5uoxVylmhf3ESdF0EHZGgpE19g89rUgV81h6fR4XXAReVSL8MjPf2nDJncUb7prKqWXHoSFTkZLdy8B9WWqNrXVXI1wRTqwqzVsahBGWwps3iARDJTRZkOOEQFC19Wtss23YjQBhHozeYJjV02y90GWowMI3ASCsApxBJptaJJRDQ6YTYkiFEIISprQ3cmpI6bh8YrVsWGSgh",
+                                  description="Cw1Un7nnaTSFczRArCskatgTSAk3a8TcT02JvhzyAvEGRwH1gqt79bzapcrIrLur4lrAgRY4qmYCDpX8Ny7Ex4zLyYmVuuwRZjnfSOf90ILh1FnEv5pCv1ztILSktq1cNxb1w0fAXCRcSE6z5QHSLVITcWyXkWwNeThLpKI1N6RIMY7t0u9TuR54ZsbCHGDImjW34",
+                                  transaction_id="jE8W9",
                                   is_modified=True,
-                                  types=["expire", "exchange_outflow", "payment", "cashback"],
-                                  start="2024-07-26T20:01:43.000000+09:00",
-                                  to="2020-08-20T21:42:17.000000+09:00",
-                                  next_page_cursor_id="941ef2f1-9cea-47bd-87fb-4acc6bcb1c50",
-                                  prev_page_cursor_id="1dde2b95-6a30-4fc4-82d5-0387e9a02e6e",
-                                  per_page=456
+                                  types=["topup", "payment"],
+                                  start="2024-12-06T07:46:31.000000Z",
+                                  to="2020-08-22T20:50:43.000000Z",
+                                  next_page_cursor_id="d0fbabc5-4b3c-417a-9a4c-56ee1759fc35",
+                                  prev_page_cursor_id="0a53ed85-292f-4da9-b5f9-6f767e7bbb10",
+                                  per_page=40
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_transactions_v2_11(self):
         response = client.send(pp.ListTransactionsV2(
-                                  customer_id="01138506-06f8-4697-973a-73c5b9fe2fec",
-                                  customer_name="SvEGfkoczpVf2XfhCesDbLNG0um3YX4ee6SkSSSI0RCCs8xN6z62EIsVi251R9OVM6dJXfTSVkQAgLF0UCGkzWfvHQLNpl08",
-                                  description="kirPvpqWe6LFMxqHgshQQxZyXH54xcjjzE4jf3bC1uhrBdvXqhm8jwzIEhcNYML2OSzpp2xgjGNFVHJxj8ajHmdLScmLSMjxtIdUuX8NpagwVisjQjWa0Ga7Mr0",
-                                  transaction_id="bte93",
-                                  is_modified=False,
-                                  types=[],
-                                  start="2023-12-05T01:05:41.000000+09:00",
-                                  to="2025-07-15T18:47:09.000000+09:00",
-                                  next_page_cursor_id="5112bfed-8bbd-45ba-8f09-c7c5be7e3368",
-                                  prev_page_cursor_id="d93f74d8-963f-426e-8ef9-8a3e8a658155",
-                                  per_page=930
+                                  customer_id="81a32662-8cce-4c6b-9866-a821dfad102f",
+                                  customer_name="kqdGOYba42tK1ETZVrimXQx2toEzw7Z1gM6fgx4uEjyIUvTVKqmlOa23scUcryj4GBWTbDzAVeKXVTyNRuvNAUp6ljdawfubjQ03lDRu1dHypEu4pqRk9KXyywxfAs",
+                                  description="vQQw8eNXwtPfKAW4UwDxtqXzHNdytk1inQrWiktMK0FHLyLnvzTdFf0Y1JODoBhEEJFs7RURiJHf6mnglgKA3t551AWYy2EKxgIvudVQKM3ivlyVYA6fe68jtm2G7nC3SW8MPeFKTYT7eEYLwv",
+                                  transaction_id="QFKDImV0W",
+                                  is_modified=True,
+                                  types=["topup", "exchange_inflow", "exchange_outflow", "cashback", "expire", "payment"],
+                                  start="2025-03-25T05:46:06.000000Z",
+                                  to="2024-04-21T17:54:26.000000Z",
+                                  next_page_cursor_id="2b5accaf-7713-497a-a9d4-62d873471c01",
+                                  prev_page_cursor_id="54af3204-35cd-4688-a7a2-dd2bcd991ef5",
+                                  per_page=643
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_transactions_v2_12(self):
         response = client.send(pp.ListTransactionsV2(
-                                  terminal_id="6877d983-9c44-4572-b38c-f2b0646ed5d9",
-                                  customer_id="150bea29-3953-4b8a-9408-acf986e34ee0",
-                                  customer_name="NNnFCcwr1avxToYBT4VEV6evoILJv7tTWIqRKgT33Bi9tzz6Ttxk7d6FPiA0lsYPm9uy3bOLitkN0",
-                                  description="KHj5fbn2v2B0UJuNrXCxgjdk6CWOkAWhJ0Lot3",
-                                  transaction_id="toFslAl38",
-                                  is_modified=True,
-                                  types=["exchange_inflow", "exchange_outflow", "cashback", "expire"],
-                                  start="2021-06-30T14:29:44.000000+09:00",
-                                  to="2023-04-27T20:48:19.000000+09:00",
-                                  next_page_cursor_id="05eb8b06-89ea-44f9-b387-f2834ee3403c",
-                                  prev_page_cursor_id="6f05a394-993e-4220-9eea-4e650951e99d",
-                                  per_page=506
+                                  terminal_id="e06b45ed-b807-4346-aa3e-1d26809eb9e5",
+                                  customer_id="a6716e61-64c5-4648-a40a-41163b9005e8",
+                                  customer_name="PePoMZwnAEmuUL6pb761IWS7zT3jmF3XMzgKDKO5o6UqQsbMF41dYUnemzRdROKbGph7rDrumGN6tQ3vZwFKRF7w7plclcWB9bNRwQ0LABzLS5AginlSJbgCOpN21EzYv53e8C68gL6nh3hboA1VaXQqYz47H8v5OYX2Bb7kgjpYtpWxkJ26TN1Vk",
+                                  description="tFjJy7P4SbKkoz4u4vqNtkYjPXUyJ1V0r5CHRNT2ecfLdc33OSn94wpSCBGnb27KI1Ko9Ro9P2UOPHKcZd7kJ0a09BOfp",
+                                  transaction_id="TrIx",
+                                  is_modified=False,
+                                  types=["exchange_inflow", "exchange_outflow", "payment"],
+                                  start="2020-11-20T16:52:18.000000Z",
+                                  to="2021-06-13T07:29:08.000000Z",
+                                  next_page_cursor_id="64a8d224-6cf8-4c22-a7a7-4066c71fbc30",
+                                  prev_page_cursor_id="ec3597a7-cf65-4da1-8106-abd0dd90cb80",
+                                  per_page=389
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_transactions_v2_13(self):
         response = client.send(pp.ListTransactionsV2(
-                                  shop_id="c212b7ba-9a85-45e5-8b99-b2e739d7cda7",
-                                  terminal_id="da52f90b-54a8-4209-83b5-841db4dedd0b",
-                                  customer_id="6d48ed45-51ff-4283-9c43-26815b5480f8",
-                                  customer_name="1SgJEpSlopBJNy3qmiwYmDuOlcchHpAG2gwwi3nOK6tJxpePLFHBs9kILByZGqDqm9YAgnobRajraam0rBpkfu82GZDo8PtRb5vVt3TqmZrxia2ui6VWr3guQRAw5Cq4lwbs5G5iUu21d4ST7CuEydnlBtSyriuS9M5GXcqFt6wV9qfsP61uEwZUrs1XMhNzPArurgTCGgpfTuJZDkeCAQBkolLr",
-                                  description="oUrTRKy1uTbc45m4YwxjxtGbA05zcwQ8eNnH7AYfIcNt7NKHBDT4zItl3ZAd6IFhkcz8jRzOJNYNTmAx0cRygrFZ66y9EQQUqakXyxFnuW2T4m1VyTa1OoANMT3g8KQuzrvKESksiTJQTVn",
-                                  transaction_id="H",
-                                  is_modified=False,
-                                  types=[],
-                                  start="2024-04-15T14:27:38.000000+09:00",
-                                  to="2017-04-08T13:41:07.000000+09:00",
-                                  next_page_cursor_id="d930a88e-56a4-4ffd-b7ae-c779b73b7c37",
-                                  prev_page_cursor_id="52838966-3eb2-49bd-8c59-ce7791e5996d",
-                                  per_page=380
+                                  shop_id="375ec13e-2110-49ea-9f6f-a5eb88fda305",
+                                  terminal_id="23f38ec5-ffd6-467e-8810-e8ba33a63e95",
+                                  customer_id="d2bd4e13-65d2-4382-aa46-79ccf1b1c13b",
+                                  customer_name="hiMn2sJjV2bGnLruRc9c27Gpu7iWb08UbIXfazIWogjdxJNEfM7ZphEzx62f8FNzaDel7ro4JT6XY3Y33ek4ahxmsrZJPb5B1K9ZLJjl",
+                                  description="QzrcG4cFx990D5go4dBLdUCSZVd4cTqnNfSRiX",
+                                  transaction_id="Lw6IXxo",
+                                  is_modified=True,
+                                  types=["cashback", "topup", "exchange_outflow", "expire", "payment"],
+                                  start="2024-01-23T19:32:02.000000Z",
+                                  to="2026-04-10T14:13:13.000000Z",
+                                  next_page_cursor_id="9af3b345-8ee5-4ff2-8c4e-7127a8577917",
+                                  prev_page_cursor_id="bd51d245-8c4b-4321-be4d-9459c0099b05",
+                                  per_page=937
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_transactions_v2_14(self):
         response = client.send(pp.ListTransactionsV2(
-                                  organization_code="V-Sl395---C-z7S5-H-5W-2-kd",
-                                  shop_id="b882152a-de65-4772-ba7e-aff88188aee4",
-                                  terminal_id="3d4253e2-96a2-4b40-b515-64dfba992f80",
-                                  customer_id="b2ced270-729a-4bad-a03d-b756300687f9",
-                                  customer_name="8ATO6lTexkb25xKe3io9ZDBIqGu38r7vCoqpH5QhZu1k2tSxqrr7YJPVhda0ziWsQtZgRc6cmsvPcY7yThlkSXuhO9OLfbw29j7FyeDINdaRXM95lPwMwz9IKIn6wEZkP",
-                                  description="JyErXa70KC1ZDBuFoL3t7T5TQkGNyZe8GBabvL25GCAVUwr2eojbDaPOXkEpypH4JrghAf67UGzdtgboYq9",
-                                  transaction_id="zCMQ97NziA",
-                                  is_modified=False,
-                                  types=[],
-                                  start="2022-01-01T10:12:21.000000+09:00",
-                                  to="2019-06-09T05:22:32.000000+09:00",
-                                  next_page_cursor_id="690f4903-a5f1-41dc-adf9-4e3875a63e1a",
-                                  prev_page_cursor_id="d423ded4-7964-4fa7-b052-f7cf4a704a52",
-                                  per_page=529
+                                  organization_code="49Z3-Af-3QQb-j0Nu-",
+                                  shop_id="ab504349-7dd1-464b-9151-b9010663148b",
+                                  terminal_id="886558c8-2f62-4afc-a436-5ce6ea945ae9",
+                                  customer_id="659e2b6b-6fa7-41ae-9dd6-43e781f6f138",
+                                  customer_name="3XBigR3jya01cL7edhmrVi5NIsblUeDquiQL8YRreNoLAWMJdywYSICtYcbHl2ktF16gpa54attROZcBbejZS9wdnnNKINI7vj8qEDPsdJ8JkL6K4fbUtzmymsdzvhUXmrc210VozYCz4wR9Gfv1ooHMcqzJF0zVNZ8zHF5mnetJol0g7uhhZVwBBSB9NQuG198o4cE8ye8xiCptr8X3OQ",
+                                  description="s9cvMVMzYpfEHHq4AVCPhpFJVl2NE9OohrFLhvABt92YjeNGkeRyZCxDwnyuzPdWfYw482S6oHFsZh9ksnqT",
+                                  transaction_id="KQYa",
+                                  is_modified=True,
+                                  types=["cashback", "expire", "payment"],
+                                  start="2023-08-25T10:38:14.000000Z",
+                                  to="2026-01-09T02:36:33.000000Z",
+                                  next_page_cursor_id="ef9cdccd-f19a-4961-af30-71e90fcf08bc",
+                                  prev_page_cursor_id="da52fd4d-76a8-4c82-a72c-d484de4bda95",
+                                  per_page=427
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_transactions_v2_15(self):
         response = client.send(pp.ListTransactionsV2(
-                                  private_money_id="50889553-41ea-48f9-b67c-adf823ce3d66",
-                                  organization_code="77FEB3qUK-k",
-                                  shop_id="f7dcb836-0149-4c49-8494-4102615ea6f9",
-                                  terminal_id="03df9db8-2356-4845-abb7-3f57ab1da6ae",
-                                  customer_id="a2831318-0cf7-4a5f-8281-2b0b8dcc5fe4",
-                                  customer_name="0msuDaOhM5oqV2xleoqU08aoK4SSRQxNI4HYZa4lL8vlyT5v2fWiN7LjHjlDtCGjTLI9kXm",
-                                  description="3rfByXFrnlgeqVtAvQ0rVDYOMHbm3FgLktaUhgEFTnEcwpkpUTSKxUsOoZPlM9KHj0LscW1P81Qy90jmz1sBL2rdIxI95Aq016ZjJCH7wtIwkByOxgZ1CmhlD7BVFzYE678H",
-                                  transaction_id="grDW8XfB04",
+                                  private_money_id="14935578-5f37-4732-8daf-af8eb59f58e3",
+                                  organization_code="--amCO3FHU--68M6-tQ04mYLv-7Yw",
+                                  shop_id="010e53f6-3199-4844-bc33-2cc24c9fc25c",
+                                  terminal_id="36b28d04-d454-4eee-821f-c314311c68a9",
+                                  customer_id="4888faa6-9a4e-41e3-a1c9-b97624edf9b4",
+                                  customer_name="Cy2qiGNeSDJueWNAF2iLhkB08mWoSEw4Yfnz5e3bjXKldANGzSZe49qKV1rholLnfHAgpNJKDDEjuzSmETPUL6TDRxNmjKWPDEzen9VEh9JKwUlzsxb9tQKSZdMATJHlP3s2aiyvcn73",
+                                  description="2KUYpvpwWJTv2DUcm",
+                                  transaction_id="sWBT",
                                   is_modified=False,
-                                  types=["expire", "cashback", "topup", "payment", "exchange_inflow"],
-                                  start="2020-01-06T20:53:36.000000+09:00",
-                                  to="2016-07-07T03:48:35.000000+09:00",
-                                  next_page_cursor_id="b2b5dc71-463d-4465-8a57-c66ee4676b26",
-                                  prev_page_cursor_id="38d6cf3b-d212-4809-bbf0-f0c0ae65a17c",
-                                  per_page=688
+                                  types=["payment", "cashback", "expire", "exchange_outflow", "topup"],
+                                  start="2025-10-08T09:55:20.000000Z",
+                                  to="2021-07-29T07:10:06.000000Z",
+                                  next_page_cursor_id="a0db3eec-5bbf-4c95-8f0e-96e89e7c004e",
+                                  prev_page_cursor_id="db94a50f-e06f-4452-8555-1b698d3a02ef",
+                                  per_page=230
         ))
         self.assertNotEqual(response.status_code, 400)
 
-    def test_create_topup_transaction_0(self):
-        response = client.send(pp.CreateTopupTransaction(
-                                  "4b9b2098-1ea7-4b7d-94b6-42385c3006aa",
-                                  "1fdefda8-8f90-479c-b3b5-04a02d3d9534",
-                                  "2b085fef-414f-404e-b30c-07caf16f239c"
+    def test_list_bill_transactions_0(self):
+        response = client.send(pp.ListBillTransactions(
         ))
         self.assertNotEqual(response.status_code, 400)
 
-    def test_create_topup_transaction_1(self):
-        response = client.send(pp.CreateTopupTransaction(
-                                  "4b9b2098-1ea7-4b7d-94b6-42385c3006aa",
-                                  "1fdefda8-8f90-479c-b3b5-04a02d3d9534",
-                                  "2b085fef-414f-404e-b30c-07caf16f239c",
-                                  request_id="abb94754-34df-42b7-89d4-35bac4b3ac18"
+    def test_list_bill_transactions_1(self):
+        response = client.send(pp.ListBillTransactions(
+                                  per_page=227
         ))
         self.assertNotEqual(response.status_code, 400)
 
-    def test_create_topup_transaction_2(self):
-        response = client.send(pp.CreateTopupTransaction(
-                                  "4b9b2098-1ea7-4b7d-94b6-42385c3006aa",
-                                  "1fdefda8-8f90-479c-b3b5-04a02d3d9534",
-                                  "2b085fef-414f-404e-b30c-07caf16f239c",
-                                  metadata="{\"key\":\"value\"}",
-                                  request_id="070ae720-ac1f-486c-9d66-9d9f9224f976"
+    def test_list_bill_transactions_2(self):
+        response = client.send(pp.ListBillTransactions(
+                                  prev_page_cursor_id="2a67173e-b942-43a4-ae81-adefee312533",
+                                  per_page=329
         ))
         self.assertNotEqual(response.status_code, 400)
 
-    def test_create_topup_transaction_3(self):
+    def test_list_bill_transactions_3(self):
+        response = client.send(pp.ListBillTransactions(
+                                  next_page_cursor_id="3edd73da-a3af-468e-9d04-ffe87a2c959c",
+                                  prev_page_cursor_id="29f2e505-1bee-4cf9-8e5a-6a354d01fb19",
+                                  per_page=850
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_list_bill_transactions_4(self):
+        response = client.send(pp.ListBillTransactions(
+                                  to="2023-08-03T15:24:11.000000Z",
+                                  next_page_cursor_id="ccbb09bb-df37-4016-b78f-a5d54e3090ab",
+                                  prev_page_cursor_id="d67b2b98-1a30-4bb4-a12c-e9de9b83b890",
+                                  per_page=294
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_list_bill_transactions_5(self):
+        response = client.send(pp.ListBillTransactions(
+                                  start="2025-04-12T09:53:49.000000Z",
+                                  to="2024-05-13T09:34:33.000000Z",
+                                  next_page_cursor_id="39f20a17-71cc-4111-b301-89167d16d33d",
+                                  prev_page_cursor_id="d34cd134-bce8-4a6d-b934-10c36e116eb2",
+                                  per_page=224
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_list_bill_transactions_6(self):
+        response = client.send(pp.ListBillTransactions(
+                                  is_modified=True,
+                                  start="2025-11-05T01:00:16.000000Z",
+                                  to="2023-09-28T21:39:19.000000Z",
+                                  next_page_cursor_id="aa9eba9a-af06-4238-893b-50a8e0abd640",
+                                  prev_page_cursor_id="a31802d7-f60d-4209-ae01-b64337f29b9a",
+                                  per_page=723
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_list_bill_transactions_7(self):
+        response = client.send(pp.ListBillTransactions(
+                                  bill_id="c7adb47c-89e6-4827-8cfa-5a32a83f79ec",
+                                  is_modified=False,
+                                  start="2022-09-04T06:37:11.000000Z",
+                                  to="2023-06-12T03:51:25.000000Z",
+                                  next_page_cursor_id="f2914d65-79fd-4827-af8f-6a2366054429",
+                                  prev_page_cursor_id="c76517f6-5f8f-40e2-bbaf-462a36dbd131",
+                                  per_page=979
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_list_bill_transactions_8(self):
+        response = client.send(pp.ListBillTransactions(
+                                  transaction_id="ed1f2fbf-fcb7-4ecf-b69d-f6ab3af9f151",
+                                  bill_id="bcfe0d4f-f6e7-4e5f-a29e-e398c28ba1dc",
+                                  is_modified=False,
+                                  start="2023-01-28T04:13:11.000000Z",
+                                  to="2025-08-10T09:06:27.000000Z",
+                                  next_page_cursor_id="147a18fa-8770-4887-a314-7b13a99d878b",
+                                  prev_page_cursor_id="cd8be4e1-384c-4c9d-977b-783d92d57578",
+                                  per_page=62
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_list_bill_transactions_9(self):
+        response = client.send(pp.ListBillTransactions(
+                                  description="a2QZma6CRo8nyJO9Y3f9djMgk8QSZwJ1udEIb7zDJ6KZTEk0mDRGqd8jGihF2zo2GN3QYDG6CZS1PVe5LZzi2NmWBluHrzflOytNd3ROmH9nMfAHnX3LOs6P3dxLhDjrt4CFESWJnPCLUxGLtrgoghS3pPHE574eeX1ksH4R2MgyW6z1",
+                                  transaction_id="3b3d5fb4-ab0b-4139-8a42-cc52ae62b05a",
+                                  bill_id="156b07db-3ced-4051-bb98-69ac200a23fe",
+                                  is_modified=True,
+                                  start="2021-08-14T15:17:27.000000Z",
+                                  to="2023-07-17T08:28:01.000000Z",
+                                  next_page_cursor_id="82b0a411-9ae7-461c-977a-6d65e99bbf7c",
+                                  prev_page_cursor_id="71b30fe3-4671-4018-97e4-92bc03e5a2c4",
+                                  per_page=266
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_list_bill_transactions_10(self):
+        response = client.send(pp.ListBillTransactions(
+                                  terminal_id="8d867fd6-f953-4cfd-a1f3-f0f45416faef",
+                                  description="tPVoykbtA6l7WDayqQLAKXyhWYdlIHfSBBKI1KQl4cK6HLesoN7AsxjaX4bkzoW5SSzFCKjOEE829PJZq44v95w5OTBAsM3ixdWcd35lzGg9k8zX5Zx6rdzZ6Kiw60EKpO7FL05ARSiRG2UPRPUxcw9rvtxOfCP20hUm1E2Nlz5V1CO5TSFyNtopqI6bCrDgQTiBz8",
+                                  transaction_id="14fc35e8-a5e0-4e8c-aeef-3970553942ba",
+                                  bill_id="ffae7dec-7465-43a8-97f5-5329b29a42f6",
+                                  is_modified=False,
+                                  start="2024-01-19T21:16:23.000000Z",
+                                  to="2025-12-16T04:08:13.000000Z",
+                                  next_page_cursor_id="e14eb408-acb0-4ee4-ba26-828275476799",
+                                  prev_page_cursor_id="8fa8b2a5-1efa-4ef1-be9a-f283fd6cc291",
+                                  per_page=30
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_list_bill_transactions_11(self):
+        response = client.send(pp.ListBillTransactions(
+                                  customer_name="DmxXKufPIjjJpzSXKPSRMVYMVxniANdM0yy6srRZNC9bYJUFWp4SJDd9Vw0ghvUwHY4GPMgqa4p3NBV6jnDEmNinmBAkCQlWqd4VgtaT7nx9nCCSGOYqsqY3PQB7j8S1LcJM99jV6h5DQ4TL9sXbFiutZ4wFjGxBLsRpox6uXLc6he8Kxv6FPaZ8I6Axiyb",
+                                  terminal_id="953c7749-5f55-4b64-aadf-b0eee008f732",
+                                  description="JlMSQ6V8dRYSFDiggsas4Nm4Pbqn0MLycuAIyd8",
+                                  transaction_id="300ec42e-5054-42ad-9e97-496361c8428f",
+                                  bill_id="b5756b39-0183-4a21-a7b1-b1d9a252e15c",
+                                  is_modified=True,
+                                  start="2021-10-02T10:03:30.000000Z",
+                                  to="2023-01-12T05:28:42.000000Z",
+                                  next_page_cursor_id="28fbba7f-c7c4-49f5-ad10-5e414f41fc00",
+                                  prev_page_cursor_id="c301b430-2442-492a-9526-17c592ddc397",
+                                  per_page=931
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_list_bill_transactions_12(self):
+        response = client.send(pp.ListBillTransactions(
+                                  customer_id="9add4615-170d-412d-9061-95782dcf9706",
+                                  customer_name="u5hz8quH88gYqQC45YQseyms9QyHVorEq6zLZyg3cEPs9bN7e1DJRmWCvXV5f7NFxRTTWOKh4cp2t8rtdj0F82hhuu2d",
+                                  terminal_id="243e16dd-7637-4eb2-bed0-7684f57112bf",
+                                  description="RBNNGTP71wcJLJGkIvTZnRNAv",
+                                  transaction_id="97f2e9b7-b53f-4f84-9eef-d1adea798fe5",
+                                  bill_id="0c1eef51-3f6a-4f55-a5be-5a18c33aa796",
+                                  is_modified=True,
+                                  start="2025-09-06T21:18:25.000000Z",
+                                  to="2024-01-29T07:59:54.000000Z",
+                                  next_page_cursor_id="f8831bdf-3631-40c7-b062-b197a7053e1e",
+                                  prev_page_cursor_id="846ce781-2c5e-4a83-b743-350054bdac60",
+                                  per_page=71
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_list_bill_transactions_13(self):
+        response = client.send(pp.ListBillTransactions(
+                                  shop_id="8ebb431c-9f75-4df2-b86d-d905c91c52e1",
+                                  customer_id="a4b2aa7f-b1af-4f23-8ca4-2a196d8d752a",
+                                  customer_name="HHuXDOcuycPW2WYY40yWZt9",
+                                  terminal_id="758e3893-ae5a-4cea-a482-72c8c80b663f",
+                                  description="qLir6qmCF3zfoEN4hG6jzrPFiN4YTSJ9o4hVc0u6tzaZ3sbYKCNybmAlkaNJiOvuRswwQSmiJco3",
+                                  transaction_id="1963673e-330c-41cb-b72a-00e853d5152a",
+                                  bill_id="1972276a-06bb-491d-b1f0-e9cd0845d1f1",
+                                  is_modified=False,
+                                  start="2022-12-26T07:01:25.000000Z",
+                                  to="2024-01-31T13:21:18.000000Z",
+                                  next_page_cursor_id="4c32a7ee-12ee-4cef-b424-561b0fc1aaca",
+                                  prev_page_cursor_id="6745f3ff-4fcb-474e-a54d-e7327835c544",
+                                  per_page=139
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_list_bill_transactions_14(self):
+        response = client.send(pp.ListBillTransactions(
+                                  organization_code="5uL6-5-kia0-02--8",
+                                  shop_id="ff80bd4f-5cac-4cb3-977a-787bcc034ad9",
+                                  customer_id="b32d57c6-c653-4ac7-99b9-adae48bc8c62",
+                                  customer_name="V5jbNBEz14f9BIpTXI2luGWaGy1CoCYoYmaLr1BLYdgsrsB7nf3z7z76OYqLZhd2VmnwZ1YQAtf2GPfHYeeJWiJLn1TOWVNqKCYgaN6maSZWJn127yVjYZzSkjksojB4PnV9sBfF1BkHf1A87wLQ9bOIRS2WYI5ck8HRSP5FHw4UX4tGWi4N1WpwhPzDe8V1DYdcKn6nAl4cEX71br7jv7ED",
+                                  terminal_id="b740977e-78df-4b6b-b7bb-fed8e8665bce",
+                                  description="6HyKk1SGbd2fzw9nBiKXYeHN7C4dOhcXyEVzhZku2OJwUM0ktk1yse4CdNhZgpKbkXWC5tLFNUhqVPCyC44juCu9OYkti8QhcNElbkx4K7ompotaJBLyz8KN17fLxPU1GvU5oJnH6hOfBgmDSuxOmphkziTG6p4HsLeIcNrFvlQBIX1JBgnrD1yL",
+                                  transaction_id="0183e6c6-0c08-4c6c-a24c-1b80ba703613",
+                                  bill_id="48674ba8-69b5-4911-a9eb-f162943f059c",
+                                  is_modified=False,
+                                  start="2023-05-01T01:29:23.000000Z",
+                                  to="2023-03-30T17:06:36.000000Z",
+                                  next_page_cursor_id="58eec69d-aa20-42bc-9e36-54a9642d70f8",
+                                  prev_page_cursor_id="289b3e09-4355-471a-915f-71adfd827f97",
+                                  per_page=744
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_list_bill_transactions_15(self):
+        response = client.send(pp.ListBillTransactions(
+                                  private_money_id="8454fb78-e21a-4c9f-a689-4735a1f90aa9",
+                                  organization_code="45L4--5wtjozI-W--eh9",
+                                  shop_id="fadd450d-627f-4b83-859a-b7a83dd48b43",
+                                  customer_id="7065e522-5f56-4776-8a8c-fe1516e9430a",
+                                  customer_name="Anqjel2la3rWWdK2ybDtXJiikZzBktm983ksDdKfbC96DBMvuC0QTfx8l2ZZBjyQqeO19KhFrkxiVRAQ6FFjz1wnjIRjO9MofqJJncHBCR1qP1zId4mL",
+                                  terminal_id="cd261880-601f-4fca-83fa-57217045fba6",
+                                  description="HpOgkhaasWI8ELqJwRA62Ghe",
+                                  transaction_id="cdc01918-0e3f-4330-aee5-102a66df1c1e",
+                                  bill_id="1688dab6-6c70-4463-8ed2-03b130d86b3c",
+                                  is_modified=True,
+                                  start="2024-04-22T20:48:23.000000Z",
+                                  to="2021-10-05T04:50:45.000000Z",
+                                  next_page_cursor_id="da70d6ca-df70-42a5-a6f2-4f66078b752f",
+                                  prev_page_cursor_id="a8c90f46-6e44-4cdd-be0a-d0b4cc443507",
+                                  per_page=952
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_topup_transaction_0(self):
+        response = client.send(pp.CreateTopupTransaction(
+                                  "a1fc6e7f-4423-4814-a70e-9bce63b0151d",
+                                  "c53cd34c-7680-4839-9857-ac157f9f6d8d",
+                                  "e2a33bcd-42b6-4189-9c3f-2b88e08dab63"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_topup_transaction_1(self):
+        response = client.send(pp.CreateTopupTransaction(
+                                  "a1fc6e7f-4423-4814-a70e-9bce63b0151d",
+                                  "c53cd34c-7680-4839-9857-ac157f9f6d8d",
+                                  "e2a33bcd-42b6-4189-9c3f-2b88e08dab63",
+                                  request_id="2a3fa0d3-2665-4d91-af6a-08fa343f360b"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_topup_transaction_2(self):
         response = client.send(pp.CreateTopupTransaction(
-                                  "4b9b2098-1ea7-4b7d-94b6-42385c3006aa",
-                                  "1fdefda8-8f90-479c-b3b5-04a02d3d9534",
-                                  "2b085fef-414f-404e-b30c-07caf16f239c",
-                                  description="jHRgsb",
+                                  "a1fc6e7f-4423-4814-a70e-9bce63b0151d",
+                                  "c53cd34c-7680-4839-9857-ac157f9f6d8d",
+                                  "e2a33bcd-42b6-4189-9c3f-2b88e08dab63",
                                   metadata="{\"key\":\"value\"}",
-                                  request_id="cb2ceb6a-14f2-47ef-a158-c68e366d2aab"
+                                  request_id="778e8a1a-3a4f-411c-a024-d2da6ee8c95a"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_topup_transaction_3(self):
+        response = client.send(pp.CreateTopupTransaction(
+                                  "a1fc6e7f-4423-4814-a70e-9bce63b0151d",
+                                  "c53cd34c-7680-4839-9857-ac157f9f6d8d",
+                                  "e2a33bcd-42b6-4189-9c3f-2b88e08dab63",
+                                  description="rLxO3x6r1ViuOnspa8l8OxqMpLrB8ZQmhXHGSVg",
+                                  metadata="{\"key\":\"value\"}",
+                                  request_id="5c19ecd6-e927-403b-8384-2de3672986f3"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_topup_transaction_4(self):
         response = client.send(pp.CreateTopupTransaction(
-                                  "4b9b2098-1ea7-4b7d-94b6-42385c3006aa",
-                                  "1fdefda8-8f90-479c-b3b5-04a02d3d9534",
-                                  "2b085fef-414f-404e-b30c-07caf16f239c",
-                                  point_expires_at="2022-08-02T22:15:07.000000+09:00",
-                                  description="1fxLB1",
+                                  "a1fc6e7f-4423-4814-a70e-9bce63b0151d",
+                                  "c53cd34c-7680-4839-9857-ac157f9f6d8d",
+                                  "e2a33bcd-42b6-4189-9c3f-2b88e08dab63",
+                                  point_expires_at="2025-05-10T03:27:47.000000Z",
+                                  description="OQMdHqZLlv01wGqO",
                                   metadata="{\"key\":\"value\"}",
-                                  request_id="d487cff9-f3e6-4eb5-9112-3064cda241fc"
+                                  request_id="1063889f-ca8c-4d15-a798-f35fcf7b458a"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_topup_transaction_5(self):
         response = client.send(pp.CreateTopupTransaction(
-                                  "4b9b2098-1ea7-4b7d-94b6-42385c3006aa",
-                                  "1fdefda8-8f90-479c-b3b5-04a02d3d9534",
-                                  "2b085fef-414f-404e-b30c-07caf16f239c",
-                                  point_amount=7904,
-                                  point_expires_at="2020-09-12T16:52:14.000000+09:00",
-                                  description="wvhweVkrWRctnJ2TSLmfSkWFb6oLKvNkr7xERwVYEzuAqPS2Yq5Zx72l8Uwb6djbQEnxEVuuBukUKWopaaFtoO5CUO2HA5dwLtiNF6M5",
+                                  "a1fc6e7f-4423-4814-a70e-9bce63b0151d",
+                                  "c53cd34c-7680-4839-9857-ac157f9f6d8d",
+                                  "e2a33bcd-42b6-4189-9c3f-2b88e08dab63",
+                                  point_amount=6254,
+                                  point_expires_at="2022-09-20T19:07:22.000000Z",
+                                  description="FsWbo7bpQq9anT6PszkN335U1t4DYsuiE88p3Hog0k8dxuKgCFI0Qv1brn8ATMTNMMEyVApkaDeYuOtBoCZgc4gwc8RSE7B5wsqfAkho5yO5EQGpb9AHk6UF1UjWUyw97H5Wi0UlM5hWRopq8fm3QjwrUJDS6QIEgbGEOQG1PZ",
                                   metadata="{\"key\":\"value\"}",
-                                  request_id="f1ee1412-40fb-491d-b13a-170163f455a8"
+                                  request_id="3d14e570-d3b7-45e6-aa64-7509fb8f28b9"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_topup_transaction_6(self):
         response = client.send(pp.CreateTopupTransaction(
-                                  "4b9b2098-1ea7-4b7d-94b6-42385c3006aa",
-                                  "1fdefda8-8f90-479c-b3b5-04a02d3d9534",
-                                  "2b085fef-414f-404e-b30c-07caf16f239c",
-                                  money_amount=2401,
-                                  point_amount=8189,
-                                  point_expires_at="2022-10-19T13:39:38.000000+09:00",
-                                  description="AMFoXb9rmaZQXIsaxB2CgIcPvFHqcQFB1JdewR9",
+                                  "a1fc6e7f-4423-4814-a70e-9bce63b0151d",
+                                  "c53cd34c-7680-4839-9857-ac157f9f6d8d",
+                                  "e2a33bcd-42b6-4189-9c3f-2b88e08dab63",
+                                  money_amount=4132,
+                                  point_amount=5147,
+                                  point_expires_at="2020-02-18T23:28:15.000000Z",
+                                  description="zgh1RHHtL55R7YEprCJ0U4QnLZWmGvTqLQwaZ9vOnv67spoRoPKUgWvYVa3Gv9xbfzvgScohGvfvszFZKZ0fsirdyb8N5N4uLXeppDXZ9aq2pYugtiiL7qWoYElTKmZkEzCv7OKUa8NeEnF41",
                                   metadata="{\"key\":\"value\"}",
-                                  request_id="9024ecbb-e800-453b-a6e2-b45d82161f75"
+                                  request_id="87ecba6f-8917-4155-8d57-5c5e4999577d"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_topup_transaction_7(self):
         response = client.send(pp.CreateTopupTransaction(
-                                  "4b9b2098-1ea7-4b7d-94b6-42385c3006aa",
-                                  "1fdefda8-8f90-479c-b3b5-04a02d3d9534",
-                                  "2b085fef-414f-404e-b30c-07caf16f239c",
-                                  bear_point_shop_id="6794b3c7-1610-4089-bb97-fd2d95aa8ed0",
-                                  money_amount=3473,
-                                  point_amount=5609,
-                                  point_expires_at="2021-11-27T08:22:55.000000+09:00",
-                                  description="lh4drGbWvDfmVaNvPs9iu3XzENeNNhWBPj9P6rAeXLgWVKiBaMXABCznkolZF0XVehDsumc383ILCYIvwae0oDTZVM9Vn0NHWZb8ZS9tjcczZ4Gwb0PhYqZgpZBJnGwbDDj",
+                                  "a1fc6e7f-4423-4814-a70e-9bce63b0151d",
+                                  "c53cd34c-7680-4839-9857-ac157f9f6d8d",
+                                  "e2a33bcd-42b6-4189-9c3f-2b88e08dab63",
+                                  bear_point_shop_id="aef5e9d2-9816-49a1-97ea-3e31775ba5f3",
+                                  money_amount=5378,
+                                  point_amount=4246,
+                                  point_expires_at="2024-10-19T16:42:48.000000Z",
+                                  description="tSyQgT1GkRhboXHY39x3Xs6KbKOjUQYLsphxNcJXceDU70KRGU02ETtMe3p5BruF5QOJx8zwWTQtwhgEUQrpqVtFI20RqU84wWVej7KjR7PO79YOuc2btzI2H",
                                   metadata="{\"key\":\"value\"}",
-                                  request_id="457a8c16-41f4-473d-a56a-e67baa506a4f"
+                                  request_id="05d447f6-5889-4ec0-8be1-aec9616e7cf9"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_topup_transaction_with_check_0(self):
         response = client.send(pp.CreateTopupTransactionWithCheck(
-                                  "5dd080a5-a514-4a1f-8868-40feb93b038a",
-                                  "91325879-5260-4a35-8ad4-2d848eace7c5"
+                                  "aa271e93-3db1-4a64-9e52-264b5b9c0875",
+                                  "311e672f-3efa-4c7c-8f6c-c82d560d8c40"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_topup_transaction_with_check_1(self):
+        response = client.send(pp.CreateTopupTransactionWithCheck(
+                                  "aa271e93-3db1-4a64-9e52-264b5b9c0875",
+                                  "311e672f-3efa-4c7c-8f6c-c82d560d8c40",
+                                  request_id="4d3bb591-6d4c-4a7d-8e98-e6a0e2dcc2bd"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_payment_transaction_0(self):
         response = client.send(pp.CreatePaymentTransaction(
-                                  "66b1b6e3-f490-444d-9c3c-7f52a4ee1dbc",
-                                  "4a6f0990-2205-4e7a-bfef-08f7dd62f10a",
-                                  "1070e59d-0123-45bf-a02e-32724a291586",
-                                  9028
+                                  "244073a8-323a-4c4d-af3c-126db0490b64",
+                                  "03faa520-2519-4eab-a014-6a9e853f5fa8",
+                                  "34664fc2-b17d-4c53-9ada-c8725e4d3632",
+                                  3133
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_payment_transaction_1(self):
         response = client.send(pp.CreatePaymentTransaction(
-                                  "66b1b6e3-f490-444d-9c3c-7f52a4ee1dbc",
-                                  "4a6f0990-2205-4e7a-bfef-08f7dd62f10a",
-                                  "1070e59d-0123-45bf-a02e-32724a291586",
-                                  9028,
-                                  request_id="d490a262-3100-4d8b-b6c7-4c1cdbef2619"
+                                  "244073a8-323a-4c4d-af3c-126db0490b64",
+                                  "03faa520-2519-4eab-a014-6a9e853f5fa8",
+                                  "34664fc2-b17d-4c53-9ada-c8725e4d3632",
+                                  3133,
+                                  coupon_id="be7fad32-26e0-4b5f-b0fe-aff815145574"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_payment_transaction_2(self):
         response = client.send(pp.CreatePaymentTransaction(
-                                  "66b1b6e3-f490-444d-9c3c-7f52a4ee1dbc",
-                                  "4a6f0990-2205-4e7a-bfef-08f7dd62f10a",
-                                  "1070e59d-0123-45bf-a02e-32724a291586",
-                                  9028,
+                                  "244073a8-323a-4c4d-af3c-126db0490b64",
+                                  "03faa520-2519-4eab-a014-6a9e853f5fa8",
+                                  "34664fc2-b17d-4c53-9ada-c8725e4d3632",
+                                  3133,
+                                  strategy="point-preferred",
+                                  coupon_id="60833bbf-2170-475a-9325-a46467af0ad1"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_payment_transaction_3(self):
+        response = client.send(pp.CreatePaymentTransaction(
+                                  "244073a8-323a-4c4d-af3c-126db0490b64",
+                                  "03faa520-2519-4eab-a014-6a9e853f5fa8",
+                                  "34664fc2-b17d-4c53-9ada-c8725e4d3632",
+                                  3133,
+                                  request_id="8621d939-8728-400a-8973-c60e3a9aaa5d",
+                                  strategy="point-preferred",
+                                  coupon_id="30b29521-c116-4ea9-b3bc-ba198acc566c"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_payment_transaction_4(self):
+        response = client.send(pp.CreatePaymentTransaction(
+                                  "244073a8-323a-4c4d-af3c-126db0490b64",
+                                  "03faa520-2519-4eab-a014-6a9e853f5fa8",
+                                  "34664fc2-b17d-4c53-9ada-c8725e4d3632",
+                                  3133,
                                   products=[{"jan_code":"abc",
          "name":"name1",
          "unit_price":100,
          "price": 100,
+         "quantity": 1,
          "is_discounted": False,
          "other":"{}"}, {"jan_code":"abc",
          "name":"name1",
          "unit_price":100,
          "price": 100,
+         "quantity": 1,
          "is_discounted": False,
          "other":"{}"}, {"jan_code":"abc",
          "name":"name1",
          "unit_price":100,
          "price": 100,
+         "quantity": 1,
          "is_discounted": False,
          "other":"{}"}, {"jan_code":"abc",
          "name":"name1",
          "unit_price":100,
          "price": 100,
+         "quantity": 1,
          "is_discounted": False,
          "other":"{}"}, {"jan_code":"abc",
          "name":"name1",
          "unit_price":100,
          "price": 100,
+         "quantity": 1,
          "is_discounted": False,
          "other":"{}"}, {"jan_code":"abc",
          "name":"name1",
          "unit_price":100,
          "price": 100,
-         "is_discounted": False,
-         "other":"{}"}, {"jan_code":"abc",
-         "name":"name1",
-         "unit_price":100,
-         "price": 100,
-         "is_discounted": False,
-         "other":"{}"}, {"jan_code":"abc",
-         "name":"name1",
-         "unit_price":100,
-         "price": 100,
-         "is_discounted": False,
-         "other":"{}"}, {"jan_code":"abc",
-         "name":"name1",
-         "unit_price":100,
-         "price": 100,
+         "quantity": 1,
          "is_discounted": False,
          "other":"{}"}],
-                                  request_id="b06d8cdc-54b4-4bed-9248-b320dcf58d8a"
+                                  request_id="d1a36411-3c7b-4d60-9759-acc0a3b2d902",
+                                  strategy="money-only",
+                                  coupon_id="2b59644a-ac21-4648-837e-f820858da72c"
         ))
         self.assertNotEqual(response.status_code, 400)
 
-    def test_create_payment_transaction_3(self):
+    def test_create_payment_transaction_5(self):
         response = client.send(pp.CreatePaymentTransaction(
-                                  "66b1b6e3-f490-444d-9c3c-7f52a4ee1dbc",
-                                  "4a6f0990-2205-4e7a-bfef-08f7dd62f10a",
-                                  "1070e59d-0123-45bf-a02e-32724a291586",
-                                  9028,
+                                  "244073a8-323a-4c4d-af3c-126db0490b64",
+                                  "03faa520-2519-4eab-a014-6a9e853f5fa8",
+                                  "34664fc2-b17d-4c53-9ada-c8725e4d3632",
+                                  3133,
                                   metadata="{\"key\":\"value\"}",
                                   products=[{"jan_code":"abc",
          "name":"name1",
          "unit_price":100,
          "price": 100,
+         "quantity": 1,
          "is_discounted": False,
          "other":"{}"}, {"jan_code":"abc",
          "name":"name1",
          "unit_price":100,
          "price": 100,
+         "quantity": 1,
          "is_discounted": False,
          "other":"{}"}, {"jan_code":"abc",
          "name":"name1",
          "unit_price":100,
          "price": 100,
+         "quantity": 1,
          "is_discounted": False,
          "other":"{}"}, {"jan_code":"abc",
          "name":"name1",
          "unit_price":100,
          "price": 100,
-         "is_discounted": False,
-         "other":"{}"}, {"jan_code":"abc",
-         "name":"name1",
-         "unit_price":100,
-         "price": 100,
-         "is_discounted": False,
-         "other":"{}"}, {"jan_code":"abc",
-         "name":"name1",
-         "unit_price":100,
-         "price": 100,
-         "is_discounted": False,
-         "other":"{}"}, {"jan_code":"abc",
-         "name":"name1",
-         "unit_price":100,
-         "price": 100,
+         "quantity": 1,
          "is_discounted": False,
          "other":"{}"}],
-                                  request_id="38ea6024-15d4-4d61-8a86-423af8ea204f"
+                                  request_id="28b295dd-94bb-46c1-ac09-7f79237f08ec",
+                                  strategy="point-preferred",
+                                  coupon_id="db700bf0-ca56-413e-bd36-eff82c8cd9d7"
         ))
         self.assertNotEqual(response.status_code, 400)
 
-    def test_create_payment_transaction_4(self):
+    def test_create_payment_transaction_6(self):
         response = client.send(pp.CreatePaymentTransaction(
-                                  "66b1b6e3-f490-444d-9c3c-7f52a4ee1dbc",
-                                  "4a6f0990-2205-4e7a-bfef-08f7dd62f10a",
-                                  "1070e59d-0123-45bf-a02e-32724a291586",
-                                  9028,
-                                  description="MMolvbDp36ZS9Ve1qo3bvmXucCaFZQN2ap2j3Mr8o8HkBWUUKfQKZC3BSMS3hsgpJcO",
+                                  "244073a8-323a-4c4d-af3c-126db0490b64",
+                                  "03faa520-2519-4eab-a014-6a9e853f5fa8",
+                                  "34664fc2-b17d-4c53-9ada-c8725e4d3632",
+                                  3133,
+                                  description="t7f2oLFlgp2lLhVbHghg4lZSVxXqYiDQPFv2xIXmI4PlPvyiodipyOhBLvJd18F7msVClYIZ6Bq4ZCm153pAwidsKM1ZphpLhv7NIoqmlJpzKOYIsRtFF9xx8",
                                   metadata="{\"key\":\"value\"}",
                                   products=[{"jan_code":"abc",
          "name":"name1",
          "unit_price":100,
          "price": 100,
+         "quantity": 1,
          "is_discounted": False,
          "other":"{}"}, {"jan_code":"abc",
          "name":"name1",
          "unit_price":100,
          "price": 100,
+         "quantity": 1,
          "is_discounted": False,
          "other":"{}"}, {"jan_code":"abc",
          "name":"name1",
          "unit_price":100,
          "price": 100,
+         "quantity": 1,
          "is_discounted": False,
          "other":"{}"}, {"jan_code":"abc",
          "name":"name1",
          "unit_price":100,
          "price": 100,
+         "quantity": 1,
          "is_discounted": False,
          "other":"{}"}, {"jan_code":"abc",
          "name":"name1",
          "unit_price":100,
          "price": 100,
+         "quantity": 1,
          "is_discounted": False,
          "other":"{}"}, {"jan_code":"abc",
          "name":"name1",
          "unit_price":100,
          "price": 100,
+         "quantity": 1,
          "is_discounted": False,
          "other":"{}"}, {"jan_code":"abc",
          "name":"name1",
          "unit_price":100,
          "price": 100,
+         "quantity": 1,
          "is_discounted": False,
          "other":"{}"}, {"jan_code":"abc",
          "name":"name1",
          "unit_price":100,
          "price": 100,
+         "quantity": 1,
          "is_discounted": False,
          "other":"{}"}],
-                                  request_id="9ac4e641-90e4-45b6-958c-8f6f147822fc"
+                                  request_id="f5ac7b5f-1240-4c83-9a11-a5c898483ce3",
+                                  strategy="point-preferred",
+                                  coupon_id="96b48faa-dd02-47da-bc58-d820d4f8860b"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_payment_transaction_with_bill_0(self):
+        response = client.send(pp.CreatePaymentTransactionWithBill(
+                                  "7b86da9c-b84e-41dd-9133-265835ca89e1",
+                                  "11f2f128-b0b7-44a5-b0a4-0b6fa268acb7"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_payment_transaction_with_bill_1(self):
+        response = client.send(pp.CreatePaymentTransactionWithBill(
+                                  "7b86da9c-b84e-41dd-9133-265835ca89e1",
+                                  "11f2f128-b0b7-44a5-b0a4-0b6fa268acb7",
+                                  strategy="point-preferred"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_payment_transaction_with_bill_2(self):
+        response = client.send(pp.CreatePaymentTransactionWithBill(
+                                  "7b86da9c-b84e-41dd-9133-265835ca89e1",
+                                  "11f2f128-b0b7-44a5-b0a4-0b6fa268acb7",
+                                  request_id="71d5b7ee-e6a2-4b8f-96bc-8980c8e54946",
+                                  strategy="point-preferred"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_payment_transaction_with_bill_3(self):
+        response = client.send(pp.CreatePaymentTransactionWithBill(
+                                  "7b86da9c-b84e-41dd-9133-265835ca89e1",
+                                  "11f2f128-b0b7-44a5-b0a4-0b6fa268acb7",
+                                  metadata="{\"key\":\"value\"}",
+                                  request_id="f0662458-d0d5-42d2-9920-0529b41152eb",
+                                  strategy="point-preferred"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_cpm_transaction_0(self):
         response = client.send(pp.CreateCpmTransaction(
-                                  "cE4mBLmKXcPupi77r56oXC",
-                                  "69188c4e-2113-4363-8325-43334faeaae4",
-                                  4786.0
+                                  "Ccagg1x0DCy4shXKR7nTWC",
+                                  "eb33f579-4dc9-4274-b347-6e8b9361b3f2",
+                                  3975.0
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_cpm_transaction_1(self):
         response = client.send(pp.CreateCpmTransaction(
-                                  "cE4mBLmKXcPupi77r56oXC",
-                                  "69188c4e-2113-4363-8325-43334faeaae4",
-                                  4786.0,
-                                  request_id="7e2d12c6-0dcb-477e-a5d4-fa5c2e1d0998"
+                                  "Ccagg1x0DCy4shXKR7nTWC",
+                                  "eb33f579-4dc9-4274-b347-6e8b9361b3f2",
+                                  3975.0,
+                                  strategy="point-preferred"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_cpm_transaction_2(self):
         response = client.send(pp.CreateCpmTransaction(
-                                  "cE4mBLmKXcPupi77r56oXC",
-                                  "69188c4e-2113-4363-8325-43334faeaae4",
-                                  4786.0,
+                                  "Ccagg1x0DCy4shXKR7nTWC",
+                                  "eb33f579-4dc9-4274-b347-6e8b9361b3f2",
+                                  3975.0,
+                                  request_id="2fb143d5-b993-43d1-920c-7769fd077b79",
+                                  strategy="money-only"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_cpm_transaction_3(self):
+        response = client.send(pp.CreateCpmTransaction(
+                                  "Ccagg1x0DCy4shXKR7nTWC",
+                                  "eb33f579-4dc9-4274-b347-6e8b9361b3f2",
+                                  3975.0,
                                   products=[{"jan_code":"abc",
          "name":"name1",
          "unit_price":100,
          "price": 100,
+         "quantity": 1,
          "is_discounted": False,
          "other":"{}"}, {"jan_code":"abc",
          "name":"name1",
          "unit_price":100,
          "price": 100,
+         "quantity": 1,
          "is_discounted": False,
          "other":"{}"}, {"jan_code":"abc",
          "name":"name1",
          "unit_price":100,
          "price": 100,
-         "is_discounted": False,
-         "other":"{}"}, {"jan_code":"abc",
-         "name":"name1",
-         "unit_price":100,
-         "price": 100,
-         "is_discounted": False,
-         "other":"{}"}, {"jan_code":"abc",
-         "name":"name1",
-         "unit_price":100,
-         "price": 100,
-         "is_discounted": False,
-         "other":"{}"}, {"jan_code":"abc",
-         "name":"name1",
-         "unit_price":100,
-         "price": 100,
-         "is_discounted": False,
-         "other":"{}"}, {"jan_code":"abc",
-         "name":"name1",
-         "unit_price":100,
-         "price": 100,
-         "is_discounted": False,
-         "other":"{}"}, {"jan_code":"abc",
-         "name":"name1",
-         "unit_price":100,
-         "price": 100,
-         "is_discounted": False,
-         "other":"{}"}, {"jan_code":"abc",
-         "name":"name1",
-         "unit_price":100,
-         "price": 100,
-         "is_discounted": False,
-         "other":"{}"}, {"jan_code":"abc",
-         "name":"name1",
-         "unit_price":100,
-         "price": 100,
+         "quantity": 1,
          "is_discounted": False,
          "other":"{}"}],
-                                  request_id="808d1e8e-3cc7-48b7-b0ca-c83dbd739c4d"
+                                  request_id="b18e12e3-9b6d-4af3-9cba-a71d869e847c",
+                                  strategy="money-only"
         ))
         self.assertNotEqual(response.status_code, 400)
 
-    def test_create_cpm_transaction_3(self):
+    def test_create_cpm_transaction_4(self):
         response = client.send(pp.CreateCpmTransaction(
-                                  "cE4mBLmKXcPupi77r56oXC",
-                                  "69188c4e-2113-4363-8325-43334faeaae4",
-                                  4786.0,
+                                  "Ccagg1x0DCy4shXKR7nTWC",
+                                  "eb33f579-4dc9-4274-b347-6e8b9361b3f2",
+                                  3975.0,
                                   metadata="{\"key\":\"value\"}",
                                   products=[{"jan_code":"abc",
          "name":"name1",
          "unit_price":100,
          "price": 100,
+         "quantity": 1,
          "is_discounted": False,
          "other":"{}"}, {"jan_code":"abc",
          "name":"name1",
          "unit_price":100,
          "price": 100,
+         "quantity": 1,
          "is_discounted": False,
-         "other":"{}"}, {"jan_code":"abc",
-         "name":"name1",
-         "unit_price":100,
-         "price": 100,
-         "is_discounted": False,
-         "other":"{}"}, {"jan_code":"abc",
+         "other":"{}"}],
+                                  request_id="4b3fafb8-9781-46d4-b261-ddacb933a947",
+                                  strategy="point-preferred"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_cpm_transaction_5(self):
+        response = client.send(pp.CreateCpmTransaction(
+                                  "Ccagg1x0DCy4shXKR7nTWC",
+                                  "eb33f579-4dc9-4274-b347-6e8b9361b3f2",
+                                  3975.0,
+                                  description="0PP6tnqHnuoUILOizvfJbTrh0kbVP56HQVtzlq6MKoBezSZGJZ1h8km3mkAPAZ0UMnnwlo100h7H4BT2IdLeJZDTCEki4ZW2q7YUbIlt759XkPd0Pd9Lm5F7XmpoqfPm",
+                                  metadata="{\"key\":\"value\"}",
+                                  products=[{"jan_code":"abc",
          "name":"name1",
          "unit_price":100,
          "price": 100,
+         "quantity": 1,
          "is_discounted": False,
          "other":"{}"}, {"jan_code":"abc",
          "name":"name1",
          "unit_price":100,
          "price": 100,
+         "quantity": 1,
          "is_discounted": False,
          "other":"{}"}, {"jan_code":"abc",
          "name":"name1",
          "unit_price":100,
          "price": 100,
+         "quantity": 1,
          "is_discounted": False,
          "other":"{}"}, {"jan_code":"abc",
          "name":"name1",
          "unit_price":100,
          "price": 100,
+         "quantity": 1,
          "is_discounted": False,
          "other":"{}"}, {"jan_code":"abc",
          "name":"name1",
          "unit_price":100,
          "price": 100,
+         "quantity": 1,
          "is_discounted": False,
          "other":"{}"}, {"jan_code":"abc",
          "name":"name1",
          "unit_price":100,
          "price": 100,
-         "is_discounted": False,
-         "other":"{}"}],
-                                  request_id="ba2c2be2-340e-4b01-921c-5988aceb9053"
-        ))
-        self.assertNotEqual(response.status_code, 400)
-
-    def test_create_cpm_transaction_4(self):
-        response = client.send(pp.CreateCpmTransaction(
-                                  "cE4mBLmKXcPupi77r56oXC",
-                                  "69188c4e-2113-4363-8325-43334faeaae4",
-                                  4786.0,
-                                  description="mw5RMuvJN6cdbvg50QHlnDydRn68KboUvDsNqKoorksWBQ398rR59EiVvlwAljCUfIeXX8HLaAA7O7c9AzboPOcXU3N4H4mDJ",
-                                  metadata="{\"key\":\"value\"}",
-                                  products=[{"jan_code":"abc",
-         "name":"name1",
-         "unit_price":100,
-         "price": 100,
+         "quantity": 1,
          "is_discounted": False,
          "other":"{}"}, {"jan_code":"abc",
          "name":"name1",
          "unit_price":100,
          "price": 100,
+         "quantity": 1,
          "is_discounted": False,
          "other":"{}"}, {"jan_code":"abc",
          "name":"name1",
          "unit_price":100,
          "price": 100,
+         "quantity": 1,
          "is_discounted": False,
          "other":"{}"}, {"jan_code":"abc",
          "name":"name1",
          "unit_price":100,
          "price": 100,
+         "quantity": 1,
          "is_discounted": False,
          "other":"{}"}, {"jan_code":"abc",
          "name":"name1",
          "unit_price":100,
          "price": 100,
+         "quantity": 1,
          "is_discounted": False,
          "other":"{}"}],
-                                  request_id="353709dd-b35b-4569-8024-fa4bb00b0e71"
+                                  request_id="4394d472-1b0d-4a61-a4c7-da5661d36a8f",
+                                  strategy="point-preferred"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_transaction_with_cashtray_0(self):
+        response = client.send(pp.CreateTransactionWithCashtray(
+                                  "2a2cccbd-e9f3-49fc-8c4a-5515ed340ee9",
+                                  "97eacdf1-4c08-4589-bb27-b262bc8c30ba"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_transaction_with_cashtray_1(self):
+        response = client.send(pp.CreateTransactionWithCashtray(
+                                  "2a2cccbd-e9f3-49fc-8c4a-5515ed340ee9",
+                                  "97eacdf1-4c08-4589-bb27-b262bc8c30ba",
+                                  request_id="079825fc-1c51-461c-b34d-d2d1e93012a1"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_transaction_with_cashtray_2(self):
+        response = client.send(pp.CreateTransactionWithCashtray(
+                                  "2a2cccbd-e9f3-49fc-8c4a-5515ed340ee9",
+                                  "97eacdf1-4c08-4589-bb27-b262bc8c30ba",
+                                  strategy="point-preferred",
+                                  request_id="56b4ad04-b2d2-462f-a439-1b43eb7c9794"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_transfer_transaction_0(self):
         response = client.send(pp.CreateTransferTransaction(
-                                  "579126f3-0f29-45ad-a048-4009f35287c2",
-                                  "2e2195b9-fa97-433b-9ad0-1dad04e0857d",
-                                  "55aab81a-51ca-4470-acf1-631f9bf8851e",
-                                  6914.0
+                                  "3212ad8b-2980-467c-a2fe-d81989da56aa",
+                                  "ce78edbe-5684-452e-acf4-a8fb7b2377d8",
+                                  "5c3b99ec-7cc7-449f-b6dd-152537188d81",
+                                  3710.0
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_transfer_transaction_1(self):
         response = client.send(pp.CreateTransferTransaction(
-                                  "579126f3-0f29-45ad-a048-4009f35287c2",
-                                  "2e2195b9-fa97-433b-9ad0-1dad04e0857d",
-                                  "55aab81a-51ca-4470-acf1-631f9bf8851e",
-                                  6914.0,
-                                  request_id="aa555288-f7fb-4168-9a4d-d822fea51059"
+                                  "3212ad8b-2980-467c-a2fe-d81989da56aa",
+                                  "ce78edbe-5684-452e-acf4-a8fb7b2377d8",
+                                  "5c3b99ec-7cc7-449f-b6dd-152537188d81",
+                                  3710.0,
+                                  request_id="d65c4561-4107-4668-8ee3-e16681c351f4"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_transfer_transaction_2(self):
         response = client.send(pp.CreateTransferTransaction(
-                                  "579126f3-0f29-45ad-a048-4009f35287c2",
-                                  "2e2195b9-fa97-433b-9ad0-1dad04e0857d",
-                                  "55aab81a-51ca-4470-acf1-631f9bf8851e",
-                                  6914.0,
-                                  description="aIB",
-                                  request_id="3f25a9e3-aa88-4e5d-916a-8b8e11624fb7"
+                                  "3212ad8b-2980-467c-a2fe-d81989da56aa",
+                                  "ce78edbe-5684-452e-acf4-a8fb7b2377d8",
+                                  "5c3b99ec-7cc7-449f-b6dd-152537188d81",
+                                  3710.0,
+                                  description="2PrlsKWxGtQj4OhVmQAfFvVtR4Fr5En7ms3KrOq6LmEP7tafjyhKgvwh227cUJMuQ1t83oitBAmKCKeNp7Z6KeHafoOKYuUs7zf9dIsiva1vYlz4sIXfB3ep9eHnNy54z9YZjsWtY1WGlubcf8poH65gFI1eD4xOb3KkBBLymzX1iKABzsa",
+                                  request_id="c1a6bd6c-76d1-443f-a839-7165e1773108"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_transfer_transaction_3(self):
         response = client.send(pp.CreateTransferTransaction(
-                                  "579126f3-0f29-45ad-a048-4009f35287c2",
-                                  "2e2195b9-fa97-433b-9ad0-1dad04e0857d",
-                                  "55aab81a-51ca-4470-acf1-631f9bf8851e",
-                                  6914.0,
+                                  "3212ad8b-2980-467c-a2fe-d81989da56aa",
+                                  "ce78edbe-5684-452e-acf4-a8fb7b2377d8",
+                                  "5c3b99ec-7cc7-449f-b6dd-152537188d81",
+                                  3710.0,
                                   metadata="{\"key\":\"value\"}",
-                                  description="9HnlNHLuA0aOdVgj6K1GxL1yIWWOf6rndacFLJTT1b61igwFwXc9Xw81AcLgJ7HUPLZ2JY3PzdziozZN0eUlnWAmEdaqY8pJTyG58WWoVkTIofZ63ZHIa2ZaoOg0V0uaqelttkE7ehROL4XrOdkUWUyHCGGZhBjhjuTKoJ3qmoFsOI4faRjWQ8",
-                                  request_id="064416e7-5085-495b-930e-ee4ba9e6144f"
+                                  description="t3sJPwGPZVdfeHb6D60qrRKjcydAgQf1k",
+                                  request_id="783c8b6a-bf2c-49e7-b985-d26ca216db3e"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_exchange_transaction_0(self):
         response = client.send(pp.CreateExchangeTransaction(
-                                  "ae6b2c00-a58b-451e-80e8-efcbe62ff98b",
-                                  "c70c7399-c50f-451f-b9a5-76980bff8402",
-                                  "cb5df075-f585-4254-b41d-83a1ad0abf60",
-                                  6825.0
+                                  "1bb9e055-507d-44c4-9420-a54b3ef84e7c",
+                                  "005ebf3c-82b4-406a-a83e-644a03e00e48",
+                                  "8ca99912-d430-436a-9a41-c66a29d826ce",
+                                  5208
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_exchange_transaction_1(self):
         response = client.send(pp.CreateExchangeTransaction(
-                                  "ae6b2c00-a58b-451e-80e8-efcbe62ff98b",
-                                  "c70c7399-c50f-451f-b9a5-76980bff8402",
-                                  "cb5df075-f585-4254-b41d-83a1ad0abf60",
-                                  6825.0,
-                                  request_id="837cbbb5-b318-4585-8112-2a26c7e8fe9f"
+                                  "1bb9e055-507d-44c4-9420-a54b3ef84e7c",
+                                  "005ebf3c-82b4-406a-a83e-644a03e00e48",
+                                  "8ca99912-d430-436a-9a41-c66a29d826ce",
+                                  5208,
+                                  request_id="4f5a0c99-2317-4c85-a997-2b312d0b669b"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_exchange_transaction_2(self):
         response = client.send(pp.CreateExchangeTransaction(
-                                  "ae6b2c00-a58b-451e-80e8-efcbe62ff98b",
-                                  "c70c7399-c50f-451f-b9a5-76980bff8402",
-                                  "cb5df075-f585-4254-b41d-83a1ad0abf60",
-                                  6825.0,
-                                  description="9dHqyzQZgDiWvj8etzcFhDXwcbaPJFYUtWSDUUOzA6JdRqRnPGGmxcvLiruhnUYA2evPNgfEtt9VoXY8Zbi4bO3aVrBDzVdWXtFy5mPY7A1qrS8dHstlQrZdGZnteTqjTP7dz4MDySQpvknUff9KCWQ",
-                                  request_id="e5b8a8e3-6709-4859-bfbc-c71a274d5f4a"
+                                  "1bb9e055-507d-44c4-9420-a54b3ef84e7c",
+                                  "005ebf3c-82b4-406a-a83e-644a03e00e48",
+                                  "8ca99912-d430-436a-9a41-c66a29d826ce",
+                                  5208,
+                                  description="ZH6MoDDkoySCPKncEWYebt4RUGRqT3wcuceySCabxrgTXSxZbg1Ud9jBS9CQqv6T7eIQXHJd8SnpNPnO39WNWvjXlHUhCIHkbLQ7KL6y3Sdoxdn1tpYM1z5XMrmRY7bQCW9sPYWAKIaPAnlgG8mho7qKjeP1Vs1el3",
+                                  request_id="a65a88f4-3f7c-4e56-9844-bd85a99c4eed"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_bulk_create_transaction_0(self):
         response = client.send(pp.BulkCreateTransaction(
-                                  "FvGq64q",
-                                  "mrZJcpF",
-                                  "iWZHeIfQdHdvs4v2aUitPGe5J3m0ryc2OEvF"
+                                  "z0qcHqLIsXtLIzc5kRp3W",
+                                  "nRoU2x23",
+                                  "XKfAMBShU6I6qbRRo0KsKQjbIFpDLYbMMvlh"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_bulk_create_transaction_1(self):
         response = client.send(pp.BulkCreateTransaction(
-                                  "FvGq64q",
-                                  "mrZJcpF",
-                                  "iWZHeIfQdHdvs4v2aUitPGe5J3m0ryc2OEvF",
-                                  private_money_id="542b6c58-1d38-459d-97fa-fe107125e67a"
+                                  "z0qcHqLIsXtLIzc5kRp3W",
+                                  "nRoU2x23",
+                                  "XKfAMBShU6I6qbRRo0KsKQjbIFpDLYbMMvlh",
+                                  callback_url="https://9JCT1xGc.example.com"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_bulk_create_transaction_2(self):
         response = client.send(pp.BulkCreateTransaction(
-                                  "FvGq64q",
-                                  "mrZJcpF",
-                                  "iWZHeIfQdHdvs4v2aUitPGe5J3m0ryc2OEvF",
-                                  description="H3wIxddmLq7zZNIbWwSHwKCgXCSNnukUNKPot1qoYiOk2cFGGn09uTba138P32btAcZSker4bwN5IYLm99wEVRQ8sJxsInHOegu4ueAVfQ8nRhLcha2zRRyQ",
-                                  private_money_id="4c1250ec-21ea-46b7-b31f-70fea16b41aa"
+                                  "z0qcHqLIsXtLIzc5kRp3W",
+                                  "nRoU2x23",
+                                  "XKfAMBShU6I6qbRRo0KsKQjbIFpDLYbMMvlh",
+                                  private_money_id="925fcb51-6acc-4224-be7f-f552d3257a49",
+                                  callback_url="https://yKzcfWhC.example.com"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_bulk_create_transaction_3(self):
+        response = client.send(pp.BulkCreateTransaction(
+                                  "z0qcHqLIsXtLIzc5kRp3W",
+                                  "nRoU2x23",
+                                  "XKfAMBShU6I6qbRRo0KsKQjbIFpDLYbMMvlh",
+                                  description="zi1Z8",
+                                  private_money_id="2d8c780b-e19f-463c-af9e-6d8731a4ef39",
+                                  callback_url="https://pSvPCqCp.example.com"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_get_transaction_0(self):
         response = client.send(pp.GetTransaction(
-                                  "da124937-e649-4c71-982a-a6e301d6ef86"
+                                  "1b5c4179-22cc-453c-bef9-a39a42ccb65a"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_refund_transaction_0(self):
         response = client.send(pp.RefundTransaction(
-                                  "62bfd79c-c5c6-48bb-be08-8badf5722a1e"
+                                  "2212eff1-43b5-47fd-b0e6-c1918aae3510"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_refund_transaction_1(self):
         response = client.send(pp.RefundTransaction(
-                                  "62bfd79c-c5c6-48bb-be08-8badf5722a1e",
-                                  returning_point_expires_at="2023-02-22T09:28:07.000000+09:00"
+                                  "2212eff1-43b5-47fd-b0e6-c1918aae3510",
+                                  returning_point_expires_at="2022-09-26T22:36:35.000000Z"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_refund_transaction_2(self):
         response = client.send(pp.RefundTransaction(
-                                  "62bfd79c-c5c6-48bb-be08-8badf5722a1e",
-                                  description="0ufgYUkqe3kskveA2n2lBOE9H5VVR8QU7QjrIemlNkbreYYQh0DpuFWTXBEy8Kcs0g4R",
-                                  returning_point_expires_at="2022-07-14T07:05:27.000000+09:00"
+                                  "2212eff1-43b5-47fd-b0e6-c1918aae3510",
+                                  description="joNHBAUn0qZzCUWIZlu3nVCPUHg3HpQOkzK7LlGZ5l2cQL9XINJ3Yd9vs5R5vReMbbVX8HS4JwKvfQBXbwG5FfObbKUS2wO8JUS6TcMNwfudd0OcDN26",
+                                  returning_point_expires_at="2020-05-23T02:38:20.000000Z"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_get_transaction_by_request_id_0(self):
         response = client.send(pp.GetTransactionByRequestId(
-                                  "07696302-af43-4e8a-9aca-20634c6a4d1d"
+                                  "c8abf1fb-bc08-446b-97c5-f8abaf064dda"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_external_transaction_0(self):
         response = client.send(pp.CreateExternalTransaction(
-                                  "6699706b-410e-43ca-a36e-330eccec726b",
-                                  "262b2a8f-f5fb-4076-8097-38383791f262",
-                                  "92b16c33-0b6c-43e0-9bfe-faa6606c8e84",
-                                  2437
+                                  "a04ecb2d-c1ce-4a4a-98f4-e23c74e7b1e6",
+                                  "d54dc704-c8f6-484c-acba-aafa55f24302",
+                                  "0d76909d-f600-42a0-95d4-654dc4e31b4d",
+                                  5762
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_external_transaction_1(self):
         response = client.send(pp.CreateExternalTransaction(
-                                  "6699706b-410e-43ca-a36e-330eccec726b",
-                                  "262b2a8f-f5fb-4076-8097-38383791f262",
-                                  "92b16c33-0b6c-43e0-9bfe-faa6606c8e84",
-                                  2437,
-                                  request_id="65e2794f-510c-497b-a41b-1fbde5317529"
+                                  "a04ecb2d-c1ce-4a4a-98f4-e23c74e7b1e6",
+                                  "d54dc704-c8f6-484c-acba-aafa55f24302",
+                                  "0d76909d-f600-42a0-95d4-654dc4e31b4d",
+                                  5762,
+                                  done_at="2020-10-08T11:54:38.000000Z"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_external_transaction_2(self):
         response = client.send(pp.CreateExternalTransaction(
-                                  "6699706b-410e-43ca-a36e-330eccec726b",
-                                  "262b2a8f-f5fb-4076-8097-38383791f262",
-                                  "92b16c33-0b6c-43e0-9bfe-faa6606c8e84",
-                                  2437,
-                                  products=[],
-                                  request_id="80129708-8e2d-48ea-9ddb-957e3e63c5a5"
+                                  "a04ecb2d-c1ce-4a4a-98f4-e23c74e7b1e6",
+                                  "d54dc704-c8f6-484c-acba-aafa55f24302",
+                                  "0d76909d-f600-42a0-95d4-654dc4e31b4d",
+                                  5762,
+                                  request_id="e557ebab-23be-4ad6-bd1a-390370abb39c",
+                                  done_at="2025-08-20T03:03:20.000000Z"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_external_transaction_3(self):
         response = client.send(pp.CreateExternalTransaction(
-                                  "6699706b-410e-43ca-a36e-330eccec726b",
-                                  "262b2a8f-f5fb-4076-8097-38383791f262",
-                                  "92b16c33-0b6c-43e0-9bfe-faa6606c8e84",
-                                  2437,
-                                  metadata="{\"key\":\"value\"}",
+                                  "a04ecb2d-c1ce-4a4a-98f4-e23c74e7b1e6",
+                                  "d54dc704-c8f6-484c-acba-aafa55f24302",
+                                  "0d76909d-f600-42a0-95d4-654dc4e31b4d",
+                                  5762,
                                   products=[{"jan_code":"abc",
          "name":"name1",
          "unit_price":100,
          "price": 100,
+         "quantity": 1,
          "is_discounted": False,
          "other":"{}"}, {"jan_code":"abc",
          "name":"name1",
          "unit_price":100,
          "price": 100,
+         "quantity": 1,
          "is_discounted": False,
          "other":"{}"}, {"jan_code":"abc",
          "name":"name1",
          "unit_price":100,
          "price": 100,
+         "quantity": 1,
          "is_discounted": False,
          "other":"{}"}, {"jan_code":"abc",
          "name":"name1",
          "unit_price":100,
          "price": 100,
+         "quantity": 1,
          "is_discounted": False,
          "other":"{}"}, {"jan_code":"abc",
          "name":"name1",
          "unit_price":100,
          "price": 100,
+         "quantity": 1,
          "is_discounted": False,
          "other":"{}"}, {"jan_code":"abc",
          "name":"name1",
          "unit_price":100,
          "price": 100,
+         "quantity": 1,
          "is_discounted": False,
          "other":"{}"}, {"jan_code":"abc",
          "name":"name1",
          "unit_price":100,
          "price": 100,
+         "quantity": 1,
          "is_discounted": False,
          "other":"{}"}, {"jan_code":"abc",
          "name":"name1",
          "unit_price":100,
          "price": 100,
+         "quantity": 1,
          "is_discounted": False,
          "other":"{}"}],
-                                  request_id="690fa3ad-e25a-4b53-9a69-767351df754b"
+                                  request_id="3ec366bc-895b-41bf-b615-74334a2e3d49",
+                                  done_at="2021-03-03T02:34:54.000000Z"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_external_transaction_4(self):
         response = client.send(pp.CreateExternalTransaction(
-                                  "6699706b-410e-43ca-a36e-330eccec726b",
-                                  "262b2a8f-f5fb-4076-8097-38383791f262",
-                                  "92b16c33-0b6c-43e0-9bfe-faa6606c8e84",
-                                  2437,
-                                  description="JGtLxfbPFfaIRWKNMj5dtiKnG8zX8tvWqvm0QmTuUJdqTxvEdTrlIkQGkGEpBmPu4",
+                                  "a04ecb2d-c1ce-4a4a-98f4-e23c74e7b1e6",
+                                  "d54dc704-c8f6-484c-acba-aafa55f24302",
+                                  "0d76909d-f600-42a0-95d4-654dc4e31b4d",
+                                  5762,
                                   metadata="{\"key\":\"value\"}",
                                   products=[{"jan_code":"abc",
          "name":"name1",
          "unit_price":100,
          "price": 100,
+         "quantity": 1,
          "is_discounted": False,
          "other":"{}"}, {"jan_code":"abc",
          "name":"name1",
          "unit_price":100,
          "price": 100,
+         "quantity": 1,
          "is_discounted": False,
-         "other":"{}"}, {"jan_code":"abc",
-         "name":"name1",
-         "unit_price":100,
-         "price": 100,
-         "is_discounted": False,
-         "other":"{}"}, {"jan_code":"abc",
-         "name":"name1",
-         "unit_price":100,
-         "price": 100,
-         "is_discounted": False,
-         "other":"{}"}, {"jan_code":"abc",
-         "name":"name1",
-         "unit_price":100,
-         "price": 100,
-         "is_discounted": False,
-         "other":"{}"}, {"jan_code":"abc",
-         "name":"name1",
-         "unit_price":100,
-         "price": 100,
-         "is_discounted": False,
-         "other":"{}"}, {"jan_code":"abc",
+         "other":"{}"}],
+                                  request_id="78bf0bbe-9935-471c-a6b5-a7b4c16e39bb",
+                                  done_at="2025-05-19T20:23:53.000000Z"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_external_transaction_5(self):
+        response = client.send(pp.CreateExternalTransaction(
+                                  "a04ecb2d-c1ce-4a4a-98f4-e23c74e7b1e6",
+                                  "d54dc704-c8f6-484c-acba-aafa55f24302",
+                                  "0d76909d-f600-42a0-95d4-654dc4e31b4d",
+                                  5762,
+                                  description="1Ph3OUBAsVaG6TxK3slQw2Vv1qEnKcaw1pz9vX015UD9qqTdXnkHVwtuWRPDBo28vDsYr2EOFy",
+                                  metadata="{\"key\":\"value\"}",
+                                  products=[{"jan_code":"abc",
          "name":"name1",
          "unit_price":100,
          "price": 100,
+         "quantity": 1,
          "is_discounted": False,
          "other":"{}"}, {"jan_code":"abc",
          "name":"name1",
          "unit_price":100,
          "price": 100,
+         "quantity": 1,
          "is_discounted": False,
          "other":"{}"}],
-                                  request_id="30d75c89-25bb-4deb-a7f1-509062af654f"
+                                  request_id="d4819a9a-024b-47f0-8370-ef49bbabb00a",
+                                  done_at="2021-04-09T08:34:02.000000Z"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_refund_external_transaction_0(self):
         response = client.send(pp.RefundExternalTransaction(
-                                  "84cf16a2-3d66-4e04-9885-aa03d2c00a45"
+                                  "86dc273c-0117-4f5e-9a7e-9c58f454603b"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_refund_external_transaction_1(self):
         response = client.send(pp.RefundExternalTransaction(
-                                  "84cf16a2-3d66-4e04-9885-aa03d2c00a45",
-                                  description="l5C8v6PzPZ7WYdNdFH0K2AD1TKPyYWlsuXOaI"
+                                  "86dc273c-0117-4f5e-9a7e-9c58f454603b",
+                                  description="msoGSwaJTi7OUK0vKQ13gfO1QSAIUcA7AjSSLuHYzu2Ra1BMEr62gevnEoyfpAANnkoel9aDgdNSfmE5De5bTvMyHpd2S0WD3FaqRKAgoYEGpNOGzwWmNqL0QHxylFWlu94S8FVS"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_get_external_transaction_by_request_id_0(self):
+        response = client.send(pp.GetExternalTransactionByRequestId(
+                                  "d6155e44-7ccd-4b59-9335-9a42156fdbd5"
         ))
         self.assertNotEqual(response.status_code, 400)
 
@@ -2133,176 +2776,176 @@ def test_list_transfers_0(self):
 
     def test_list_transfers_1(self):
         response = client.send(pp.ListTransfers(
-                                  description="vkZ0hBxHL8DiEhh2VnZoTnDJVFMsrvforwTxS8CU7xfi8Z8k0xTZqtjlnCMFHx8TKGI2xE1Bu"
+                                  description="ZXRTfnNFoNra90XKkUB3tuq1X9Hm0SHBKCUruJxi1ST1WXtfeKSzrq1Z"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_transfers_2(self):
         response = client.send(pp.ListTransfers(
-                                  transfer_types=["transfer", "coupon", "topup", "cashback", "campaign", "payment"],
-                                  description="Z6xonfMjSwz5WZMumkxzfJ30tPK0gRaUMP2gDk6hqbkZIVaXAnNHVk2JXX3zMOLBJZia176ashqVZtOtkEaR1q9tiLg6fzyprLRU7zHjv8AVBjeNyLKs5OWxHdcCIY8xfr6"
+                                  transfer_types=["transfer", "cashback", "coupon", "expire", "campaign"],
+                                  description="UYOCwl5C8rEq5yNfh8NoRe5rX0rVCmpqdlLHNNlbdnW1ooZFRDSi"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_transfers_3(self):
         response = client.send(pp.ListTransfers(
-                                  transaction_types=["exchange"],
-                                  transfer_types=["payment", "exchange", "cashback", "transfer", "campaign", "coupon"],
-                                  description="JsJ"
+                                  transaction_types=["payment", "cashback", "expire"],
+                                  transfer_types=["exchange", "payment", "topup"],
+                                  description="jenj4X3xdXKxR7POl5XLEB6rdcoyFq3Dy2RXyPUAe3PgOIxNaz33MDlMm45c417ClVPZadCz21oTLg0Zh082rSUmgTJgltXUvopMAE6nKVgCC79b4Ei190OQ71CLczodkHUHlo8Ui"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_transfers_4(self):
         response = client.send(pp.ListTransfers(
-                                  is_modified=True,
-                                  transaction_types=["expire", "transfer", "exchange", "topup"],
-                                  transfer_types=["cashback", "exchange"],
-                                  description="Zx4bL3mKFhR8vX2cSSl7ObxLVY39aP4hWiGuhuMVGxVPfacjrslMZj02ZSv"
+                                  is_modified=False,
+                                  transaction_types=["cashback"],
+                                  transfer_types=["topup", "cashback", "campaign", "expire"],
+                                  description="NxSNDBAB21jRDnDfUt4YgIyZaTsiHOmcCShoExxXDzwmu0NmtxroKVUk7sDu4lw8ZxL5ooBCUmbexHlOYPdRDRXfcFEKebPAHiatKRmL7K8IMJIBW1vB1RC8WQ75Zq2CPEph5LyiHrKKZHYeA6K"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_transfers_5(self):
         response = client.send(pp.ListTransfers(
-                                  private_money_id="7068670b-8849-46a0-9328-db3ec33dbddf",
+                                  private_money_id="9e4c334d-44f3-4887-875b-f3d244e51053",
                                   is_modified=True,
-                                  transaction_types=[],
-                                  transfer_types=["payment", "expire", "campaign", "cashback", "transfer", "coupon", "exchange"],
-                                  description="pu0MDWpiDvc0yH6ElFsXXAu1ggrDUCau2gnuJ4JjDHOBMd26S3mihK7Gc9ouBdfj9baUMO0QAZUEFS2BtlR4VIQVU2y1HqZTEweuiw2lLR54hFsTWRshdiadwR5IXzLVIyr3tVtLqZwSGR9"
+                                  transaction_types=["cashback", "topup", "payment", "expire", "exchange"],
+                                  transfer_types=["exchange", "campaign", "payment", "expire", "coupon"],
+                                  description="hFwjSSUkqouGV2ULftf3KLiOm0u6OdTYvY1WMa6BMdHbor9Bi8VjYjeAF8N8XvRYyNjj6LzPNoFY0NPc7gW3tdaerbfAUj6MGuDCQRgbbh69IfOOqdFvcvTYHWhMSc2JtDSCuxpXIBKjX0wbEINtuhWyJmxhctiEpL1KlL20"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_transfers_6(self):
         response = client.send(pp.ListTransfers(
-                                  transaction_id="d9dea1c1-4088-4174-9f53-a284a51dff44",
-                                  private_money_id="77e561b9-24e3-4392-8f5f-9996faf7d62b",
+                                  transaction_id="97f5ce53-a599-497d-99a2-1c7b021bdc3b",
+                                  private_money_id="f9a82d32-185d-4938-9cc3-d97d252fa918",
                                   is_modified=False,
-                                  transaction_types=["exchange", "payment", "expire"],
-                                  transfer_types=["exchange", "topup"],
-                                  description="VkjkAmAursWmY8lUcPFFH8OBO0gTOPvALkgMJawdwCaYZ0f5A4WuoS1IAZgM9FDFzPlCr68wDPzP1uu5pUlr0e255o067YSY4rtLpQIhTsQtfNlHNUlxPCHvPHeZ4gCJRD87F5OLspmSpFUbvNXpSViDBWfAPmGs"
+                                  transaction_types=["transfer"],
+                                  transfer_types=["cashback"],
+                                  description="WFgkUTJYHHOr63hjnglJCcSZdRjCOwyap0lsb8d4Dc5yMU1TN0yX6wxY6IPoPyEr8klncfGkEwHBWOqOmjPQjCJIqduyEzfF4ihEMnqIdNLL8T5msTmgqj81RXJ34GFY2SrpQfm9Le0rSPWlrPa8fbLwdjVaS9JydpHqXjqW7D3uCGCdE"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_transfers_7(self):
         response = client.send(pp.ListTransfers(
-                                  customer_name="08EBxCdTJypI42Inu56VLkNyEIUSlWSa6lZGo7PhTYTGs3X1TO4wzYkyXyy6lwP0N21ySbpke",
-                                  transaction_id="60074f6d-1b1f-4444-a504-27aa2e7e66cd",
-                                  private_money_id="24efa45b-7e07-4a9f-aedb-9b1d7d493633",
+                                  customer_name="3Z7gIcLSudPl4JIrQmLFWJxcGB9NLriuIsMTY",
+                                  transaction_id="c884d81c-e079-4643-956f-ec8785993e20",
+                                  private_money_id="ff109fcf-9eac-4107-9687-b0fdae495945",
                                   is_modified=False,
-                                  transaction_types=[],
-                                  transfer_types=["payment", "cashback", "transfer"],
-                                  description="zT4JKnzi5L8cpHHMwXcAIRcjNLk0uNWeNHUqo3XUcSS2VsZS4Lj4GkDI0oXRDtBJxvb11fmeXANYMff4lfRrFSD2GU0U0YSAX1Q89ssC5bpXwoj13v0TL4xfkZtGKmcVmh1Ev4M51rbMFUU1jVlGa8RcO6wCBU9Eja3cVhwcSD6iDQwph5T"
+                                  transaction_types=["exchange", "transfer"],
+                                  transfer_types=["payment", "cashback"],
+                                  description="gDSPeHLGCGYvgqbqCIdoPTyGfjAlvbOwBRftL3mTfJhTjDs9c8QNUGvnht1UycVdhwjqe7Rve16qe5BUa3mrtCxkktMbdZ0Ff5nebRZC0vDYNEWMfxXSVHRY4YZdsEswklf9tWgAr9Kx"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_transfers_8(self):
         response = client.send(pp.ListTransfers(
-                                  customer_id="91296555-1f19-4e1d-942d-facd4e64e6aa",
-                                  customer_name="16YqrHAO8roW5GeUYrGDCf0i4xR1YeuarVLqKYaajZ",
-                                  transaction_id="fd1f4784-b934-4335-8b6c-bbcd9822fbe2",
-                                  private_money_id="60a989b2-ba45-4de4-aaf0-3af8f00db7dd",
+                                  customer_id="ec37e66a-6273-4097-95fa-7fe5231f71e5",
+                                  customer_name="EvU98BI4BdtnYVFOF5IXA6lNw66Yqs62ry4EX0H5SsjBGi2vt3IVLujfoeXIyA6Ao821XE55hc29pv4sZBooZY5wA4Og2kdAYLVTxSOsaSsUmdY0CLcfoUMFSIdEJMG98zC6otpSw3LnpbrPkZnNjPWO55U7DSfY3LgW5M2IvR52CgIBy3eLTys12HHDFFeqLoUtYmfM0XLYceQxhubY3jVYhbh4RW4SjcPHu2g",
+                                  transaction_id="958fa3ab-2349-4470-b70f-4c481a57c890",
+                                  private_money_id="3c4d1684-bc90-436c-9392-e39fa9eb2943",
                                   is_modified=False,
-                                  transaction_types=["payment", "transfer"],
-                                  transfer_types=["expire", "transfer", "campaign"],
-                                  description="SC89X69cCxk1lmjrE2LQn8WVW3m44epc5OJWLmTr626o4XX2rICXAhNDPHxc5nbxE6dOS7QbkrsxeFRrdV1gQxduyB3Z9uLKn8CBvuRo159rPRsnfNPsYuS9nBNol3v7"
+                                  transaction_types=["topup", "expire", "exchange"],
+                                  transfer_types=["exchange"],
+                                  description="Z8tjsh68ScZg3aAMErPcV9o0TcGJkIJ"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_transfers_9(self):
         response = client.send(pp.ListTransfers(
-                                  shop_name="lVyt80jIUhEuqcVn523Q4baN0pPcQtGvFKDcSo8tIJSa9PEebkW1DkF2wmIfJ50Imwzo4spi93QyENqmwOx8YnV9T8kaR9yxV",
-                                  customer_id="6cd1cfeb-e294-4b69-929a-62303eb65459",
-                                  customer_name="h350uvTmXJ3taiP6zrMBCvrTp2KPzJXVVtSjH7KpG4W7WMlwVoyitMfaSwwyI0wlFPTcSqX1OcJJCpH4abwAvDfIYbVEzwXEzeX",
-                                  transaction_id="7d14df37-d484-4d83-8036-a0c3f19900f5",
-                                  private_money_id="2a68520d-1062-47dc-be42-d1ac557b2699",
+                                  shop_name="RMahTjY4B83KCbssdnciBK2yKUyBpazsFHLyPhoCqWWrzikH0DrThI9ndCARX9iZhUIwUrsQ8Uijo55dyiBxXbKWYhqIQcADAJhWFwAS",
+                                  customer_id="01940baa-da5b-4317-ac6c-1d32bfb1a468",
+                                  customer_name="GkEzja1NmQHCUATGGz590dtBhucZ4e0BzAWy80f2MmxJUnd92RrjDmsbpR1t9xme9U0GR2pRvNpULEoTr6H5p2Y5YBaOZdS1seolNILNbVpFGvZ3N4x3uvaLnbw12Ii4C82SzJJG4lODNS2Ij7U5b72UTWbjXGfzCmZ2vkYmrCrWw",
+                                  transaction_id="b0eff541-03b7-47c9-a2eb-e55c4be2b644",
+                                  private_money_id="fcbc166d-0cdf-40eb-bf27-5517899fa02d",
                                   is_modified=False,
-                                  transaction_types=["transfer", "payment", "expire", "cashback"],
-                                  transfer_types=[],
-                                  description="vZavHGIwQGFD3y3WQcOQ77GqTbykQNeXwfkirPrCHC6oGX762VWlOvBKRDnWwJ1RB1Xf0sJSNdUIy9UNPxEn8d7PVOwf2KxYZgpwkatfDXh6wjcpgPghclYC1sotThNzacMPGRW9XLUFYLKH2dLAXy2plAkroUr6KjPvdUwWdZh0L8"
+                                  transaction_types=["payment", "cashback", "expire", "transfer", "exchange", "topup"],
+                                  transfer_types=["campaign", "payment", "cashback"],
+                                  description="SHyiFoseHqYyK8GIOW0PGU45uzPdd0dJeNNvUC0bqs1hvmd5I8evbrAQGpnYomE2cpD4cThkIOO2LW0e3G"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_transfers_10(self):
         response = client.send(pp.ListTransfers(
-                                  shop_id="7eb0aff1-f14e-452e-8b7d-61adb380f83c",
-                                  shop_name="4Tq0PqVhzCkKROCStDoZvAY3OKa5oCE4xLFobA9UOrBeN520IjUnvAonmJrl0Qqm11RMoDMOSwDGwLJ7XtGOGgKQwzAg5",
-                                  customer_id="ecc88e49-3c14-489b-abee-d4fd8daef6c4",
-                                  customer_name="gdQyyCPmcszk1DSduCpdgUz5UizzupfDUVzOTa3MaAaf4kTfREjRbk7TIk1gephK43IsijpvrzedeO1cdtY9cqUS5AzQzHdKGL1guEaRrfiOPX45f7SdsQcMHW7he8Z1qLepuyyE02MG8yUNtUKfprHpGaVcCOEeWb7TQI3q8qslujxF3n4fR7Vfp3vRJLnSgiLPjnc4kQ0HdyTor536XOfVM3XXOQ3tGi0CJH7VMgkZVkFMaOxCQ0Il",
-                                  transaction_id="9733a614-fab4-4fcc-a0d3-5b31c67962c8",
-                                  private_money_id="cbeb5039-2bd2-428b-ad68-6fb1d8d8bdfe",
-                                  is_modified=False,
-                                  transaction_types=[],
-                                  transfer_types=["payment", "cashback", "expire", "transfer"],
-                                  description="FmlvrlMvNLwEsnbNKTS2h75GF8UpjoAlQvJzCU8IgWIQfnPgb4T4DEkgPLD0xZMd5yjnHtiPzKYB9uBkIh8qvqswUq9MIMd1v50tEiK5VU8URPZftDXY7iH91521L9iCZDgOHv8ccbKA9zaXWI"
+                                  shop_id="cb8e5688-d3b1-45f3-9f86-1d9aa18424d4",
+                                  shop_name="jjHcN57ZbAikJ2opGyr1ja3zumve771kQ7mwZnfGMQasC1yb1Dq2UL9Kx0jYk7sZRicOTg23f5GXrX6ozTzm0HG0TosxKz4jitwHtujKhwCFGw",
+                                  customer_id="f17c55e9-2f79-447b-8519-c7052367e31c",
+                                  customer_name="4vlRBRxfHZeKBVf4jVtecQNubIdHetIBPUrvpeN86f46tWgyM43AJZ0KTwWOYBSX4EzfsIiIDCSxoowqwobMRj4K8plKuk4zON6lsKCXAkk07Q9YuV27x2ZZwJNPJ0aXH1uRWCYsw6VRBfXAF7xeoT0y6lNlDnKEOyMV89HUL5OwvTmfkSpdcLQvsJQRiuvWpRkphzntqbTr2vHF1iF0Y7dBxe8hiTzwkLtzBfAa7kaQm6vULSy1FKd",
+                                  transaction_id="a301632b-6754-41bb-b48c-1b3d7daad60a",
+                                  private_money_id="7af69fa4-c2f5-4225-b8fd-705fa378bdb3",
+                                  is_modified=True,
+                                  transaction_types=["expire"],
+                                  transfer_types=["payment"],
+                                  description="M"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_transfers_11(self):
         response = client.send(pp.ListTransfers(
-                                  per_page=6639,
-                                  shop_id="445462f2-5650-4a1d-ade7-3618880ba8bf",
-                                  shop_name="iqGxhGUs6ZnMyMQoClDSK7KRPQ6M6EMYtB6Ep2GnDZJdtjBh5VRBTfV5MJhYQTBRBM7G8j00YInJitv9WP6kwxoiXMMFgIG6MJKNbnVLomjuJJQI4ykecPid861BWO2utY6ykCTVCcIXTPlbcMZgCJ9BjKA9LvljTLcW71b8cClVacDr5l3x4FVfYiLUL8Bb8dzaB45kELqQHfqMF0cAfS47CSQOovJ8c1i3",
-                                  customer_id="2bbf4666-5b65-4dce-8fb1-9f716b286690",
-                                  customer_name="Bnpp3tyKjZPjTs65qzNTqIMvOUP7lDJ32SCMXHu4UsQsifzmvmEGKnmcQWOqm2bxZSUNMN2LXvZ3UB0bY6L3973iqLKkGFIZmfuXhD9mm06njf2aXb7PnD9gNpMDYfCPceKjPow2YL1adnoZFEUP94ii4uT2NJ6DSRSGMdhjjWzKEnHt1GlWmv2y5j3kpGt0e4jNi92dahl",
-                                  transaction_id="bda42c6e-18a8-42ee-99eb-0eff2ebfea08",
-                                  private_money_id="851c313a-c888-43a1-99e0-0d4bb926a292",
+                                  per_page=3845,
+                                  shop_id="367f3fa9-839e-4aba-aa4f-f5197b68b318",
+                                  shop_name="6NsjUaiDroY6Q3IK7BQ6AmswdAM3IJrwVbs9pMxfMCthiv1a2EEHFmQw4OmJsXraAGliEBPmHrH76ocsr7yZptwOIMGRxZLktLdV7uiWarFr5GP0wp4l",
+                                  customer_id="7a1f9db7-10b0-475a-bf73-7cc7d6d7f908",
+                                  customer_name="PlyZYRURgUMf0P5ozHDn0iOeoWIRRMyR0nQkh8Zz7eaFGoiOPKR0rUW9UTcnGDBsZuPfABdiNvfS9Anufij6THnocikBJOkD3FvwnaI0WeOGlWmmegc1KGhe3TxnuKac7CS1DK4Gnrr3oBLGMXHrz9mqfRhRmUp8pN9pjtBKEK15Dd3XxCT0Zmu6u7tOxquneNatGolCf6SjeF7SeZXyMS6WkNJ2GvSwQUcruYP4H5cCw5ExNqh41OXXFw",
+                                  transaction_id="699d4f7d-1628-4056-90ed-17e1c7556848",
+                                  private_money_id="047a0c06-b059-42dd-951c-873f10613a77",
                                   is_modified=True,
-                                  transaction_types=[],
-                                  transfer_types=["transfer", "topup", "expire", "cashback", "coupon"],
-                                  description="PkZF0J60lUnUwRinT2la9EMVbGBQcWz4E8fUZnWcjAk0kMso3CQzadAG14rJr7OIiIwKYtNBz"
+                                  transaction_types=["topup", "payment", "exchange", "cashback", "expire", "transfer"],
+                                  transfer_types=["expire", "cashback"],
+                                  description="R1LlAIi5qYTqeIN9jftsBTkZDKCnQigIBcgyeHE0tecRrYBgXoYNaRDH3xa5ZXl3L94kmD"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_transfers_12(self):
         response = client.send(pp.ListTransfers(
-                                  page=4465,
-                                  per_page=529,
-                                  shop_id="559ce0b8-c26e-4c01-bb5c-be21df42192a",
-                                  shop_name="ODkJL8EIU81Vy5zPsQOGlQlr06Jl9JLWCZ8neyUVmWBR3xve7r3YSLXQYTyvYaaI2qvRlrSNIrRDPa1eyCiQOxDTwWc9gws9XAUrux74v2ITxjA0PgzICgqeJVlSY26G92wNF5y9aZcAMQT3BxPWw78yOKfPR1NUJQvD2rVGC8",
-                                  customer_id="833e6222-c1b4-4612-8aae-1dca405fd4cb",
-                                  customer_name="YYu6jp9XJncsuSh46krybNv1zjGCQgXpBAn6vYjVqpA4IONiLV0kr6A1DgXWodpkxho8rBfuxAgk4G7K3EbPTtYbjyxowsbeNA1qdSnOGMCPl7IMBQKQv86A0JZpBpvSAXbobD9Ki30vC5rrnazdVnK3PrJ5SiaT9q7d0MByh1j24T8jie07UHeDFjaRvAps3KfAZfCcJF6TIE",
-                                  transaction_id="2798cae5-6e85-4152-bc82-eae3b243e7f2",
-                                  private_money_id="a7391768-dba7-4f69-a04d-c4dee6af5f19",
-                                  is_modified=True,
-                                  transaction_types=["expire"],
-                                  transfer_types=["expire", "coupon", "campaign"],
-                                  description="qC0B7Kcw0qagkhJ7wfZWTULKa8VECsBZr3IToxXjdyKGc7ZzHUV5fOm8mtNakhvcdUzoLcA59nUhEAXqtCyQcPmsvpgfmd8PIAhkngoJScrC1WRA"
+                                  page=9024,
+                                  per_page=5354,
+                                  shop_id="a7fd1551-42dd-4daf-9aa2-465f0d6e9589",
+                                  shop_name="mfdCV9wGJUROgp1VTNstKsbk2wvZcZmJCZwuee4w9Rkvag9C19xRl1IlJpGXqlhd5uwOg53j3Qic0iyKLnZxaZi9iCa2kj9IDD4FLU53H4cTCafuN856J50SdiADG37eydGENMPuSUGCPNHip0Y3dBWcNdXe1sIjLSVztCspdpKcDGU85LATApzQ2dQG1XtK0UfX1fzmKZw4jAX5TdVMZA3",
+                                  customer_id="d84fd246-1c73-46a7-a142-5d17b10355fb",
+                                  customer_name="HTaR7q8iHovbTWoPNbCUX3WmvU0lnYW7MWulxJqejEoXiemEzy22TP2wtSY9IoDSrJUA2sSTBsOwjVmr0bTbO79f",
+                                  transaction_id="7f3d3bf1-2da0-479a-a8c9-6354c57843ee",
+                                  private_money_id="1a45853b-126e-4196-8b7b-bb8d62f5047a",
+                                  is_modified=False,
+                                  transaction_types=["topup", "transfer"],
+                                  transfer_types=["payment", "coupon", "topup", "exchange", "transfer"],
+                                  description="B8sle88sl7rSWKN9oQ"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_transfers_13(self):
         response = client.send(pp.ListTransfers(
-                                  to="2021-02-14T04:41:34.000000+09:00",
-                                  page=5519,
-                                  per_page=8002,
-                                  shop_id="5cb8e7a4-db54-4107-a2bd-70923811a5d3",
-                                  shop_name="rzSbRU1v2KZFFhdMjCCzsHpBmrvRb2UjrXmXby0g0KQCQJco6Fst7K2jJcCqUZTewzuJ3F92QKd3C9M0vBcKWIUBdcBNwq9T0OG7VRzcPfWGO1YJqrl83WexbWjPBIcMUJ3obVqULs7P",
-                                  customer_id="3932f409-f473-4812-b809-d0c77e8b8d7b",
-                                  customer_name="UAdxQTQ69L5ufP3C8GoKbqWo6okozRxG7O1lnWZInpqxewkSnO8G8BVdp2SnU56fm1",
-                                  transaction_id="f3c38910-0015-42a0-9f66-aa74aa523a9c",
-                                  private_money_id="5d7977f5-2fb8-4652-aef3-12e461c631e5",
+                                  to="2024-12-17T06:45:21.000000Z",
+                                  page=3529,
+                                  per_page=3722,
+                                  shop_id="dd8d478d-072e-41f3-be94-d8bf7201bc4e",
+                                  shop_name="48VkSyiuzE1L2wv36YuE4jwp0IiR44I5KLiOrRKq3qxtTGifN6KrraD5uojwDmQdLNOKHIlDiaOh78QfhNbZ3YfGh",
+                                  customer_id="2fdb9f3c-f9ec-4183-bd3a-21e2b330e913",
+                                  customer_name="aOElvScjtjkG1WEjltqaYkhp7caXjUtBcNe9XyY4wthFo0glXBErIUB1p7aPMzXnAdDrY96Gn0OAQ9xSN0zfKx7ivixiVqjgvBNcsQLQxAtJmVTcXW",
+                                  transaction_id="964b28f4-537f-4a87-8bfd-1755125f6e7a",
+                                  private_money_id="62b95381-078a-47a3-806b-1dce5288d4a2",
                                   is_modified=True,
-                                  transaction_types=["payment", "exchange", "expire", "transfer", "topup"],
-                                  transfer_types=["transfer", "exchange", "campaign", "cashback"],
-                                  description="gBjKxJ1kVUP7sJk9W7sPqDCWwYS94nlMA9QMeCafNqHwyMdjdwcWi3JTYLChkb6TlitzWaW4uPhPny3cB55XyFtx17QBRLdwgp38D246YReej2SSevahES9poV0ViKFLpI4REDYg"
+                                  transaction_types=["exchange"],
+                                  transfer_types=["expire", "topup", "payment", "transfer", "exchange", "cashback", "coupon"],
+                                  description="BKlwozbM8BIp6WWFtoNM3mKKWyblmmAHRSYCV0EDw10SY48ZoA8oj9alrEKYDjBWPKCwbirzvScUvjsqVkcSInvOjFPIL9qlVMwg0ANEHCj5eM805Swtsg"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_transfers_14(self):
         response = client.send(pp.ListTransfers(
-                                  start="2024-07-10T08:49:16.000000+09:00",
-                                  to="2017-07-26T19:47:22.000000+09:00",
-                                  page=9304,
-                                  per_page=8816,
-                                  shop_id="2005b332-9651-40b8-a30a-48ffd1dc538a",
-                                  shop_name="wkpiTfx0K3NI9FJ11nkGfRQlGszH71XXMwwageqdiCUtiam5OCYCyW06FKS14FS73",
-                                  customer_id="6ff8661e-d9dc-4447-890a-261812bffa9d",
-                                  customer_name="a3ijeaDjTIJss0bIT0ZqOXGSTVH9BRjr8phyPclxsBq9XBmkTSfhHrb5sDnsI3ZWUf9QMTgobmXveIIZc15XikWWDvoW8CZvliqF7CSsjWcuOJS4Ehtu4LwcLHvZh25xxfXebiI3VayaI3kTnTLIkpOXuMZobSfeWKzoEFQ5pyI5j9pCzj3hQwJJC",
-                                  transaction_id="eb17985d-2eea-458d-ba95-fa47894a5d5b",
-                                  private_money_id="ccebaccb-e5f8-4839-8a81-79e1339c2b8f",
+                                  start="2022-05-03T12:34:35.000000Z",
+                                  to="2021-01-13T03:57:38.000000Z",
+                                  page=8812,
+                                  per_page=6603,
+                                  shop_id="af6583c2-602b-4916-be84-17c452d5f1f6",
+                                  shop_name="xWoqdLq3QmHRbZpwbPRidVG7B6hajGJrCJBxTKH0YUW8iwJJuJPCjlaztijN3vebjT869RjYRPCqvnZ1YzdrhGH7XKNoGDpqqjYUa42NN7jWbTA8sT9CjY",
+                                  customer_id="6aac285d-8b03-4ce4-9be8-9d597fd276f9",
+                                  customer_name="9ZtWhMAKSZHQ2Tjahc0hASAcEibjku1fdQetgL0O7DlAFrkXVihIdQWu7J4NYirXryPP6taqbm6hsnA9hELkacVB4dzDqQ1LbTyVIgVP7fIz1xemnrDx9P7HPwLX5lwWZKuWWf4n5wNPq2rjN28QfQLnQ9Qr2gs4rAyEVt2ws7WkJzpgGUX4mtxobZ9ZCpNJGZG6LzTWIbd8ZNVrafd",
+                                  transaction_id="07fa762d-74e9-4a89-a976-9e3ddb44dc4e",
+                                  private_money_id="727c8fee-83b4-40ce-8562-fdce4c298acc",
                                   is_modified=True,
-                                  transaction_types=["cashback", "payment", "topup", "exchange"],
-                                  transfer_types=["expire", "campaign", "cashback", "exchange", "payment"],
-                                  description="RysjIT"
+                                  transaction_types=["topup"],
+                                  transfer_types=["campaign", "exchange"],
+                                  description="mUNmLeKEfXUc2dQExu22E4bX"
         ))
         self.assertNotEqual(response.status_code, 400)
 
@@ -2313,322 +2956,362 @@ def test_list_transfers_v2_0(self):
 
     def test_list_transfers_v2_1(self):
         response = client.send(pp.ListTransfersV2(
-                                  to="2016-05-19T03:51:03.000000+09:00"
+                                  to="2021-07-23T21:15:26.000000Z"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_transfers_v2_2(self):
         response = client.send(pp.ListTransfersV2(
-                                  start="2018-06-28T12:53:42.000000+09:00",
-                                  to="2025-08-05T21:35:39.000000+09:00"
+                                  start="2025-03-19T11:38:02.000000Z",
+                                  to="2023-09-02T12:57:56.000000Z"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_transfers_v2_3(self):
         response = client.send(pp.ListTransfersV2(
-                                  description="1O8xVGeOGcFlOxiVnFhvQYgTq0yLoByCmHUuVyH3cfcF8Pf92JXudRmeZmjiokTl117bHBnYglbQt4QBFDEJKi3AHyd9yQ5W9RMhIq1dhsWztxTud1TnBQZsbkd",
-                                  start="2020-07-27T06:53:50.000000+09:00",
-                                  to="2019-07-22T10:30:08.000000+09:00"
+                                  description="srAuXzcUztcjpDcIzv8TjKb1dIcQKtgPEpt9Yns",
+                                  start="2025-07-02T18:08:02.000000Z",
+                                  to="2025-04-09T15:53:39.000000Z"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_transfers_v2_4(self):
         response = client.send(pp.ListTransfersV2(
-                                  transfer_types=["coupon", "expire", "campaign", "payment", "transfer", "topup"],
-                                  description="KWD0fiDnREQQDwR5XEyIFeG77xZhQ031Bv0fXxSyFQJeZ6rdQ8buBb1f9slLRuiYJe4XyJvTb23a",
-                                  start="2020-03-14T13:09:59.000000+09:00",
-                                  to="2018-07-19T14:11:21.000000+09:00"
+                                  transfer_types=["coupon", "transfer", "exchange", "expire", "campaign"],
+                                  description="T70lQwB453YpOK96EoFGxVJNTeRlFM4Xw2",
+                                  start="2020-05-30T00:23:10.000000Z",
+                                  to="2026-05-24T10:25:13.000000Z"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_transfers_v2_5(self):
         response = client.send(pp.ListTransfersV2(
-                                  per_page=925,
-                                  transfer_types=["coupon", "transfer", "expire", "payment"],
-                                  description="Kvikb",
-                                  start="2018-03-29T03:19:06.000000+09:00",
-                                  to="2023-07-01T01:25:32.000000+09:00"
+                                  per_page=102,
+                                  transfer_types=["cashback", "payment"],
+                                  description="u24yc1kusN7qW2yhhPFbHNPhRgnqYnUlh4JbOrMj5jFwrAdcz57ZOWsDr0Djt9M12BOno1AcjM96oftC7mHhiSDgXKvVy5pax",
+                                  start="2020-10-08T09:40:57.000000Z",
+                                  to="2021-07-25T16:41:47.000000Z"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_transfers_v2_6(self):
         response = client.send(pp.ListTransfersV2(
-                                  prev_page_cursor_id="5a8cb885-93b7-4968-b13f-e9065fc1ff54",
-                                  per_page=521,
-                                  transfer_types=[],
-                                  description="9ynJs1QCqTRlC3W1MGePxsBFCAyv0dcBt87MHAdufVNZM7qsWa8JyqZo0jQRpDPE6rh6ExoxFn0c43cEW5yWSswalnNSPl4nKgIh67Gkz5WkqpvEXvT4G0zj9vSzfdqnwxVoVRAJZtMnbN2adZxWSJweQkjDaZNU8iBur4dbIER6acqYlw",
-                                  start="2024-02-02T15:42:04.000000+09:00",
-                                  to="2016-08-25T01:29:18.000000+09:00"
+                                  prev_page_cursor_id="69a15144-6b32-4458-bd84-e61f099573e3",
+                                  per_page=208,
+                                  transfer_types=["cashback", "transfer", "campaign", "topup", "exchange", "payment", "coupon", "expire"],
+                                  description="6iqol80j1t4n3lpnoezOx6Ov6eGwjQCqxdtQnDY4S9N4HhJ5rCsXRcUZY47cpIh03BvqB7CzLjYHoO28zEE65UlKtMCe12MUV2dxrA2428zEWnFZLX87qtedPzV8NdiYCurcmVOPZzwMWHgQ0VESfspW9b9NBdczTSynCfTiWLEN2pEbq7Z",
+                                  start="2020-10-07T23:08:43.000000Z",
+                                  to="2022-10-24T02:41:06.000000Z"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_transfers_v2_7(self):
         response = client.send(pp.ListTransfersV2(
-                                  next_page_cursor_id="57d9e313-6445-438c-b0b9-3ec439e77024",
-                                  prev_page_cursor_id="6a5565b3-e96f-4160-aad8-c857dc1f2327",
-                                  per_page=387,
-                                  transfer_types=["exchange"],
-                                  description="7xTzrPkAXyiXMztQxtJ4M2WJmA50gKlydbRXM1sy2g1Pf0MqzXeXqK5rRDKBvomcRcTm4csmVWyjay9TthXSYCbva0t32yWLYVWM4QhXAPz9W0Mxm5OYGh3N4Z6M9NXBY9oPVgI76tvDy",
-                                  start="2021-06-04T03:44:58.000000+09:00",
-                                  to="2016-02-25T15:21:47.000000+09:00"
+                                  next_page_cursor_id="d8a1bb02-12b8-43af-ac08-1c963bb3d3d0",
+                                  prev_page_cursor_id="ba287056-910a-48ca-aeab-58dd8d1f786b",
+                                  per_page=966,
+                                  transfer_types=["transfer", "exchange", "payment", "coupon", "cashback", "expire"],
+                                  description="eTptZ5kX9rLpagdWQnEnTlLyubwibc5uG9Y4cn6ApRZ5NX6gFb5nuODlmm9rpn022H3wQmNFzbLFmfFSz1uperYHhU5vbLxW8Yq15XpRuu89q3NykiRPYO2oQiAYMcKkXBWEu4RSjxgCW3jFlgob7yobgqdqFleVhpCebdmmx",
+                                  start="2022-10-13T07:45:55.000000Z",
+                                  to="2021-06-21T04:02:50.000000Z"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_transfers_v2_8(self):
         response = client.send(pp.ListTransfersV2(
-                                  transaction_types=["cashback"],
-                                  next_page_cursor_id="10f2975d-1790-456d-b970-2fc64059f4d2",
-                                  prev_page_cursor_id="891bf7ed-f355-42fe-b6e5-ef827c4b9964",
-                                  per_page=519,
-                                  transfer_types=["transfer", "expire", "payment"],
-                                  description="lSSsYDRmoQAbzux2YVPLs6mqcLQO6KAfySYCh0uqCGrCwLPsZTQHaYj8b8oAQjqHWHEUSfBXgsFSQYVjyMJi1osniwzvMM5724wrvJulOUj4A8M3jM0zpEWete9qDkCIpsjezZ2M4DgCUcWaYN25M17e8QItVUDPdnGbbjU",
-                                  start="2017-06-10T09:09:15.000000+09:00",
-                                  to="2016-04-18T19:52:41.000000+09:00"
+                                  transaction_types=["transfer", "expire", "cashback"],
+                                  next_page_cursor_id="f66abfd9-8aea-4aa6-9035-950ba45a59be",
+                                  prev_page_cursor_id="db2d3b1e-5107-43f0-afaa-2564d59f5135",
+                                  per_page=777,
+                                  transfer_types=["payment", "transfer", "topup", "expire", "exchange"],
+                                  description="FLxumOnvrupx16EXCUXyPfCabjEtMliIf7wKoPmNQWU6zl3h0ZGoCe5IIfEbaRlpdhTTQpQoSRT6b0IY83jSy9CLjq8yjjxInoBnLVw5NxHP7C",
+                                  start="2025-11-29T23:51:46.000000Z",
+                                  to="2025-05-25T20:51:21.000000Z"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_transfers_v2_9(self):
         response = client.send(pp.ListTransfersV2(
                                   is_modified=False,
-                                  transaction_types=["exchange", "cashback", "transfer"],
-                                  next_page_cursor_id="e2590801-5e40-461b-8110-539d51d51d2f",
-                                  prev_page_cursor_id="a4a03b6f-faa6-48fe-88a4-d0f9078a983d",
-                                  per_page=304,
-                                  transfer_types=["exchange", "cashback"],
-                                  description="yexDJw4m5W5NSAarqtGtlcKJp9gTWhEWSlBiVnl9lORTBFy0IWWO4H8KmbVB2M5EGOlNZgqvSi38sr7tIAdAm2GfCQqu6PVWox7el",
-                                  start="2017-03-04T01:54:13.000000+09:00",
-                                  to="2017-05-10T23:34:31.000000+09:00"
+                                  transaction_types=["payment", "exchange", "topup", "cashback", "transfer"],
+                                  next_page_cursor_id="d685eccf-3551-429a-aab2-447105eb5303",
+                                  prev_page_cursor_id="a64ae791-5f70-4db6-a58b-78425dda8190",
+                                  per_page=34,
+                                  transfer_types=["expire", "transfer"],
+                                  description="IuVKWvjUjC0u3f2Lo9NqlV6uXM4yE9kd7lV6QKkz6REzoI7cZYW4c0GyNh6EpQVqX4KE4B5KRDx",
+                                  start="2023-08-14T11:23:41.000000Z",
+                                  to="2020-12-04T03:47:31.000000Z"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_transfers_v2_10(self):
         response = client.send(pp.ListTransfersV2(
-                                  private_money_id="9d93ce54-91e6-4322-9d12-739d5879dd72",
-                                  is_modified=False,
-                                  transaction_types=["expire", "cashback", "transfer", "topup", "exchange"],
-                                  next_page_cursor_id="2ed7910c-d1c1-47f9-aa8d-2ccc92902d9a",
-                                  prev_page_cursor_id="0596f408-1119-41a3-a4cf-79ff70bb9da1",
-                                  per_page=396,
-                                  transfer_types=[],
-                                  description="3AIIQZmW74G7CnNpvzFPpYINeb1rEwkSNbZUKM9QJifASeEjt7rgfB4dUvUA5MkBayzjLixvqernP2ia0JTvsqFBudbGeZdEPGzzDd2lyZr3fyGm4G1h2gpnMz4EtR2vopXxSWiIg6gduAWVf9XkDSsioG64",
-                                  start="2018-08-02T17:59:49.000000+09:00",
-                                  to="2018-12-07T20:05:22.000000+09:00"
+                                  private_money_id="5eb3a22d-a1fd-4370-8ff0-b71c70188c56",
+                                  is_modified=True,
+                                  transaction_types=["transfer", "topup", "expire", "cashback", "payment"],
+                                  next_page_cursor_id="89110a79-95b6-4550-9fcf-593764ce58a3",
+                                  prev_page_cursor_id="9b573bb3-2781-4aa4-a3a8-ed976bb2c35b",
+                                  per_page=920,
+                                  transfer_types=["topup", "payment", "exchange", "cashback", "campaign", "expire"],
+                                  description="v27dHE8reh9b3v7zqeYS2n0EGsPPbvQvYkAPBJ7wmgCWNKDP1enxAKZBD2FhNoFZKIbAgSoRCKxxDEWQZO9yz4Mc4BWxPS7UaVHpVi4pZYZOGKLSewvJuaN97ObUNQZ0A0Rwk2Z2omGatDjCcJfOMaGd4kHySUJYrKI48UyLazcdaqg9M",
+                                  start="2021-10-22T10:47:21.000000Z",
+                                  to="2024-12-09T03:11:30.000000Z"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_transfers_v2_11(self):
         response = client.send(pp.ListTransfersV2(
-                                  transaction_id="272cff66-15e2-4374-ac9b-f38154ad010c",
-                                  private_money_id="a5ea0593-81c3-464d-a293-659f455c9949",
-                                  is_modified=True,
-                                  transaction_types=["expire", "transfer", "payment"],
-                                  next_page_cursor_id="49b96d65-7153-4c06-93f8-ae6282c39fac",
-                                  prev_page_cursor_id="db7ac25b-147f-4852-94f9-1e160b46cd36",
-                                  per_page=598,
-                                  transfer_types=["campaign", "transfer", "payment", "cashback", "coupon"],
-                                  description="6TRb2QsyUYaFBg0rLG7i",
-                                  start="2022-07-09T08:10:51.000000+09:00",
-                                  to="2024-10-28T00:32:14.000000+09:00"
+                                  transaction_id="4db002b5-74b6-4ed6-9551-1bfb7532b07a",
+                                  private_money_id="534fffc9-8326-4f02-8792-8c3e255db52b",
+                                  is_modified=False,
+                                  transaction_types=["payment", "expire", "exchange"],
+                                  next_page_cursor_id="ce0c4df2-359e-4edf-b7e6-e9f3de7ae242",
+                                  prev_page_cursor_id="6312baee-87a7-4308-9f46-4675085de73b",
+                                  per_page=423,
+                                  transfer_types=["transfer", "cashback", "payment", "expire", "topup", "campaign"],
+                                  description="Y8vi9Z9lrbTGfh4QbdPS2DfLew9jsvLcXjFRqAsdyU0EjzFGdoCEVoN09yrlyTlHcxkp2hdiJWs83eoAqvgg01zZW75gRDgWR",
+                                  start="2024-10-30T11:15:11.000000Z",
+                                  to="2022-07-30T23:37:56.000000Z"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_transfers_v2_12(self):
         response = client.send(pp.ListTransfersV2(
-                                  customer_name="umX9lPF6p8o2y11Yrgt4LCmHaJMs2PMcoeItTVcWkxXihexQXo312p3Wls1sE7BHULcZQtWWfaD4rWZB2GIm3dWvJq3fHzlHa1nO6pf4h9ws9kLnk6c",
-                                  transaction_id="b0c32819-3ece-4962-80e2-d630b93993a3",
-                                  private_money_id="8e0a0ca0-6efb-46ca-8484-644a76a3e7dd",
+                                  customer_name="wobRsB1baR1aePdc9fGHLcwyelAg5Jr7zEeO7nUDqxXj74j643AIOVakyq8QHWKNric3MBQYWsKtvnxoQJLloM94TQVFchkaVLnKXq1JcpZfZUH2UsKCxnRcuSoLNAly4QR5kzfucn7LZFZwhy5RIJGwbFSZ2qU3L9frpqlrETgz3O9wlyQ0TWfR4Gx21zM7WIQGDsPsJyAShBl",
+                                  transaction_id="c95243c3-7296-4f4a-905e-89ea7feaa674",
+                                  private_money_id="3fcb1e56-d7ea-4036-92a1-d4a9f5295d41",
                                   is_modified=False,
-                                  transaction_types=["exchange", "topup", "transfer", "cashback", "payment", "expire"],
-                                  next_page_cursor_id="14f80a79-934c-4bab-aa49-e047b893ed1c",
-                                  prev_page_cursor_id="ca367023-56ba-4d95-8719-96ec05e940be",
-                                  per_page=404,
-                                  transfer_types=["payment", "topup", "transfer", "cashback", "campaign"],
-                                  description="mHAR3RBnK72f11paMW4hGPanWOZJLbDfcebA2uxdCspznoi6atFNTbrEABXoODKwUOy71",
-                                  start="2020-10-10T07:12:50.000000+09:00",
-                                  to="2023-04-11T15:30:10.000000+09:00"
+                                  transaction_types=["expire"],
+                                  next_page_cursor_id="ff7d1e2c-57ea-4bd7-b26a-e8a2727920b8",
+                                  prev_page_cursor_id="19d2656e-4289-48ac-afad-d29664e4b0d7",
+                                  per_page=355,
+                                  transfer_types=["topup"],
+                                  description="KQAP2bBeZkmIh2UeN7Z047tEp9MnaMKkPTTOh4KlFXKgtixsqVTYrrSHZ1a0tz4EzkuhUCHWp85qyAYWUJWst1yIlHOt0XiM6Qkur8SbZd3wcuCesxkTgeUlIAlQvL5t780R8L5VrLxzRQlVu0",
+                                  start="2021-03-09T16:17:48.000000Z",
+                                  to="2023-02-06T14:29:46.000000Z"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_transfers_v2_13(self):
         response = client.send(pp.ListTransfersV2(
-                                  customer_id="a0327969-162f-4fed-9828-f97fd44ac862",
-                                  customer_name="yuBcqQnQ9Lj9uq1rjYyblkDRghHjQDZezbRZC9FxfNOIHrbpOq6mcQRKL5CG2GPSQQB1U6IjRsZr2eFWgbnzGrBQcbaSK3iX1ZFYsGd1YMLCaCs0F5pkoUcbMvLHGSU2LTCLPQ5GJELxIJ85m7pWO5Oq5sU8iwoJ735Qje9VnUZQt0pzes3TegY2AoCAsHwCP5A6Scunsmt5agjEkUDn1nh1J0PoLY33AeuLX1vt0Xc",
-                                  transaction_id="d3bdf3b0-ee95-4544-8f8b-87d06be1c6c9",
-                                  private_money_id="2dd136f3-5908-487b-aabe-a695d5a68eef",
+                                  customer_id="f4e91560-95e4-44eb-adc8-9481ec8c27d7",
+                                  customer_name="dPUiVDqeHPcQVtlOjSB31Mxq8SXpxSHJRZi52y7KvoeklIR5ig74Fkbtbb0SlK2KbT8BQ8WxGHxi6f0cuW1ZhxLtCHCm7yUfJm7Fg98YgjSKRGLQpNx8ciNrKweGJtnGqdSp90ci6D0iGddOVzLT6tirwJLu",
+                                  transaction_id="cf7bb608-a472-4f09-be11-e9c284c0afab",
+                                  private_money_id="af5a8b79-7512-4a99-9ff2-1907c3eb4d0e",
                                   is_modified=True,
-                                  transaction_types=[],
-                                  next_page_cursor_id="9033c9f9-954a-474b-8a86-87a41fd8fefa",
-                                  prev_page_cursor_id="25b98bce-65d2-43a7-9d95-2e2ce43ebb06",
-                                  per_page=356,
-                                  transfer_types=["transfer", "topup"],
-                                  description="TrsJZ4LsdIfCC8uQL",
-                                  start="2016-06-19T21:09:18.000000+09:00",
-                                  to="2020-07-22T17:47:49.000000+09:00"
+                                  transaction_types=["payment", "expire", "topup", "cashback", "transfer"],
+                                  next_page_cursor_id="0e95e7dc-9a82-4420-b3fa-2156486dc8bb",
+                                  prev_page_cursor_id="ddcde45c-9b77-4dad-ac51-4f417e0c8912",
+                                  per_page=191,
+                                  transfer_types=["campaign", "topup", "exchange", "expire", "transfer", "payment", "coupon"],
+                                  description="YB5YxVquVYsbDyysRisRQ9ectqoj4yKOsEPCrpQPvSjUDltH57y",
+                                  start="2021-01-19T21:43:56.000000Z",
+                                  to="2022-12-27T05:42:23.000000Z"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_transfers_v2_14(self):
         response = client.send(pp.ListTransfersV2(
-                                  shop_name="KagjGEM3GfsC9B0w8zKt6bQig1LgqOPtR6wzZdUh56Q0WZf8IPC7BRlPxu7PJAL2SSrdIkCx2w3UniyERaYjCV8kJefHmgXwlVomKPcnp5Z68uiRVcRs6iSVq6CAE1cykbPfFVTBynTVWrp1vTM1qsdO4ANmXuI4",
-                                  customer_id="d9defb96-653e-4070-acea-e661c4734461",
-                                  customer_name="jMjNf8XzKneiyaJFmKrTqfSFemIMfA7XBmcoIx81EXrZTOXzCYdt",
-                                  transaction_id="f564454e-8e63-49d3-a325-e3b5cf7b91b0",
-                                  private_money_id="ce716454-b5d2-49ad-9468-c276f58246bb",
+                                  shop_name="pO4lTbJ9dqwKn5NSHIJ7mbc5qbOnYCYxA4AjI",
+                                  customer_id="7c15b5fc-91b4-4c37-b0af-55a89af1aca7",
+                                  customer_name="qtIsaCpt80GzH1FRWe6zLcwMHaeJGFXqwAY75stQD6SAh41fZii84vybd1Jsf0jR3rzbwtxyn2FAh1zUedGEpNztrZH4AytTHxVvHVgjPvTnTRbAGxJFBzSBdN9rH7Ml90EeuZgaP20pyyEjfyZnRCBHpzVqBZqNRFUo9BhqQxq9FR8VF2gH7EA",
+                                  transaction_id="74d6c0ee-606c-4fc6-aa14-9219c90ee445",
+                                  private_money_id="e7281ee7-f283-49cd-bcaf-0ded7f98df29",
                                   is_modified=False,
-                                  transaction_types=["exchange", "topup", "expire", "transfer"],
-                                  next_page_cursor_id="b06f04e1-4cd9-4cf4-987e-d2785c82c77e",
-                                  prev_page_cursor_id="72fa7747-a9c8-4bbd-b210-00b518cb02a9",
-                                  per_page=579,
-                                  transfer_types=["coupon", "payment", "cashback"],
-                                  description="0CKWqFPB7cXogK3lXTpk1ACQL5MC28qImQU81piDFRyBs61QA64ubFmiSNGPB6PWeR4fjojaItl7qDDnWfDz83II3SsVbG",
-                                  start="2020-04-08T02:34:10.000000+09:00",
-                                  to="2024-05-07T09:48:34.000000+09:00"
+                                  transaction_types=["payment", "topup", "expire", "transfer", "cashback", "exchange"],
+                                  next_page_cursor_id="5aaff583-e5be-4ac2-9605-55604b33fb24",
+                                  prev_page_cursor_id="fdcfbc5b-ac4e-4bb0-80d4-1fff6ec18838",
+                                  per_page=131,
+                                  transfer_types=["topup", "exchange", "coupon", "expire"],
+                                  description="oRyTXgPVT4AzeoZEOYuu1RyqlWwyCNVezTDDCUN00F2Vhn3XqmCSMDzeEDKcNHBIUBy90lbfxByyLgJllatyS0exoVZwn",
+                                  start="2021-03-10T04:34:37.000000Z",
+                                  to="2025-04-06T18:13:06.000000Z"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_transfers_v2_15(self):
         response = client.send(pp.ListTransfersV2(
-                                  shop_id="1f497aaa-58ca-469a-be9b-00c14a74767a",
-                                  shop_name="xkiC6dodh0lsFj5rFalo907TQSGuwj68ad9K1XBWVYxIt1hLKB6GROESgi9KMGwAvzt2XDFLhsltsxjHevXAeaqJQdiPE4BeJCcIbjYCJA60910zNdhVnyX38KqA1fvkyrtqclFU9jljopVrQrbVbWUr1E2HhlclCQRWx8FEGzWXdbWzamEGXFO5PHpjsIS4SoPDOBVrOHFo8xzE1tgCZyMtCfVQXKeHEaCm6v4bOQPdSecOojChL",
-                                  customer_id="5dcc3900-eb68-42f5-8593-f6ae4d1a34e1",
-                                  customer_name="RbGgSXO57u6cTOWbPpHzT8SBHVxA4uTsQXNQLVTsa7Enw9cnxOrtkyrYkFM2fsUIFcBc3xUhfvCQABU9yhdPlghv2VJu1lljCVVYSCGNIDxlSztThgX67n2PgbzVLVHAuqNRKSFbkQ",
-                                  transaction_id="11b1dc20-7477-4b5b-ba45-5cf8642c05e9",
-                                  private_money_id="4c8990b4-61e3-42d3-b02d-a87644255373",
+                                  shop_id="d516f594-aa59-4fb3-8dad-a81b5570867d",
+                                  shop_name="JVkSKFu78PD8Nsi0ghqRiHIikuwLQAi0YorDHLBFs4pFpuxUcIrb43g0nK7tb3btHVGJJQejQb3sdWfi2Z2Wvmx0ZqLEwxwj8U4A4KZBQdv",
+                                  customer_id="32d122f5-6d51-40e2-b5e0-ac0dc3c5ba51",
+                                  customer_name="YDYt7CyctlhtAXqf6uerXtmVp3iPqRhb6DnnO4ty38IkhtTfaQWLqhFbA6TsT4rGSzhCtzrrQIFeK35Z3EF7SWnLL5qkY",
+                                  transaction_id="1fb859a4-ab50-4547-a10a-57827ebbb13d",
+                                  private_money_id="d4849b27-8cba-4754-a409-2938fa916389",
                                   is_modified=False,
-                                  transaction_types=["topup"],
-                                  next_page_cursor_id="cbe27a6c-6995-4996-8759-7007989abf04",
-                                  prev_page_cursor_id="1daa7de5-15ee-41a0-9076-4d39eaddc862",
-                                  per_page=603,
-                                  transfer_types=["topup", "transfer"],
-                                  description="sQ10G0TlaGn12vl36ewyKaB6SHyKZZn5jR7G8GZiBnTaUgy7N3mTLemMZeIt74bhbcXSO6mPwoW10WefOcGtzUdCSHPXTvrjAoBOkNuRh5LysIScuFPNL3GzqnMP5NZDifqWbMDgjD68XvQQECUSjutOosOC5LZHJPKApv7OfARAe3RnFd9nT02p1eaStaJkR7kpHzH",
-                                  start="2016-11-08T13:11:50.000000+09:00",
-                                  to="2022-04-02T01:16:54.000000+09:00"
+                                  transaction_types=["payment", "exchange", "transfer", "expire", "topup", "cashback"],
+                                  next_page_cursor_id="72decb62-1cea-44e9-9e1d-b018f61f4136",
+                                  prev_page_cursor_id="1815f202-f891-4385-bdee-0b446dd55894",
+                                  per_page=511,
+                                  transfer_types=["exchange", "coupon", "campaign"],
+                                  description="eE996vZBp0zzwPN5DIhcy9tg03Xeu2UN5sKl9fYJxmaO84WKi",
+                                  start="2025-02-02T20:44:23.000000Z",
+                                  to="2022-09-18T09:42:09.000000Z"
         ))
         self.assertNotEqual(response.status_code, 400)
 
-    def test_create_organization_0(self):
-        response = client.send(pp.CreateOrganization(
-                                  "1LETy",
-                                  "ZPKAQBgMPUGbEnOIPDq2CLAbjX1Djn2XWSwjThwDAcCZY6YtawxId266BZVwZVmHyD1UpI6d83jiZ9uTzP4YjXFZyT5vOgrOJYvJ3LNaiOIeknn7RYaYRsrRINAXrIL7Vokdd5FDSOlHXvPdm6smgX4oL5ObnN7xsSw29hgwVKZ3q7f2G5Csbw765Up6rDPAvgZ3Lft7QdtUV0xBtYCY2peqF3OIROYkI2OmNuQfBQja",
-                                  ["0e3d9e11-0003-4ee2-8399-f215bd941cf5", "537efd5a-3cc1-4437-a016-4f49c457ec11", "b4acfe2e-625d-4bb2-abb7-fe505e1360d0", "0324324b-1a2e-4317-81d7-afbda5d2e56e", "d7832ebf-9c96-4f2b-a58e-e346f3c74013"],
-                                  "0PAVPIqlw5@xHvb.com",
-                                  "neEVFJO1vU@ShUN.com"
+    def test_list_organizations_0(self):
+        response = client.send(pp.ListOrganizations(
+                                  "77091b06-3d70-44fa-bff9-abe052658bc6"
         ))
         self.assertNotEqual(response.status_code, 400)
 
-    def test_create_organization_1(self):
-        response = client.send(pp.CreateOrganization(
-                                  "1LETy",
-                                  "ZPKAQBgMPUGbEnOIPDq2CLAbjX1Djn2XWSwjThwDAcCZY6YtawxId266BZVwZVmHyD1UpI6d83jiZ9uTzP4YjXFZyT5vOgrOJYvJ3LNaiOIeknn7RYaYRsrRINAXrIL7Vokdd5FDSOlHXvPdm6smgX4oL5ObnN7xsSw29hgwVKZ3q7f2G5Csbw765Up6rDPAvgZ3Lft7QdtUV0xBtYCY2peqF3OIROYkI2OmNuQfBQja",
-                                  ["0e3d9e11-0003-4ee2-8399-f215bd941cf5", "537efd5a-3cc1-4437-a016-4f49c457ec11", "b4acfe2e-625d-4bb2-abb7-fe505e1360d0", "0324324b-1a2e-4317-81d7-afbda5d2e56e", "d7832ebf-9c96-4f2b-a58e-e346f3c74013"],
-                                  "0PAVPIqlw5@xHvb.com",
-                                  "neEVFJO1vU@ShUN.com",
-                                  contact_name="iyLhmVZrKtrf8fOXhtgmBfxN2mKWhxAVox0bSxOCeaMv9sV8PCVe8gGULXYHHQVItPbBIgVhkWUs64kjPOvg7oS"
+    def test_list_organizations_1(self):
+        response = client.send(pp.ListOrganizations(
+                                  "77091b06-3d70-44fa-bff9-abe052658bc6",
+                                  code="c0O5qDH6"
         ))
         self.assertNotEqual(response.status_code, 400)
 
-    def test_create_organization_2(self):
-        response = client.send(pp.CreateOrganization(
-                                  "1LETy",
-                                  "ZPKAQBgMPUGbEnOIPDq2CLAbjX1Djn2XWSwjThwDAcCZY6YtawxId266BZVwZVmHyD1UpI6d83jiZ9uTzP4YjXFZyT5vOgrOJYvJ3LNaiOIeknn7RYaYRsrRINAXrIL7Vokdd5FDSOlHXvPdm6smgX4oL5ObnN7xsSw29hgwVKZ3q7f2G5Csbw765Up6rDPAvgZ3Lft7QdtUV0xBtYCY2peqF3OIROYkI2OmNuQfBQja",
-                                  ["0e3d9e11-0003-4ee2-8399-f215bd941cf5", "537efd5a-3cc1-4437-a016-4f49c457ec11", "b4acfe2e-625d-4bb2-abb7-fe505e1360d0", "0324324b-1a2e-4317-81d7-afbda5d2e56e", "d7832ebf-9c96-4f2b-a58e-e346f3c74013"],
-                                  "0PAVPIqlw5@xHvb.com",
-                                  "neEVFJO1vU@ShUN.com",
-                                  bank_account_holder_name="7",
-                                  contact_name="fBaWrA04virOZrFH9lNvZWQOhHbcPsVzudSsho4D4Vucvtqjo5TxhMxHQM1DHEyhnbl8ZtFdCq3PjvYo6pCNI1mfIpJ9f4NksvlPiC4Vu3XtdH9FsNEZ86HjJPe4Lp6lJfyvAGgrUXXkhfXnecR"
+    def test_list_organizations_2(self):
+        response = client.send(pp.ListOrganizations(
+                                  "77091b06-3d70-44fa-bff9-abe052658bc6",
+                                  name="AdyV",
+                                  code="n4o55A"
         ))
         self.assertNotEqual(response.status_code, 400)
 
-    def test_create_organization_3(self):
-        response = client.send(pp.CreateOrganization(
-                                  "1LETy",
-                                  "ZPKAQBgMPUGbEnOIPDq2CLAbjX1Djn2XWSwjThwDAcCZY6YtawxId266BZVwZVmHyD1UpI6d83jiZ9uTzP4YjXFZyT5vOgrOJYvJ3LNaiOIeknn7RYaYRsrRINAXrIL7Vokdd5FDSOlHXvPdm6smgX4oL5ObnN7xsSw29hgwVKZ3q7f2G5Csbw765Up6rDPAvgZ3Lft7QdtUV0xBtYCY2peqF3OIROYkI2OmNuQfBQja",
-                                  ["0e3d9e11-0003-4ee2-8399-f215bd941cf5", "537efd5a-3cc1-4437-a016-4f49c457ec11", "b4acfe2e-625d-4bb2-abb7-fe505e1360d0", "0324324b-1a2e-4317-81d7-afbda5d2e56e", "d7832ebf-9c96-4f2b-a58e-e346f3c74013"],
-                                  "0PAVPIqlw5@xHvb.com",
-                                  "neEVFJO1vU@ShUN.com",
-                                  bank_account="369991",
-                                  bank_account_holder_name=" ",
-                                  contact_name="xGnpm1kxDBXzRf1f9JiZjCJBrJjt5kCWz5zMWjynyv6K"
+    def test_list_organizations_3(self):
+        response = client.send(pp.ListOrganizations(
+                                  "77091b06-3d70-44fa-bff9-abe052658bc6",
+                                  per_page=1554,
+                                  name="5DSTN7F",
+                                  code="Y8t8MIK7G"
         ))
         self.assertNotEqual(response.status_code, 400)
 
-    def test_create_organization_4(self):
+    def test_list_organizations_4(self):
+        response = client.send(pp.ListOrganizations(
+                                  "77091b06-3d70-44fa-bff9-abe052658bc6",
+                                  page=1530,
+                                  per_page=78,
+                                  name="0XmxAy",
+                                  code="3ATlX"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_organization_0(self):
         response = client.send(pp.CreateOrganization(
-                                  "1LETy",
-                                  "ZPKAQBgMPUGbEnOIPDq2CLAbjX1Djn2XWSwjThwDAcCZY6YtawxId266BZVwZVmHyD1UpI6d83jiZ9uTzP4YjXFZyT5vOgrOJYvJ3LNaiOIeknn7RYaYRsrRINAXrIL7Vokdd5FDSOlHXvPdm6smgX4oL5ObnN7xsSw29hgwVKZ3q7f2G5Csbw765Up6rDPAvgZ3Lft7QdtUV0xBtYCY2peqF3OIROYkI2OmNuQfBQja",
-                                  ["0e3d9e11-0003-4ee2-8399-f215bd941cf5", "537efd5a-3cc1-4437-a016-4f49c457ec11", "b4acfe2e-625d-4bb2-abb7-fe505e1360d0", "0324324b-1a2e-4317-81d7-afbda5d2e56e", "d7832ebf-9c96-4f2b-a58e-e346f3c74013"],
-                                  "0PAVPIqlw5@xHvb.com",
-                                  "neEVFJO1vU@ShUN.com",
-                                  bank_account_type="current",
+                                  "a",
+                                  "9m3Ela8zcR94JgHtiXrfi45gdORj3Jla3Pfb8OgNhhqnfBQjVsClPPd45bUBovESo5O7DwwlNZPFf6xG0YeVkLQLhc7hbuv3B8S8pH3eqOx8cOR3TFR9a8hMUMtt7RdIKeKSciqwdkkgvqZQpEwqxxIpXTryBWY7YmTtJYjps5n0FjmTFvO6PZjVX8",
+                                  ["5a799f1c-5237-4ed0-954c-65fa44004252", "a172d429-d6c0-4532-b9ef-915415503b05", "8cd43c43-3d9f-43f6-8c12-aa80b18582b1", "2c4b96fd-34b6-46e6-9058-0d1e0ec8a96a", "b9f31219-eb68-490c-9627-af6cfb425bbb", "723f82cc-e4f0-4e8e-8be7-88824d9075f4", "3fe77c72-d293-4909-b004-e3616ff5abbb", "c04ecb8d-ac58-4c8d-bbed-75ecf09e1530", "81e3e2c9-5938-43be-95aa-347d4033128c", "5c4107c1-11b7-481f-b350-0f8aa545a159"],
+                                  "x7KWs9Grfk@cGFx.com",
+                                  "lkTYjYgPlx@nzpf.com"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_organization_1(self):
+        response = client.send(pp.CreateOrganization(
+                                  "a",
+                                  "9m3Ela8zcR94JgHtiXrfi45gdORj3Jla3Pfb8OgNhhqnfBQjVsClPPd45bUBovESo5O7DwwlNZPFf6xG0YeVkLQLhc7hbuv3B8S8pH3eqOx8cOR3TFR9a8hMUMtt7RdIKeKSciqwdkkgvqZQpEwqxxIpXTryBWY7YmTtJYjps5n0FjmTFvO6PZjVX8",
+                                  ["5a799f1c-5237-4ed0-954c-65fa44004252", "a172d429-d6c0-4532-b9ef-915415503b05", "8cd43c43-3d9f-43f6-8c12-aa80b18582b1", "2c4b96fd-34b6-46e6-9058-0d1e0ec8a96a", "b9f31219-eb68-490c-9627-af6cfb425bbb", "723f82cc-e4f0-4e8e-8be7-88824d9075f4", "3fe77c72-d293-4909-b004-e3616ff5abbb", "c04ecb8d-ac58-4c8d-bbed-75ecf09e1530", "81e3e2c9-5938-43be-95aa-347d4033128c", "5c4107c1-11b7-481f-b350-0f8aa545a159"],
+                                  "x7KWs9Grfk@cGFx.com",
+                                  "lkTYjYgPlx@nzpf.com",
+                                  contact_name="9XcHDiw8sqMTw9CGMrpupnZP3tXLGdI4BQeMKNjNC6v4LdJ9q0nifAUuGHUnCvc4A5HlCo2a7OllUlOCGYapVIyu0AtoOYT"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_organization_2(self):
+        response = client.send(pp.CreateOrganization(
+                                  "a",
+                                  "9m3Ela8zcR94JgHtiXrfi45gdORj3Jla3Pfb8OgNhhqnfBQjVsClPPd45bUBovESo5O7DwwlNZPFf6xG0YeVkLQLhc7hbuv3B8S8pH3eqOx8cOR3TFR9a8hMUMtt7RdIKeKSciqwdkkgvqZQpEwqxxIpXTryBWY7YmTtJYjps5n0FjmTFvO6PZjVX8",
+                                  ["5a799f1c-5237-4ed0-954c-65fa44004252", "a172d429-d6c0-4532-b9ef-915415503b05", "8cd43c43-3d9f-43f6-8c12-aa80b18582b1", "2c4b96fd-34b6-46e6-9058-0d1e0ec8a96a", "b9f31219-eb68-490c-9627-af6cfb425bbb", "723f82cc-e4f0-4e8e-8be7-88824d9075f4", "3fe77c72-d293-4909-b004-e3616ff5abbb", "c04ecb8d-ac58-4c8d-bbed-75ecf09e1530", "81e3e2c9-5938-43be-95aa-347d4033128c", "5c4107c1-11b7-481f-b350-0f8aa545a159"],
+                                  "x7KWs9Grfk@cGFx.com",
+                                  "lkTYjYgPlx@nzpf.com",
+                                  bank_account_holder_name="ﾕ",
+                                  contact_name="8xXDGe31wijgcuuWSuuP7qXIDVYzNjNiLWADYEWxDRpy5o7rEN4eiDqYJVEg5UZOhJAbHwNLgu8Nky9WURMByjAKTzdQ2llGcXl5Cw9ahtSHvWHxDbu1GOKxoKM3BkiQ5JCNLUQPpDOoGNkBoKxTvABwe"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_organization_3(self):
+        response = client.send(pp.CreateOrganization(
+                                  "a",
+                                  "9m3Ela8zcR94JgHtiXrfi45gdORj3Jla3Pfb8OgNhhqnfBQjVsClPPd45bUBovESo5O7DwwlNZPFf6xG0YeVkLQLhc7hbuv3B8S8pH3eqOx8cOR3TFR9a8hMUMtt7RdIKeKSciqwdkkgvqZQpEwqxxIpXTryBWY7YmTtJYjps5n0FjmTFvO6PZjVX8",
+                                  ["5a799f1c-5237-4ed0-954c-65fa44004252", "a172d429-d6c0-4532-b9ef-915415503b05", "8cd43c43-3d9f-43f6-8c12-aa80b18582b1", "2c4b96fd-34b6-46e6-9058-0d1e0ec8a96a", "b9f31219-eb68-490c-9627-af6cfb425bbb", "723f82cc-e4f0-4e8e-8be7-88824d9075f4", "3fe77c72-d293-4909-b004-e3616ff5abbb", "c04ecb8d-ac58-4c8d-bbed-75ecf09e1530", "81e3e2c9-5938-43be-95aa-347d4033128c", "5c4107c1-11b7-481f-b350-0f8aa545a159"],
+                                  "x7KWs9Grfk@cGFx.com",
+                                  "lkTYjYgPlx@nzpf.com",
                                   bank_account="",
-                                  bank_account_holder_name="ｸ",
-                                  contact_name="ACMY5nowhDUZD5IZKMp0STmYDwTtHP0EcP6hogkn6nAjgTjLkVtsanieCAlqrCK8PwmGod9YcEsgY2DC2Vj8cKXwgERagqK"
+                                  bank_account_holder_name=")",
+                                  contact_name="KCZwv4PwJOyIcULWzrNeMACItmOkY1pUONfZUthj8CTdPwk2g7DYhFuXWtax2gH7mosTYAgSjd1Lu4N1G4DllEfWLsx2f1PjIk5LFEcZYZR1K1ULgGU5oSrsDCn36n92LJoBnxVWA0Bmx0P3sSh52djDx2E8q2Tl06IVYw4zb7KKLj26g9D4jd9Fi73fT2ekfbMypSoZArmvOOmVqy7LHITpCScM5po6zQrUB5yHtoGfycJYa2GIKQCGBFw"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_organization_4(self):
+        response = client.send(pp.CreateOrganization(
+                                  "a",
+                                  "9m3Ela8zcR94JgHtiXrfi45gdORj3Jla3Pfb8OgNhhqnfBQjVsClPPd45bUBovESo5O7DwwlNZPFf6xG0YeVkLQLhc7hbuv3B8S8pH3eqOx8cOR3TFR9a8hMUMtt7RdIKeKSciqwdkkgvqZQpEwqxxIpXTryBWY7YmTtJYjps5n0FjmTFvO6PZjVX8",
+                                  ["5a799f1c-5237-4ed0-954c-65fa44004252", "a172d429-d6c0-4532-b9ef-915415503b05", "8cd43c43-3d9f-43f6-8c12-aa80b18582b1", "2c4b96fd-34b6-46e6-9058-0d1e0ec8a96a", "b9f31219-eb68-490c-9627-af6cfb425bbb", "723f82cc-e4f0-4e8e-8be7-88824d9075f4", "3fe77c72-d293-4909-b004-e3616ff5abbb", "c04ecb8d-ac58-4c8d-bbed-75ecf09e1530", "81e3e2c9-5938-43be-95aa-347d4033128c", "5c4107c1-11b7-481f-b350-0f8aa545a159"],
+                                  "x7KWs9Grfk@cGFx.com",
+                                  "lkTYjYgPlx@nzpf.com",
+                                  bank_account_type="other",
+                                  bank_account="48333",
+                                  bank_account_holder_name=")",
+                                  contact_name="tb0sUDamQiJFavfIlsQjs1Uxv98uoxa9cfqdBZBSSyuPsLgc14jRH1daAJWkWpeGVt7BTtK3VwbUSgXIGfDPEPwHED0KtmDzxLUbUeg7w8cIU7UKhxLe1FMHoh3041czvU7tiTGNYlDyRk3aGMps1HN2Oi8GzWre6yIHCge3KvTMWtvAOdqc6t46b4EgFIpDVk2sqQhlAUNF0Kr6ekdB7WSGlsT24mzzvf0u"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_organization_5(self):
         response = client.send(pp.CreateOrganization(
-                                  "1LETy",
-                                  "ZPKAQBgMPUGbEnOIPDq2CLAbjX1Djn2XWSwjThwDAcCZY6YtawxId266BZVwZVmHyD1UpI6d83jiZ9uTzP4YjXFZyT5vOgrOJYvJ3LNaiOIeknn7RYaYRsrRINAXrIL7Vokdd5FDSOlHXvPdm6smgX4oL5ObnN7xsSw29hgwVKZ3q7f2G5Csbw765Up6rDPAvgZ3Lft7QdtUV0xBtYCY2peqF3OIROYkI2OmNuQfBQja",
-                                  ["0e3d9e11-0003-4ee2-8399-f215bd941cf5", "537efd5a-3cc1-4437-a016-4f49c457ec11", "b4acfe2e-625d-4bb2-abb7-fe505e1360d0", "0324324b-1a2e-4317-81d7-afbda5d2e56e", "d7832ebf-9c96-4f2b-a58e-e346f3c74013"],
-                                  "0PAVPIqlw5@xHvb.com",
-                                  "neEVFJO1vU@ShUN.com",
-                                  bank_branch_code="735",
+                                  "a",
+                                  "9m3Ela8zcR94JgHtiXrfi45gdORj3Jla3Pfb8OgNhhqnfBQjVsClPPd45bUBovESo5O7DwwlNZPFf6xG0YeVkLQLhc7hbuv3B8S8pH3eqOx8cOR3TFR9a8hMUMtt7RdIKeKSciqwdkkgvqZQpEwqxxIpXTryBWY7YmTtJYjps5n0FjmTFvO6PZjVX8",
+                                  ["5a799f1c-5237-4ed0-954c-65fa44004252", "a172d429-d6c0-4532-b9ef-915415503b05", "8cd43c43-3d9f-43f6-8c12-aa80b18582b1", "2c4b96fd-34b6-46e6-9058-0d1e0ec8a96a", "b9f31219-eb68-490c-9627-af6cfb425bbb", "723f82cc-e4f0-4e8e-8be7-88824d9075f4", "3fe77c72-d293-4909-b004-e3616ff5abbb", "c04ecb8d-ac58-4c8d-bbed-75ecf09e1530", "81e3e2c9-5938-43be-95aa-347d4033128c", "5c4107c1-11b7-481f-b350-0f8aa545a159"],
+                                  "x7KWs9Grfk@cGFx.com",
+                                  "lkTYjYgPlx@nzpf.com",
+                                  bank_branch_code="866",
                                   bank_account_type="other",
-                                  bank_account="98",
-                                  bank_account_holder_name="(",
-                                  contact_name="nCdyvxKvSOqTvlYodFyg21jiUhByaB66BNcapTyLZWxad9qMqfjUCaVImVTzD7ogGgbbuuhXvkkv63jx716j9qYeQTBsHYxIvY8A2kLLFzDvGgwT6RWA89QL9Vp03GIkTp5cuONNVFc9v9gdz5hWfe1"
+                                  bank_account="1828269",
+                                  bank_account_holder_name="｢",
+                                  contact_name="poYOkLYbJM46YGKDJVQANtfUdHVcsouxX3xI9CHdZGkENDSkRyfWKAxjQWjCB8nFcqmENfDor1zgwF9x3xZsR5bLJPhH3FEHzbfU4cD6smA"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_organization_6(self):
         response = client.send(pp.CreateOrganization(
-                                  "1LETy",
-                                  "ZPKAQBgMPUGbEnOIPDq2CLAbjX1Djn2XWSwjThwDAcCZY6YtawxId266BZVwZVmHyD1UpI6d83jiZ9uTzP4YjXFZyT5vOgrOJYvJ3LNaiOIeknn7RYaYRsrRINAXrIL7Vokdd5FDSOlHXvPdm6smgX4oL5ObnN7xsSw29hgwVKZ3q7f2G5Csbw765Up6rDPAvgZ3Lft7QdtUV0xBtYCY2peqF3OIROYkI2OmNuQfBQja",
-                                  ["0e3d9e11-0003-4ee2-8399-f215bd941cf5", "537efd5a-3cc1-4437-a016-4f49c457ec11", "b4acfe2e-625d-4bb2-abb7-fe505e1360d0", "0324324b-1a2e-4317-81d7-afbda5d2e56e", "d7832ebf-9c96-4f2b-a58e-e346f3c74013"],
-                                  "0PAVPIqlw5@xHvb.com",
-                                  "neEVFJO1vU@ShUN.com",
-                                  bank_branch_name="2XdVSiGrZna",
-                                  bank_branch_code="",
-                                  bank_account_type="other",
-                                  bank_account="047167",
-                                  bank_account_holder_name="Z",
-                                  contact_name="vsUjS1TQRpGXwusKVKoDVo20K4pvhym0ixofoZrqcO9xmrGI7Yq8b7zKf4Zjq1K3jlOjYQfsbEScihoRIGPs251h35D6RqOUv7GYFIehbCx0by4HajPsFnZyPkDxfEbj7EZcJNWpppH7JtG7uLWNnv9bkjUCUVfq92VQxP0FMeHm2Gc8mWOktzQrw5GjJ8uGQSasHDUHsEK1qalH"
+                                  "a",
+                                  "9m3Ela8zcR94JgHtiXrfi45gdORj3Jla3Pfb8OgNhhqnfBQjVsClPPd45bUBovESo5O7DwwlNZPFf6xG0YeVkLQLhc7hbuv3B8S8pH3eqOx8cOR3TFR9a8hMUMtt7RdIKeKSciqwdkkgvqZQpEwqxxIpXTryBWY7YmTtJYjps5n0FjmTFvO6PZjVX8",
+                                  ["5a799f1c-5237-4ed0-954c-65fa44004252", "a172d429-d6c0-4532-b9ef-915415503b05", "8cd43c43-3d9f-43f6-8c12-aa80b18582b1", "2c4b96fd-34b6-46e6-9058-0d1e0ec8a96a", "b9f31219-eb68-490c-9627-af6cfb425bbb", "723f82cc-e4f0-4e8e-8be7-88824d9075f4", "3fe77c72-d293-4909-b004-e3616ff5abbb", "c04ecb8d-ac58-4c8d-bbed-75ecf09e1530", "81e3e2c9-5938-43be-95aa-347d4033128c", "5c4107c1-11b7-481f-b350-0f8aa545a159"],
+                                  "x7KWs9Grfk@cGFx.com",
+                                  "lkTYjYgPlx@nzpf.com",
+                                  bank_branch_name="qngifjNikqDE3OudXpYhNwFWUAKOnWlhna0lYN",
+                                  bank_branch_code="125",
+                                  bank_account_type="current",
+                                  bank_account="631429",
+                                  bank_account_holder_name="A",
+                                  contact_name="G5aE3q4gTN93gHJ"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_organization_7(self):
         response = client.send(pp.CreateOrganization(
-                                  "1LETy",
-                                  "ZPKAQBgMPUGbEnOIPDq2CLAbjX1Djn2XWSwjThwDAcCZY6YtawxId266BZVwZVmHyD1UpI6d83jiZ9uTzP4YjXFZyT5vOgrOJYvJ3LNaiOIeknn7RYaYRsrRINAXrIL7Vokdd5FDSOlHXvPdm6smgX4oL5ObnN7xsSw29hgwVKZ3q7f2G5Csbw765Up6rDPAvgZ3Lft7QdtUV0xBtYCY2peqF3OIROYkI2OmNuQfBQja",
-                                  ["0e3d9e11-0003-4ee2-8399-f215bd941cf5", "537efd5a-3cc1-4437-a016-4f49c457ec11", "b4acfe2e-625d-4bb2-abb7-fe505e1360d0", "0324324b-1a2e-4317-81d7-afbda5d2e56e", "d7832ebf-9c96-4f2b-a58e-e346f3c74013"],
-                                  "0PAVPIqlw5@xHvb.com",
-                                  "neEVFJO1vU@ShUN.com",
+                                  "a",
+                                  "9m3Ela8zcR94JgHtiXrfi45gdORj3Jla3Pfb8OgNhhqnfBQjVsClPPd45bUBovESo5O7DwwlNZPFf6xG0YeVkLQLhc7hbuv3B8S8pH3eqOx8cOR3TFR9a8hMUMtt7RdIKeKSciqwdkkgvqZQpEwqxxIpXTryBWY7YmTtJYjps5n0FjmTFvO6PZjVX8",
+                                  ["5a799f1c-5237-4ed0-954c-65fa44004252", "a172d429-d6c0-4532-b9ef-915415503b05", "8cd43c43-3d9f-43f6-8c12-aa80b18582b1", "2c4b96fd-34b6-46e6-9058-0d1e0ec8a96a", "b9f31219-eb68-490c-9627-af6cfb425bbb", "723f82cc-e4f0-4e8e-8be7-88824d9075f4", "3fe77c72-d293-4909-b004-e3616ff5abbb", "c04ecb8d-ac58-4c8d-bbed-75ecf09e1530", "81e3e2c9-5938-43be-95aa-347d4033128c", "5c4107c1-11b7-481f-b350-0f8aa545a159"],
+                                  "x7KWs9Grfk@cGFx.com",
+                                  "lkTYjYgPlx@nzpf.com",
                                   bank_code="",
-                                  bank_branch_name="wNsBFFvhBAfKd9pYjNXINvRo8XrSFeFKEUniweS0acjh4qrH7klovo9x1qmkFFjd",
-                                  bank_branch_code="189",
+                                  bank_branch_name="A1FfneXYRV1FBu9VqwmK2QWEkaIk3Nf304AeRoMB",
+                                  bank_branch_code="979",
                                   bank_account_type="other",
-                                  bank_account="",
-                                  bank_account_holder_name="V",
-                                  contact_name="dCsP"
+                                  bank_account="334938",
+                                  bank_account_holder_name=" ",
+                                  contact_name="Q0a4OPrt2tro65RM4SYyWPQ4b5EvFhF0JaiWpiphXqNgzf5XFTYAHJdFeGZi1JIa9NTrkMeAKNU2"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_organization_8(self):
         response = client.send(pp.CreateOrganization(
-                                  "1LETy",
-                                  "ZPKAQBgMPUGbEnOIPDq2CLAbjX1Djn2XWSwjThwDAcCZY6YtawxId266BZVwZVmHyD1UpI6d83jiZ9uTzP4YjXFZyT5vOgrOJYvJ3LNaiOIeknn7RYaYRsrRINAXrIL7Vokdd5FDSOlHXvPdm6smgX4oL5ObnN7xsSw29hgwVKZ3q7f2G5Csbw765Up6rDPAvgZ3Lft7QdtUV0xBtYCY2peqF3OIROYkI2OmNuQfBQja",
-                                  ["0e3d9e11-0003-4ee2-8399-f215bd941cf5", "537efd5a-3cc1-4437-a016-4f49c457ec11", "b4acfe2e-625d-4bb2-abb7-fe505e1360d0", "0324324b-1a2e-4317-81d7-afbda5d2e56e", "d7832ebf-9c96-4f2b-a58e-e346f3c74013"],
-                                  "0PAVPIqlw5@xHvb.com",
-                                  "neEVFJO1vU@ShUN.com",
-                                  bank_name="1zaX0YEC",
-                                  bank_code="0533",
-                                  bank_branch_name="S9uGcWpU50I9EOF1CbY7DQ",
-                                  bank_branch_code="670",
-                                  bank_account_type="other",
-                                  bank_account="9439628",
-                                  bank_account_holder_name=" ",
-                                  contact_name="6OljXWNCah5Q3Axy3FHS7HHlL9hetKrZtdVOY5mSWLpoOzWuTFDp0xZJMmmZyM3omHaaYolohp4jua"
+                                  "a",
+                                  "9m3Ela8zcR94JgHtiXrfi45gdORj3Jla3Pfb8OgNhhqnfBQjVsClPPd45bUBovESo5O7DwwlNZPFf6xG0YeVkLQLhc7hbuv3B8S8pH3eqOx8cOR3TFR9a8hMUMtt7RdIKeKSciqwdkkgvqZQpEwqxxIpXTryBWY7YmTtJYjps5n0FjmTFvO6PZjVX8",
+                                  ["5a799f1c-5237-4ed0-954c-65fa44004252", "a172d429-d6c0-4532-b9ef-915415503b05", "8cd43c43-3d9f-43f6-8c12-aa80b18582b1", "2c4b96fd-34b6-46e6-9058-0d1e0ec8a96a", "b9f31219-eb68-490c-9627-af6cfb425bbb", "723f82cc-e4f0-4e8e-8be7-88824d9075f4", "3fe77c72-d293-4909-b004-e3616ff5abbb", "c04ecb8d-ac58-4c8d-bbed-75ecf09e1530", "81e3e2c9-5938-43be-95aa-347d4033128c", "5c4107c1-11b7-481f-b350-0f8aa545a159"],
+                                  "x7KWs9Grfk@cGFx.com",
+                                  "lkTYjYgPlx@nzpf.com",
+                                  bank_name="qNMrw4Jay2YBOfulEIFK5T7Dc8oOst1MM9PmjRDk75J779k3qO5Tt2uQGKACR",
+                                  bank_code="4758",
+                                  bank_branch_name="1v8dvD0ApeDNVXLZhDHmMPohPl8jvZE0kmWyBRnvtcRhoA",
+                                  bank_branch_code="",
+                                  bank_account_type="current",
+                                  bank_account="272027",
+                                  bank_account_holder_name=".",
+                                  contact_name="EBxJxS2dp5fON6g3h5b1QYmVCtk78JxdSgtNZkgpDcQrvPvYu9rBGsdWvnLspaw0X1BOuUcrgAIrlVAxUxxoJ3m2cOYFN3fJYwkLiuasNI3TQ4Ubb8U4LoGEUF"
         ))
         self.assertNotEqual(response.status_code, 400)
 
@@ -2639,355 +3322,386 @@ def test_list_shops_0(self):
 
     def test_list_shops_1(self):
         response = client.send(pp.ListShops(
-                                  per_page=2911
+                                  per_page=1552
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_shops_2(self):
         response = client.send(pp.ListShops(
-                                  page=3096,
-                                  per_page=7801
+                                  page=3451,
+                                  per_page=7630
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_shops_3(self):
         response = client.send(pp.ListShops(
-                                  external_id="Rzzc4S4bskUY0GUghtLrKdmw4Mj2vrs21Q3Q",
-                                  page=7668,
-                                  per_page=1177
+                                  with_disabled=False,
+                                  page=1618,
+                                  per_page=2029
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_shops_4(self):
         response = client.send(pp.ListShops(
-                                  email="cjDt5dNl9I@acbc.com",
-                                  external_id="U5Qd92Qhefxi61LsaPXprVMDsZV4dkyP5lnQ",
-                                  page=5477,
-                                  per_page=6460
+                                  external_id="9WdfwN1GBXrbSDIYZlYLOis5sB",
+                                  with_disabled=True,
+                                  page=4105,
+                                  per_page=6487
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_shops_5(self):
         response = client.send(pp.ListShops(
-                                  tel="0777572-2256",
-                                  email="sLa4vnCWV1@QVss.com",
-                                  external_id="1Im12",
-                                  page=7841,
-                                  per_page=4055
+                                  email="50E243Lt7Q@0CkQ.com",
+                                  external_id="GlHLmFUomkHrvNClWFSWTgMn5wd",
+                                  with_disabled=True,
+                                  page=3511,
+                                  per_page=3314
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_shops_6(self):
         response = client.send(pp.ListShops(
-                                  address="LZ8F0u3SxrrH1vjl84VkWU20DVNhF1QRXrkYNIOtHHG8yHnSu7dDAUDz3Ba7wXTCzgYCbLTAWi1ohaetMA7WNeaonbTVSEX134CEzJmLXodVipQoaS9jpxZmBe1IVqn6l0xvjbPmp4eCBlLWO5LUEEnWeZcSGLtIalNYra2M0CM",
-                                  tel="06-1527855",
-                                  email="MWb2crhAOj@Ag46.com",
-                                  external_id="xwepf8NCoyrEsYCM3co0m5f7",
-                                  page=4443,
-                                  per_page=5863
+                                  tel="00221408-867",
+                                  email="mfQbT09Lp6@65rg.com",
+                                  external_id="0d7eGIT",
+                                  with_disabled=True,
+                                  page=6282,
+                                  per_page=1226
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_shops_7(self):
         response = client.send(pp.ListShops(
-                                  postal_code="0788400",
-                                  address="Yp6krkF1YbRmwvxymb30gk854pQwTzmFQFV2uDFFIi8EFMWMycoOxYLCK5275yaFTfZztXuQw4RaWFmQq3HxE1cttSeGuAJyXtCyfPpoPjMTr8crob004vlXwUsthEoZOk8UXfYg8fdpzyB6W0dkeo5uEqZaCFDcbEj9ISDmaB2afkehiCZS1KVArQK",
-                                  tel="097-214-9647",
-                                  email="ArWQhOtANq@AqTE.com",
-                                  external_id="SOlpuGW5FhrbDgJ77XFXl4NKb3zycQebat",
-                                  page=2091,
-                                  per_page=4535
+                                  address="lkYFTO7OJe9dSEOGALN8S7z1KForIQgwx8oosJLK5Rq67VXMpZGMSz7kvOMHYRjzAZw05Ty0nenwzHOaIVwMTjPFMGevwVMeZt8EqIvyxvlj",
+                                  tel="01148-9978",
+                                  email="uqvdSNveWz@WI5L.com",
+                                  external_id="6stQvZvRJLln3CmVmPz2",
+                                  with_disabled=True,
+                                  page=6821,
+                                  per_page=6857
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_shops_8(self):
         response = client.send(pp.ListShops(
-                                  name="OYZVBO6i7OrH9y83QqXgWF2opiVdC1V5KC13EYjcxvJwZkwVKG4nhx51AwtpZIv6uv80k2eZHBR50sHyhGa26QKgCzW91ijqwGz4iwxLvGQu8AItYv5ALjIimTwKA5k60bA481CWCvSZBvCgqCd3bRt5kX2boQl",
-                                  postal_code="996-3686",
-                                  address="mm92pmKFDO4dzrTnN2hnl6jClpe10uHCcbxZraKIE5JV72jwXeLc5ziCQvgnEPrwn8MGASAuLD3WLJqm2LErGcclueraXSCDvzDuhvkKIoa3xl900hkmeYLn1AjsWrIn7wWX9",
-                                  tel="027201-922",
-                                  email="9BG44UnK5k@ugEb.com",
-                                  external_id="8t3i1",
-                                  page=5670,
-                                  per_page=4615
+                                  postal_code="723-7862",
+                                  address="TbiOHYbzW7EYCf76ToHcl8dtzcqD6rqwGDVRdojGjigHpZl8InHQBhMIrdZJT9MnQgGfElkSc",
+                                  tel="0030-091",
+                                  email="y8mUgDyXQY@OSsh.com",
+                                  external_id="pGMCke10fApKjBHnAmdlKiUj9",
+                                  with_disabled=True,
+                                  page=9074,
+                                  per_page=1386
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_shops_9(self):
         response = client.send(pp.ListShops(
-                                  private_money_id="8b384a7f-3cae-4ad5-87bb-8e84edd7dbee",
-                                  name="40madwkN30KxIK4R69fUEBg5VG6fY3BMw3LzyuQr74JtjTjvnySfqw4U7H9TvwAB8eScBfn1Rj6bF7qwsumEcO5tiAsHMCj6rQ8z",
-                                  postal_code="0316822",
-                                  address="Ct8CHPFNDEoS5JXEhny5IMhsG4v0CQldqzxJ6XAxr",
-                                  tel="07-8989809",
-                                  email="ZkaSGkcJKe@radq.com",
-                                  external_id="xAY",
-                                  page=161,
-                                  per_page=9451
+                                  name="anI8FqIXqzelGZDONUAJfl2HMto7yaW0Gkt1pOBZosxcU6W1vFMKN952VUdQ3t63Wpysg20fNhPhFK8mUwq4sfxVOVqIgogobrlTBvrKruisPGcjRxKz0hnHtPEmOFzye10sMn1hLqgZ4Scflk2JdjznjOojFztUyYyUwwyS9B5htgNIDpUpzKyj3BEvYp1TbuySIy9vMfjs9RSVIuRLJamUgod9vJRMh5laf7AaoLGt4pe6BC2Sel2Qniqd",
+                                  postal_code="3999219",
+                                  address="O8CjR0YFmv40UM5wZgue67e0YlrO8E3L7gW6pVOxZ4jRFNa6hoBOihdHvejLf7HUNUhMpEnczyOhMWAP",
+                                  tel="0839435486",
+                                  email="kE6WXDem2r@gSzz.com",
+                                  external_id="Q4D94kR9S0XTdmHcC0cGFAfEKgLlOIWqFF",
+                                  with_disabled=True,
+                                  page=443,
+                                  per_page=2608
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_shops_10(self):
         response = client.send(pp.ListShops(
-                                  organization_code="--",
-                                  private_money_id="7bbcd51c-855b-4c63-8a1e-1c47ebc0d2b8",
-                                  name="6z8KVqUt2uzqsseXYFYKRp",
-                                  postal_code="5750498",
-                                  address="7EPOVCpM4N6VpPYojnLWN99oUAp27dRdHXT0bu9kBbfQDVxrOePjXnEEoR26VQKj59HY9GxwaIDAEfbXDBB3FNIL8Usakbi9ZrjBPmCyriSuUZrqYwq",
-                                  tel="06-6680881",
-                                  email="Q2iQavwvhD@r8TN.com",
-                                  external_id="B4vIcRTpSaCV5",
-                                  page=2541,
-                                  per_page=8445
+                                  private_money_id="6b09653d-cd2c-43ef-a698-d90fe987cd2b",
+                                  name="hzWzCAqp2ZanhrL16oNA3cZ4NnyIEjaN6dYZY4p9bZgscBV3pXiPPiW2qUm4FbQucsmz0GYwY85K8kF9CcO2FCZ7wQECuEigH9T54l9EXWThBhNBtq0Hlr5VUDcRjPWhcWE5Ed0Dp6qm5enNIYlp4WuULLQB3hzZG357PPnWlMQlOO65IFrI1BJMiWPv5dAbUBWta68v79KN",
+                                  postal_code="7318422",
+                                  address="T1kP64chZLEzZTeXAsCUOeSILicKJugPMhkbNW44x5lpizelx6Zw3ANkreMSnigb4Yb3t6kmvyhjD7Y1lgzqIh5MLpUpAeuRnJqWXlTPA3BNnPJo0CH10GQb96Jzcef7f3He1f0QYEkgJnc3iiJ3NDVFkNizSfk2HEbXxayxzM2cghdc2Ljaj2GsuiV9UsDnl2m8nhmhWmlD5AgJ4dO8VEt3",
+                                  tel="0918-0596",
+                                  email="SJX1OiNUbq@HXuS.com",
+                                  external_id="WeM8VL",
+                                  with_disabled=False,
+                                  page=2144,
+                                  per_page=5982
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_list_shops_11(self):
+        response = client.send(pp.ListShops(
+                                  organization_code="oq8n",
+                                  private_money_id="b1efaefa-c7c0-437e-a937-39290d084572",
+                                  name="ucmF8n8VnjFoEs5f64mvXKC0yIYDrOmfZvcfCdES8HHJf50TC5y2HNrP34hD1ux",
+                                  postal_code="9254007",
+                                  address="cAH4LqtvnYdJrsgVxWy0PirB5ccKSjPsnaJy0xSUaUZ3KYipGveNp11WiSr08uCzB0JSt7hZNL6cvcqBnhGnyRs1ZbgEX46DL0EY9Dfg2K2KSBJ32yceHkpeJS53rQYrIERvl0KriuNlhP5RwfRsdmSnnsKFojcLOuuurZaaP5zVuitJAWBnMTQrqQLb4F279GcsdDtM3uSE",
+                                  tel="058-0971-4940",
+                                  email="bZFvX4DTrn@Yj6r.com",
+                                  external_id="9HuWGm",
+                                  with_disabled=True,
+                                  page=5130,
+                                  per_page=1501
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_shop_0(self):
         response = client.send(pp.CreateShop(
-                                  "txsN8hQh23jWL68GyttBaIaA6bT2oimSP8aDw1fwYQo1a8Jvio1NlXmWokT3fCZ0aqdulZZGglvs1mmHvcGJdXuMvjofsG8E4KIFxs3y0EBuTM1S0iPJraQIMtAPJ1JN9CtWW30Uo4UAg9arJ4XCMrwN15cIxDvF6fUC0OQCualYkGbJ73b3nYCrV9uDJehyXJGfZSkx4G3NTiGEBvJP8jVkcC8"
+                                  "xmBEPErYjV24xKSbfZiVFE1mx2zGT1xfUftI30JyBIPqdCDvWnTRvriMMqT8Y2wPxWWXEUoqg0zXsuvc8LF4mbP1hyPDbNVjct5yQNjVn35rDh040vhQYw5VlT5PtGoiFuhhxPNxJedAo6I"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_shop_1(self):
         response = client.send(pp.CreateShop(
-                                  "txsN8hQh23jWL68GyttBaIaA6bT2oimSP8aDw1fwYQo1a8Jvio1NlXmWokT3fCZ0aqdulZZGglvs1mmHvcGJdXuMvjofsG8E4KIFxs3y0EBuTM1S0iPJraQIMtAPJ1JN9CtWW30Uo4UAg9arJ4XCMrwN15cIxDvF6fUC0OQCualYkGbJ73b3nYCrV9uDJehyXJGfZSkx4G3NTiGEBvJP8jVkcC8",
-                                  organization_code="p-56-v-V-d2v6TRcOGYOZVY-7-f7FI"
+                                  "xmBEPErYjV24xKSbfZiVFE1mx2zGT1xfUftI30JyBIPqdCDvWnTRvriMMqT8Y2wPxWWXEUoqg0zXsuvc8LF4mbP1hyPDbNVjct5yQNjVn35rDh040vhQYw5VlT5PtGoiFuhhxPNxJedAo6I",
+                                  organization_code="-3zg1rfy-23h4--sScpLT--l3-NHnF"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_shop_2(self):
         response = client.send(pp.CreateShop(
-                                  "txsN8hQh23jWL68GyttBaIaA6bT2oimSP8aDw1fwYQo1a8Jvio1NlXmWokT3fCZ0aqdulZZGglvs1mmHvcGJdXuMvjofsG8E4KIFxs3y0EBuTM1S0iPJraQIMtAPJ1JN9CtWW30Uo4UAg9arJ4XCMrwN15cIxDvF6fUC0OQCualYkGbJ73b3nYCrV9uDJehyXJGfZSkx4G3NTiGEBvJP8jVkcC8",
-                                  shop_external_id="9utYjWSxV0PYaS2m3w11YOc",
-                                  organization_code="8-U59-5--"
+                                  "xmBEPErYjV24xKSbfZiVFE1mx2zGT1xfUftI30JyBIPqdCDvWnTRvriMMqT8Y2wPxWWXEUoqg0zXsuvc8LF4mbP1hyPDbNVjct5yQNjVn35rDh040vhQYw5VlT5PtGoiFuhhxPNxJedAo6I",
+                                  shop_external_id="CTJpPbbkDn1ZrOBafUzNTBXIV1wGp1Rn3U",
+                                  organization_code="J2oS5lww"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_shop_3(self):
         response = client.send(pp.CreateShop(
-                                  "txsN8hQh23jWL68GyttBaIaA6bT2oimSP8aDw1fwYQo1a8Jvio1NlXmWokT3fCZ0aqdulZZGglvs1mmHvcGJdXuMvjofsG8E4KIFxs3y0EBuTM1S0iPJraQIMtAPJ1JN9CtWW30Uo4UAg9arJ4XCMrwN15cIxDvF6fUC0OQCualYkGbJ73b3nYCrV9uDJehyXJGfZSkx4G3NTiGEBvJP8jVkcC8",
-                                  shop_email="7yg59bUqlz@l8RT.com",
-                                  shop_external_id="pDWU8ApGd",
-                                  organization_code="jha-bSdj"
+                                  "xmBEPErYjV24xKSbfZiVFE1mx2zGT1xfUftI30JyBIPqdCDvWnTRvriMMqT8Y2wPxWWXEUoqg0zXsuvc8LF4mbP1hyPDbNVjct5yQNjVn35rDh040vhQYw5VlT5PtGoiFuhhxPNxJedAo6I",
+                                  shop_email="Zw3XOfvqGL@qQiq.com",
+                                  shop_external_id="G2p9irVNMOOMEypf2sbMz5sG1GgyrO7oaI",
+                                  organization_code="4a3-0w-oq38S3M-E"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_shop_4(self):
         response = client.send(pp.CreateShop(
-                                  "txsN8hQh23jWL68GyttBaIaA6bT2oimSP8aDw1fwYQo1a8Jvio1NlXmWokT3fCZ0aqdulZZGglvs1mmHvcGJdXuMvjofsG8E4KIFxs3y0EBuTM1S0iPJraQIMtAPJ1JN9CtWW30Uo4UAg9arJ4XCMrwN15cIxDvF6fUC0OQCualYkGbJ73b3nYCrV9uDJehyXJGfZSkx4G3NTiGEBvJP8jVkcC8",
-                                  shop_tel="0678722650",
-                                  shop_email="dJBaCIrObU@Z5ZC.com",
-                                  shop_external_id="2jyrMS4IVkYp7d5uCmZcCGs",
-                                  organization_code="-N1ln-E48-Fv5-"
+                                  "xmBEPErYjV24xKSbfZiVFE1mx2zGT1xfUftI30JyBIPqdCDvWnTRvriMMqT8Y2wPxWWXEUoqg0zXsuvc8LF4mbP1hyPDbNVjct5yQNjVn35rDh040vhQYw5VlT5PtGoiFuhhxPNxJedAo6I",
+                                  shop_tel="02508621",
+                                  shop_email="LeCaVZzJ21@Wkjw.com",
+                                  shop_external_id="096vY0YkfqArkVOxtHaQbqrekxj6KVFb",
+                                  organization_code="MHEh1---m-Fx5929--9--D6xF-0-G"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_shop_5(self):
         response = client.send(pp.CreateShop(
-                                  "txsN8hQh23jWL68GyttBaIaA6bT2oimSP8aDw1fwYQo1a8Jvio1NlXmWokT3fCZ0aqdulZZGglvs1mmHvcGJdXuMvjofsG8E4KIFxs3y0EBuTM1S0iPJraQIMtAPJ1JN9CtWW30Uo4UAg9arJ4XCMrwN15cIxDvF6fUC0OQCualYkGbJ73b3nYCrV9uDJehyXJGfZSkx4G3NTiGEBvJP8jVkcC8",
-                                  shop_address="JzkH6S98QQghHEuISiLlQ9W3XgJB2NaMYnzVdH4lBEl49jCEcrfCIMQObL3OoO8rAUeIJB",
-                                  shop_tel="0452533964",
-                                  shop_email="aXhLa6DeYg@ow42.com",
-                                  shop_external_id="LUfdk8XuchSqSb",
-                                  organization_code="h-02Ut-0-37k-tAm-76w"
+                                  "xmBEPErYjV24xKSbfZiVFE1mx2zGT1xfUftI30JyBIPqdCDvWnTRvriMMqT8Y2wPxWWXEUoqg0zXsuvc8LF4mbP1hyPDbNVjct5yQNjVn35rDh040vhQYw5VlT5PtGoiFuhhxPNxJedAo6I",
+                                  shop_address="vld3IeJyhTlRgTT2NxSiphZR",
+                                  shop_tel="02-02-284",
+                                  shop_email="mLSHQhe4tH@Pdlv.com",
+                                  shop_external_id="xC8QojNKN0zq",
+                                  organization_code="BnibTq1Ew3W-m-nAp-be9-"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_shop_6(self):
         response = client.send(pp.CreateShop(
-                                  "txsN8hQh23jWL68GyttBaIaA6bT2oimSP8aDw1fwYQo1a8Jvio1NlXmWokT3fCZ0aqdulZZGglvs1mmHvcGJdXuMvjofsG8E4KIFxs3y0EBuTM1S0iPJraQIMtAPJ1JN9CtWW30Uo4UAg9arJ4XCMrwN15cIxDvF6fUC0OQCualYkGbJ73b3nYCrV9uDJehyXJGfZSkx4G3NTiGEBvJP8jVkcC8",
-                                  shop_postal_code="110-4245",
-                                  shop_address="ItB6ycarokvOGbxOtjjILQMz1SYbigi3uqGy9JaET7yaI77xfyzjZfk3Eg446tN2eZ",
-                                  shop_tel="068248-6277",
-                                  shop_email="9qEb2szCXB@kkHR.com",
-                                  shop_external_id="CtXprtOEGF7FA7qtYAU5",
-                                  organization_code="5-ZJ-DoDe0f-I--q-9-5----"
+                                  "xmBEPErYjV24xKSbfZiVFE1mx2zGT1xfUftI30JyBIPqdCDvWnTRvriMMqT8Y2wPxWWXEUoqg0zXsuvc8LF4mbP1hyPDbNVjct5yQNjVn35rDh040vhQYw5VlT5PtGoiFuhhxPNxJedAo6I",
+                                  shop_postal_code="0323251",
+                                  shop_address="1Twb2rvpiwJLSyhoqY6ZnwMWmZEdo3TtkAPfziyB2HYxaSuFevcjssU2Qn83gWH7hF0T8Nh7eoO6asjOox0RRzWzgJ8qllmxnkMgshIHzbucfDhID3qemlo7JMNmGUe8JtqofMq1TyFcW0Uuc5ug2SpDoeGryI5OQQ9GoRehaS9O2M3fskqX8WbkxbWTp66iGj1lRR9XuMVcs2zeQQbQwb51zUDjfyGpNkIiUDvsd07",
+                                  shop_tel="092-962544",
+                                  shop_email="6GGJ1GXo5U@PiFJ.com",
+                                  shop_external_id="ScrEGcY5I6vYJqEcansSsP2ceIv",
+                                  organization_code="7f5Nil9--5c"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_shop_v2_0(self):
         response = client.send(pp.CreateShopV2(
-                                  "96ZecqU3VE5SiDh8XYp2Sb6qswUL8UZ6V9wGI85BEYoVTObCbAWlB9ZTLlBVIhK6pPNqnVaACzTnU4fw9nHGh382d4IcuvP4sfykROqGA2kGIKWn7WmxLFKf1vULaBahAeJdLNgTdHrnXru0CK861yZBwzeoylnePV0HOJ5Mg4Lqjra9od5pOMZG0Q1epC2P9o6ZPNLGB22OwLCnaLili3chmVxHdB9QfCur"
+                                  "W3FkWi9ZhIojVZoApe0VcAXVJNN81LI44xL3mfrFPuEOVKpPzDCyUBg3VaVg5lQKirhrBQImBbFTGr24vRn0V1KmKqNhpuD1AS4IxvpFPGaTF6gXtd3nJyyNe74Q2bvFtDokud"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_shop_v2_1(self):
         response = client.send(pp.CreateShopV2(
-                                  "96ZecqU3VE5SiDh8XYp2Sb6qswUL8UZ6V9wGI85BEYoVTObCbAWlB9ZTLlBVIhK6pPNqnVaACzTnU4fw9nHGh382d4IcuvP4sfykROqGA2kGIKWn7WmxLFKf1vULaBahAeJdLNgTdHrnXru0CK861yZBwzeoylnePV0HOJ5Mg4Lqjra9od5pOMZG0Q1epC2P9o6ZPNLGB22OwLCnaLili3chmVxHdB9QfCur",
-                                  can_topup_private_money_ids=["d9181998-ebae-4faf-bede-cc6d2b261e3c", "f29dafab-c59e-4793-8f29-7885f6049c8c", "f18d03dc-c3be-4949-8f9f-1f7069364ee9", "fdb50494-1824-4454-a9ce-029b1127a14a"]
+                                  "W3FkWi9ZhIojVZoApe0VcAXVJNN81LI44xL3mfrFPuEOVKpPzDCyUBg3VaVg5lQKirhrBQImBbFTGr24vRn0V1KmKqNhpuD1AS4IxvpFPGaTF6gXtd3nJyyNe74Q2bvFtDokud",
+                                  can_topup_private_money_ids=["68c06994-dfd0-4507-9fd3-38810804a9b7", "38b7981e-9550-460e-924a-67300ec6d1fd", "662b7185-57b9-4c95-8b99-3b7701740329", "9c29aae8-be12-41ec-9bc6-da361fd14d94", "d6211e8a-dcc3-4522-9d56-0f6c57ced4cd", "98da092b-904b-4cc6-aea1-bc4854c2c36b", "06680354-d05c-4f48-85fb-0960d24ce747", "4aba8caf-d452-4829-97d5-1142f52b6801", "712bb9d6-05d5-41da-9be1-efb11316639b", "1a496586-ecf2-43ed-bc41-db785c77907a"]
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_shop_v2_2(self):
         response = client.send(pp.CreateShopV2(
-                                  "96ZecqU3VE5SiDh8XYp2Sb6qswUL8UZ6V9wGI85BEYoVTObCbAWlB9ZTLlBVIhK6pPNqnVaACzTnU4fw9nHGh382d4IcuvP4sfykROqGA2kGIKWn7WmxLFKf1vULaBahAeJdLNgTdHrnXru0CK861yZBwzeoylnePV0HOJ5Mg4Lqjra9od5pOMZG0Q1epC2P9o6ZPNLGB22OwLCnaLili3chmVxHdB9QfCur",
-                                  private_money_ids=["e2c2cc3f-96e8-4b24-9346-e2a13c4d9bca", "a726dd0b-3dda-460f-846f-8d1e6239b2b3", "3ed88a6f-1627-42ab-8ba3-e071cdbdb109", "af4722a6-4edb-4839-bfea-7353e0c7b499", "62cefa55-27eb-47e3-b9a8-ad1ec173f91c"],
+                                  "W3FkWi9ZhIojVZoApe0VcAXVJNN81LI44xL3mfrFPuEOVKpPzDCyUBg3VaVg5lQKirhrBQImBbFTGr24vRn0V1KmKqNhpuD1AS4IxvpFPGaTF6gXtd3nJyyNe74Q2bvFtDokud",
+                                  private_money_ids=["65548214-e7d5-40c6-b682-eee9627cc068", "3867ad2c-76f6-406c-8d5d-6d7db08283c9", "22ff837f-527b-411b-b406-651ed0acb405", "2bdaad1a-56dc-44ff-b5af-db6f42754a4f", "93e5d6c5-d810-4e6e-a65f-c6c0aa850429", "cd08c5bf-054b-42f2-a1ce-139e56cf865d", "29b9c2ea-c405-463f-ba92-8621af0ec32d"],
                                   can_topup_private_money_ids=[]
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_shop_v2_3(self):
         response = client.send(pp.CreateShopV2(
-                                  "96ZecqU3VE5SiDh8XYp2Sb6qswUL8UZ6V9wGI85BEYoVTObCbAWlB9ZTLlBVIhK6pPNqnVaACzTnU4fw9nHGh382d4IcuvP4sfykROqGA2kGIKWn7WmxLFKf1vULaBahAeJdLNgTdHrnXru0CK861yZBwzeoylnePV0HOJ5Mg4Lqjra9od5pOMZG0Q1epC2P9o6ZPNLGB22OwLCnaLili3chmVxHdB9QfCur",
-                                  organization_code="1ey-5m0KE-1-d-q3PGhF-z",
-                                  private_money_ids=["8277ee0d-fe69-4d34-a8da-2f6ad0800228", "1b95993b-a0b4-4c78-a47c-d6d02c3f61d4", "8eaec5c6-8c54-46c1-800e-e9dc19f8c530", "b45fb6b2-26ad-4955-8a04-42dfed760914", "0f63f45a-d70d-464b-a597-9ffbcc796422", "558a79be-af16-40be-bb63-5097d29e14c5", "051c7826-63ce-4f5f-a779-efcbb9e44021", "f55b21f0-a2b2-4a0f-896f-57a1c125a037", "e2000954-417d-4cda-820b-81f1f1e31385"],
-                                  can_topup_private_money_ids=["999c44db-d5c9-47f1-ac83-cd23252cfa4c", "1c2b1385-9722-4ab4-9ef2-ebf0f1b9de0a", "ca793fb2-98c0-4445-8672-350ac2806481"]
+                                  "W3FkWi9ZhIojVZoApe0VcAXVJNN81LI44xL3mfrFPuEOVKpPzDCyUBg3VaVg5lQKirhrBQImBbFTGr24vRn0V1KmKqNhpuD1AS4IxvpFPGaTF6gXtd3nJyyNe74Q2bvFtDokud",
+                                  organization_code="9GGd18g651T-IRaM-",
+                                  private_money_ids=["340bfda0-a3bc-4bb2-a7c5-7c0633462791", "c59cf76b-5deb-42dd-9e0c-ebd05bd30532", "5678ba0d-93ae-4f56-a508-f31dad866a49", "78367916-efd0-41f9-823e-8b372ff08d7b", "8edb5d48-aa3e-4e89-8557-96b7c19cdb24", "efdeefc5-9e5e-4ae5-a75c-acb73fc330a8", "9f2fa9a9-70fe-46f3-abc2-b8b9bfaec73a"],
+                                  can_topup_private_money_ids=[]
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_shop_v2_4(self):
         response = client.send(pp.CreateShopV2(
-                                  "96ZecqU3VE5SiDh8XYp2Sb6qswUL8UZ6V9wGI85BEYoVTObCbAWlB9ZTLlBVIhK6pPNqnVaACzTnU4fw9nHGh382d4IcuvP4sfykROqGA2kGIKWn7WmxLFKf1vULaBahAeJdLNgTdHrnXru0CK861yZBwzeoylnePV0HOJ5Mg4Lqjra9od5pOMZG0Q1epC2P9o6ZPNLGB22OwLCnaLili3chmVxHdB9QfCur",
-                                  external_id="fcK15L",
-                                  organization_code="98B----0C-Du-Z-M-d1-",
-                                  private_money_ids=["14fd052f-115f-4ff8-a030-a9c546e531e7", "1f8fb2db-5332-4edb-b4d9-2f9e58e3486c"],
-                                  can_topup_private_money_ids=["9c1df855-e422-4216-ab71-1b5db6b87f6d", "0371b2d1-56a5-48dc-899b-66762535e236"]
+                                  "W3FkWi9ZhIojVZoApe0VcAXVJNN81LI44xL3mfrFPuEOVKpPzDCyUBg3VaVg5lQKirhrBQImBbFTGr24vRn0V1KmKqNhpuD1AS4IxvpFPGaTF6gXtd3nJyyNe74Q2bvFtDokud",
+                                  external_id="BB1YNClE0",
+                                  organization_code="M",
+                                  private_money_ids=["5d1f8032-3b3c-4392-ad78-d56a86571c94", "c0ebb6dd-4049-4d75-a2b5-8c5770a86239", "dd10da64-f78d-4db4-a661-a6b7cd063d2d", "8dc73339-e9e0-4894-936e-89cfa7691048", "54c687d3-e466-4c5b-aa0a-304b5d1dc15b", "3adfebeb-f570-40b3-bc51-e8dfd01d2d97", "7d7fd06b-61a9-4ac9-9c9d-bd9f597206b1"],
+                                  can_topup_private_money_ids=["8bd20add-aceb-45a7-ab50-cbd5f2e682cf"]
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_shop_v2_5(self):
         response = client.send(pp.CreateShopV2(
-                                  "96ZecqU3VE5SiDh8XYp2Sb6qswUL8UZ6V9wGI85BEYoVTObCbAWlB9ZTLlBVIhK6pPNqnVaACzTnU4fw9nHGh382d4IcuvP4sfykROqGA2kGIKWn7WmxLFKf1vULaBahAeJdLNgTdHrnXru0CK861yZBwzeoylnePV0HOJ5Mg4Lqjra9od5pOMZG0Q1epC2P9o6ZPNLGB22OwLCnaLili3chmVxHdB9QfCur",
-                                  email="0CMZa5pywm@hrY8.com",
-                                  external_id="J0",
-                                  organization_code="ROSVf--f8V6uh-----oo-71v",
-                                  private_money_ids=["fe5b20cc-76e9-484f-97c2-384e59392876", "71108082-bf08-40e6-a1ae-9a50fa366e55", "ab10c4b2-12b0-4dea-900c-cebca34d70f1", "522c8fad-0a48-4e95-83a2-4cf1b2f3f744"],
-                                  can_topup_private_money_ids=["e6256666-61ae-4875-ad14-e4bc61f54e8d", "efbceaa0-1aaf-49ea-8223-18c871aa2ff2", "18f2fab0-7321-48fd-b3aa-d90e59d7615c", "8d88f7b8-fb37-46ef-ac2d-84eabaa6e4a2", "eedab2a4-0382-4e40-bb56-a89e72091eea", "f1f39151-21ec-456c-af1a-024a6f4bcb8d", "71132c8d-1181-46a1-8204-4a0cb5dea6a9"]
+                                  "W3FkWi9ZhIojVZoApe0VcAXVJNN81LI44xL3mfrFPuEOVKpPzDCyUBg3VaVg5lQKirhrBQImBbFTGr24vRn0V1KmKqNhpuD1AS4IxvpFPGaTF6gXtd3nJyyNe74Q2bvFtDokud",
+                                  email="WIOCC9XRXS@kWvg.com",
+                                  external_id="dC6YsQVBM615BS",
+                                  organization_code="0-",
+                                  private_money_ids=["a23ee378-4efb-4928-9f47-846c94418ef3", "727f8e5a-16e1-4d56-a453-0e3ff45fd670", "a71eadaf-4805-4f88-9d5d-3b8f66ce191b", "f155101a-24ea-41ef-bb8f-d4173f7b60d1", "43bef5b6-d001-47e6-9d66-0b5951aac3c1", "294d4b65-6b5f-45ab-8036-5d15bdd50904", "d647966b-8dbb-4e70-ae1a-6dd8c180197c", "7e1d193e-00e9-4587-8354-ab69b7d97953"],
+                                  can_topup_private_money_ids=["99beac55-06c9-4865-b52d-b269489eb4db", "d1b54a71-d5c9-4b06-9a4d-4d4fc8924f63"]
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_shop_v2_6(self):
         response = client.send(pp.CreateShopV2(
-                                  "96ZecqU3VE5SiDh8XYp2Sb6qswUL8UZ6V9wGI85BEYoVTObCbAWlB9ZTLlBVIhK6pPNqnVaACzTnU4fw9nHGh382d4IcuvP4sfykROqGA2kGIKWn7WmxLFKf1vULaBahAeJdLNgTdHrnXru0CK861yZBwzeoylnePV0HOJ5Mg4Lqjra9od5pOMZG0Q1epC2P9o6ZPNLGB22OwLCnaLili3chmVxHdB9QfCur",
-                                  tel="09680-125",
-                                  email="vj6KZvk9I1@4B0w.com",
-                                  external_id="Jjv5PZV8BzD6xxeVZJr6fOg9zsFZTTh",
-                                  organization_code="E65g-oq3",
-                                  private_money_ids=["c564b6d2-53f0-4867-beb8-e0ab87b2eaef", "c8e5153e-fab6-4ffe-b7b5-9e2d37f59c0b"],
-                                  can_topup_private_money_ids=["08f6d8b5-5355-45d0-a58d-9efa1bab4e17", "b3ea9de3-e7e7-4e9b-9a2e-478504bdea45", "ce015e0b-c7c4-4d05-ba34-b1d0adcaf985", "c021618a-1369-4885-a8d5-e1f47442cbce", "6c47bfee-3770-40dc-b798-492583952f96", "e06dc6fe-52a1-4334-bc57-21e9716a335c", "f11d8fe9-f84f-4777-bce4-ab03a4cf6e38", "56d54687-b105-4e99-8510-ca6965405e7b", "03cf5603-cdf9-4c8a-84ac-f0aac35748d9"]
+                                  "W3FkWi9ZhIojVZoApe0VcAXVJNN81LI44xL3mfrFPuEOVKpPzDCyUBg3VaVg5lQKirhrBQImBbFTGr24vRn0V1KmKqNhpuD1AS4IxvpFPGaTF6gXtd3nJyyNe74Q2bvFtDokud",
+                                  tel="0152-67054",
+                                  email="qDn2oMYRFh@8cqn.com",
+                                  external_id="2spFoKb7jYgx3gTJKy6dBb3",
+                                  organization_code="-j-d-6QuitA-aP2C1el-8a-31-9vvm",
+                                  private_money_ids=["a3d30510-edf5-44c7-b333-0432b1f337eb", "278786d9-83e4-4281-92c5-75ff48cf69d1", "5ed66d9f-b625-459a-830f-ffb3b919d8dd", "348a80b9-0f01-4160-a297-438c74834abb", "470acf6e-00da-4684-8255-ce7615adc634", "bdc73e15-ff07-4346-ac38-0edf665deede", "d459d003-0a0b-4bff-8add-b92285395937", "2920f655-66af-4a17-baf9-7806d2239192", "2f8ee6bc-4e0f-4ddb-849e-b33b51788907"],
+                                  can_topup_private_money_ids=["77491445-4a76-40dc-a729-aab75dd7c2e2", "798bc163-1690-4bf4-afe3-186d63d67e10", "e31719c9-4571-4fe4-a798-13ed118769c0", "cc3e3976-001f-49a0-bad4-973ce4248356", "f763ca38-899e-44d2-82fa-1aa383768899", "2a869d1a-425f-4d70-95de-ee08bcddb5b0", "3cda3380-46e7-47aa-a978-3bf3b2277304", "fed0e182-8b99-424b-9a10-a3d793bd386f", "cce72155-afab-4793-a54f-0152340a4a3a"]
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_shop_v2_7(self):
         response = client.send(pp.CreateShopV2(
-                                  "96ZecqU3VE5SiDh8XYp2Sb6qswUL8UZ6V9wGI85BEYoVTObCbAWlB9ZTLlBVIhK6pPNqnVaACzTnU4fw9nHGh382d4IcuvP4sfykROqGA2kGIKWn7WmxLFKf1vULaBahAeJdLNgTdHrnXru0CK861yZBwzeoylnePV0HOJ5Mg4Lqjra9od5pOMZG0Q1epC2P9o6ZPNLGB22OwLCnaLili3chmVxHdB9QfCur",
-                                  address="Z0zhmmU4qjfXM0iaeCNkqwEBU16Jq12CxO1vOYhEe55St2TiyraOemZRjiAchwL6b1jB1Cg1nBSU78Sxgo6Taagdxx1mLakIn0CpIISvuAWSZZfn8krGsRTJuHW0p1Ch4TRpHb3xaMjpGa8gaJHdl18J3d41BsVgtiwJjEQgl2khqccOMjuNbV7",
-                                  tel="0665-73085245",
-                                  email="DuKxo1Vi0y@j9LZ.com",
-                                  external_id="0SyJWAaPdTI8GQRoTVVL",
-                                  organization_code="-Hl--Y-x-",
-                                  private_money_ids=["ca99cead-e794-432f-b255-a62ce1fe2366", "0b3a459a-26a2-40b2-8bf4-1212cb0f6a9c", "8af2e78b-4ebb-4d11-8446-d160c5889968", "b321057e-8c82-4024-8f2f-b5ca7e722aaa", "c9c559b8-d20e-4048-87b7-84b9ab694894", "7e3f9b2d-e4ad-4c2c-b616-0c50a099e310", "cdb77066-cda2-4a8d-93c0-bfb69d4cebb1"],
-                                  can_topup_private_money_ids=["1345d4dc-8f38-420b-9277-7ecfcc5a4bd9", "60c7287d-bf62-4804-8267-673cb8d2c8ea", "1294f47c-da68-4b22-aa6e-df2b01a70e5e", "689fb969-0f20-4fac-a500-1c789c78f5ca"]
+                                  "W3FkWi9ZhIojVZoApe0VcAXVJNN81LI44xL3mfrFPuEOVKpPzDCyUBg3VaVg5lQKirhrBQImBbFTGr24vRn0V1KmKqNhpuD1AS4IxvpFPGaTF6gXtd3nJyyNe74Q2bvFtDokud",
+                                  address="98QDv9TW3tonru5DxxR1kiR4daTST401zYU9O5bmxo5R8HDeIrg38UDixRQOsOxJyiut30oRsSLi4FAWjvNFlMGhO7MjoFiHLtN9Yqy7R5Sel4rqjqD6mB2gz0FIdNSbIrXOBo1I3rdkLB5vuUQlHHWHdfJKJGJOe4o3A7Ast7GZKKewMQbpvWdRIf0j2NcGpd9kTg7fbzWuG",
+                                  tel="0276130-5612",
+                                  email="ZyG6ql9kvI@c3ug.com",
+                                  external_id="fVcwKEOAlMUYblAnOJ",
+                                  organization_code="8--BQ4GH-2imx2--c7D-m",
+                                  private_money_ids=["bfd7fa9a-5453-46dc-a46b-a27e07ce50d2", "fd5eae2c-fde4-44bd-89c8-2e6c8c30a3c2", "61a7f96f-a5b7-4490-a95c-884da1852dc7", "94aa6ff3-6fa8-4397-ac2e-4191001a3a51", "1ce9a5e5-8d4c-42fa-94e7-2139e0d28846", "5e95c68e-8c3d-46be-bd43-69d0f2fcdc36", "6e35aee2-23ef-4eca-bfa3-cbbd97650c2c", "e6a0c518-3f13-4dbc-9fe0-d1eb6e8c9cc1", "07852ea4-e28d-4abb-8e45-5f895413d2bc", "3ccc7586-33d7-4a5a-b0f8-05bc4634a087"],
+                                  can_topup_private_money_ids=["7cc65c22-1a01-4e6b-af9b-97354412ef2c", "b20969ff-299f-47a4-b2a8-dbbf4edda3f4", "b36db3d8-21e4-41df-a8eb-756aa2aaba43"]
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_shop_v2_8(self):
         response = client.send(pp.CreateShopV2(
-                                  "96ZecqU3VE5SiDh8XYp2Sb6qswUL8UZ6V9wGI85BEYoVTObCbAWlB9ZTLlBVIhK6pPNqnVaACzTnU4fw9nHGh382d4IcuvP4sfykROqGA2kGIKWn7WmxLFKf1vULaBahAeJdLNgTdHrnXru0CK861yZBwzeoylnePV0HOJ5Mg4Lqjra9od5pOMZG0Q1epC2P9o6ZPNLGB22OwLCnaLili3chmVxHdB9QfCur",
-                                  postal_code="202-8400",
-                                  address="HCrQ2sJdGjdCNpP7vZgP6rij5EfD6DtnR73iSkAgC1lY6yupHUdfLL0DHjlwSaRnmrgoUZ8HPuG9MGiaGFzsfWWWy9Im8Ux",
-                                  tel="00-2655-826",
-                                  email="LEYZVZOefO@3wRM.com",
-                                  external_id="sdsI7UYvxBYHMaYiviU38jq",
-                                  organization_code="g-1K-mz-89-lch-1mHfb-Z-rLn8T6--4",
-                                  private_money_ids=["3109ea51-7edc-41cf-93ee-80c223f044af", "8bb000a1-1fce-451c-bb5f-46a60ebcbe78", "4e2a2e2a-b08b-4964-9003-679f22c4b63b", "ecb51cf5-cfaa-4f7e-b29c-224fc442c477"],
-                                  can_topup_private_money_ids=["17bc1437-dc67-44af-abea-2251c0436433", "5e8b6677-d5af-44f0-9c20-1fe5e481cf66", "d9e228ab-8ab7-46ab-84b2-559e6d54142f", "d07c4d8c-619c-4149-a921-6b6c1964d134", "c49decc5-6835-4fa5-9a88-42d7bb77c4f3", "e137b692-0e22-4b53-a565-e1e3a7a276f0", "87d74d99-cfdc-4f49-9b8e-ac71f881c3f2"]
+                                  "W3FkWi9ZhIojVZoApe0VcAXVJNN81LI44xL3mfrFPuEOVKpPzDCyUBg3VaVg5lQKirhrBQImBbFTGr24vRn0V1KmKqNhpuD1AS4IxvpFPGaTF6gXtd3nJyyNe74Q2bvFtDokud",
+                                  postal_code="664-0849",
+                                  address="x1kHTVbpRx79qoFTViWGk7rsKgu2ihoMxDsfU3TC1A8fV5nkzyaMo6HNFjN16Mt1NNT0LSnWyLCIia",
+                                  tel="021-129-6627",
+                                  email="UZkKwMvzRh@ZdC9.com",
+                                  external_id="PIbxRIokrSMcA",
+                                  organization_code="B772-QP1--91y-Cu-M-X2LS-V",
+                                  private_money_ids=["12a5c541-4144-4cac-9924-16613b46ced5", "c04d01ff-a0cd-4140-9334-0e8af8a23517", "c56906fb-efd6-460b-b1af-4fdb268fe7f8", "8998f859-ae30-4a03-837a-3eb62b2eadf1", "d4d9610a-1ab9-4e52-bc6c-c7ffbd99782a", "e6222ce9-5275-4b71-8f42-f5298f163d7f", "24fc1449-6dce-416d-b451-0022c1d9c737", "73e18737-9d5b-402f-828a-f60de59eb028", "6c51ea79-7271-4fe9-bb2a-f3fae1d5abab", "8d23aa86-0356-4fd1-856f-5b1620d87007"],
+                                  can_topup_private_money_ids=["1d4d183e-d10e-433a-8632-9cdc6c751e60", "37dfec06-f6d8-42bd-b92a-4f012f95706d", "784d2a2b-7ed1-491e-8a4a-4069a0b84fc5", "a255d145-1a4c-432c-94d6-96fdac0a94ba", "565aacec-11f9-4184-9de3-265bb02ce98f"]
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_get_shop_0(self):
         response = client.send(pp.GetShop(
-                                  "c7d33c82-4db4-47b3-b0de-f09941ac0ce3"
+                                  "4100048e-9b66-4b5b-a47c-587ef280f724"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_update_shop_0(self):
         response = client.send(pp.UpdateShop(
-                                  "1bbb746a-5c11-4c71-b1cc-895e07238985"
+                                  "6ab83491-6da4-4528-ae88-4c41667502b0"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_update_shop_1(self):
         response = client.send(pp.UpdateShop(
-                                  "1bbb746a-5c11-4c71-b1cc-895e07238985",
-                                  can_topup_private_money_ids=["0210d22c-8577-4f5f-a463-7a9a9ea7a5bb", "f7b84893-35d6-4f4d-9562-a925a2d4a6a8", "9f953b8d-48b7-45ba-989e-251388c19545", "20efc542-437a-4147-8e75-d78f0213da79", "171bb0ba-8ace-4877-8fac-26330e578c1c", "1b0a608d-2b31-4b2e-9423-46684c33d14b", "834674d8-da82-48a3-a1c9-903a91ebc3a7", "ae0cc4f9-182e-49a0-a27f-8d880c2fc994"]
+                                  "6ab83491-6da4-4528-ae88-4c41667502b0",
+                                  status="disabled"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_update_shop_2(self):
         response = client.send(pp.UpdateShop(
-                                  "1bbb746a-5c11-4c71-b1cc-895e07238985",
-                                  private_money_ids=["3ac1c52a-2056-4597-96e8-bca3475b9fe6"],
-                                  can_topup_private_money_ids=[]
+                                  "6ab83491-6da4-4528-ae88-4c41667502b0",
+                                  can_topup_private_money_ids=["31776f31-0eca-4add-b08b-f29041b8ec39", "a20dab63-1374-4942-8976-e05852e113f2", "5143595f-d278-4eea-b370-ae6da153cdd5", "22be79e7-8632-4ca4-8aca-6b6fb3b31e66", "f8677082-1d94-41e2-ada5-d311492d1de6", "84ffed64-0405-43b8-bc6c-719944102ec9", "9abef437-11e3-4461-b32f-a9ef8b86a379", "4099be51-b99f-4d51-8973-d8007b011212", "d9b0ac9c-77d5-4fec-b3ba-38f2901290c3", "e395c5cd-c21f-421f-84b2-131019fb3020"],
+                                  status="disabled"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_update_shop_3(self):
         response = client.send(pp.UpdateShop(
-                                  "1bbb746a-5c11-4c71-b1cc-895e07238985",
-                                  external_id="d3BmnZxBBpR9nxMbDW2W",
-                                  private_money_ids=["466c0391-85b9-49a5-aefe-bec9f17a6c41", "0a9003f5-717b-4776-8ab0-cab717da3083", "2754c912-b7d4-4f39-bd23-9c3c35fcc64b", "ff2e4aa7-26c8-45d4-aafd-2aa6e7071d92", "6f6ac7bd-3718-4516-875e-594b58e1659a", "dfc48ed8-a598-4a99-8911-5d39d2a6535d"],
-                                  can_topup_private_money_ids=["0ae9bcaf-542b-4fe3-972e-0022ffbf553c", "5dc42ffd-1427-4fb3-a230-756efae02d3b", "06011fd6-5a9a-4948-a426-0f644c452a6f"]
+                                  "6ab83491-6da4-4528-ae88-4c41667502b0",
+                                  private_money_ids=["d443162b-e80e-4c4d-b0c5-3a3414e4cd18", "ef1f6115-3457-45c4-80a5-23130afaacdb", "6e5210ef-d972-49fb-b4a2-70c9ef783041", "badeb844-4e54-4048-968b-235f605e0c64", "ca488454-3ed0-4073-90ea-da68ff6ad70d", "e460c02d-8855-4c24-8ef3-3cbe6189c7d7", "f288bfe2-9175-4b3b-9e95-ade8c3eb8f07", "a97d7c6e-f4e2-4e92-bf49-a95539185746", "467857bb-dc6c-40ff-a866-9bc0969d3676", "b599ca6f-3de2-43a4-8f20-d5dfb7943d9b"],
+                                  can_topup_private_money_ids=["919b3ce3-583a-4e5d-acc6-c3d8c04e244b", "2aca5de6-9276-4aa7-915f-aee41bf640d1", "57c4cc05-3369-4ef6-afbc-2273c8946e96", "04e232b3-b17b-4068-aa21-9a9d3118c374"],
+                                  status="disabled"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_update_shop_4(self):
         response = client.send(pp.UpdateShop(
-                                  "1bbb746a-5c11-4c71-b1cc-895e07238985",
-                                  email="9MOLvGZ61a@dHIt.com",
-                                  external_id="OUDj8FvTz5QBGaQdIsgWXQM5x",
-                                  private_money_ids=["b60e9931-c279-46d8-8a2f-7a555a11aee8", "82ef2870-1e5d-4302-9032-33141bca9d9c", "8094fda9-ce97-45e3-9e94-a0ea8f480585"],
-                                  can_topup_private_money_ids=["01499ad4-92fc-4fe9-9aa0-6e556514c0ee", "5d5f9d35-24bf-47f2-bbbe-14fa7145d111", "24eade2d-041e-4031-b0d6-e8168d5d65dd", "7887d188-342f-44f1-8b42-360ef580a4e7", "f9da63d9-850b-4c81-a0e6-5bfee560b9e5", "b8b9e23c-a6a4-4050-9e7a-0f5e3af75cbb", "9a752369-02f9-46a0-a0aa-4507823ca2f6"]
+                                  "6ab83491-6da4-4528-ae88-4c41667502b0",
+                                  external_id="D1VYnThEQOLtlkRPIAeI3C1kLwoSJ0t0xwz",
+                                  private_money_ids=[],
+                                  can_topup_private_money_ids=["2cc4e69f-13da-47ad-9c33-e0bda2693700", "3dc59b1c-85a8-4ed3-81f3-4bea1e5cc9f0", "8017b203-fc41-4416-b550-1c8a166d7ead", "270fddd1-ff20-4477-8f92-07cd503f3d45", "23e6c378-1193-46ba-83b1-e2f7913ea2b6", "fea4f569-73e6-4b6c-b9da-38555bd375a7", "a293ec16-f815-4210-9073-8df4085b720a"],
+                                  status="active"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_update_shop_5(self):
         response = client.send(pp.UpdateShop(
-                                  "1bbb746a-5c11-4c71-b1cc-895e07238985",
-                                  tel="08-457-6396",
-                                  email="3wthBO4Fjl@bNSG.com",
-                                  external_id="xbjuEMAeQ",
-                                  private_money_ids=["0ba4caef-c75e-4ce0-ab83-df8ba07d8aae", "59827ee1-2a04-4e20-9c55-a73abe13db4f"],
-                                  can_topup_private_money_ids=["b844396b-5a2c-4145-8a26-9f80a48d61de", "cf3de598-6aa7-4c4d-afed-2847dd56a9c5"]
+                                  "6ab83491-6da4-4528-ae88-4c41667502b0",
+                                  email="qj7jJ1Xazd@0M0Q.com",
+                                  external_id="E8si7WktomTSIs3sss0bSZ",
+                                  private_money_ids=["4948a6fc-2b63-43a0-9287-76359273ba72"],
+                                  can_topup_private_money_ids=["3118bfdd-5cbd-4400-8d44-2e89208a98bd", "43c75a67-9a96-4e08-85b0-c984b7bc887c", "c7d458af-d907-4d18-a9c2-b8449fd44414", "c6245312-6532-45e5-9874-cb119eea6e36"],
+                                  status="active"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_update_shop_6(self):
         response = client.send(pp.UpdateShop(
-                                  "1bbb746a-5c11-4c71-b1cc-895e07238985",
-                                  address="3qtgKMvjDsKXEFhYl0BRpqUDYmqwBJzhV6dtnsmaJHCLyhHLjUCzekHgQwDCfsWS6JXTLuG14K9HQGpPICoaRhYRcaR59QCffGIaaiPRXQUB9KSDwnfHx9gXjCberbb7S8DARwQI05I6eJLYrFtVTc8XF6Iz7He5QYfhFsP0lBKY5Zym6qbNd5Gezpxyuuv2alBrKW",
-                                  tel="04008708731",
-                                  email="VHCWblj8QD@bDxz.com",
-                                  external_id="olTpcO7N2cnroE2",
-                                  private_money_ids=["e6126752-7bf0-44eb-8949-ff9894dfbbc9", "6c39f20a-07a3-4f76-9dad-ed9263274fe8", "93deb7b8-1aa3-4da4-a045-bfbf3386b98a", "53eb93f2-c521-496a-9d63-646c44ad88b3", "cfad8563-86fa-4b31-ae4e-aa5ed8a0f1ca", "4408da8d-2516-4663-885f-b65ee7f8ecf7", "8d41ae0b-acc8-466c-8e2c-5cd8ee9e689d", "9edc0770-2513-4f8d-97ea-dcc5a7b08728", "18083187-4ed5-4386-9178-340da1006446", "27998550-7798-431a-b95a-b49f34912262"],
-                                  can_topup_private_money_ids=["6d3278ce-e389-438a-b8fe-281a643b057d", "6d86dd52-0219-466e-9637-23bd5304ae88", "b262c417-fa9c-4d26-a451-dd938291a11c"]
+                                  "6ab83491-6da4-4528-ae88-4c41667502b0",
+                                  tel="028-27159286",
+                                  email="MfShA8D4Ev@7O7T.com",
+                                  external_id="GT70LQ2epxhXvfJrqwCwz",
+                                  private_money_ids=["7f6b4f1f-62c7-4976-9b03-8f3532a1d374", "01e94729-7ffc-4b83-8e58-fe4261edf939", "9c396eb3-07fd-455f-b4b1-d3c18a5b38e4", "76cf47ab-a41b-4d04-9dd1-e1a1674bcb1c", "4b0eaee0-3ba6-47ba-8a53-968e80589076", "2d965a72-69b2-43bd-80ea-64c4b5bb3d32"],
+                                  can_topup_private_money_ids=[],
+                                  status="active"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_update_shop_7(self):
         response = client.send(pp.UpdateShop(
-                                  "1bbb746a-5c11-4c71-b1cc-895e07238985",
-                                  postal_code="991-6759",
-                                  address="2KNkDfzWRiioT9QYFPklAn30gj1CmaOUBeCZvfeO7Sgh2QcnuYHCBxXNgm1qjvh6lwQ5YfQRfoj2wOYmg9391o91QzyCQzu6PMATfONJfxW9vGUYm5paU0VcU72VDfrMfAvz54ATPoiAdZgk",
-                                  tel="055594-2253",
-                                  email="007xOusoKd@SFtN.com",
-                                  external_id="kw4qjPQJ7jTB834R",
-                                  private_money_ids=["8e19438a-8a79-4242-9aeb-7e77fc0c2373", "71eaa4ff-ff49-4d7d-836a-f6da4e577988", "ff4c8589-5792-4a1b-9f31-15f0bbd072b1", "6c0025fc-990c-44e2-add4-e41bf35479cd", "4f999de1-c144-4b3b-a972-22ce23116fb4", "c26cbc47-bd32-4125-a014-7e1390d527a9", "22d2c146-1e18-4013-969a-54e3aba56417", "80e9cb52-3dc1-4c49-8c54-13d0981cd917"],
-                                  can_topup_private_money_ids=["f6851f51-1394-40cc-bba3-5505bf3e0e78", "25b56e66-2efa-4485-b7a6-830c9f77fa0d", "48922c88-e2a4-4baf-9159-fd0a722e55fa", "05871c71-811b-4069-a019-7258bf6c21f6", "4c9fdc04-4431-40a7-a364-50dc3c27cdc2"]
+                                  "6ab83491-6da4-4528-ae88-4c41667502b0",
+                                  address="PBEg6qDXhSH8hafJy0sDTnMPtA7T3E2nC8JZcqIcqZB2nkhw5Vunnh29qWQZz14xB891rPV7FcdDeB61vcOZ1uNBAdr6lfzbfqKlnsG40wZo0RT90mTv9imeNiY62Bc0n5yxxXvKDa0c2v5NvERR1ovUoSMxuwois43hKOtAoX7opuae7lO58Ae6hTnrFSjbB1hi",
+                                  tel="0384-7558-4864",
+                                  email="KPvyktKcWC@yKm4.com",
+                                  external_id="2FzeWXxP",
+                                  private_money_ids=["c5deaa52-f2e9-4ecd-9668-428641c76fda", "b38969ed-8a1f-4482-906d-ff472f0abaea", "293b505e-3130-4611-948d-6d4de7b17c91", "bcb37a0e-c5a3-43ea-9006-7f17bf5fe426", "46557a92-b7ac-41a8-86cc-6da75d9c5908", "7670df18-95cd-4b2b-9eb0-d25cc722168f"],
+                                  can_topup_private_money_ids=["e9a65a4c-a67c-4a88-a4f7-82c01657df15", "90458d56-6fd8-4124-a231-25aa5adde624", "7c3e1c1f-923f-4de0-aebf-a8668130aa50", "981c845a-5b1e-4ef4-88fa-97474406f7f5"],
+                                  status="active"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_update_shop_8(self):
         response = client.send(pp.UpdateShop(
-                                  "1bbb746a-5c11-4c71-b1cc-895e07238985",
-                                  name="YjUZmnwyS1mAzTO6PEOOvujUYEjG1bsd93HwfuPWrouBgDO",
-                                  postal_code="1471981",
-                                  address="cuEYpTU2CQDBEdrTGpzQaoH7roprIUCAGYbFfz98qEYs3fTBqIMEk6UFEGcRCIsN4Zfz8ZjlCqkGEh1KM2WnPd3zzJU6PO3sdcI8PDT08v74BI2VPe8qds4I2MEA4gJjHtGd0BbRBDVeSYn8uvrsJwmXqAKgViXf2eJim1RdN4XCU5aG5xcoPdJ6AA1qyCCpsvposWm2l41CxysbDiZ7jcWk9v3rFUsJH",
-                                  tel="089039-7525",
-                                  email="HWJNhtXiYy@5phV.com",
-                                  external_id="xCRdiZLpJEvBgW4klcH2n",
-                                  private_money_ids=["e5bdbf79-6230-4bbd-8e3c-33107e87dad5", "59d21014-28fb-486d-a172-52033e4a7844", "605c6d4f-befe-4ef1-a6c0-998dba80741d", "c1b69323-66c2-40ac-86af-4c59e32f364e", "5f2d6eee-751f-474d-ad24-37cc9f8a058f", "15cb1d94-5b09-4761-b023-6ba202431539", "7682a948-55a0-4c9e-8cd3-fbe8b9556d3f"],
-                                  can_topup_private_money_ids=["3b9dc5f7-0e15-4a9d-8b06-3126f3bd9df5", "95b9ef20-1ec2-47da-9c3f-62cebf498d1b", "98f92f48-6af7-4048-8cf5-47460e5d62fe", "316160b2-5273-4efd-916f-0d2b17607d72", "65d9b182-2ad2-4592-b0d0-0773a45ae85f", "7efe4b5a-3028-4517-b480-e0fe23bff0c5", "ce1c79b7-ec36-44ad-81f7-65b81b9476cf", "3f10b77c-2427-4100-8058-99827749ad6a", "50eee773-bc75-41e4-9291-987004a9b043"]
+                                  "6ab83491-6da4-4528-ae88-4c41667502b0",
+                                  postal_code="6884333",
+                                  address="dFVcjFxpkr7nBijaa4uqZKlbpHQT4mZQDB6u1kMJt8otXLMwiqJK6MisPTXvJ9APWVf0nkI2cpiZrwht02dhTsSxNXBuhLAxPxLgPF7PH9jsPo3qRbXC06hH5q5N6rSqlhclxbbI1pwNVNkX1wbtHq7h4XH",
+                                  tel="0020254927",
+                                  email="JS2N5S6EEO@5Bp0.com",
+                                  external_id="aBrmndiCNxXXwjFaRAeTx",
+                                  private_money_ids=["2eafb8a6-e7df-4f3d-93e6-04e59790f630", "2659b359-d21c-479e-9089-5351656a8993", "91177a43-6b9a-48c8-bafc-9aed54d4732e", "2d8e3edb-e038-4f16-a87d-1f9b8ca2cd85"],
+                                  can_topup_private_money_ids=["d2153b7b-dd5d-4747-9538-01fa13b2bb5b", "cecacf02-c9e3-4d9a-9f18-c271789b786b", "c775e14f-d6f8-4e49-8847-84e3405b06bc", "781d43d7-fe7b-4223-8684-db5a0a967c6a", "ce0790ea-9a4d-4c36-bdea-6905a5ab3533", "23eeb49b-73ff-43e5-87ae-a15e4a9013ad", "a4007082-3a3b-4164-932c-9c44acf091e3"],
+                                  status="disabled"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_shop_9(self):
+        response = client.send(pp.UpdateShop(
+                                  "6ab83491-6da4-4528-ae88-4c41667502b0",
+                                  name="Zu9iiEwcokneeQ36NR2IjhyB4vKQ7cGlo7SrCjimdlgwn9qvauQ2kDhj5HLJcSNTCm30yK3y8WItCe9VYgMydEalG76qE4T1vOrKA4IwgS5AgijWR",
+                                  postal_code="9985853",
+                                  address="V8cIDT0hnm8h8evW68NKpdkq0PMSo6iR11",
+                                  tel="01-35-678",
+                                  email="NTXOxFwqhk@pZVa.com",
+                                  external_id="hpFPp",
+                                  private_money_ids=["ea5fdab5-842f-485c-a2e6-34a79bdf9ccb", "dbf85487-ccd6-4486-b439-a15ddc57b52a", "438f86c4-85d0-4bd9-8a9d-3941867967ad"],
+                                  can_topup_private_money_ids=["2e558825-90d6-4efa-9680-72b6f7096c9d", "b1029295-ad03-4176-bc79-d9499039468a", "57200225-b082-4e10-b6de-c5a41145a893"],
+                                  status="disabled"
         ))
         self.assertNotEqual(response.status_code, 400)
 
@@ -2998,497 +3712,515 @@ def test_get_private_moneys_0(self):
 
     def test_get_private_moneys_1(self):
         response = client.send(pp.GetPrivateMoneys(
-                                  per_page=4872
+                                  per_page=5626
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_get_private_moneys_2(self):
         response = client.send(pp.GetPrivateMoneys(
-                                  page=7705,
-                                  per_page=7080
+                                  page=5392,
+                                  per_page=6058
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_get_private_moneys_3(self):
         response = client.send(pp.GetPrivateMoneys(
-                                  organization_code="ON-Y5tjP69-c--Qd",
-                                  page=1425,
-                                  per_page=9445
+                                  organization_code="---0FciB9EI",
+                                  page=6737,
+                                  per_page=8245
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_get_private_money_organization_summaries_0(self):
         response = client.send(pp.GetPrivateMoneyOrganizationSummaries(
-                                  "f9c5594b-0190-4951-9e2c-77c897a5751a"
+                                  "a69ad5a1-ad3c-47f3-bb11-5fc18e59fa69"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_get_private_money_organization_summaries_1(self):
         response = client.send(pp.GetPrivateMoneyOrganizationSummaries(
-                                  "f9c5594b-0190-4951-9e2c-77c897a5751a",
-                                  page=2382
+                                  "a69ad5a1-ad3c-47f3-bb11-5fc18e59fa69",
+                                  page=4039
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_get_private_money_organization_summaries_2(self):
         response = client.send(pp.GetPrivateMoneyOrganizationSummaries(
-                                  "f9c5594b-0190-4951-9e2c-77c897a5751a",
-                                  per_page=8427,
-                                  page=3710
+                                  "a69ad5a1-ad3c-47f3-bb11-5fc18e59fa69",
+                                  per_page=4303,
+                                  page=6564
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_get_private_money_organization_summaries_3(self):
         response = client.send(pp.GetPrivateMoneyOrganizationSummaries(
-                                  "f9c5594b-0190-4951-9e2c-77c897a5751a",
-                                  start="2024-01-01T14:07:31.000000+09:00",
-                                  to="2022-06-21T06:43:28.000000+09:00"
+                                  "a69ad5a1-ad3c-47f3-bb11-5fc18e59fa69",
+                                  start="2021-10-13T12:35:36.000000Z",
+                                  to="2022-03-02T22:15:19.000000Z"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_get_private_money_organization_summaries_4(self):
         response = client.send(pp.GetPrivateMoneyOrganizationSummaries(
-                                  "f9c5594b-0190-4951-9e2c-77c897a5751a",
-                                  start="2023-08-22T08:11:41.000000+09:00",
-                                  to="2018-06-29T14:30:11.000000+09:00",
-                                  page=2509
+                                  "a69ad5a1-ad3c-47f3-bb11-5fc18e59fa69",
+                                  start="2024-05-18T13:28:57.000000Z",
+                                  to="2022-11-16T15:18:57.000000Z",
+                                  page=3684
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_get_private_money_organization_summaries_5(self):
         response = client.send(pp.GetPrivateMoneyOrganizationSummaries(
-                                  "f9c5594b-0190-4951-9e2c-77c897a5751a",
-                                  start="2017-12-10T07:35:27.000000+09:00",
-                                  to="2020-06-12T13:48:48.000000+09:00",
-                                  per_page=4690,
-                                  page=6132
+                                  "a69ad5a1-ad3c-47f3-bb11-5fc18e59fa69",
+                                  start="2022-09-20T16:39:04.000000Z",
+                                  to="2023-01-28T15:06:04.000000Z",
+                                  per_page=1698,
+                                  page=9923
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_get_private_money_summary_0(self):
         response = client.send(pp.GetPrivateMoneySummary(
-                                  "1b466ba8-55d0-40a0-8b9b-3c4e820dad5f"
+                                  "90fce3bf-5ffb-4127-b115-12e8d136531f"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_get_private_money_summary_1(self):
         response = client.send(pp.GetPrivateMoneySummary(
-                                  "1b466ba8-55d0-40a0-8b9b-3c4e820dad5f",
-                                  to="2023-11-28T11:22:53.000000+09:00"
+                                  "90fce3bf-5ffb-4127-b115-12e8d136531f",
+                                  to="2021-09-29T07:00:43.000000Z"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_get_private_money_summary_2(self):
         response = client.send(pp.GetPrivateMoneySummary(
-                                  "1b466ba8-55d0-40a0-8b9b-3c4e820dad5f",
-                                  start="2020-05-24T18:23:28.000000+09:00",
-                                  to="2016-07-26T01:51:13.000000+09:00"
+                                  "90fce3bf-5ffb-4127-b115-12e8d136531f",
+                                  start="2020-10-28T06:45:17.000000Z",
+                                  to="2022-03-16T17:17:36.000000Z"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_get_customer_cards_0(self):
+        response = client.send(pp.GetCustomerCards(
+                                  "80cb3494-67d3-418d-9649-45ece816f13b"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_get_customer_cards_1(self):
+        response = client.send(pp.GetCustomerCards(
+                                  "80cb3494-67d3-418d-9649-45ece816f13b",
+                                  per_page=58
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_get_customer_cards_2(self):
+        response = client.send(pp.GetCustomerCards(
+                                  "80cb3494-67d3-418d-9649-45ece816f13b",
+                                  page=7424,
+                                  per_page=78
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_customer_transactions_0(self):
         response = client.send(pp.ListCustomerTransactions(
-                                  "05b16a54-5888-47c7-a866-6d99ba6a6c01"
+                                  "9942f30e-77b1-497d-b370-237f0239f926"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_customer_transactions_1(self):
         response = client.send(pp.ListCustomerTransactions(
-                                  "05b16a54-5888-47c7-a866-6d99ba6a6c01",
-                                  per_page=3635
+                                  "9942f30e-77b1-497d-b370-237f0239f926",
+                                  per_page=1372
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_customer_transactions_2(self):
         response = client.send(pp.ListCustomerTransactions(
-                                  "05b16a54-5888-47c7-a866-6d99ba6a6c01",
-                                  page=8814,
-                                  per_page=671
+                                  "9942f30e-77b1-497d-b370-237f0239f926",
+                                  page=6587,
+                                  per_page=3947
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_customer_transactions_3(self):
         response = client.send(pp.ListCustomerTransactions(
-                                  "05b16a54-5888-47c7-a866-6d99ba6a6c01",
-                                  to="2019-07-23T01:08:01.000000+09:00",
-                                  page=1061,
-                                  per_page=6541
+                                  "9942f30e-77b1-497d-b370-237f0239f926",
+                                  to="2023-09-17T10:10:37.000000Z",
+                                  page=6465,
+                                  per_page=7221
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_customer_transactions_4(self):
         response = client.send(pp.ListCustomerTransactions(
-                                  "05b16a54-5888-47c7-a866-6d99ba6a6c01",
-                                  start="2016-12-31T10:53:02.000000+09:00",
-                                  to="2023-05-08T15:39:29.000000+09:00",
-                                  page=7196,
-                                  per_page=7788
+                                  "9942f30e-77b1-497d-b370-237f0239f926",
+                                  start="2021-12-16T10:46:05.000000Z",
+                                  to="2021-10-21T01:55:16.000000Z",
+                                  page=9433,
+                                  per_page=4544
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_customer_transactions_5(self):
         response = client.send(pp.ListCustomerTransactions(
-                                  "05b16a54-5888-47c7-a866-6d99ba6a6c01",
-                                  is_modified=True,
-                                  start="2025-08-08T19:15:15.000000+09:00",
-                                  to="2016-06-23T11:03:31.000000+09:00",
-                                  page=6121,
-                                  per_page=1352
+                                  "9942f30e-77b1-497d-b370-237f0239f926",
+                                  is_modified=False,
+                                  start="2023-04-20T16:46:42.000000Z",
+                                  to="2025-04-10T22:13:28.000000Z",
+                                  page=973,
+                                  per_page=9191
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_customer_transactions_6(self):
         response = client.send(pp.ListCustomerTransactions(
-                                  "05b16a54-5888-47c7-a866-6d99ba6a6c01",
-                                  type="payment",
-                                  is_modified=True,
-                                  start="2022-10-03T04:47:28.000000+09:00",
-                                  to="2020-06-28T15:24:41.000000+09:00",
-                                  page=4552,
-                                  per_page=8478
+                                  "9942f30e-77b1-497d-b370-237f0239f926",
+                                  type="expire",
+                                  is_modified=False,
+                                  start="2020-01-20T17:58:12.000000Z",
+                                  to="2020-10-06T22:07:03.000000Z",
+                                  page=6625,
+                                  per_page=4035
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_customer_transactions_7(self):
         response = client.send(pp.ListCustomerTransactions(
-                                  "05b16a54-5888-47c7-a866-6d99ba6a6c01",
-                                  receiver_customer_id="4bfeb1cd-a2fa-4fa5-93d0-2c0dd8c04ce0",
-                                  type="transfer",
-                                  is_modified=True,
-                                  start="2017-04-01T05:42:00.000000+09:00",
-                                  to="2025-04-17T22:34:09.000000+09:00",
-                                  page=8585,
-                                  per_page=5913
+                                  "9942f30e-77b1-497d-b370-237f0239f926",
+                                  receiver_customer_id="45e400ef-43a2-4df6-91ab-2780e2da8848",
+                                  type="payment",
+                                  is_modified=False,
+                                  start="2026-05-02T09:19:05.000000Z",
+                                  to="2023-06-27T10:38:34.000000Z",
+                                  page=4172,
+                                  per_page=2674
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_customer_transactions_8(self):
         response = client.send(pp.ListCustomerTransactions(
-                                  "05b16a54-5888-47c7-a866-6d99ba6a6c01",
-                                  sender_customer_id="60db07d8-5eb4-40c7-ba2a-a5211ac0bd0e",
-                                  receiver_customer_id="d8128818-e537-46c0-bdd4-3e371623cacf",
-                                  type="transfer",
+                                  "9942f30e-77b1-497d-b370-237f0239f926",
+                                  sender_customer_id="da16bdd9-2f7a-4e6b-b712-946074911bbe",
+                                  receiver_customer_id="7626c529-3122-47c7-8142-7e831dc15dad",
+                                  type="expire",
                                   is_modified=False,
-                                  start="2016-11-22T14:49:47.000000+09:00",
-                                  to="2023-09-25T01:21:44.000000+09:00",
-                                  page=7699,
-                                  per_page=7048
+                                  start="2023-10-31T16:30:14.000000Z",
+                                  to="2025-11-08T17:22:15.000000Z",
+                                  page=1723,
+                                  per_page=6688
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_get_bulk_transaction_0(self):
         response = client.send(pp.GetBulkTransaction(
-                                  "8300a4b9-cfd7-4739-abb1-07e548bc1afd"
+                                  "cee74a26-3c7d-4eb1-84a1-785af4b701fe"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_bulk_transaction_jobs_0(self):
         response = client.send(pp.ListBulkTransactionJobs(
-                                  "1e4cffcb-fa3a-4e0b-889d-159adda948b7"
+                                  "ae1ec4fd-304b-43ea-b274-d087f56fcec2"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_bulk_transaction_jobs_1(self):
         response = client.send(pp.ListBulkTransactionJobs(
-                                  "1e4cffcb-fa3a-4e0b-889d-159adda948b7",
-                                  per_page=2419
+                                  "ae1ec4fd-304b-43ea-b274-d087f56fcec2",
+                                  per_page=6317
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_list_bulk_transaction_jobs_2(self):
         response = client.send(pp.ListBulkTransactionJobs(
-                                  "1e4cffcb-fa3a-4e0b-889d-159adda948b7",
-                                  page=9378,
-                                  per_page=2745
+                                  "ae1ec4fd-304b-43ea-b274-d087f56fcec2",
+                                  page=9415,
+                                  per_page=6561
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_cashtray_0(self):
         response = client.send(pp.CreateCashtray(
-                                  "c3fa6687-a405-4fee-b010-b4881db5bacd",
-                                  "4065a9ff-76b5-44e3-aa10-1100c05a6d95",
-                                  4823.0
+                                  "ab108388-64a5-4016-a02f-7e72a5a4aee8",
+                                  "ca541eff-d653-40f5-8cb2-3e9718582200",
+                                  1202.0
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_cashtray_1(self):
         response = client.send(pp.CreateCashtray(
-                                  "c3fa6687-a405-4fee-b010-b4881db5bacd",
-                                  "4065a9ff-76b5-44e3-aa10-1100c05a6d95",
-                                  4823.0,
-                                  expires_in=1775
+                                  "ab108388-64a5-4016-a02f-7e72a5a4aee8",
+                                  "ca541eff-d653-40f5-8cb2-3e9718582200",
+                                  1202.0,
+                                  expires_in=872
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_cashtray_2(self):
         response = client.send(pp.CreateCashtray(
-                                  "c3fa6687-a405-4fee-b010-b4881db5bacd",
-                                  "4065a9ff-76b5-44e3-aa10-1100c05a6d95",
-                                  4823.0,
-                                  description="mvcVzayJGxdqzoO9uXS4XBDN0o0Mu7ieKvzIZjqj6ciQDbUq",
-                                  expires_in=3605
+                                  "ab108388-64a5-4016-a02f-7e72a5a4aee8",
+                                  "ca541eff-d653-40f5-8cb2-3e9718582200",
+                                  1202.0,
+                                  description="ga7pF0nmLMfnIYTQdqHJZ8WnDHEVfpIBtEOMP2U7IkYygmkkDxd3MzpkzvPsPo2vcZvKaf47",
+                                  expires_in=5390
         ))
         self.assertNotEqual(response.status_code, 400)
 
-    def test_get_cashtray_0(self):
-        response = client.send(pp.GetCashtray(
-                                  "92df5a8a-34d4-431c-8cf1-a69cd05e3f5d"
+    def test_cancel_cashtray_0(self):
+        response = client.send(pp.CancelCashtray(
+                                  "e3936c44-0c77-4f91-86b5-99591d406edf"
         ))
         self.assertNotEqual(response.status_code, 400)
 
-    def test_cancel_cashtray_0(self):
-        response = client.send(pp.CancelCashtray(
-                                  "ca73d7e6-6ca2-42b5-9b16-cf9eb65c9a49"
+    def test_get_cashtray_0(self):
+        response = client.send(pp.GetCashtray(
+                                  "cff6cb9e-edac-4091-89b6-add3387561e5"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_update_cashtray_0(self):
         response = client.send(pp.UpdateCashtray(
-                                  "eb79417e-11ba-41b0-97ba-a66dfab9dd91"
+                                  "0a5e2085-ec15-4d41-a6a2-7dad34a69426"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_update_cashtray_1(self):
         response = client.send(pp.UpdateCashtray(
-                                  "eb79417e-11ba-41b0-97ba-a66dfab9dd91",
-                                  expires_in=7250
+                                  "0a5e2085-ec15-4d41-a6a2-7dad34a69426",
+                                  expires_in=8400
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_update_cashtray_2(self):
         response = client.send(pp.UpdateCashtray(
-                                  "eb79417e-11ba-41b0-97ba-a66dfab9dd91",
-                                  description="V3ZqnN3F5j5hei5eenuWOLqxpAqKhr1PiatJCFbxFePHe8fLp7pWtBDbGEkzsRtHz3ymmInXbIX7AIIYKuFyd9WkOS8uJqFVIWZBtq3jnfd5KTcWHD2AadOYe9kazoxyRuU9Z",
-                                  expires_in=6943
+                                  "0a5e2085-ec15-4d41-a6a2-7dad34a69426",
+                                  description="BDBgRA",
+                                  expires_in=7272
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_update_cashtray_3(self):
         response = client.send(pp.UpdateCashtray(
-                                  "eb79417e-11ba-41b0-97ba-a66dfab9dd91",
-                                  amount=6426.0,
-                                  description="8Q2HvADi2W3bSFZd8xGhm9VbcZgOZ4yYRMkHKY2yx9gLKmBFLvqK55BnlHTaFsTxQXtMZL6XWgDmeak1eoliBFeYUr35I7ta0sw71srL0z9GEG3PXvnl3BKAcPvmXPfih5KNNjURd2N8Uca7AszKQRtnK9OFQAZ",
-                                  expires_in=548
+                                  "0a5e2085-ec15-4d41-a6a2-7dad34a69426",
+                                  amount=5101.0,
+                                  description="xZGGCqaBwJ9iXjXSEfbkdsvlfnd1NOUEcUOGTeYua5DveJsn8lhIUcgIkY0oNU4ZtZZObHmdr0N6vylnlZRhGDMxuj8A7eDOAWeoDpeF6vcSyg1N9plx7jjHK1E1PUQiuVzdT2",
+                                  expires_in=5777
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_list_campaigns_0(self):
+        response = client.send(pp.ListCampaigns(
+                                  "482431be-8a59-41d6-963b-dbce1613d2a1"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_list_campaigns_1(self):
+        response = client.send(pp.ListCampaigns(
+                                  "482431be-8a59-41d6-963b-dbce1613d2a1",
+                                  per_page=40
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_list_campaigns_2(self):
+        response = client.send(pp.ListCampaigns(
+                                  "482431be-8a59-41d6-963b-dbce1613d2a1",
+                                  page=4620,
+                                  per_page=30
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_list_campaigns_3(self):
+        response = client.send(pp.ListCampaigns(
+                                  "482431be-8a59-41d6-963b-dbce1613d2a1",
+                                  available_to="2023-02-27T01:58:53.000000Z",
+                                  page=4457,
+                                  per_page=8
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_list_campaigns_4(self):
+        response = client.send(pp.ListCampaigns(
+                                  "482431be-8a59-41d6-963b-dbce1613d2a1",
+                                  available_from="2021-03-11T15:55:07.000000Z",
+                                  available_to="2022-08-03T00:37:18.000000Z",
+                                  page=6026,
+                                  per_page=42
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_list_campaigns_5(self):
+        response = client.send(pp.ListCampaigns(
+                                  "482431be-8a59-41d6-963b-dbce1613d2a1",
+                                  is_ongoing=False,
+                                  available_from="2021-02-04T22:19:13.000000Z",
+                                  available_to="2021-08-31T04:33:40.000000Z",
+                                  page=2379,
+                                  per_page=23
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_campaign_0(self):
         response = client.send(pp.CreateCampaign(
-                                  "k8lWFzl04cFD8UrQW71JWWTZgcCuDt4bOl52Y9Vo2q3PiHBjRUpdSYSIHe7WRd8QgrTh5gg3jBLh2J3dK297uJriMdLcWHclyy16UsYQYNNbAndnytowLyNOYLTs",
-                                  "a3dd2a8c-a0c8-4a92-9f88-255c868fa801",
-                                  "2019-03-03T02:07:28.000000+09:00",
-                                  "2023-07-26T09:59:50.000000+09:00",
-                                  4686,
-                                  "payment"
+                                  "8HWWbXOMsyMVL1Y0FzVGqOKFoU3xJNKmuaDr4cMSAgHDAlLlP6Lo5yS1v7L6lCM4yrq4lI3mHyvfAo1Zkwkd2ADoyNq2PW9ePZH1V16DlcE5",
+                                  "658a58db-7f87-426d-9b7b-c772052f6809",
+                                  "2020-03-25T02:53:40.000000Z",
+                                  "2021-03-29T01:32:57.000000Z",
+                                  6829,
+                                  "payment",
+                                  applicable_shop_ids=["a8b20dfe-18f1-4c5d-83d0-74ddb45f15f1", "f25722bf-ef86-4031-9aeb-356cb242abfe", "adba3125-8d8e-487d-a9d0-7a1a5ab0180f", "f8905d86-9fd9-41c9-85e9-f7b4820d5d7e", "fc1b0366-1c1c-4367-9a7a-8cde77df3c2e", "8946fa70-1cbb-490d-aec6-fd9e3b95b5e6", "72572587-5382-4e39-9976-1f3b3cd7745d", "d95cac84-6720-4cc3-921a-3696e3e4242c", "91429d8d-8c94-47c4-a555-b638a3dcb9ca", "dd7a3bb5-b539-419e-8f5b-001cf84498f4"]
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_campaign_1(self):
         response = client.send(pp.CreateCampaign(
-                                  "k8lWFzl04cFD8UrQW71JWWTZgcCuDt4bOl52Y9Vo2q3PiHBjRUpdSYSIHe7WRd8QgrTh5gg3jBLh2J3dK297uJriMdLcWHclyy16UsYQYNNbAndnytowLyNOYLTs",
-                                  "a3dd2a8c-a0c8-4a92-9f88-255c868fa801",
-                                  "2019-03-03T02:07:28.000000+09:00",
-                                  "2023-07-26T09:59:50.000000+09:00",
-                                  4686,
+                                  "8HWWbXOMsyMVL1Y0FzVGqOKFoU3xJNKmuaDr4cMSAgHDAlLlP6Lo5yS1v7L6lCM4yrq4lI3mHyvfAo1Zkwkd2ADoyNq2PW9ePZH1V16DlcE5",
+                                  "658a58db-7f87-426d-9b7b-c772052f6809",
+                                  "2020-03-25T02:53:40.000000Z",
+                                  "2021-03-29T01:32:57.000000Z",
+                                  6829,
                                   "payment",
-                                  applicable_account_metadata={
-          "key": "sex",
-          "value": "male"
-        }
+                                  applicable_shop_ids=["934101ef-f45f-46eb-bc86-237f69834e1d", "c8d81b2b-2b3e-4aa8-85df-7a8496e4f216", "1bf162a8-3b4d-4a4d-965e-0d9b6e88985d", "485cd389-64e8-446d-8bdb-74fa254954b2"],
+                                  bear_point_shop_id="a0be5a8b-84e9-437b-9b2c-1eafc5c6bedf"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_campaign_2(self):
         response = client.send(pp.CreateCampaign(
-                                  "k8lWFzl04cFD8UrQW71JWWTZgcCuDt4bOl52Y9Vo2q3PiHBjRUpdSYSIHe7WRd8QgrTh5gg3jBLh2J3dK297uJriMdLcWHclyy16UsYQYNNbAndnytowLyNOYLTs",
-                                  "a3dd2a8c-a0c8-4a92-9f88-255c868fa801",
-                                  "2019-03-03T02:07:28.000000+09:00",
-                                  "2023-07-26T09:59:50.000000+09:00",
-                                  4686,
+                                  "8HWWbXOMsyMVL1Y0FzVGqOKFoU3xJNKmuaDr4cMSAgHDAlLlP6Lo5yS1v7L6lCM4yrq4lI3mHyvfAo1Zkwkd2ADoyNq2PW9ePZH1V16DlcE5",
+                                  "658a58db-7f87-426d-9b7b-c772052f6809",
+                                  "2020-03-25T02:53:40.000000Z",
+                                  "2021-03-29T01:32:57.000000Z",
+                                  6829,
                                   "payment",
-                                  dest_private_money_id="7dc078ac-b404-48ed-9777-fb30237911c5",
-                                  applicable_account_metadata={
-          "key": "sex",
-          "value": "male"
-        }
+                                  applicable_shop_ids=["8c200e2a-86c2-40ef-8755-55b1bcd650cf", "f4657b8d-1103-44f8-9f81-4a55e26667c0", "332a8b21-9ea7-447d-ad0b-aa1d5e2889fe", "610fe149-376c-463a-8681-28b7766a6a09", "4660d76a-d53d-4502-ac9c-b9d7e8f16e78", "7359ddc0-bd99-49f2-a603-f7947e636a10", "c8674f45-d74b-484d-9fd1-498205606738", "bf14bec6-74a7-499e-8373-47b0b7c6cba8", "71f0518f-f736-47b2-904c-9b62cc000835"],
+                                  description="yfzniw8Z7TrjWh0BQdrr7bOC0AUfJnZnSogxeCWxbc4wl0P2Dqh3DSK23M",
+                                  bear_point_shop_id="a4e76683-6980-4edd-ab3f-2b38ff753a16"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_campaign_3(self):
         response = client.send(pp.CreateCampaign(
-                                  "k8lWFzl04cFD8UrQW71JWWTZgcCuDt4bOl52Y9Vo2q3PiHBjRUpdSYSIHe7WRd8QgrTh5gg3jBLh2J3dK297uJriMdLcWHclyy16UsYQYNNbAndnytowLyNOYLTs",
-                                  "a3dd2a8c-a0c8-4a92-9f88-255c868fa801",
-                                  "2019-03-03T02:07:28.000000+09:00",
-                                  "2023-07-26T09:59:50.000000+09:00",
-                                  4686,
+                                  "8HWWbXOMsyMVL1Y0FzVGqOKFoU3xJNKmuaDr4cMSAgHDAlLlP6Lo5yS1v7L6lCM4yrq4lI3mHyvfAo1Zkwkd2ADoyNq2PW9ePZH1V16DlcE5",
+                                  "658a58db-7f87-426d-9b7b-c772052f6809",
+                                  "2020-03-25T02:53:40.000000Z",
+                                  "2021-03-29T01:32:57.000000Z",
+                                  6829,
                                   "payment",
-                                  max_total_point_amount=8487,
-                                  dest_private_money_id="6d324518-06fc-4623-aa6e-34e4b0a25291",
-                                  applicable_account_metadata={
-          "key": "sex",
-          "value": "male"
-        }
+                                  applicable_shop_ids=["439836ed-1236-4ac3-acee-009d9d5fee28", "a881c030-b96e-4b8a-a593-b4785ee30578", "88b15035-4c8d-4ac3-85f7-dc35bb3de47e", "95bba404-1c12-49b8-b33c-80cae6f8f332", "84d572d7-385f-4c45-8269-026999279bdc"],
+                                  status="disabled",
+                                  description="FuwneTfWH1pqqlIhFKkOnPRe3g3OqYMD6Y7flopJpL06wROQZ33dSb51CrQZVorM80jAnbL9pF2AijYf8ydTws4HIQ4AniWPzD9CM0oL6ak44VafBlkQEtaE8xbTpd0PiIwS54q66i2nXWkvfusE3ma",
+                                  bear_point_shop_id="51a0d8e7-7852-4a5a-8058-5b424489d476"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_campaign_4(self):
         response = client.send(pp.CreateCampaign(
-                                  "k8lWFzl04cFD8UrQW71JWWTZgcCuDt4bOl52Y9Vo2q3PiHBjRUpdSYSIHe7WRd8QgrTh5gg3jBLh2J3dK297uJriMdLcWHclyy16UsYQYNNbAndnytowLyNOYLTs",
-                                  "a3dd2a8c-a0c8-4a92-9f88-255c868fa801",
-                                  "2019-03-03T02:07:28.000000+09:00",
-                                  "2023-07-26T09:59:50.000000+09:00",
-                                  4686,
+                                  "8HWWbXOMsyMVL1Y0FzVGqOKFoU3xJNKmuaDr4cMSAgHDAlLlP6Lo5yS1v7L6lCM4yrq4lI3mHyvfAo1Zkwkd2ADoyNq2PW9ePZH1V16DlcE5",
+                                  "658a58db-7f87-426d-9b7b-c772052f6809",
+                                  "2020-03-25T02:53:40.000000Z",
+                                  "2021-03-29T01:32:57.000000Z",
+                                  6829,
                                   "payment",
-                                  max_point_amount=3783,
-                                  max_total_point_amount=756,
-                                  dest_private_money_id="f424cefe-6014-483b-8788-4bf615716118",
-                                  applicable_account_metadata={
-          "key": "sex",
-          "value": "male"
-        }
+                                  applicable_shop_ids=["16bb15d9-5e80-4c51-8e89-1b312b4c09b1"],
+                                  point_expires_at="2021-03-04T09:04:37.000000Z",
+                                  status="enabled",
+                                  description="iTIPMylP78XJI2fkoYuaeWPZ92K6Zt1zTkBm5QsUJIx79pUjuQLW3JQAlc0mxfIBEGWMOeqgVzvGmf46VZC1gROo7yDwwPoswLPrFl08abqydMndg7MmFsD2bCpZf9Km",
+                                  bear_point_shop_id="52ff85fa-a9f8-4e16-b2e3-ea533703e2f6"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_campaign_5(self):
         response = client.send(pp.CreateCampaign(
-                                  "k8lWFzl04cFD8UrQW71JWWTZgcCuDt4bOl52Y9Vo2q3PiHBjRUpdSYSIHe7WRd8QgrTh5gg3jBLh2J3dK297uJriMdLcWHclyy16UsYQYNNbAndnytowLyNOYLTs",
-                                  "a3dd2a8c-a0c8-4a92-9f88-255c868fa801",
-                                  "2019-03-03T02:07:28.000000+09:00",
-                                  "2023-07-26T09:59:50.000000+09:00",
-                                  4686,
+                                  "8HWWbXOMsyMVL1Y0FzVGqOKFoU3xJNKmuaDr4cMSAgHDAlLlP6Lo5yS1v7L6lCM4yrq4lI3mHyvfAo1Zkwkd2ADoyNq2PW9ePZH1V16DlcE5",
+                                  "658a58db-7f87-426d-9b7b-c772052f6809",
+                                  "2020-03-25T02:53:40.000000Z",
+                                  "2021-03-29T01:32:57.000000Z",
+                                  6829,
                                   "payment",
-                                  exist_in_each_product_groups=False,
-                                  max_point_amount=6880,
-                                  max_total_point_amount=8168,
-                                  dest_private_money_id="08ffb985-f360-4626-92d0-f7f57c263d84",
-                                  applicable_account_metadata={
-          "key": "sex",
-          "value": "male"
-        }
+                                  applicable_shop_ids=["90b4fc12-fe73-45e7-a670-c332e2ada6b8", "45fd7692-004e-4150-bbd7-c7719eb34def", "f073f936-0b58-433a-b1ec-fb974b022302", "3d73b071-7e23-42f2-89d2-0cb9c46d45ec"],
+                                  point_expires_in_days=665,
+                                  point_expires_at="2025-12-28T03:45:52.000000Z",
+                                  status="disabled",
+                                  description="4nyVSUDS2rGPI8RxpE3teEPiaYEeN8ncoL5boSBHerEtGhFgJdxHlskgg6LM7DHhWIQ2aljg7pW5tLDSL3EPYXvMXdIXxGA8eOtdDg4emZxxvv3UzyZmkPPeL3Q",
+                                  bear_point_shop_id="0ccbf3df-e253-4a22-a548-82a26c6e5eac"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_campaign_6(self):
         response = client.send(pp.CreateCampaign(
-                                  "k8lWFzl04cFD8UrQW71JWWTZgcCuDt4bOl52Y9Vo2q3PiHBjRUpdSYSIHe7WRd8QgrTh5gg3jBLh2J3dK297uJriMdLcWHclyy16UsYQYNNbAndnytowLyNOYLTs",
-                                  "a3dd2a8c-a0c8-4a92-9f88-255c868fa801",
-                                  "2019-03-03T02:07:28.000000+09:00",
-                                  "2023-07-26T09:59:50.000000+09:00",
-                                  4686,
+                                  "8HWWbXOMsyMVL1Y0FzVGqOKFoU3xJNKmuaDr4cMSAgHDAlLlP6Lo5yS1v7L6lCM4yrq4lI3mHyvfAo1Zkwkd2ADoyNq2PW9ePZH1V16DlcE5",
+                                  "658a58db-7f87-426d-9b7b-c772052f6809",
+                                  "2020-03-25T02:53:40.000000Z",
+                                  "2021-03-29T01:32:57.000000Z",
+                                  6829,
                                   "payment",
-                                  minimum_number_for_combination_purchase=6296,
-                                  exist_in_each_product_groups=False,
-                                  max_point_amount=8551,
-                                  max_total_point_amount=3991,
-                                  dest_private_money_id="4d498f9b-cea5-452c-87d2-4a20d721f5e8",
-                                  applicable_account_metadata={
-          "key": "sex",
-          "value": "male"
-        }
+                                  applicable_shop_ids=["9753b43e-e901-485e-bd0b-90e02931f0fa", "ef7a2d4b-ce61-4b9c-acb8-5455a314714a", "b4fcb32b-4337-4400-ad5f-a8f67f91eaea", "46ea9b89-4554-4fc6-bb55-5130f45f1077"],
+                                  is_exclusive=False,
+                                  point_expires_in_days=4861,
+                                  point_expires_at="2024-07-19T21:09:25.000000Z",
+                                  status="disabled",
+                                  description="89mD0TpxWczQUyWaVgBaLWMWptjgf0FiZZDEEO2PZA9bioQMPG1E81jCARXbk7MR17C6RF6LyMxBAxNrASDj9VGr6rQWfEP7s2f7f5rT4gnJZ2Cz81XNoucyBbEpxFX7PDggrznNWBV0p9BBTTp6AGpMMO3btHYGiB4Qalu6c",
+                                  bear_point_shop_id="59670168-7627-4fba-bba2-adc4702a0317"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_campaign_7(self):
         response = client.send(pp.CreateCampaign(
-                                  "k8lWFzl04cFD8UrQW71JWWTZgcCuDt4bOl52Y9Vo2q3PiHBjRUpdSYSIHe7WRd8QgrTh5gg3jBLh2J3dK297uJriMdLcWHclyy16UsYQYNNbAndnytowLyNOYLTs",
-                                  "a3dd2a8c-a0c8-4a92-9f88-255c868fa801",
-                                  "2019-03-03T02:07:28.000000+09:00",
-                                  "2023-07-26T09:59:50.000000+09:00",
-                                  4686,
+                                  "8HWWbXOMsyMVL1Y0FzVGqOKFoU3xJNKmuaDr4cMSAgHDAlLlP6Lo5yS1v7L6lCM4yrq4lI3mHyvfAo1Zkwkd2ADoyNq2PW9ePZH1V16DlcE5",
+                                  "658a58db-7f87-426d-9b7b-c772052f6809",
+                                  "2020-03-25T02:53:40.000000Z",
+                                  "2021-03-29T01:32:57.000000Z",
+                                  6829,
                                   "payment",
-                                  applicable_shop_ids=["403a483d-212a-46d3-89ac-f82f59c6cede", "603c630b-0950-44bb-ab42-b73f6db31b0b", "a6654460-debb-4f19-8c0d-5f7f08dadd2d", "d2f5f88f-ff99-488c-860f-1bd6ddfd067e", "de38f153-87ef-45f4-a69f-dc67aedbbc0f", "85bb9caf-bea0-42fe-b96c-17e42ea048c0", "68f309ae-73ae-4a02-96d6-1f8e17f2756d", "baef9f61-e0d0-4078-bb26-ac8893c91881", "da85f1f8-376b-4f12-94f1-229f764a8ea8", "ec0c115b-e6a7-4cba-8fed-80c6310b45f2"],
-                                  minimum_number_for_combination_purchase=8647,
-                                  exist_in_each_product_groups=False,
-                                  max_point_amount=3302,
-                                  max_total_point_amount=1602,
-                                  dest_private_money_id="951d8947-e95c-41d7-bcb6-7aac1875fb74",
-                                  applicable_account_metadata={
-          "key": "sex",
-          "value": "male"
-        }
+                                  applicable_shop_ids=["a5e268b2-6120-48d0-a31a-b1ea319b5a0d", "3513c814-580c-4bdc-a49e-760186c413b2", "34b7ce63-38ff-4bf4-91f6-9aed84d7835a", "ba2d3afa-b688-422f-bd16-a87b0d326c75", "247c5717-250d-4f47-b533-dd2d7b8555f1", "25e5dedd-915a-43d7-9400-71d9a37ab37f", "fdb0ea02-c67a-4302-90a0-7047721dbb21"],
+                                  subject="all",
+                                  is_exclusive=False,
+                                  point_expires_in_days=6945,
+                                  point_expires_at="2021-09-03T11:08:05.000000Z",
+                                  status="enabled",
+                                  description="uuBX6LUUUBENz9R18rNQjTARxcKWcb1nyLLVIf7PJ4P",
+                                  bear_point_shop_id="c064f2cb-38db-45c9-9997-f1d251891cc1"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_campaign_8(self):
         response = client.send(pp.CreateCampaign(
-                                  "k8lWFzl04cFD8UrQW71JWWTZgcCuDt4bOl52Y9Vo2q3PiHBjRUpdSYSIHe7WRd8QgrTh5gg3jBLh2J3dK297uJriMdLcWHclyy16UsYQYNNbAndnytowLyNOYLTs",
-                                  "a3dd2a8c-a0c8-4a92-9f88-255c868fa801",
-                                  "2019-03-03T02:07:28.000000+09:00",
-                                  "2023-07-26T09:59:50.000000+09:00",
-                                  4686,
+                                  "8HWWbXOMsyMVL1Y0FzVGqOKFoU3xJNKmuaDr4cMSAgHDAlLlP6Lo5yS1v7L6lCM4yrq4lI3mHyvfAo1Zkwkd2ADoyNq2PW9ePZH1V16DlcE5",
+                                  "658a58db-7f87-426d-9b7b-c772052f6809",
+                                  "2020-03-25T02:53:40.000000Z",
+                                  "2021-03-29T01:32:57.000000Z",
+                                  6829,
                                   "payment",
-                                  applicable_time_ranges=[{
-          "from": "12:00",
-          "to": "23:59"
-        }, {
-          "from": "12:00",
-          "to": "23:59"
-        }, {
-          "from": "12:00",
-          "to": "23:59"
-        }, {
-          "from": "12:00",
-          "to": "23:59"
-        }, {
-          "from": "12:00",
-          "to": "23:59"
-        }, {
-          "from": "12:00",
-          "to": "23:59"
-        }, {
-          "from": "12:00",
-          "to": "23:59"
-        }, {
-          "from": "12:00",
-          "to": "23:59"
+                                  applicable_shop_ids=["ffa8685d-d955-4943-b5dc-f9936d30e5d1", "4cb2b17b-6b79-45e3-9767-c91862c78646"],
+                                  amount_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
         }, {
-          "from": "12:00",
-          "to": "23:59"
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
         }],
-                                  applicable_shop_ids=["cc61f682-a9e0-48a3-975a-67db75627fb8", "b498a89e-a82a-419d-9bbe-367b20cd8615", "16326fe3-daa9-4be3-82c8-94483a677cd3", "31093e1e-c091-4b3b-a4f3-1be3042d6a70", "c54ad9de-dfcf-4dab-b28c-487c908056ee", "fa083838-6fa8-47b3-b264-818182d98d36", "0a0b2764-a10b-4ff1-b520-93465d5cb77f", "8acbf391-5fb6-4065-9fe9-919c30a2009e", "fcf374da-1003-41b3-84c4-02648b13c386", "d1c47bb6-b157-4b22-a99e-77d3ca78b59c"],
-                                  minimum_number_for_combination_purchase=7802,
-                                  exist_in_each_product_groups=False,
-                                  max_point_amount=1455,
-                                  max_total_point_amount=7194,
-                                  dest_private_money_id="ca39fe6c-e650-43cc-9819-19f89a618058",
-                                  applicable_account_metadata={
-          "key": "sex",
-          "value": "male"
-        }
+                                  subject="money",
+                                  is_exclusive=True,
+                                  point_expires_in_days=6175,
+                                  point_expires_at="2025-12-09T00:19:59.000000Z",
+                                  status="disabled",
+                                  description="dRqVd3CIlE3dO8Hdi7PJayBT5IgAK5b9hyZhcZh8MuSlVRKgCSpIL13YYuGN17rfT9nOtCiuSxp7i1rcacR4EWmJRYE0",
+                                  bear_point_shop_id="48149296-cbaa-4098-9ef6-07df2d017067"
         ))
         self.assertNotEqual(response.status_code, 400)
 
     def test_create_campaign_9(self):
         response = client.send(pp.CreateCampaign(
-                                  "k8lWFzl04cFD8UrQW71JWWTZgcCuDt4bOl52Y9Vo2q3PiHBjRUpdSYSIHe7WRd8QgrTh5gg3jBLh2J3dK297uJriMdLcWHclyy16UsYQYNNbAndnytowLyNOYLTs",
-                                  "a3dd2a8c-a0c8-4a92-9f88-255c868fa801",
-                                  "2019-03-03T02:07:28.000000+09:00",
-                                  "2023-07-26T09:59:50.000000+09:00",
-                                  4686,
-                                  "payment",
-                                  applicable_days_of_week=[5, 3, 6],
-                                  applicable_time_ranges=[],
-                                  applicable_shop_ids=["054dde71-7a0a-4ec1-a34c-0ed03298acf7"],
-                                  minimum_number_for_combination_purchase=7240,
-                                  exist_in_each_product_groups=False,
-                                  max_point_amount=8545,
-                                  max_total_point_amount=9335,
-                                  dest_private_money_id="d70c4f1e-4cfd-4d48-a509-b2898d5e93db",
-                                  applicable_account_metadata={
-          "key": "sex",
-          "value": "male"
-        }
-        ))
-        self.assertNotEqual(response.status_code, 400)
-
-    def test_create_campaign_10(self):
-        response = client.send(pp.CreateCampaign(
-                                  "k8lWFzl04cFD8UrQW71JWWTZgcCuDt4bOl52Y9Vo2q3PiHBjRUpdSYSIHe7WRd8QgrTh5gg3jBLh2J3dK297uJriMdLcWHclyy16UsYQYNNbAndnytowLyNOYLTs",
-                                  "a3dd2a8c-a0c8-4a92-9f88-255c868fa801",
-                                  "2019-03-03T02:07:28.000000+09:00",
-                                  "2023-07-26T09:59:50.000000+09:00",
-                                  4686,
+                                  "8HWWbXOMsyMVL1Y0FzVGqOKFoU3xJNKmuaDr4cMSAgHDAlLlP6Lo5yS1v7L6lCM4yrq4lI3mHyvfAo1Zkwkd2ADoyNq2PW9ePZH1V16DlcE5",
+                                  "658a58db-7f87-426d-9b7b-c772052f6809",
+                                  "2020-03-25T02:53:40.000000Z",
+                                  "2021-03-29T01:32:57.000000Z",
+                                  6829,
                                   "payment",
+                                  applicable_shop_ids=["f159bd88-e4be-403d-bcc7-8423d3477318", "e6391604-c9a6-4d6e-b21d-30803c770913"],
                                   product_based_point_rules=[{
           "point_amount": 5,
           "point_amount_unit": "percent",
@@ -3513,115 +4245,94 @@ def test_create_campaign_10(self):
           "product_code": "4912345678904",
           "is_multiply_by_count": True,
           "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
         }],
-                                  applicable_days_of_week=[0, 1, 1, 3, 6, 6, 4, 1],
-                                  applicable_time_ranges=[{
-          "from": "12:00",
-          "to": "23:59"
+                                  amount_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
         }],
-                                  applicable_shop_ids=["a8781f35-1e68-4d25-ab4b-611015e7d889", "5363b2e9-4ea0-4db9-955d-e0baf2952c23", "230c104f-2027-4a9f-b2a0-4e3cef87922f", "9c9ec550-28fe-4582-9db9-eee05967a1ff", "630ea097-43ea-4185-833c-162ea132fae9", "08fdd487-485a-4936-b521-9333131563a2", "6529bd78-0fb2-4157-8286-0790adb6293d", "db965b7a-525a-4217-8a90-bd2ed61a9c7e", "1d259b24-d2e0-4285-9ab5-c4e13c037835", "81eab067-4236-4503-9371-c61b4be8a2d5"],
-                                  minimum_number_for_combination_purchase=3607,
-                                  exist_in_each_product_groups=False,
-                                  max_point_amount=8287,
-                                  max_total_point_amount=7856,
-                                  dest_private_money_id="fef6156c-d43c-412a-9e3f-0d9d49012795",
-                                  applicable_account_metadata={
-          "key": "sex",
-          "value": "male"
-        }
+                                  subject="money",
+                                  is_exclusive=True,
+                                  point_expires_in_days=2273,
+                                  point_expires_at="2022-10-27T01:02:37.000000Z",
+                                  status="enabled",
+                                  description="wF29eViuwKtjsRjzvb8XUneGNN0gcbjHE0ykOW2yVlHndMAdWY9HjNAOFWD0f28rlwLb9YSbpNpmMET9MPbipC8utokXPq016coqfiAUWXxFRzN5EfouqVIJLmWFeGJqYbyf9xqeV9Lg6T4ooRxK5KRr3h",
+                                  bear_point_shop_id="d46cb0fb-c48e-4db8-a567-bb8e10a8bc46"
         ))
         self.assertNotEqual(response.status_code, 400)
 
-    def test_create_campaign_11(self):
+    def test_create_campaign_10(self):
         response = client.send(pp.CreateCampaign(
-                                  "k8lWFzl04cFD8UrQW71JWWTZgcCuDt4bOl52Y9Vo2q3PiHBjRUpdSYSIHe7WRd8QgrTh5gg3jBLh2J3dK297uJriMdLcWHclyy16UsYQYNNbAndnytowLyNOYLTs",
-                                  "a3dd2a8c-a0c8-4a92-9f88-255c868fa801",
-                                  "2019-03-03T02:07:28.000000+09:00",
-                                  "2023-07-26T09:59:50.000000+09:00",
-                                  4686,
+                                  "8HWWbXOMsyMVL1Y0FzVGqOKFoU3xJNKmuaDr4cMSAgHDAlLlP6Lo5yS1v7L6lCM4yrq4lI3mHyvfAo1Zkwkd2ADoyNq2PW9ePZH1V16DlcE5",
+                                  "658a58db-7f87-426d-9b7b-c772052f6809",
+                                  "2020-03-25T02:53:40.000000Z",
+                                  "2021-03-29T01:32:57.000000Z",
+                                  6829,
                                   "payment",
-                                  amount_based_point_rules=[{
+                                  applicable_shop_ids=["21b19c55-9890-4bc3-8eb7-1614cae1d03a", "8fdf1bd1-1abc-4a05-8ab0-d640046a0651", "a72b5a9f-722a-47fc-bc07-0e07fe0b49a1", "3bd93917-045c-4c81-976c-44017a891881", "851a6e71-b589-4f3f-b7f4-2f3f7b0deec4", "12939acc-fc38-4838-a1cc-f5664cbf723f", "8e46e8ab-a7db-4267-ab29-604369d0fd14", "bb3a542e-68a6-42e4-b3ac-d702f1adbbed", "1d7bc9f3-b165-428c-8c51-f3fde2b76d28", "22493342-292c-4124-9849-e1019fe97a1e"],
+                                  blacklisted_product_rules=[{
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }],
+                                  product_based_point_rules=[{
           "point_amount": 5,
           "point_amount_unit": "percent",
-          "subject_more_than_or_equal": 1000,
-          "subject_less_than": 5000
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
         }, {
           "point_amount": 5,
           "point_amount_unit": "percent",
-          "subject_more_than_or_equal": 1000,
-          "subject_less_than": 5000
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
         }, {
           "point_amount": 5,
           "point_amount_unit": "percent",
-          "subject_more_than_or_equal": 1000,
-          "subject_less_than": 5000
-        }],
-                                  product_based_point_rules=[{
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
           "point_amount": 5,
           "point_amount_unit": "percent",
           "product_code": "4912345678904",
           "is_multiply_by_count": True,
           "required_count": 2
-        }],
-                                  applicable_days_of_week=[1, 2, 3, 1],
-                                  applicable_time_ranges=[{
-          "from": "12:00",
-          "to": "23:59"
         }, {
-          "from": "12:00",
-          "to": "23:59"
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
         }, {
-          "from": "12:00",
-          "to": "23:59"
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
         }, {
-          "from": "12:00",
-          "to": "23:59"
-        }, {
-          "from": "12:00",
-          "to": "23:59"
-        }, {
-          "from": "12:00",
-          "to": "23:59"
-        }],
-                                  applicable_shop_ids=["d2907b19-eedc-4de4-a747-c956525b9da2", "e0d42772-3fd1-4b32-a1bd-ad2cfabd1734", "a4e6b906-85ef-4006-b483-921e7657c06e", "ca811ecb-0843-457a-a53a-34d93f170947", "d006b0fa-3ec0-4efa-9154-0a8dab4cdb57", "ec742ac5-c09b-4b33-ac05-c6fd5b5bbfd9", "ef395aa1-78a2-474f-a739-95f24ed92860"],
-                                  minimum_number_for_combination_purchase=2681,
-                                  exist_in_each_product_groups=True,
-                                  max_point_amount=4469,
-                                  max_total_point_amount=3481,
-                                  dest_private_money_id="7412bee8-dd9b-4479-903e-70e6045e87d8",
-                                  applicable_account_metadata={
-          "key": "sex",
-          "value": "male"
-        }
-        ))
-        self.assertNotEqual(response.status_code, 400)
-
-    def test_create_campaign_12(self):
-        response = client.send(pp.CreateCampaign(
-                                  "k8lWFzl04cFD8UrQW71JWWTZgcCuDt4bOl52Y9Vo2q3PiHBjRUpdSYSIHe7WRd8QgrTh5gg3jBLh2J3dK297uJriMdLcWHclyy16UsYQYNNbAndnytowLyNOYLTs",
-                                  "a3dd2a8c-a0c8-4a92-9f88-255c868fa801",
-                                  "2019-03-03T02:07:28.000000+09:00",
-                                  "2023-07-26T09:59:50.000000+09:00",
-                                  4686,
-                                  "payment",
-                                  subject="all",
-                                  amount_based_point_rules=[{
-          "point_amount": 5,
-          "point_amount_unit": "percent",
-          "subject_more_than_or_equal": 1000,
-          "subject_less_than": 5000
-        }, {
-          "point_amount": 5,
-          "point_amount_unit": "percent",
-          "subject_more_than_or_equal": 1000,
-          "subject_less_than": 5000
-        }, {
-          "point_amount": 5,
-          "point_amount_unit": "percent",
-          "subject_more_than_or_equal": 1000,
-          "subject_less_than": 5000
-        }],
-                                  product_based_point_rules=[{
           "point_amount": 5,
           "point_amount_unit": "percent",
           "product_code": "4912345678904",
@@ -3645,63 +4356,18 @@ def test_create_campaign_12(self):
           "product_code": "4912345678904",
           "is_multiply_by_count": True,
           "required_count": 2
-        }, {
+        }],
+                                  amount_based_point_rules=[{
           "point_amount": 5,
           "point_amount_unit": "percent",
-          "product_code": "4912345678904",
-          "is_multiply_by_count": True,
-          "required_count": 2
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
         }, {
           "point_amount": 5,
           "point_amount_unit": "percent",
-          "product_code": "4912345678904",
-          "is_multiply_by_count": True,
-          "required_count": 2
-        }],
-                                  applicable_days_of_week=[2],
-                                  applicable_time_ranges=[{
-          "from": "12:00",
-          "to": "23:59"
-        }, {
-          "from": "12:00",
-          "to": "23:59"
-        }, {
-          "from": "12:00",
-          "to": "23:59"
-        }, {
-          "from": "12:00",
-          "to": "23:59"
-        }, {
-          "from": "12:00",
-          "to": "23:59"
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
         }, {
-          "from": "12:00",
-          "to": "23:59"
-        }],
-                                  applicable_shop_ids=["4412b72f-e87b-4a94-bbf3-26299824d007", "973ae698-f750-4821-9fe4-e5b1f21eb564", "034470d6-bfb4-4dfc-a0ed-caaf04bdc62a"],
-                                  minimum_number_for_combination_purchase=5470,
-                                  exist_in_each_product_groups=False,
-                                  max_point_amount=7126,
-                                  max_total_point_amount=9863,
-                                  dest_private_money_id="4f3c775c-92e5-4817-b6c7-5befd7dccefd",
-                                  applicable_account_metadata={
-          "key": "sex",
-          "value": "male"
-        }
-        ))
-        self.assertNotEqual(response.status_code, 400)
-
-    def test_create_campaign_13(self):
-        response = client.send(pp.CreateCampaign(
-                                  "k8lWFzl04cFD8UrQW71JWWTZgcCuDt4bOl52Y9Vo2q3PiHBjRUpdSYSIHe7WRd8QgrTh5gg3jBLh2J3dK297uJriMdLcWHclyy16UsYQYNNbAndnytowLyNOYLTs",
-                                  "a3dd2a8c-a0c8-4a92-9f88-255c868fa801",
-                                  "2019-03-03T02:07:28.000000+09:00",
-                                  "2023-07-26T09:59:50.000000+09:00",
-                                  4686,
-                                  "payment",
-                                  is_exclusive=False,
-                                  subject="money",
-                                  amount_based_point_rules=[{
           "point_amount": 5,
           "point_amount_unit": "percent",
           "subject_more_than_or_equal": 1000,
@@ -3711,20 +4377,54 @@ def test_create_campaign_13(self):
           "point_amount_unit": "percent",
           "subject_more_than_or_equal": 1000,
           "subject_less_than": 5000
-        }],
-                                  product_based_point_rules=[{
+        }, {
           "point_amount": 5,
           "point_amount_unit": "percent",
-          "product_code": "4912345678904",
-          "is_multiply_by_count": True,
-          "required_count": 2
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
         }, {
           "point_amount": 5,
           "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }],
+                                  subject="all",
+                                  is_exclusive=False,
+                                  point_expires_in_days=5873,
+                                  point_expires_at="2020-03-14T18:33:54.000000Z",
+                                  status="disabled",
+                                  description="TvNgfaK3PoowpKAx3kfA31wXd04SY1O8gGOF1kRrye61uzmBIXdnENFs3jBlwZrD72DB37CRt8PxiPIwClGZ1KOGgE2sj7H",
+                                  bear_point_shop_id="9d1e2475-b436-46d7-8b09-2da18d95eab5"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_campaign_11(self):
+        response = client.send(pp.CreateCampaign(
+                                  "8HWWbXOMsyMVL1Y0FzVGqOKFoU3xJNKmuaDr4cMSAgHDAlLlP6Lo5yS1v7L6lCM4yrq4lI3mHyvfAo1Zkwkd2ADoyNq2PW9ePZH1V16DlcE5",
+                                  "658a58db-7f87-426d-9b7b-c772052f6809",
+                                  "2020-03-25T02:53:40.000000Z",
+                                  "2021-03-29T01:32:57.000000Z",
+                                  6829,
+                                  "payment",
+                                  applicable_shop_ids=["5c8bba82-95a2-4ebc-a21f-7b8847ee0337", "47504985-546e-4cdd-a270-91fba70de912", "ce37af85-9e5b-4c67-b563-bbaf785aa2e8", "1a6e43b6-528c-4af3-a4b2-734ab87b9c36"],
+                                  applicable_days_of_week=[0, 1, 0, 1, 0, 0, 4, 6],
+                                  blacklisted_product_rules=[{
           "product_code": "4912345678904",
-          "is_multiply_by_count": True,
-          "required_count": 2
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
         }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }],
+                                  product_based_point_rules=[{
           "point_amount": 5,
           "point_amount_unit": "percent",
           "product_code": "4912345678904",
@@ -3754,61 +4454,7 @@ def test_create_campaign_13(self):
           "product_code": "4912345678904",
           "is_multiply_by_count": True,
           "required_count": 2
-        }],
-                                  applicable_days_of_week=[6, 0, 5, 5],
-                                  applicable_time_ranges=[{
-          "from": "12:00",
-          "to": "23:59"
-        }, {
-          "from": "12:00",
-          "to": "23:59"
-        }, {
-          "from": "12:00",
-          "to": "23:59"
-        }, {
-          "from": "12:00",
-          "to": "23:59"
-        }, {
-          "from": "12:00",
-          "to": "23:59"
-        }, {
-          "from": "12:00",
-          "to": "23:59"
         }, {
-          "from": "12:00",
-          "to": "23:59"
-        }],
-                                  applicable_shop_ids=["9479d6d5-33f5-4dbb-af5c-892ddee283af", "1ab52c18-9d5c-49dd-839a-2a8dd54b0818", "e410730e-8a4a-43d6-9dcb-3825d37908b5", "57bba400-25a3-43dd-8cc1-593deaf4ee47", "6d2da28c-9053-4165-acde-c1e90d379586", "02d7d411-1cd7-4857-a8c0-8a252dd067c5"],
-                                  minimum_number_for_combination_purchase=9268,
-                                  exist_in_each_product_groups=False,
-                                  max_point_amount=6200,
-                                  max_total_point_amount=9283,
-                                  dest_private_money_id="b2c24a4e-7ce5-4362-aeb7-fb322545d972",
-                                  applicable_account_metadata={
-          "key": "sex",
-          "value": "male"
-        }
-        ))
-        self.assertNotEqual(response.status_code, 400)
-
-    def test_create_campaign_14(self):
-        response = client.send(pp.CreateCampaign(
-                                  "k8lWFzl04cFD8UrQW71JWWTZgcCuDt4bOl52Y9Vo2q3PiHBjRUpdSYSIHe7WRd8QgrTh5gg3jBLh2J3dK297uJriMdLcWHclyy16UsYQYNNbAndnytowLyNOYLTs",
-                                  "a3dd2a8c-a0c8-4a92-9f88-255c868fa801",
-                                  "2019-03-03T02:07:28.000000+09:00",
-                                  "2023-07-26T09:59:50.000000+09:00",
-                                  4686,
-                                  "payment",
-                                  point_expires_in_days=481,
-                                  is_exclusive=False,
-                                  subject="money",
-                                  amount_based_point_rules=[{
-          "point_amount": 5,
-          "point_amount_unit": "percent",
-          "subject_more_than_or_equal": 1000,
-          "subject_less_than": 5000
-        }],
-                                  product_based_point_rules=[{
           "point_amount": 5,
           "point_amount_unit": "percent",
           "product_code": "4912345678904",
@@ -3827,54 +4473,6 @@ def test_create_campaign_14(self):
           "is_multiply_by_count": True,
           "required_count": 2
         }],
-                                  applicable_days_of_week=[0, 3, 5, 3, 6, 0, 5, 4],
-                                  applicable_time_ranges=[{
-          "from": "12:00",
-          "to": "23:59"
-        }, {
-          "from": "12:00",
-          "to": "23:59"
-        }, {
-          "from": "12:00",
-          "to": "23:59"
-        }, {
-          "from": "12:00",
-          "to": "23:59"
-        }, {
-          "from": "12:00",
-          "to": "23:59"
-        }, {
-          "from": "12:00",
-          "to": "23:59"
-        }, {
-          "from": "12:00",
-          "to": "23:59"
-        }],
-                                  applicable_shop_ids=["14ca9a8b-050b-4f3a-818c-0bf87d1d95a6", "53fe7815-2ef5-478f-92ba-5468132e8f14", "6016d087-3eb6-4a1a-9ebf-89b6ead1a6b1", "85796cd5-edb8-4816-be8a-16321a3d54e2", "3cb38187-3230-443c-bcf9-0f2705aacd2f", "151fb790-362a-41e5-9986-1aef9c532a1f", "cdbaff35-7d06-42fa-a64f-70c19e8cbf27", "3c3d08ab-7967-4a3b-a453-a5cc921c7e2a", "07365ed6-1640-4b0b-8ee2-4f3180027931", "c65a8ce8-005a-4eca-ae57-fe2ca3c34e45"],
-                                  minimum_number_for_combination_purchase=7866,
-                                  exist_in_each_product_groups=True,
-                                  max_point_amount=538,
-                                  max_total_point_amount=9877,
-                                  dest_private_money_id="6484e7e8-7a8a-421c-bbce-fe1fac01cce4",
-                                  applicable_account_metadata={
-          "key": "sex",
-          "value": "male"
-        }
-        ))
-        self.assertNotEqual(response.status_code, 400)
-
-    def test_create_campaign_15(self):
-        response = client.send(pp.CreateCampaign(
-                                  "k8lWFzl04cFD8UrQW71JWWTZgcCuDt4bOl52Y9Vo2q3PiHBjRUpdSYSIHe7WRd8QgrTh5gg3jBLh2J3dK297uJriMdLcWHclyy16UsYQYNNbAndnytowLyNOYLTs",
-                                  "a3dd2a8c-a0c8-4a92-9f88-255c868fa801",
-                                  "2019-03-03T02:07:28.000000+09:00",
-                                  "2023-07-26T09:59:50.000000+09:00",
-                                  4686,
-                                  "payment",
-                                  point_expires_at="2021-01-01T13:57:44.000000+09:00",
-                                  point_expires_in_days=4438,
-                                  is_exclusive=True,
-                                  subject="all",
                                   amount_based_point_rules=[{
           "point_amount": 5,
           "point_amount_unit": "percent",
@@ -3910,25 +4508,26 @@ def test_create_campaign_15(self):
           "point_amount_unit": "percent",
           "subject_more_than_or_equal": 1000,
           "subject_less_than": 5000
-        }, {
-          "point_amount": 5,
-          "point_amount_unit": "percent",
-          "subject_more_than_or_equal": 1000,
-          "subject_less_than": 5000
-        }, {
-          "point_amount": 5,
-          "point_amount_unit": "percent",
-          "subject_more_than_or_equal": 1000,
-          "subject_less_than": 5000
-        }],
-                                  product_based_point_rules=[{
-          "point_amount": 5,
-          "point_amount_unit": "percent",
-          "product_code": "4912345678904",
-          "is_multiply_by_count": True,
-          "required_count": 2
         }],
-                                  applicable_days_of_week=[1, 1, 3, 1],
+                                  subject="money",
+                                  is_exclusive=False,
+                                  point_expires_in_days=4582,
+                                  point_expires_at="2023-07-30T00:03:25.000000Z",
+                                  status="disabled",
+                                  description="n521mnmeh5QEBdCZJtrUa6Fgp7ym0hYqDUAWMYxWfGNC0wV3aBOX1Ig8hROFB3MljHGXrpVSkSdQBQzqXHWCk88yAdkNbUUlXp2sT5T809AbvtJaUy0K5oRI2Afv57nsS8pT7iw",
+                                  bear_point_shop_id="8329b84e-f7ec-4589-9d39-dc980e0c9b43"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_campaign_12(self):
+        response = client.send(pp.CreateCampaign(
+                                  "8HWWbXOMsyMVL1Y0FzVGqOKFoU3xJNKmuaDr4cMSAgHDAlLlP6Lo5yS1v7L6lCM4yrq4lI3mHyvfAo1Zkwkd2ADoyNq2PW9ePZH1V16DlcE5",
+                                  "658a58db-7f87-426d-9b7b-c772052f6809",
+                                  "2020-03-25T02:53:40.000000Z",
+                                  "2021-03-29T01:32:57.000000Z",
+                                  6829,
+                                  "payment",
+                                  applicable_shop_ids=["d909de4e-0980-4a35-bf00-fcafb9fc69f9", "9b392018-fa40-48a0-a89f-7ec3cb7e04a0", "f0cdaa73-2302-4014-84cd-c1bec2415f18", "70941075-8e94-4f1c-9e75-1393b90c1e61", "75147ad7-0e67-4e82-9eb6-19f60ce6afea", "170812a9-446f-48da-86ca-c05522a21735"],
                                   applicable_time_ranges=[{
           "from": "12:00",
           "to": "23:59"
@@ -3936,52 +4535,28 @@ def test_create_campaign_15(self):
           "from": "12:00",
           "to": "23:59"
         }],
-                                  applicable_shop_ids=["53183c74-811a-4a3c-b07d-220b7bc3e150"],
-                                  minimum_number_for_combination_purchase=1165,
-                                  exist_in_each_product_groups=False,
-                                  max_point_amount=480,
-                                  max_total_point_amount=7822,
-                                  dest_private_money_id="7dbac46f-f891-433c-ae57-b29c53b02649",
-                                  applicable_account_metadata={
-          "key": "sex",
-          "value": "male"
-        }
-        ))
-        self.assertNotEqual(response.status_code, 400)
-
-    def test_create_campaign_16(self):
-        response = client.send(pp.CreateCampaign(
-                                  "k8lWFzl04cFD8UrQW71JWWTZgcCuDt4bOl52Y9Vo2q3PiHBjRUpdSYSIHe7WRd8QgrTh5gg3jBLh2J3dK297uJriMdLcWHclyy16UsYQYNNbAndnytowLyNOYLTs",
-                                  "a3dd2a8c-a0c8-4a92-9f88-255c868fa801",
-                                  "2019-03-03T02:07:28.000000+09:00",
-                                  "2023-07-26T09:59:50.000000+09:00",
-                                  4686,
-                                  "payment",
-                                  status="enabled",
-                                  point_expires_at="2021-06-04T07:55:30.000000+09:00",
-                                  point_expires_in_days=9766,
-                                  is_exclusive=False,
-                                  subject="money",
-                                  amount_based_point_rules=[{
-          "point_amount": 5,
-          "point_amount_unit": "percent",
-          "subject_more_than_or_equal": 1000,
-          "subject_less_than": 5000
+                                  applicable_days_of_week=[0, 6, 2, 0, 6, 6],
+                                  blacklisted_product_rules=[{
+          "product_code": "4912345678904",
+          "classification_code": "c123"
         }, {
-          "point_amount": 5,
-          "point_amount_unit": "percent",
-          "subject_more_than_or_equal": 1000,
-          "subject_less_than": 5000
+          "product_code": "4912345678904",
+          "classification_code": "c123"
         }, {
-          "point_amount": 5,
-          "point_amount_unit": "percent",
-          "subject_more_than_or_equal": 1000,
-          "subject_less_than": 5000
+          "product_code": "4912345678904",
+          "classification_code": "c123"
         }, {
-          "point_amount": 5,
-          "point_amount_unit": "percent",
-          "subject_more_than_or_equal": 1000,
-          "subject_less_than": 5000
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
         }],
                                   product_based_point_rules=[{
           "point_amount": 5,
@@ -4001,71 +4576,28 @@ def test_create_campaign_16(self):
           "product_code": "4912345678904",
           "is_multiply_by_count": True,
           "required_count": 2
-        }],
-                                  applicable_days_of_week=[],
-                                  applicable_time_ranges=[{
-          "from": "12:00",
-          "to": "23:59"
-        }, {
-          "from": "12:00",
-          "to": "23:59"
-        }, {
-          "from": "12:00",
-          "to": "23:59"
-        }, {
-          "from": "12:00",
-          "to": "23:59"
-        }, {
-          "from": "12:00",
-          "to": "23:59"
-        }, {
-          "from": "12:00",
-          "to": "23:59"
-        }, {
-          "from": "12:00",
-          "to": "23:59"
         }, {
-          "from": "12:00",
-          "to": "23:59"
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
         }, {
-          "from": "12:00",
-          "to": "23:59"
-        }],
-                                  applicable_shop_ids=["d080fcd8-6969-4243-8744-97470d89273e", "49326dd2-b6d5-453c-93d1-894caf0c4381", "c901f531-9656-47a3-a958-471f5ea43d9f", "92f08b3b-59a0-4375-b30f-2a3512d5ce78", "7b846cee-c737-4dcd-a2df-e78325b02bda"],
-                                  minimum_number_for_combination_purchase=150,
-                                  exist_in_each_product_groups=False,
-                                  max_point_amount=9794,
-                                  max_total_point_amount=3768,
-                                  dest_private_money_id="3a17ca94-5f5b-4747-b976-1110b8bfcfc3",
-                                  applicable_account_metadata={
-          "key": "sex",
-          "value": "male"
-        }
-        ))
-        self.assertNotEqual(response.status_code, 400)
-
-    def test_create_campaign_17(self):
-        response = client.send(pp.CreateCampaign(
-                                  "k8lWFzl04cFD8UrQW71JWWTZgcCuDt4bOl52Y9Vo2q3PiHBjRUpdSYSIHe7WRd8QgrTh5gg3jBLh2J3dK297uJriMdLcWHclyy16UsYQYNNbAndnytowLyNOYLTs",
-                                  "a3dd2a8c-a0c8-4a92-9f88-255c868fa801",
-                                  "2019-03-03T02:07:28.000000+09:00",
-                                  "2023-07-26T09:59:50.000000+09:00",
-                                  4686,
-                                  "payment",
-                                  description="5m86vU4CTunlo9FHcvhpXn1f9WUvYvDDo3G7amxcKXWGa0ExI5eaGTZJemJSk",
-                                  status="disabled",
-                                  point_expires_at="2018-10-28T09:16:24.000000+09:00",
-                                  point_expires_in_days=3549,
-                                  is_exclusive=True,
-                                  subject="money",
-                                  amount_based_point_rules=[{
           "point_amount": 5,
           "point_amount_unit": "percent",
-          "subject_more_than_or_equal": 1000,
-          "subject_less_than": 5000
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
         }, {
           "point_amount": 5,
           "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }],
+                                  amount_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
           "subject_more_than_or_equal": 1000,
           "subject_less_than": 5000
         }, {
@@ -4094,14 +4626,26 @@ def test_create_campaign_17(self):
           "subject_more_than_or_equal": 1000,
           "subject_less_than": 5000
         }],
-                                  product_based_point_rules=[{
-          "point_amount": 5,
-          "point_amount_unit": "percent",
-          "product_code": "4912345678904",
-          "is_multiply_by_count": True,
-          "required_count": 2
-        }],
-                                  applicable_days_of_week=[1, 4, 3, 1, 4, 3, 5, 5, 5],
+                                  subject="all",
+                                  is_exclusive=True,
+                                  point_expires_in_days=931,
+                                  point_expires_at="2026-05-25T18:01:21.000000Z",
+                                  status="disabled",
+                                  description="GcNPCEVPq46GdIPJm8acYbz4K3IA8JYUILwDYHWq9h3ayYxNgOJ9lz7",
+                                  bear_point_shop_id="2d6e7596-051e-4148-8fcd-b9f327209d37"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_campaign_13(self):
+        response = client.send(pp.CreateCampaign(
+                                  "8HWWbXOMsyMVL1Y0FzVGqOKFoU3xJNKmuaDr4cMSAgHDAlLlP6Lo5yS1v7L6lCM4yrq4lI3mHyvfAo1Zkwkd2ADoyNq2PW9ePZH1V16DlcE5",
+                                  "658a58db-7f87-426d-9b7b-c772052f6809",
+                                  "2020-03-25T02:53:40.000000Z",
+                                  "2021-03-29T01:32:57.000000Z",
+                                  6829,
+                                  "payment",
+                                  applicable_shop_ids=["1f2412ae-c938-4798-8da6-363c05d7c8f7", "6b1a8c22-8370-4ddd-8e1e-3bbf93ee4e9b", "24d524a7-e4db-4e8a-be0d-638159d477e6"],
+                                  minimum_number_of_products=480,
                                   applicable_time_ranges=[{
           "from": "12:00",
           "to": "23:59"
@@ -4114,73 +4658,126 @@ def test_create_campaign_17(self):
         }, {
           "from": "12:00",
           "to": "23:59"
+        }],
+                                  applicable_days_of_week=[2, 4, 6],
+                                  blacklisted_product_rules=[{
+          "product_code": "4912345678904",
+          "classification_code": "c123"
         }, {
-          "from": "12:00",
-          "to": "23:59"
+          "product_code": "4912345678904",
+          "classification_code": "c123"
         }, {
-          "from": "12:00",
-          "to": "23:59"
+          "product_code": "4912345678904",
+          "classification_code": "c123"
         }, {
-          "from": "12:00",
-          "to": "23:59"
+          "product_code": "4912345678904",
+          "classification_code": "c123"
         }, {
-          "from": "12:00",
-          "to": "23:59"
+          "product_code": "4912345678904",
+          "classification_code": "c123"
         }, {
-          "from": "12:00",
-          "to": "23:59"
+          "product_code": "4912345678904",
+          "classification_code": "c123"
         }, {
-          "from": "12:00",
-          "to": "23:59"
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
         }],
-                                  applicable_shop_ids=[],
-                                  minimum_number_for_combination_purchase=6703,
-                                  exist_in_each_product_groups=True,
-                                  max_point_amount=9351,
-                                  max_total_point_amount=4539,
-                                  dest_private_money_id="a90eb049-f336-4374-9275-ac65bd66cd29",
-                                  applicable_account_metadata={
-          "key": "sex",
-          "value": "male"
-        }
-        ))
-        self.assertNotEqual(response.status_code, 400)
-
-    def test_create_campaign_18(self):
-        response = client.send(pp.CreateCampaign(
-                                  "k8lWFzl04cFD8UrQW71JWWTZgcCuDt4bOl52Y9Vo2q3PiHBjRUpdSYSIHe7WRd8QgrTh5gg3jBLh2J3dK297uJriMdLcWHclyy16UsYQYNNbAndnytowLyNOYLTs",
-                                  "a3dd2a8c-a0c8-4a92-9f88-255c868fa801",
-                                  "2019-03-03T02:07:28.000000+09:00",
-                                  "2023-07-26T09:59:50.000000+09:00",
-                                  4686,
-                                  "payment",
-                                  bear_point_shop_id="f7105b4b-71fa-454b-a441-0314a61aeeae",
-                                  description="G45Yd1ntlQmTFdCRQoNs8we7kw42AF3DTjcROuetQ8zFdMo0VY4tUGROiwu8g5jegd2tDc5SvOZdXc2AVLuF8gaKQ0OEhkP9BLs49M6H6epGVtu0HPhsCKuI2bJUyIRN5hatVHvQNYn4X1Qj8JOhaftsXxsjd7rD3p3viKfIPkJsUNb1al7E8GagW",
-                                  status="disabled",
-                                  point_expires_at="2018-05-03T19:52:12.000000+09:00",
-                                  point_expires_in_days=5288,
-                                  is_exclusive=False,
-                                  subject="all",
-                                  amount_based_point_rules=[{
+                                  product_based_point_rules=[{
           "point_amount": 5,
           "point_amount_unit": "percent",
-          "subject_more_than_or_equal": 1000,
-          "subject_less_than": 5000
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
         }, {
           "point_amount": 5,
           "point_amount_unit": "percent",
-          "subject_more_than_or_equal": 1000,
-          "subject_less_than": 5000
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
         }, {
           "point_amount": 5,
           "point_amount_unit": "percent",
-          "subject_more_than_or_equal": 1000,
-          "subject_less_than": 5000
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
         }, {
           "point_amount": 5,
           "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }],
+                                  amount_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
           "subject_more_than_or_equal": 1000,
           "subject_less_than": 5000
+        }],
+                                  subject="all",
+                                  is_exclusive=True,
+                                  point_expires_in_days=5824,
+                                  point_expires_at="2025-02-19T04:04:13.000000Z",
+                                  status="enabled",
+                                  description="ZY1uTlDfXz0uDeov2GaxLjZM7ftEliKPQLWJArPq3tph1c8gKwadNnw5eCqfZdksVLOzbmWJa8YkV10V05hf8WtQGHpv3xPQzPNZMa3cTmTslTDHzq00PkzT3rjRscSaTDEUxwAJXNLOLDUjAEUO9KUSGzbSRmda66Hx",
+                                  bear_point_shop_id="ed69e695-42a6-4096-a3b4-f29102ffe477"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_campaign_14(self):
+        response = client.send(pp.CreateCampaign(
+                                  "8HWWbXOMsyMVL1Y0FzVGqOKFoU3xJNKmuaDr4cMSAgHDAlLlP6Lo5yS1v7L6lCM4yrq4lI3mHyvfAo1Zkwkd2ADoyNq2PW9ePZH1V16DlcE5",
+                                  "658a58db-7f87-426d-9b7b-c772052f6809",
+                                  "2020-03-25T02:53:40.000000Z",
+                                  "2021-03-29T01:32:57.000000Z",
+                                  6829,
+                                  "payment",
+                                  applicable_shop_ids=["6034222d-5866-4b30-9699-9ef36078ae63"],
+                                  minimum_number_of_amount=8240,
+                                  minimum_number_of_products=987,
+                                  applicable_time_ranges=[{
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }],
+                                  applicable_days_of_week=[6, 2, 1, 3, 3, 1, 3, 2, 5],
+                                  blacklisted_product_rules=[{
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
         }],
                                   product_based_point_rules=[{
           "point_amount": 5,
@@ -4243,7 +4840,44 @@ def test_create_campaign_18(self):
           "is_multiply_by_count": True,
           "required_count": 2
         }],
-                                  applicable_days_of_week=[],
+                                  amount_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }],
+                                  subject="all",
+                                  is_exclusive=False,
+                                  point_expires_in_days=5565,
+                                  point_expires_at="2020-06-23T08:56:53.000000Z",
+                                  status="disabled",
+                                  description="m9",
+                                  bear_point_shop_id="b69c392a-45dc-43d1-ba1c-6fd90fa0b25d"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_campaign_15(self):
+        response = client.send(pp.CreateCampaign(
+                                  "8HWWbXOMsyMVL1Y0FzVGqOKFoU3xJNKmuaDr4cMSAgHDAlLlP6Lo5yS1v7L6lCM4yrq4lI3mHyvfAo1Zkwkd2ADoyNq2PW9ePZH1V16DlcE5",
+                                  "658a58db-7f87-426d-9b7b-c772052f6809",
+                                  "2020-03-25T02:53:40.000000Z",
+                                  "2021-03-29T01:32:57.000000Z",
+                                  6829,
+                                  "payment",
+                                  applicable_shop_ids=["3cc05416-2fa9-4391-9f1c-df396940ade5", "fe27234f-fcba-4c22-92a1-ef26ab219330", "b48923d2-d850-451f-9c58-49beeee17f90", "b78d3ab1-979b-4fd2-85c7-65c4bb402bcc", "c65d460a-bb87-4c98-9322-8d5d8b7e3cea", "31bce0e5-f6af-412b-90f8-2f992c299428", "cfae1289-e7e5-4cb4-9590-14dc943c6e17", "be1e9407-1c8a-4832-8e17-b80428be8e36", "c8a06c68-1932-41ca-98d0-93db27d1ca8c"],
+                                  minimum_number_for_combination_purchase=7828,
+                                  minimum_number_of_amount=6337,
+                                  minimum_number_of_products=9181,
                                   applicable_time_ranges=[{
           "from": "12:00",
           "to": "23:59"
@@ -4257,139 +4891,139 @@ def test_create_campaign_18(self):
           "from": "12:00",
           "to": "23:59"
         }],
-                                  applicable_shop_ids=["f5822a34-75cf-4bc2-a5c2-bd97ef8c32e4", "0143d27f-e96d-4e13-90fe-3ec16f86ba4b", "90a5fee9-0577-47af-8b2a-0e98a1080f0d", "8758ea6b-dd19-4294-97d6-1a4dacdc2ae5", "d3dd4ec7-d38a-4ff7-af94-0b5e7335c463", "a6e05010-250f-4bdc-aeb0-e49970bdb5f4", "1a82271f-e565-4d6c-80d6-b698b9698e7d", "7b829275-f20b-4932-b495-742f3c16038a"],
-                                  minimum_number_for_combination_purchase=5967,
-                                  exist_in_each_product_groups=False,
-                                  max_point_amount=6027,
-                                  max_total_point_amount=9202,
-                                  dest_private_money_id="29877b46-9825-42b3-8f5e-00e958920599",
-                                  applicable_account_metadata={
-          "key": "sex",
-          "value": "male"
-        }
-        ))
-        self.assertNotEqual(response.status_code, 400)
-
-    def test_list_campaigns_0(self):
-        response = client.send(pp.ListCampaigns(
-                                  "86b887e9-ffcf-4a75-aaa1-c9d2cdf8b927"
-        ))
-        self.assertNotEqual(response.status_code, 400)
-
-    def test_list_campaigns_1(self):
-        response = client.send(pp.ListCampaigns(
-                                  "86b887e9-ffcf-4a75-aaa1-c9d2cdf8b927",
-                                  per_page=2193
-        ))
-        self.assertNotEqual(response.status_code, 400)
-
-    def test_list_campaigns_2(self):
-        response = client.send(pp.ListCampaigns(
-                                  "86b887e9-ffcf-4a75-aaa1-c9d2cdf8b927",
-                                  page=6395,
-                                  per_page=5370
-        ))
-        self.assertNotEqual(response.status_code, 400)
-
-    def test_list_campaigns_3(self):
-        response = client.send(pp.ListCampaigns(
-                                  "86b887e9-ffcf-4a75-aaa1-c9d2cdf8b927",
-                                  is_ongoing=True,
-                                  page=7970,
-                                  per_page=4015
-        ))
-        self.assertNotEqual(response.status_code, 400)
-
-    def test_get_campaign_0(self):
-        response = client.send(pp.GetCampaign(
-                                  "c7da7402-0838-4b4d-be12-ed63035b186a"
-        ))
-        self.assertNotEqual(response.status_code, 400)
-
-    def test_update_campaign_0(self):
-        response = client.send(pp.UpdateCampaign(
-                                  "80db920c-14b6-4bd6-a117-8ca291a457ff"
-        ))
-        self.assertNotEqual(response.status_code, 400)
-
-    def test_update_campaign_1(self):
-        response = client.send(pp.UpdateCampaign(
-                                  "80db920c-14b6-4bd6-a117-8ca291a457ff",
-                                  applicable_account_metadata={
-          "key": "sex",
-          "value": "male"
-        }
-        ))
-        self.assertNotEqual(response.status_code, 400)
-
-    def test_update_campaign_2(self):
-        response = client.send(pp.UpdateCampaign(
-                                  "80db920c-14b6-4bd6-a117-8ca291a457ff",
-                                  max_total_point_amount=6985,
-                                  applicable_account_metadata={
-          "key": "sex",
-          "value": "male"
-        }
-        ))
-        self.assertNotEqual(response.status_code, 400)
-
-    def test_update_campaign_3(self):
-        response = client.send(pp.UpdateCampaign(
-                                  "80db920c-14b6-4bd6-a117-8ca291a457ff",
-                                  max_point_amount=483,
-                                  max_total_point_amount=5324,
-                                  applicable_account_metadata={
-          "key": "sex",
-          "value": "male"
-        }
-        ))
-        self.assertNotEqual(response.status_code, 400)
-
-    def test_update_campaign_4(self):
-        response = client.send(pp.UpdateCampaign(
-                                  "80db920c-14b6-4bd6-a117-8ca291a457ff",
-                                  exist_in_each_product_groups=True,
-                                  max_point_amount=3283,
-                                  max_total_point_amount=203,
-                                  applicable_account_metadata={
-          "key": "sex",
-          "value": "male"
-        }
-        ))
-        self.assertNotEqual(response.status_code, 400)
-
-    def test_update_campaign_5(self):
-        response = client.send(pp.UpdateCampaign(
-                                  "80db920c-14b6-4bd6-a117-8ca291a457ff",
-                                  minimum_number_for_combination_purchase=8693,
-                                  exist_in_each_product_groups=True,
-                                  max_point_amount=6573,
-                                  max_total_point_amount=6922,
-                                  applicable_account_metadata={
-          "key": "sex",
-          "value": "male"
-        }
+                                  applicable_days_of_week=[3, 3, 0, 1, 5, 6, 1, 2],
+                                  blacklisted_product_rules=[{
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }],
+                                  product_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }],
+                                  amount_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }],
+                                  subject="all",
+                                  is_exclusive=True,
+                                  point_expires_in_days=9464,
+                                  point_expires_at="2024-08-09T16:14:39.000000Z",
+                                  status="enabled",
+                                  description="WD3OcRqlTHYwOestfQF",
+                                  bear_point_shop_id="50bf5615-4f0a-4f75-a660-236d349829c7"
         ))
         self.assertNotEqual(response.status_code, 400)
 
-    def test_update_campaign_6(self):
-        response = client.send(pp.UpdateCampaign(
-                                  "80db920c-14b6-4bd6-a117-8ca291a457ff",
-                                  applicable_shop_ids=[],
-                                  minimum_number_for_combination_purchase=5529,
+    def test_create_campaign_16(self):
+        response = client.send(pp.CreateCampaign(
+                                  "8HWWbXOMsyMVL1Y0FzVGqOKFoU3xJNKmuaDr4cMSAgHDAlLlP6Lo5yS1v7L6lCM4yrq4lI3mHyvfAo1Zkwkd2ADoyNq2PW9ePZH1V16DlcE5",
+                                  "658a58db-7f87-426d-9b7b-c772052f6809",
+                                  "2020-03-25T02:53:40.000000Z",
+                                  "2021-03-29T01:32:57.000000Z",
+                                  6829,
+                                  "payment",
+                                  applicable_shop_ids=["f289ed56-81af-48e6-ada5-1b1753a96c08", "99567d97-a455-4df3-b723-ec3426481e90"],
                                   exist_in_each_product_groups=False,
-                                  max_point_amount=2652,
-                                  max_total_point_amount=4799,
-                                  applicable_account_metadata={
-          "key": "sex",
-          "value": "male"
-        }
-        ))
-        self.assertNotEqual(response.status_code, 400)
-
-    def test_update_campaign_7(self):
-        response = client.send(pp.UpdateCampaign(
-                                  "80db920c-14b6-4bd6-a117-8ca291a457ff",
+                                  minimum_number_for_combination_purchase=4878,
+                                  minimum_number_of_amount=8582,
+                                  minimum_number_of_products=487,
                                   applicable_time_ranges=[{
           "from": "12:00",
           "to": "23:59"
@@ -4421,53 +5055,26 @@ def test_update_campaign_7(self):
           "from": "12:00",
           "to": "23:59"
         }],
-                                  applicable_shop_ids=["1c80cfcb-f8b7-4405-bdb6-50d6d4d3d48f", "3a88a31f-c87f-4cfe-b54d-7784abeac0cd", "419673af-3cd3-4c04-9d1c-97e85356e2aa", "189a11af-5032-4bc8-a1b6-13ebafbd1bb6", "ec808e82-f0b5-4789-94eb-cf67bf22437b", "9fe8d2d1-f093-451c-892c-4341a3150ac8"],
-                                  minimum_number_for_combination_purchase=5080,
-                                  exist_in_each_product_groups=True,
-                                  max_point_amount=7117,
-                                  max_total_point_amount=6957,
-                                  applicable_account_metadata={
-          "key": "sex",
-          "value": "male"
-        }
-        ))
-        self.assertNotEqual(response.status_code, 400)
-
-    def test_update_campaign_8(self):
-        response = client.send(pp.UpdateCampaign(
-                                  "80db920c-14b6-4bd6-a117-8ca291a457ff",
-                                  applicable_days_of_week=[6, 6, 3, 5, 4, 4, 1, 6],
-                                  applicable_time_ranges=[{
-          "from": "12:00",
-          "to": "23:59"
+                                  applicable_days_of_week=[2, 0, 1, 4, 5, 3, 3, 0, 0],
+                                  blacklisted_product_rules=[{
+          "product_code": "4912345678904",
+          "classification_code": "c123"
         }, {
-          "from": "12:00",
-          "to": "23:59"
+          "product_code": "4912345678904",
+          "classification_code": "c123"
         }, {
-          "from": "12:00",
-          "to": "23:59"
+          "product_code": "4912345678904",
+          "classification_code": "c123"
         }, {
-          "from": "12:00",
-          "to": "23:59"
+          "product_code": "4912345678904",
+          "classification_code": "c123"
         }, {
-          "from": "12:00",
-          "to": "23:59"
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
         }],
-                                  applicable_shop_ids=["adc67640-ed95-4bc5-8c92-a9d6a1de17c6", "7b596a2a-1549-4dec-87a2-0dbc7db3109f", "2b78ff8a-e53b-4d69-8c5d-a41fdf3cbd08", "1fa80e1e-d3c7-472c-95eb-fafadb55251a", "50f25c44-9177-41f2-93f4-8a80a12c1944"],
-                                  minimum_number_for_combination_purchase=8825,
-                                  exist_in_each_product_groups=True,
-                                  max_point_amount=9265,
-                                  max_total_point_amount=5977,
-                                  applicable_account_metadata={
-          "key": "sex",
-          "value": "male"
-        }
-        ))
-        self.assertNotEqual(response.status_code, 400)
-
-    def test_update_campaign_9(self):
-        response = client.send(pp.UpdateCampaign(
-                                  "80db920c-14b6-4bd6-a117-8ca291a457ff",
                                   product_based_point_rules=[{
           "point_amount": 5,
           "point_amount_unit": "percent",
@@ -4480,33 +5087,25 @@ def test_update_campaign_9(self):
           "product_code": "4912345678904",
           "is_multiply_by_count": True,
           "required_count": 2
-        }],
-                                  applicable_days_of_week=[0, 4, 3],
-                                  applicable_time_ranges=[{
-          "from": "12:00",
-          "to": "23:59"
         }, {
-          "from": "12:00",
-          "to": "23:59"
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
         }, {
-          "from": "12:00",
-          "to": "23:59"
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
         }],
-                                  applicable_shop_ids=["070feac5-6ce5-4c46-8d94-2b9b5c31cdb0", "dc748dc7-7236-4cfb-ac63-cb9b1662393a", "f4a1e78a-dea1-4537-8ec1-3dc0aed6627c", "10c0732c-6eca-486c-a680-e165a4293178", "94eb190b-2b3a-4146-a13b-3d8008861f6f"],
-                                  minimum_number_for_combination_purchase=4472,
-                                  exist_in_each_product_groups=False,
-                                  max_point_amount=665,
-                                  max_total_point_amount=2582,
-                                  applicable_account_metadata={
-          "key": "sex",
-          "value": "male"
-        }
-        ))
-        self.assertNotEqual(response.status_code, 400)
-
-    def test_update_campaign_10(self):
-        response = client.send(pp.UpdateCampaign(
-                                  "80db920c-14b6-4bd6-a117-8ca291a457ff",
                                   amount_based_point_rules=[{
           "point_amount": 5,
           "point_amount_unit": "percent",
@@ -4553,19 +5152,73 @@ def test_update_campaign_10(self):
           "subject_more_than_or_equal": 1000,
           "subject_less_than": 5000
         }],
-                                  product_based_point_rules=[{
-          "point_amount": 5,
-          "point_amount_unit": "percent",
+                                  subject="money",
+                                  is_exclusive=True,
+                                  point_expires_in_days=8584,
+                                  point_expires_at="2020-05-05T04:56:31.000000Z",
+                                  status="disabled",
+                                  description="La44NJMCeJ8jlsCf1ZGfe6gS6x1DqMOxCGU3f6AMPJnByO8IAY8ZIAKOHAMaB7ZxbhLpAG3vIRMVqbJVgHdPhvPKwzwzrbVYcpu84LT",
+                                  bear_point_shop_id="272282dc-83cb-4251-8ff8-ab8f1b57e5c4"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_campaign_17(self):
+        response = client.send(pp.CreateCampaign(
+                                  "8HWWbXOMsyMVL1Y0FzVGqOKFoU3xJNKmuaDr4cMSAgHDAlLlP6Lo5yS1v7L6lCM4yrq4lI3mHyvfAo1Zkwkd2ADoyNq2PW9ePZH1V16DlcE5",
+                                  "658a58db-7f87-426d-9b7b-c772052f6809",
+                                  "2020-03-25T02:53:40.000000Z",
+                                  "2021-03-29T01:32:57.000000Z",
+                                  6829,
+                                  "payment",
+                                  applicable_shop_ids=["7e691bd4-b07a-437d-8d1c-e56e8ca67c4d"],
+                                  max_point_amount=3512,
+                                  exist_in_each_product_groups=True,
+                                  minimum_number_for_combination_purchase=6474,
+                                  minimum_number_of_amount=1684,
+                                  minimum_number_of_products=1292,
+                                  applicable_time_ranges=[{
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }],
+                                  applicable_days_of_week=[6],
+                                  blacklisted_product_rules=[{
           "product_code": "4912345678904",
-          "is_multiply_by_count": True,
-          "required_count": 2
+          "classification_code": "c123"
         }, {
-          "point_amount": 5,
-          "point_amount_unit": "percent",
           "product_code": "4912345678904",
-          "is_multiply_by_count": True,
-          "required_count": 2
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
         }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }],
+                                  product_based_point_rules=[{
           "point_amount": 5,
           "point_amount_unit": "percent",
           "product_code": "4912345678904",
@@ -4595,90 +5248,86 @@ def test_update_campaign_10(self):
           "product_code": "4912345678904",
           "is_multiply_by_count": True,
           "required_count": 2
-        }, {
-          "point_amount": 5,
-          "point_amount_unit": "percent",
-          "product_code": "4912345678904",
-          "is_multiply_by_count": True,
-          "required_count": 2
-        }, {
+        }],
+                                  amount_based_point_rules=[{
           "point_amount": 5,
           "point_amount_unit": "percent",
-          "product_code": "4912345678904",
-          "is_multiply_by_count": True,
-          "required_count": 2
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
         }, {
           "point_amount": 5,
           "point_amount_unit": "percent",
-          "product_code": "4912345678904",
-          "is_multiply_by_count": True,
-          "required_count": 2
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
         }],
-                                  applicable_days_of_week=[4, 2, 1, 4, 0, 1, 3, 5, 2],
+                                  subject="money",
+                                  is_exclusive=True,
+                                  point_expires_in_days=6353,
+                                  point_expires_at="2022-07-23T10:13:58.000000Z",
+                                  status="disabled",
+                                  description="jSBmWzFbVfaL5LT2cPjctfArtA5QzauCKeqrCHLOb6c1NzcpMx2l8O1vhN74ziDPGC2ST6zTd6xVdSlQkj4Z4gR5YjMfLJAECo",
+                                  bear_point_shop_id="b101efb2-2867-4e07-8ec4-bb000eebd8dd"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_campaign_18(self):
+        response = client.send(pp.CreateCampaign(
+                                  "8HWWbXOMsyMVL1Y0FzVGqOKFoU3xJNKmuaDr4cMSAgHDAlLlP6Lo5yS1v7L6lCM4yrq4lI3mHyvfAo1Zkwkd2ADoyNq2PW9ePZH1V16DlcE5",
+                                  "658a58db-7f87-426d-9b7b-c772052f6809",
+                                  "2020-03-25T02:53:40.000000Z",
+                                  "2021-03-29T01:32:57.000000Z",
+                                  6829,
+                                  "payment",
+                                  applicable_shop_ids=["921e7e43-df72-4315-9686-49af8a0b34b3", "a405f53e-8150-4878-926f-272b20c44bfa", "0b6f2e60-4a76-4aec-9d9c-6bf02dbdb904", "924ad2ee-8d67-4683-9770-ddc17c4817b6", "dc513694-9421-47f8-a25a-8ccd6655641d"],
+                                  max_total_point_amount=615,
+                                  max_point_amount=5348,
+                                  exist_in_each_product_groups=True,
+                                  minimum_number_for_combination_purchase=6774,
+                                  minimum_number_of_amount=4574,
+                                  minimum_number_of_products=888,
                                   applicable_time_ranges=[{
           "from": "12:00",
           "to": "23:59"
+        }],
+                                  applicable_days_of_week=[1],
+                                  blacklisted_product_rules=[{
+          "product_code": "4912345678904",
+          "classification_code": "c123"
         }, {
-          "from": "12:00",
-          "to": "23:59"
-        }, {
-          "from": "12:00",
-          "to": "23:59"
-        }, {
-          "from": "12:00",
-          "to": "23:59"
-        }, {
-          "from": "12:00",
-          "to": "23:59"
-        }, {
-          "from": "12:00",
-          "to": "23:59"
+          "product_code": "4912345678904",
+          "classification_code": "c123"
         }, {
-          "from": "12:00",
-          "to": "23:59"
+          "product_code": "4912345678904",
+          "classification_code": "c123"
         }, {
-          "from": "12:00",
-          "to": "23:59"
+          "product_code": "4912345678904",
+          "classification_code": "c123"
         }, {
-          "from": "12:00",
-          "to": "23:59"
+          "product_code": "4912345678904",
+          "classification_code": "c123"
         }, {
-          "from": "12:00",
-          "to": "23:59"
+          "product_code": "4912345678904",
+          "classification_code": "c123"
         }],
-                                  applicable_shop_ids=["b89b426d-a28f-430d-ad62-abc51bf41957", "147a04f9-7b3e-4946-aa48-710e9e403ba2", "981a9933-26bf-40a9-a3ba-cd9a9341727f", "db10d525-2566-46b4-b824-b947dcc46f95", "ee15b4e5-a94e-4056-b957-2e310e1e8064", "7d83b6c9-1dda-4cba-ad17-910e67ef3f98"],
-                                  minimum_number_for_combination_purchase=9780,
-                                  exist_in_each_product_groups=False,
-                                  max_point_amount=1700,
-                                  max_total_point_amount=5708,
-                                  applicable_account_metadata={
-          "key": "sex",
-          "value": "male"
-        }
-        ))
-        self.assertNotEqual(response.status_code, 400)
-
-    def test_update_campaign_11(self):
-        response = client.send(pp.UpdateCampaign(
-                                  "80db920c-14b6-4bd6-a117-8ca291a457ff",
-                                  subject="money",
-                                  amount_based_point_rules=[{
+                                  product_based_point_rules=[{
           "point_amount": 5,
           "point_amount_unit": "percent",
-          "subject_more_than_or_equal": 1000,
-          "subject_less_than": 5000
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
         }, {
           "point_amount": 5,
           "point_amount_unit": "percent",
-          "subject_more_than_or_equal": 1000,
-          "subject_less_than": 5000
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
         }, {
           "point_amount": 5,
           "point_amount_unit": "percent",
-          "subject_more_than_or_equal": 1000,
-          "subject_less_than": 5000
-        }],
-                                  product_based_point_rules=[{
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
           "point_amount": 5,
           "point_amount_unit": "percent",
           "product_code": "4912345678904",
@@ -4690,47 +5339,13 @@ def test_update_campaign_11(self):
           "product_code": "4912345678904",
           "is_multiply_by_count": True,
           "required_count": 2
-        }],
-                                  applicable_days_of_week=[3, 1, 6, 1, 2, 3, 1, 6, 2, 0],
-                                  applicable_time_ranges=[{
-          "from": "12:00",
-          "to": "23:59"
-        }, {
-          "from": "12:00",
-          "to": "23:59"
-        }, {
-          "from": "12:00",
-          "to": "23:59"
-        }, {
-          "from": "12:00",
-          "to": "23:59"
-        }, {
-          "from": "12:00",
-          "to": "23:59"
-        }, {
-          "from": "12:00",
-          "to": "23:59"
         }, {
-          "from": "12:00",
-          "to": "23:59"
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
         }],
-                                  applicable_shop_ids=["8ab58f24-d998-4507-9d5e-f4b0ce7af464", "6904ba0f-5a38-4006-9892-66e836bbfa44", "c6d65117-8e03-42c3-a943-7fa9fd7fea47", "5dc961e2-8916-4096-bf7f-13c50c87d00e", "feed0fc1-5698-4711-adfe-da8d2b2bf05b", "11a63b38-f044-428c-84ed-18fb4fd3becd", "9b300da5-fdf6-42b6-8a05-bd9e37c32f05", "880c894f-1855-420a-9304-18c087d892b8", "485e3e78-24d0-4f5b-9223-0de08837f06e", "c1272035-1e4a-4ce0-93df-09483cd67bd6"],
-                                  minimum_number_for_combination_purchase=8967,
-                                  exist_in_each_product_groups=True,
-                                  max_point_amount=7529,
-                                  max_total_point_amount=7225,
-                                  applicable_account_metadata={
-          "key": "sex",
-          "value": "male"
-        }
-        ))
-        self.assertNotEqual(response.status_code, 400)
-
-    def test_update_campaign_12(self):
-        response = client.send(pp.UpdateCampaign(
-                                  "80db920c-14b6-4bd6-a117-8ca291a457ff",
-                                  is_exclusive=False,
-                                  subject="all",
                                   amount_based_point_rules=[{
           "point_amount": 5,
           "point_amount_unit": "percent",
@@ -4752,139 +5367,114 @@ def test_update_campaign_12(self):
           "subject_more_than_or_equal": 1000,
           "subject_less_than": 5000
         }],
-                                  product_based_point_rules=[],
-                                  applicable_days_of_week=[4, 2, 6],
+                                  subject="all",
+                                  is_exclusive=False,
+                                  point_expires_in_days=4454,
+                                  point_expires_at="2020-10-21T14:23:33.000000Z",
+                                  status="disabled",
+                                  description="MwqqZDhOobPpK6TParuulg11gUrgWq51AuUounyHv57rDbvmuL7BqYd2",
+                                  bear_point_shop_id="440b6638-d8d9-4c99-ac04-ba71d3205ead"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_campaign_19(self):
+        response = client.send(pp.CreateCampaign(
+                                  "8HWWbXOMsyMVL1Y0FzVGqOKFoU3xJNKmuaDr4cMSAgHDAlLlP6Lo5yS1v7L6lCM4yrq4lI3mHyvfAo1Zkwkd2ADoyNq2PW9ePZH1V16DlcE5",
+                                  "658a58db-7f87-426d-9b7b-c772052f6809",
+                                  "2020-03-25T02:53:40.000000Z",
+                                  "2021-03-29T01:32:57.000000Z",
+                                  6829,
+                                  "payment",
+                                  applicable_shop_ids=["ff508534-0224-48d0-9452-a25b1870206c", "7411d4ec-ae78-46b6-aab0-091a7b070497", "69b2f2ac-3d33-49e2-84d5-2282be87b9b9", "66b22a8f-5675-4a85-9e9d-24a1c181937f", "87879ff4-5df8-4bde-ace7-4c1ef6e29320", "8549951e-a50a-4245-bab1-6909b8ef7540"],
+                                  dest_private_money_id="03accb3d-7e2a-4a4c-9d5e-a6923269ff8d",
+                                  max_total_point_amount=4508,
+                                  max_point_amount=6732,
+                                  exist_in_each_product_groups=False,
+                                  minimum_number_for_combination_purchase=402,
+                                  minimum_number_of_amount=799,
+                                  minimum_number_of_products=7876,
                                   applicable_time_ranges=[{
           "from": "12:00",
           "to": "23:59"
         }, {
           "from": "12:00",
           "to": "23:59"
+        }],
+                                  applicable_days_of_week=[2, 6, 1, 1, 4, 2, 4, 1],
+                                  blacklisted_product_rules=[{
+          "product_code": "4912345678904",
+          "classification_code": "c123"
         }, {
-          "from": "12:00",
-          "to": "23:59"
-        }, {
-          "from": "12:00",
-          "to": "23:59"
+          "product_code": "4912345678904",
+          "classification_code": "c123"
         }, {
-          "from": "12:00",
-          "to": "23:59"
+          "product_code": "4912345678904",
+          "classification_code": "c123"
         }, {
-          "from": "12:00",
-          "to": "23:59"
+          "product_code": "4912345678904",
+          "classification_code": "c123"
         }, {
-          "from": "12:00",
-          "to": "23:59"
+          "product_code": "4912345678904",
+          "classification_code": "c123"
         }, {
-          "from": "12:00",
-          "to": "23:59"
+          "product_code": "4912345678904",
+          "classification_code": "c123"
         }, {
-          "from": "12:00",
-          "to": "23:59"
-        }],
-                                  applicable_shop_ids=["a831071f-df3c-4f2b-b4df-b0b3151f8647", "c76ba9a8-1d34-4e0f-9839-5718996d4a68", "282a2390-f87b-4c28-a975-16c73e7e82fa", "ad268cfd-0339-49cd-94e6-1a5cc2301792", "ded62e9e-e3b8-402e-a2f2-0e287a87e529", "5d109cf4-8fc8-4768-9d95-2b81059f088a", "ee7c7f5d-bda4-48f1-9db6-2e197c2b622c", "7a60f5de-bd99-4d3b-b68c-b7544ae18121"],
-                                  minimum_number_for_combination_purchase=4924,
-                                  exist_in_each_product_groups=True,
-                                  max_point_amount=2627,
-                                  max_total_point_amount=6475,
-                                  applicable_account_metadata={
-          "key": "sex",
-          "value": "male"
-        }
-        ))
-        self.assertNotEqual(response.status_code, 400)
-
-    def test_update_campaign_13(self):
-        response = client.send(pp.UpdateCampaign(
-                                  "80db920c-14b6-4bd6-a117-8ca291a457ff",
-                                  point_expires_in_days=6368,
-                                  is_exclusive=True,
-                                  subject="money",
-                                  amount_based_point_rules=[{
-          "point_amount": 5,
-          "point_amount_unit": "percent",
-          "subject_more_than_or_equal": 1000,
-          "subject_less_than": 5000
+          "product_code": "4912345678904",
+          "classification_code": "c123"
         }, {
-          "point_amount": 5,
-          "point_amount_unit": "percent",
-          "subject_more_than_or_equal": 1000,
-          "subject_less_than": 5000
+          "product_code": "4912345678904",
+          "classification_code": "c123"
         }, {
-          "point_amount": 5,
-          "point_amount_unit": "percent",
-          "subject_more_than_or_equal": 1000,
-          "subject_less_than": 5000
+          "product_code": "4912345678904",
+          "classification_code": "c123"
         }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }],
+                                  product_based_point_rules=[{
           "point_amount": 5,
           "point_amount_unit": "percent",
-          "subject_more_than_or_equal": 1000,
-          "subject_less_than": 5000
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
         }, {
           "point_amount": 5,
           "point_amount_unit": "percent",
-          "subject_more_than_or_equal": 1000,
-          "subject_less_than": 5000
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
         }, {
           "point_amount": 5,
           "point_amount_unit": "percent",
-          "subject_more_than_or_equal": 1000,
-          "subject_less_than": 5000
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
         }, {
           "point_amount": 5,
           "point_amount_unit": "percent",
-          "subject_more_than_or_equal": 1000,
-          "subject_less_than": 5000
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
         }, {
           "point_amount": 5,
           "point_amount_unit": "percent",
-          "subject_more_than_or_equal": 1000,
-          "subject_less_than": 5000
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
         }, {
           "point_amount": 5,
           "point_amount_unit": "percent",
-          "subject_more_than_or_equal": 1000,
-          "subject_less_than": 5000
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
         }, {
           "point_amount": 5,
           "point_amount_unit": "percent",
-          "subject_more_than_or_equal": 1000,
-          "subject_less_than": 5000
-        }],
-                                  product_based_point_rules=[{
-          "point_amount": 5,
-          "point_amount_unit": "percent",
           "product_code": "4912345678904",
           "is_multiply_by_count": True,
           "required_count": 2
         }],
-                                  applicable_days_of_week=[2, 3, 1, 0, 6],
-                                  applicable_time_ranges=[{
-          "from": "12:00",
-          "to": "23:59"
-        }, {
-          "from": "12:00",
-          "to": "23:59"
-        }],
-                                  applicable_shop_ids=["ba85e3dc-a2f8-4fb2-8f20-27bbe9d8381d", "4bfedff2-8599-49ac-a3d6-66af40877bcd", "6ac00018-4574-4828-8d51-2f700aa67acc", "6b50d850-fd85-4f07-83e5-5a2ee60eded0", "b9731fa4-16b9-4064-bacc-4ef8f2002096", "b3952eb5-d0f4-45ad-bcad-9332e57f556c", "776a97dc-03e7-4fd7-8e3d-042e66fe28a8", "1189a76f-23ca-4ed1-996f-7bcf4c73b215", "58223f53-902d-476d-85c1-7f6353efd375", "7489cb9d-67cc-48c0-a996-bbaf46e92b56"],
-                                  minimum_number_for_combination_purchase=4129,
-                                  exist_in_each_product_groups=False,
-                                  max_point_amount=6898,
-                                  max_total_point_amount=5909,
-                                  applicable_account_metadata={
-          "key": "sex",
-          "value": "male"
-        }
-        ))
-        self.assertNotEqual(response.status_code, 400)
-
-    def test_update_campaign_14(self):
-        response = client.send(pp.UpdateCampaign(
-                                  "80db920c-14b6-4bd6-a117-8ca291a457ff",
-                                  point_expires_at="2023-05-22T05:15:36.000000+09:00",
-                                  point_expires_in_days=3881,
-                                  is_exclusive=False,
-                                  subject="all",
                                   amount_based_point_rules=[{
           "point_amount": 5,
           "point_amount_unit": "percent",
@@ -4921,26 +5511,36 @@ def test_update_campaign_14(self):
           "subject_more_than_or_equal": 1000,
           "subject_less_than": 5000
         }],
-                                  product_based_point_rules=[{
-          "point_amount": 5,
-          "point_amount_unit": "percent",
-          "product_code": "4912345678904",
-          "is_multiply_by_count": True,
-          "required_count": 2
-        }, {
-          "point_amount": 5,
-          "point_amount_unit": "percent",
-          "product_code": "4912345678904",
-          "is_multiply_by_count": True,
-          "required_count": 2
-        }, {
-          "point_amount": 5,
-          "point_amount_unit": "percent",
-          "product_code": "4912345678904",
-          "is_multiply_by_count": True,
-          "required_count": 2
-        }],
-                                  applicable_days_of_week=[4, 5, 5, 4, 6, 2],
+                                  subject="all",
+                                  is_exclusive=True,
+                                  point_expires_in_days=657,
+                                  point_expires_at="2020-06-03T00:38:14.000000Z",
+                                  status="disabled",
+                                  description="TUWFWHy2b5Vs5gPuvHuA5HWIqhNUoMi9wNIaJyI2pADs2B4yB1GZTk4B1PKHR2EWhPZSvV8nScTvJ4VHpUajLmD9cCimPwC97LHWaSOnICBJimGKiopraV9Fu47WiDgn9VJjED17kjNr295nMRl2EDxJjIsLyTAA5MEWhdNFDbX7fss0ltmaJnx",
+                                  bear_point_shop_id="08bb7fad-d18a-4a1c-aebc-157371db6584"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_campaign_20(self):
+        response = client.send(pp.CreateCampaign(
+                                  "8HWWbXOMsyMVL1Y0FzVGqOKFoU3xJNKmuaDr4cMSAgHDAlLlP6Lo5yS1v7L6lCM4yrq4lI3mHyvfAo1Zkwkd2ADoyNq2PW9ePZH1V16DlcE5",
+                                  "658a58db-7f87-426d-9b7b-c772052f6809",
+                                  "2020-03-25T02:53:40.000000Z",
+                                  "2021-03-29T01:32:57.000000Z",
+                                  6829,
+                                  "payment",
+                                  applicable_shop_ids=["89f5a3d5-94cc-4537-9fd2-cef20bd60cf8", "2acd9ff1-0ae2-46c2-817f-b1228402cd9a"],
+                                  applicable_account_metadata={
+          "key": "sex",
+          "value": "male"
+        },
+                                  dest_private_money_id="02680d01-d016-4378-8559-dcb544b93517",
+                                  max_total_point_amount=8507,
+                                  max_point_amount=5316,
+                                  exist_in_each_product_groups=False,
+                                  minimum_number_for_combination_purchase=9571,
+                                  minimum_number_of_amount=3193,
+                                  minimum_number_of_products=9699,
                                   applicable_time_ranges=[{
           "from": "12:00",
           "to": "23:59"
@@ -4954,54 +5554,75 @@ def test_update_campaign_14(self):
           "from": "12:00",
           "to": "23:59"
         }],
-                                  applicable_shop_ids=["88681cdf-6e09-4707-8132-0c17b66b406f", "565b6044-d0b1-4eeb-a25c-3a32007ed679"],
-                                  minimum_number_for_combination_purchase=1053,
-                                  exist_in_each_product_groups=False,
-                                  max_point_amount=1466,
-                                  max_total_point_amount=7987,
-                                  applicable_account_metadata={
-          "key": "sex",
-          "value": "male"
-        }
-        ))
-        self.assertNotEqual(response.status_code, 400)
-
-    def test_update_campaign_15(self):
-        response = client.send(pp.UpdateCampaign(
-                                  "80db920c-14b6-4bd6-a117-8ca291a457ff",
-                                  status="disabled",
-                                  point_expires_at="2023-06-17T16:10:08.000000+09:00",
-                                  point_expires_in_days=5145,
-                                  is_exclusive=True,
-                                  subject="money",
-                                  amount_based_point_rules=[{
+                                  applicable_days_of_week=[6, 2, 5, 4, 1, 6],
+                                  blacklisted_product_rules=[{
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }],
+                                  product_based_point_rules=[{
           "point_amount": 5,
           "point_amount_unit": "percent",
-          "subject_more_than_or_equal": 1000,
-          "subject_less_than": 5000
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
         }, {
           "point_amount": 5,
           "point_amount_unit": "percent",
-          "subject_more_than_or_equal": 1000,
-          "subject_less_than": 5000
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
         }, {
           "point_amount": 5,
           "point_amount_unit": "percent",
-          "subject_more_than_or_equal": 1000,
-          "subject_less_than": 5000
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
         }, {
           "point_amount": 5,
           "point_amount_unit": "percent",
-          "subject_more_than_or_equal": 1000,
-          "subject_less_than": 5000
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
         }, {
           "point_amount": 5,
           "point_amount_unit": "percent",
-          "subject_more_than_or_equal": 1000,
-          "subject_less_than": 5000
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
         }, {
           "point_amount": 5,
           "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }],
+                                  amount_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
           "subject_more_than_or_equal": 1000,
           "subject_less_than": 5000
         }, {
@@ -5025,43 +5646,83 @@ def test_update_campaign_15(self):
           "subject_more_than_or_equal": 1000,
           "subject_less_than": 5000
         }],
-                                  product_based_point_rules=[{
-          "point_amount": 5,
-          "point_amount_unit": "percent",
-          "product_code": "4912345678904",
-          "is_multiply_by_count": True,
-          "required_count": 2
+                                  subject="all",
+                                  is_exclusive=True,
+                                  point_expires_in_days=6173,
+                                  point_expires_at="2021-09-26T21:28:04.000000Z",
+                                  status="enabled",
+                                  description="wUBkrqrvJ3GVs6GsJ8XiLApVwNY6zjKIEdqTZCuDots6o",
+                                  bear_point_shop_id="0653e022-a97e-4b1a-8ff0-4e552948b319"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_campaign_21(self):
+        response = client.send(pp.CreateCampaign(
+                                  "8HWWbXOMsyMVL1Y0FzVGqOKFoU3xJNKmuaDr4cMSAgHDAlLlP6Lo5yS1v7L6lCM4yrq4lI3mHyvfAo1Zkwkd2ADoyNq2PW9ePZH1V16DlcE5",
+                                  "658a58db-7f87-426d-9b7b-c772052f6809",
+                                  "2020-03-25T02:53:40.000000Z",
+                                  "2021-03-29T01:32:57.000000Z",
+                                  6829,
+                                  "payment",
+                                  applicable_shop_ids=["b79f5e0c-8c6e-4d83-92d8-65b5d7624170", "06bdac61-4165-4586-a626-3b7062f0a4f2", "7311a218-4257-4574-9053-1cc7dc7fb4da", "d934d772-f2cc-4a39-bb3f-27fdaaa9d2d5", "5f4abd24-e372-446d-8114-face24d66925", "555cca3a-c512-4202-9593-760c0e11d198", "9e3a20b3-33f6-4046-a75a-1eaa6ad77c9e", "1d8c0311-8736-4f18-8388-e9398c43f776", "a0b38e77-03d8-4ea5-9200-13c9a811e605"],
+                                  applicable_transaction_metadata={
+          "key": "rank",
+          "value": "bronze"
+        },
+                                  applicable_account_metadata={
+          "key": "sex",
+          "value": "male"
+        },
+                                  dest_private_money_id="e8ad3462-cb5f-46ca-ac60-37b7b0378779",
+                                  max_total_point_amount=9645,
+                                  max_point_amount=1169,
+                                  exist_in_each_product_groups=True,
+                                  minimum_number_for_combination_purchase=7676,
+                                  minimum_number_of_amount=8960,
+                                  minimum_number_of_products=307,
+                                  applicable_time_ranges=[{
+          "from": "12:00",
+          "to": "23:59"
         }, {
-          "point_amount": 5,
-          "point_amount_unit": "percent",
-          "product_code": "4912345678904",
-          "is_multiply_by_count": True,
-          "required_count": 2
+          "from": "12:00",
+          "to": "23:59"
         }, {
-          "point_amount": 5,
-          "point_amount_unit": "percent",
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }],
+                                  applicable_days_of_week=[3, 6, 0, 1, 2, 4],
+                                  blacklisted_product_rules=[{
           "product_code": "4912345678904",
-          "is_multiply_by_count": True,
-          "required_count": 2
+          "classification_code": "c123"
         }, {
-          "point_amount": 5,
-          "point_amount_unit": "percent",
           "product_code": "4912345678904",
-          "is_multiply_by_count": True,
-          "required_count": 2
+          "classification_code": "c123"
         }, {
-          "point_amount": 5,
-          "point_amount_unit": "percent",
           "product_code": "4912345678904",
-          "is_multiply_by_count": True,
-          "required_count": 2
+          "classification_code": "c123"
         }, {
-          "point_amount": 5,
-          "point_amount_unit": "percent",
           "product_code": "4912345678904",
-          "is_multiply_by_count": True,
-          "required_count": 2
+          "classification_code": "c123"
         }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }],
+                                  product_based_point_rules=[{
           "point_amount": 5,
           "point_amount_unit": "percent",
           "product_code": "4912345678904",
@@ -5080,35 +5741,6 @@ def test_update_campaign_15(self):
           "is_multiply_by_count": True,
           "required_count": 2
         }],
-                                  applicable_days_of_week=[3, 3, 0, 2, 1, 2, 6, 0],
-                                  applicable_time_ranges=[{
-          "from": "12:00",
-          "to": "23:59"
-        }, {
-          "from": "12:00",
-          "to": "23:59"
-        }],
-                                  applicable_shop_ids=["38f27d79-9a4c-4cbe-822a-8923a92e4c05", "0e5359b2-078e-41eb-bd8f-a6fce8406c6c", "ce4ca98b-ccdf-4e22-ac13-269a573e08fb", "9de2b62f-93c4-440a-8a40-42b12f355172", "4927d58c-c133-447b-8cbc-976a9079b05f", "458e0f26-f33e-4387-8393-c29a167b564c", "7e92cecf-4832-4782-b058-3f8747bd5619", "9af50069-7161-4390-8cdc-9e07d278e62b"],
-                                  minimum_number_for_combination_purchase=7549,
-                                  exist_in_each_product_groups=True,
-                                  max_point_amount=9515,
-                                  max_total_point_amount=3722,
-                                  applicable_account_metadata={
-          "key": "sex",
-          "value": "male"
-        }
-        ))
-        self.assertNotEqual(response.status_code, 400)
-
-    def test_update_campaign_16(self):
-        response = client.send(pp.UpdateCampaign(
-                                  "80db920c-14b6-4bd6-a117-8ca291a457ff",
-                                  description="c9g0DX8Wq75NNOSKErJuxzhPvCMr0kZtscw8OT2IAWVb28SeWG8Bm8n",
-                                  status="enabled",
-                                  point_expires_at="2020-03-08T15:19:02.000000+09:00",
-                                  point_expires_in_days=2385,
-                                  is_exclusive=True,
-                                  subject="all",
                                   amount_based_point_rules=[{
           "point_amount": 5,
           "point_amount_unit": "percent",
@@ -5149,14 +5781,57 @@ def test_update_campaign_16(self):
           "point_amount_unit": "percent",
           "subject_more_than_or_equal": 1000,
           "subject_less_than": 5000
-        }],
-                                  product_based_point_rules=[{
+        }, {
           "point_amount": 5,
           "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }],
+                                  subject="money",
+                                  is_exclusive=False,
+                                  point_expires_in_days=4060,
+                                  point_expires_at="2024-08-25T16:06:07.000000Z",
+                                  status="enabled",
+                                  description="63tcXPzmao0EWnRVCjlgZcfxXnQfXvfoocz3td7BZN78kqzJ0Us2fGrJyLKsRHFPpRHSTTSFxnvRwj3Oa3urFP8R4bhOdaBwGLVVHwtN3AFb20DhVqIxWOmhxrSYnMI0",
+                                  bear_point_shop_id="ff40b6e4-c8ff-49c5-a8cf-c79204df1027"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_campaign_22(self):
+        response = client.send(pp.CreateCampaign(
+                                  "8HWWbXOMsyMVL1Y0FzVGqOKFoU3xJNKmuaDr4cMSAgHDAlLlP6Lo5yS1v7L6lCM4yrq4lI3mHyvfAo1Zkwkd2ADoyNq2PW9ePZH1V16DlcE5",
+                                  "658a58db-7f87-426d-9b7b-c772052f6809",
+                                  "2020-03-25T02:53:40.000000Z",
+                                  "2021-03-29T01:32:57.000000Z",
+                                  6829,
+                                  "payment",
+                                  applicable_shop_ids=["5ecdcd80-da1c-4abb-89bc-4e25539e4b17", "1c349b22-1ff1-4d4f-a3c6-be879f38494c", "80845371-9c6e-4e0c-b2a0-205a8905f6de", "0baf9c17-7f75-484c-afeb-f29741ca25de", "310197b5-3fc7-4ca6-a846-69328965d846"],
+                                  budget_caps_amount=58159111,
+                                  applicable_transaction_metadata={
+          "key": "rank",
+          "value": "bronze"
+        },
+                                  applicable_account_metadata={
+          "key": "sex",
+          "value": "male"
+        },
+                                  dest_private_money_id="283254d5-96f5-4c79-bb44-a8d6d3b33d07",
+                                  max_total_point_amount=5436,
+                                  max_point_amount=8339,
+                                  exist_in_each_product_groups=False,
+                                  minimum_number_for_combination_purchase=7643,
+                                  minimum_number_of_amount=4442,
+                                  minimum_number_of_products=6502,
+                                  applicable_time_ranges=[{
+          "from": "12:00",
+          "to": "23:59"
+        }],
+                                  applicable_days_of_week=[3],
+                                  blacklisted_product_rules=[{
           "product_code": "4912345678904",
-          "is_multiply_by_count": True,
-          "required_count": 2
-        }, {
+          "classification_code": "c123"
+        }],
+                                  product_based_point_rules=[{
           "point_amount": 5,
           "point_amount_unit": "percent",
           "product_code": "4912345678904",
@@ -5174,74 +5849,28 @@ def test_update_campaign_16(self):
           "product_code": "4912345678904",
           "is_multiply_by_count": True,
           "required_count": 2
-        }, {
+        }],
+                                  amount_based_point_rules=[{
           "point_amount": 5,
           "point_amount_unit": "percent",
-          "product_code": "4912345678904",
-          "is_multiply_by_count": True,
-          "required_count": 2
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
         }, {
           "point_amount": 5,
           "point_amount_unit": "percent",
-          "product_code": "4912345678904",
-          "is_multiply_by_count": True,
-          "required_count": 2
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
         }, {
           "point_amount": 5,
           "point_amount_unit": "percent",
-          "product_code": "4912345678904",
-          "is_multiply_by_count": True,
-          "required_count": 2
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
         }, {
           "point_amount": 5,
           "point_amount_unit": "percent",
-          "product_code": "4912345678904",
-          "is_multiply_by_count": True,
-          "required_count": 2
-        }],
-                                  applicable_days_of_week=[3, 0, 5, 4, 0],
-                                  applicable_time_ranges=[{
-          "from": "12:00",
-          "to": "23:59"
-        }, {
-          "from": "12:00",
-          "to": "23:59"
-        }, {
-          "from": "12:00",
-          "to": "23:59"
-        }, {
-          "from": "12:00",
-          "to": "23:59"
-        }, {
-          "from": "12:00",
-          "to": "23:59"
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
         }, {
-          "from": "12:00",
-          "to": "23:59"
-        }],
-                                  applicable_shop_ids=["4785ea62-9c03-448a-9645-2e291505271a", "fd35045e-a535-405c-8fd8-2c3731993630", "f6b4f51b-db19-4027-b5d6-e180844c3a6d", "85a73b8f-4a5b-4135-9baf-1d8410889816", "d850eb24-c32c-47fd-be4a-89203d1b5d06"],
-                                  minimum_number_for_combination_purchase=7530,
-                                  exist_in_each_product_groups=False,
-                                  max_point_amount=9498,
-                                  max_total_point_amount=7497,
-                                  applicable_account_metadata={
-          "key": "sex",
-          "value": "male"
-        }
-        ))
-        self.assertNotEqual(response.status_code, 400)
-
-    def test_update_campaign_17(self):
-        response = client.send(pp.UpdateCampaign(
-                                  "80db920c-14b6-4bd6-a117-8ca291a457ff",
-                                  event="external-transaction",
-                                  description="UPeHPDN",
-                                  status="disabled",
-                                  point_expires_at="2025-05-29T21:46:37.000000+09:00",
-                                  point_expires_in_days=5045,
-                                  is_exclusive=False,
-                                  subject="money",
-                                  amount_based_point_rules=[{
           "point_amount": 5,
           "point_amount_unit": "percent",
           "subject_more_than_or_equal": 1000,
@@ -5251,94 +5880,235 @@ def test_update_campaign_17(self):
           "point_amount_unit": "percent",
           "subject_more_than_or_equal": 1000,
           "subject_less_than": 5000
-        }],
-                                  product_based_point_rules=[{
+        }, {
           "point_amount": 5,
           "point_amount_unit": "percent",
-          "product_code": "4912345678904",
-          "is_multiply_by_count": True,
-          "required_count": 2
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
         }, {
           "point_amount": 5,
           "point_amount_unit": "percent",
-          "product_code": "4912345678904",
-          "is_multiply_by_count": True,
-          "required_count": 2
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
         }, {
           "point_amount": 5,
           "point_amount_unit": "percent",
-          "product_code": "4912345678904",
-          "is_multiply_by_count": True,
-          "required_count": 2
-        }, {
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }],
+                                  subject="all",
+                                  is_exclusive=False,
+                                  point_expires_in_days=6020,
+                                  point_expires_at="2022-06-22T08:49:37.000000Z",
+                                  status="enabled",
+                                  description="DGq4e7wXOOVc8GIqj26qcMQ423OrAYOyd21L95eAaG4JW0HS7",
+                                  bear_point_shop_id="f326f101-4a5f-480e-94fe-50a26de542b0"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_campaign_23(self):
+        response = client.send(pp.CreateCampaign(
+                                  "8HWWbXOMsyMVL1Y0FzVGqOKFoU3xJNKmuaDr4cMSAgHDAlLlP6Lo5yS1v7L6lCM4yrq4lI3mHyvfAo1Zkwkd2ADoyNq2PW9ePZH1V16DlcE5",
+                                  "658a58db-7f87-426d-9b7b-c772052f6809",
+                                  "2020-03-25T02:53:40.000000Z",
+                                  "2021-03-29T01:32:57.000000Z",
+                                  6829,
+                                  "payment",
+                                  blacklisted_shop_ids=["bacc3b26-2723-4e4a-8f55-091d3a28e0fe"]
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_campaign_24(self):
+        response = client.send(pp.CreateCampaign(
+                                  "8HWWbXOMsyMVL1Y0FzVGqOKFoU3xJNKmuaDr4cMSAgHDAlLlP6Lo5yS1v7L6lCM4yrq4lI3mHyvfAo1Zkwkd2ADoyNq2PW9ePZH1V16DlcE5",
+                                  "658a58db-7f87-426d-9b7b-c772052f6809",
+                                  "2020-03-25T02:53:40.000000Z",
+                                  "2021-03-29T01:32:57.000000Z",
+                                  6829,
+                                  "payment",
+                                  blacklisted_shop_ids=["00d93b47-b8dc-4a5d-9ec3-b4e7eb58da4c", "7c0cd411-917b-4f9d-9b1e-cd2ee5e88518", "feb4bdf9-23e3-47b3-8821-eed8398450ad", "3641f999-74e3-4fa1-a546-1099f6448fcf", "cec70759-d7ad-4770-81c1-f6ace1236987", "ce4d3648-4281-45a9-990d-a6d9bc0a72cb"],
+                                  bear_point_shop_id="e3979439-ef7a-4886-b73b-8685926840b3"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_campaign_25(self):
+        response = client.send(pp.CreateCampaign(
+                                  "8HWWbXOMsyMVL1Y0FzVGqOKFoU3xJNKmuaDr4cMSAgHDAlLlP6Lo5yS1v7L6lCM4yrq4lI3mHyvfAo1Zkwkd2ADoyNq2PW9ePZH1V16DlcE5",
+                                  "658a58db-7f87-426d-9b7b-c772052f6809",
+                                  "2020-03-25T02:53:40.000000Z",
+                                  "2021-03-29T01:32:57.000000Z",
+                                  6829,
+                                  "payment",
+                                  blacklisted_shop_ids=["b85b3ef8-1944-4b50-bc0a-66b27ebf9810", "362ed495-5569-4606-a3f4-f6e99a7cc4a8", "8d4c84f8-39d9-4c3a-93fe-e5d7b1421830", "371db141-6593-4983-9b0f-fa6e28bdacaf", "8647f1ec-5ffe-4f0e-a7ca-e7f94a911507", "0527c15b-4fd1-4896-b4ef-ee0296be1e67"],
+                                  description="jQgbj8PRfNm4vkTJ8joyTSHmI2see5qGgNKlkv5",
+                                  bear_point_shop_id="232f2690-3408-41f6-858f-6afde9d9b686"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_campaign_26(self):
+        response = client.send(pp.CreateCampaign(
+                                  "8HWWbXOMsyMVL1Y0FzVGqOKFoU3xJNKmuaDr4cMSAgHDAlLlP6Lo5yS1v7L6lCM4yrq4lI3mHyvfAo1Zkwkd2ADoyNq2PW9ePZH1V16DlcE5",
+                                  "658a58db-7f87-426d-9b7b-c772052f6809",
+                                  "2020-03-25T02:53:40.000000Z",
+                                  "2021-03-29T01:32:57.000000Z",
+                                  6829,
+                                  "payment",
+                                  blacklisted_shop_ids=["0b3861df-d05c-4e3b-89c5-0a6f79186922", "d987a0cd-1d06-4d6a-ba3f-696281225754", "794fde34-4656-49d0-b85d-786c9246c5da", "eff909c6-bcad-42b0-8168-d05b10f910fb"],
+                                  status="disabled",
+                                  description="puShoXCly79fXYfw5LEwfbe5dxC9nFb6",
+                                  bear_point_shop_id="37dcb0a0-e685-4ac5-aed2-1d1528244db3"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_campaign_27(self):
+        response = client.send(pp.CreateCampaign(
+                                  "8HWWbXOMsyMVL1Y0FzVGqOKFoU3xJNKmuaDr4cMSAgHDAlLlP6Lo5yS1v7L6lCM4yrq4lI3mHyvfAo1Zkwkd2ADoyNq2PW9ePZH1V16DlcE5",
+                                  "658a58db-7f87-426d-9b7b-c772052f6809",
+                                  "2020-03-25T02:53:40.000000Z",
+                                  "2021-03-29T01:32:57.000000Z",
+                                  6829,
+                                  "payment",
+                                  blacklisted_shop_ids=["d49064a1-36d8-4b0e-8937-aa629f1332ba", "af08a800-8c84-48a1-a124-b6807f914130", "078251b9-532d-4130-97a7-5369a8e58ec2", "a21959f4-c4d2-4b5f-bb2d-642a030a4668", "7146c830-48bc-4226-a1dd-fd762f9d10d7", "3ed2e5ef-f8ac-41ed-b703-dc2e766ad29b", "77313669-f353-4d92-a58e-da5cc7ef6c7c", "a33aeec6-ef9d-4fc9-81cf-14b49b7b13f5"],
+                                  point_expires_at="2025-01-06T02:30:50.000000Z",
+                                  status="enabled",
+                                  description="tJGn6HWLBVq7JKL8IsIw17O7EyRwbRgUy7vFea5WeBAkgIciVnQYB9t75iPCouDaOPQZR4UpdKmspN8b2gkMcSPrmt0hjIJu43wB7scWlYirrj6XmXYoqVEvKvw3AdEs5hGDLuaSpYl1TGEiu",
+                                  bear_point_shop_id="5ab54485-3967-4e83-a717-c56c1b00f30b"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_campaign_28(self):
+        response = client.send(pp.CreateCampaign(
+                                  "8HWWbXOMsyMVL1Y0FzVGqOKFoU3xJNKmuaDr4cMSAgHDAlLlP6Lo5yS1v7L6lCM4yrq4lI3mHyvfAo1Zkwkd2ADoyNq2PW9ePZH1V16DlcE5",
+                                  "658a58db-7f87-426d-9b7b-c772052f6809",
+                                  "2020-03-25T02:53:40.000000Z",
+                                  "2021-03-29T01:32:57.000000Z",
+                                  6829,
+                                  "payment",
+                                  blacklisted_shop_ids=["146e582b-cd22-4989-8a10-a54a5eddb942", "18c0d2c7-4792-4aff-9d74-ad3000d90afc", "ea863fe4-7a2c-4be3-90e2-5019597acb20", "a2b7465c-c88f-46f4-9186-776318a70f0b", "edf9e834-5289-4028-b553-84eb23110beb", "4603c91b-adb2-4a82-8096-cdb6553184f5", "36250a02-8cd3-46d2-bcf7-cd58c57cbb36", "7a69f240-5fd2-405e-a678-94375119de66", "e4ec4089-42cf-4dc5-af46-5e5396b01e9d"],
+                                  point_expires_in_days=8334,
+                                  point_expires_at="2020-10-22T16:51:25.000000Z",
+                                  status="disabled",
+                                  description="iDYpTTgrywklVD4mELe2edQ",
+                                  bear_point_shop_id="e5bd3da7-84e4-4b0a-9136-76a532f3793d"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_campaign_29(self):
+        response = client.send(pp.CreateCampaign(
+                                  "8HWWbXOMsyMVL1Y0FzVGqOKFoU3xJNKmuaDr4cMSAgHDAlLlP6Lo5yS1v7L6lCM4yrq4lI3mHyvfAo1Zkwkd2ADoyNq2PW9ePZH1V16DlcE5",
+                                  "658a58db-7f87-426d-9b7b-c772052f6809",
+                                  "2020-03-25T02:53:40.000000Z",
+                                  "2021-03-29T01:32:57.000000Z",
+                                  6829,
+                                  "payment",
+                                  blacklisted_shop_ids=["69d7f977-e53c-4d5c-9775-bfb1f09c6b32", "a5e0a18e-b555-4365-94be-d32dd0663437"],
+                                  is_exclusive=True,
+                                  point_expires_in_days=7687,
+                                  point_expires_at="2026-01-23T07:40:37.000000Z",
+                                  status="enabled",
+                                  description="gJ9PT2zGkxOOzhTpPLnUQXea3eTBlP1za1n7IcWMlrV1ey0F13qC7iArhwm76E35ql4XfUae14Wbt",
+                                  bear_point_shop_id="b02afdb9-b5b3-40df-b400-6632f81322b6"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_campaign_30(self):
+        response = client.send(pp.CreateCampaign(
+                                  "8HWWbXOMsyMVL1Y0FzVGqOKFoU3xJNKmuaDr4cMSAgHDAlLlP6Lo5yS1v7L6lCM4yrq4lI3mHyvfAo1Zkwkd2ADoyNq2PW9ePZH1V16DlcE5",
+                                  "658a58db-7f87-426d-9b7b-c772052f6809",
+                                  "2020-03-25T02:53:40.000000Z",
+                                  "2021-03-29T01:32:57.000000Z",
+                                  6829,
+                                  "payment",
+                                  blacklisted_shop_ids=["d46ed64c-3ae9-4851-91c1-a787c42816ac", "032dc94d-dc42-4ed9-ad78-c6b0bf371a35", "6d225d37-587c-4183-9a41-54eff38dcb3b", "19f01f42-b7f7-4e2e-8ce5-54f2ecce16f9", "49fa164e-dee5-441a-90fe-96635f308b75", "167e0503-d482-42c9-9c68-949e895e8855", "c48f94c2-e7d8-4d88-9251-839f0a222791", "f1f0fb52-d9ab-465e-832f-7576768b45bf"],
+                                  subject="all",
+                                  is_exclusive=False,
+                                  point_expires_in_days=1030,
+                                  point_expires_at="2026-01-03T04:32:08.000000Z",
+                                  status="disabled",
+                                  description="mDbMU34aVyZLcCNEj4KngWmPwy7k0E27omWruIWs4TAGfq9ue8TvZwYbMntyIPzqAGarjc22UJafoQs8oM8ozozHv7pSUjn2vqwiu14DVHGOrsaIKsQ11QA0zf5QFhEcKjjKztGRK6K9KAPEUIedziHih60rhQZO78Ysa8FmX0ccAumcgyg4cqEaxSmm8kmOY",
+                                  bear_point_shop_id="9f03c58f-7afa-449a-b321-1ab74521243f"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_campaign_31(self):
+        response = client.send(pp.CreateCampaign(
+                                  "8HWWbXOMsyMVL1Y0FzVGqOKFoU3xJNKmuaDr4cMSAgHDAlLlP6Lo5yS1v7L6lCM4yrq4lI3mHyvfAo1Zkwkd2ADoyNq2PW9ePZH1V16DlcE5",
+                                  "658a58db-7f87-426d-9b7b-c772052f6809",
+                                  "2020-03-25T02:53:40.000000Z",
+                                  "2021-03-29T01:32:57.000000Z",
+                                  6829,
+                                  "payment",
+                                  blacklisted_shop_ids=["8111b882-52bc-4f2f-859b-67e3cde2f450"],
+                                  amount_based_point_rules=[{
           "point_amount": 5,
           "point_amount_unit": "percent",
-          "product_code": "4912345678904",
-          "is_multiply_by_count": True,
-          "required_count": 2
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
         }, {
           "point_amount": 5,
           "point_amount_unit": "percent",
-          "product_code": "4912345678904",
-          "is_multiply_by_count": True,
-          "required_count": 2
-        }],
-                                  applicable_days_of_week=[4, 5, 3, 3],
-                                  applicable_time_ranges=[{
-          "from": "12:00",
-          "to": "23:59"
-        }, {
-          "from": "12:00",
-          "to": "23:59"
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
         }, {
-          "from": "12:00",
-          "to": "23:59"
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
         }, {
-          "from": "12:00",
-          "to": "23:59"
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
         }, {
-          "from": "12:00",
-          "to": "23:59"
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
         }, {
-          "from": "12:00",
-          "to": "23:59"
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
         }, {
-          "from": "12:00",
-          "to": "23:59"
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
         }, {
-          "from": "12:00",
-          "to": "23:59"
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
         }, {
-          "from": "12:00",
-          "to": "23:59"
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
         }, {
-          "from": "12:00",
-          "to": "23:59"
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
         }],
-                                  applicable_shop_ids=["96ae2705-4f51-4145-94c6-106b3e3c9164", "5b409ab4-4bc2-4cb7-a019-0036035cb3f1", "1112f31d-cf60-43a8-bfd6-d8ecfa0aadb0", "1e070b62-06f6-4d73-89ce-df755d6e7387", "eadb72c6-fac8-4d30-bc38-cc405d22b424", "583f13e3-a1c8-4810-a569-5cb3e9a64b49", "ff8a4c72-0218-41fb-9a21-0600ef39329b"],
-                                  minimum_number_for_combination_purchase=2038,
-                                  exist_in_each_product_groups=True,
-                                  max_point_amount=8326,
-                                  max_total_point_amount=9340,
-                                  applicable_account_metadata={
-          "key": "sex",
-          "value": "male"
-        }
+                                  subject="money",
+                                  is_exclusive=True,
+                                  point_expires_in_days=6479,
+                                  point_expires_at="2020-04-12T19:07:53.000000Z",
+                                  status="enabled",
+                                  description="iKvN5Ht8RLA9ghACTJRDSXhb0oNXnX7lDuTKN6ygQ5h7kN0paU2HC64wcGrUcdcRO2Sa3zE9qA6JlqvTos7SrIAldP5taDahvoqIf3H7H22Xm9qyhmrKIzglEahNrgMO9grD73ccOw2h3Fa22",
+                                  bear_point_shop_id="aa3bcd32-26db-4d6e-8842-d498802597ac"
         ))
         self.assertNotEqual(response.status_code, 400)
 
-    def test_update_campaign_18(self):
-        response = client.send(pp.UpdateCampaign(
-                                  "80db920c-14b6-4bd6-a117-8ca291a457ff",
-                                  priority=7432,
-                                  event="external-transaction",
-                                  description="bJYOhkdNc7P4FTTn7dkmZ79WHBWuUwmPiQWsAKL3kSTc0LPbfp9enQ4UqYgv1CZM",
-                                  status="enabled",
-                                  point_expires_at="2022-11-12T11:56:38.000000+09:00",
-                                  point_expires_in_days=1434,
-                                  is_exclusive=False,
-                                  subject="all",
-                                  amount_based_point_rules=[],
+    def test_create_campaign_32(self):
+        response = client.send(pp.CreateCampaign(
+                                  "8HWWbXOMsyMVL1Y0FzVGqOKFoU3xJNKmuaDr4cMSAgHDAlLlP6Lo5yS1v7L6lCM4yrq4lI3mHyvfAo1Zkwkd2ADoyNq2PW9ePZH1V16DlcE5",
+                                  "658a58db-7f87-426d-9b7b-c772052f6809",
+                                  "2020-03-25T02:53:40.000000Z",
+                                  "2021-03-29T01:32:57.000000Z",
+                                  6829,
+                                  "payment",
+                                  blacklisted_shop_ids=["7a92b34e-a0b6-4a7c-a9b5-10b157d3ebb0", "cde65ee2-d806-4e8c-9fc1-785de527dcc8"],
                                   product_based_point_rules=[{
           "point_amount": 5,
           "point_amount_unit": "percent",
@@ -5369,70 +6139,28 @@ def test_update_campaign_18(self):
           "product_code": "4912345678904",
           "is_multiply_by_count": True,
           "required_count": 2
-        }, {
+        }],
+                                  amount_based_point_rules=[{
           "point_amount": 5,
           "point_amount_unit": "percent",
-          "product_code": "4912345678904",
-          "is_multiply_by_count": True,
-          "required_count": 2
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
         }, {
           "point_amount": 5,
           "point_amount_unit": "percent",
-          "product_code": "4912345678904",
-          "is_multiply_by_count": True,
-          "required_count": 2
-        }],
-                                  applicable_days_of_week=[3, 4, 1, 4, 1],
-                                  applicable_time_ranges=[{
-          "from": "12:00",
-          "to": "23:59"
-        }, {
-          "from": "12:00",
-          "to": "23:59"
-        }, {
-          "from": "12:00",
-          "to": "23:59"
-        }, {
-          "from": "12:00",
-          "to": "23:59"
-        }, {
-          "from": "12:00",
-          "to": "23:59"
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
         }, {
-          "from": "12:00",
-          "to": "23:59"
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
         }, {
-          "from": "12:00",
-          "to": "23:59"
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
         }, {
-          "from": "12:00",
-          "to": "23:59"
-        }],
-                                  applicable_shop_ids=["f00e0fc5-77c2-4e7c-ab7d-82633519f628", "7e83e342-eed7-41f7-a10f-5d847f2458b9", "1aca8293-9fa3-4d78-ab79-aa79626514dd", "e77f0932-34e2-42c3-bb8c-eba5f81f4a9c", "ff0f2ba6-c0c0-4c81-a9cc-dea8e9091b1d", "6ce84cb7-05a0-4210-9c85-d7b44490b8bc", "7e6ba3d1-d6b4-4b16-a083-b2fdda128675", "2328eab2-b3cf-4d98-be4d-be8a420f024d", "415b3c06-d04d-4730-93fc-54f8c7ac5f44", "63dd457f-d6a9-4edd-8584-1224584c2a32"],
-                                  minimum_number_for_combination_purchase=7333,
-                                  exist_in_each_product_groups=False,
-                                  max_point_amount=3170,
-                                  max_total_point_amount=9517,
-                                  applicable_account_metadata={
-          "key": "sex",
-          "value": "male"
-        }
-        ))
-        self.assertNotEqual(response.status_code, 400)
-
-    def test_update_campaign_19(self):
-        response = client.send(pp.UpdateCampaign(
-                                  "80db920c-14b6-4bd6-a117-8ca291a457ff",
-                                  ends_at="2025-01-18T13:32:03.000000+09:00",
-                                  priority=855,
-                                  event="external-transaction",
-                                  description="9LUbHMcMKbw9zDIEFEyvAvmcoCxU",
-                                  status="enabled",
-                                  point_expires_at="2025-06-30T22:44:26.000000+09:00",
-                                  point_expires_in_days=8640,
-                                  is_exclusive=False,
-                                  subject="money",
-                                  amount_based_point_rules=[{
           "point_amount": 5,
           "point_amount_unit": "percent",
           "subject_more_than_or_equal": 1000,
@@ -5452,6 +6180,32 @@ def test_update_campaign_19(self):
           "point_amount_unit": "percent",
           "subject_more_than_or_equal": 1000,
           "subject_less_than": 5000
+        }],
+                                  subject="money",
+                                  is_exclusive=False,
+                                  point_expires_in_days=979,
+                                  point_expires_at="2022-01-17T12:40:54.000000Z",
+                                  status="enabled",
+                                  description="qtJb7GLA5jeThW5qr3yEd4dXuL0rYsAz43Mmx6hv0Ug3INp6i2B7flubMg8I3PFzXHSWu8scihqWwWKLIsgxoxZCQ2441blMtSOZHoWLqvzthoXVcLebdhYmokN15vn0WBXfGwW2mMW1f9b8gICLPqqow4qG8fKR",
+                                  bear_point_shop_id="5ca6c41f-54dd-4973-a92b-dcac54554bea"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_campaign_33(self):
+        response = client.send(pp.CreateCampaign(
+                                  "8HWWbXOMsyMVL1Y0FzVGqOKFoU3xJNKmuaDr4cMSAgHDAlLlP6Lo5yS1v7L6lCM4yrq4lI3mHyvfAo1Zkwkd2ADoyNq2PW9ePZH1V16DlcE5",
+                                  "658a58db-7f87-426d-9b7b-c772052f6809",
+                                  "2020-03-25T02:53:40.000000Z",
+                                  "2021-03-29T01:32:57.000000Z",
+                                  6829,
+                                  "payment",
+                                  blacklisted_shop_ids=["c925a11f-9492-4ab9-ad5e-a541efc53e43", "62a51ae2-667c-4b9b-8d28-de46267d91e8", "f9d4e383-ce91-4283-933a-3a22cacdf462", "9de2de29-3d2a-4055-ae82-5c2f2ec68dbd", "e68baa8b-0c97-43d8-885e-052053827864"],
+                                  blacklisted_product_rules=[{
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
         }],
                                   product_based_point_rules=[{
           "point_amount": 5,
@@ -5459,13 +6213,41 @@ def test_update_campaign_19(self):
           "product_code": "4912345678904",
           "is_multiply_by_count": True,
           "required_count": 2
-        }, {
+        }],
+                                  amount_based_point_rules=[{
           "point_amount": 5,
           "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }],
+                                  subject="money",
+                                  is_exclusive=True,
+                                  point_expires_in_days=2700,
+                                  point_expires_at="2025-01-27T12:30:00.000000Z",
+                                  status="disabled",
+                                  description="qiJvOHOlQFLdxOm16oejI9dat1CLgQoRlzuyxB2QGrCPmQ415Et2SGqgy7Wowcm3CmFfxpy",
+                                  bear_point_shop_id="62363016-6edc-40a7-83d0-d670375e64e0"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_campaign_34(self):
+        response = client.send(pp.CreateCampaign(
+                                  "8HWWbXOMsyMVL1Y0FzVGqOKFoU3xJNKmuaDr4cMSAgHDAlLlP6Lo5yS1v7L6lCM4yrq4lI3mHyvfAo1Zkwkd2ADoyNq2PW9ePZH1V16DlcE5",
+                                  "658a58db-7f87-426d-9b7b-c772052f6809",
+                                  "2020-03-25T02:53:40.000000Z",
+                                  "2021-03-29T01:32:57.000000Z",
+                                  6829,
+                                  "payment",
+                                  blacklisted_shop_ids=["ec78b8f3-09a2-4ea0-a8be-3a17328404fa", "613074e9-7dbd-42d6-acef-63ae704c3829", "d3664941-ee74-43f9-9c6e-292d6296d64c", "7d737482-0a73-4350-a71f-735b593424cf", "6581c395-e982-4f9c-818c-6d3916e0be8a", "33316f82-c1a2-435c-83c6-adfa5495a038", "be758937-d390-446b-a45e-77c961c6259b", "34747b08-cf1e-4003-9d6d-95cfd8d0a8cc", "361157d7-4ce0-4110-ba79-b86ecd78291b"],
+                                  applicable_days_of_week=[6, 0, 3, 4, 4, 4, 3, 0],
+                                  blacklisted_product_rules=[{
           "product_code": "4912345678904",
-          "is_multiply_by_count": True,
-          "required_count": 2
+          "classification_code": "c123"
         }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }],
+                                  product_based_point_rules=[{
           "point_amount": 5,
           "point_amount_unit": "percent",
           "product_code": "4912345678904",
@@ -5489,26 +6271,47 @@ def test_update_campaign_19(self):
           "product_code": "4912345678904",
           "is_multiply_by_count": True,
           "required_count": 2
+        }],
+                                  amount_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
         }, {
           "point_amount": 5,
           "point_amount_unit": "percent",
-          "product_code": "4912345678904",
-          "is_multiply_by_count": True,
-          "required_count": 2
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
         }, {
           "point_amount": 5,
           "point_amount_unit": "percent",
-          "product_code": "4912345678904",
-          "is_multiply_by_count": True,
-          "required_count": 2
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
         }, {
           "point_amount": 5,
           "point_amount_unit": "percent",
-          "product_code": "4912345678904",
-          "is_multiply_by_count": True,
-          "required_count": 2
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
         }],
-                                  applicable_days_of_week=[5, 3, 1, 1, 3, 3],
+                                  subject="money",
+                                  is_exclusive=True,
+                                  point_expires_in_days=2156,
+                                  point_expires_at="2022-05-16T21:25:35.000000Z",
+                                  status="disabled",
+                                  description="WD",
+                                  bear_point_shop_id="da71824c-285f-4d1f-9a6d-ade9550bc1a4"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_campaign_35(self):
+        response = client.send(pp.CreateCampaign(
+                                  "8HWWbXOMsyMVL1Y0FzVGqOKFoU3xJNKmuaDr4cMSAgHDAlLlP6Lo5yS1v7L6lCM4yrq4lI3mHyvfAo1Zkwkd2ADoyNq2PW9ePZH1V16DlcE5",
+                                  "658a58db-7f87-426d-9b7b-c772052f6809",
+                                  "2020-03-25T02:53:40.000000Z",
+                                  "2021-03-29T01:32:57.000000Z",
+                                  6829,
+                                  "payment",
+                                  blacklisted_shop_ids=["11452d79-ed84-4fd9-bb19-3c3469240497", "211073f1-3c2a-4d53-8403-9563683464e5", "de6c85b1-098e-45a8-a136-424767056343", "81d5de34-5e77-42d0-b44c-656b5d411ef6", "012c6816-b70d-46b3-a65b-256fbc833a3a", "ac8f631a-08fb-4c12-b419-7ced48e51feb"],
                                   applicable_time_ranges=[{
           "from": "12:00",
           "to": "23:59"
@@ -5527,50 +6330,111 @@ def test_update_campaign_19(self):
         }, {
           "from": "12:00",
           "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
         }],
-                                  applicable_shop_ids=["c42e79c6-6bbb-4b65-b549-a915beb5df9a", "b93fa81a-2f42-4404-9528-ec7eef12246d", "fb3771ec-03b3-4968-849e-fd2eef5e87b3", "cbaebc36-7626-4b31-a78a-7988ab728475", "31664059-5548-4383-9d89-a601b32ac56a", "b328b3cf-2349-46ed-af90-46a56ab65fa2", "51b6e800-2f86-40da-95ab-1d90ad35ffbc", "13c634e8-e160-4223-8f53-fa8697722e4f", "20994828-6374-4638-9514-3940aa4bfdce"],
-                                  minimum_number_for_combination_purchase=6522,
-                                  exist_in_each_product_groups=False,
-                                  max_point_amount=8035,
-                                  max_total_point_amount=2578,
-                                  applicable_account_metadata={
-          "key": "sex",
-          "value": "male"
-        }
-        ))
-        self.assertNotEqual(response.status_code, 400)
-
-    def test_update_campaign_20(self):
-        response = client.send(pp.UpdateCampaign(
-                                  "80db920c-14b6-4bd6-a117-8ca291a457ff",
-                                  starts_at="2024-02-06T16:58:32.000000+09:00",
-                                  ends_at="2018-05-10T19:51:29.000000+09:00",
-                                  priority=6463,
-                                  event="payment",
-                                  description="Gme5CA27ltkwLNnQtyV2QJ",
-                                  status="disabled",
-                                  point_expires_at="2018-05-24T09:32:58.000000+09:00",
-                                  point_expires_in_days=1600,
-                                  is_exclusive=False,
-                                  subject="all",
-                                  amount_based_point_rules=[{
+                                  applicable_days_of_week=[1, 1, 1, 6, 4, 2, 0, 2, 2],
+                                  blacklisted_product_rules=[{
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }],
+                                  product_based_point_rules=[{
           "point_amount": 5,
           "point_amount_unit": "percent",
-          "subject_more_than_or_equal": 1000,
-          "subject_less_than": 5000
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
         }, {
           "point_amount": 5,
           "point_amount_unit": "percent",
-          "subject_more_than_or_equal": 1000,
-          "subject_less_than": 5000
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
         }, {
           "point_amount": 5,
           "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }],
+                                  amount_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
           "subject_more_than_or_equal": 1000,
           "subject_less_than": 5000
         }],
-                                  product_based_point_rules=[],
-                                  applicable_days_of_week=[5, 6, 5, 6, 5, 4, 5],
+                                  subject="money",
+                                  is_exclusive=False,
+                                  point_expires_in_days=75,
+                                  point_expires_at="2026-02-17T22:14:36.000000Z",
+                                  status="disabled",
+                                  description="nlec8JObXuRsPVeFJcsOCB9dZH0k0NKC7bYH6IQhPn4Xu22OkprhqhwvNpMEMbpSnLulsX8V7SnJwOTksCozm6o1k9oepRB7yq0Oa1SzxnfEtxAkEm7sWqtjzoUhtWxAFotkA3GwpJ6pUWjvs",
+                                  bear_point_shop_id="945ec3f8-827c-4ec6-8e29-d5b764ffe673"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_campaign_36(self):
+        response = client.send(pp.CreateCampaign(
+                                  "8HWWbXOMsyMVL1Y0FzVGqOKFoU3xJNKmuaDr4cMSAgHDAlLlP6Lo5yS1v7L6lCM4yrq4lI3mHyvfAo1Zkwkd2ADoyNq2PW9ePZH1V16DlcE5",
+                                  "658a58db-7f87-426d-9b7b-c772052f6809",
+                                  "2020-03-25T02:53:40.000000Z",
+                                  "2021-03-29T01:32:57.000000Z",
+                                  6829,
+                                  "payment",
+                                  blacklisted_shop_ids=["1ead4143-b032-4998-bf33-2e871eb1b170", "21418041-9ad6-4362-9b7f-f7d8e6b82669", "2a695a80-1c8a-4476-80c8-0bda82eb318d", "097fd374-b1f2-499b-bcc9-acc1c88f1d01", "74f93c18-4779-4550-b3c2-02e0473c92b3", "4471fb0b-163c-4f6e-adb1-67dd3d134a09", "8ce8023e-7e6d-4b34-8a35-5db162111282", "96ab8408-6c6d-4f94-8e03-5550425c9382", "0d06a29b-e2fb-4c2e-95dd-9bfe18374c38", "e0080d64-e33a-4e54-8944-0fa66daf28b7"],
+                                  minimum_number_of_products=1809,
                                   applicable_time_ranges=[{
           "from": "12:00",
           "to": "23:59"
@@ -5580,62 +6444,52 @@ def test_update_campaign_20(self):
         }, {
           "from": "12:00",
           "to": "23:59"
+        }],
+                                  applicable_days_of_week=[3, 0, 1],
+                                  blacklisted_product_rules=[{
+          "product_code": "4912345678904",
+          "classification_code": "c123"
         }, {
-          "from": "12:00",
-          "to": "23:59"
+          "product_code": "4912345678904",
+          "classification_code": "c123"
         }, {
-          "from": "12:00",
-          "to": "23:59"
+          "product_code": "4912345678904",
+          "classification_code": "c123"
         }, {
-          "from": "12:00",
-          "to": "23:59"
+          "product_code": "4912345678904",
+          "classification_code": "c123"
         }, {
-          "from": "12:00",
-          "to": "23:59"
+          "product_code": "4912345678904",
+          "classification_code": "c123"
         }, {
-          "from": "12:00",
-          "to": "23:59"
+          "product_code": "4912345678904",
+          "classification_code": "c123"
         }, {
-          "from": "12:00",
-          "to": "23:59"
+          "product_code": "4912345678904",
+          "classification_code": "c123"
         }, {
-          "from": "12:00",
-          "to": "23:59"
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
         }],
-                                  applicable_shop_ids=["7be5fbfc-5121-4f11-9f8d-d92a2d365ba4", "f00a5657-9973-48c9-80a5-3e285cbc2b18", "5d876dd2-3a78-4a4c-89ab-c0a8747110a2"],
-                                  minimum_number_for_combination_purchase=8720,
-                                  exist_in_each_product_groups=True,
-                                  max_point_amount=4840,
-                                  max_total_point_amount=9396,
-                                  applicable_account_metadata={
-          "key": "sex",
-          "value": "male"
-        }
-        ))
-        self.assertNotEqual(response.status_code, 400)
-
-    def test_update_campaign_21(self):
-        response = client.send(pp.UpdateCampaign(
-                                  "80db920c-14b6-4bd6-a117-8ca291a457ff",
-                                  name="3wnSfVCO7XYJmoO0uhcJraMmDaSEahfn300LCaHLSroJkepEoifMTQ44ocvwtomMfjQ73GX2yquqoxmpJQvrLat0xlnzVZch13fLL8IaybXOFsTe5kGdJyjn39kuUAVwNBecCVcfQFB6zhe4zCjHFhQi2UCzxxgdtQx1Yj4cppg0SxOu0ayiRvxTn",
-                                  starts_at="2018-07-10T01:18:26.000000+09:00",
-                                  ends_at="2023-09-30T01:33:44.000000+09:00",
-                                  priority=3482,
-                                  event="payment",
-                                  description="nHVMhD4r87dViYbNhwHBT9cSJc7HHGuapEaMsGd77SVXYGZA1EEVZp38NbYd6BPccNKfybJvzwpWAlSZO0eB2VJdZjjB0xRzUNUpofUOthUvaBWHSD95mCwqz0uQMfHDC0caZdfhivWlaI8SRhD29ZtnzslLBpLYCsl",
-                                  status="enabled",
-                                  point_expires_at="2021-10-12T07:37:22.000000+09:00",
-                                  point_expires_in_days=4790,
-                                  is_exclusive=True,
-                                  subject="all",
-                                  amount_based_point_rules=[{
+                                  product_based_point_rules=[{
           "point_amount": 5,
           "point_amount_unit": "percent",
-          "subject_more_than_or_equal": 1000,
-          "subject_less_than": 5000
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
         }, {
           "point_amount": 5,
           "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }],
+                                  amount_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
           "subject_more_than_or_equal": 1000,
           "subject_less_than": 5000
         }, {
@@ -5648,19 +6502,95 @@ def test_update_campaign_21(self):
           "point_amount_unit": "percent",
           "subject_more_than_or_equal": 1000,
           "subject_less_than": 5000
+        }],
+                                  subject="money",
+                                  is_exclusive=True,
+                                  point_expires_in_days=8066,
+                                  point_expires_at="2021-07-25T22:50:05.000000Z",
+                                  status="disabled",
+                                  description="Cw6Snm9mfcT5cLUh34lWYk1AXf6CZiEJmgnIHDOUd6m8hlpqS572AEF2Ig4ikrPHEQKtfhnULfkSB8hVVRhZgs0ShDA1T4kxBhv1AOy0n",
+                                  bear_point_shop_id="72cb0012-9da2-488a-9d78-45f7d338dbff"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_campaign_37(self):
+        response = client.send(pp.CreateCampaign(
+                                  "8HWWbXOMsyMVL1Y0FzVGqOKFoU3xJNKmuaDr4cMSAgHDAlLlP6Lo5yS1v7L6lCM4yrq4lI3mHyvfAo1Zkwkd2ADoyNq2PW9ePZH1V16DlcE5",
+                                  "658a58db-7f87-426d-9b7b-c772052f6809",
+                                  "2020-03-25T02:53:40.000000Z",
+                                  "2021-03-29T01:32:57.000000Z",
+                                  6829,
+                                  "payment",
+                                  blacklisted_shop_ids=["863f890f-5bfa-4058-9873-5f185c056de0", "bb2bef3d-348d-4d99-af03-a8f079f58a63", "15c04268-cffd-4ba3-b747-3dddd0989d21", "735f6a51-a5a6-4e18-aae0-78c725f138ea", "b115e9c2-8f05-4d38-98f0-e22a8c2636b2", "cec061f3-ec3a-4e56-a829-85ec4ae62cff", "894c4916-98a4-4c63-9731-2ac6c0523d37", "66c26141-485c-450d-956a-77cf10ac5c10", "51c3990d-1982-4137-a24a-05f45dab632d", "b95f765d-74cf-4fb7-846e-b8810e9f526e"],
+                                  minimum_number_of_amount=7062,
+                                  minimum_number_of_products=6460,
+                                  applicable_time_ranges=[{
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }],
+                                  applicable_days_of_week=[1],
+                                  blacklisted_product_rules=[{
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
         }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }],
+                                  product_based_point_rules=[{
           "point_amount": 5,
           "point_amount_unit": "percent",
-          "subject_more_than_or_equal": 1000,
-          "subject_less_than": 5000
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
         }, {
           "point_amount": 5,
           "point_amount_unit": "percent",
-          "subject_more_than_or_equal": 1000,
-          "subject_less_than": 5000
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
         }, {
           "point_amount": 5,
           "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }],
+                                  amount_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
           "subject_more_than_or_equal": 1000,
           "subject_less_than": 5000
         }, {
@@ -5678,21 +6608,34 @@ def test_update_campaign_21(self):
           "point_amount_unit": "percent",
           "subject_more_than_or_equal": 1000,
           "subject_less_than": 5000
-        }],
-                                  product_based_point_rules=[{
-          "point_amount": 5,
-          "point_amount_unit": "percent",
-          "product_code": "4912345678904",
-          "is_multiply_by_count": True,
-          "required_count": 2
         }, {
           "point_amount": 5,
           "point_amount_unit": "percent",
-          "product_code": "4912345678904",
-          "is_multiply_by_count": True,
-          "required_count": 2
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
         }],
-                                  applicable_days_of_week=[5, 5, 0],
+                                  subject="money",
+                                  is_exclusive=False,
+                                  point_expires_in_days=3662,
+                                  point_expires_at="2020-05-19T16:15:49.000000Z",
+                                  status="disabled",
+                                  description="hvlyZ4zlX8tOl1gapEcvHpCxJHTvEJuFQdQk10O1BigovU99ROsTZK65zQOhilbvDcAlCpIpPo9knGna2qU0GmaUmeizgJ6BwqETnaq5BggeTTsTdXg3gtXl8b4nZOZsr1VPBj7ivp8ue6C3vcL7BXf3IHj",
+                                  bear_point_shop_id="a72c424b-2330-42a0-985e-27e9d44920a0"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_campaign_38(self):
+        response = client.send(pp.CreateCampaign(
+                                  "8HWWbXOMsyMVL1Y0FzVGqOKFoU3xJNKmuaDr4cMSAgHDAlLlP6Lo5yS1v7L6lCM4yrq4lI3mHyvfAo1Zkwkd2ADoyNq2PW9ePZH1V16DlcE5",
+                                  "658a58db-7f87-426d-9b7b-c772052f6809",
+                                  "2020-03-25T02:53:40.000000Z",
+                                  "2021-03-29T01:32:57.000000Z",
+                                  6829,
+                                  "payment",
+                                  blacklisted_shop_ids=["70387267-3e30-427c-9c98-7b8ce1b45305", "91b3645c-defa-4c14-af1c-ee6344aca951", "30984a95-6dad-4ed2-acef-f56ebb4b59f2", "f5fc5314-440f-4731-9cce-6281e4b4137c"],
+                                  minimum_number_for_combination_purchase=3018,
+                                  minimum_number_of_amount=1008,
+                                  minimum_number_of_products=5776,
                                   applicable_time_ranges=[{
           "from": "12:00",
           "to": "23:59"
@@ -5715,22 +6658,6406 @@ def test_update_campaign_21(self):
           "from": "12:00",
           "to": "23:59"
         }],
-                                  applicable_shop_ids=["7872ece2-626e-48b9-a80c-0baeaffeb415", "8da393e4-bf8d-4758-9f39-cd4fe0b9a8c3"],
-                                  minimum_number_for_combination_purchase=4711,
-                                  exist_in_each_product_groups=True,
-                                  max_point_amount=6018,
-                                  max_total_point_amount=6105,
-                                  applicable_account_metadata={
-          "key": "sex",
-          "value": "male"
-        }
-        ))
-        self.assertNotEqual(response.status_code, 400)
-
-    def test_request_user_stats_0(self):
-        response = client.send(pp.RequestUserStats(
-                                  "2016-10-05T10:55:22.000000+09:00",
-                                  "2022-01-14T09:41:39.000000+09:00"
+                                  applicable_days_of_week=[3],
+                                  blacklisted_product_rules=[{
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }],
+                                  product_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }],
+                                  amount_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }],
+                                  subject="all",
+                                  is_exclusive=False,
+                                  point_expires_in_days=8100,
+                                  point_expires_at="2021-06-04T04:52:57.000000Z",
+                                  status="enabled",
+                                  description="1hdXCgyALhLsPZ4xEZBaL9gPoE5PnOxSYIBQUZMwQEKQp536z2WYA1sx132uYplZstFpjBFQy9bZmz7mGiFtXmRSje5",
+                                  bear_point_shop_id="3f1bb6fd-50be-4e9c-893d-33f71970322c"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_campaign_39(self):
+        response = client.send(pp.CreateCampaign(
+                                  "8HWWbXOMsyMVL1Y0FzVGqOKFoU3xJNKmuaDr4cMSAgHDAlLlP6Lo5yS1v7L6lCM4yrq4lI3mHyvfAo1Zkwkd2ADoyNq2PW9ePZH1V16DlcE5",
+                                  "658a58db-7f87-426d-9b7b-c772052f6809",
+                                  "2020-03-25T02:53:40.000000Z",
+                                  "2021-03-29T01:32:57.000000Z",
+                                  6829,
+                                  "payment",
+                                  blacklisted_shop_ids=["bd016883-1d0b-46d3-89f1-81c4d590b7d2", "b2ea13d1-31a2-4db8-ac0c-b33a63313531", "b5f3afbe-fbe6-492c-9fb3-3e6c95a8f538", "d6f4662e-ad48-4951-ab1e-a9516c7b7f75", "f839063d-84f6-4c6d-8b2d-df32c4f943d0", "b4d2a089-e281-43f4-ad1a-346bdefb0597", "f3561473-1ab2-425a-a325-d3d2d49cf3f0", "40f710ec-9f0c-418f-8169-953151286ceb", "d54aaa63-b410-4d59-8c03-74929dbd66d5", "f19dc8ba-bdea-4864-a3fb-381b59c00b15"],
+                                  exist_in_each_product_groups=False,
+                                  minimum_number_for_combination_purchase=9739,
+                                  minimum_number_of_amount=2880,
+                                  minimum_number_of_products=1484,
+                                  applicable_time_ranges=[{
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }],
+                                  applicable_days_of_week=[4, 3, 0, 6, 3, 4, 2],
+                                  blacklisted_product_rules=[{
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }],
+                                  product_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }],
+                                  amount_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }],
+                                  subject="all",
+                                  is_exclusive=True,
+                                  point_expires_in_days=2544,
+                                  point_expires_at="2020-07-03T01:29:23.000000Z",
+                                  status="enabled",
+                                  description="z7aBykLG1RzGMmx1hSkje9X0kmePd8GXi22Jw1idAxcQ9RQcA93jzkpVE1oN8GZytUXsp14vePeJl09h1SmSe7z9uXJe9aRBNGFiXbom9IOMRvPLFSPNSfRkv8Et2jCeNHdXqCXUrpWRIEnGneOjH6PTi68jf1Ll0O4t8yu2",
+                                  bear_point_shop_id="9a80ffd9-4aab-40d9-b360-3619d6d260bc"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_campaign_40(self):
+        response = client.send(pp.CreateCampaign(
+                                  "8HWWbXOMsyMVL1Y0FzVGqOKFoU3xJNKmuaDr4cMSAgHDAlLlP6Lo5yS1v7L6lCM4yrq4lI3mHyvfAo1Zkwkd2ADoyNq2PW9ePZH1V16DlcE5",
+                                  "658a58db-7f87-426d-9b7b-c772052f6809",
+                                  "2020-03-25T02:53:40.000000Z",
+                                  "2021-03-29T01:32:57.000000Z",
+                                  6829,
+                                  "payment",
+                                  blacklisted_shop_ids=["64d6b00b-cb1f-4f8b-8718-f26d3cf2fbe3", "16440ee2-c67b-455a-901d-8bd25bab6e16"],
+                                  max_point_amount=663,
+                                  exist_in_each_product_groups=True,
+                                  minimum_number_for_combination_purchase=1348,
+                                  minimum_number_of_amount=153,
+                                  minimum_number_of_products=7428,
+                                  applicable_time_ranges=[{
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }],
+                                  applicable_days_of_week=[5, 6, 4, 4, 3],
+                                  blacklisted_product_rules=[{
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }],
+                                  product_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }],
+                                  amount_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }],
+                                  subject="all",
+                                  is_exclusive=True,
+                                  point_expires_in_days=7196,
+                                  point_expires_at="2026-02-08T11:15:25.000000Z",
+                                  status="disabled",
+                                  description="foqHBJlao6arWtW2Kf2i4IAcwQjuFWx2kNI9qHm3gWQVGMbEKu4AfuwweTMrw4f2dzO7lqy4kEKJ1Q7c8C0SZpOWKljojyXNatscwZjWuBesyFuc4sWKFJnLD7m3pQpjDhF5ByJUZoKtqULctVH6JYk9cBHdXfv",
+                                  bear_point_shop_id="2955a6b4-295b-4bed-a0f8-1269fe9a968a"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_campaign_41(self):
+        response = client.send(pp.CreateCampaign(
+                                  "8HWWbXOMsyMVL1Y0FzVGqOKFoU3xJNKmuaDr4cMSAgHDAlLlP6Lo5yS1v7L6lCM4yrq4lI3mHyvfAo1Zkwkd2ADoyNq2PW9ePZH1V16DlcE5",
+                                  "658a58db-7f87-426d-9b7b-c772052f6809",
+                                  "2020-03-25T02:53:40.000000Z",
+                                  "2021-03-29T01:32:57.000000Z",
+                                  6829,
+                                  "payment",
+                                  blacklisted_shop_ids=["f3f64e79-21e2-4518-8e4c-ff53be2b48fa"],
+                                  max_total_point_amount=6869,
+                                  max_point_amount=9643,
+                                  exist_in_each_product_groups=False,
+                                  minimum_number_for_combination_purchase=2537,
+                                  minimum_number_of_amount=604,
+                                  minimum_number_of_products=7497,
+                                  applicable_time_ranges=[{
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }],
+                                  applicable_days_of_week=[1, 4, 5, 6, 4, 2, 3, 0],
+                                  blacklisted_product_rules=[{
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }],
+                                  product_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }],
+                                  amount_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }],
+                                  subject="all",
+                                  is_exclusive=False,
+                                  point_expires_in_days=1401,
+                                  point_expires_at="2021-03-29T18:17:58.000000Z",
+                                  status="disabled",
+                                  description="SGPvtC19a5RpyBdhfDtmpMgxIW5ljI6yfgW8zOoaul3ISoLlGYqCoXoGAustVKiyGKg6I2c4vjJ0uuFNk5xEatUCGYnUIhqAnDQImUocNLmlkEs",
+                                  bear_point_shop_id="495d82b1-d773-479c-9497-fd33f4e19324"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_campaign_42(self):
+        response = client.send(pp.CreateCampaign(
+                                  "8HWWbXOMsyMVL1Y0FzVGqOKFoU3xJNKmuaDr4cMSAgHDAlLlP6Lo5yS1v7L6lCM4yrq4lI3mHyvfAo1Zkwkd2ADoyNq2PW9ePZH1V16DlcE5",
+                                  "658a58db-7f87-426d-9b7b-c772052f6809",
+                                  "2020-03-25T02:53:40.000000Z",
+                                  "2021-03-29T01:32:57.000000Z",
+                                  6829,
+                                  "payment",
+                                  blacklisted_shop_ids=["6e405d82-5c7b-4e61-956a-ee86fcd3dd57", "57443c8a-56d5-471b-846b-d6e25201a256", "aaa5cee2-a8b9-4a34-bf95-94299c9ad5dd", "f85befbd-9813-4ba5-a403-60e839f52463", "9db25751-08ed-4a5f-908e-23a2e58f96bd", "9a0c2d23-5207-4225-946a-874125334a0b", "6d10949b-8d54-4969-a09b-703a5f2ab334"],
+                                  dest_private_money_id="862833c6-42f6-4f21-8fd4-ceaf6ecb05c2",
+                                  max_total_point_amount=5114,
+                                  max_point_amount=4383,
+                                  exist_in_each_product_groups=False,
+                                  minimum_number_for_combination_purchase=8051,
+                                  minimum_number_of_amount=5786,
+                                  minimum_number_of_products=6356,
+                                  applicable_time_ranges=[{
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }],
+                                  applicable_days_of_week=[2, 6, 5, 0, 1, 0, 1, 5, 5, 1],
+                                  blacklisted_product_rules=[{
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }],
+                                  product_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }],
+                                  amount_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }],
+                                  subject="money",
+                                  is_exclusive=False,
+                                  point_expires_in_days=6167,
+                                  point_expires_at="2022-11-18T20:07:33.000000Z",
+                                  status="disabled",
+                                  description="TX2x6llLqyqxLBzmQKSHklP2GNjfKFk3xSPN2EauZcekm4uUHwCvLyAybYYI1PTnYt6AX3ZMraJiLHRNzuStDZHp5MvhzfbMCo9qyaARxtZqgB5ft0k4jfS4r5kfrLJkZytv5gO2QqNTMBVQz08laq2biuqoxBaoCNpyYWsiSL",
+                                  bear_point_shop_id="97199765-92ba-49b8-9e28-445811ed51aa"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_campaign_43(self):
+        response = client.send(pp.CreateCampaign(
+                                  "8HWWbXOMsyMVL1Y0FzVGqOKFoU3xJNKmuaDr4cMSAgHDAlLlP6Lo5yS1v7L6lCM4yrq4lI3mHyvfAo1Zkwkd2ADoyNq2PW9ePZH1V16DlcE5",
+                                  "658a58db-7f87-426d-9b7b-c772052f6809",
+                                  "2020-03-25T02:53:40.000000Z",
+                                  "2021-03-29T01:32:57.000000Z",
+                                  6829,
+                                  "payment",
+                                  blacklisted_shop_ids=["666f307c-3c5a-4669-8cdb-155b77185b63", "d0cf7c7f-55c2-47b9-aaec-d88a2e4de9a9", "4537b4eb-f27e-4f75-8077-0fc0ee112e0f", "fbb7ca24-d5a4-4bd5-ad74-5d35d5b52114", "25a1c92c-0d67-4047-937e-14d8bceefe99", "0075e932-ca53-4e62-bc17-b50c69d801c2", "a0c9c212-d7db-4852-9350-dee05a542ba8", "7c020961-c4d9-4c8f-a557-bf3f11b47af9"],
+                                  applicable_account_metadata={
+          "key": "sex",
+          "value": "male"
+        },
+                                  dest_private_money_id="b6da086e-576d-46a8-a855-8bd179bb6adf",
+                                  max_total_point_amount=1596,
+                                  max_point_amount=2088,
+                                  exist_in_each_product_groups=True,
+                                  minimum_number_for_combination_purchase=657,
+                                  minimum_number_of_amount=1177,
+                                  minimum_number_of_products=8910,
+                                  applicable_time_ranges=[{
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }],
+                                  applicable_days_of_week=[2, 5, 6, 0, 1],
+                                  blacklisted_product_rules=[{
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }],
+                                  product_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }],
+                                  amount_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }],
+                                  subject="money",
+                                  is_exclusive=True,
+                                  point_expires_in_days=2083,
+                                  point_expires_at="2025-02-15T10:49:54.000000Z",
+                                  status="enabled",
+                                  description="PmuYOuy85eAINi4DCh9E1piomvY0y0iLigYmahsEfLajE38CSizXaYXCbSM5b6xxCi9aS7pUn8sHDE4F3kcf0hrQ4a3rPgThS8KkZCOZQxeSP2z9qxNvFrLUebeM3qu8knhRZPaevJazOcUuFHzOggogIb0heOl2hQPfOiPoRxRiCop5Q0A9gBKU",
+                                  bear_point_shop_id="d6c98010-d6ab-4f33-b3c5-bdac87edee8e"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_campaign_44(self):
+        response = client.send(pp.CreateCampaign(
+                                  "8HWWbXOMsyMVL1Y0FzVGqOKFoU3xJNKmuaDr4cMSAgHDAlLlP6Lo5yS1v7L6lCM4yrq4lI3mHyvfAo1Zkwkd2ADoyNq2PW9ePZH1V16DlcE5",
+                                  "658a58db-7f87-426d-9b7b-c772052f6809",
+                                  "2020-03-25T02:53:40.000000Z",
+                                  "2021-03-29T01:32:57.000000Z",
+                                  6829,
+                                  "payment",
+                                  blacklisted_shop_ids=["42138379-c085-4e12-be7c-47c746595694", "d8c7d207-1c9c-4155-b9d3-40e3db9de485", "cd9d3237-8b88-4995-945f-b15714173218", "c6635ff0-6fde-4868-a60c-93fc50f9ac27", "813bca55-1e19-48c3-86ae-3dbad93de7a8", "6228c73f-ac0e-4bd1-804f-570a2bba0a92", "12d931a7-c2ec-4ede-825f-e40e44dae595", "88f716e8-1c82-49ca-839d-9800071dad93", "156085ff-7ffa-4b53-8849-b92e6eb3a910"],
+                                  applicable_transaction_metadata={
+          "key": "rank",
+          "value": "bronze"
+        },
+                                  applicable_account_metadata={
+          "key": "sex",
+          "value": "male"
+        },
+                                  dest_private_money_id="c4339607-0c02-4775-b39d-524ce2313334",
+                                  max_total_point_amount=9734,
+                                  max_point_amount=7575,
+                                  exist_in_each_product_groups=False,
+                                  minimum_number_for_combination_purchase=1952,
+                                  minimum_number_of_amount=7985,
+                                  minimum_number_of_products=2692,
+                                  applicable_time_ranges=[{
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }],
+                                  applicable_days_of_week=[3, 2],
+                                  blacklisted_product_rules=[{
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }],
+                                  product_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }],
+                                  amount_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }],
+                                  subject="money",
+                                  is_exclusive=True,
+                                  point_expires_in_days=1057,
+                                  point_expires_at="2021-02-13T11:11:35.000000Z",
+                                  status="enabled",
+                                  description="nP4F0PUy8JyZq3ofPUU0rY2rRd10bnDEPKoSGRnM40Adb2lsHFBNfL0ieognilvSR4pMoCwkxpSpqKLDrvgRvBVvAYQP0NP5o8oIbQ6bcvTH9KRHlq0wqM01LRxPcYJN00R6J1knyJeLDqePaGS57qQUn9QotexnhecBro7jHBJHSTWFK0aJRYTfxgM2RajM6sQR",
+                                  bear_point_shop_id="3b6d4e2f-88e7-4d63-a516-7931c99e60ba"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_campaign_45(self):
+        response = client.send(pp.CreateCampaign(
+                                  "8HWWbXOMsyMVL1Y0FzVGqOKFoU3xJNKmuaDr4cMSAgHDAlLlP6Lo5yS1v7L6lCM4yrq4lI3mHyvfAo1Zkwkd2ADoyNq2PW9ePZH1V16DlcE5",
+                                  "658a58db-7f87-426d-9b7b-c772052f6809",
+                                  "2020-03-25T02:53:40.000000Z",
+                                  "2021-03-29T01:32:57.000000Z",
+                                  6829,
+                                  "payment",
+                                  blacklisted_shop_ids=["6827a1c5-ecf9-4298-9848-444d2eb3e358", "71a9edc2-8b9a-4999-972c-bf6a51fc4cb8", "5be83b26-d80d-4325-af74-4693279c11c5", "5d4e6e88-d6a3-49af-8196-7c63f6b9dd5e", "f399ffa1-7446-4eaa-b9b5-2f12618b356f", "af157eef-f058-4def-a517-8f02bea15958", "20581ffd-0375-487a-9d0e-930bb34e88fc"],
+                                  budget_caps_amount=123779949,
+                                  applicable_transaction_metadata={
+          "key": "rank",
+          "value": "bronze"
+        },
+                                  applicable_account_metadata={
+          "key": "sex",
+          "value": "male"
+        },
+                                  dest_private_money_id="88410b99-e9d2-463b-ad70-c69c22987843",
+                                  max_total_point_amount=225,
+                                  max_point_amount=8735,
+                                  exist_in_each_product_groups=True,
+                                  minimum_number_for_combination_purchase=3485,
+                                  minimum_number_of_amount=6024,
+                                  minimum_number_of_products=2146,
+                                  applicable_time_ranges=[{
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }],
+                                  applicable_days_of_week=[3, 5, 4, 6, 2, 4, 4],
+                                  blacklisted_product_rules=[{
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }],
+                                  product_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }],
+                                  amount_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }],
+                                  subject="money",
+                                  is_exclusive=False,
+                                  point_expires_in_days=8269,
+                                  point_expires_at="2023-05-23T17:08:23.000000Z",
+                                  status="enabled",
+                                  description="DCdNGv9QaNMmxX2S2fPh6fy135I5DGGggnvkdWrHaspAw5Vcp7CE78JSe44PvWgrDoffE",
+                                  bear_point_shop_id="0129a769-1d63-4838-9722-0a734ac9f979"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_get_campaign_0(self):
+        response = client.send(pp.GetCampaign(
+                                  "4218c340-02f6-4178-90d8-d055dbd36808"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_campaign_0(self):
+        response = client.send(pp.UpdateCampaign(
+                                  "0f873a24-95a4-4106-85ee-0e962fbf9269",
+                                  applicable_shop_ids=["2584f66f-5c4d-4dbb-b8a6-8127142cbb51", "6c4c0892-d1a3-4ea5-889e-7294173d8d84", "a68cf09d-5ac1-47b7-acd7-523ab380ea0a"]
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_campaign_1(self):
+        response = client.send(pp.UpdateCampaign(
+                                  "0f873a24-95a4-4106-85ee-0e962fbf9269",
+                                  applicable_shop_ids=["1f21a135-25c7-4e3b-8c48-fc21ee8edff1", "d074898a-e3bd-499f-8be0-b0c9e8a58d10", "7db208d4-71ea-4730-95ba-cc10173d02be", "290cd967-444a-4977-b8ed-6d66e43d952b", "e5454861-b41f-4ac6-9430-549009b671ad", "66a6e1e7-d0df-49c7-ba9d-700a5e535f66", "c84d4b0f-b1fe-4d67-8eec-6e97ab3be6c7", "e5e31836-d29d-4285-8c5b-1fb7617dda60", "5ea45d27-ada4-4c2c-98cf-74e66d75c423", "5bedf882-3224-4f47-a9b8-3f381aeabc0f"],
+                                  name="7nNv1eh26ZZWkeJQym7n7CGmjd25iFSdny2rQSPU5tCjVy8COfDZrZRHs0hjVGtY7fDHExM6iUcBW9LDUejJe4laTFkcJAyP9v3lR5fJ1SCFuFJVqCc62CsLVYKPyOwySSjaFxy0"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_campaign_2(self):
+        response = client.send(pp.UpdateCampaign(
+                                  "0f873a24-95a4-4106-85ee-0e962fbf9269",
+                                  applicable_shop_ids=["b42a6849-3a47-4ec3-9826-4eed46ff8b7a"],
+                                  starts_at="2023-06-28T11:59:58.000000Z",
+                                  name="sObY8JjUm176PqMxSejYJwKQkQhcSsOlDNZZsSWHBkBrsiXhCnZzamORmWcssL2FF3HAzhtt18u7MooUueVWo8T9dRNvfu3qkwBDNVzugQpgEVipsMl1opS6XVL1U8vfTPgZQoGXLb8hT5vzbbFysLVW03Q8sgkwbt"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_campaign_3(self):
+        response = client.send(pp.UpdateCampaign(
+                                  "0f873a24-95a4-4106-85ee-0e962fbf9269",
+                                  applicable_shop_ids=["9e788fba-4d62-4cf9-8716-f4bc3a07c728", "7abc6e63-e3e4-4806-ad49-0161b329e2b6", "83566c2c-9512-4ebc-b3dc-c4aad63cdf21", "8da70d32-f809-4613-964f-b1adef2168de", "6caa5882-3cff-4c69-93b4-a9296306ba34", "62a4f097-735e-4dc0-bcb8-efabfcb939fa", "58b09959-d311-41a7-8ed9-107e92189175", "eb1851d3-62e5-4cf2-9667-8d74cc94ed35"],
+                                  ends_at="2021-10-24T15:21:20.000000Z",
+                                  starts_at="2024-11-05T08:48:31.000000Z",
+                                  name="ThqkxWuN4OkYmUnkAFHrW518DEhvGfJFhBLPIWgGXu2FRRBCtapsc2OJEtIYHTkPMCnHWRhGK3T2O4zTKZrpJNYtglnu99Onqaf5iTxaKHt4HXxpMz5eg3TFJnOMXlccrSM4NeRkShSKYn"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_campaign_4(self):
+        response = client.send(pp.UpdateCampaign(
+                                  "0f873a24-95a4-4106-85ee-0e962fbf9269",
+                                  applicable_shop_ids=["67404ef2-f912-4f2e-95af-f638107d6028", "24aa0e4a-2c4a-418a-b67d-6e720d45daf1", "01768988-a64a-41b5-b824-6875b4d403fc", "be6c2fcb-ddfe-4dd7-ae1a-de68c53aa7a0", "4b90476a-6604-4398-8ac5-860c9fa9ccd6", "bf1fb003-6617-41a0-a612-8e67dde1bd01", "d8eb2204-bc34-49eb-ad19-4a22a9f7bb25", "18e0142d-b827-455f-9bfc-436dde7ff68d", "7e55b73d-633e-412e-a79b-38032533cbac"],
+                                  priority=3143,
+                                  ends_at="2022-12-09T04:37:06.000000Z",
+                                  starts_at="2022-08-18T20:57:23.000000Z",
+                                  name="fEZnBlmzkrtoyKm38BDyuj1U15iB0VVURHNCTB"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_campaign_5(self):
+        response = client.send(pp.UpdateCampaign(
+                                  "0f873a24-95a4-4106-85ee-0e962fbf9269",
+                                  applicable_shop_ids=["1a803053-3bfd-4b12-adeb-0a8b45acb0f6", "e1ef4e5b-98c3-4141-aa7d-dc9806f8574a", "3d677403-3855-4052-9182-f52ebfd6c230", "5bc8c0f8-aa63-4404-8e3b-a6fde5a8cf99", "5ff1b2b8-f70f-44ae-b6b3-d492c66406d8", "7402eac7-2d7f-4eef-b8bb-0ece2b8f2baa"],
+                                  event="topup",
+                                  priority=406,
+                                  ends_at="2026-06-17T19:31:43.000000Z",
+                                  starts_at="2020-08-03T20:26:01.000000Z",
+                                  name="zQF26RRnLKM2vajHzuhk8mM7y90MUBMqpZFx6CyPOvMtoUIDYTTb9YLUK2ZY6omFZc6"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_campaign_6(self):
+        response = client.send(pp.UpdateCampaign(
+                                  "0f873a24-95a4-4106-85ee-0e962fbf9269",
+                                  applicable_shop_ids=["fac048b5-4015-4a6c-810c-613d43d5ffe9", "0fc20be1-fbfc-46c8-b76b-bfc0c08503f3", "f3439114-b0f4-419a-a81b-5a92c210b4ac", "5599041c-8971-4d1d-bbb2-d7f11dce588a"],
+                                  description="t1fISbJLQ2IGy7A4O5EuFDi3ep7E8KTwqzGZlqsrJTtHeL1jl3TaroJ97KS7PIYmqHtFEvZxOLgNEFPzTNAeMR2CvVgTRCY2rEPprVjpNeaYJXDFnN5l443TmOvQLPfQxkSjhKrHXePF1aNsQcGEPe2hgvk3yuDeTC8XzX",
+                                  event="external-transaction",
+                                  priority=7742,
+                                  ends_at="2024-10-13T00:26:20.000000Z",
+                                  starts_at="2022-07-29T00:40:47.000000Z",
+                                  name="9jncya31KgghsgYe3TbLJN21a8hZtm5so8Mz8sE9uDmHdcukVhdalQqRPyTvG2tPeRbQcNODGa3IhebkRxi8kuGoSk8mmCPAG5TaOSJrFwT6IMSTQQD3aZSLuV5KvsCMKR5EbTWV4WWsRyRXgRYVg4CY"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_campaign_7(self):
+        response = client.send(pp.UpdateCampaign(
+                                  "0f873a24-95a4-4106-85ee-0e962fbf9269",
+                                  applicable_shop_ids=["5706f07a-b853-4d03-8ac2-4b5784118e94", "605371b4-97f3-428e-9e74-54ebc6e0fedb", "7ca7a66f-93bf-4e5c-9063-3ca76aab6b17", "0afb24b7-0455-4003-8058-0a527b843aa8", "1fde0a79-eaa2-4f52-a9ac-7f568209bcb8", "52c2ad15-e650-432f-aadc-e61633691c03"],
+                                  status="disabled",
+                                  description="ax53IDmwuQOCWjbIPmFGWkh7DMCSqp4SWi3zPKlO0ubMaaWt2sfRwBothNvTY3vFr4ELRXyBW70oqJ1JP1EYwzYF5YE8jQgUzmyBkd9RsSiJlXzLN5312aQsa3khCQuI0KxC45PIb",
+                                  event="external-transaction",
+                                  priority=8492,
+                                  ends_at="2024-09-24T22:37:32.000000Z",
+                                  starts_at="2021-05-16T04:08:36.000000Z",
+                                  name="Qsr0pTvhXVGg9hnQ"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_campaign_8(self):
+        response = client.send(pp.UpdateCampaign(
+                                  "0f873a24-95a4-4106-85ee-0e962fbf9269",
+                                  applicable_shop_ids=["1024e879-739a-4b9b-a597-4a6ea20f8a7a", "e8ae48f5-aa7f-43f7-b2cf-fc13dc8fdeb3", "63c0ef67-230c-4698-a647-ebdb1c86f151", "ec1a2c95-631c-400f-ad47-d065614d6630", "492c9f39-a7af-4765-8fd8-7becc987ac4b", "3eae16f4-97d0-4111-a771-79d3a68741c1"],
+                                  point_expires_at="2022-11-14T02:08:48.000000Z",
+                                  status="disabled",
+                                  description="aGz46vIiA4hbe1yI3CGp5lj6m5fgOCupwcIPxBzhbkfELKrUPd9GpW6Q92PXWpLmGFM1PrngLs4Zq6rjFKNHUPj8OaHLD3inc4333SWlp4s7jMjS5PtJzYsdA5qhl1QGqEwjgkrGn0uAn0iqI2b5rxtzGOZhKJMKwz",
+                                  event="external-transaction",
+                                  priority=345,
+                                  ends_at="2023-11-05T00:40:19.000000Z",
+                                  starts_at="2020-08-17T01:20:34.000000Z",
+                                  name="zTdo6bpAqcWNJrNTsv2Llex1ejGQ2ugzGxu81Sx50Yf2M71M8zENOSGlzUlDTz33P2r"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_campaign_9(self):
+        response = client.send(pp.UpdateCampaign(
+                                  "0f873a24-95a4-4106-85ee-0e962fbf9269",
+                                  applicable_shop_ids=["9b3a7734-eafb-4959-88e3-cc2e7fef0541", "aa7c3e87-3bca-454b-bc57-99c839d90ac3"],
+                                  point_expires_in_days=8357,
+                                  point_expires_at="2022-02-12T01:20:38.000000Z",
+                                  status="disabled",
+                                  description="oIN1lhxfCtQoWt3KCnkWzy38cC0E7gsSEITDei3yOkB642y5M6ZGKLNmOSXPLkVgGHidiNxSMbU65iFGAAyuGpPep5MlLDDmy5H5WNxLWXFOkEFZiHMkNkDC4XjAgnNgPyTasq1IFexxHoOsY3XmfSCMMI0hPIOcfptkBjffHuYKUEJ4zr",
+                                  event="external-transaction",
+                                  priority=3295,
+                                  ends_at="2020-09-13T21:12:42.000000Z",
+                                  starts_at="2024-09-24T08:52:45.000000Z",
+                                  name="epcLNjePvmbsJ6aAodX3l"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_campaign_10(self):
+        response = client.send(pp.UpdateCampaign(
+                                  "0f873a24-95a4-4106-85ee-0e962fbf9269",
+                                  applicable_shop_ids=["3c8dff06-c953-4f1a-ba65-242c07425454", "6eb63f7c-508c-485f-a695-b87e9fd6d206", "75d3bfd8-cbf5-4755-aae8-c187bc6ce881", "45eecf72-9bfa-4af9-915e-dacb129e098a"],
+                                  is_exclusive=True,
+                                  point_expires_in_days=2895,
+                                  point_expires_at="2023-02-08T06:17:35.000000Z",
+                                  status="enabled",
+                                  description="IpvZDbUGNbf92zGejiy7b3srgm7LVnhxTyAZfZDkQ2r",
+                                  event="external-transaction",
+                                  priority=8696,
+                                  ends_at="2024-10-26T07:48:40.000000Z",
+                                  starts_at="2023-03-14T00:53:09.000000Z",
+                                  name="IalmcupP8PaFubqXmo0h47ayHi8sXxsnC42wCpyAiBnUBLAV97YftKTMpHhWMUK3SCmPb9BXoLZ7wKHtX23HwTLkUG7zxtQPL0ebUOhv3B3t2DzpE8reI7vFyo7eM4dNHW2"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_campaign_11(self):
+        response = client.send(pp.UpdateCampaign(
+                                  "0f873a24-95a4-4106-85ee-0e962fbf9269",
+                                  applicable_shop_ids=["a8fbf4ee-e8fe-42a1-86cb-3aca5a8788bd", "b5f55359-36bf-4c44-b61d-6f7ac526a7cd", "bc02d5b0-1726-40b0-95b4-63d15775b1e0", "b8209327-8cd3-48d9-a46b-ae7bf7aa4de5", "26e6a663-1fba-47a0-af02-0d7f27e50dc6", "f8c1cd4a-3efa-4b80-87f2-6c333f12861f"],
+                                  subject="all",
+                                  is_exclusive=True,
+                                  point_expires_in_days=7676,
+                                  point_expires_at="2026-05-09T21:29:07.000000Z",
+                                  status="enabled",
+                                  description="rOZ5f3RQvkhtySJKYRUQ3NzIgBoxko0Q38viglT3j7uK9FEO8wpTMbUo34OhjcbIFy00bHfPtADraHJBywFUVQhJIvCWpCXLp2gUnx8oHUCw9IDU8v5tebk72bnq5V1PYuyQsrCeZvlknHwyCYeoTGD6IVelM1xkQHIURZ",
+                                  event="payment",
+                                  priority=4310,
+                                  ends_at="2025-11-04T12:06:31.000000Z",
+                                  starts_at="2023-10-20T07:41:00.000000Z",
+                                  name="9E4BcH9vh8Qcd9Qr1jGxJh75seT2MlMasdJCSgZ4nn16A0"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_campaign_12(self):
+        response = client.send(pp.UpdateCampaign(
+                                  "0f873a24-95a4-4106-85ee-0e962fbf9269",
+                                  applicable_shop_ids=["1cbd3b9f-0b38-46c8-bd4d-9fdb6cc0c8f5", "17dc602f-35fd-4087-ba2f-8ed2d5ac9d2d", "0d4b600c-42cb-4056-9eea-9defe6d045d9"],
+                                  amount_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }],
+                                  subject="money",
+                                  is_exclusive=False,
+                                  point_expires_in_days=4920,
+                                  point_expires_at="2022-01-23T03:46:51.000000Z",
+                                  status="enabled",
+                                  description="ExdEHTNDtgEpdMlXJAKinvVKW5jNBic0lbP5i9pPDb3qItRRs3FY6lAlrydgPmYNQmdCCSHSb7PeqbGNNyGMxdwCiRwJpoUBZS7wM2sjFT",
+                                  event="payment",
+                                  priority=1546,
+                                  ends_at="2026-04-17T00:35:09.000000Z",
+                                  starts_at="2023-03-15T01:34:05.000000Z",
+                                  name="Pr6H3Lr"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_campaign_13(self):
+        response = client.send(pp.UpdateCampaign(
+                                  "0f873a24-95a4-4106-85ee-0e962fbf9269",
+                                  applicable_shop_ids=["9f1dd456-38dd-43f1-879f-047cdabebd61", "da00118b-bb89-4164-a9a7-14b7f95672c9", "62c80721-a685-450a-b453-9e632f8bd420", "5465970d-d322-42ff-b46f-4f5537b8e1be", "292ce5a0-d803-4e64-ace9-9509604c869f", "80e5d339-ed84-4c1f-8559-59a9ea0d9a70"],
+                                  product_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }],
+                                  amount_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }],
+                                  subject="all",
+                                  is_exclusive=False,
+                                  point_expires_in_days=4892,
+                                  point_expires_at="2026-01-11T22:10:34.000000Z",
+                                  status="enabled",
+                                  description="4d1DUqCUDmWqMmM9IYmurAkMd4wDsA",
+                                  event="topup",
+                                  priority=5019,
+                                  ends_at="2025-02-15T11:38:55.000000Z",
+                                  starts_at="2021-11-15T23:18:56.000000Z",
+                                  name="01hvmpIXnG4Vdq7gNAtqrq"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_campaign_14(self):
+        response = client.send(pp.UpdateCampaign(
+                                  "0f873a24-95a4-4106-85ee-0e962fbf9269",
+                                  applicable_shop_ids=["6584dba9-c275-4acb-914e-d851b80fb348", "cb9085b3-3e18-4b50-8715-6a44efdd8e8d", "c932cee3-a052-4b77-bb7c-1555c7a455c3", "51b13f07-d4e5-448f-bd63-2f983395c410", "7fe01553-e606-4642-aaa7-562dca7db54f", "e3315b09-f550-4ddd-a15e-b3f2569836d9", "cecec57c-1655-45e6-8118-bfdb1b3702d4"],
+                                  blacklisted_product_rules=[{
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }],
+                                  product_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }],
+                                  amount_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }],
+                                  subject="money",
+                                  is_exclusive=True,
+                                  point_expires_in_days=5100,
+                                  point_expires_at="2022-07-28T22:11:36.000000Z",
+                                  status="enabled",
+                                  description="xUEwT3M91XjHrTG7fMCl81IJPQuSHXTmEReE1YV9ebnUBpzD7d9DsGnOvPtZOQ7wRQgMzlEQYhb78oA0LE9nGzsoBIqSCZEncCQxjIhrUeBMFsGSoFMs14cvovqZ6GQ",
+                                  event="external-transaction",
+                                  priority=7643,
+                                  ends_at="2026-04-08T00:06:08.000000Z",
+                                  starts_at="2020-02-17T16:35:47.000000Z",
+                                  name="kL1iWim0Xpy9XRR4FHqayBd9Y6naDnCaj1IshUK5sOcLMoSdluvLDw0rIOalhSCHrt5J1YKxmhpIQaAHuF1XqBsQEc2YHzb0v51JNexx20BlobdlTY6n3LbK6"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_campaign_15(self):
+        response = client.send(pp.UpdateCampaign(
+                                  "0f873a24-95a4-4106-85ee-0e962fbf9269",
+                                  applicable_shop_ids=["d8acc875-6034-491f-9ebe-296d358b73b4", "c412cff2-c5e8-4245-b750-321c72bfd421", "3d6914eb-e394-43ff-9e5d-2c45acb745c0", "4febd7fa-dd2d-47a1-99a3-b8aeafeede15", "407b0f50-107e-4dfe-997e-33d648dd2fd8", "e42c6e66-2f7a-4df7-b4ac-3beafb4fb624", "19a45378-40c9-43b8-a908-f7287951e982"],
+                                  applicable_days_of_week=[2],
+                                  blacklisted_product_rules=[{
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }],
+                                  product_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }],
+                                  amount_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }],
+                                  subject="money",
+                                  is_exclusive=False,
+                                  point_expires_in_days=9806,
+                                  point_expires_at="2024-09-14T04:09:41.000000Z",
+                                  status="disabled",
+                                  description="sLKbKLcaV6nH18WcZidvZ55mAgOE16AnmYbzCLHYWconVaiJFwoOHJhs1D1kk2Z65xpUZ28FCmVx3QLXn5K0ujHfTEebumDwnUvtT",
+                                  event="payment",
+                                  priority=6318,
+                                  ends_at="2021-07-25T05:18:32.000000Z",
+                                  starts_at="2020-02-25T23:27:01.000000Z",
+                                  name="P6w3jvuc6WVynWZlMwTGtLKHNv0GHMA8YNVctqn0HylBEaWFtKmGqTMRGGhLK4md8CvDRXJmyMUq3nONdNUldEzZzYqTFGHLldYwHPZ5GyoYYcgPPK3Dchqik562nQJ7JN9nEMDfH9ZULXMKOjFu2fGiShoySflnRPKvTH4Qb4HK1DE5zp"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_campaign_16(self):
+        response = client.send(pp.UpdateCampaign(
+                                  "0f873a24-95a4-4106-85ee-0e962fbf9269",
+                                  applicable_shop_ids=["b334d0c8-a8e9-4a70-a674-6393220bd653"],
+                                  applicable_time_ranges=[{
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }],
+                                  applicable_days_of_week=[4, 5, 5, 5, 1, 0, 1, 2, 0],
+                                  blacklisted_product_rules=[{
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }],
+                                  product_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }],
+                                  amount_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }],
+                                  subject="all",
+                                  is_exclusive=False,
+                                  point_expires_in_days=4738,
+                                  point_expires_at="2024-09-06T07:09:37.000000Z",
+                                  status="disabled",
+                                  description="7nrik73QyiaNKms0iFYGrWxxlKwOlCibtq2e0nqtXLNITG9Gffmmox8hwq",
+                                  event="topup",
+                                  priority=5685,
+                                  ends_at="2024-01-23T08:06:54.000000Z",
+                                  starts_at="2024-09-18T08:29:44.000000Z",
+                                  name="fQZGPMXFo6oIvZGxUJAAeHeUyg78eCpqwfbVaGI8MUg6pkTJeF4LA5VGWmlO55tLRhXfPthFrTbvP80JDs4TLAvvWwguBec41EmwzzFrgc709a7P9KtTHr3zG8NnPjRfIRrqy3FohrRiHbftN77E9sKP2LWTHQkvbYQTkmfSmGSFmTTeLGAy7h6m"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_campaign_17(self):
+        response = client.send(pp.UpdateCampaign(
+                                  "0f873a24-95a4-4106-85ee-0e962fbf9269",
+                                  applicable_shop_ids=["c27ba719-2108-42ae-acd9-0479137af38b"],
+                                  minimum_number_of_products=1319,
+                                  applicable_time_ranges=[{
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }],
+                                  applicable_days_of_week=[5, 3, 6, 5, 0],
+                                  blacklisted_product_rules=[{
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }],
+                                  product_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }],
+                                  amount_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }],
+                                  subject="money",
+                                  is_exclusive=True,
+                                  point_expires_in_days=1940,
+                                  point_expires_at="2025-03-02T18:34:23.000000Z",
+                                  status="enabled",
+                                  description="7EVH4f0IDf80jI5hMMqGagepFcb0C3pMehBLw9uhZslxpk65zsLMOaWLvqiZt",
+                                  event="payment",
+                                  priority=3451,
+                                  ends_at="2025-05-04T11:58:52.000000Z",
+                                  starts_at="2025-10-03T09:45:34.000000Z",
+                                  name="Zp232IvDDPPtMusem1WSPOdAkWLCHhP7q7jyjEo8V3Di9DtzhzAGKUtsDdhPal5eEvQkTNVI1DbDv2ICSa1fLqeRzwnNnU8Hy7seU6TPp7YTcvCbmuWQvyjmdKhWFzroFJfg0zCih9qHu842U5SnXNqipKVsIIUjVYx3ZiMVPZEq0xgguEtAXJ"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_campaign_18(self):
+        response = client.send(pp.UpdateCampaign(
+                                  "0f873a24-95a4-4106-85ee-0e962fbf9269",
+                                  applicable_shop_ids=["2c3363d7-e46f-48fa-a6a7-d15560071621", "7912bd07-bac7-4bef-b193-64ef33fbb956", "46b9a081-62d2-443a-81a2-b7b18ea3b850", "3879bc3a-35d6-4e32-8cca-0026741621a0", "ec7be044-a423-4e96-b53e-f9d35541d022", "ed2e936a-80fa-4155-8276-c1e011418cd3", "a61a2db2-1edf-41ca-af0a-f5a8ffb033ec"],
+                                  minimum_number_of_amount=8887,
+                                  minimum_number_of_products=424,
+                                  applicable_time_ranges=[{
+          "from": "12:00",
+          "to": "23:59"
+        }],
+                                  applicable_days_of_week=[1, 4, 3, 2, 2, 5, 5, 0, 1],
+                                  blacklisted_product_rules=[{
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }],
+                                  product_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }],
+                                  amount_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }],
+                                  subject="all",
+                                  is_exclusive=True,
+                                  point_expires_in_days=3483,
+                                  point_expires_at="2020-09-05T19:14:54.000000Z",
+                                  status="enabled",
+                                  description="Re6ex8zQnoMXPxIs0d6X24reGHeQvAPqGMsA1rgfPu4olvC1KDDE1G2mGU9YeDH5Tysjz5v4HW6eqkSknjWS4aW80Xp5YCo9TXEMx6Q3N4lydCpBzThmgOIjIatpE7508LaYMNkxpSQqkfWLu8WbqqwjfwNPVeBo88egFulBO0tWJ9",
+                                  event="payment",
+                                  priority=4703,
+                                  ends_at="2023-09-04T06:29:07.000000Z",
+                                  starts_at="2022-06-24T15:54:29.000000Z",
+                                  name="2C590AS7UiB0DiDGREmImyJDbbC2wEGBfcAGc0EsTxqnb80BRFYcLTC4xCABLekowD1pN0MSUSSu62wEl3iPUkIv4a2NsBAg7OoWmbOWXvcqkH6OCG8bjnFs6Wxag"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_campaign_19(self):
+        response = client.send(pp.UpdateCampaign(
+                                  "0f873a24-95a4-4106-85ee-0e962fbf9269",
+                                  applicable_shop_ids=["0a6d4740-e76b-4406-968c-30d47806258b", "31f13282-4659-4fcc-85da-f1748eaf616a", "58808f90-8ef1-460f-a02e-384186b325b6", "0a758ae2-fd6c-4c95-9e43-a0ceb14e4e2d", "2114fb2b-fc58-488d-8317-d7aa3039c402", "d9e90e2c-1178-4689-8c42-5624c347c9b2", "5bd55ca9-bc33-4c4e-8b02-3e86c59f9b44", "bbba38ad-d2fc-4e19-b625-35170c206705"],
+                                  minimum_number_for_combination_purchase=6073,
+                                  minimum_number_of_amount=7932,
+                                  minimum_number_of_products=9283,
+                                  applicable_time_ranges=[{
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }],
+                                  applicable_days_of_week=[0, 3, 4, 6, 2, 3, 1, 5, 2, 5],
+                                  blacklisted_product_rules=[{
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }],
+                                  product_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }],
+                                  amount_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }],
+                                  subject="all",
+                                  is_exclusive=True,
+                                  point_expires_in_days=5100,
+                                  point_expires_at="2021-08-21T05:42:54.000000Z",
+                                  status="enabled",
+                                  description="611LhXRF1WjDXemYssWVQAa",
+                                  event="topup",
+                                  priority=2011,
+                                  ends_at="2025-09-08T20:50:08.000000Z",
+                                  starts_at="2020-06-16T23:34:44.000000Z",
+                                  name="9OWEqIPoWhsZ81p0D8THD4dpuhxNvhxjPfdLCMpGSOhV764tKT9oHgjnPne51YZOU0zGq4PpZBc0rJPOstD7C9IM7suB5w40dZFTsuKZGsFElmQpA4RSTaTlLaqlkU49OXmcM1eYLCIvDzYzwAtEksQWSl6Am3gCBrhM35EfmrtOFWMml5EKRiDsWg9ZcujQMFmb4vZ2HzNm8wdK6sB9"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_campaign_20(self):
+        response = client.send(pp.UpdateCampaign(
+                                  "0f873a24-95a4-4106-85ee-0e962fbf9269",
+                                  applicable_shop_ids=["fe85a073-55f5-4f1e-9e43-046cc6ae3694", "74dbb40c-5ce1-4404-8bf8-b4b376f70cde", "a1da8ac1-43e6-42fa-9b04-af56654e3411", "a4a3ba61-1914-45b9-ac7f-0f623260c5ef", "5b28ab51-0424-46f3-be4e-199923f5610b", "3cd4b080-589e-4892-8442-882ccb5a5ec8", "2aaef131-5ffe-4cf5-baa6-7d5b422913cb", "fd7226cd-ee15-4502-b1dc-4f2281ff275d", "bedcd4ec-595c-4945-a346-682c12435239"],
+                                  exist_in_each_product_groups=False,
+                                  minimum_number_for_combination_purchase=4884,
+                                  minimum_number_of_amount=9781,
+                                  minimum_number_of_products=8957,
+                                  applicable_time_ranges=[{
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }],
+                                  applicable_days_of_week=[4, 1, 5, 0, 6, 6, 3, 0, 3],
+                                  blacklisted_product_rules=[{
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }],
+                                  product_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }],
+                                  amount_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }],
+                                  subject="all",
+                                  is_exclusive=True,
+                                  point_expires_in_days=2099,
+                                  point_expires_at="2022-08-22T11:32:04.000000Z",
+                                  status="disabled",
+                                  description="ZM2ZH2d8EggWOOiiO67HWQCePWkLnY7y5P2vTc2kTDF85U9g31HpRLtjhMxgRT9FEddBtVan5HyW6Uan9MoYMbeeBKUXDDy014vqgIch5W6XuTL0vlIdvdIMbz7wUi6BX",
+                                  event="payment",
+                                  priority=5674,
+                                  ends_at="2022-12-17T21:38:55.000000Z",
+                                  starts_at="2023-07-03T03:04:43.000000Z",
+                                  name="l0tR07369wBiPR32MXZafz3jffpT8lgGERnFdcWhSdaJfJ60D0H2T0aKhnL3FlnAD82QrpYaKuslNraOesyAiawWiyWkSV3bs4OkWhHFx3P67yxFmxWAZtUSoiVrIFnb7w6ZClkoqVajvuG5cGcBP5wA9GwSB8bfxMId7hFKERGvYa7vbD1cIywVpXocQ5N98CAVKuKRC5FLAIRiGKuI8C"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_campaign_21(self):
+        response = client.send(pp.UpdateCampaign(
+                                  "0f873a24-95a4-4106-85ee-0e962fbf9269",
+                                  applicable_shop_ids=["6aca3b4e-2822-420e-82d4-e2fde824472d", "5e1fbff1-0396-404c-835a-dd20fd2cd2b9", "6429ad39-fa41-4827-aad6-2162e51ded4b", "93931d29-63b3-47fc-ac33-315cea8d64b1", "f2a8644e-761e-4b65-81c9-cda5e399111a"],
+                                  max_point_amount=2244,
+                                  exist_in_each_product_groups=False,
+                                  minimum_number_for_combination_purchase=4139,
+                                  minimum_number_of_amount=5952,
+                                  minimum_number_of_products=5597,
+                                  applicable_time_ranges=[{
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }],
+                                  applicable_days_of_week=[3, 5],
+                                  blacklisted_product_rules=[{
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }],
+                                  product_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }],
+                                  amount_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }],
+                                  subject="money",
+                                  is_exclusive=False,
+                                  point_expires_in_days=9803,
+                                  point_expires_at="2026-06-05T20:06:26.000000Z",
+                                  status="disabled",
+                                  description="H5I2jNmYRtpCMs9TezTj3A085y5hWQ3gdeDOWFExGORRYNLJd",
+                                  event="topup",
+                                  priority=90,
+                                  ends_at="2021-03-03T13:20:54.000000Z",
+                                  starts_at="2022-08-24T01:54:08.000000Z",
+                                  name="3IGoF44i0499bTqwmusaHN4dAo0kcMwrj6lsuth9pSzmqVAxW3BZh2UFG0NdobuyCqKAyF8XBloHn7nUM7l934bPMQ7DIwFMXGuPCrmdUDxKggD"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_campaign_22(self):
+        response = client.send(pp.UpdateCampaign(
+                                  "0f873a24-95a4-4106-85ee-0e962fbf9269",
+                                  applicable_shop_ids=["4dc02195-8aa5-46a5-8fe6-87c61484318d", "02521795-5f91-47f6-8f4a-03894133556b", "4249c278-bc68-47ff-965c-d2a601484eaf", "c43b8f25-949b-4a63-b849-72508ab04c8e", "64a5ae9a-25e0-4b76-af1c-3dab93cdad7c", "6d7e2ef4-e99d-41d1-8496-25b408d44487", "4f1c27bc-6851-4c78-bca1-b44e472755ed"],
+                                  max_total_point_amount=6839,
+                                  max_point_amount=9243,
+                                  exist_in_each_product_groups=True,
+                                  minimum_number_for_combination_purchase=2582,
+                                  minimum_number_of_amount=1992,
+                                  minimum_number_of_products=2294,
+                                  applicable_time_ranges=[{
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }],
+                                  applicable_days_of_week=[3, 2, 6, 2, 4, 5, 6, 3, 5, 3],
+                                  blacklisted_product_rules=[{
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }],
+                                  product_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }],
+                                  amount_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }],
+                                  subject="money",
+                                  is_exclusive=False,
+                                  point_expires_in_days=4943,
+                                  point_expires_at="2021-07-25T03:47:50.000000Z",
+                                  status="disabled",
+                                  description="vQpElqxJKgN",
+                                  event="payment",
+                                  priority=5694,
+                                  ends_at="2021-09-12T12:40:47.000000Z",
+                                  starts_at="2022-12-11T22:48:45.000000Z",
+                                  name="eXS2rUoCJ5iHqorIswPc2cBsLEwskU0m8hSr1melepO9LnwIsUcSmvb4GOUqCz9cGDIhlPt52zP7YS2DWusWLcKpd2P335Nv6jpCTg7cImjgcPmkAEumRe3ajMg8VGC0KZL7VMaMEGv2NsNRGCHkqW6b190Xf2yHeAyBqIIySMiYLD3kq3Znz8pepfEmpSiLZTFdERWScAwFtubDUWmymMiDwFFfcNNLAfTp6G3m2S11HDiNC2T6Z1NRFWi9xNJq"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_campaign_23(self):
+        response = client.send(pp.UpdateCampaign(
+                                  "0f873a24-95a4-4106-85ee-0e962fbf9269",
+                                  applicable_shop_ids=["67737b29-b276-4490-b5dd-0854952d290e", "e8f9dc89-e083-4c03-abc7-61342f6f8baf", "eca46d5d-f971-4921-ad93-ef8876dbd528", "92f3571e-4394-4f41-88be-eeda52f10c03", "4835c164-1dae-469f-b36f-8b1e3cc45362", "fd62c1ab-b53c-4ea9-a233-5223c7708931", "e338b8d2-f595-46a2-af17-92c7d371b12a", "79c73317-5e1e-46c6-9563-a22c04cb6b0d", "de7ed209-61d4-4b15-aa43-59fd71c798c8"],
+                                  applicable_account_metadata={
+          "key": "sex",
+          "value": "male"
+        },
+                                  max_total_point_amount=74,
+                                  max_point_amount=9113,
+                                  exist_in_each_product_groups=True,
+                                  minimum_number_for_combination_purchase=902,
+                                  minimum_number_of_amount=5373,
+                                  minimum_number_of_products=1900,
+                                  applicable_time_ranges=[{
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }],
+                                  applicable_days_of_week=[5, 5, 3, 3, 3, 4],
+                                  blacklisted_product_rules=[{
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }],
+                                  product_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }],
+                                  amount_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }],
+                                  subject="money",
+                                  is_exclusive=True,
+                                  point_expires_in_days=231,
+                                  point_expires_at="2023-10-28T10:53:23.000000Z",
+                                  status="disabled",
+                                  description="7IyYBfSv2V1UV4oPfCtFaYiWkYeLppJ33CkMXXFMJbGPqbgq29Gzz59vVOvin5VZAtZIBDPoHNl5n64I544K0pgRwqKcwLRpyfhvSp3huvf9ISSZ1V5b6lHxDKXrcl2EVGtJV2Ntce9IqiVZ5m5eyekXLeKtBuImxNn",
+                                  event="topup",
+                                  priority=1368,
+                                  ends_at="2024-04-03T13:30:43.000000Z",
+                                  starts_at="2025-12-24T22:43:28.000000Z",
+                                  name="5R5ZNIieikdp8w9LWlkrqUcz43dBm26Or7FE7oxXwqyeP95WFsrDTZsTHaLMAx4xhJmPNb2Vt3kMgTzAxm3nuCtm4tM4rQ7TMWwQQegAiqW5Gh3EedIVkoAN4R6PBgm1bgbkQVRY8MuhwDykulFo5mDyJw8V3XaTOkFDFDXkJRYuzmNrD0IPF"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_campaign_24(self):
+        response = client.send(pp.UpdateCampaign(
+                                  "0f873a24-95a4-4106-85ee-0e962fbf9269",
+                                  applicable_shop_ids=["eca47459-f663-472a-bed0-ce7076fe44ef"],
+                                  applicable_transaction_metadata={
+          "key": "rank",
+          "value": "bronze"
+        },
+                                  applicable_account_metadata={
+          "key": "sex",
+          "value": "male"
+        },
+                                  max_total_point_amount=9861,
+                                  max_point_amount=2758,
+                                  exist_in_each_product_groups=True,
+                                  minimum_number_for_combination_purchase=626,
+                                  minimum_number_of_amount=1199,
+                                  minimum_number_of_products=1627,
+                                  applicable_time_ranges=[{
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }],
+                                  applicable_days_of_week=[1],
+                                  blacklisted_product_rules=[{
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }],
+                                  product_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }],
+                                  amount_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }],
+                                  subject="all",
+                                  is_exclusive=True,
+                                  point_expires_in_days=6552,
+                                  point_expires_at="2025-06-12T09:50:21.000000Z",
+                                  status="enabled",
+                                  description="W3vkZPbupwOmpLyfcnvR24ekndSEuijqLz34cJjz9WzSXV2waIpnDEjnPuGDOLqsy43AtWyT6",
+                                  event="payment",
+                                  priority=2270,
+                                  ends_at="2021-10-20T02:35:59.000000Z",
+                                  starts_at="2026-03-15T08:25:29.000000Z",
+                                  name="JkPIxdv4Vr2ADhNnBQ2AhJrtrRhEmEhncAz9T8Jn6tKv842hmKtJWGe0W2JoBVxOBG6QSEaMM6DcJjfAtdrmKAg3KBKDu0vlbYdVC6n9nVLo43cE33CQPF6kxIl"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_campaign_25(self):
+        response = client.send(pp.UpdateCampaign(
+                                  "0f873a24-95a4-4106-85ee-0e962fbf9269",
+                                  applicable_shop_ids=["4e91d0b0-e8f5-40a2-a775-90ad5b1fee97", "348a1fba-450d-4dc4-bf6e-3a7a36895b69", "d0ce02f2-1094-4cde-a18e-d1af3fcfe940", "3902ae80-224e-49d9-981d-8d9fe0dc844d", "e5f48237-fa56-4c9a-98b5-58d96d6ce187", "59e84585-2bcc-43a4-a73a-ec2e66dc2d5f", "f3fd8b6e-b22e-4b02-a1ec-4c8e12c81ac4", "17cc4e38-ffc8-4340-8fcf-1643e4f69e44", "4e51586c-490a-42d0-b447-5ddaef0079b7", "10886b6a-b3e2-41a5-ad0c-bad82e268c4d"],
+                                  budget_caps_amount=2067724752,
+                                  applicable_transaction_metadata={
+          "key": "rank",
+          "value": "bronze"
+        },
+                                  applicable_account_metadata={
+          "key": "sex",
+          "value": "male"
+        },
+                                  max_total_point_amount=4762,
+                                  max_point_amount=1846,
+                                  exist_in_each_product_groups=True,
+                                  minimum_number_for_combination_purchase=444,
+                                  minimum_number_of_amount=1687,
+                                  minimum_number_of_products=392,
+                                  applicable_time_ranges=[{
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }],
+                                  applicable_days_of_week=[6, 0, 0, 4, 2, 3, 1, 3],
+                                  blacklisted_product_rules=[{
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }],
+                                  product_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }],
+                                  amount_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }],
+                                  subject="all",
+                                  is_exclusive=True,
+                                  point_expires_in_days=1126,
+                                  point_expires_at="2024-03-28T23:30:18.000000Z",
+                                  status="disabled",
+                                  description="hTHNb57OPgysrQCIrNbKg5EGtS1CRG8HTOfVnvp3qGXZFBsOSpPHbliv7UIdhUMzObVJcG5btiH5rur7GsubMGTjIcOXKD9o8Kba3zToGBURahT5P9DvE8UV0j2YqC15yVJZpc8KVpHARBDgg1Gn2XcmC1vS6JUWIFuWHifSCeHqDX4OovF1kPsfFAfU",
+                                  event="external-transaction",
+                                  priority=2884,
+                                  ends_at="2021-02-08T01:59:33.000000Z",
+                                  starts_at="2022-08-06T20:19:02.000000Z",
+                                  name="hedBMnO5c5siBhPS0PdEUgltcrxJuLRpPyEyLzg5USUF0acnAYj9bCB7rUqwv3jfmweeo8gmjkrVbM4yoFbYRleOf9KOkq0RFzjJHwRArvOU8komJ1Atk5RVlui7mGRMrDuzhgMwi2QEwxvEfxvbfoaYN92mmS964bSnGq9n7PpIOomMWW66P3IlH0kXmsT"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_campaign_26(self):
+        response = client.send(pp.UpdateCampaign(
+                                  "0f873a24-95a4-4106-85ee-0e962fbf9269",
+                                  blacklisted_shop_ids=["057fa83d-cff5-4c2c-9c18-4ce7cb2eb2c4", "7e6ff4bf-441c-4f28-9dbe-1f73e8cf356d", "2c6a6952-c674-49a8-8710-a1fe88852203", "7915473f-93ab-4edd-aea2-0746800d76bd", "9fc4ea25-b51f-4ab7-a9cc-1a342f159c6b"]
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_campaign_27(self):
+        response = client.send(pp.UpdateCampaign(
+                                  "0f873a24-95a4-4106-85ee-0e962fbf9269",
+                                  blacklisted_shop_ids=["ba1619ac-dd06-40c6-8ec3-e35740d64dfd", "89143c15-9f19-4d8f-b262-4c9a07297b5b"],
+                                  name="Fqt27c2GHcIyayD2aKjXN0NBWyTy0xC6byToeZcV73t7vuEmirlewYMI5WNi6AMJzfUo3Mw8SUD48UFtXOBKAPivd5iJNrdq"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_campaign_28(self):
+        response = client.send(pp.UpdateCampaign(
+                                  "0f873a24-95a4-4106-85ee-0e962fbf9269",
+                                  blacklisted_shop_ids=["22dbfff5-0d54-4bf8-8679-25c2f1a7a230", "316c421f-557e-4786-949b-555f94094087"],
+                                  starts_at="2021-10-21T23:34:34.000000Z",
+                                  name="A3WX2EcUb892jz3Nv10xFyFeM64iLpLDhctAZixWvzCjvZGuuLmpXAGJua2paAAkUgzb5zEsMYGbxzOIV2r2JtDEGxgzX90xQ1qEwnOjzBjMdE2ZgqC6g1ENWOPFMuygZod8nuff2bwE3RDjoGhPLmonziI8gPB410GLPQCeC7jS6"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_campaign_29(self):
+        response = client.send(pp.UpdateCampaign(
+                                  "0f873a24-95a4-4106-85ee-0e962fbf9269",
+                                  blacklisted_shop_ids=["82d504fb-d18c-4c8b-b392-f5c4267a8203", "02cfad0a-179e-4766-8d2a-8374c4db075a", "f8644ce3-b5dc-4b8c-a1be-f18eba09fb10", "829b4faf-d5e4-4879-bb67-301d25be4e90", "9391df05-f6ff-45a2-ac99-656d513e3a4e", "c2529fa7-92d8-41be-a2a0-d8a365d08445", "917d792f-36f0-4870-bb95-4b452b863ddd", "96afa498-c680-4b74-8191-fef782f38e2e"],
+                                  ends_at="2021-12-23T03:58:29.000000Z",
+                                  starts_at="2023-09-16T13:20:37.000000Z",
+                                  name="qu8PJiYpSm0jLeVc0IIOPvouCcBMs9oEUXdmuJ5CsXeAgeVmz0XdBqvz2LZqSb1Cr9GvJk1u6JVnb04lQy4ktenk93ttYPJhOiPCYhnxitPJhteZ9v4lYIFrYpnV35pBMGKJEJkpn6Mlr99tmpLoTFQeHIPsIBBDhi4oQ1t1s3zE32Vk24Ceen1NSjytDUp3byZcFEPnIDVyEjs1xIVAG7PJaXsPvnXy7"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_campaign_30(self):
+        response = client.send(pp.UpdateCampaign(
+                                  "0f873a24-95a4-4106-85ee-0e962fbf9269",
+                                  blacklisted_shop_ids=["f250f491-bb2b-49d0-9cd7-12d42d44da34"],
+                                  priority=464,
+                                  ends_at="2025-12-16T08:19:35.000000Z",
+                                  starts_at="2025-03-03T08:26:12.000000Z",
+                                  name="JKIKUBKfvAdAdVhR8qFWp5tCaOkj67zOOhzPjoLUnpes4zWmpVcy9ixDX4fCfbAE0AZjhFFPDiC5XgRDuJC7DFGXWJ1DsLyOnXTqwNlXWPSNst44xBM1tMMoOyWoAqWcD5ADFBSPh7o2MC5sMNAQhF0HCoj9Dj4ZpJqp2buSHK5WKI86hTWo47qb9nSKNBR3LjzCdQo4GwTY7y2A"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_campaign_31(self):
+        response = client.send(pp.UpdateCampaign(
+                                  "0f873a24-95a4-4106-85ee-0e962fbf9269",
+                                  blacklisted_shop_ids=["fbb3f200-227e-4838-9605-4a178d79a710", "c226f45a-2be3-4d79-873d-142774b94684", "d094a068-9933-45c2-9e9a-fbe3d7e8e6fa"],
+                                  event="payment",
+                                  priority=2513,
+                                  ends_at="2022-02-07T21:44:17.000000Z",
+                                  starts_at="2025-08-24T01:18:00.000000Z",
+                                  name="AT4U7cCHORIBupKF2LGLWlWRqEU1R3HVfumJrkxA1RBhkJnrKn6T4UBYf7XzEp3cMOeoQItbJApNFNbizZqSEKvNBsiLTmRsG1pcvzPfSNlMjg"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_campaign_32(self):
+        response = client.send(pp.UpdateCampaign(
+                                  "0f873a24-95a4-4106-85ee-0e962fbf9269",
+                                  blacklisted_shop_ids=["72decfff-b5f9-4ac3-bbed-bae0717d0c33"],
+                                  description="l36NNuyyweAXXanZiLS6lbj9JXoVWEOjNWcJ8Pqob8ZBDc2LIkAJFpX3tMiPvkskrBs7cZNQht6pUXt6QkeG9pRp1c5EcN6nLJcb0NEcuMnzKSDbJDSeKRyRniwPaN0afN8mRVY0r2kLaYAQQnNWq5gJ",
+                                  event="payment",
+                                  priority=1631,
+                                  ends_at="2024-06-01T02:03:23.000000Z",
+                                  starts_at="2020-12-20T04:59:15.000000Z",
+                                  name="cSDE2uEYUD0C3IXLL4lH8T3KxBkSfET7NeTYdPy8UjYc9OlslQQZIq7zSOEeSzczj6ObIBdQwmJP2q6udBME6WRlyybO27figMsVRHKPW8EbdfuKdbyfcj"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_campaign_33(self):
+        response = client.send(pp.UpdateCampaign(
+                                  "0f873a24-95a4-4106-85ee-0e962fbf9269",
+                                  blacklisted_shop_ids=["4ddab61d-18ce-4418-84d6-af78ec25a534", "71c9113e-7195-4aab-81b2-636ff04334f6", "129a4971-3196-4150-8d96-7dda30f7e841", "fb7c08a9-0fb8-4329-a972-2817dbb7552f", "5dac81ba-1458-4e4a-b995-2023d4d1b4c5", "4f3dea8d-8a1f-4d36-9a3b-066335bcc99e", "741c864d-0ffa-419d-ab4c-c8799a2f8a29", "0ff267c1-b871-4e8e-a700-e5f73c7f7f53", "37011c3e-ee60-4fef-a4e4-24e9f0c2ff7f", "bf1a2c0e-4c3e-45f5-9006-b3ea97168357"],
+                                  status="enabled",
+                                  description="11mpxaVIYgQo5GvBiHKw3I5f57jFE45d3P21Pzx2jnlKrw0LdNS4VtkXCDrt0LJOE3QgwrCcszhfH09Y5OthVwPmvHXBFS5mnHJDaN7ByqCBViT",
+                                  event="topup",
+                                  priority=6030,
+                                  ends_at="2026-02-15T23:06:41.000000Z",
+                                  starts_at="2020-12-27T13:44:51.000000Z",
+                                  name="c5gafw"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_campaign_34(self):
+        response = client.send(pp.UpdateCampaign(
+                                  "0f873a24-95a4-4106-85ee-0e962fbf9269",
+                                  blacklisted_shop_ids=["12d1ddc5-a2b7-46df-8a60-d4f86ad12a3a", "acc331a3-d43b-4bd4-b697-276a92d70ebc", "68b656d5-6963-4931-a1fc-acd4c17a5b35", "23ef8b98-9f45-4d62-8770-042fe3d72cc3", "74fc4613-020a-449d-8ad1-99204418af6e", "ce7b9638-7ba4-4599-8237-93a1ff4242ec"],
+                                  point_expires_at="2022-01-12T03:10:13.000000Z",
+                                  status="enabled",
+                                  description="5BYMvNkhEwbRq7C0zj85JoEScisdzkhxnXFFT7CXS50vaovkROQbPFa2Q0QZFPxPWcwwu3uh9fDL3S3NHvBIxMXxVOS8aVOpiS1EeKe2EnvF9kW30yXFj5pEZQNOtIwcrR2Tap7tnXzfq7vVXcZZXkAjYTEO65NQtFJaRQvj5yyqZjpM3EGDvxc",
+                                  event="topup",
+                                  priority=3455,
+                                  ends_at="2021-10-01T20:13:57.000000Z",
+                                  starts_at="2025-12-11T16:57:40.000000Z",
+                                  name="2vHpfKAFMK87o5EDfCnjGchqfzXJGnbGhZsKdVrETxLEt4GFvxAKZGN2hkrp4AuDVFN5fAvBVJFsjezB3YP3w02SjMN6p0"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_campaign_35(self):
+        response = client.send(pp.UpdateCampaign(
+                                  "0f873a24-95a4-4106-85ee-0e962fbf9269",
+                                  blacklisted_shop_ids=["363171b7-3632-4371-97a1-33de1a94ea7d", "5a7cb39c-ac01-43f4-bdcf-a0bdca5af52a", "d973946b-5996-4513-9a0e-ee5d27505fa9", "e4d5d190-2433-47ab-9155-4d5bf0615a56", "ef6d0126-a6e2-48aa-8553-0ac554fe5b57", "ab4fb5d0-e374-4763-863b-daf9ff4c2975"],
+                                  point_expires_in_days=1789,
+                                  point_expires_at="2025-10-13T05:48:22.000000Z",
+                                  status="enabled",
+                                  description="37VMAkI2ylOPtFPfUfw5cNQlmY98v9Ekah2FpsKs0KWXhqcS1Ua3AEPfEflYFcCoy2dXgtWk5Skp4k9FjiQcyxviUOicaOZqLE3MkcTFrJK4NHPvl4VhqOdqyKHcIOPhbvogj2mEAT9kQkxX80ARofdpsoiXVe",
+                                  event="external-transaction",
+                                  priority=8952,
+                                  ends_at="2020-08-28T22:19:33.000000Z",
+                                  starts_at="2026-03-10T21:24:23.000000Z",
+                                  name="7c05YcbHgR3SFdYgsuZbSsGmFYxkuLrQMChiww3RYCIbC9pf8Wzgm4choir96Zk4wBbHbRE9tWUhNPatHCNYgstx4oloda7k12vM37GlbZJKSAFS4eQAmyXqltVLiYXrByWE1iViSMuTkME7Xo3gZLzoJUOW0EXfGSkB9sMClBaFjZtZBNIprWMfHv0Adc0Cr3QSzeJ"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_campaign_36(self):
+        response = client.send(pp.UpdateCampaign(
+                                  "0f873a24-95a4-4106-85ee-0e962fbf9269",
+                                  blacklisted_shop_ids=["eded78db-e05a-4580-8bc8-a4aafbf47ed7", "60b98fcf-1c87-4659-849a-8479b1c8709c", "5b3c1b38-fed8-412e-a131-b46e9a8edd17", "247064e1-204c-4362-b0ba-62900595d405", "962bc6b7-3179-4a0f-afc3-8d6b720e931d", "9d0fb3d5-440c-49c3-abc9-34ccf107d408", "94013bc8-4fc4-423f-a30a-b96ae8321a40", "b00aeac7-2d3d-4f5f-b2bb-0ddd90e5c669", "fb9ed763-3d1d-48ef-9665-84c0b4a3c722"],
+                                  is_exclusive=False,
+                                  point_expires_in_days=7041,
+                                  point_expires_at="2021-02-24T10:05:35.000000Z",
+                                  status="enabled",
+                                  description="WNBFxzeu6Kj8LSmqtcTHfZNvkLrH",
+                                  event="topup",
+                                  priority=24,
+                                  ends_at="2021-08-13T14:06:58.000000Z",
+                                  starts_at="2025-09-21T22:33:50.000000Z",
+                                  name="hPf4I7mVEEqd8S9trsTY1RY9q3EI5KlF19OJHZirKKYCi"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_campaign_37(self):
+        response = client.send(pp.UpdateCampaign(
+                                  "0f873a24-95a4-4106-85ee-0e962fbf9269",
+                                  blacklisted_shop_ids=["860b6a7b-f2e0-48b5-9787-5be237e1d8f1", "983fc45e-b0ae-4249-b351-fa2562bd8a3f", "e25b4890-467e-45d9-b660-c6e42cbb4a1a", "e2b0b46d-7828-4f26-809d-484887b0e263", "10b7a7c5-ccbd-4433-a699-8e2cc0f13d6b", "02d08be7-6b90-401f-b688-017ec309315d", "52f088af-c911-4237-a04d-8b7046e15bb0", "322c40aa-32bc-4443-ba89-067b5ec0d66a", "0890e0cf-4988-4f7a-9be6-1c7b9381ed19", "7b740727-9e91-4774-8ef5-adc5b69852d4"],
+                                  subject="all",
+                                  is_exclusive=True,
+                                  point_expires_in_days=2818,
+                                  point_expires_at="2022-07-15T02:56:38.000000Z",
+                                  status="enabled",
+                                  description="onmfKJhNI2H30SlKK1O1UKOiryeoJ2KHqioForPYYFDgWpGReS1ZkiP3jHymN76Njiv2bjGekXOVbuSOvVupSap8p4f5efgdz6gyp1GcS4NU5bS5TrzXQYDyRb4tqKolqMgdRHskFZ317m16rSuV3GWqnvnI",
+                                  event="topup",
+                                  priority=4798,
+                                  ends_at="2021-03-21T14:07:44.000000Z",
+                                  starts_at="2025-04-25T01:51:16.000000Z",
+                                  name="0nrMnQNFRYYqQB2LOvvxaJWdM6RyNE08AoCyr23XqnSacLmBXCHDyWfJbD0iY7FmSIIJxWwKBqcUUGOv4rpZxW6C1o0zvPKHwlN5cgpKhTDjrt62aO0gTJKvsFX8pCgUNdYXQChONhwWGHDaQRstzyfCMC6r4ZI5"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_campaign_38(self):
+        response = client.send(pp.UpdateCampaign(
+                                  "0f873a24-95a4-4106-85ee-0e962fbf9269",
+                                  blacklisted_shop_ids=["dc14e889-ccb9-4a16-a2fe-05c493c809ae", "24384255-03ec-4198-95ca-8fdefdfd7a0f", "634deec2-d5c2-41c9-a717-6f969aabde5c", "0dd900b9-891c-4d46-a42e-f5821301cd16", "f2636836-acd9-4688-9337-91a68966175f", "00d8917b-4be5-4ea4-800e-e1b40ce816e1", "83212da6-8ed4-46ea-a25a-2c697418004c", "98809b3f-ab16-498a-8f61-3f60ab244857"],
+                                  amount_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }],
+                                  subject="money",
+                                  is_exclusive=False,
+                                  point_expires_in_days=803,
+                                  point_expires_at="2021-11-26T19:22:27.000000Z",
+                                  status="disabled",
+                                  description="nzqZ6lGr",
+                                  event="external-transaction",
+                                  priority=5726,
+                                  ends_at="2021-11-16T08:48:52.000000Z",
+                                  starts_at="2021-03-21T10:06:31.000000Z",
+                                  name="nP1Co4x4AXMvzQhY1JlrHqbdULcyqcFghqKIiyi3aAuGXWsNdhyWJyqrPAKmmZGZJNC4j2awHXlJF9A7cu6AxfU8HIO6LO5Dd5XiFWL9oU011XoGoCpelXPpOt9Y3msxtcs0WRQEq2AUltkkF5RV8aSNO9GQnDszD12NRIYvg8bbFQzPdXDpujuzOkg0dnSdALdNv5r8wM328xFuBm"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_campaign_39(self):
+        response = client.send(pp.UpdateCampaign(
+                                  "0f873a24-95a4-4106-85ee-0e962fbf9269",
+                                  blacklisted_shop_ids=["3686860f-fea9-479a-845f-8f31b989019a", "795ea848-753d-4eb3-b855-72e4292b76fe", "6fa8840b-9dac-40c8-bffe-233dbebae39b", "3c7aa5f3-2d09-4345-93d9-8d1a993e1e2e", "1bfeba2b-1050-44d7-b9dd-8856a0134279", "b1880487-2445-4116-b2ce-b38e3f109d90", "fa2f31e2-54cf-42a3-8b3a-415c92737995", "00eeee1c-ab39-4ccf-a799-c9c84b23aeb6"],
+                                  product_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }],
+                                  amount_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }],
+                                  subject="all",
+                                  is_exclusive=False,
+                                  point_expires_in_days=4242,
+                                  point_expires_at="2020-06-12T05:55:49.000000Z",
+                                  status="enabled",
+                                  description="fcESSUHZ6h2XaPg728RkvVOUbcGA0kjIj9fnBbIK8dSJpAN6wIXIQbTWkewXW1RgDvxeuhtqc0lVuVevBpKZFsUJPsCckORoCt",
+                                  event="external-transaction",
+                                  priority=7000,
+                                  ends_at="2022-10-25T11:00:50.000000Z",
+                                  starts_at="2023-01-23T20:32:37.000000Z",
+                                  name="qJmttYcSXDoCgwypQnQUsnWOKMZ3rJ8aRGwz6VDq2kLV7UR9Ys1BTbKj9QeMGWU46l1ev23Q5PTPgtt4yAIzCwP1Z0JVfF9RSrf0Q1pmhWHNJvae7EjBkQNn9uWl9JunPyftwg9sZ6EOXmzMsMVDhbzfFvUl3UtKdNP5TLVhbhll0GP4QAkQeOPrTAo5HhYx5j"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_campaign_40(self):
+        response = client.send(pp.UpdateCampaign(
+                                  "0f873a24-95a4-4106-85ee-0e962fbf9269",
+                                  blacklisted_shop_ids=["247fbbe1-a17e-4a47-ab5d-6ee29605930a", "7c3c07cc-48c5-47c0-9c94-b9aa1eab4114", "eb5ba4f5-b54a-40af-ad7c-c4aebd3c3dae", "81fd8788-23c3-4266-bb05-bf4244ac132c"],
+                                  blacklisted_product_rules=[{
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }],
+                                  product_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }],
+                                  amount_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }],
+                                  subject="all",
+                                  is_exclusive=True,
+                                  point_expires_in_days=9559,
+                                  point_expires_at="2024-10-28T00:00:14.000000Z",
+                                  status="enabled",
+                                  description="UViZVHRWPkdj3cWX27LHxVCRXJ7RR9vhNIu31vkGd5KFMjSHWQRA9E535lViSyzzCHjVEEg0SpYDFFDY1quxNkSS1vmCLOUldc17zrM7imjJVYnMFmZVKbnQskJ4SJWYdnxMjsH9rlpcWw1Vg5A3jIY5TVDn7VAyGhf1a2i4Xb006Y5FN9b",
+                                  event="payment",
+                                  priority=7865,
+                                  ends_at="2025-10-14T10:50:19.000000Z",
+                                  starts_at="2025-04-20T02:17:06.000000Z",
+                                  name="sFBm8sMwbh1WFtpEmCrF"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_campaign_41(self):
+        response = client.send(pp.UpdateCampaign(
+                                  "0f873a24-95a4-4106-85ee-0e962fbf9269",
+                                  blacklisted_shop_ids=["9e3558ce-3392-4c77-bf28-59a927df0e64", "bdc5fd4c-3cda-4087-b135-85824a1931d1"],
+                                  applicable_days_of_week=[0],
+                                  blacklisted_product_rules=[{
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }],
+                                  product_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }],
+                                  amount_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }],
+                                  subject="money",
+                                  is_exclusive=False,
+                                  point_expires_in_days=9709,
+                                  point_expires_at="2023-02-24T21:54:43.000000Z",
+                                  status="disabled",
+                                  description="Naa2goLZ5E9",
+                                  event="external-transaction",
+                                  priority=7444,
+                                  ends_at="2022-10-24T01:54:02.000000Z",
+                                  starts_at="2021-01-19T15:47:15.000000Z",
+                                  name="vOUIiBwbJ5GuqfgOe9nV"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_campaign_42(self):
+        response = client.send(pp.UpdateCampaign(
+                                  "0f873a24-95a4-4106-85ee-0e962fbf9269",
+                                  blacklisted_shop_ids=["eef39c4f-06ae-468d-a65b-f03119fb075d", "823f036d-422a-4c0e-9e1e-83dd540918e3", "6b53a993-21e5-41d8-9fe2-ea3b034148a9"],
+                                  applicable_time_ranges=[{
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }],
+                                  applicable_days_of_week=[3, 2, 4, 6, 5, 3, 2, 0, 3, 5],
+                                  blacklisted_product_rules=[{
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }],
+                                  product_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }],
+                                  amount_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }],
+                                  subject="money",
+                                  is_exclusive=True,
+                                  point_expires_in_days=6596,
+                                  point_expires_at="2020-01-02T07:00:59.000000Z",
+                                  status="enabled",
+                                  description="npKAXXDxQv4bOJ9FCs7r9SIiPLZxhYcpGO5FAV5Tmz4fnzfWLRafbjHHiTlinfVLWJIyGq0eGZ3LjtgQn48RP8UioFkI4pFJl8a49K0SiRVrDmJ5TPkLuNgnu18c0Kn6PzJQm77hC3byYhnk9L6y5R4kNHRMXQTzW1iBiUI5JGbGoEyKdo0WvNvuZ2zOy",
+                                  event="external-transaction",
+                                  priority=2046,
+                                  ends_at="2026-05-23T12:02:53.000000Z",
+                                  starts_at="2026-01-23T01:32:45.000000Z",
+                                  name="6UzJ163lry8C4rDtJNzcEFdrvo427ISByum8MIrVugVBfTif3qpXYgZnZ3LJOu3iwipHdsS3ShjnA4Sr1gSN2PelpywqnkqJGFUWWcs7OK2a7LaTGiSi2nVCa3OWfS7AqwLlHPiOBI9qmFjOPFMYQLKjqH9KdygsFLw1OF89AbrhaWMPvJ4w9BbWGLWxTOnqHU20ukx1FDQpVqtvlq3pwtYNpqFJFhJ6HuYWn"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_campaign_43(self):
+        response = client.send(pp.UpdateCampaign(
+                                  "0f873a24-95a4-4106-85ee-0e962fbf9269",
+                                  blacklisted_shop_ids=["40d85979-027d-4c1f-8955-ac06b75d8768", "0f4ee390-5541-4f22-bb44-55349b6bfba9"],
+                                  minimum_number_of_products=8177,
+                                  applicable_time_ranges=[{
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }],
+                                  applicable_days_of_week=[2, 0, 3, 3, 1, 6, 1, 0],
+                                  blacklisted_product_rules=[{
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }],
+                                  product_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }],
+                                  amount_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }],
+                                  subject="money",
+                                  is_exclusive=True,
+                                  point_expires_in_days=7059,
+                                  point_expires_at="2025-06-09T05:53:53.000000Z",
+                                  status="enabled",
+                                  description="8UduAdQ5IH0TK2HSat5A6ikNbGO6nv206MCoq10cKjOOAJZbMJkEXTJUvgYePqHLhUyWTkN1F8Xwl2rFV9LPEG0FsEHZ0zFFEN3CsRlByNyR64VEa3muyUE26k",
+                                  event="topup",
+                                  priority=3182,
+                                  ends_at="2021-08-27T08:28:57.000000Z",
+                                  starts_at="2025-12-24T10:15:59.000000Z",
+                                  name="LEQafbBqwyhczkUDSv0LkIzcZbnCm3D96fkss4WwEMOvII6xukRoB486IcnSrXwZGPsDFfbhpjo6CvZmit6sG22LWplDlWahPig9MKERKZGyJip4Qp4t6WiXGIWU4TxH2FAjMtbi1KGeJyFNO2KrkgbsXcbEbgPoZFbPh9J838rL1gDfq3VsJIZMJTMvIMK26sORVFvF51NUOj8RI7n9XLkQqGxRAu4ClCzUyuIEYrXjU1Rl6vF7n9cW"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_campaign_44(self):
+        response = client.send(pp.UpdateCampaign(
+                                  "0f873a24-95a4-4106-85ee-0e962fbf9269",
+                                  blacklisted_shop_ids=["2a447335-8ff3-4ec6-a630-9c41f31ef83f", "2556d652-8a79-48cf-8b5b-1cd0f9637da7", "13da4a0e-a2bf-4c33-abc8-3bc337b0c894", "72a45dd5-e208-4f20-bd0d-c983410d3c8c", "bef7f904-7310-4e68-8fc5-bd642cec4ca5", "1ae9cb6a-7816-488a-b0c6-587675980385", "c05e104b-a42d-4dfa-974c-91a4884b67cf"],
+                                  minimum_number_of_amount=2737,
+                                  minimum_number_of_products=7065,
+                                  applicable_time_ranges=[{
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }],
+                                  applicable_days_of_week=[2, 3],
+                                  blacklisted_product_rules=[{
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }],
+                                  product_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }],
+                                  amount_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }],
+                                  subject="money",
+                                  is_exclusive=False,
+                                  point_expires_in_days=6076,
+                                  point_expires_at="2025-03-21T23:46:55.000000Z",
+                                  status="enabled",
+                                  description="yaTp5fxFISfuSj9R4g3InaFkgEEKedrMwdHukpCicHBj64f1DT6D6Mien3I4QpNgQKGBSiEs2F3MGwgLve3TZFNm4S8a9Imcm3HEYVUSqsC3AriSwCEB0Kew5ULKwo1UdPl33Js1Kuu0UegnQjK5K12MWvCvA9DjpAvmSouPF8sEd3",
+                                  event="topup",
+                                  priority=2626,
+                                  ends_at="2020-07-23T14:17:24.000000Z",
+                                  starts_at="2021-02-02T17:56:30.000000Z",
+                                  name="l0JB2dKxVrlXLEonC1KsoREeh2RXqHgFOF3b7VdwEdOPGXSe9OOoep5LkQDV7qJw1By6uFHkBHhurHoZlcvR7Q0TdgtR89zH4BRb4LxjYp1VFXi65IWH287FkS1AdoZmrqV"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_campaign_45(self):
+        response = client.send(pp.UpdateCampaign(
+                                  "0f873a24-95a4-4106-85ee-0e962fbf9269",
+                                  blacklisted_shop_ids=["8259c1ab-1f51-4e1f-b0b8-f4665ceda340", "473423f0-feb9-4c49-b0c4-d7c7cdbe7cce", "b93e3754-9eb3-4932-8c58-f1d8f108a0bf", "e0b49a6a-a6d3-499f-a541-3873f30529e6", "b34685f3-51ef-4e77-ad1e-9a7e90db0a72", "ef653094-180d-4f0a-ae79-e8f4da4f18ae", "8154ecc6-1eee-4dc4-8ed0-b1457258f572"],
+                                  minimum_number_for_combination_purchase=2507,
+                                  minimum_number_of_amount=9990,
+                                  minimum_number_of_products=9619,
+                                  applicable_time_ranges=[{
+          "from": "12:00",
+          "to": "23:59"
+        }],
+                                  applicable_days_of_week=[4, 1, 6, 3, 6],
+                                  blacklisted_product_rules=[{
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }],
+                                  product_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }],
+                                  amount_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }],
+                                  subject="money",
+                                  is_exclusive=False,
+                                  point_expires_in_days=3535,
+                                  point_expires_at="2021-09-06T04:52:54.000000Z",
+                                  status="disabled",
+                                  description="RIxfJ3UGUUM2jHDzbRjTfUU5d5AtOipE6L0lEeYXxSLgJV1GwAOqdc8zzTPJEfMbaKIEhnBHfV6tGM4VGRurvyE3ASr9IOsPHz4Zd6uXHhCBvnC8wCQDn5TxePGCKc6zq0vbsfAwCBSEwRfx0DBbiZykOey7zjJ6OyJP83x3uLLTOPjH6jjFnlRSGQkOLow4uOPR7jYU",
+                                  event="payment",
+                                  priority=5805,
+                                  ends_at="2021-10-21T00:46:26.000000Z",
+                                  starts_at="2025-02-26T09:03:32.000000Z",
+                                  name="op3nbAQNRasJaqAeaFh0mPOgCiw12joVskUHIrzFx85stT5X2fdTsebRuLVbzPU8r1TG2yJEOhnrWkQVh8G8vXFKeuF0FhTncNlMmgEuaHAHntz60OEH7JgjiAw3cGaLL5KHpinnRK5y0OzJ9Hvf2cVYRMoN8ciCbZWnzcDnK4LA4gWzsFxrEWGQmIqwq80GWYOCdqp3aMw45RftnlC78XMJnZ0CKAQudtFEN83UK6KJ482qLWZU1lTgJBoEty"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_campaign_46(self):
+        response = client.send(pp.UpdateCampaign(
+                                  "0f873a24-95a4-4106-85ee-0e962fbf9269",
+                                  blacklisted_shop_ids=["d3121cb7-ce4c-4bdc-a367-365631053645", "4ab4bb8f-d5d9-4e3e-8e42-9d7ef94dd988"],
+                                  exist_in_each_product_groups=True,
+                                  minimum_number_for_combination_purchase=4937,
+                                  minimum_number_of_amount=3392,
+                                  minimum_number_of_products=2684,
+                                  applicable_time_ranges=[{
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }],
+                                  applicable_days_of_week=[5, 2, 3, 3, 6, 5],
+                                  blacklisted_product_rules=[{
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }],
+                                  product_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }],
+                                  amount_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }],
+                                  subject="money",
+                                  is_exclusive=False,
+                                  point_expires_in_days=6658,
+                                  point_expires_at="2023-03-03T05:34:42.000000Z",
+                                  status="enabled",
+                                  description="kdlmbDvPcxbP00J7QmpOVA7MePtYYSm3L3WBUYIGLXhu0DvMLxvuDjJfJxeesKkwbE",
+                                  event="payment",
+                                  priority=2760,
+                                  ends_at="2023-12-06T12:47:52.000000Z",
+                                  starts_at="2022-02-20T16:27:23.000000Z",
+                                  name="igyccRVuXaxHAAztkflrbX507aitxdTcYjjCJVatXW3s3mbWjjaocKJS9JHlwFlJcsltjjmodDQEUxDaghv7DnSC5Rfu0C0uKFwmpPkPjblE3KxRrUTFSpI6jwJUUxrUc5YmXel2A200gV6FxYfWwCiS0MuCLswxDV9drgRKhLSvZ2KQORxMHroQo6jM66W2y8KrZ8xMlNalvWa"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_campaign_47(self):
+        response = client.send(pp.UpdateCampaign(
+                                  "0f873a24-95a4-4106-85ee-0e962fbf9269",
+                                  blacklisted_shop_ids=["c73381cc-7496-4799-aa8c-031cb958bcce", "319cd180-8686-45e8-bd24-af8b3910a4db", "470df91d-9238-4573-a21f-899c871bcf9f", "c3e850fe-cd8a-4311-b1b4-8adbb65b5c63"],
+                                  max_point_amount=3008,
+                                  exist_in_each_product_groups=False,
+                                  minimum_number_for_combination_purchase=7084,
+                                  minimum_number_of_amount=353,
+                                  minimum_number_of_products=2084,
+                                  applicable_time_ranges=[{
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }],
+                                  applicable_days_of_week=[2, 5, 0, 5, 0, 4, 3, 5],
+                                  blacklisted_product_rules=[{
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }],
+                                  product_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }],
+                                  amount_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }],
+                                  subject="money",
+                                  is_exclusive=True,
+                                  point_expires_in_days=7122,
+                                  point_expires_at="2025-07-29T20:42:33.000000Z",
+                                  status="disabled",
+                                  description="CUyL2v9u3mWzZwKqxzujrUlmkKRdRXeieY6AmMB38WCqGZQWNed5BL6m650n0RmhPNf1QdSFaslICN4xIeeSgcGsS3PA5BMU547lNJdN573CatnkU3QijXWL36Ne9BIyD0VsxUMLq2pynj2i9JShHMs7dpHbhmzmDvsuxdQFF1b9FFVSxNRhY3CeG383Fyff0GWufJQM",
+                                  event="payment",
+                                  priority=2133,
+                                  ends_at="2024-02-28T22:49:21.000000Z",
+                                  starts_at="2026-04-24T11:25:08.000000Z",
+                                  name="40T5H1YOyXeD7lp3hQ7iTUdtYXMwyZtYN7NcCeDXI01ioT6dE59eFWe4PxHJhHM6PRObQxj3f4w8El4HGgfInUuZUZacdXJKlldoDuv9TA2XHRXocL0a2ENjq4YdkJGWgFmKTEIA1MAf2HgecIl74FyRST7ScfdaiXI0aphnQpmaEH46JpxMwBWB66twUXazpjqxEREj"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_campaign_48(self):
+        response = client.send(pp.UpdateCampaign(
+                                  "0f873a24-95a4-4106-85ee-0e962fbf9269",
+                                  blacklisted_shop_ids=["e09e462f-396d-43fc-b980-679ecea45ca0", "6d66d3a7-5fdf-4da0-b1ca-1c3b4341bf92"],
+                                  max_total_point_amount=9324,
+                                  max_point_amount=4294,
+                                  exist_in_each_product_groups=True,
+                                  minimum_number_for_combination_purchase=9703,
+                                  minimum_number_of_amount=9091,
+                                  minimum_number_of_products=2156,
+                                  applicable_time_ranges=[{
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }],
+                                  applicable_days_of_week=[5, 5],
+                                  blacklisted_product_rules=[{
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }],
+                                  product_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }],
+                                  amount_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }],
+                                  subject="money",
+                                  is_exclusive=False,
+                                  point_expires_in_days=1399,
+                                  point_expires_at="2025-08-14T08:17:00.000000Z",
+                                  status="enabled",
+                                  description="iMgBpZAYBbcvRZzaI37qk5Qpl5Gz36NQavWZXSE0IrKdpz0FXntwLwsP6PlvtKfS7zk6Hoi0oeAT0NWEwBSET0oVnBy6crZKnvytNg93oYMrwaGFqX3wegLSKGRpqSEuwLWT9k07B088FFfNZznrcL",
+                                  event="payment",
+                                  priority=4409,
+                                  ends_at="2026-01-26T14:48:08.000000Z",
+                                  starts_at="2024-11-30T01:31:47.000000Z",
+                                  name="APcDhFVXImIJBKStcO3wB304Jmf05hgJ0rNiPO7Acqsb1X8"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_campaign_49(self):
+        response = client.send(pp.UpdateCampaign(
+                                  "0f873a24-95a4-4106-85ee-0e962fbf9269",
+                                  blacklisted_shop_ids=["bffe940e-c951-4dad-8516-bf1c09e11d8c"],
+                                  applicable_account_metadata={
+          "key": "sex",
+          "value": "male"
+        },
+                                  max_total_point_amount=2667,
+                                  max_point_amount=1722,
+                                  exist_in_each_product_groups=False,
+                                  minimum_number_for_combination_purchase=3320,
+                                  minimum_number_of_amount=9892,
+                                  minimum_number_of_products=6525,
+                                  applicable_time_ranges=[{
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }],
+                                  applicable_days_of_week=[1, 1, 3, 5, 0, 1, 4],
+                                  blacklisted_product_rules=[{
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }],
+                                  product_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }],
+                                  amount_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }],
+                                  subject="money",
+                                  is_exclusive=True,
+                                  point_expires_in_days=7169,
+                                  point_expires_at="2020-02-07T06:10:02.000000Z",
+                                  status="disabled",
+                                  description="0",
+                                  event="external-transaction",
+                                  priority=1310,
+                                  ends_at="2020-03-19T11:32:23.000000Z",
+                                  starts_at="2026-02-24T12:17:09.000000Z",
+                                  name="Floz09QK5UFuC5JXRVayFf6oyQZu56A1wWzKTTxm1brwQKhHT3R75Hu8YJJm39h1WaxTt"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_campaign_50(self):
+        response = client.send(pp.UpdateCampaign(
+                                  "0f873a24-95a4-4106-85ee-0e962fbf9269",
+                                  blacklisted_shop_ids=["b1aceb95-607f-44d3-8d73-fc8914e49b5b", "be383a1b-e8f3-41ba-a941-5a6a8cd10f18", "d56572cb-0ed7-438d-858a-fff9324e4ffa", "1030e231-bd82-4c16-9bc3-c82b366f28f6", "2ca4280a-e9ef-4836-bfe3-2cf6ee7fb982", "858d9dc5-7b3a-4447-84d1-364e934bfd73"],
+                                  applicable_transaction_metadata={
+          "key": "rank",
+          "value": "bronze"
+        },
+                                  applicable_account_metadata={
+          "key": "sex",
+          "value": "male"
+        },
+                                  max_total_point_amount=4214,
+                                  max_point_amount=1383,
+                                  exist_in_each_product_groups=False,
+                                  minimum_number_for_combination_purchase=3357,
+                                  minimum_number_of_amount=6612,
+                                  minimum_number_of_products=2430,
+                                  applicable_time_ranges=[{
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }],
+                                  applicable_days_of_week=[0, 2, 1, 6, 6, 2, 1, 4, 1, 3],
+                                  blacklisted_product_rules=[{
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }],
+                                  product_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }],
+                                  amount_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }],
+                                  subject="all",
+                                  is_exclusive=False,
+                                  point_expires_in_days=4483,
+                                  point_expires_at="2026-02-10T14:51:45.000000Z",
+                                  status="enabled",
+                                  description="NQCi45yyQTl9wTWmjZWPblWstjkwC6ll5fjzCHapR04ADVEFmUehgiDu605XKZkJCbVsNuqqVdUDyaVdHFVHz0uIFKJoDWeoZQYdDyUkA8HMjkxTYcusA1RKieQ1ldipC3qoQ4XwLID",
+                                  event="external-transaction",
+                                  priority=7153,
+                                  ends_at="2020-03-04T16:12:10.000000Z",
+                                  starts_at="2020-05-16T21:54:47.000000Z",
+                                  name="3ZF38hv2ikQGfIfeAIGZfO7OrSr8B2QPQ9Y2Rpsj0heI1pcWBx1T31cQtfbPCATbfETgM8KooCtS8z1fc4bmpdjKCTfj1GK9RSuRp80JIGIfZb0zQJuIdXR7obZEoGLvyrYRSePLUjWmS1Vfe4rF1Hr4pu5zkebHCqAbvDaj08T6AqfU9VC96cIIeErItINWil5tFd5fwAxEmAXCuaDk4OeOYMd636fXlQmJ9z2bnV3FEVOMMOncgSgfpnmC"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_campaign_51(self):
+        response = client.send(pp.UpdateCampaign(
+                                  "0f873a24-95a4-4106-85ee-0e962fbf9269",
+                                  blacklisted_shop_ids=["d7e622cb-3a09-4dbf-b558-7df9f75cdbd2", "4798d367-6c98-48db-92c7-98ba0a7865e6", "3915abd5-10e6-4910-8ec5-e84e334fc160"],
+                                  budget_caps_amount=1183958676,
+                                  applicable_transaction_metadata={
+          "key": "rank",
+          "value": "bronze"
+        },
+                                  applicable_account_metadata={
+          "key": "sex",
+          "value": "male"
+        },
+                                  max_total_point_amount=2946,
+                                  max_point_amount=1981,
+                                  exist_in_each_product_groups=True,
+                                  minimum_number_for_combination_purchase=2826,
+                                  minimum_number_of_amount=9598,
+                                  minimum_number_of_products=69,
+                                  applicable_time_ranges=[{
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }, {
+          "from": "12:00",
+          "to": "23:59"
+        }],
+                                  applicable_days_of_week=[4, 1, 2, 3, 3, 2, 1, 2, 2],
+                                  blacklisted_product_rules=[{
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }, {
+          "product_code": "4912345678904",
+          "classification_code": "c123"
+        }],
+                                  product_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "product_code": "4912345678904",
+          "is_multiply_by_count": True,
+          "required_count": 2
+        }],
+                                  amount_based_point_rules=[{
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }, {
+          "point_amount": 5,
+          "point_amount_unit": "percent",
+          "subject_more_than_or_equal": 1000,
+          "subject_less_than": 5000
+        }],
+                                  subject="all",
+                                  is_exclusive=True,
+                                  point_expires_in_days=4931,
+                                  point_expires_at="2021-10-05T22:54:06.000000Z",
+                                  status="disabled",
+                                  description="bdWS6JCIuNd5OFNrZXE",
+                                  event="payment",
+                                  priority=9389,
+                                  ends_at="2025-03-06T15:47:18.000000Z",
+                                  starts_at="2025-08-25T00:12:51.000000Z",
+                                  name="2QaNrZpzYfcTDxwidoKxhgH4IlA44068ievlutMBS788il7UEqSzLy9x"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_request_user_stats_0(self):
+        response = client.send(pp.RequestUserStats(
+                                  "2023-08-22T22:03:54.000000Z",
+                                  "2023-12-09T12:37:40.000000Z"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_terminate_user_stats_0(self):
+        response = client.send(pp.TerminateUserStats(
+                                  "1ee0163b-b7f1-4634-a87f-f35bc0bd1a48"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_list_webhooks_0(self):
+        response = client.send(pp.ListWebhooks(
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_list_webhooks_1(self):
+        response = client.send(pp.ListWebhooks(
+                                  per_page=7361
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_list_webhooks_2(self):
+        response = client.send(pp.ListWebhooks(
+                                  page=7907,
+                                  per_page=5712
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_webhook_0(self):
+        response = client.send(pp.CreateWebhook(
+                                  "process_user_stats_operation",
+                                  "XYVgVjKzF"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_delete_webhook_0(self):
+        response = client.send(pp.DeleteWebhook(
+                                  "d0ef4d68-8c25-4101-a0ed-0c78bc4b4ff5"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_webhook_0(self):
+        response = client.send(pp.UpdateWebhook(
+                                  "3dd4aa26-8929-4a5b-99c0-71a14f787994"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_webhook_1(self):
+        response = client.send(pp.UpdateWebhook(
+                                  "3dd4aa26-8929-4a5b-99c0-71a14f787994",
+                                  task="bulk_shops"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_webhook_2(self):
+        response = client.send(pp.UpdateWebhook(
+                                  "3dd4aa26-8929-4a5b-99c0-71a14f787994",
+                                  is_active=True,
+                                  task="bulk_shops"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_webhook_3(self):
+        response = client.send(pp.UpdateWebhook(
+                                  "3dd4aa26-8929-4a5b-99c0-71a14f787994",
+                                  url="e5",
+                                  is_active=True,
+                                  task="process_user_stats_operation"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_user_device_0(self):
+        response = client.send(pp.CreateUserDevice(
+                                  "a88eef9d-1603-4c02-93ef-57b20af82f42"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_user_device_1(self):
+        response = client.send(pp.CreateUserDevice(
+                                  "a88eef9d-1603-4c02-93ef-57b20af82f42",
+                                  metadata="{\"user_agent\": \"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:120.0) Gecko/20100101 Firefox/120.0\"}"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_get_user_device_0(self):
+        response = client.send(pp.GetUserDevice(
+                                  "6195b8b2-a8cf-4ea0-a06c-ae12a1f0584c"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_activate_user_device_0(self):
+        response = client.send(pp.ActivateUserDevice(
+                                  "77db06ad-c625-42d8-81fc-cb64fe0eb2ff"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_delete_bank_0(self):
+        response = client.send(pp.DeleteBank(
+                                  "2eb68c07-3114-4607-ab3d-27a1ba1d8e86",
+                                  "74ae5605-ec82-41db-b560-3b6b0ee283ca"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_list_banks_0(self):
+        response = client.send(pp.ListBanks(
+                                  "687de962-6d75-40f7-a934-b9d95927312a"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_list_banks_1(self):
+        response = client.send(pp.ListBanks(
+                                  "687de962-6d75-40f7-a934-b9d95927312a",
+                                  private_money_id="557b269c-ec03-4075-99dd-d23f330c9a4a"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_bank_0(self):
+        response = client.send(pp.CreateBank(
+                                  "593ddae2-a52e-4caf-a7f9-bb55a579c8e4",
+                                  "c3231c88-6d0f-4824-ba8a-c0f79ba5d01a",
+                                  "tweakDyg0TFsZujDlCiTABlfIhphFt9MZHKK4Bljx7sJ424",
+                                  "D"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_bank_1(self):
+        response = client.send(pp.CreateBank(
+                                  "593ddae2-a52e-4caf-a7f9-bb55a579c8e4",
+                                  "c3231c88-6d0f-4824-ba8a-c0f79ba5d01a",
+                                  "tweakDyg0TFsZujDlCiTABlfIhphFt9MZHKK4Bljx7sJ424",
+                                  "D",
+                                  birthdate="7dkePpr"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_bank_2(self):
+        response = client.send(pp.CreateBank(
+                                  "593ddae2-a52e-4caf-a7f9-bb55a579c8e4",
+                                  "c3231c88-6d0f-4824-ba8a-c0f79ba5d01a",
+                                  "tweakDyg0TFsZujDlCiTABlfIhphFt9MZHKK4Bljx7sJ424",
+                                  "D",
+                                  email="AJuqXJLC9D@lGjq.com",
+                                  birthdate="c5"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_bank_topup_transaction_0(self):
+        response = client.send(pp.CreateBankTopupTransaction(
+                                  "898a7733-e75b-425c-ab02-a901188a9c05",
+                                  "5bb6b948-9b74-4866-b9e3-2040ac4aa4c4",
+                                  1151,
+                                  "dbe3eb25-81e2-4213-860f-a6fee0943670",
+                                  "aff6b906-e64e-493c-8b6c-ec4ff5ec34ed"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_bank_topup_transaction_1(self):
+        response = client.send(pp.CreateBankTopupTransaction(
+                                  "898a7733-e75b-425c-ab02-a901188a9c05",
+                                  "5bb6b948-9b74-4866-b9e3-2040ac4aa4c4",
+                                  1151,
+                                  "dbe3eb25-81e2-4213-860f-a6fee0943670",
+                                  "aff6b906-e64e-493c-8b6c-ec4ff5ec34ed",
+                                  receiver_user_id="ac6c230d-4308-4029-9b49-ca7167ea377c"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_list_coupons_0(self):
+        response = client.send(pp.ListCoupons(
+                                  "6a1b6546-e7aa-43c5-b0c5-b41b69b9f37a"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_list_coupons_1(self):
+        response = client.send(pp.ListCoupons(
+                                  "6a1b6546-e7aa-43c5-b0c5-b41b69b9f37a",
+                                  per_page=237
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_list_coupons_2(self):
+        response = client.send(pp.ListCoupons(
+                                  "6a1b6546-e7aa-43c5-b0c5-b41b69b9f37a",
+                                  page=8747,
+                                  per_page=620
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_list_coupons_3(self):
+        response = client.send(pp.ListCoupons(
+                                  "6a1b6546-e7aa-43c5-b0c5-b41b69b9f37a",
+                                  available_to="2023-11-14T13:16:14.000000Z",
+                                  page=8224,
+                                  per_page=5424
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_list_coupons_4(self):
+        response = client.send(pp.ListCoupons(
+                                  "6a1b6546-e7aa-43c5-b0c5-b41b69b9f37a",
+                                  available_from="2020-05-02T21:26:29.000000Z",
+                                  available_to="2024-05-15T12:47:57.000000Z",
+                                  page=8419,
+                                  per_page=6105
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_list_coupons_5(self):
+        response = client.send(pp.ListCoupons(
+                                  "6a1b6546-e7aa-43c5-b0c5-b41b69b9f37a",
+                                  available_shop_name="sHe",
+                                  available_from="2025-01-14T01:00:59.000000Z",
+                                  available_to="2020-12-06T13:27:21.000000Z",
+                                  page=8474,
+                                  per_page=6282
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_list_coupons_6(self):
+        response = client.send(pp.ListCoupons(
+                                  "6a1b6546-e7aa-43c5-b0c5-b41b69b9f37a",
+                                  issued_shop_name="6R7zZjofX",
+                                  available_shop_name="p8q4Bfps6V",
+                                  available_from="2025-11-07T15:06:16.000000Z",
+                                  available_to="2022-09-12T07:20:59.000000Z",
+                                  page=258,
+                                  per_page=8482
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_list_coupons_7(self):
+        response = client.send(pp.ListCoupons(
+                                  "6a1b6546-e7aa-43c5-b0c5-b41b69b9f37a",
+                                  coupon_name="wOSBaSPaN",
+                                  issued_shop_name="M4bPYPan8",
+                                  available_shop_name="YIRAIS",
+                                  available_from="2022-10-16T20:56:39.000000Z",
+                                  available_to="2025-06-10T14:52:02.000000Z",
+                                  page=268,
+                                  per_page=263
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_list_coupons_8(self):
+        response = client.send(pp.ListCoupons(
+                                  "6a1b6546-e7aa-43c5-b0c5-b41b69b9f37a",
+                                  coupon_id="2nbw",
+                                  coupon_name="9",
+                                  issued_shop_name="wXrTBW",
+                                  available_shop_name="hKP8S",
+                                  available_from="2022-08-28T14:09:43.000000Z",
+                                  available_to="2024-08-25T08:03:14.000000Z",
+                                  page=9894,
+                                  per_page=571
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_coupon_0(self):
+        response = client.send(pp.CreateCoupon(
+                                  "b397d6b1-61e5-4170-9fe1-6cc35aa32306",
+                                  "enfTVlWMFnuMgJI5wZ1cKhV863o3fLMEPLjDOHvTYhO06QE7ACXnugqJAsKtBEhfGR87GnzBbDtq5K3lfoJShMC6uD2oZ5QpD7GXwDffXUtXBf9of2Ma",
+                                  "2024-02-28T17:56:18.000000Z",
+                                  "2021-11-14T01:19:11.000000Z",
+                                  "02f96792-d294-439a-b9ce-21e0fdcc6168",
+                                  discount_amount=4515
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_coupon_1(self):
+        response = client.send(pp.CreateCoupon(
+                                  "b397d6b1-61e5-4170-9fe1-6cc35aa32306",
+                                  "enfTVlWMFnuMgJI5wZ1cKhV863o3fLMEPLjDOHvTYhO06QE7ACXnugqJAsKtBEhfGR87GnzBbDtq5K3lfoJShMC6uD2oZ5QpD7GXwDffXUtXBf9of2Ma",
+                                  "2024-02-28T17:56:18.000000Z",
+                                  "2021-11-14T01:19:11.000000Z",
+                                  "02f96792-d294-439a-b9ce-21e0fdcc6168",
+                                  discount_amount=8299,
+                                  num_recipients_cap=2850
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_coupon_2(self):
+        response = client.send(pp.CreateCoupon(
+                                  "b397d6b1-61e5-4170-9fe1-6cc35aa32306",
+                                  "enfTVlWMFnuMgJI5wZ1cKhV863o3fLMEPLjDOHvTYhO06QE7ACXnugqJAsKtBEhfGR87GnzBbDtq5K3lfoJShMC6uD2oZ5QpD7GXwDffXUtXBf9of2Ma",
+                                  "2024-02-28T17:56:18.000000Z",
+                                  "2021-11-14T01:19:11.000000Z",
+                                  "02f96792-d294-439a-b9ce-21e0fdcc6168",
+                                  discount_amount=5999,
+                                  storage_id="5e2a538a-f9be-44a8-9e2f-8e9753525172",
+                                  num_recipients_cap=7675
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_coupon_3(self):
+        response = client.send(pp.CreateCoupon(
+                                  "b397d6b1-61e5-4170-9fe1-6cc35aa32306",
+                                  "enfTVlWMFnuMgJI5wZ1cKhV863o3fLMEPLjDOHvTYhO06QE7ACXnugqJAsKtBEhfGR87GnzBbDtq5K3lfoJShMC6uD2oZ5QpD7GXwDffXUtXBf9of2Ma",
+                                  "2024-02-28T17:56:18.000000Z",
+                                  "2021-11-14T01:19:11.000000Z",
+                                  "02f96792-d294-439a-b9ce-21e0fdcc6168",
+                                  discount_amount=2508,
+                                  min_amount=6972,
+                                  storage_id="2556fc53-c824-40c0-b7f3-110f8dc380bf",
+                                  num_recipients_cap=6153
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_coupon_4(self):
+        response = client.send(pp.CreateCoupon(
+                                  "b397d6b1-61e5-4170-9fe1-6cc35aa32306",
+                                  "enfTVlWMFnuMgJI5wZ1cKhV863o3fLMEPLjDOHvTYhO06QE7ACXnugqJAsKtBEhfGR87GnzBbDtq5K3lfoJShMC6uD2oZ5QpD7GXwDffXUtXBf9of2Ma",
+                                  "2024-02-28T17:56:18.000000Z",
+                                  "2021-11-14T01:19:11.000000Z",
+                                  "02f96792-d294-439a-b9ce-21e0fdcc6168",
+                                  discount_amount=6199,
+                                  usage_limit=4713,
+                                  min_amount=7385,
+                                  storage_id="2b787224-d14f-4fd0-af99-f63de7a49823",
+                                  num_recipients_cap=5741
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_coupon_5(self):
+        response = client.send(pp.CreateCoupon(
+                                  "b397d6b1-61e5-4170-9fe1-6cc35aa32306",
+                                  "enfTVlWMFnuMgJI5wZ1cKhV863o3fLMEPLjDOHvTYhO06QE7ACXnugqJAsKtBEhfGR87GnzBbDtq5K3lfoJShMC6uD2oZ5QpD7GXwDffXUtXBf9of2Ma",
+                                  "2024-02-28T17:56:18.000000Z",
+                                  "2021-11-14T01:19:11.000000Z",
+                                  "02f96792-d294-439a-b9ce-21e0fdcc6168",
+                                  discount_amount=6081,
+                                  code="UlMDxo",
+                                  usage_limit=6531,
+                                  min_amount=3495,
+                                  storage_id="bcfd2444-42e1-4802-b2dd-ee6cc1f758aa",
+                                  num_recipients_cap=2205
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_coupon_6(self):
+        response = client.send(pp.CreateCoupon(
+                                  "b397d6b1-61e5-4170-9fe1-6cc35aa32306",
+                                  "enfTVlWMFnuMgJI5wZ1cKhV863o3fLMEPLjDOHvTYhO06QE7ACXnugqJAsKtBEhfGR87GnzBbDtq5K3lfoJShMC6uD2oZ5QpD7GXwDffXUtXBf9of2Ma",
+                                  "2024-02-28T17:56:18.000000Z",
+                                  "2021-11-14T01:19:11.000000Z",
+                                  "02f96792-d294-439a-b9ce-21e0fdcc6168",
+                                  discount_amount=1432,
+                                  is_public=True,
+                                  code="zJC7w",
+                                  usage_limit=1666,
+                                  min_amount=973,
+                                  storage_id="e0fdef01-be00-4ec1-abc6-12d9aecb9928",
+                                  num_recipients_cap=5695
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_coupon_7(self):
+        response = client.send(pp.CreateCoupon(
+                                  "b397d6b1-61e5-4170-9fe1-6cc35aa32306",
+                                  "enfTVlWMFnuMgJI5wZ1cKhV863o3fLMEPLjDOHvTYhO06QE7ACXnugqJAsKtBEhfGR87GnzBbDtq5K3lfoJShMC6uD2oZ5QpD7GXwDffXUtXBf9of2Ma",
+                                  "2024-02-28T17:56:18.000000Z",
+                                  "2021-11-14T01:19:11.000000Z",
+                                  "02f96792-d294-439a-b9ce-21e0fdcc6168",
+                                  discount_amount=5710,
+                                  is_hidden=False,
+                                  is_public=False,
+                                  code="v",
+                                  usage_limit=8365,
+                                  min_amount=3206,
+                                  storage_id="43482fc4-2b8f-4876-af5c-ffe7656a8c0c",
+                                  num_recipients_cap=1201
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_coupon_8(self):
+        response = client.send(pp.CreateCoupon(
+                                  "b397d6b1-61e5-4170-9fe1-6cc35aa32306",
+                                  "enfTVlWMFnuMgJI5wZ1cKhV863o3fLMEPLjDOHvTYhO06QE7ACXnugqJAsKtBEhfGR87GnzBbDtq5K3lfoJShMC6uD2oZ5QpD7GXwDffXUtXBf9of2Ma",
+                                  "2024-02-28T17:56:18.000000Z",
+                                  "2021-11-14T01:19:11.000000Z",
+                                  "02f96792-d294-439a-b9ce-21e0fdcc6168",
+                                  discount_amount=3259,
+                                  is_disabled=True,
+                                  is_hidden=False,
+                                  is_public=True,
+                                  code="2T90aOF",
+                                  usage_limit=7291,
+                                  min_amount=5873,
+                                  storage_id="822d1cbe-0d4c-445a-bea1-7d5c71d9d693",
+                                  num_recipients_cap=7755
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_coupon_9(self):
+        response = client.send(pp.CreateCoupon(
+                                  "b397d6b1-61e5-4170-9fe1-6cc35aa32306",
+                                  "enfTVlWMFnuMgJI5wZ1cKhV863o3fLMEPLjDOHvTYhO06QE7ACXnugqJAsKtBEhfGR87GnzBbDtq5K3lfoJShMC6uD2oZ5QpD7GXwDffXUtXBf9of2Ma",
+                                  "2024-02-28T17:56:18.000000Z",
+                                  "2021-11-14T01:19:11.000000Z",
+                                  "02f96792-d294-439a-b9ce-21e0fdcc6168",
+                                  discount_amount=6999,
+                                  display_ends_at="2026-06-04T03:42:21.000000Z",
+                                  is_disabled=True,
+                                  is_hidden=True,
+                                  is_public=True,
+                                  code="W8mYG8iBpA",
+                                  usage_limit=9482,
+                                  min_amount=7609,
+                                  storage_id="16d1838e-4ef7-4ea6-8b94-01b7f35d06fc",
+                                  num_recipients_cap=3467
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_coupon_10(self):
+        response = client.send(pp.CreateCoupon(
+                                  "b397d6b1-61e5-4170-9fe1-6cc35aa32306",
+                                  "enfTVlWMFnuMgJI5wZ1cKhV863o3fLMEPLjDOHvTYhO06QE7ACXnugqJAsKtBEhfGR87GnzBbDtq5K3lfoJShMC6uD2oZ5QpD7GXwDffXUtXBf9of2Ma",
+                                  "2024-02-28T17:56:18.000000Z",
+                                  "2021-11-14T01:19:11.000000Z",
+                                  "02f96792-d294-439a-b9ce-21e0fdcc6168",
+                                  discount_amount=7878,
+                                  display_starts_at="2022-04-08T23:36:05.000000Z",
+                                  display_ends_at="2020-08-24T04:37:26.000000Z",
+                                  is_disabled=True,
+                                  is_hidden=False,
+                                  is_public=False,
+                                  code="MDJDN9k",
+                                  usage_limit=7018,
+                                  min_amount=1390,
+                                  storage_id="b587a185-df2a-491f-84aa-369a5f4b473f",
+                                  num_recipients_cap=966
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_coupon_11(self):
+        response = client.send(pp.CreateCoupon(
+                                  "b397d6b1-61e5-4170-9fe1-6cc35aa32306",
+                                  "enfTVlWMFnuMgJI5wZ1cKhV863o3fLMEPLjDOHvTYhO06QE7ACXnugqJAsKtBEhfGR87GnzBbDtq5K3lfoJShMC6uD2oZ5QpD7GXwDffXUtXBf9of2Ma",
+                                  "2024-02-28T17:56:18.000000Z",
+                                  "2021-11-14T01:19:11.000000Z",
+                                  "02f96792-d294-439a-b9ce-21e0fdcc6168",
+                                  discount_amount=65,
+                                  discount_upper_limit=1652,
+                                  display_starts_at="2022-09-16T10:59:59.000000Z",
+                                  display_ends_at="2025-01-03T01:16:07.000000Z",
+                                  is_disabled=False,
+                                  is_hidden=True,
+                                  is_public=True,
+                                  code="0y",
+                                  usage_limit=986,
+                                  min_amount=659,
+                                  storage_id="a4cc108c-afc3-4cb3-ad74-119cc76627bd",
+                                  num_recipients_cap=5039
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_coupon_12(self):
+        response = client.send(pp.CreateCoupon(
+                                  "b397d6b1-61e5-4170-9fe1-6cc35aa32306",
+                                  "enfTVlWMFnuMgJI5wZ1cKhV863o3fLMEPLjDOHvTYhO06QE7ACXnugqJAsKtBEhfGR87GnzBbDtq5K3lfoJShMC6uD2oZ5QpD7GXwDffXUtXBf9of2Ma",
+                                  "2024-02-28T17:56:18.000000Z",
+                                  "2021-11-14T01:19:11.000000Z",
+                                  "02f96792-d294-439a-b9ce-21e0fdcc6168",
+                                  discount_amount=2838,
+                                  description="NbCfjtxFXhJHyZxe38yvM1SEczLfO3bcMSuKdq3FslGbkHo1PhxbbT2umORVj1yDfkPqeu7VGzhCxzDjEPJsArCV0qEvJPpVoq77PuYo1FVSdDE8cTf3i5qFGBCHYpL8ODBvwgaMAc0JPVvhl1tkrYQHQhhRs2PIaofbMQ1Wyxx6iPX8wNVpCN",
+                                  discount_upper_limit=1365,
+                                  display_starts_at="2022-07-14T22:11:05.000000Z",
+                                  display_ends_at="2022-12-26T11:24:25.000000Z",
+                                  is_disabled=False,
+                                  is_hidden=False,
+                                  is_public=True,
+                                  code="pK",
+                                  usage_limit=5599,
+                                  min_amount=6989,
+                                  storage_id="76305a7c-a41c-4dbb-b636-19da592a51bd",
+                                  num_recipients_cap=7647
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_coupon_13(self):
+        response = client.send(pp.CreateCoupon(
+                                  "b397d6b1-61e5-4170-9fe1-6cc35aa32306",
+                                  "enfTVlWMFnuMgJI5wZ1cKhV863o3fLMEPLjDOHvTYhO06QE7ACXnugqJAsKtBEhfGR87GnzBbDtq5K3lfoJShMC6uD2oZ5QpD7GXwDffXUtXBf9of2Ma",
+                                  "2024-02-28T17:56:18.000000Z",
+                                  "2021-11-14T01:19:11.000000Z",
+                                  "02f96792-d294-439a-b9ce-21e0fdcc6168",
+                                  discount_amount=2112,
+                                  is_shop_specified=False,
+                                  available_shop_ids=["389c7c8f-8b86-4e4f-8c3c-18741c11186f", "c4bb9991-95a0-4501-b1ef-ebd41af7edf0", "12ea967a-31e0-4063-ae5a-4379328104a7", "dc11ebad-29a0-4280-9cc4-7c5c46a8182c", "e1f5afaf-930d-442d-91cf-26277b9b65dd", "bfe64049-d1d7-429e-bc5e-018095b25256"]
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_coupon_14(self):
+        response = client.send(pp.CreateCoupon(
+                                  "b397d6b1-61e5-4170-9fe1-6cc35aa32306",
+                                  "enfTVlWMFnuMgJI5wZ1cKhV863o3fLMEPLjDOHvTYhO06QE7ACXnugqJAsKtBEhfGR87GnzBbDtq5K3lfoJShMC6uD2oZ5QpD7GXwDffXUtXBf9of2Ma",
+                                  "2024-02-28T17:56:18.000000Z",
+                                  "2021-11-14T01:19:11.000000Z",
+                                  "02f96792-d294-439a-b9ce-21e0fdcc6168",
+                                  discount_amount=1015,
+                                  is_shop_specified=True,
+                                  available_shop_ids=["deaac6d1-cc60-4263-ad5f-a9c7373aa659", "96416662-9aab-4e7d-844b-2d02aec5576c", "9e1f3b05-23e9-4386-8e76-7b79bddff99a", "366df8f2-2803-49c3-85f2-ffcd5270ad0c", "90aba577-34bf-4640-93ce-d6a418a57317", "c4e175f3-6584-464f-8c6d-b34b52d8ca8d", "572a4864-c9f1-45d8-831b-f69a60638c95"],
+                                  num_recipients_cap=7526
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_coupon_15(self):
+        response = client.send(pp.CreateCoupon(
+                                  "b397d6b1-61e5-4170-9fe1-6cc35aa32306",
+                                  "enfTVlWMFnuMgJI5wZ1cKhV863o3fLMEPLjDOHvTYhO06QE7ACXnugqJAsKtBEhfGR87GnzBbDtq5K3lfoJShMC6uD2oZ5QpD7GXwDffXUtXBf9of2Ma",
+                                  "2024-02-28T17:56:18.000000Z",
+                                  "2021-11-14T01:19:11.000000Z",
+                                  "02f96792-d294-439a-b9ce-21e0fdcc6168",
+                                  discount_amount=6146,
+                                  is_shop_specified=True,
+                                  available_shop_ids=["4ee4956a-d17a-4109-a5e0-804192ac7a6d", "32c0de6b-e9d6-4a99-a519-197e2c6a791f", "4aa49501-5779-403c-a016-79a3813cf4e2", "50c3b2a0-f556-45f1-a270-633191a80a1c", "b1224fd9-a3f2-45fa-b510-69f2c7eaf16b", "dc11b00f-892a-4d3f-b193-bc9c195e7387", "2ce23d7b-73c9-4f8f-bbc1-c7f70d8ed063", "564af7ca-5336-435e-b3f8-e8b22e1cf857", "7845fa70-d389-4e82-ac2d-646b882063ac", "f3bff786-e01e-42f1-b2af-403fa3ec4246"],
+                                  storage_id="287f970d-2513-4e64-aa07-2b843397d91e",
+                                  num_recipients_cap=8964
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_coupon_16(self):
+        response = client.send(pp.CreateCoupon(
+                                  "b397d6b1-61e5-4170-9fe1-6cc35aa32306",
+                                  "enfTVlWMFnuMgJI5wZ1cKhV863o3fLMEPLjDOHvTYhO06QE7ACXnugqJAsKtBEhfGR87GnzBbDtq5K3lfoJShMC6uD2oZ5QpD7GXwDffXUtXBf9of2Ma",
+                                  "2024-02-28T17:56:18.000000Z",
+                                  "2021-11-14T01:19:11.000000Z",
+                                  "02f96792-d294-439a-b9ce-21e0fdcc6168",
+                                  discount_amount=8587,
+                                  is_shop_specified=True,
+                                  available_shop_ids=["3bf178fd-30b6-4443-85d4-0f60afda826c", "c0599d18-7637-4b36-ad83-0aa7b3f82427", "948588b4-2775-4431-8093-51e242c40045", "5a77897b-ec55-467c-8a75-b6dbf9e7e38f", "60f9ce2e-4cda-4ea7-b321-cca5f9fd223c", "315959da-402a-4ed8-a445-e65b275e1a90", "a24527e9-8807-4700-a7f3-ec586b237d22", "fffea0c8-fe16-4047-8671-453271930c6f", "4e6e6ce6-ed52-48be-9d3f-642b233df454"],
+                                  min_amount=8943,
+                                  storage_id="c1623ec0-c205-4659-b542-70d858a4a4e7",
+                                  num_recipients_cap=9110
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_coupon_17(self):
+        response = client.send(pp.CreateCoupon(
+                                  "b397d6b1-61e5-4170-9fe1-6cc35aa32306",
+                                  "enfTVlWMFnuMgJI5wZ1cKhV863o3fLMEPLjDOHvTYhO06QE7ACXnugqJAsKtBEhfGR87GnzBbDtq5K3lfoJShMC6uD2oZ5QpD7GXwDffXUtXBf9of2Ma",
+                                  "2024-02-28T17:56:18.000000Z",
+                                  "2021-11-14T01:19:11.000000Z",
+                                  "02f96792-d294-439a-b9ce-21e0fdcc6168",
+                                  discount_amount=4398,
+                                  is_shop_specified=False,
+                                  available_shop_ids=["1bc1c88f-c43c-4493-bb3a-aeea94d5b31a", "ea634ec9-2679-4390-9a1f-261a8f06c4af", "c478a3c9-7cca-49c5-837a-a18ea1501c16", "13efbea8-2d02-4386-8bbe-bad8d9c192fe"],
+                                  usage_limit=1694,
+                                  min_amount=4165,
+                                  storage_id="35763d4d-3285-4374-94a4-daa8d5832453",
+                                  num_recipients_cap=8048
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_coupon_18(self):
+        response = client.send(pp.CreateCoupon(
+                                  "b397d6b1-61e5-4170-9fe1-6cc35aa32306",
+                                  "enfTVlWMFnuMgJI5wZ1cKhV863o3fLMEPLjDOHvTYhO06QE7ACXnugqJAsKtBEhfGR87GnzBbDtq5K3lfoJShMC6uD2oZ5QpD7GXwDffXUtXBf9of2Ma",
+                                  "2024-02-28T17:56:18.000000Z",
+                                  "2021-11-14T01:19:11.000000Z",
+                                  "02f96792-d294-439a-b9ce-21e0fdcc6168",
+                                  discount_amount=3691,
+                                  is_shop_specified=False,
+                                  available_shop_ids=["13006259-8a8b-498c-aba7-b252476446e9", "7a9e66a1-25c1-4c1e-b2e9-378c636dbeeb", "b4fc4696-96d7-468f-aabc-4009d0495107", "800ebd20-18da-4ed3-b615-2d8a06e8f857", "cff76807-9eba-463a-8134-bd5dff00d727", "6b0fd8b9-6385-48bc-826f-12a8a2b9a03d", "a0a38211-0c20-422c-84b8-95c8b4a86ead", "6437c99d-b1d1-41d5-8521-ee035e1d7aa8"],
+                                  code="ypAtZsgS",
+                                  usage_limit=7620,
+                                  min_amount=3919,
+                                  storage_id="c1961a3d-49c1-457f-9bd3-05086061a50b",
+                                  num_recipients_cap=430
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_coupon_19(self):
+        response = client.send(pp.CreateCoupon(
+                                  "b397d6b1-61e5-4170-9fe1-6cc35aa32306",
+                                  "enfTVlWMFnuMgJI5wZ1cKhV863o3fLMEPLjDOHvTYhO06QE7ACXnugqJAsKtBEhfGR87GnzBbDtq5K3lfoJShMC6uD2oZ5QpD7GXwDffXUtXBf9of2Ma",
+                                  "2024-02-28T17:56:18.000000Z",
+                                  "2021-11-14T01:19:11.000000Z",
+                                  "02f96792-d294-439a-b9ce-21e0fdcc6168",
+                                  discount_amount=5686,
+                                  is_shop_specified=False,
+                                  available_shop_ids=["4854e7be-40d7-432c-8f80-758240344cbe", "762e1f92-1034-4b08-88ac-ae79a6f1569d", "e0a172e3-3f23-4945-8bbe-5981d0ab5c65", "f2886a2f-8fc8-4472-aebb-0926a5ba9c34", "9adc3036-eb33-4305-9736-7829a4717491", "aaad489b-28ec-4896-929c-52d834dae4de", "e993b89b-d9d4-452e-b2b2-e78d417b0b1f"],
+                                  is_public=True,
+                                  code="PpZt0j1CI3",
+                                  usage_limit=8812,
+                                  min_amount=3485,
+                                  storage_id="edac1114-1fca-4214-90b3-39b02129d7f1",
+                                  num_recipients_cap=261
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_coupon_20(self):
+        response = client.send(pp.CreateCoupon(
+                                  "b397d6b1-61e5-4170-9fe1-6cc35aa32306",
+                                  "enfTVlWMFnuMgJI5wZ1cKhV863o3fLMEPLjDOHvTYhO06QE7ACXnugqJAsKtBEhfGR87GnzBbDtq5K3lfoJShMC6uD2oZ5QpD7GXwDffXUtXBf9of2Ma",
+                                  "2024-02-28T17:56:18.000000Z",
+                                  "2021-11-14T01:19:11.000000Z",
+                                  "02f96792-d294-439a-b9ce-21e0fdcc6168",
+                                  discount_amount=5278,
+                                  is_shop_specified=False,
+                                  available_shop_ids=["028382fe-4112-4156-b266-6139e0c4505b", "4f3f253b-57b9-4024-ad7e-39d09cb349cf", "681ce5a6-e46f-4ee0-ac71-77318f3eefba", "3fc1d565-2a5e-45e9-aad7-713961a4d840", "db71b318-6fd2-45ad-ba75-cc7ed5ee63ce", "b260b41a-fa5e-44c8-9fd8-a85ec8e3dfcc", "d2b96673-e318-4f62-a5fd-17599c7ed26d", "b0c8565d-3aac-46f2-a6a9-4ebaa4b5c0c8", "a17b3bf7-e9e9-4cba-80a5-eb57374200b6"],
+                                  is_hidden=False,
+                                  is_public=False,
+                                  code="eh",
+                                  usage_limit=2975,
+                                  min_amount=6390,
+                                  storage_id="2c5c2e1b-8b4b-454c-a8f5-10b9a1df1fea",
+                                  num_recipients_cap=6868
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_coupon_21(self):
+        response = client.send(pp.CreateCoupon(
+                                  "b397d6b1-61e5-4170-9fe1-6cc35aa32306",
+                                  "enfTVlWMFnuMgJI5wZ1cKhV863o3fLMEPLjDOHvTYhO06QE7ACXnugqJAsKtBEhfGR87GnzBbDtq5K3lfoJShMC6uD2oZ5QpD7GXwDffXUtXBf9of2Ma",
+                                  "2024-02-28T17:56:18.000000Z",
+                                  "2021-11-14T01:19:11.000000Z",
+                                  "02f96792-d294-439a-b9ce-21e0fdcc6168",
+                                  discount_amount=2041,
+                                  is_shop_specified=True,
+                                  available_shop_ids=["3b51ea6b-0a40-48ab-91f9-d94492b0c498"],
+                                  is_disabled=False,
+                                  is_hidden=False,
+                                  is_public=False,
+                                  code="xjQhXv",
+                                  usage_limit=1649,
+                                  min_amount=643,
+                                  storage_id="50ac1dba-b027-444e-986b-c555688926f7",
+                                  num_recipients_cap=6897
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_coupon_22(self):
+        response = client.send(pp.CreateCoupon(
+                                  "b397d6b1-61e5-4170-9fe1-6cc35aa32306",
+                                  "enfTVlWMFnuMgJI5wZ1cKhV863o3fLMEPLjDOHvTYhO06QE7ACXnugqJAsKtBEhfGR87GnzBbDtq5K3lfoJShMC6uD2oZ5QpD7GXwDffXUtXBf9of2Ma",
+                                  "2024-02-28T17:56:18.000000Z",
+                                  "2021-11-14T01:19:11.000000Z",
+                                  "02f96792-d294-439a-b9ce-21e0fdcc6168",
+                                  discount_amount=2564,
+                                  is_shop_specified=False,
+                                  available_shop_ids=["8aad454f-924a-4762-a67e-430e5cf27bcd", "655bd3fa-a6d4-4704-90cd-15e9ca3bca35", "c919ccce-1507-49e1-91c4-b2f167378d76", "4667178a-2249-402f-8b8e-5f6bd311f145", "434f4022-72e7-4eeb-a902-4ed5298f0d91", "5a906abf-0131-42e9-874a-916f6f5eb934", "c04339fc-2e56-4380-a4a6-0b042fe6d10d", "9214441d-65e5-4a75-af31-d714188bfa0e", "abfc0389-d2ee-4d44-a4b6-86322923df70"],
+                                  display_ends_at="2025-03-14T02:49:41.000000Z",
+                                  is_disabled=False,
+                                  is_hidden=True,
+                                  is_public=True,
+                                  code="fX",
+                                  usage_limit=6786,
+                                  min_amount=4809,
+                                  storage_id="daca3319-2b62-4c75-973a-7dd7b5e99492",
+                                  num_recipients_cap=234
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_coupon_23(self):
+        response = client.send(pp.CreateCoupon(
+                                  "b397d6b1-61e5-4170-9fe1-6cc35aa32306",
+                                  "enfTVlWMFnuMgJI5wZ1cKhV863o3fLMEPLjDOHvTYhO06QE7ACXnugqJAsKtBEhfGR87GnzBbDtq5K3lfoJShMC6uD2oZ5QpD7GXwDffXUtXBf9of2Ma",
+                                  "2024-02-28T17:56:18.000000Z",
+                                  "2021-11-14T01:19:11.000000Z",
+                                  "02f96792-d294-439a-b9ce-21e0fdcc6168",
+                                  discount_amount=6548,
+                                  is_shop_specified=True,
+                                  available_shop_ids=["f665a61e-c233-4fdd-a6bf-e55538ef4c02", "cbc72759-5781-464f-bad7-aea9f8bc3f0a", "a7052107-d200-462e-afc5-3d7a8cf8b0ed", "4d13f1b8-6bc1-4432-83c1-f5c7456e8e3c", "2d2030ec-5481-4899-a13d-150c4b121196", "8f223a0f-eb1f-4420-b9a3-e80ffb6a15f9", "508e0ee9-c68b-4b76-985b-6d0799b36dda", "b7e484c2-7223-43af-b8e6-291c0ed0ebde", "d6e08ad1-028f-4836-9409-d8dc17170cd8", "79503dac-28bb-4fcd-a95c-a6ff3be0d4c1"],
+                                  display_starts_at="2024-12-29T21:43:48.000000Z",
+                                  display_ends_at="2023-04-22T20:16:04.000000Z",
+                                  is_disabled=False,
+                                  is_hidden=False,
+                                  is_public=True,
+                                  code="SO",
+                                  usage_limit=1779,
+                                  min_amount=9793,
+                                  storage_id="3f387246-01fb-4f4d-8352-7d3a81493dee",
+                                  num_recipients_cap=7490
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_coupon_24(self):
+        response = client.send(pp.CreateCoupon(
+                                  "b397d6b1-61e5-4170-9fe1-6cc35aa32306",
+                                  "enfTVlWMFnuMgJI5wZ1cKhV863o3fLMEPLjDOHvTYhO06QE7ACXnugqJAsKtBEhfGR87GnzBbDtq5K3lfoJShMC6uD2oZ5QpD7GXwDffXUtXBf9of2Ma",
+                                  "2024-02-28T17:56:18.000000Z",
+                                  "2021-11-14T01:19:11.000000Z",
+                                  "02f96792-d294-439a-b9ce-21e0fdcc6168",
+                                  discount_amount=1559,
+                                  is_shop_specified=True,
+                                  available_shop_ids=["41c9faf1-6a1c-4aca-a283-10f6159ba4ba", "225292b3-ef5d-4c9e-83a6-3284c791280f", "8212e6d9-8786-4f6f-a93f-3429a1ac317c"],
+                                  discount_upper_limit=7065,
+                                  display_starts_at="2024-07-04T21:40:30.000000Z",
+                                  display_ends_at="2026-05-04T19:17:37.000000Z",
+                                  is_disabled=True,
+                                  is_hidden=True,
+                                  is_public=True,
+                                  code="UUxf",
+                                  usage_limit=4757,
+                                  min_amount=510,
+                                  storage_id="34147fc8-188d-47aa-a415-1eeb0973bf46",
+                                  num_recipients_cap=9947
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_coupon_25(self):
+        response = client.send(pp.CreateCoupon(
+                                  "b397d6b1-61e5-4170-9fe1-6cc35aa32306",
+                                  "enfTVlWMFnuMgJI5wZ1cKhV863o3fLMEPLjDOHvTYhO06QE7ACXnugqJAsKtBEhfGR87GnzBbDtq5K3lfoJShMC6uD2oZ5QpD7GXwDffXUtXBf9of2Ma",
+                                  "2024-02-28T17:56:18.000000Z",
+                                  "2021-11-14T01:19:11.000000Z",
+                                  "02f96792-d294-439a-b9ce-21e0fdcc6168",
+                                  discount_amount=8158,
+                                  is_shop_specified=False,
+                                  available_shop_ids=["15b81c8d-186a-4ba7-af6a-bab42c0c28ba", "d7b4b2c5-ec60-4119-a982-c960593e3439", "d8764f1d-5fa5-475c-b028-43b6eb0a2f68", "28d67c1b-236a-471d-92cf-0202371e9ea8"],
+                                  description="DSKfXhRhf12fH18u3lWSr6bxBxhq8hzLJKGl7pegu99iLkGceRH09p3Djf3UXXM3TuFXvJTrk8Ursx5VM8uakcEIyxQz7D46SGfEdpD0URVkFLTmlxp8SI9cXescrmSD5nkp7THGlyH3t2HB4wHFbCGx0Xzqx2wtaKpu1qdmiKn22F3ctIsxTTV24W3iMjgCaf4v1F7zb24TvVYy",
+                                  discount_upper_limit=4104,
+                                  display_starts_at="2023-10-08T11:21:01.000000Z",
+                                  display_ends_at="2021-04-15T18:58:15.000000Z",
+                                  is_disabled=True,
+                                  is_hidden=False,
+                                  is_public=False,
+                                  code="oNYL",
+                                  usage_limit=7753,
+                                  min_amount=545,
+                                  storage_id="b2be0958-4786-41f8-a48d-6ef122d24cef",
+                                  num_recipients_cap=8033
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_coupon_26(self):
+        response = client.send(pp.CreateCoupon(
+                                  "b397d6b1-61e5-4170-9fe1-6cc35aa32306",
+                                  "enfTVlWMFnuMgJI5wZ1cKhV863o3fLMEPLjDOHvTYhO06QE7ACXnugqJAsKtBEhfGR87GnzBbDtq5K3lfoJShMC6uD2oZ5QpD7GXwDffXUtXBf9of2Ma",
+                                  "2024-02-28T17:56:18.000000Z",
+                                  "2021-11-14T01:19:11.000000Z",
+                                  "02f96792-d294-439a-b9ce-21e0fdcc6168",
+                                  discount_percentage=3822.0
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_coupon_27(self):
+        response = client.send(pp.CreateCoupon(
+                                  "b397d6b1-61e5-4170-9fe1-6cc35aa32306",
+                                  "enfTVlWMFnuMgJI5wZ1cKhV863o3fLMEPLjDOHvTYhO06QE7ACXnugqJAsKtBEhfGR87GnzBbDtq5K3lfoJShMC6uD2oZ5QpD7GXwDffXUtXBf9of2Ma",
+                                  "2024-02-28T17:56:18.000000Z",
+                                  "2021-11-14T01:19:11.000000Z",
+                                  "02f96792-d294-439a-b9ce-21e0fdcc6168",
+                                  discount_percentage=619.0,
+                                  num_recipients_cap=6942
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_coupon_28(self):
+        response = client.send(pp.CreateCoupon(
+                                  "b397d6b1-61e5-4170-9fe1-6cc35aa32306",
+                                  "enfTVlWMFnuMgJI5wZ1cKhV863o3fLMEPLjDOHvTYhO06QE7ACXnugqJAsKtBEhfGR87GnzBbDtq5K3lfoJShMC6uD2oZ5QpD7GXwDffXUtXBf9of2Ma",
+                                  "2024-02-28T17:56:18.000000Z",
+                                  "2021-11-14T01:19:11.000000Z",
+                                  "02f96792-d294-439a-b9ce-21e0fdcc6168",
+                                  discount_percentage=71.0,
+                                  storage_id="c5bf1d7d-08f1-4e58-acca-0298946c5f70",
+                                  num_recipients_cap=380
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_coupon_29(self):
+        response = client.send(pp.CreateCoupon(
+                                  "b397d6b1-61e5-4170-9fe1-6cc35aa32306",
+                                  "enfTVlWMFnuMgJI5wZ1cKhV863o3fLMEPLjDOHvTYhO06QE7ACXnugqJAsKtBEhfGR87GnzBbDtq5K3lfoJShMC6uD2oZ5QpD7GXwDffXUtXBf9of2Ma",
+                                  "2024-02-28T17:56:18.000000Z",
+                                  "2021-11-14T01:19:11.000000Z",
+                                  "02f96792-d294-439a-b9ce-21e0fdcc6168",
+                                  discount_percentage=4050.0,
+                                  min_amount=2129,
+                                  storage_id="ee1b18f7-4c2b-48db-b039-f32a0ac6eaee",
+                                  num_recipients_cap=4373
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_coupon_30(self):
+        response = client.send(pp.CreateCoupon(
+                                  "b397d6b1-61e5-4170-9fe1-6cc35aa32306",
+                                  "enfTVlWMFnuMgJI5wZ1cKhV863o3fLMEPLjDOHvTYhO06QE7ACXnugqJAsKtBEhfGR87GnzBbDtq5K3lfoJShMC6uD2oZ5QpD7GXwDffXUtXBf9of2Ma",
+                                  "2024-02-28T17:56:18.000000Z",
+                                  "2021-11-14T01:19:11.000000Z",
+                                  "02f96792-d294-439a-b9ce-21e0fdcc6168",
+                                  discount_percentage=5817.0,
+                                  usage_limit=2981,
+                                  min_amount=7071,
+                                  storage_id="13248163-bf76-4830-9884-e6f0353b9332",
+                                  num_recipients_cap=890
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_coupon_31(self):
+        response = client.send(pp.CreateCoupon(
+                                  "b397d6b1-61e5-4170-9fe1-6cc35aa32306",
+                                  "enfTVlWMFnuMgJI5wZ1cKhV863o3fLMEPLjDOHvTYhO06QE7ACXnugqJAsKtBEhfGR87GnzBbDtq5K3lfoJShMC6uD2oZ5QpD7GXwDffXUtXBf9of2Ma",
+                                  "2024-02-28T17:56:18.000000Z",
+                                  "2021-11-14T01:19:11.000000Z",
+                                  "02f96792-d294-439a-b9ce-21e0fdcc6168",
+                                  discount_percentage=5735.0,
+                                  code="KqGnnOeMt",
+                                  usage_limit=7878,
+                                  min_amount=6042,
+                                  storage_id="01d4b674-9597-4e6f-b312-ae1d03e5f0be",
+                                  num_recipients_cap=6530
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_coupon_32(self):
+        response = client.send(pp.CreateCoupon(
+                                  "b397d6b1-61e5-4170-9fe1-6cc35aa32306",
+                                  "enfTVlWMFnuMgJI5wZ1cKhV863o3fLMEPLjDOHvTYhO06QE7ACXnugqJAsKtBEhfGR87GnzBbDtq5K3lfoJShMC6uD2oZ5QpD7GXwDffXUtXBf9of2Ma",
+                                  "2024-02-28T17:56:18.000000Z",
+                                  "2021-11-14T01:19:11.000000Z",
+                                  "02f96792-d294-439a-b9ce-21e0fdcc6168",
+                                  discount_percentage=6720.0,
+                                  is_public=True,
+                                  code="BMyDD",
+                                  usage_limit=2080,
+                                  min_amount=7579,
+                                  storage_id="ba85673b-dbb0-4c91-8aa9-a0ab00ce5929",
+                                  num_recipients_cap=8340
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_coupon_33(self):
+        response = client.send(pp.CreateCoupon(
+                                  "b397d6b1-61e5-4170-9fe1-6cc35aa32306",
+                                  "enfTVlWMFnuMgJI5wZ1cKhV863o3fLMEPLjDOHvTYhO06QE7ACXnugqJAsKtBEhfGR87GnzBbDtq5K3lfoJShMC6uD2oZ5QpD7GXwDffXUtXBf9of2Ma",
+                                  "2024-02-28T17:56:18.000000Z",
+                                  "2021-11-14T01:19:11.000000Z",
+                                  "02f96792-d294-439a-b9ce-21e0fdcc6168",
+                                  discount_percentage=4204.0,
+                                  is_hidden=True,
+                                  is_public=False,
+                                  code="WFE85",
+                                  usage_limit=1370,
+                                  min_amount=9255,
+                                  storage_id="4abb60e2-5755-49aa-bde1-d2ae26ab5320",
+                                  num_recipients_cap=7967
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_coupon_34(self):
+        response = client.send(pp.CreateCoupon(
+                                  "b397d6b1-61e5-4170-9fe1-6cc35aa32306",
+                                  "enfTVlWMFnuMgJI5wZ1cKhV863o3fLMEPLjDOHvTYhO06QE7ACXnugqJAsKtBEhfGR87GnzBbDtq5K3lfoJShMC6uD2oZ5QpD7GXwDffXUtXBf9of2Ma",
+                                  "2024-02-28T17:56:18.000000Z",
+                                  "2021-11-14T01:19:11.000000Z",
+                                  "02f96792-d294-439a-b9ce-21e0fdcc6168",
+                                  discount_percentage=6740.0,
+                                  is_disabled=True,
+                                  is_hidden=False,
+                                  is_public=True,
+                                  code="hmx5",
+                                  usage_limit=4448,
+                                  min_amount=6411,
+                                  storage_id="e5eb904c-b693-4c71-8293-9527089550f6",
+                                  num_recipients_cap=7015
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_coupon_35(self):
+        response = client.send(pp.CreateCoupon(
+                                  "b397d6b1-61e5-4170-9fe1-6cc35aa32306",
+                                  "enfTVlWMFnuMgJI5wZ1cKhV863o3fLMEPLjDOHvTYhO06QE7ACXnugqJAsKtBEhfGR87GnzBbDtq5K3lfoJShMC6uD2oZ5QpD7GXwDffXUtXBf9of2Ma",
+                                  "2024-02-28T17:56:18.000000Z",
+                                  "2021-11-14T01:19:11.000000Z",
+                                  "02f96792-d294-439a-b9ce-21e0fdcc6168",
+                                  discount_percentage=5079.0,
+                                  display_ends_at="2024-10-25T10:16:18.000000Z",
+                                  is_disabled=False,
+                                  is_hidden=False,
+                                  is_public=True,
+                                  code="EB880lMB",
+                                  usage_limit=9533,
+                                  min_amount=4932,
+                                  storage_id="d321bac5-e32a-4a88-80de-3d19a602c8f4",
+                                  num_recipients_cap=5095
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_coupon_36(self):
+        response = client.send(pp.CreateCoupon(
+                                  "b397d6b1-61e5-4170-9fe1-6cc35aa32306",
+                                  "enfTVlWMFnuMgJI5wZ1cKhV863o3fLMEPLjDOHvTYhO06QE7ACXnugqJAsKtBEhfGR87GnzBbDtq5K3lfoJShMC6uD2oZ5QpD7GXwDffXUtXBf9of2Ma",
+                                  "2024-02-28T17:56:18.000000Z",
+                                  "2021-11-14T01:19:11.000000Z",
+                                  "02f96792-d294-439a-b9ce-21e0fdcc6168",
+                                  discount_percentage=9079.0,
+                                  display_starts_at="2026-03-29T13:02:45.000000Z",
+                                  display_ends_at="2022-06-09T23:48:40.000000Z",
+                                  is_disabled=True,
+                                  is_hidden=False,
+                                  is_public=True,
+                                  code="scPUoeV1X",
+                                  usage_limit=2077,
+                                  min_amount=8254,
+                                  storage_id="227d8f5f-23c8-4eb7-9138-cde8a3064caf",
+                                  num_recipients_cap=5088
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_coupon_37(self):
+        response = client.send(pp.CreateCoupon(
+                                  "b397d6b1-61e5-4170-9fe1-6cc35aa32306",
+                                  "enfTVlWMFnuMgJI5wZ1cKhV863o3fLMEPLjDOHvTYhO06QE7ACXnugqJAsKtBEhfGR87GnzBbDtq5K3lfoJShMC6uD2oZ5QpD7GXwDffXUtXBf9of2Ma",
+                                  "2024-02-28T17:56:18.000000Z",
+                                  "2021-11-14T01:19:11.000000Z",
+                                  "02f96792-d294-439a-b9ce-21e0fdcc6168",
+                                  discount_percentage=7751.0,
+                                  discount_upper_limit=9738,
+                                  display_starts_at="2025-12-03T15:51:58.000000Z",
+                                  display_ends_at="2025-05-21T19:35:42.000000Z",
+                                  is_disabled=True,
+                                  is_hidden=False,
+                                  is_public=True,
+                                  code="x9H0O",
+                                  usage_limit=6352,
+                                  min_amount=951,
+                                  storage_id="e1337ad2-d4db-480b-98f3-330e2a150ea6",
+                                  num_recipients_cap=2564
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_coupon_38(self):
+        response = client.send(pp.CreateCoupon(
+                                  "b397d6b1-61e5-4170-9fe1-6cc35aa32306",
+                                  "enfTVlWMFnuMgJI5wZ1cKhV863o3fLMEPLjDOHvTYhO06QE7ACXnugqJAsKtBEhfGR87GnzBbDtq5K3lfoJShMC6uD2oZ5QpD7GXwDffXUtXBf9of2Ma",
+                                  "2024-02-28T17:56:18.000000Z",
+                                  "2021-11-14T01:19:11.000000Z",
+                                  "02f96792-d294-439a-b9ce-21e0fdcc6168",
+                                  discount_percentage=4345.0,
+                                  description="9p5y2A7XdzXIFXZbjsiiNiXZ0lFTg0buQwKeaQ4HWfPuDn8vtLGTKy9baAXpUrNxQgJv2d1RjRDvxxlQFhM2eopmIlmvqzqnGOYbg6rdqjemTbEPE7it6nxw8VlzyCNbz8zcALV0qfahEqSWpbWk8lIjmXf3crokuVBQQlsA8T5nZUMuDqspHuPmGiU",
+                                  discount_upper_limit=3865,
+                                  display_starts_at="2025-10-15T05:59:02.000000Z",
+                                  display_ends_at="2020-07-25T19:29:19.000000Z",
+                                  is_disabled=True,
+                                  is_hidden=True,
+                                  is_public=False,
+                                  code="eza9F",
+                                  usage_limit=2936,
+                                  min_amount=7800,
+                                  storage_id="8721c601-b223-4e3c-b39b-10c7a3a88503",
+                                  num_recipients_cap=9301
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_coupon_39(self):
+        response = client.send(pp.CreateCoupon(
+                                  "b397d6b1-61e5-4170-9fe1-6cc35aa32306",
+                                  "enfTVlWMFnuMgJI5wZ1cKhV863o3fLMEPLjDOHvTYhO06QE7ACXnugqJAsKtBEhfGR87GnzBbDtq5K3lfoJShMC6uD2oZ5QpD7GXwDffXUtXBf9of2Ma",
+                                  "2024-02-28T17:56:18.000000Z",
+                                  "2021-11-14T01:19:11.000000Z",
+                                  "02f96792-d294-439a-b9ce-21e0fdcc6168",
+                                  discount_percentage=6567.0,
+                                  is_shop_specified=False,
+                                  available_shop_ids=["bab9e0dc-4781-4a1b-8a75-f1606f03ddf5", "ded2e76e-7e04-4d0d-9f10-d24d7e9bb9ce", "7fd33a9c-8a88-4c9f-9228-bfde003acb20", "1cbbbd4d-4337-4c4a-bd55-7fd628398cf5", "6c5baa37-79fc-43d9-a7a8-849e27f7f744", "5aad0f84-a949-48b0-9f0f-a75f25d0a5a1"]
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_coupon_40(self):
+        response = client.send(pp.CreateCoupon(
+                                  "b397d6b1-61e5-4170-9fe1-6cc35aa32306",
+                                  "enfTVlWMFnuMgJI5wZ1cKhV863o3fLMEPLjDOHvTYhO06QE7ACXnugqJAsKtBEhfGR87GnzBbDtq5K3lfoJShMC6uD2oZ5QpD7GXwDffXUtXBf9of2Ma",
+                                  "2024-02-28T17:56:18.000000Z",
+                                  "2021-11-14T01:19:11.000000Z",
+                                  "02f96792-d294-439a-b9ce-21e0fdcc6168",
+                                  discount_percentage=3371.0,
+                                  is_shop_specified=False,
+                                  available_shop_ids=["bf73b9a6-823c-47fa-9d83-a8d3b92ef5ed", "a9779310-4d2a-4a87-a1b6-e8b3eeeca7e3", "0a917dfe-dd21-43ad-955e-533df65ecabd", "316e7fb4-cc19-4439-bae1-79b1e9d64e9c", "b089b6a8-a03e-44a7-91aa-239f9a8e424a", "c5077541-36af-4f1b-8c1e-f3e330c78f70"],
+                                  num_recipients_cap=3269
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_coupon_41(self):
+        response = client.send(pp.CreateCoupon(
+                                  "b397d6b1-61e5-4170-9fe1-6cc35aa32306",
+                                  "enfTVlWMFnuMgJI5wZ1cKhV863o3fLMEPLjDOHvTYhO06QE7ACXnugqJAsKtBEhfGR87GnzBbDtq5K3lfoJShMC6uD2oZ5QpD7GXwDffXUtXBf9of2Ma",
+                                  "2024-02-28T17:56:18.000000Z",
+                                  "2021-11-14T01:19:11.000000Z",
+                                  "02f96792-d294-439a-b9ce-21e0fdcc6168",
+                                  discount_percentage=9021.0,
+                                  is_shop_specified=True,
+                                  available_shop_ids=["6b3fd959-44cb-4ea1-a06f-b83ee825f261", "2929e495-c78d-4247-a6da-3f187b589ca7", "f9f0d271-b0c6-4651-84d2-89a970b81910", "43a6a612-098d-4ddf-a0cd-df2f35173e59", "31594622-88ea-46b7-a5c9-799653b2b4bb", "813fe192-31b0-409a-8fe9-d627d7260bd4", "f3415e22-ffe7-4520-be3f-022a793b72ac", "528e0966-fd3d-4c50-ba96-2272a2523db6"],
+                                  storage_id="2234c8b8-0ee6-42d0-a62b-9e322d17f741",
+                                  num_recipients_cap=5023
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_coupon_42(self):
+        response = client.send(pp.CreateCoupon(
+                                  "b397d6b1-61e5-4170-9fe1-6cc35aa32306",
+                                  "enfTVlWMFnuMgJI5wZ1cKhV863o3fLMEPLjDOHvTYhO06QE7ACXnugqJAsKtBEhfGR87GnzBbDtq5K3lfoJShMC6uD2oZ5QpD7GXwDffXUtXBf9of2Ma",
+                                  "2024-02-28T17:56:18.000000Z",
+                                  "2021-11-14T01:19:11.000000Z",
+                                  "02f96792-d294-439a-b9ce-21e0fdcc6168",
+                                  discount_percentage=3205.0,
+                                  is_shop_specified=False,
+                                  available_shop_ids=["9b2bced2-7ac3-4526-b15b-dfd673aef183", "c8c46409-1713-40df-a06a-734909fab14d", "0b7a895a-1bac-46f5-9506-adec6781996c", "08e9bc08-930e-4ff4-a1da-0974329da26a", "ecbee317-c3e7-484d-bb3a-6ce61404a986", "df780275-8ba2-4fc4-b86e-ef8b7c7945b3", "ebc46d24-402f-409d-913f-b4277ca0bde7", "6e854da7-9273-4cae-a9e4-5bc57fdbb68f", "49c7421f-6d60-4075-a611-363280112b4e"],
+                                  min_amount=5954,
+                                  storage_id="83516e48-a3e5-4204-97a1-325aa96f5c1f",
+                                  num_recipients_cap=7358
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_coupon_43(self):
+        response = client.send(pp.CreateCoupon(
+                                  "b397d6b1-61e5-4170-9fe1-6cc35aa32306",
+                                  "enfTVlWMFnuMgJI5wZ1cKhV863o3fLMEPLjDOHvTYhO06QE7ACXnugqJAsKtBEhfGR87GnzBbDtq5K3lfoJShMC6uD2oZ5QpD7GXwDffXUtXBf9of2Ma",
+                                  "2024-02-28T17:56:18.000000Z",
+                                  "2021-11-14T01:19:11.000000Z",
+                                  "02f96792-d294-439a-b9ce-21e0fdcc6168",
+                                  discount_percentage=5652.0,
+                                  is_shop_specified=True,
+                                  available_shop_ids=["2b73fe5b-285c-47bd-a8d9-c04b46610abd", "fb0f1e6e-3687-43f2-9f19-747a07d3db4a", "f4450c23-4d1a-4e57-bb0c-b7fca018ea92", "91e9338d-f119-437b-a970-6ef4912f9c7c", "d6fd4288-fb98-47cd-a82a-623f3a0a71f9", "1904eb22-2caa-4a81-8f25-8aafc4c45598", "46ecef57-c655-438e-a921-43b6f2e335b4", "1f7a18d9-e0ae-4eda-a291-ab2c6a8e4a47"],
+                                  usage_limit=1818,
+                                  min_amount=7945,
+                                  storage_id="fa1a52e5-599f-46f9-8353-c5c6ad391f48",
+                                  num_recipients_cap=9767
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_coupon_44(self):
+        response = client.send(pp.CreateCoupon(
+                                  "b397d6b1-61e5-4170-9fe1-6cc35aa32306",
+                                  "enfTVlWMFnuMgJI5wZ1cKhV863o3fLMEPLjDOHvTYhO06QE7ACXnugqJAsKtBEhfGR87GnzBbDtq5K3lfoJShMC6uD2oZ5QpD7GXwDffXUtXBf9of2Ma",
+                                  "2024-02-28T17:56:18.000000Z",
+                                  "2021-11-14T01:19:11.000000Z",
+                                  "02f96792-d294-439a-b9ce-21e0fdcc6168",
+                                  discount_percentage=3821.0,
+                                  is_shop_specified=False,
+                                  available_shop_ids=["08042008-ab72-4e43-bb42-c9bab3169538", "8ea1343e-d298-44de-b424-3f8352ef8f8b", "9b1c61f1-8a8c-4a38-b1fb-9704b9f21ca0", "b610d032-3bc9-460e-96d9-5e03bf073c32"],
+                                  code="UPxEK8m",
+                                  usage_limit=6573,
+                                  min_amount=4615,
+                                  storage_id="0073fc0a-6b48-4e1f-aea3-42a8725ef9bd",
+                                  num_recipients_cap=9256
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_coupon_45(self):
+        response = client.send(pp.CreateCoupon(
+                                  "b397d6b1-61e5-4170-9fe1-6cc35aa32306",
+                                  "enfTVlWMFnuMgJI5wZ1cKhV863o3fLMEPLjDOHvTYhO06QE7ACXnugqJAsKtBEhfGR87GnzBbDtq5K3lfoJShMC6uD2oZ5QpD7GXwDffXUtXBf9of2Ma",
+                                  "2024-02-28T17:56:18.000000Z",
+                                  "2021-11-14T01:19:11.000000Z",
+                                  "02f96792-d294-439a-b9ce-21e0fdcc6168",
+                                  discount_percentage=6377.0,
+                                  is_shop_specified=False,
+                                  available_shop_ids=["d7bfe7a5-7ba1-4cc9-a1dc-5ec3c80d48c0", "36882209-50aa-4cdf-aeb2-9bf8ff5c7a05", "681b7af4-79a9-4465-93a9-8bccff615686", "f03071c5-99ed-4d4f-8e7b-cd1fc16838f0", "110c182b-f773-46b6-a575-b6db4272a7e0", "6bd3de7d-c234-41d0-b2b2-ef72c6137598", "3e54853f-438e-4599-9c9c-063eb26aec6a", "a78647d4-bf34-459b-a47f-04ae80f32fa6"],
+                                  is_public=False,
+                                  code="T",
+                                  usage_limit=5913,
+                                  min_amount=3350,
+                                  storage_id="7a92cffd-75c2-4de7-bd4c-cbbde99d0797",
+                                  num_recipients_cap=5912
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_coupon_46(self):
+        response = client.send(pp.CreateCoupon(
+                                  "b397d6b1-61e5-4170-9fe1-6cc35aa32306",
+                                  "enfTVlWMFnuMgJI5wZ1cKhV863o3fLMEPLjDOHvTYhO06QE7ACXnugqJAsKtBEhfGR87GnzBbDtq5K3lfoJShMC6uD2oZ5QpD7GXwDffXUtXBf9of2Ma",
+                                  "2024-02-28T17:56:18.000000Z",
+                                  "2021-11-14T01:19:11.000000Z",
+                                  "02f96792-d294-439a-b9ce-21e0fdcc6168",
+                                  discount_percentage=9330.0,
+                                  is_shop_specified=False,
+                                  available_shop_ids=["0d52c14a-f1ec-4e22-a411-049cbf709096", "b74f52d9-27c0-4584-ba14-61956a4f06ac", "91571aed-6a06-49d3-9e2f-585efed8d786", "19edcb84-0dfd-4b05-b144-658eda75c8b3", "3e17ce7b-3aea-4b68-be0d-129dc554ac5e", "d6215d30-17cb-4474-af51-6e612ecca4a0", "db0a52e5-9ffe-44e1-97b3-75f6f053cb2e", "b1c79c37-4599-457b-b73f-8d812995a17f"],
+                                  is_hidden=True,
+                                  is_public=False,
+                                  code="e7b9HTOawW",
+                                  usage_limit=428,
+                                  min_amount=3738,
+                                  storage_id="5b8d1ced-1710-4e1f-8fca-966ca9996590",
+                                  num_recipients_cap=9863
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_coupon_47(self):
+        response = client.send(pp.CreateCoupon(
+                                  "b397d6b1-61e5-4170-9fe1-6cc35aa32306",
+                                  "enfTVlWMFnuMgJI5wZ1cKhV863o3fLMEPLjDOHvTYhO06QE7ACXnugqJAsKtBEhfGR87GnzBbDtq5K3lfoJShMC6uD2oZ5QpD7GXwDffXUtXBf9of2Ma",
+                                  "2024-02-28T17:56:18.000000Z",
+                                  "2021-11-14T01:19:11.000000Z",
+                                  "02f96792-d294-439a-b9ce-21e0fdcc6168",
+                                  discount_percentage=978.0,
+                                  is_shop_specified=True,
+                                  available_shop_ids=["7f628e39-b17d-4699-8df2-12efb984c4e7", "e9f86ad6-0f5a-4577-9c4a-5e1b8e97ca4f", "5a6f5f9a-569d-4283-b206-c5f8b39bee0e", "dec1dc27-00fe-41bd-857b-e94ec4f884e3"],
+                                  is_disabled=True,
+                                  is_hidden=True,
+                                  is_public=False,
+                                  code="Ub",
+                                  usage_limit=9563,
+                                  min_amount=4086,
+                                  storage_id="c1c8761f-db19-4ee0-8cf0-4225357ae54e",
+                                  num_recipients_cap=8314
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_coupon_48(self):
+        response = client.send(pp.CreateCoupon(
+                                  "b397d6b1-61e5-4170-9fe1-6cc35aa32306",
+                                  "enfTVlWMFnuMgJI5wZ1cKhV863o3fLMEPLjDOHvTYhO06QE7ACXnugqJAsKtBEhfGR87GnzBbDtq5K3lfoJShMC6uD2oZ5QpD7GXwDffXUtXBf9of2Ma",
+                                  "2024-02-28T17:56:18.000000Z",
+                                  "2021-11-14T01:19:11.000000Z",
+                                  "02f96792-d294-439a-b9ce-21e0fdcc6168",
+                                  discount_percentage=6268.0,
+                                  is_shop_specified=True,
+                                  available_shop_ids=["9bc65800-d296-4b22-898f-7ffd0a2242b0", "b68e9076-e12e-4bac-aa71-91ca1ac9b5af"],
+                                  display_ends_at="2023-08-11T13:35:52.000000Z",
+                                  is_disabled=False,
+                                  is_hidden=True,
+                                  is_public=True,
+                                  code="o",
+                                  usage_limit=8533,
+                                  min_amount=4539,
+                                  storage_id="515ddb89-91d1-46d9-b390-c93cdeb81485",
+                                  num_recipients_cap=610
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_coupon_49(self):
+        response = client.send(pp.CreateCoupon(
+                                  "b397d6b1-61e5-4170-9fe1-6cc35aa32306",
+                                  "enfTVlWMFnuMgJI5wZ1cKhV863o3fLMEPLjDOHvTYhO06QE7ACXnugqJAsKtBEhfGR87GnzBbDtq5K3lfoJShMC6uD2oZ5QpD7GXwDffXUtXBf9of2Ma",
+                                  "2024-02-28T17:56:18.000000Z",
+                                  "2021-11-14T01:19:11.000000Z",
+                                  "02f96792-d294-439a-b9ce-21e0fdcc6168",
+                                  discount_percentage=6349.0,
+                                  is_shop_specified=True,
+                                  available_shop_ids=["81f7e4f3-855f-45f2-a1ca-09d54d836561", "b7e8dc63-ce59-4904-8ab2-6128bfe6627d", "ca8eb6bb-89f2-4c91-99dc-5017494c208a", "179e1359-ba51-40cf-b4e7-bda9acbd22a0", "f300327d-131d-4892-986d-23c7113ceec8", "2c0d35c3-3e8f-42dd-a62c-c062e7c424d5", "0fde4a56-0db5-4326-9942-576bcca8272e"],
+                                  display_starts_at="2024-12-06T01:02:11.000000Z",
+                                  display_ends_at="2020-06-19T18:34:10.000000Z",
+                                  is_disabled=False,
+                                  is_hidden=True,
+                                  is_public=False,
+                                  code="Yi",
+                                  usage_limit=4386,
+                                  min_amount=83,
+                                  storage_id="96b6b28a-8a4e-496c-870a-5ddf4b687c21",
+                                  num_recipients_cap=6725
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_coupon_50(self):
+        response = client.send(pp.CreateCoupon(
+                                  "b397d6b1-61e5-4170-9fe1-6cc35aa32306",
+                                  "enfTVlWMFnuMgJI5wZ1cKhV863o3fLMEPLjDOHvTYhO06QE7ACXnugqJAsKtBEhfGR87GnzBbDtq5K3lfoJShMC6uD2oZ5QpD7GXwDffXUtXBf9of2Ma",
+                                  "2024-02-28T17:56:18.000000Z",
+                                  "2021-11-14T01:19:11.000000Z",
+                                  "02f96792-d294-439a-b9ce-21e0fdcc6168",
+                                  discount_percentage=4987.0,
+                                  is_shop_specified=True,
+                                  available_shop_ids=["01a11c57-b8ab-4407-a519-3966d9fbe07a", "a0d69ea6-4d5f-472b-a969-41061a1581c8", "281ba306-29c9-4db3-8d45-66790d0a4fff", "842e0f6b-7fce-4470-aa77-d7c3880b5923", "6169799f-f9d0-4399-aaae-2ac18b00516b", "e1f92ffa-9681-4ee0-b959-a2b26aa0d81b"],
+                                  discount_upper_limit=2939,
+                                  display_starts_at="2025-06-08T06:43:10.000000Z",
+                                  display_ends_at="2023-12-20T19:03:09.000000Z",
+                                  is_disabled=False,
+                                  is_hidden=False,
+                                  is_public=True,
+                                  code="JJ5",
+                                  usage_limit=9532,
+                                  min_amount=1715,
+                                  storage_id="7cb28ed5-8ab3-44ce-b60a-1ebc987016c6",
+                                  num_recipients_cap=1841
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_create_coupon_51(self):
+        response = client.send(pp.CreateCoupon(
+                                  "b397d6b1-61e5-4170-9fe1-6cc35aa32306",
+                                  "enfTVlWMFnuMgJI5wZ1cKhV863o3fLMEPLjDOHvTYhO06QE7ACXnugqJAsKtBEhfGR87GnzBbDtq5K3lfoJShMC6uD2oZ5QpD7GXwDffXUtXBf9of2Ma",
+                                  "2024-02-28T17:56:18.000000Z",
+                                  "2021-11-14T01:19:11.000000Z",
+                                  "02f96792-d294-439a-b9ce-21e0fdcc6168",
+                                  discount_percentage=4643.0,
+                                  is_shop_specified=False,
+                                  available_shop_ids=["dfcbf6b2-5d36-4270-a2cf-83125f9e40b3", "64be2cc8-e374-4af4-ac6c-ac4732a22095", "7f3b7d34-98a3-4165-94f9-fc2247bf1fe9", "0e6d597d-40e1-4bf4-8b4d-724982d3d23f", "9563f5ba-6337-42de-be25-70bb3651d104", "15db1399-77d6-4afe-86b3-8d90749d9b64"],
+                                  description="tu",
+                                  discount_upper_limit=1815,
+                                  display_starts_at="2020-01-21T19:49:59.000000Z",
+                                  display_ends_at="2022-04-26T15:14:18.000000Z",
+                                  is_disabled=False,
+                                  is_hidden=True,
+                                  is_public=False,
+                                  code="Q3",
+                                  usage_limit=1966,
+                                  min_amount=7319,
+                                  storage_id="31f47817-187c-478e-bd76-df5e4ae47b5f",
+                                  num_recipients_cap=5263
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_get_coupon_0(self):
+        response = client.send(pp.GetCoupon(
+                                  "ffeb658a-2340-4c15-906f-b80bbb76f118"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_coupon_0(self):
+        response = client.send(pp.UpdateCoupon(
+                                  "1d3b1c76-b758-4e4e-821f-6c735a4c64e7",
+                                  discount_amount=7047
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_coupon_1(self):
+        response = client.send(pp.UpdateCoupon(
+                                  "1d3b1c76-b758-4e4e-821f-6c735a4c64e7",
+                                  discount_amount=7742,
+                                  name="sW05W19aXuGVVRQlUVJv9CZ2ZsBhmJBENJ2Jp2YLnPueitIaB8AWaFb8JKCZbl1FLUJSG0fudQ9bvTSzMBL1Qigyh82R8yfv5oZ1A8LucSTZwJytxSEpRfXYxFxMD"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_coupon_2(self):
+        response = client.send(pp.UpdateCoupon(
+                                  "1d3b1c76-b758-4e4e-821f-6c735a4c64e7",
+                                  discount_amount=3187,
+                                  description="qe8NITOunWJGeGMfsCgwJoSsvq0p2",
+                                  name="MuqT6yOdp5xmnGGOh83wDY3YT1DlU5jqThl0v0LlAw1sxsypKPTUBVqh1Y1karSx9kbbfwykuboyLPrrY2btuxHx9YophvSLqEzRt6XTR3oDpLSuhWGSp4I"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_coupon_3(self):
+        response = client.send(pp.UpdateCoupon(
+                                  "1d3b1c76-b758-4e4e-821f-6c735a4c64e7",
+                                  discount_amount=9422,
+                                  discount_upper_limit=344,
+                                  description="vAYv341undTljbWPhfpiwPMjupC65xVDnAJbsKD6b895iftqbY67Ut2zsAKH6lKT6gJXba",
+                                  name="EKAddoUM0CRdaSDeoQ9lXXELG9oQdgpEse81VvpXr3"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_coupon_4(self):
+        response = client.send(pp.UpdateCoupon(
+                                  "1d3b1c76-b758-4e4e-821f-6c735a4c64e7",
+                                  discount_amount=2316,
+                                  starts_at="2023-01-28T09:54:45.000000Z",
+                                  discount_upper_limit=7792,
+                                  description="3Lg6cydG4CQY3zROLCcC3cDzGwCmJXHiF5C2aKJupg0Hph0EUCWBeCDLYnE6HiVXoG09ihrRj4",
+                                  name="ejWMyEn4Q3X3BDxBJJ5t6h3IPcBKQDcagEkitF8iACEva8PGaDArnv6F3HhJclpvEl0kBLWjkCR0Mj5I3Hqz506kx1IdZKDkCN"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_coupon_5(self):
+        response = client.send(pp.UpdateCoupon(
+                                  "1d3b1c76-b758-4e4e-821f-6c735a4c64e7",
+                                  discount_amount=4625,
+                                  ends_at="2021-06-17T18:33:16.000000Z",
+                                  starts_at="2020-07-12T00:34:39.000000Z",
+                                  discount_upper_limit=4025,
+                                  description="9Inr9h5bKrK2A0mcFTtdvdsEkzDVoxJr0lAnMovtOnbZ68JstsOcxw5PoatcF0TU5W5omYIqjFLKdIYieVX7m2aCCypluKCuWAlkVHsDkHFJvihW5VcQOv2mc2ISnCuuu6HEZICTUsFd55cysKpzPw06buTFvYo4vEubGw6jVHah2jNyPqoWcQPdn",
+                                  name="YsCcbQIY2"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_coupon_6(self):
+        response = client.send(pp.UpdateCoupon(
+                                  "1d3b1c76-b758-4e4e-821f-6c735a4c64e7",
+                                  discount_amount=8651,
+                                  display_starts_at="2020-10-06T03:13:34.000000Z",
+                                  ends_at="2021-10-25T12:37:36.000000Z",
+                                  starts_at="2022-12-29T18:51:50.000000Z",
+                                  discount_upper_limit=7615,
+                                  description="XsspdkpVkTBJa3OTrsXs88kJNoIZazm0lWPTZ7efHVp4Du6bqVzq0H9hNDIpWOGRlL4QDCIWrLzYwdZH6RYisLngmui2yyfAvCUPPfC6gPSyCFjnlF5wS89FXtStGksuJSc3uI6YbNMb4YSuPWKo7xO0kav9UABs7zcSSckrHrP7zrKa6Deu24AbEENpv2mR4vcFbZYPGyrsGLqJFlRMGfDCisIe5qHDsMdG7wbTKEpXzySqqc4sXPad6xuw",
+                                  name="Uqi64YRTYtsOeEN9XbwlgwBy5OkIYk"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_coupon_7(self):
+        response = client.send(pp.UpdateCoupon(
+                                  "1d3b1c76-b758-4e4e-821f-6c735a4c64e7",
+                                  discount_amount=4639,
+                                  display_ends_at="2020-06-17T12:30:53.000000Z",
+                                  display_starts_at="2025-09-27T12:51:13.000000Z",
+                                  ends_at="2023-06-25T10:14:41.000000Z",
+                                  starts_at="2021-12-31T10:33:10.000000Z",
+                                  discount_upper_limit=4276,
+                                  description="PBqh2Y5zV0C85Vn4l2htJKp8EeWwIbRZU73CECtq6YH",
+                                  name="jkVjZI7iaSuegvmESb5ZkkQma0HXRKUqv4lzkwZFtSWx4aRECgS2R"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_coupon_8(self):
+        response = client.send(pp.UpdateCoupon(
+                                  "1d3b1c76-b758-4e4e-821f-6c735a4c64e7",
+                                  discount_amount=5114,
+                                  is_disabled=True,
+                                  display_ends_at="2024-07-30T00:44:35.000000Z",
+                                  display_starts_at="2020-03-12T16:24:09.000000Z",
+                                  ends_at="2022-09-03T11:34:10.000000Z",
+                                  starts_at="2020-09-23T10:03:41.000000Z",
+                                  discount_upper_limit=2553,
+                                  description="Iq5ZtrGXVCQUhbREfojZVoiIjURbvF5cuoyvA3tbiunsY6SNRraYwc8QDfAEfV4F8XUQw7FOCvHUkEBp2LxsthHBe9EWUoT5QLe9Yg2CBY3rucfBues6uHoyn0kY9tu08AkjC0WPKbQvYow9FaOH3zD7SQmRuyNCMpGLgUAKK4AYXStTHGYGCT6FSvry2ciGzpWdg5yn158N5eaT1YQUtPEMBFK5RCvbOFISTKPBIbnB4",
+                                  name="IlVfzKQeAZtwqv4AGYkQ5YWzuO0mrMzlLTVYxU13omHKmdh2"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_coupon_9(self):
+        response = client.send(pp.UpdateCoupon(
+                                  "1d3b1c76-b758-4e4e-821f-6c735a4c64e7",
+                                  discount_amount=9454,
+                                  is_hidden=False,
+                                  is_disabled=False,
+                                  display_ends_at="2020-06-28T01:32:12.000000Z",
+                                  display_starts_at="2024-10-03T11:32:07.000000Z",
+                                  ends_at="2023-07-18T18:05:32.000000Z",
+                                  starts_at="2022-04-22T17:59:46.000000Z",
+                                  discount_upper_limit=7677,
+                                  description="B0D7qlClsr3peE1RPsdDZEoaT5osfv5Au45ikmQzjXEIrL5tEVsPccciqGzpCuGxgjotbAnDFm6nBFTBcp5MgKi6djde9q9Gx06zspIhW3gmaN6JcrvmX5G7cBGoNqTURH3hLLIVR7YcRrTeQOsLdvK2PUyIdpshyxjFJxJ7Fcj7Ywb40WRFS5iP8DHnWS95dKYCDWjMDqXUFGoRA4XvfiL62Wv2vl8qJafcwBDpLTRN1a",
+                                  name="0lar5cvmWk6HP3Edv56q9t5VGuIJJq"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_coupon_10(self):
+        response = client.send(pp.UpdateCoupon(
+                                  "1d3b1c76-b758-4e4e-821f-6c735a4c64e7",
+                                  discount_amount=2626,
+                                  is_public=False,
+                                  is_hidden=True,
+                                  is_disabled=False,
+                                  display_ends_at="2021-09-21T01:39:02.000000Z",
+                                  display_starts_at="2021-05-16T12:10:49.000000Z",
+                                  ends_at="2020-09-26T16:36:18.000000Z",
+                                  starts_at="2026-02-07T08:31:35.000000Z",
+                                  discount_upper_limit=3402,
+                                  description="ljp1y8KOJgfu4WFT3sPLKGiMRgfz5jiMdvRW63Z9043h9SU3fTD5o4Kn6TQ5PsH9YtmnNiOZyV9AO3DnB1YRES4xlc6449ibwy8gDnWqdIP3eIh1PycrJFKeRKa6OogwkyZYeik5qw2qVOD7lJwoEqJ4uimGtF4vDevDABoV1497oKjyplKXUyjuZoAdZaiUShsjoKemD9IJVji3EhQ10nakJ4Xx7BosawhL51XW0ltZ8tyBqdUl09HCPEoMCgQw",
+                                  name="dLCVxkfS7LC09h1a33P4feIw8rNkq1IJcIVXzbXoLITUciADNRcm8cr7h7uvpVmJgh2h"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_coupon_11(self):
+        response = client.send(pp.UpdateCoupon(
+                                  "1d3b1c76-b758-4e4e-821f-6c735a4c64e7",
+                                  discount_amount=289,
+                                  code="pBOt",
+                                  is_public=True,
+                                  is_hidden=False,
+                                  is_disabled=False,
+                                  display_ends_at="2020-05-30T06:37:58.000000Z",
+                                  display_starts_at="2022-11-13T10:49:00.000000Z",
+                                  ends_at="2024-01-21T22:19:54.000000Z",
+                                  starts_at="2025-06-18T05:45:20.000000Z",
+                                  discount_upper_limit=8622,
+                                  description="wu69vaYb020lVhpK1ujAV4SIGQkIPmfa5YJsZSIV5H0hKFZRjFJsBJwxE5ymHkkfvwj75uGxXyxLiKvyAHQ0Cmh0GR2iNpQgbrTS2HEffP70DHCUohTMu269OO6DIw88je3Px2M6UQ20lAXsAZIDxFXqpctZUoXMEwvfZIhfCcdWRRWKBpAMRk3KT9aHDvn680BNVo61whu52VEWHz",
+                                  name="eXnCqnnjKe2ZokcQxt9okwN5c4Mkgq5YYKEEntoCEiLAHJ2"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_coupon_12(self):
+        response = client.send(pp.UpdateCoupon(
+                                  "1d3b1c76-b758-4e4e-821f-6c735a4c64e7",
+                                  discount_amount=9203,
+                                  usage_limit=3799,
+                                  code="FitjutUJJs",
+                                  is_public=False,
+                                  is_hidden=False,
+                                  is_disabled=False,
+                                  display_ends_at="2020-01-04T03:46:07.000000Z",
+                                  display_starts_at="2024-09-14T13:06:32.000000Z",
+                                  ends_at="2022-06-11T23:14:15.000000Z",
+                                  starts_at="2023-12-07T05:48:53.000000Z",
+                                  discount_upper_limit=2081,
+                                  description="NUTkzcX2ykkKJlN107OaiUpqdHMS0BnQNQ8yntRPdiO7nDWAmmXsETvex6EwUtMqxtCSMEZWLR3IYMZqZQp71KYV2dqAhSRH0jBaTj6CKr7da3Hc5MrDSrYQmTFD8MK4LhwIRladKEnUCUBMTsHj",
+                                  name="SLXQWZdqZHXOS9NchMxuvMOV5pE0ThIcNVnpd1n04FvafoOT5XflXygJfyBJl"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_coupon_13(self):
+        response = client.send(pp.UpdateCoupon(
+                                  "1d3b1c76-b758-4e4e-821f-6c735a4c64e7",
+                                  discount_amount=8237,
+                                  min_amount=9265,
+                                  usage_limit=8735,
+                                  code="nws6Ne3",
+                                  is_public=True,
+                                  is_hidden=True,
+                                  is_disabled=False,
+                                  display_ends_at="2025-02-15T14:46:15.000000Z",
+                                  display_starts_at="2024-11-20T06:08:32.000000Z",
+                                  ends_at="2024-07-13T02:33:15.000000Z",
+                                  starts_at="2024-03-25T23:42:28.000000Z",
+                                  discount_upper_limit=6575,
+                                  description="Hli9FCf9vj51iwXi5vVkai7fMidPllBkchJ2ELHNBkuEPtWGn6U1tknXv7iBjpuz8kXfTQVtq7nYSMGg6A5q48d0VvhbqvZRxaI0AVDH5phIrM988xOpACBuWehCLI5Ithzpo1sbw0fi8Tfl4MiezYuuDN5NO2HkiJUlQ4dKgR3uo3pyHQKCLEzAV2HW0T6wtgFowhjkpuax7inTCKJlAlkDX0z9k4WtlP60t1pGDCB7WpLio",
+                                  name="RLUylhwp3jBXylmnz"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_coupon_14(self):
+        response = client.send(pp.UpdateCoupon(
+                                  "1d3b1c76-b758-4e4e-821f-6c735a4c64e7",
+                                  discount_amount=646,
+                                  is_shop_specified=True,
+                                  min_amount=9945,
+                                  usage_limit=2129,
+                                  code="PT",
+                                  is_public=False,
+                                  is_hidden=False,
+                                  is_disabled=False,
+                                  display_ends_at="2024-07-02T12:36:12.000000Z",
+                                  display_starts_at="2026-04-25T18:39:36.000000Z",
+                                  ends_at="2023-12-07T03:25:32.000000Z",
+                                  starts_at="2021-07-20T16:53:31.000000Z",
+                                  discount_upper_limit=2116,
+                                  description="piIl88uXhFr9tzNaCFLhrW7Qg63LOoyDRk2frbKYDtHXRSpeSviFk4W1qsOLMcNwe8KEeqmGGreSt4nt1ybC0Ywm3a7y1jkUDzYlQVbUnnRBBQRDsGnvgO2bodBPeKpRFsQIEwGMkEBFs4OKbpkXgOJ3P1nM9riBWugVW8sRaEhx8aJkSJHuUfzU3cx",
+                                  name="LSG8S4aP0CNMNfb6VowWUVfzovzP7VL5ebcijLtVhmlM6kBu7DCNg4aU7BlWsNECFWA4hHlvtcjGtIPadSKiVX8t6IuP7AfSh1iSdnomWlXA8y2vwA"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_coupon_15(self):
+        response = client.send(pp.UpdateCoupon(
+                                  "1d3b1c76-b758-4e4e-821f-6c735a4c64e7",
+                                  discount_amount=4250,
+                                  available_shop_ids=["1c7f9dd4-435e-4c4e-9d3c-1d07b87bcc92", "591461d9-24e1-4304-a513-b14c1160ad60", "85e16aa7-7481-4123-b956-20b79a34bfc3", "0060dd57-a2e4-4a5b-b26d-f016fb6c866b"],
+                                  is_shop_specified=True,
+                                  min_amount=1975,
+                                  usage_limit=1410,
+                                  code="DR",
+                                  is_public=False,
+                                  is_hidden=True,
+                                  is_disabled=False,
+                                  display_ends_at="2023-03-29T21:30:53.000000Z",
+                                  display_starts_at="2021-08-21T20:28:40.000000Z",
+                                  ends_at="2020-11-08T19:10:31.000000Z",
+                                  starts_at="2025-12-21T03:03:36.000000Z",
+                                  discount_upper_limit=1835,
+                                  description="2nAdRh4U2Gnj6HilrfsKlPIExrXeCFOu5KxrV4xhz7DzBywKIciMlN0S7L0N0uBHj0xIlmI7crwjgiJmBq8x2BMoiejWmPY8qwKCFWRUhTWJtrSHM5KvGCx3jvLeQXqJ7fOtRApW564YK0LvLN69VHlYJhXH6cUQL7XLfiXA0zUZ8WIiKSeWU9z6lAbD",
+                                  name="3wpFlmsW"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_coupon_16(self):
+        response = client.send(pp.UpdateCoupon(
+                                  "1d3b1c76-b758-4e4e-821f-6c735a4c64e7",
+                                  discount_amount=9333,
+                                  storage_id="7b1efe73-6a8a-45c3-b852-043e289186c7",
+                                  available_shop_ids=["21907e94-d6c2-48cb-954a-c9e40cef0348", "81ef2495-3b0b-4a1e-99cc-a490b2d391e6"],
+                                  is_shop_specified=False,
+                                  min_amount=2052,
+                                  usage_limit=2745,
+                                  code="axRbmzAo",
+                                  is_public=False,
+                                  is_hidden=True,
+                                  is_disabled=False,
+                                  display_ends_at="2021-03-28T19:05:30.000000Z",
+                                  display_starts_at="2020-10-12T16:02:21.000000Z",
+                                  ends_at="2023-11-23T12:14:34.000000Z",
+                                  starts_at="2023-12-30T07:49:05.000000Z",
+                                  discount_upper_limit=9795,
+                                  description="4",
+                                  name="kvR5VzS4JSx7Qk5qYm8EJV1By6vGk0FuWZ3ptkSyNBcc9paWacdv"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_coupon_17(self):
+        response = client.send(pp.UpdateCoupon(
+                                  "1d3b1c76-b758-4e4e-821f-6c735a4c64e7",
+                                  discount_amount=198,
+                                  num_recipients_cap=7993,
+                                  storage_id="d9692cf3-b122-462e-8bf1-a4366a95d24d",
+                                  available_shop_ids=["e36cbb54-9a4d-40e3-a830-cd9b16c58f5e", "a967a7f4-dbff-4939-9e9f-864d107f7d4c", "93304273-229c-4c84-aa58-7fbf3ed7067e", "e8a77567-8f76-47c7-b845-ab9644ff9d59", "e339238e-144b-408b-a2f3-98186fe992bf", "f819cfd0-cd10-4822-bb1a-c6ae921d5960", "684b4d70-3c3f-4801-ae42-006bc8199280", "ce5365cf-261f-44fe-b0fa-65358e655ce8", "ce8cd739-ac56-42c4-a004-7cfe2af7eb58"],
+                                  is_shop_specified=True,
+                                  min_amount=6207,
+                                  usage_limit=9395,
+                                  code="hsO0rj",
+                                  is_public=False,
+                                  is_hidden=False,
+                                  is_disabled=False,
+                                  display_ends_at="2025-06-25T09:46:55.000000Z",
+                                  display_starts_at="2021-07-01T10:32:41.000000Z",
+                                  ends_at="2024-03-15T01:25:55.000000Z",
+                                  starts_at="2020-06-29T12:22:37.000000Z",
+                                  discount_upper_limit=209,
+                                  description="6x9sSfu0zX8zdCniT7rbp4RdF8jzLLX07kGwmRZR89QJDyeQCnprhi7qh3KP4T37Wi9g9nZZhOiq9TM1kLnMOaPoayQ1SL4LwXctk2uyuazqzFpngLk90ZBFe71DIECbUavopCer6amUqWii2uDVrmTki6pqO0",
+                                  name="f8cnptMkBRjmpnnbeCg4xumOoxK0oT4F795unttA065Yr03Qzj1SYSblk7QSMdkkKPrtzfsCSKaR3OFn1WKJz5hhBZBCZg"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_coupon_18(self):
+        response = client.send(pp.UpdateCoupon(
+                                  "1d3b1c76-b758-4e4e-821f-6c735a4c64e7",
+                                  discount_amount=8275,
+                                  discount_percentage=4933.0
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_coupon_19(self):
+        response = client.send(pp.UpdateCoupon(
+                                  "1d3b1c76-b758-4e4e-821f-6c735a4c64e7",
+                                  discount_amount=508,
+                                  discount_percentage=6411.0,
+                                  name="RTDaoK9IqITw9RXh5VLaBXSS3EzsrMpj8GBIyJaRyweu"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_coupon_20(self):
+        response = client.send(pp.UpdateCoupon(
+                                  "1d3b1c76-b758-4e4e-821f-6c735a4c64e7",
+                                  discount_amount=1962,
+                                  discount_percentage=9494.0,
+                                  description="GKy2nXN4UBPwGQ9mhvxLr7QQxCiR4LJ0VAGQ0LknXBVXV6IePzMvb8rIAKhBAUImOpB9NJd0FGb0jOdIa2VbV1E7pIBf60ZOpXb0uUTjEzrW5FEq6VpVqu1DpFd0JaBsPBEjjxsN82R5bV7",
+                                  name="h6MclFLskpVJhF8OvhWGp3gTZC60RTw4fZ8zWBqSC3vDIMcnooU2v"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_coupon_21(self):
+        response = client.send(pp.UpdateCoupon(
+                                  "1d3b1c76-b758-4e4e-821f-6c735a4c64e7",
+                                  discount_amount=4595,
+                                  discount_percentage=8609.0,
+                                  discount_upper_limit=4640,
+                                  description="hFzbMP7H4x70jy8CyXSjsNQfhm4JdiSR8LU0sAxVpKo9Pr8tnCR4b3VVcnR7ySaTJSLXaRbjFaOCY9HY0faJMcRsZ3tfn14pqdpY2gOVzxC2AMFcqtkzhdfPKiy9SERDVnpaYhOvVB8b8Y5rPTIoQafvlfkuyBchbjOVFfaAmwoPiUeFs2qGGZk77FXigkPx1NC7bcdhHDyq2BmegmNcooOzsV0UAnFDq2j42XbKSjWX",
+                                  name="0mczdG92I3EQWa6MviKhzgN1WE1E9QE8I1WOtKGTOoDsggK2zVvIrNmjPyMt7JZTknlcSLOAfgHki7iEUUEZsYB8I8w6YX9Aj"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_coupon_22(self):
+        response = client.send(pp.UpdateCoupon(
+                                  "1d3b1c76-b758-4e4e-821f-6c735a4c64e7",
+                                  discount_amount=5970,
+                                  discount_percentage=6188.0,
+                                  starts_at="2024-08-24T02:13:39.000000Z",
+                                  discount_upper_limit=1647,
+                                  description="U1BYQYTGkBMdZ9gxwOlUDOeBSRiyqeameMaY0bgN8gTUkelv3hkGmk4iWQZAVafOlabiOcEnloh2DXft8ZR3ZIT5H8aSOl3MDXnG9yHqEA",
+                                  name="ThwDuq1zewsMIx1"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_coupon_23(self):
+        response = client.send(pp.UpdateCoupon(
+                                  "1d3b1c76-b758-4e4e-821f-6c735a4c64e7",
+                                  discount_amount=8329,
+                                  discount_percentage=3836.0,
+                                  ends_at="2025-12-25T22:39:41.000000Z",
+                                  starts_at="2023-04-14T21:51:04.000000Z",
+                                  discount_upper_limit=4555,
+                                  description="cCexEPrWNcD1BCJ2Q7A3yxMyBqUSnmfmyMf158jbodxUJxcIS6QwIFvAWCZsB1EYOxuNXsb8K4XyQ60l6nZCLpElUd6iH1X66E0nqBBGmKnZ6uDIn3iuFQrrgeXzyNXNrNkeWa9hWsLSo6RhlRrNdmMatyDW12s5SKsd06fYHa9pHdUJ2NkpD9XRln1g4q1AmzenaBAIYsPX5BEVEkSwN7Jl7UfMqNeIWxDQ5mYkDBp76iPlz0WyF7I2S",
+                                  name="zg812cd0lMhCHFE2kwBpeHriIaXxYmUfeD23BKTCZPKhRk3w9r2MS5qnBpeG29hBWbNKIGuoyWD3BHeU5bcdtREmG3PoPoUnVURoRDP0303M0EU"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_coupon_24(self):
+        response = client.send(pp.UpdateCoupon(
+                                  "1d3b1c76-b758-4e4e-821f-6c735a4c64e7",
+                                  discount_amount=4903,
+                                  discount_percentage=391.0,
+                                  display_starts_at="2025-10-20T16:25:30.000000Z",
+                                  ends_at="2022-05-02T06:56:10.000000Z",
+                                  starts_at="2020-03-10T04:53:23.000000Z",
+                                  discount_upper_limit=8197,
+                                  description="R0XC7UBINwESq7hPy7a3F5MBC2C7VfANu3p62KDWO8TDrLXiDq8ZM4HpSJ7ezaoKVM6PG4nVxadlDXYh8F3jX5Rw62VEObO",
+                                  name="MsiJRl1b2ESaJKCDCVaIjvXY9buv1PGDaqpxNAcB7XJ2PMH0HA7mMCxlziaJ1nphI9ySRxw6pdyrj7YEb5BIbPwZWptKeWMAfjTzhjO10bQwy"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_coupon_25(self):
+        response = client.send(pp.UpdateCoupon(
+                                  "1d3b1c76-b758-4e4e-821f-6c735a4c64e7",
+                                  discount_amount=7695,
+                                  discount_percentage=9735.0,
+                                  display_ends_at="2022-02-15T23:20:53.000000Z",
+                                  display_starts_at="2023-07-05T13:13:46.000000Z",
+                                  ends_at="2024-11-09T17:40:12.000000Z",
+                                  starts_at="2022-03-01T10:11:02.000000Z",
+                                  discount_upper_limit=2822,
+                                  description="ZUhrOp80a47LYIcD579HHiydYwYbStQsIHShYuqMOfry8huKLaun9q8fRCMt2pzYekawpUouvYHKlj0GUL0Fcnz7fEngR6pF3m54VmwYrgFgT3RyUt1Kexb2ZIYN08OgDDQYpUk9QvTpwbva3X3fUufQzzx2hzebS68SpNEGkf",
+                                  name="S3Uyy5Zn41VzLKUg3om1YNfeeKoLdFE8Hmt9R8Bv1AJsBz3l6W699PQnfTErfIkmiU4i2bFcYt3zvnnQAgg6WKGNaTc3A08bOic61u1yVQPNCQ"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_coupon_26(self):
+        response = client.send(pp.UpdateCoupon(
+                                  "1d3b1c76-b758-4e4e-821f-6c735a4c64e7",
+                                  discount_amount=8212,
+                                  discount_percentage=4670.0,
+                                  is_disabled=False,
+                                  display_ends_at="2026-01-21T10:12:48.000000Z",
+                                  display_starts_at="2025-03-28T14:11:22.000000Z",
+                                  ends_at="2022-08-08T04:30:26.000000Z",
+                                  starts_at="2024-01-01T02:48:23.000000Z",
+                                  discount_upper_limit=3048,
+                                  description="O9RJi",
+                                  name="7mxn7kYGzShazSiZH6DDfNqfsVRi3zxzsVzVJLxpF9uCjOUSNMH9fWh27PiOpr3HMMXsb4Lh4b0Gko8iE0P"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_coupon_27(self):
+        response = client.send(pp.UpdateCoupon(
+                                  "1d3b1c76-b758-4e4e-821f-6c735a4c64e7",
+                                  discount_amount=8764,
+                                  discount_percentage=3907.0,
+                                  is_hidden=False,
+                                  is_disabled=True,
+                                  display_ends_at="2022-08-03T01:48:16.000000Z",
+                                  display_starts_at="2021-01-31T08:50:02.000000Z",
+                                  ends_at="2022-06-06T21:16:49.000000Z",
+                                  starts_at="2021-03-10T16:15:19.000000Z",
+                                  discount_upper_limit=3681,
+                                  description="TlKzyVFYYoK00acoGlEqYYGWZUMgU5LJ8nedbEkL6V",
+                                  name="CbZlYCZFu0"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_coupon_28(self):
+        response = client.send(pp.UpdateCoupon(
+                                  "1d3b1c76-b758-4e4e-821f-6c735a4c64e7",
+                                  discount_amount=6104,
+                                  discount_percentage=8711.0,
+                                  is_public=False,
+                                  is_hidden=False,
+                                  is_disabled=False,
+                                  display_ends_at="2024-05-20T06:32:49.000000Z",
+                                  display_starts_at="2023-11-08T14:19:34.000000Z",
+                                  ends_at="2020-07-19T10:56:41.000000Z",
+                                  starts_at="2025-08-16T14:19:15.000000Z",
+                                  discount_upper_limit=5611,
+                                  description="1kbCzvM",
+                                  name="ElblaTUskxDWTi4syFdijXYZ6Fkp0v2rObj5KP"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_coupon_29(self):
+        response = client.send(pp.UpdateCoupon(
+                                  "1d3b1c76-b758-4e4e-821f-6c735a4c64e7",
+                                  discount_amount=1705,
+                                  discount_percentage=4507.0,
+                                  code="aX5R",
+                                  is_public=False,
+                                  is_hidden=False,
+                                  is_disabled=True,
+                                  display_ends_at="2023-08-23T06:52:39.000000Z",
+                                  display_starts_at="2020-12-01T16:17:51.000000Z",
+                                  ends_at="2022-04-08T07:48:31.000000Z",
+                                  starts_at="2026-05-22T16:05:37.000000Z",
+                                  discount_upper_limit=77,
+                                  description="Dj4u8or1Z5ajnFBytvfCWU5lvasIan6Df8qsq2k3ETquM3SQujWFDE153B47G8gAIFr9zY1ABG4Q6S1AZ81ee9F1zaeUGprRtPpZgZz",
+                                  name="OhvmvIjVKe7aM7QiN4L"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_coupon_30(self):
+        response = client.send(pp.UpdateCoupon(
+                                  "1d3b1c76-b758-4e4e-821f-6c735a4c64e7",
+                                  discount_amount=5776,
+                                  discount_percentage=7690.0,
+                                  usage_limit=4651,
+                                  code="TtB8",
+                                  is_public=True,
+                                  is_hidden=True,
+                                  is_disabled=True,
+                                  display_ends_at="2025-10-27T12:24:41.000000Z",
+                                  display_starts_at="2020-08-09T17:30:29.000000Z",
+                                  ends_at="2023-06-22T01:18:06.000000Z",
+                                  starts_at="2022-02-07T10:31:34.000000Z",
+                                  discount_upper_limit=3135,
+                                  description="9clYyKl8cUsYw8CW8rHVcmWZsjKlFT0f7did2pSfVDNNjekhaUaqNZOry7pQcwkQvvHfTZTUiaSBniTvgiFcfFWfXoobW27D2zSsjxSJQCC2TKE3m70u0i2E7e3WCog3HknLhb4mGHjaX24jJAlJFQ82MhyQQoipgFNSux0jeobdQD1VXjUggH7qMtHhSfZ",
+                                  name="dXUyjb1NxKa8yAWf3eI4rn2GKxT8MfsHveV88627AlMJYf8MI0c9iCp3raZonaiDazAfoVN5ZcNoMxEFE11voG9m7gWIlidcs"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_coupon_31(self):
+        response = client.send(pp.UpdateCoupon(
+                                  "1d3b1c76-b758-4e4e-821f-6c735a4c64e7",
+                                  discount_amount=9704,
+                                  discount_percentage=2908.0,
+                                  min_amount=6894,
+                                  usage_limit=4846,
+                                  code="lOPQ",
+                                  is_public=True,
+                                  is_hidden=False,
+                                  is_disabled=False,
+                                  display_ends_at="2024-02-03T15:35:39.000000Z",
+                                  display_starts_at="2026-05-04T23:29:26.000000Z",
+                                  ends_at="2024-04-27T00:39:07.000000Z",
+                                  starts_at="2020-09-24T07:39:00.000000Z",
+                                  discount_upper_limit=3159,
+                                  description="980GqQVfPuvUPiEFV6mDyiAjmPC8FhIFplNkUQpOFZAAuAkdYYYV8q02r77ePIgPu4dPH7ImSF7bIQ97lNoNEqqi11P4GN23Eb6NlDd7BTwpYu4Valw5xiIJ7Q1Cipp2CPMRifbrHbdPk0z0U5np6zSSSsJChBCfGVrTTzFEA3c",
+                                  name="EkuniAENmbJtM74"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_coupon_32(self):
+        response = client.send(pp.UpdateCoupon(
+                                  "1d3b1c76-b758-4e4e-821f-6c735a4c64e7",
+                                  discount_amount=404,
+                                  discount_percentage=7300.0,
+                                  is_shop_specified=False,
+                                  min_amount=5743,
+                                  usage_limit=2341,
+                                  code="yNao",
+                                  is_public=False,
+                                  is_hidden=False,
+                                  is_disabled=True,
+                                  display_ends_at="2023-12-31T21:22:42.000000Z",
+                                  display_starts_at="2020-09-29T20:36:52.000000Z",
+                                  ends_at="2025-12-09T17:35:38.000000Z",
+                                  starts_at="2025-09-05T18:38:07.000000Z",
+                                  discount_upper_limit=7154,
+                                  description="lPondGWEfVzKMwihh3UCJATPnnGfbSA",
+                                  name="t8y1LpRX9w3aEMSDM7H6DKpMVCMs6AqPF1N4VGIihJYcZH1yqyLKdrb7VdvBferrdPPsgFTBp21GVpuNthlN8cTNxtClPPAh3ydu7juMaO7"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_coupon_33(self):
+        response = client.send(pp.UpdateCoupon(
+                                  "1d3b1c76-b758-4e4e-821f-6c735a4c64e7",
+                                  discount_amount=7787,
+                                  discount_percentage=5617.0,
+                                  available_shop_ids=["29c6eeaf-aeea-4aaf-a1c0-3c29fc758b16", "67a00b11-bf98-48c1-9300-6c51f10046eb", "d114c0f1-a7bb-40f9-b7b2-4a1486b6b751", "3982f886-5434-445d-bd35-c1bc26c26b2a", "22eea303-df99-4af0-a9ed-ccb189d89798", "49ba8fb6-2f94-4c90-bd82-d0a9053e67a0", "c34a7cfb-9f6a-4a8f-8591-24222f496457", "4c4fd882-7759-4fb8-8cdd-3c9ffa2c188c"],
+                                  is_shop_specified=False,
+                                  min_amount=422,
+                                  usage_limit=4670,
+                                  code="yJu",
+                                  is_public=False,
+                                  is_hidden=False,
+                                  is_disabled=True,
+                                  display_ends_at="2023-02-07T14:38:04.000000Z",
+                                  display_starts_at="2021-03-25T03:38:21.000000Z",
+                                  ends_at="2022-04-19T21:10:03.000000Z",
+                                  starts_at="2024-09-14T14:28:54.000000Z",
+                                  discount_upper_limit=2603,
+                                  description="WmiQzTAP0hsvYk94ECXfwyrT6FNWSeiPJDkaNGUUFy37fVBCxguWkgEaSRxikajDhky1e9MUM8ZY9eEBDTjFI18oRpgCoDiEOfsuO3LMtzPm5pmHiztzTLcjSeNyveotr1SbLY9f9RM3h2SXQaAm6iMSYVoPQWfV62UhTGJS1L9KLOsA2Q2Z23Mwd9",
+                                  name="ipOldTUQCXPcZtLDZ6t1d7NhS3tIbiaQ9UqJHQZFkEmVia7WMZwoONY9m"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_coupon_34(self):
+        response = client.send(pp.UpdateCoupon(
+                                  "1d3b1c76-b758-4e4e-821f-6c735a4c64e7",
+                                  discount_amount=3386,
+                                  discount_percentage=8675.0,
+                                  storage_id="086c696a-aed5-4244-b342-74fc3b1cdc8e",
+                                  available_shop_ids=["61aa47e6-1e0a-4214-8ea9-ce33860d0868", "bba83c27-af70-4f1f-8fe2-9b42698b255e", "8cbc0b3d-2ee2-4e1b-a6fe-f4649d3607ba", "8e349eb0-9f57-4b06-90c0-e3214e3ee58f", "18176f99-ed43-458c-96f5-e5713b470790", "92e55068-aeb9-4830-809f-6a269bd11d77", "ed5f4a98-e827-4eee-ab55-b290ab078cc5", "3668550b-8102-451f-a5e6-d221b8d30ce4"],
+                                  is_shop_specified=True,
+                                  min_amount=7926,
+                                  usage_limit=8860,
+                                  code="Gn56",
+                                  is_public=True,
+                                  is_hidden=False,
+                                  is_disabled=False,
+                                  display_ends_at="2024-07-06T04:53:29.000000Z",
+                                  display_starts_at="2021-07-15T01:56:30.000000Z",
+                                  ends_at="2020-05-04T20:08:35.000000Z",
+                                  starts_at="2021-09-22T20:52:11.000000Z",
+                                  discount_upper_limit=2814,
+                                  description="MaOVTzOYUS4YiFzadS1dG4VhCAXdvLcusNkP92lEHAtBr5uMS",
+                                  name="7mI2h9L5UgNjF9pGXPoR6V6EH9oG2E8mJwg74tJdyJ5Llab29gfUQ6hTQL306GhITMLHDmfb2965KcWooPsLAa0LofoeILq2j1JbokM1"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_coupon_35(self):
+        response = client.send(pp.UpdateCoupon(
+                                  "1d3b1c76-b758-4e4e-821f-6c735a4c64e7",
+                                  discount_amount=9992,
+                                  discount_percentage=781.0,
+                                  num_recipients_cap=1950,
+                                  storage_id="6a58a09e-381a-4be9-8865-316ccebc2539",
+                                  available_shop_ids=["a0c4843a-3469-47a5-8066-080826b8ba81", "67f2e5fb-4591-4d45-8bd1-26a5b6d77940", "7a25ac51-a0cb-4c45-bc9f-dba1bea4d87e", "60b3bcde-e1ec-4990-8490-390c676678b5"],
+                                  is_shop_specified=True,
+                                  min_amount=2900,
+                                  usage_limit=2954,
+                                  code="En550ChTMJ",
+                                  is_public=False,
+                                  is_hidden=True,
+                                  is_disabled=False,
+                                  display_ends_at="2025-05-19T16:12:14.000000Z",
+                                  display_starts_at="2022-02-07T15:27:25.000000Z",
+                                  ends_at="2020-04-12T15:08:02.000000Z",
+                                  starts_at="2025-06-28T11:36:20.000000Z",
+                                  discount_upper_limit=7633,
+                                  description="pR66DYXbWwtCBK4yI7b7ruIn1DQefV0LKmn0D6u1aqXUgLXLPq2aRw08aQ0rfHosccmXhG1yeE5aq4GKVSCfP0aoPIG5NuiBMU7rfLf6Fh",
+                                  name="ORYw57l88LjJn33RIRSOmlXSQfzzTwn3Dxt4Xew7YzDaZ1J9OdsQM2IVUV93tsgTE0JEew3ek7732woVpaWAn4e207OnXy1NWRJfp7ZK3WimQaowt"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_coupon_36(self):
+        response = client.send(pp.UpdateCoupon(
+                                  "1d3b1c76-b758-4e4e-821f-6c735a4c64e7",
+                                  discount_percentage=7341.0
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_coupon_37(self):
+        response = client.send(pp.UpdateCoupon(
+                                  "1d3b1c76-b758-4e4e-821f-6c735a4c64e7",
+                                  discount_percentage=5424.0,
+                                  name="F0S2aI"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_coupon_38(self):
+        response = client.send(pp.UpdateCoupon(
+                                  "1d3b1c76-b758-4e4e-821f-6c735a4c64e7",
+                                  discount_percentage=2255.0,
+                                  description="kN5iwpVUwFU1amkd1FBZBysFgH8TiyAaF4dUSAbqyi68iyJ302sQl233vCftoqwC5tymvF1K23X2uYu46ypSW9PxtiaID1SUCfz9yEelMoF9a26c2RLHzQWOO42l0o0g8SXRzZ3pUKHHeXuuwg12Ygg3AsTOryINKyRmJ3gWCDcmsuvkMrJePtGFhv4aIw1aGtGR3fEQezBo",
+                                  name="XnXONHGXDMcl8tuhVdB5KkP8PHvZEmmcBKkGsr9sdEDTBkey7pr4d2jpa"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_coupon_39(self):
+        response = client.send(pp.UpdateCoupon(
+                                  "1d3b1c76-b758-4e4e-821f-6c735a4c64e7",
+                                  discount_percentage=294.0,
+                                  discount_upper_limit=9190,
+                                  description="36YY6mrG9Y2ztoKUUUx5B1bSO8xEgnoe60dnWTCVmm3x115QsBZT6dCGgqZsePkl6",
+                                  name="iY0bdXM6N"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_coupon_40(self):
+        response = client.send(pp.UpdateCoupon(
+                                  "1d3b1c76-b758-4e4e-821f-6c735a4c64e7",
+                                  discount_percentage=378.0,
+                                  starts_at="2025-02-15T17:07:45.000000Z",
+                                  discount_upper_limit=3978,
+                                  description="rTctUJQmh0gNd3qkWY4lVW5zCUF3zWzIdrHm6OsiyHBxsWBtx4G",
+                                  name="cLViMByCBNzcDCX5bbsPzVUGeD2BWp2XUNEsAtEjlivj0NhalsavWYZd"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_coupon_41(self):
+        response = client.send(pp.UpdateCoupon(
+                                  "1d3b1c76-b758-4e4e-821f-6c735a4c64e7",
+                                  discount_percentage=245.0,
+                                  ends_at="2025-01-12T11:05:25.000000Z",
+                                  starts_at="2021-12-01T05:14:23.000000Z",
+                                  discount_upper_limit=6026,
+                                  description="Xynvh05",
+                                  name="rJdAnnKP"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_coupon_42(self):
+        response = client.send(pp.UpdateCoupon(
+                                  "1d3b1c76-b758-4e4e-821f-6c735a4c64e7",
+                                  discount_percentage=8042.0,
+                                  display_starts_at="2023-11-11T22:33:46.000000Z",
+                                  ends_at="2025-01-25T14:11:30.000000Z",
+                                  starts_at="2022-07-05T17:19:38.000000Z",
+                                  discount_upper_limit=5586,
+                                  description="GyuQYyb8948tP6VkRaNaNdjmk2wkclkjGIdrGdF8qpLKYfd3JbJX5QcdKyJ1DmsToKu4w1tRUaP7awM87Mt7bWysOyzqkBrGaMj",
+                                  name="b1sugqjEeek3DeI"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_coupon_43(self):
+        response = client.send(pp.UpdateCoupon(
+                                  "1d3b1c76-b758-4e4e-821f-6c735a4c64e7",
+                                  discount_percentage=2244.0,
+                                  display_ends_at="2022-09-21T07:31:14.000000Z",
+                                  display_starts_at="2021-12-15T02:56:38.000000Z",
+                                  ends_at="2022-02-21T05:03:24.000000Z",
+                                  starts_at="2023-06-28T01:27:15.000000Z",
+                                  discount_upper_limit=3459,
+                                  description="RBbYLkU2TfJXzuBqGFPReFsmxaxT8Xwuc649dznjsqwxML0aHpiMuFL917lUTrE8EACTMWkW53gnqE0TT1OD00WYy85d5RKAlbrPQ0st0t7yJcv8GqBqgGEHafl1jNP9k7uydClg9A7a",
+                                  name="n27PrVxBqiE9YW"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_coupon_44(self):
+        response = client.send(pp.UpdateCoupon(
+                                  "1d3b1c76-b758-4e4e-821f-6c735a4c64e7",
+                                  discount_percentage=5389.0,
+                                  is_disabled=False,
+                                  display_ends_at="2023-12-22T04:30:39.000000Z",
+                                  display_starts_at="2021-04-29T17:43:20.000000Z",
+                                  ends_at="2026-06-14T22:05:31.000000Z",
+                                  starts_at="2023-12-13T07:42:48.000000Z",
+                                  discount_upper_limit=8084,
+                                  description="mzBGJVwTTanAXyFjLag3gPPvlq0FFntKGY10p27NPGQTdAXKNGuLNgDO4Ma1ptA22IkyjkgPuZUMAq2NjJocNYKTrm2m1ssPqyT3XyCFCrR8uZnHFgU1ZOwuoeukDxIIOg9CcbCgtxt4qQAP06TDLYKBc2zPf6wToG8lTKcMPiFJX3LNKTomMc8wnROYRP673oHx5N3DOO7AdxANDE2ea2N2bsCqxQkk2AG5TTqX05I",
+                                  name="lCZ5tUdSwXVRIVCnlZj6NtOwX2FI8Wr1369uaTF42abkg"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_coupon_45(self):
+        response = client.send(pp.UpdateCoupon(
+                                  "1d3b1c76-b758-4e4e-821f-6c735a4c64e7",
+                                  discount_percentage=9999.0,
+                                  is_hidden=True,
+                                  is_disabled=False,
+                                  display_ends_at="2023-11-28T13:24:04.000000Z",
+                                  display_starts_at="2023-02-17T02:05:50.000000Z",
+                                  ends_at="2024-03-27T15:24:53.000000Z",
+                                  starts_at="2025-04-14T23:23:51.000000Z",
+                                  discount_upper_limit=2858,
+                                  description="AWzKVmwmqN4ax1Q1Fha0o1JxRbdO7sJMkOiIt9zNKCX0VzisXLLiEpULitiIsW57odiOHhS8DsZfAQRFK6oTTeP8tTTu",
+                                  name="nowX2TMHi2vDKbmu86aUF4jypKaAY4yQaiw0JpUpNfjrUKaUCU4cuncfOgZgC0vnz9vdHX3zI2"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_coupon_46(self):
+        response = client.send(pp.UpdateCoupon(
+                                  "1d3b1c76-b758-4e4e-821f-6c735a4c64e7",
+                                  discount_percentage=1485.0,
+                                  is_public=True,
+                                  is_hidden=True,
+                                  is_disabled=False,
+                                  display_ends_at="2021-08-01T05:03:22.000000Z",
+                                  display_starts_at="2023-02-15T09:12:32.000000Z",
+                                  ends_at="2025-05-15T21:40:32.000000Z",
+                                  starts_at="2025-03-21T09:34:05.000000Z",
+                                  discount_upper_limit=4990,
+                                  description="KUqkrXtAeLmERqX5bwDROtzb2hizqeaCyQXA4kt1s5IzgftNOCeiOWbpouk4VaYSYsKX6oU3L46cfTNs",
+                                  name="J74FdhPrGorQztiuURWZ5r1OnryKkdpmMzmoITgipjSc"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_coupon_47(self):
+        response = client.send(pp.UpdateCoupon(
+                                  "1d3b1c76-b758-4e4e-821f-6c735a4c64e7",
+                                  discount_percentage=5640.0,
+                                  code="SjEKEvn9",
+                                  is_public=True,
+                                  is_hidden=True,
+                                  is_disabled=False,
+                                  display_ends_at="2020-01-16T17:51:37.000000Z",
+                                  display_starts_at="2024-03-21T20:04:27.000000Z",
+                                  ends_at="2021-06-03T00:30:34.000000Z",
+                                  starts_at="2024-09-15T21:19:06.000000Z",
+                                  discount_upper_limit=5875,
+                                  description="fEeEirDJBvMOLUpWvpkfaBwAHAugbJ1KgmPImdwaTBcNwqaqeRCH16a6zzUqrHdosHdbmLywqukvEUDGTtuu5mLHhGQ9yekqoyNLKN2h7BNq3rRMob2yqEgXsKX0DNjA5LloLW2ZGwTADg0EGo2tY0BvAArU4c3Hcr3rYtMZs1",
+                                  name="hEQlphw1DkmThPoIdPA7X1r8JTPyIk7mw82VAIRkHcNMgqN77FQwuiGtQW4pnFSkfz0ZAYuHKErS89ga8rAwXpAiqw"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_coupon_48(self):
+        response = client.send(pp.UpdateCoupon(
+                                  "1d3b1c76-b758-4e4e-821f-6c735a4c64e7",
+                                  discount_percentage=7672.0,
+                                  usage_limit=4875,
+                                  code="1HL4w",
+                                  is_public=True,
+                                  is_hidden=True,
+                                  is_disabled=True,
+                                  display_ends_at="2021-09-17T00:17:27.000000Z",
+                                  display_starts_at="2025-03-23T16:18:31.000000Z",
+                                  ends_at="2021-08-22T17:05:32.000000Z",
+                                  starts_at="2025-02-18T20:18:21.000000Z",
+                                  discount_upper_limit=634,
+                                  description="mkMDA4SVfWD13Zj3L9DQPYajb0tV",
+                                  name="dWEdtL2ujHbA770c9iXi2Q1VWdznJovLhT0BrHHw3tE"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_coupon_49(self):
+        response = client.send(pp.UpdateCoupon(
+                                  "1d3b1c76-b758-4e4e-821f-6c735a4c64e7",
+                                  discount_percentage=7815.0,
+                                  min_amount=5631,
+                                  usage_limit=996,
+                                  code="BOJZocfpIF",
+                                  is_public=True,
+                                  is_hidden=False,
+                                  is_disabled=False,
+                                  display_ends_at="2020-09-06T03:37:11.000000Z",
+                                  display_starts_at="2023-03-25T05:47:08.000000Z",
+                                  ends_at="2021-07-30T03:33:19.000000Z",
+                                  starts_at="2021-08-14T05:34:56.000000Z",
+                                  discount_upper_limit=7586,
+                                  description="EP1IMpzVlOR0ZjHbJ4pIYeH1mIjK91BovJNiyan2Rg9xEgMUhIR",
+                                  name="yB0Lq7z8Ljil9JSMA7rA7mkLLtmKfguDK2IgQjODYIDOJbPEulQIvNSkQAL"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_coupon_50(self):
+        response = client.send(pp.UpdateCoupon(
+                                  "1d3b1c76-b758-4e4e-821f-6c735a4c64e7",
+                                  discount_percentage=1573.0,
+                                  is_shop_specified=True,
+                                  min_amount=8683,
+                                  usage_limit=9588,
+                                  code="xpQN",
+                                  is_public=True,
+                                  is_hidden=True,
+                                  is_disabled=False,
+                                  display_ends_at="2020-12-06T22:39:29.000000Z",
+                                  display_starts_at="2025-07-10T17:53:58.000000Z",
+                                  ends_at="2023-11-01T18:33:34.000000Z",
+                                  starts_at="2022-03-02T02:48:01.000000Z",
+                                  discount_upper_limit=1080,
+                                  description="m0nRuldHpSuEUpdPie9qQ2GFfC0at9jn8DwInc5YWbNc2E2NkkIcBn5byBGxSlhAbqrppUqGdxMolEMce2oIWkzh6xh3kO5wXHuEli1NcEVyTrbdyJqmh3WRfGT9d54NzUibZax1gbEqwtEhHNUjZJEl7H6",
+                                  name="HeFVmJSAKrLNuNDUQhJfNq76RxAuxSVrnur4Ju4ayidm5BuCe0yTSEIanUYTV2eUYLa0Qhqw2R1myjYzFL4j0HTXKtxMi6tvMf"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_coupon_51(self):
+        response = client.send(pp.UpdateCoupon(
+                                  "1d3b1c76-b758-4e4e-821f-6c735a4c64e7",
+                                  discount_percentage=4991.0,
+                                  available_shop_ids=["1377611a-3ec7-41e2-8a75-76239473583d", "b1790b16-1fcb-4504-9056-87209a70efcf", "8149f01f-4586-4c9b-be85-f16f138f7b90", "f6e04d38-a52a-4b0e-abbd-d5b11704966f", "67152ef7-6947-430f-984e-7afcd728edb6", "ec97cf69-f830-4129-abfe-67d87a7ff71c", "eb5c57d4-9293-401b-940c-18b3dc6340bd", "6e3d15df-2c8b-409e-8f19-46b39ddda883"],
+                                  is_shop_specified=True,
+                                  min_amount=4721,
+                                  usage_limit=5262,
+                                  code="dKQ0h3ghVZ",
+                                  is_public=False,
+                                  is_hidden=False,
+                                  is_disabled=False,
+                                  display_ends_at="2023-04-24T02:10:17.000000Z",
+                                  display_starts_at="2025-03-31T02:20:49.000000Z",
+                                  ends_at="2023-05-13T03:52:51.000000Z",
+                                  starts_at="2020-10-17T02:26:13.000000Z",
+                                  discount_upper_limit=9634,
+                                  description="9tcwx8MOKl5MRsa1MFEYPOVzvPSXDUkbgX2oBshUtXGZ9lfp9TwgYPOmismihX",
+                                  name="Wy"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_coupon_52(self):
+        response = client.send(pp.UpdateCoupon(
+                                  "1d3b1c76-b758-4e4e-821f-6c735a4c64e7",
+                                  discount_percentage=5274.0,
+                                  storage_id="cfc1bc3a-f4f1-480a-8fdd-1de45c747d1a",
+                                  available_shop_ids=["86efb0e8-3671-4086-afbb-f34df1ba2b2c", "dc60fd52-79fc-46ae-b612-d43c42ad658a", "5e138b05-a22f-44ba-af41-ec6486c58abb", "c92993d4-7010-4c81-b579-935d2f73080b", "021d3a50-1873-45d0-92d4-db832f5b8489", "1a7c3f15-90ed-4023-9295-e29da3f3cfd5", "baceafd9-47a5-4b5e-a4bd-030acfe27d5a", "d00b28e4-4359-4e85-84fc-4e7d2fec3544", "14a8725b-9f3f-47ae-a147-745aefbe90a9"],
+                                  is_shop_specified=True,
+                                  min_amount=1220,
+                                  usage_limit=1060,
+                                  code="Zn0Xgq",
+                                  is_public=False,
+                                  is_hidden=False,
+                                  is_disabled=False,
+                                  display_ends_at="2022-12-28T17:05:24.000000Z",
+                                  display_starts_at="2024-02-06T23:58:18.000000Z",
+                                  ends_at="2024-11-14T13:16:33.000000Z",
+                                  starts_at="2020-01-28T03:29:56.000000Z",
+                                  discount_upper_limit=6188,
+                                  description="h13qLZDYdRTWbMgZiB4q5yXIKvcyeytZUeCOzn479Q7e7CQ6mogsi4OQ6jQwMdVQzET3CTZR3naadmHoO937wRncWgLEMvwuXtyGneCNJhR9grzsET9HHziGJ2iqEYWh5QfKEnNvZa51B6RuNHWw3kkEIImb7878ag0GpEoXRZP9Tuo6ihkLtNpmjVgJl2arbhJouxWQ6FlBm7k1iTzl",
+                                  name="9ILQGKVJoUCSY35cdkgvsbAYCbaEHjTHUmx8bpMxYByLz0xsJRhRVsB9HjzBAZfWzO75yHWR5FLMa9CO3GmqQepv7doxpRjgZI2VSDvLJkkZMM"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_update_coupon_53(self):
+        response = client.send(pp.UpdateCoupon(
+                                  "1d3b1c76-b758-4e4e-821f-6c735a4c64e7",
+                                  discount_percentage=228.0,
+                                  num_recipients_cap=6525,
+                                  storage_id="5d3b4513-e2c5-43c1-8ee6-d95783301800",
+                                  available_shop_ids=["43b926de-4584-461b-af8e-ec61c0a23df6", "402d4e5c-121d-4041-aae5-e7b395c2eb99", "c0fcc650-0e96-4a1f-8ae7-2eb432ca6bfa", "0456fb1f-fbae-41be-93dc-526b4f0c2d9e", "3119f741-3408-4c26-9f9c-29352774fea8", "4d10e864-361d-4e0e-b75f-2f528bcbe951", "7bbb0760-cd72-4541-8544-4b43f6ff42c5"],
+                                  is_shop_specified=True,
+                                  min_amount=8131,
+                                  usage_limit=9044,
+                                  code="p",
+                                  is_public=True,
+                                  is_hidden=False,
+                                  is_disabled=False,
+                                  display_ends_at="2023-03-31T23:24:55.000000Z",
+                                  display_starts_at="2021-11-20T14:12:59.000000Z",
+                                  ends_at="2020-05-16T11:51:07.000000Z",
+                                  starts_at="2023-07-23T17:45:18.000000Z",
+                                  discount_upper_limit=7226,
+                                  description="xkj3y6QjLE9oTv9S3Zg4O5dK9OBTn3gY0HIwJr5Xn6R9PIw5eC52tvIBnMyMg4CnT2dj7ORUTt4jEgn4792da7QYy7V605lzcBixerwgOsZo2yFQXiifPwyEPkMTjwK5UmBamQcUvvHD25XYGaGoRmlkWpVKSQ",
+                                  name="ACWhdJgT5oXIAxp1c5Q2vG7By91KC2xkwbMvROWfUAhh6XnZz0yJYgRGAM6oTzljbZYS9b6qmrSFaDiVxdn1z0TuA7"
+        ))
+        self.assertNotEqual(response.status_code, 400)
+
+    def test_get_seven_bank_atm_session_0(self):
+        response = client.send(pp.GetSevenBankAtmSession(
+                                  "LQ8Gn"
         ))
         self.assertNotEqual(response.status_code, 400)
 
diff --git a/tests/webhook_tests.py b/tests/webhook_tests.py
new file mode 100644
index 0000000..c2f4f73
--- /dev/null
+++ b/tests/webhook_tests.py
@@ -0,0 +1,51 @@
+# coding: utf-8
+# DO NOT EDIT: File is generated by code generator.
+
+import os
+import unittest
+import pokepay as pp
+from pokepay.client import Client
+import tests.util
+
+package_root = os.path.dirname(os.path.dirname(pp.__file__))
+config_path = os.path.join(package_root, 'config.ini')
+client = Client(config_path)
+
+def test0(self):
+    list = client.send(pp.ListWebhooks())
+    for row in list.rows:
+        client.send(pp.DeleteWebhook(
+            row.id
+        ))
+    webhook1 = client.send(pp.CreateWebhook(
+        "bulk_shops",
+        "http://localhost/bulk_shops"
+    ))
+    self.assertEqual("coilinc", webhook1.organization_code)
+    self.assertEqual("bulk_shops", webhook1.task)
+    self.assertEqual("http://localhost/bulk_shops", webhook1.url)
+    self.assertEqual(True, webhook1.is_active)
+    self.assertEqual("application/json", webhook1.content_type)
+    webhook2 = client.send(pp.CreateWebhook(
+        "process_user_stats_operation",
+        "http://localhost/process_user_stats_operation"
+    ))
+    self.assertEqual("coilinc", webhook2.organization_code)
+    self.assertEqual("process_user_stats_operation", webhook2.task)
+    self.assertEqual("http://localhost/process_user_stats_operation", webhook2.url)
+    self.assertEqual(True, webhook2.is_active)
+    self.assertEqual("application/json", webhook2.content_type)
+    list2 = client.send(pp.ListWebhooks())
+    self.assertEqual(2, list2.count)
+    self.assertEqual(webhook2.id, list2.rows[0].id)
+    self.assertEqual(webhook1.id, list2.rows[1].id)
+    update_response = client.send(pp.UpdateWebhook(
+        webhook1.id,
+        is_active: False
+    ))
+    self.assertEqual(webhook1.id, update_response.id)
+    self.assertEqual(webhook1.organization_code, update_response.organization_code)
+    self.assertEqual(webhook1.task, update_response.task)
+    self.assertEqual(webhook1.url, update_response.url)
+    self.assertEqual(webhook1.content_type, update_response.content_type)
+    self.assertEqual(False, update_response.is_active)
