Source URL: https://agentapi.fortunegate.net/swagger-en.json
Title: swagger-en.json

{
  "openapi": "3.0.1",
  "info": {
    "title": "SlotCity API",
    "description": "<hr>\n<h2>Required HTTP Headers</h2>\n<p>All HTTP requests related to API usage must include the following HTTP headers.</p>\n<p>The API TOKEN value can be found in the settings and information of the provided administrator.</p>\n<hr>\n<table>\n    <thead>\n        <tr><th>Name</th><th>Value</th><th>Example</th></tr>\n    </thead>\n    <tbody>\n        <tr><td><code>Authorization</code></td><td><code>Bearer {API TOKEN}</code></td><td><code>Authorization: Bearer ed45553e-1702-4342-a70d-09bf7ff7f568</code></td></tr>\n        <tr><td><code>Accept</code></td><td><code>application/json</code></td><td><code>Accept: application/json</code></td></tr>\n        <tr><td><code>Content-Type</code></td><td><code>application/json</code></td><td><code>Content-Type: application/json</code></td></tr>\n    </tbody>\n</table>\n<hr>\n<h2>How to Pass Authentication for Testing</h2>\n<p>\n    To test on this page, click the <svg width=\"20\" height=\"20\" fill=\"#49cc90\"><svg viewBox=\"0 0 20 20\" id=\"unlocked\"><path d=\"M15.8 8H14V5.6C14 2.703 12.665 1 10 1 7.334 1 6 2.703 6 5.6V6h2v-.801C8 3.754 8.797 3 10 3c1.203 0 2 .754 2 2.199V8H4c-.553 0-1 .646-1 1.199V17c0 .549.428 1.139.951 1.307l1.197.387C5.672 18.861 6.55 19 7.1 19h5.8c.549 0 1.428-.139 1.951-.307l1.196-.387c.524-.167.953-.757.953-1.306V9.199C17 8.646 16.352 8 15.8 8z\"></path></svg></svg>\n    icon at the top right and enter the provided token to test.\n</p>\n<h2>Timezone</h2>\n<p>All times used by this API are <b>UTC</b>, regardless of where the server or your operation is located. This applies in both directions.</p>\n<table>\n    <thead>\n        <tr><th>Direction</th><th>Rule</th><th>Example</th></tr>\n    </thead>\n    <tbody>\n        <tr><td><code>Request</code></td><td>Send search times as UTC.</td><td><code>start_time : 2026-09-09T00:00:00Z</code></td></tr>\n        <tr><td><code>Response</code></td><td>Every timestamp is returned as UTC with a trailing <code>Z</code>.</td><td><code>start_time : 2026-09-09T15:06:56Z</code></td></tr>\n    </tbody>\n</table>\n<p>Convert to and from your local timezone on your side. If you display times to end users, convert the UTC value the API returns into the viewer's own timezone.</p>\n<hr><h2>Multi-language Support</h2>\n<p>Currently supported languages:</p>\n<hr>\n<table>\n    <thead><tr><th width=\"50px\">Value</th><th width=\"120px\">Code</th><th width=\"120px\">Language</th><th></th></tr></thead>\n    <tbody>\n        <tr><td><code>1</code></td><td><code>en</code></td><td><code>English</code></td><td></td></tr><tr><td><code>2</code></td><td><code>th</code></td><td><code>Thai</code></td><td></td></tr><tr><td><code>3</code></td><td><code>es</code></td><td><code>Spanish</code></td><td></td></tr><tr><td><code>4</code></td><td><code>ja</code></td><td><code>Japanese</code></td><td></td></tr><tr><td><code>5</code></td><td><code>pt</code></td><td><code>Portuguese</code></td><td></td></tr><tr><td><code>6</code></td><td><code>tr</code></td><td><code>Turkish</code></td><td></td></tr><tr><td><code>7</code></td><td><code>de</code></td><td><code>German</code></td><td></td></tr><tr><td><code>8</code></td><td><code>id</code></td><td><code>Indonesian</code></td><td></td></tr><tr><td><code>9</code></td><td><code>ms</code></td><td><code>Malaysian</code></td><td></td></tr><tr><td><code>10</code></td><td><code>zh</code></td><td><code>Chinese</code></td><td></td></tr><tr><td><code>11</code></td><td><code>mn</code></td><td><code>Mongolian</code></td><td></td></tr><tr><td><code>12</code></td><td><code>no</code></td><td><code>Norwegian</code></td><td></td></tr><tr><td><code>13</code></td><td><code>vi</code></td><td><code>Vietnamese</code></td><td></td></tr><tr><td><code>14</code></td><td><code>fr</code></td><td><code>French</code></td><td></td></tr>\n    </tbody>\n</table>\n<hr>\n<h2>Game Transaction History</h2>\n<p>All bets/wins in games are generated as transactions.</p>\n<p>Even when there is no win, a <code>Win(2)</code> transaction (0) is generated.</p>\n<p>If an error occurs during <code>Bet(1)</code> transaction processing when using callback URL, a <code>BetCancel(16)</code> transaction is generated and the bet amount is refunded.</p>\n<p>Transaction types returned by the API:</p>\n<hr>\n<table>\n    <thead><tr><th width=\"50px\">Value</th><th width=\"120px\">Transaction</th><th>Description</th></tr></thead>\n    <tbody>\n        <tr><td><code>1</code></td><td><code>Bet</code></td><td>Bet</td></tr>\n        <tr><td><code>16</code></td><td><code>BetCancel</code></td><td>Bet Cancel</td></tr>\n        <tr><td><code>2</code></td><td><code>Win</code></td><td>Win</td></tr>\n        <tr><td><code>32</code></td><td><code>BonusCall</code></td><td>Bonus Call Win</td></tr>\n        <tr><td><code>4</code></td><td><code>Deposit</code></td><td>Point Deposit</td></tr>\n        <tr><td><code>8</code></td><td><code>Withdraw</code></td><td>Point Withdrawal</td></tr>\n    </tbody>\n</table>\n<hr>\n<p>&#9888; Due to server load, transactions older than 2 days before maintenance are automatically deleted.</p>\n<h2>Bonus Call Feature</h2>\n<p>Bonus calls can be applied to games in progress (excluding live). The bonus call amount is deducted from the agent's points and the winnings are paid to the user, eventually being credited back to the agent's points. The bonus call process has no effect on the agent's points and is only reflected as user winnings. Bet amounts during bonus call are reflected in the RTP system, so overall RTP is not affected.</p>\n<p>Bonus calls can be applied to games where <code>call_enable</code> is <code>true</code> in the active game list. Use the <code>gplay_id</code> value from the active game list to start or cancel bonus calls.</p>\n<p>For bonus call wins, a <code>BonusCall(32)</code> transaction is generated instead of <code>Win(2)</code>. For seamless integration, the bonus call ID (<code>0</code> for regular transactions) is returned as <code>call_id</code> in bet/win callbacks.</p>\n<p>The <code>call_status</code> in the active game list shows the current bonus call status:</p>\n<hr>\n<table>\n    <thead><tr><th width=\"50px\">Value</th><th width=\"120px\">Status</th><th>Description</th></tr></thead>\n    <tbody>\n        <tr><td><code>0</code></td><td><code>Init</code></td><td>Initial state</td></tr>\n        <tr><td><code>1</code></td><td><code>Running</code></td><td>In progress</td></tr>\n        <tr><td><code>2</code></td><td><code>Complete</code></td><td>Completed</td></tr>\n        <tr><td><code>3</code></td><td><code>Cancel</code></td><td>Cancelled</td></tr>\n    </tbody>\n</table>\n<hr>\n<h2>Game Provider Maintenance</h2>\n<p>When a game provider enters maintenance, the provider status <code>Maintenance(2)</code> is returned.</p>\n<p>When accessing a game under maintenance, the response code <code>UNDER_MAINTENANCE(1)</code> is returned.</p>\n<hr>\n<table>\n    <thead><tr><th width=\"50px\">Value</th><th width=\"120px\">Status</th><th>Description</th></tr></thead>\n    <tbody>\n        <tr><td><code>1</code></td><td><code>Normal</code></td><td>Normal</td></tr>\n        <tr><td><code>2</code></td><td><code>Maintenance</code></td><td>Under Maintenance</td></tr>\n    </tbody>\n</table>\n<hr>\n<h2>System Security</h2>\n<p>To protect against attacks, concurrent calls from the same agent are limited to 50. When exceeded, <code>SERVER_IS_BUSY(1018)</code> is returned. Wait until existing calls complete before retrying.</p>\n<h2>API Response Codes</h2>\n<hr>\n<table>\n    <thead><tr><th width=\"200px\">Code</th><th width=\"120px\">Value</th><th>Description</th></tr></thead>\n    <tbody>\n        <tr><td><code>OK</code></td><td><code>0</code></td><td>Success</td></tr>\n        <tr><td><code>UNDER_MAINTENANCE</code></td><td><code>1</code></td><td>Under Maintenance</td></tr>\n        <tr><td><code>INTERNAL_SERVER_ERROR</code></td><td><code>1001</code></td><td>Internal Server Error</td></tr>\n        <tr><td><code>VALIDATION_ERROR</code></td><td><code>1002</code></td><td>Request Data Format Error</td></tr>\n        <tr><td><code>SERVICE_EXCEPTION</code></td><td><code>1003</code></td><td>Service Exception</td></tr>\n        <tr><td><code>TOKEN_NOT_FOUND</code></td><td><code>1007</code></td><td>Authentication Token Not Found</td></tr>\n        <tr><td><code>TOKEN_INVALID</code></td><td><code>1009</code></td><td>Invalid Authentication Token</td></tr>\n        <tr><td><code>PERMISSION_ERROR</code></td><td><code>1010</code></td><td>Access Permission Denied</td></tr>\n        <tr><td><code>PROVIDER_ERROR</code></td><td><code>1011</code></td><td>Game Provider Error</td></tr>\n        <tr><td><code>PARAMETERS_INVALID</code></td><td><code>1012</code></td><td>Parameter Error</td></tr>\n        <tr><td><code>CALLBACK_ERROR</code></td><td><code>1015</code></td><td>Callback Error (*Check callback API error log*)</td></tr>\n        <tr><td><code>SERVER_IS_BUSY</code></td><td><code>1018</code></td><td>Server Busy (*Concurrent call limit exceeded*)</td></tr>\n        <tr><td><code>IP_NOT_ALLOWED</code></td><td><code>1020</code></td><td>IP Not Allowed</td></tr>\n        <tr><td><code>AGENT_NOT_FOUND</code></td><td><code>2001</code></td><td>Agent Not Found</td></tr>\n        <tr><td><code>USER_NOT_FOUND</code></td><td><code>2002</code></td><td>User Not Found</td></tr>\n        <tr><td><code>GAME_NOT_FOUND</code></td><td><code>2003</code></td><td>Game Not Found</td></tr>\n        <tr><td><code>POINT_NOT_ENOUGH</code></td><td><code>2005</code></td><td>Insufficient Agent Points</td></tr>\n        <tr><td><code>BALANCE_NOT_ENOUGH</code></td><td><code>2006</code></td><td>Insufficient User Balance</td></tr>\n        <tr><td><code>PROVIDER_NOT_FOUND</code></td><td><code>2007</code></td><td>Game Provider Not Found</td></tr>\n        <tr><td><code>BONUSCALL_DOUBLE</code></td><td><code>2011</code></td><td>Duplicate Bonus Call</td></tr>\n        <tr><td><code>BONUSCALL_ALEADY_ENDED</code></td><td><code>2012</code></td><td>Bonus Call Already Ended</td></tr>\n        <tr><td><code>ROUND_NOT_FOUND</code></td><td><code>2013</code></td><td>Round Not Found</td></tr>\n        <tr><td><code>CURRENCY_NOT_SUPPORTED</code></td><td><code>2014</code></td><td>Currency Not Supported</td></tr>\n    </tbody>\n</table>\n<hr>",
    "version": "v4"
  },
  "paths": {
    "/v4/agent/info": {
      "post": {
        "tags": [
          "1.Agent Account"
        ],
        "summary": "Get Agent Info",
        "description": "Retrieves agent information (name, balance, etc.).",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/_AgentInfoResultData"
                }
              }
            }
          }
        }
      }
    },
    "/v4/agent/rtp": {
      "post": {
        "tags": [
          "1.Agent Account"
        ],
        "summary": "Change Agent RTP (Win Ratio)",
        "description": "Changes the agent's RTP (win ratio). The RTP is applied to all users under the agent. Exception: when individual RTP is requested during game launch.",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReqAgentRtp"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResultBase"
                }
              }
            }
          }
        }
      }
    },
    "/v4/user/create": {
      "post": {
        "tags": [
          "2.User Account"
        ],
        "summary": "Create User",
        "description": "Creates user information and returns user data. User names must be unique. If a user with the same name already exists, the existing user information is returned.<br />\nThe returned <code>user_code</code> value is used to identify the user in user-related API requests.<br /><b>&#9888; When switching between Transfer and Seamless modes, existing user codes cannot be used. It is recommended to call this API every time a user logs in to obtain a new user code.</b>",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReqUserCreate"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/_UserCreateResultData"
                }
              }
            }
          }
        }
      }
    },
    "/v4/user/info": {
      "post": {
        "tags": [
          "2.User Account"
        ],
        "summary": "Get User Info",
        "description": "Retrieves user information (name, balance, etc.).<br />\nIf user information does not exist, <code>USER_NOT_FOUND</code> code is returned. If attempting to query another agent's user, <code>PERMISSION_ERROR</code> code is returned.",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReqUserInfo"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/_UserInfoResultData"
                }
              }
            }
          }
        }
      }
    },
    "/v4/user/allinfo": {
      "post": {
        "tags": [
          "2.User Account"
        ],
        "summary": "Get All Users Info",
        "description": "Retrieves information (name, balance, etc.) of all users belonging to the requesting agent.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/_UserInfoListResultData"
                }
              }
            }
          }
        }
      }
    },
    "/v4/wallet/deposit": {
      "post": {
        "tags": [
          "3.User Wallet (Only Transfer Mode)"
        ],
        "summary": "Deposit User Money",
        "description": "Deposits money to the user. <br />\nThe deposited amount is deducted from the agent's points.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReqWallet"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/_UserWalletResultData"
                }
              }
            }
          }
        }
      }
    },
    "/v4/wallet/withdraw": {
      "post": {
        "tags": [
          "3.User Wallet (Only Transfer Mode)"
        ],
        "summary": "Withdraw User Money",
        "description": "Withdraws money from the user. <br />\nThe withdrawn amount is added to the agent's points.",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReqWallet"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/_UserWalletResultData"
                }
              }
            }
          }
        }
      }
    },
    "/v4/wallet/withdraw-all": {
      "post": {
        "tags": [
          "3.User Wallet (Only Transfer Mode)"
        ],
        "summary": "Withdraw All User Money",
        "description": "Withdraws all money from the user. <br />\nAll withdrawn money is added to the agent's points.",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReqWalletAll"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/_UserWalletResultData"
                }
              }
            }
          }
        }
      }
    },
    "/v4/game/providers": {
      "post": {
        "tags": [
          "4.Game Details"
        ],
        "summary": "Get Game Provider List",
        "description": "Retrieves the list of game providers assigned to the agent. If no list is returned, contact the parent agent for provider assignment.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReqProviders"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/_ProviderListResultData"
                }
              }
            }
          }
        }
      }
    },
    "/v4/game/games": {
      "post": {
        "tags": [
          "4.Game Details"
        ],
        "summary": "Get Game List",
        "description": "Retrieves the list of games assigned to the agent. If no list is returned, contact the parent agent for game assignment. <br />\nRequest the game list using the <code>provider_id</code> returned from the provider list. <br />\nFor slots only, set <code>category</code> to <code>1</code>. For live only, set to <code>2</code>. For all games, set to <code>0</code>. <br />\nGames include slots and live. Slots have <code>category</code> 'Slots', live has 'Live'.",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReqGames"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/_GameListResultData"
                }
              }
            }
          }
        }
      }
    },
    "/v4/game/game-url": {
      "post": {
        "tags": [
          "5.Game Launch"
        ],
        "summary": "Get Game Launch URL",
        "description": "Returns a URL to access the game. The URL is valid for 10 minutes from creation and is single-use.<br />\nUse the <code>game_code</code> from the game list as the <code>game_symbol</code> value.<br />\nTo apply a user-specific win ratio instead of the agent's, set <code>win_ratio</code> to the desired value (must be equal to or less than the agent's ratio). Use <code>0 (default)</code> to apply the agent's ratio.<br />\nUsing a <code>user_code</code> from another agent returns <code>PERMISSION_ERROR</code>. Launching a game not assigned to the agent returns <code>PROVIDER_NOT_FOUND</code> or <code>GAME_NOT_FOUND</code>.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReqGameUrl"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/_GameUrlResultData"
                }
              }
            }
          }
        }
      }
    },
    "/v4/game/online-games": {
      "post": {
        "tags": [
          "5.Game Launch"
        ],
        "summary": "Get Active Game List",
        "description": "Returns the list of games that have been active within the last 30 minutes. <br />\nThe <code>gplay_id</code> can be used for bonus calls or managing active games.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/_OnlineGameListResultData"
                }
              }
            }
          }
        }
      }
    },
    "/v4/game/kick_games": {
      "post": {
        "tags": [
          "5.Game Launch"
        ],
        "summary": "Terminate Game Session",
        "description": "Terminates all active game sessions for the user. Session termination occurs on the next round bet.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReqUserInfo"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResultBase"
                }
              }
            }
          }
        }
      }
    },
    "/v4/game/call_config": {
      "post": {
        "tags": [
          "5.Game Launch"
        ],
        "summary": "Get Bonus Call Configuration",
        "description": "Retrieves configuration values for applying bonus calls.<br />\nThe bonus call amount must be equal to or greater than the minimum call amount <code>call_min</code>.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/_CallConfigResultData"
                }
              }
            }
          }
        }
      }
    },
    "/v4/game/call_start": {
      "post": {
        "tags": [
          "5.Game Launch"
        ],
        "summary": "Start Bonus Call",
        "description": "Applies a bonus call to a game in progress. Use the <code>gplay_id</code> from the active game list. <br />\nIf the call feature is disabled for the agent, <code>PERMISSION_ERROR</code> code is returned.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReqCallStart"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/_CallStartResultData"
                }
              }
            }
          }
        }
      }
    },
    "/v4/game/call_cancel": {
      "post": {
        "tags": [
          "5.Game Launch"
        ],
        "summary": "Cancel Bonus Call",
        "description": "Cancels an active bonus call. Use the <code>call_id</code> returned from the bonus call start. <br />\nIf it's not the agent's bonus call, <code>PERMISSION_ERROR</code> is returned. If the bonus call has already ended, <code>BONUSCALL_ALEADY_ENDED</code> is returned.",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReqCallCancel"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResultBase"
                }
              }
            }
          }
        }
      }
    },
    "/v4/game/transaction": {
      "post": {
        "tags": [
          "6.Game Transaction"
        ],
        "summary": "Get Game Transactions (Search by Time)",
        "description": "<p>Retrieves game transaction list within a maximum 1-hour search range. Request list is limited to 2000.</p>\n<h2>[1] Set <code>start_time</code> and <code>end_time</code> to the desired search range. Example: <code>2023-03-01 11:00:00</code> ~ <code>2023-03-01 12:00:00</code></h2>\n<h2>[2] For the next request, set <code>start_time</code> to the previous <code>end_time</code>. Example: <code>2023-03-01 12:00:00</code> ~ <code>2023-03-01 13:00:00</code></h2>\n<h2>[3] There must be at least a <code>30 second</code> delay between requests.</h2>",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReqTransactions"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/_Transaction_PagedListResultData"
                }
              }
            }
          }
        }
      }
    },
    "/v4/game/transaction-id": {
      "post": {
        "tags": [
          "6.Game Transaction"
        ],
        "summary": "Get Game Transactions (Search by Transaction ID)",
        "description": "<p>Searches from the specified transaction ID.</p>\n<h2>[1] When calling with the same <code>last_id</code>, there must be at least a <code>30 second</code> delay.</h2>\n<h2>[2] Initially set <code>last_id</code> to <code>0</code>, then use the latest returned ID for subsequent requests.</h2>\n<h2>[3] Results exclude the <code>last_id</code> transaction and return transactions created after it.</h2>\n<h2>[4] The latest data is at the end.</h2>",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReqTransactionsById"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/_TransactionListResultData"
                }
              }
            }
          }
        }
      }
    },
    "/v4/game/round-details": {
      "post": {
        "tags": [
          "6.Game Transaction"
        ],
        "summary": "Get Round Details Page",
        "description": "<p>Returns the URL for viewing detailed round information of searched transactions.</p>\n<p>Round information is available up to 1 month (30 days) prior.</p>",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReqRoundDetails"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/_RoundDetailsUrlResultData"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "ReqAgentRtp": {
        "type": "object",
        "properties": {
          "win_ratio": {
            "maximum": 95,
            "minimum": 75,
            "type": "number",
            "description": "win rate",
            "format": "float",
            "example": 85
          }
        },
        "additionalProperties": false,
        "description": "Agent win rate modification request"
      },
      "ReqCallCancel": {
        "type": "object",
        "properties": {
          "call_id": {
            "type": "integer",
            "description": "Call unique ID",
            "format": "int64",
            "example": 1
          }
        },
        "additionalProperties": false,
        "description": "Bonus call cancel request"
      },
      "ReqCallStart": {
        "type": "object",
        "properties": {
          "gplay_id": {
            "type": "integer",
            "description": "In-progress game play ID",
            "format": "int64",
            "example": 1
          },
          "set_point": {
            "type": "number",
            "description": "Call fire amount",
            "format": "double",
            "example": 10000
          },
          "call_meta": {
            "type": "string",
            "description": "Call meta JSON data",
            "nullable": true,
            "example": ""
          },
          "memo": {
            "type": "string",
            "description": "Call fire memo",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Bonus call start request"
      },
      "ReqGameUrl": {
        "required": [
          "game_symbol",
          "lang",
          "provider_id",
          "user_code"
        ],
        "type": "object",
        "properties": {
          "user_code": {
            "type": "integer",
            "description": "User code",
            "format": "int64",
            "example": 400000001
          },
          "provider_id": {
            "type": "integer",
            "description": "Provider ID",
            "format": "int64",
            "example": 1
          },
          "game_symbol": {
            "minLength": 1,
            "type": "string",
            "description": "Game symbol",
            "example": "vswaysdogs"
          },
          "lang": {
            "maximum": 14,
            "minimum": 1,
            "enum": [
              1,
              2,
              3,
              4,
              5,
              6,
              7,
              8,
              9,
              10,
              11,
              12,
              13,
              14
            ],
            "type": "integer",
            "description": "Language code",
            "format": "int32",
            "example": 1
          },
          "return_url": {
            "type": "string",
            "description": "Home url",
            "nullable": true,
            "example": "https://lobby.slotcity.com"
          },
          "win_ratio": {
            "maximum": 95,
            "minimum": 0,
            "type": "number",
            "description": "win rate",
            "format": "float",
            "example": 0
          }
        },
        "additionalProperties": false
      },
      "ReqGames": {
        "required": [
          "category",
          "lang",
          "provider_id"
        ],
        "type": "object",
        "properties": {
          "provider_id": {
            "type": "integer",
            "description": "Provider ID",
            "format": "int64",
            "example": 1
          },
          "category": {
            "maximum": 2,
            "minimum": 0,
            "type": "integer",
            "description": "Game category 0: all, 1: slots, 2: live",
            "format": "int32",
            "example": 0
          },
          "lang": {
            "maximum": 14,
            "minimum": 1,
            "enum": [
              1,
              2,
              3,
              4,
              5,
              6,
              7,
              8,
              9,
              10,
              11,
              12,
              13,
              14
            ],
            "type": "integer",
            "description": "Language code",
            "format": "int32",
            "example": 1
          }
        },
        "additionalProperties": false
      },
      "ReqProviders": {
        "required": [
          "lang"
        ],
        "type": "object",
        "properties": {
          "lang": {
            "maximum": 14,
            "minimum": 1,
            "enum": [
              1,
              2,
              3,
              4,
              5,
              6,
              7,
              8,
              9,
              10,
              11,
              12,
              13,
              14
            ],
            "type": "integer",
            "description": "Language code",
            "format": "int32",
            "example": 1
          }
        },
        "additionalProperties": false
      },
      "ReqRoundDetails": {
        "required": [
          "round_id",
          "user_code"
        ],
        "type": "object",
        "properties": {
          "user_code": {
            "type": "integer",
            "description": "User identification code",
            "format": "int64",
            "example": 3
          },
          "round_id": {
            "minLength": 1,
            "type": "string",
            "description": "Round ID",
            "example": "12345713400010008"
          },
          "provider_id": {
            "type": "integer",
            "description": "Provider ID",
            "format": "int64",
            "example": 1
          },
          "game_code": {
            "type": "string",
            "description": "Game symbol",
            "nullable": true,
            "example": "vswaysdogs"
          },
          "lang": {
            "type": "integer",
            "description": "Language code",
            "format": "int32",
            "example": 1
          }
        },
        "additionalProperties": false
      },
      "ReqTransactions": {
        "required": [
          "end_time",
          "limit",
          "offset",
          "start_time"
        ],
        "type": "object",
        "properties": {
          "start_time": {
            "type": "string",
            "description": "Search start time (yyyy-MM-dd HH:mm:ss)",
            "format": "date-time",
            "example": "2022-12-26 15:00:00"
          },
          "end_time": {
            "type": "string",
            "description": "Search end time (yyyy-MM-dd HH:mm:ss)",
            "format": "date-time",
            "example": "2022-12-26 16:00:00"
          },
          "offset": {
            "maximum": 2147483647,
            "minimum": 0,
            "type": "integer",
            "description": "List start position",
            "format": "int32",
            "example": 0
          },
          "limit": {
            "maximum": 2000,
            "minimum": 10,
            "type": "integer",
            "description": "List length (MAX 2000)",
            "format": "int32",
            "example": 10
          }
        },
        "additionalProperties": false
      },
      "ReqTransactionsById": {
        "required": [
          "last_id",
          "limit"
        ],
        "type": "object",
        "properties": {
          "last_id": {
            "minimum": 0,
            "type": "integer",
            "description": "Transaction start ID",
            "format": "int64",
            "example": 0
          },
          "limit": {
            "maximum": 2000,
            "minimum": 10,
            "type": "integer",
            "description": "Requested list length (MAX 2000)",
            "format": "int32",
            "example": 10
          }
        },
        "additionalProperties": false
      },
      "ReqUserCreate": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "maxLength": 50,
            "minLength": 2,
            "pattern": "^[_a-zA-Z0-9]+$",
            "type": "string",
            "description": "User name",
            "example": "test"
          }
        },
        "additionalProperties": false
      },
      "ReqUserInfo": {
        "required": [
          "user_code"
        ],
        "type": "object",
        "properties": {
          "user_code": {
            "type": "integer",
            "description": "User identification code",
            "format": "int64",
            "example": 3
          }
        },
        "additionalProperties": false
      },
      "ReqWallet": {
        "required": [
          "amount",
          "user_code"
        ],
        "type": "object",
        "properties": {
          "user_code": {
            "type": "integer",
            "description": "User identification code",
            "format": "int64",
            "example": 3
          },
          "amount": {
            "type": "number",
            "description": "Requested amount",
            "format": "double",
            "example": 50000
          }
        },
        "additionalProperties": false
      },
      "ReqWalletAll": {
        "required": [
          "user_code"
        ],
        "type": "object",
        "properties": {
          "user_code": {
            "type": "integer",
            "description": "User identification code",
            "format": "int64",
            "example": 3
          }
        },
        "additionalProperties": false
      },
      "ResultBase": {
        "type": "object",
        "properties": {
          "code": {
            "enum": [
              0,
              1,
              1000,
              1001,
              1002,
              1003,
              1004,
              1005,
              1006,
              1007,
              1008,
              1009,
              1010,
              1011,
              1012,
              1013,
              1014,
              1015,
              1016,
              1017,
              1018,
              1019,
              1020,
              2001,
              2002,
              2003,
              2005,
              2006,
              2007,
              2008,
              2009,
              2010,
              2011,
              2012,
              2013,
              2014,
              2015,
              2016,
              2017,
              2018
            ],
            "type": "integer",
            "description": "Response result code",
            "format": "int32",
            "example": 0
          },
          "message": {
            "type": "string",
            "description": "Response result message",
            "nullable": true,
            "example": "OK"
          }
        },
        "additionalProperties": false
      },
      "_AgentInfo": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Agent name",
            "nullable": true,
            "example": "dreamgames"
          },
          "currency": {
            "type": "integer",
            "description": "Agent's currency unit",
            "format": "int32",
            "example": 2
          },
          "balance": {
            "type": "number",
            "description": "Agent's held points",
            "format": "double",
            "example": 50000
          },
          "win_ratio": {
            "type": "number",
            "description": "Agent's win rate",
            "format": "float",
            "example": 95.5
          }
        },
        "additionalProperties": false
      },
      "_AgentInfoResultData": {
        "type": "object",
        "properties": {
          "code": {
            "enum": [
              0,
              1,
              1000,
              1001,
              1002,
              1003,
              1004,
              1005,
              1006,
              1007,
              1008,
              1009,
              1010,
              1011,
              1012,
              1013,
              1014,
              1015,
              1016,
              1017,
              1018,
              1019,
              1020,
              2001,
              2002,
              2003,
              2005,
              2006,
              2007,
              2008,
              2009,
              2010,
              2011,
              2012,
              2013,
              2014,
              2015,
              2016,
              2017,
              2018
            ],
            "type": "integer",
            "description": "Response result code",
            "format": "int32",
            "example": 0
          },
          "message": {
            "type": "string",
            "description": "Response result message",
            "nullable": true,
            "example": "OK"
          },
          "data": {
            "$ref": "#/components/schemas/_AgentInfo"
          }
        },
        "additionalProperties": false
      },
      "_CallConfig": {
        "type": "object",
        "properties": {
          "call_min": {
            "type": "number",
            "description": "Bonus call minimum amount",
            "format": "double",
            "example": 5000
          }
        },
        "additionalProperties": false
      },
      "_CallConfigResultData": {
        "type": "object",
        "properties": {
          "code": {
            "enum": [
              0,
              1,
              1000,
              1001,
              1002,
              1003,
              1004,
              1005,
              1006,
              1007,
              1008,
              1009,
              1010,
              1011,
              1012,
              1013,
              1014,
              1015,
              1016,
              1017,
              1018,
              1019,
              1020,
              2001,
              2002,
              2003,
              2005,
              2006,
              2007,
              2008,
              2009,
              2010,
              2011,
              2012,
              2013,
              2014,
              2015,
              2016,
              2017,
              2018
            ],
            "type": "integer",
            "description": "Response result code",
            "format": "int32",
            "example": 0
          },
          "message": {
            "type": "string",
            "description": "Response result message",
            "nullable": true,
            "example": "OK"
          },
          "data": {
            "$ref": "#/components/schemas/_CallConfig"
          }
        },
        "additionalProperties": false
      },
      "_CallStart": {
        "type": "object",
        "properties": {
          "call_id": {
            "type": "integer",
            "description": "Started call ID",
            "format": "int64",
            "example": 1
          }
        },
        "additionalProperties": false
      },
      "_CallStartResultData": {
        "type": "object",
        "properties": {
          "code": {
            "enum": [
              0,
              1,
              1000,
              1001,
              1002,
              1003,
              1004,
              1005,
              1006,
              1007,
              1008,
              1009,
              1010,
              1011,
              1012,
              1013,
              1014,
              1015,
              1016,
              1017,
              1018,
              1019,
              1020,
              2001,
              2002,
              2003,
              2005,
              2006,
              2007,
              2008,
              2009,
              2010,
              2011,
              2012,
              2013,
              2014,
              2015,
              2016,
              2017,
              2018
            ],
            "type": "integer",
            "description": "Response result code",
            "format": "int32",
            "example": 0
          },
          "message": {
            "type": "string",
            "description": "Response result message",
            "nullable": true,
            "example": "OK"
          },
          "data": {
            "$ref": "#/components/schemas/_CallStart"
          }
        },
        "additionalProperties": false
      },
      "_Game": {
        "type": "object",
        "properties": {
          "provider_id": {
            "type": "integer",
            "description": "Provider ID",
            "format": "int64",
            "example": 1
          },
          "game_code": {
            "type": "string",
            "description": "Game symbol",
            "nullable": true,
            "example": "vswaysdogs"
          },
          "game_name": {
            "type": "string",
            "description": "Game name (English)",
            "nullable": true,
            "example": "The Dog House Megaways"
          },
          "locale_name": {
            "type": "string",
            "description": "Game name (regional)",
            "nullable": true,
            "example": "Toolhouse Mega"
          },
          "game_image": {
            "type": "string",
            "description": "Game image",
            "nullable": true,
            "example": "http://.../game_pic/en/216x160/vswaysdogs.jpg"
          },
          "launch_enable": {
            "type": "boolean",
            "description": "Game launchable",
            "example": true
          },
          "category": {
            "type": "string",
            "description": "Game category, 'Slots' if slots, 'Live' if live",
            "nullable": true,
            "example": "Slots"
          },
          "reg_date": {
            "type": "string",
            "description": "Game registration date",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "_GameListResultData": {
        "type": "object",
        "properties": {
          "code": {
            "enum": [
              0,
              1,
              1000,
              1001,
              1002,
              1003,
              1004,
              1005,
              1006,
              1007,
              1008,
              1009,
              1010,
              1011,
              1012,
              1013,
              1014,
              1015,
              1016,
              1017,
              1018,
              1019,
              1020,
              2001,
              2002,
              2003,
              2005,
              2006,
              2007,
              2008,
              2009,
              2010,
              2011,
              2012,
              2013,
              2014,
              2015,
              2016,
              2017,
              2018
            ],
            "type": "integer",
            "description": "Response result code",
            "format": "int32",
            "example": 0
          },
          "message": {
            "type": "string",
            "description": "Response result message",
            "nullable": true,
            "example": "OK"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/_Game"
            },
            "description": "Response result data",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "_GameUrl": {
        "type": "object",
        "properties": {
          "game_url": {
            "type": "string",
            "description": "Game access URL",
            "nullable": true,
            "example": "http://..."
          }
        },
        "additionalProperties": false
      },
      "_GameUrlResultData": {
        "type": "object",
        "properties": {
          "code": {
            "enum": [
              0,
              1,
              1000,
              1001,
              1002,
              1003,
              1004,
              1005,
              1006,
              1007,
              1008,
              1009,
              1010,
              1011,
              1012,
              1013,
              1014,
              1015,
              1016,
              1017,
              1018,
              1019,
              1020,
              2001,
              2002,
              2003,
              2005,
              2006,
              2007,
              2008,
              2009,
              2010,
              2011,
              2012,
              2013,
              2014,
              2015,
              2016,
              2017,
              2018
            ],
            "type": "integer",
            "description": "Response result code",
            "format": "int32",
            "example": 0
          },
          "message": {
            "type": "string",
            "description": "Response result message",
            "nullable": true,
            "example": "OK"
          },
          "data": {
            "$ref": "#/components/schemas/_GameUrl"
          }
        },
        "additionalProperties": false
      },
      "_OnlineGame": {
        "type": "object",
        "properties": {
          "gplay_id": {
            "type": "integer",
            "description": "In-progress game play ID",
            "format": "int64",
            "example": 1
          },
          "user_code": {
            "type": "integer",
            "description": "User code (unique ID)",
            "format": "int64",
            "example": 400000001
          },
          "user_name": {
            "type": "string",
            "description": "User name",
            "nullable": true,
            "example": "test1"
          },
          "provider_id": {
            "type": "integer",
            "description": "Provider ID",
            "format": "int64",
            "example": 1
          },
          "provider_name": {
            "type": "string",
            "description": "Provider name (English)",
            "nullable": true,
            "example": "Pragmatic Play"
          },
          "game_code": {
            "type": "string",
            "description": "Game symbol",
            "nullable": true,
            "example": "vswaysdogs"
          },
          "game_name": {
            "type": "string",
            "description": "Game name (English)",
            "nullable": true,
            "example": "The Dog House Megaways"
          },
          "category": {
            "enum": [
              1,
              2
            ],
            "type": "integer",
            "description": "Category 1: slots, 2: live",
            "format": "int32",
            "example": 1
          },
          "last_round_bet": {
            "type": "number",
            "description": "Latest round bet",
            "format": "double",
            "example": 100
          },
          "spend": {
            "type": "number",
            "description": "Total bet",
            "format": "double",
            "example": 10000
          },
          "win": {
            "type": "number",
            "description": "Total win (excluding bonus win)",
            "format": "double",
            "example": 1000
          },
          "call_win": {
            "type": "number",
            "description": "Bonus call win",
            "format": "double",
            "example": 0
          },
          "call_id": {
            "type": "integer",
            "description": "In-progress bonus call ID",
            "format": "int64"
          },
          "call_enable": {
            "type": "boolean",
            "description": "Call available",
            "example": true
          },
          "callend_flag": {
            "type": "boolean",
            "description": "Call progress complete"
          },
          "call_status": {
            "enum": [
              0,
              1,
              2,
              3
            ],
            "type": "integer",
            "description": "Call progress status",
            "format": "int32"
          },
          "start_time": {
            "type": "string",
            "description": "Access time",
            "format": "date-time",
            "example": "2023.01.13 12:01:01"
          },
          "last_update": {
            "type": "string",
            "description": "Last update time",
            "format": "date-time",
            "example": "2023.01.13 12:01:01"
          }
        },
        "additionalProperties": false
      },
      "_OnlineGameListResultData": {
        "type": "object",
        "properties": {
          "code": {
            "enum": [
              0,
              1,
              1000,
              1001,
              1002,
              1003,
              1004,
              1005,
              1006,
              1007,
              1008,
              1009,
              1010,
              1011,
              1012,
              1013,
              1014,
              1015,
              1016,
              1017,
              1018,
              1019,
              1020,
              2001,
              2002,
              2003,
              2005,
              2006,
              2007,
              2008,
              2009,
              2010,
              2011,
              2012,
              2013,
              2014,
              2015,
              2016,
              2017,
              2018
            ],
            "type": "integer",
            "description": "Response result code",
            "format": "int32",
            "example": 0
          },
          "message": {
            "type": "string",
            "description": "Response result message",
            "nullable": true,
            "example": "OK"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/_OnlineGame"
            },
            "description": "Response result data",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "_Provider": {
        "type": "object",
        "properties": {
          "provider_id": {
            "type": "integer",
            "description": "Provider ID",
            "format": "int64",
            "example": 1
          },
          "provider_name": {
            "type": "string",
            "description": "Provider name (English)",
            "nullable": true,
            "example": "Pragmatic Play"
          },
          "locale_name": {
            "type": "string",
            "description": "Provider name (regional)",
            "nullable": true,
            "example": "Pragmatic Play"
          },
          "status": {
            "enum": [
              1,
              2
            ],
            "type": "integer",
            "description": "Provider status",
            "format": "int32",
            "example": 1
          }
        },
        "additionalProperties": false
      },
      "_ProviderListResultData": {
        "type": "object",
        "properties": {
          "code": {
            "enum": [
              0,
              1,
              1000,
              1001,
              1002,
              1003,
              1004,
              1005,
              1006,
              1007,
              1008,
              1009,
              1010,
              1011,
              1012,
              1013,
              1014,
              1015,
              1016,
              1017,
              1018,
              1019,
              1020,
              2001,
              2002,
              2003,
              2005,
              2006,
              2007,
              2008,
              2009,
              2010,
              2011,
              2012,
              2013,
              2014,
              2015,
              2016,
              2017,
              2018
            ],
            "type": "integer",
            "description": "Response result code",
            "format": "int32",
            "example": 0
          },
          "message": {
            "type": "string",
            "description": "Response result message",
            "nullable": true,
            "example": "OK"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/_Provider"
            },
            "description": "Response result data",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "_RoundDetailsUrl": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "description": "Round detail page URL",
            "nullable": true,
            "example": "http://.../gs2c/parentRoundHistoryDetails.do?playSessionId=1252737599"
          }
        },
        "additionalProperties": false
      },
      "_RoundDetailsUrlResultData": {
        "type": "object",
        "properties": {
          "code": {
            "enum": [
              0,
              1,
              1000,
              1001,
              1002,
              1003,
              1004,
              1005,
              1006,
              1007,
              1008,
              1009,
              1010,
              1011,
              1012,
              1013,
              1014,
              1015,
              1016,
              1017,
              1018,
              1019,
              1020,
              2001,
              2002,
              2003,
              2005,
              2006,
              2007,
              2008,
              2009,
              2010,
              2011,
              2012,
              2013,
              2014,
              2015,
              2016,
              2017,
              2018
            ],
            "type": "integer",
            "description": "Response result code",
            "format": "int32",
            "example": 0
          },
          "message": {
            "type": "string",
            "description": "Response result message",
            "nullable": true,
            "example": "OK"
          },
          "data": {
            "$ref": "#/components/schemas/_RoundDetailsUrl"
          }
        },
        "additionalProperties": false
      },
      "_Transaction": {
        "type": "object",
        "properties": {
          "trans_id": {
            "type": "integer",
            "description": "Transaction ID",
            "format": "int64",
            "example": 101
          },
          "user_code": {
            "type": "integer",
            "description": "User code",
            "format": "int64",
            "example": 400000001
          },
          "round_id": {
            "type": "string",
            "description": "Round ID",
            "nullable": true,
            "example": "12345713400010008"
          },
          "trans_type": {
            "enum": [
              1,
              2,
              4,
              8,
              16,
              32
            ],
            "type": "integer",
            "description": "User transaction",
            "format": "int32",
            "example": 1
          },
          "provider_id": {
            "type": "integer",
            "description": "Provider ID",
            "format": "int64",
            "example": 1
          },
          "provider_name": {
            "type": "string",
            "description": "Provider name (English)",
            "nullable": true,
            "example": "Pragmatic Play"
          },
          "game_code": {
            "type": "string",
            "description": "Game symbol",
            "nullable": true,
            "example": "vswaysdogs"
          },
          "game_name": {
            "type": "string",
            "description": "Game name (English)",
            "nullable": true,
            "example": "The Dog House Megaways"
          },
          "category": {
            "type": "string",
            "description": "Game category",
            "nullable": true,
            "example": "Slots"
          },
          "prebalance": {
            "type": "number",
            "description": "Balance amount before transaction processing",
            "format": "double",
            "example": 45000
          },
          "trans_amount": {
            "type": "number",
            "description": "Transaction amount",
            "format": "double",
            "example": 45000
          },
          "balance": {
            "type": "number",
            "description": "Balance amount after transaction processing",
            "format": "double",
            "example": 50000
          },
          "regdate": {
            "type": "string",
            "description": "Transaction registration time",
            "format": "date-time",
            "example": "2022-12-28 12:00:00"
          }
        },
        "additionalProperties": false
      },
      "_TransactionListResultData": {
        "type": "object",
        "properties": {
          "code": {
            "enum": [
              0,
              1,
              1000,
              1001,
              1002,
              1003,
              1004,
              1005,
              1006,
              1007,
              1008,
              1009,
              1010,
              1011,
              1012,
              1013,
              1014,
              1015,
              1016,
              1017,
              1018,
              1019,
              1020,
              2001,
              2002,
              2003,
              2005,
              2006,
              2007,
              2008,
              2009,
              2010,
              2011,
              2012,
              2013,
              2014,
              2015,
              2016,
              2017,
              2018
            ],
            "type": "integer",
            "description": "Response result code",
            "format": "int32",
            "example": 0
          },
          "message": {
            "type": "string",
            "description": "Response result message",
            "nullable": true,
            "example": "OK"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/_Transaction"
            },
            "description": "Response result data",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "_Transaction_PagedList": {
        "type": "object",
        "properties": {
          "total": {
            "type": "integer",
            "description": "Total count found",
            "format": "int32",
            "example": 100
          },
          "offset": {
            "type": "integer",
            "description": "List start position",
            "format": "int32",
            "example": 0
          },
          "count": {
            "type": "integer",
            "description": "Search list count",
            "format": "int32",
            "example": 100
          },
          "list": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/_Transaction"
            },
            "description": "Search list",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "_Transaction_PagedListResultData": {
        "type": "object",
        "properties": {
          "code": {
            "enum": [
              0,
              1,
              1000,
              1001,
              1002,
              1003,
              1004,
              1005,
              1006,
              1007,
              1008,
              1009,
              1010,
              1011,
              1012,
              1013,
              1014,
              1015,
              1016,
              1017,
              1018,
              1019,
              1020,
              2001,
              2002,
              2003,
              2005,
              2006,
              2007,
              2008,
              2009,
              2010,
              2011,
              2012,
              2013,
              2014,
              2015,
              2016,
              2017,
              2018
            ],
            "type": "integer",
            "description": "Response result code",
            "format": "int32",
            "example": 0
          },
          "message": {
            "type": "string",
            "description": "Response result message",
            "nullable": true,
            "example": "OK"
          },
          "data": {
            "$ref": "#/components/schemas/_Transaction_PagedList"
          }
        },
        "additionalProperties": false
      },
      "_UserCreate": {
        "type": "object",
        "properties": {
          "user_code": {
            "type": "integer",
            "description": "User code (unique ID)",
            "format": "int64",
            "example": 3
          }
        },
        "additionalProperties": false
      },
      "_UserCreateResultData": {
        "type": "object",
        "properties": {
          "code": {
            "enum": [
              0,
              1,
              1000,
              1001,
              1002,
              1003,
              1004,
              1005,
              1006,
              1007,
              1008,
              1009,
              1010,
              1011,
              1012,
              1013,
              1014,
              1015,
              1016,
              1017,
              1018,
              1019,
              1020,
              2001,
              2002,
              2003,
              2005,
              2006,
              2007,
              2008,
              2009,
              2010,
              2011,
              2012,
              2013,
              2014,
              2015,
              2016,
              2017,
              2018
            ],
            "type": "integer",
            "description": "Response result code",
            "format": "int32",
            "example": 0
          },
          "message": {
            "type": "string",
            "description": "Response result message",
            "nullable": true,
            "example": "OK"
          },
          "data": {
            "$ref": "#/components/schemas/_UserCreate"
          }
        },
        "additionalProperties": false
      },
      "_UserInfo": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "User name",
            "nullable": true,
            "example": "test"
          },
          "balance": {
            "type": "number",
            "description": "User's balance amount",
            "format": "double",
            "example": 26500
          }
        },
        "additionalProperties": false
      },
      "_UserInfoResultData": {
        "type": "object",
        "properties": {
          "code": {
            "enum": [
              0,
              1,
              1000,
              1001,
              1002,
              1003,
              1004,
              1005,
              1006,
              1007,
              1008,
              1009,
              1010,
              1011,
              1012,
              1013,
              1014,
              1015,
              1016,
              1017,
              1018,
              1019,
              1020,
              2001,
              2002,
              2003,
              2005,
              2006,
              2007,
              2008,
              2009,
              2010,
              2011,
              2012,
              2013,
              2014,
              2015,
              2016,
              2017,
              2018
            ],
            "type": "integer",
            "description": "Response result code",
            "format": "int32",
            "example": 0
          },
          "message": {
            "type": "string",
            "description": "Response result message",
            "nullable": true,
            "example": "OK"
          },
          "data": {
            "$ref": "#/components/schemas/_UserInfo"
          }
        },
        "additionalProperties": false
      },
      "_UserInfoListResultData": {
        "type": "object",
        "properties": {
          "code": {
            "enum": [
              0,
              1,
              1000,
              1001,
              1002,
              1003,
              1004,
              1005,
              1006,
              1007,
              1008,
              1009,
              1010,
              1011,
              1012,
              1013,
              1014,
              1015,
              1016,
              1017,
              1018,
              1019,
              1020,
              2001,
              2002,
              2003,
              2005,
              2006,
              2007,
              2008,
              2009,
              2010,
              2011,
              2012,
              2013,
              2014,
              2015,
              2016,
              2017,
              2018
            ],
            "type": "integer",
            "description": "Response result code",
            "format": "int32",
            "example": 0
          },
          "message": {
            "type": "string",
            "description": "Response result message",
            "nullable": true,
            "example": "OK"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/_UserInfo"
            },
            "description": "Response result data",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "_UserWallet": {
        "type": "object",
        "properties": {
          "balance": {
            "type": "number",
            "description": "Amount after processing",
            "format": "double",
            "example": 26500
          },
          "amount": {
            "type": "number",
            "description": "Processing amount",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "_UserWalletResultData": {
        "type": "object",
        "properties": {
          "code": {
            "enum": [
              0,
              1,
              1000,
              1001,
              1002,
              1003,
              1004,
              1005,
              1006,
              1007,
              1008,
              1009,
              1010,
              1011,
              1012,
              1013,
              1014,
              1015,
              1016,
              1017,
              1018,
              1019,
              1020,
              2001,
              2002,
              2003,
              2005,
              2006,
              2007,
              2008,
              2009,
              2010,
              2011,
              2012,
              2013,
              2014,
              2015,
              2016,
              2017,
              2018
            ],
            "type": "integer",
            "description": "Response result code",
            "format": "int32",
            "example": 0
          },
          "message": {
            "type": "string",
            "description": "Response result message",
            "nullable": true,
            "example": "OK"
          },
          "data": {
            "$ref": "#/components/schemas/_UserWallet"
          }
        },
        "additionalProperties": false
      }
    },
    "securitySchemes": {
      "Bearer": {
        "type": "http",
        "description": "Enter the issued API token",
        "scheme": "Bearer",
        "bearerFormat": "Custom"
      }
    }
  },
  "security": [
    {
      "Bearer": []
    }
  ]
}