# 暗号資産のAPIドキュメント| GMOコイン

<a id="outline"></a>
# 概要

GMOコインのAPIは、認証不要のPublic APIと、APIキーによる認証が必要なPrivate APIを提供しています。

* クライアントからAPIへの全てのリクエストは[HTTPS](https://ja.wikipedia.org/wiki/HTTPS)通信です。
* 現物取引とレバレッジ取引にのみ対応しています。

```javascript

//Node.js v21.0.0 にて動作確認したサンプルコードをRequest exampleに記載しています。

```

<a id="end-point"></a>
## エンドポイント

* Public API: `https://api.coin.z.com/public`
* Public WebSocket API: `wss://api.coin.z.com/ws/public`
* Private API: `https://api.coin.z.com/private`
* Private WebSocket API: `wss://api.coin.z.com/ws/private`


<a id="version"></a>
## バージョン
現在バージョン: `v1`


<a id="restrictions"></a>
## 制限
APIは以下のように制限をかけております。

<a id="restrictions-public-ws-api"></a>
##### Public WebSocket APIの制限
* 同一IPからのリクエスト(subscribe, unsubscribe)は、1秒間1回を上限とします。

<a id="restrictions-private-api"></a>
##### Private APIの制限
* 先週の取引高に応じて、今週のPrivate APIの呼び出し上限値が決定いたします。
* 制限はシステム負荷状況によって一時的に変更する場合があります。ご了承ください。
* 会員ページにてIP制限機能を有効にすると、API呼出ができるIPアドレスを制限することができます。
* APIキー発行時に指定した機能のみをAPIで呼び出すことができます。
* 暗号資産の送付に関するAPIは、APIごとに権限が分かれています。権限を付与したAPIキーでのみ呼び出すことができます。詳しくは[APIキー作成](#api-key)をご確認ください。

|  レベル  |  取引高  |  呼出し上限  |  説明  |
| ---- | ---- | ---- | ---- |
|  Tier 1  |  先週の取引高 < 1,000,000,000円  |  20req/s  |  同一アカウントからGETのAPI呼出は、1秒間に20回が上限です。  同一アカウントからPOSTのAPI呼出は、1秒間に20回が上限です。 |
|  Tier 2  |  1,000,000,000円 <= 先週の取引高 < 2,000,000,000円  |  30req/s  | 同一アカウントからGETのAPI呼出は、1秒間に30回が上限です。  同一アカウントからPOSTのAPI呼出は、1秒間に30回が上限です。 |
|  Tier 3  |  先週の取引高 >= 2,000,000,000円  |  50req/s  |  同一アカウントからGETのAPI呼出は、1秒間に50回が上限です。  同一アカウントからPOSTのAPI呼出は、1秒間に50回が上限です。  |

※取引高は取引所における現物取引とレバレッジ取引が対象になります。 ※取引高の集計期間は日本時間 先週日曜日6：00~今週日曜日5：59となります。 ※Tierの更新は日本時間の日曜日6:00~6:30で実施されます。

<a id="restrictions-private-ws-api"></a>
##### Private WebSocket APIの制限
* 同一IPからのリクエスト(subscribe, unsubscribe)は、1秒間1回を上限とします。
* 会員ページにてIP制限機能を有効にすると、API呼出ができるIPアドレスを制限することができます。
* APIキー発行時に指定した機能のみをsubscribeすることができます。

<a id="restrictions-other"></a>
##### その他
下記のいずれかの理由により、APIのご利用を制限させていただく場合があります。ご了承ください。

* 当社システム全体が高負荷となった場合に、自動で流量制限を実施させていただくため
* お客さまによるAPIのご利用方法が、当社システムへ負荷をかけている可能性があると当社が判断したため
* システムに負荷をかける目的での発注を繰り返していると当社が判断したため


<a id="open-account"></a>
# 口座開設
口座をお持ちでない場合　[無料口座開設](https://coin.z.com/jp/member/signup)


<a id="api-key"></a>
# APIキー作成
口座開設完了後、会員ページからAPIキーが作成できます。

APIキーを生成する際、機能ごとにパーミッションを設定することができます。

暗号資産の送付に関する次のAPIは、APIごとに権限が分かれています。呼び出すAPIに対応する権限をAPIキーに付与してください。権限を付与していないAPIキーでは、そのAPIを呼び出せません。

* [暗号資産の送付依頼](#withdrawal)
* [暗号資産の送付取消依頼](#cancelWithdrawal)
* [暗号資産の送付ステータスの取得](#withdrawalStatus)
* [登録済み宛先の取得](#withdrawalAddresses)
* [国・地域一覧の取得](#withdrawalNations)
* [州・都道府県一覧の取得](#withdrawalProvinces)
* [送付目的一覧の取得](#withdrawalPurposes)

※ APIキーの作成・編集・有効化には、権限の内容にかかわらず２段階認証が必要です。また、18歳・19歳のお客さまは、暗号資産の送付に関するAPIの権限を付与したAPIキーを作成・編集できません。

※ 暗号資産の送付に関する権限を付与したAPIキーとAPIシークレットが第三者に知られた場合、お客さまが操作をしなくても、登録済みの宛先へ暗号資産が送付されるおそれがあります。APIによる送付では、送付のたびに２段階認証を入力する仕組みがありません。

送付に関する権限は必要なときだけ付与し、APIを利用しない期間はAPIキーを無効化してください。IP制限機能を有効にすると、APIキーが第三者に知られた場合も、登録した以外のIPアドレスからの呼出を防げます（[制限](#restrictions)参照）。APIキーとAPIシークレットは、お客さまの責任において厳重に管理してください。


<a id="authentication"></a>
# 認証

Public APIは認証が不要です。Public API機能は[こちら](#public-api)へ。


<a id="authentication-private"></a>
## Private API

```javascript
const axios  = require('axios');
const crypto = require('crypto');

const apiKey    = 'YOUR_API_KEY';
const secretKey = 'YOUR_SECRET_KEY';

const timestamp = Date.now().toString();
const method    = 'POST';
const endPoint  = 'https://END_POINT_URL';
const path      = '/v1/PATH';
const reqBody   = JSON.stringify({});

const text = timestamp + method + path + reqBody;
const sign = crypto.createHmac('sha256', secretKey).update(text).digest('hex');
const options = {
    "headers": {
        "API-KEY": apiKey,
        "API-TIMESTAMP": timestamp,
        "API-SIGN": sign
    }
};

axios.post(endPoint + path, reqBody, options)
  .then(function (response) {
    console.log(JSON.stringify(response.data, null, 2));
  })
  .catch(function (error) {
    console.log(error);
  });
```

Private APIではAPIキーとAPIシークレットを使用してHTTPヘッダに下記の認証情報を含める必要があります。

* API-KEY: 会員ページで発行したアクセスキー
* API-TIMESTAMP: リクエスト時のUnix Timestamp(ミリ秒)
* API-SIGN: 後述する方法でリクエストごとに生成した署名

##### 署名の生成

署名は、リクエスト時のUnix Timestamp(ミリ秒)，HTTPメソッド，リクエストのパス，リクエストボディを文字列として連結したものを、APIシークレットキーを使ってHMAC-SHA256形式で署名することで作成できます。特に、下記の点にはご注意ください。

* GETリクエストの場合、リクエストボディは空文字列とすること
* リクエストのパスは`/v1`で始まり、`/private`で始まらないこと

<a id="authentication-private-ws"></a>
## Private WebSocket API
Private WebSocket APIではPrivate APIの[アクセストークンの取得](#ws-auth-post)を使用してアクセストークンを取得します。このPrivate APIの認証方法は他のPrivate APIと同様です。

<a id="public-api"></a>
# Public API


<a id="status"></a>
## 取引所ステータス

> Request example:

```javascript
const axios = require('axios');

const endPoint = 'https://api.coin.z.com/public';
const path     = '/v1/status';

axios.get(endPoint + path)
  .then(function (response) {
    console.log(JSON.stringify(response.data, null, 2));
  })
  .catch(function (error) {
    console.log(error);
  })
  .finally(function () {});
```

> Response example:

```json
{
  "status": 0,
  "data": {
    "status": "OPEN"
  },
  "responsetime": "2019-03-19T02:15:06.001Z"
}
```

取引所の稼動状態を取得します。


##### Request
`GET /public/v1/status`


##### Parameters
無し

##### Response

Property Name | Value | Description
--------- | ----------- | -----------
status | string | 取引所ステータス: `MAINTENANCE`（取引所ステータス: メンテナンス中） `PREOPEN`（プレ・オープン） `OPEN`（オープン）


<a id="ticker"></a>
## 最新レート

> Request example:

```javascript
const axios = require('axios');

const endPoint = 'https://api.coin.z.com/public';
const path     = '/v1/ticker?symbol=BTC';

axios.get(endPoint + path)
  .then(function (response) {
    console.log(JSON.stringify(response.data, null, 2));
  })
  .catch(function (error) {
    console.log(error);
  })
  .finally(function () {});
```

> Response example:

```json
{
  "status": 0,
  "data": [
    {
      "ask": "750760",
      "bid": "750600",
      "high": "762302",
      "last": "756662",
      "low": "704874",
      "symbol": "BTC",
      "timestamp": "2018-03-30T12:34:56.789Z",
      "volume": "194785.8484"
    }
  ],
  "responsetime": "2019-03-19T02:15:06.014Z"
}
```

指定した銘柄の最新レートを取得します。 
全銘柄分の最新レートを取得する場合はsymbolパラメータ指定無しでの実行をおすすめします。


##### Request
`GET /public/v1/ticker`

##### Parameters
* Parameter type: query

Parameter | Type | Required | Available Values
--------- | ----------- | ----------- | -----------
`symbol`（銘柄名） | string | Optional | 指定しない場合は全銘柄分の最新レートを返す。取扱銘柄は[こちら](#parameters-ref)

##### Response

Property Name | Value | Description
--------- | ----------- | -----------
list.volume | string | 24時間の取引量


<a id="orderbooks"></a>
## 板情報

> Request example:

```javascript
const endPoint = 'https://api.coin.z.com/public';
const path     = '/v1/orderbooks?symbol=BTC';

axios.get(endPoint + path)
  .then(function (response) {
    console.log(JSON.stringify(response.data, null, 2));
  })
  .catch(function (error) {
    console.log(error);
  })
  .finally(function () {});
```

> Response example:

```json
{
  "status": 0,
  "data": {
    "asks": [
      {
        "price": "455659",
        "size": "0.1"
      }
    ],
    "bids": [
      {
        "price": "455659",
        "size": "0.1"
      }
    ],
    "symbol": "BTC"
  },
  "responsetime": "2019-03-19T02:15:06.026Z"
}
```

指定した銘柄の板情報(snapshot)を取得します。


##### Request
`GET /public/v1/orderbooks`


##### Parameters
* Parameter type: query
 
Parameter | Type | Required | Available Values
--------- | ----------- | ----------- | -----------
`symbol`（銘柄名） | string | Required | 取扱銘柄は[こちら](#parameters-ref)

##### Response

Property Name | Value | Description
--------- | ----------- | -----------
asks | array | 売り注文の情報（最良気配から昇順）
bids | array | 買い注文の情報（最良気配から降順）


<a id="trades"></a>
## 取引履歴

> Request example:

```javascript
const axios = require('axios');

const endPoint = 'https://api.coin.z.com/public';
const path     = '/v1/trades?symbol=BTC&page=1&count=10';

axios.get(endPoint + path)
  .then(function (response) {
    console.log(JSON.stringify(response.data, null, 2));
  })
  .catch(function (error) {
    console.log(error);
  })
  .finally(function () {});
```

> Response example:

```json
{
  "status": 0,
  "data": {
    "pagination": {
      "currentPage": 1,
      "count": 30
    },
    "list": [
      {
        "price": "750760",
        "side": "BUY",
        "size": "0.1",
        "timestamp": "2018-03-30T12:34:56.789Z"
      }
    ]
  },
  "responsetime": "2019-03-28T09:28:07.980Z"
}
```

指定した銘柄の取引履歴（取引日時の降順）を取得します。


##### Request
`GET /public/v1/trades`


##### Parameters
* Parameter type: query

Parameter | Type | Required | Available Values
--------- | ----------- | ----------- | -----------
`symbol`（銘柄名） | string | Required | 取扱銘柄は[こちら](#parameters-ref)
`page`（取得対象ページ） | number | Optional | 取得対象ページ: 指定しない場合は1を指定したとして動作する。
`count`（1ページ当りの取得件数） | number | Optional | 1ページ当りの取得件数: 指定しない場合は100(最大値)を指定したとして動作する。

##### Response

Property Name | Value | Description
--------- | ----------- | -----------
price | string | 約定価格
side | string | 売買区分: `BUY`（売買区分: 買） `SELL`（売）
size | string | 約定数量
timestamp | string | 約定日時

<a id="klines"></a>
## KLine情報の取得

> Request example:

```javascript
const axios = require('axios');

const endPoint = 'https://api.coin.z.com/public';
const path     = '/v1/klines?symbol=BTC&interval=1min&date=20210417';

axios.get(endPoint + path)
  .then(function (response) {
    console.log(JSON.stringify(response.data, null, 2));
  })
  .catch(function (error) {
    console.log(error);
  })
  .finally(function () {});
```

> Response example:

```json
{
  "status": 0,
  "data": [
    {
        "openTime":"1618588800000",
        "open":"6418255",
        "high":"6518250",
        "low":"6318250",
        "close":"6418253",
        "volume":"0.0001"
    },
    {
        "openTime":"1618588860000",
        "open":"6418251",
        "high":"6418252",
        "low":"6415250",
        "close":"6418245",
        "volume":"0.0001"
    }
  ],
  "responsetime": "2019-03-28T09:28:07.980Z"
}
```

指定した銘柄の四本値と取引量（開始時刻の昇順）を取得します。


##### Request
`GET /public/v1/klines`


##### Parameters
* Parameter type: query

Parameter | Type | Required | Available Values
--------- | ----------- | ----------- | -----------
`symbol`（銘柄名）       | string | Required | 取扱銘柄は[こちら](#parameters-ref)
`interval`（チャート足の種類） | string | Required |  `1min`（1分足） `5min`（5分足） `10min`（10分足） `15min`（15分足） `30min`（30分足） `1hour`（1時間足） `4hour`（4時間足） `8hour`（8時間足） `12hour`（12時間足） `1day`（1日足） `1week`（1週間足） `1month`（1ヶ月足）
`date`（検索日） | string | Required |   指定可能な日付フォーマット: `YYYYMMDD`（日付指定） `YYYY`（年指定）  `YYYYMMDD` で指定できるintervalの種類 : `1min`（チャート足の種類: 1分足） `5min`（5分足） `10min`（10分足） `15min`（15分足） `30min`（30分足） `1hour`（1時間足） ※20210415以降、指定可能です。日本時間朝6：00に新しい日付に切り替わります。  `YYYY` で指定できるintervalの種類 : `4hour`（4時間足） `8hour`（8時間足） `12hour`（12時間足） `1day`（1日足） `1week`（1週間足） `1month`（1ヶ月足） ※当社取扱開始年以降、指定可能です。取扱開始日は[こちら](#parameters-ref)

##### Response

Property Name | Value | Description
--------- | ----------- | -----------
openTime | string | 開始時刻のunixタイムスタンプ(ミリ秒)
open | string | 始値
high | string | 高値
low | string | 安値
close | string | 終値
volume | string | 取引量

<a id="symbols"></a>
## 取引ルール

> Request example:

```javascript
const axios = require('axios');

const endPoint = 'https://api.coin.z.com/public';
const path     = '/v1/symbols';

axios.get(endPoint + path)
  .then(function (response) {
    console.log(JSON.stringify(response.data, null, 2));
  })
  .catch(function (error) {
    console.log(error);
  })
  .finally(function () {});

```

> Response example:

```json
{
  "status": 0,
  "data": [
    {
      "symbol": "BTC",
      "minOrderSize": "0.0001",
      "maxOrderSize": "5",
      "sizeStep": "0.0001",
      "tickSize": "1",
      "takerFee": "0.0005",
      "makerFee": "-0.0001"
    },
    {
      "symbol": "BTC_JPY",
      "minOrderSize": "0.01",
      "maxOrderSize": "5",
      "sizeStep": "0.01",
      "tickSize": "1",
      "takerFee": "0",
      "makerFee": "0"
    }
  ],
  "responsetime": "2022-12-15T19:22:23.792Z"
}
```

取引ルールを取得します。


##### Request
`GET /public/v1/symbols`


##### Parameters
無し

##### Response

Property Name | Value | Description
--------- | ----------- | -----------
symbol | string | 取扱銘柄は[こちら](#parameters-ref)
minOrderSize | string | 最小注文数量/回 
maxOrderSize | string | 最大注文数量/回 
sizeStep | string | 最小注文単位/回
tickSize | string | 注文価格の呼値
takerFee | string | taker手数料
makerFee | string | maker手数料

<a id="public-ws-api"></a>
# Public WebSocket API

* サーバーから1分に1回クライアントへpingを送り、3回連続でクライアントからの応答(pong)が無かった場合は、自動的に切断されます。


<a id="ws-ticker"></a>
## 最新レート

> Request example:

```javascript
const WebSocket = require("ws");
const ws = new WebSocket("wss://api.coin.z.com/ws/public/v1");

ws.on("open", () => {
    const message = JSON.stringify(
    {
        "command": "subscribe",
        "channel": "ticker",
        "symbol": "BTC"
    });
    ws.send(message);
});

ws.on("message", (data) => {
    console.log("WebSocket message: ", data);
});
```

> Response example:

```json
{
  "channel":"ticker",
  "ask": "750760",
  "bid": "750600",
  "high": "762302",
  "last": "756662",
  "low": "704874",
  "symbol": "BTC",
  "timestamp": "2018-03-30T12:34:56.789Z",
  "volume": "194785.8484"
}
```

指定した銘柄の最新レートを受信します。 
`subscribe`（コマンド: 対象の配信を開始する）後、最新レートが配信されます。


##### Parameters
* Parameter type: JSON

Property Name | Type | Required | Available Values
--------- | ----------- | ----------- | -----------
command | string | Required | `subscribe`（コマンド: 対象の配信を開始する） `unsubscribe`（対象の配信を止める）
channel | string | Required | `ticker`（チャネル名: 最新レート）
`symbol`（銘柄名） | string | Required | 取扱銘柄は[こちら](#parameters-ref)

##### Response

Property Name | Value | Description
--------- | ----------- | -----------
channel | string | `ticker`（チャネル名: 最新レート）
ask | string | 現在の売注文の最良気配値
bid | string | 現在の買注文の最良気配値
high | string | 当日の最高値(最終取引価格)
last | string | 最終取引価格
low | string | 当日の最安値(最終取引価格)
symbol | string | 取扱銘柄は[こちら](#parameters-ref)
timestamp | string | 約定時のタイムスタンプ
volume | string | 24時間の取引量

* `unsubscribe`（コマンド: 対象の配信を止める）でリクエストした場合のResponseはありません。

<a id="ws-orderbooks"></a>
## 板情報

> Request example:

```javascript
const WebSocket = require("ws");
const ws = new WebSocket("wss://api.coin.z.com/ws/public/v1");

ws.on("open", () => {
    const message = JSON.stringify(
    {
        "command": "subscribe",
        "channel": "orderbooks",
        "symbol": "BTC"
    });
    ws.send(message);
});

ws.on("message", (data) => {
    console.log("WebSocket message: ", data);
});
```

> Response example:

```json
{
  "channel":"orderbooks",
  "asks": [
    {"price": "455659","size": "0.1"},
    {"price": "455658","size": "0.2"}
  ],
  "bids": [
    {"price": "455665","size": "0.1"},
    {"price": "455655","size": "0.3"}
  ],
  "symbol": "BTC",
  "timestamp": "2018-03-30T12:34:56.789Z"
}
```

指定した銘柄の板情報(snapshot)を受信します。 
`subscribe`（コマンド: 対象の配信を開始する）後、板情報が配信されます。


##### Parameters
* Parameter type: JSON
 
Property Name | Type | Required | Available Values
--------- | ----------- | ----------- | -----------
command | string | Required | `subscribe`（コマンド: 対象の配信を開始する） `unsubscribe`（対象の配信を止める）
channel | string | Required | `orderbooks`（チャネル名: 板情報）
`symbol`（銘柄名） | string | Required | 取扱銘柄は[こちら](#parameters-ref)

##### Response

Property Name | Value | Description
--------- | ----------- | -----------
channel | string | `orderbooks`（チャネル名: 板情報）
asks | array | 売り注文の情報（最良気配から昇順）
bids | array | 買い注文の情報（最良気配から降順）
symbol | string | 取扱銘柄は[こちら](#parameters-ref)
timestamp | string | 配信日時

* `unsubscribe`（コマンド: 対象の配信を止める）でリクエストした場合のResponseはありません。

<a id="ws-trades"></a>
## 取引履歴

> Request example:

```javascript
const WebSocket = require("ws");
const ws = new WebSocket("wss://api.coin.z.com/ws/public/v1");

ws.on("open", () => {
    const message = JSON.stringify(
    {
        "command": "subscribe",
        "channel": "trades",
        "symbol": "BTC"
    });
    ws.send(message);
});

ws.on("message", (data) => {
    console.log("WebSocket message: ", data);
});
```

> Response example:

```json
{
  "channel":"trades",
  "price": "750760",
  "side": "BUY",
  "size": "0.1",
  "timestamp": "2018-03-30T12:34:56.789Z",
  "symbol": "BTC"
}
```

指定した銘柄の最新の取引履歴を受信します。 
`subscribe`（コマンド: 対象の配信を開始する）後、最新の取引履歴が配信されます。


##### Parameters
* Parameter type: JSON

Property Name | Type | Required | Available Values
--------- | ----------- | ----------- | -----------
command | string | Required | `subscribe`（コマンド: 対象の配信を開始する） `unsubscribe`（対象の配信を止める）
channel | string | Required | `trades`（チャネル名: 取引履歴）
`symbol`（銘柄名） | string | Required | 取扱銘柄は[こちら](#parameters-ref)
option | string | Optional | `TAKER_ONLY`（オプション: TAKERのデータのみを送信する。） ※optionが指定された場合、TAKERのデータのみを送信します。 ※同一銘柄で複数回subscribeした場合は後にsubscribeしたものが有効となります。


##### Response

Property Name | Value | Description
--------- | ----------- | -----------
channel | string | `trades`（チャネル名: 取引履歴）
price | string | 約定価格
side | string | 売買区分: `BUY`（売買区分: 買） `SELL`（売）
size | string | 約定数量
timestamp | string | 約定日時
symbol | string | 取扱銘柄は[こちら](#parameters-ref)

* `unsubscribe`（コマンド: 対象の配信を止める）でリクエストした場合のResponseはありません。


<a id="private-api"></a>
# Private API


<a id="margin"></a>
## 余力情報を取得

> Request example:

```javascript
const axios  = require('axios');
const crypto = require('crypto');

const apiKey    = 'YOUR_API_KEY';
const secretKey = 'YOUR_SECRET_KEY';

const timestamp = Date.now().toString();
const method    = 'GET';
const endPoint  = 'https://api.coin.z.com/private';
const path      = '/v1/account/margin';

const text = timestamp + method + path;
const sign = crypto.createHmac('sha256', secretKey).update(text).digest('hex');
const options = {
    "headers": {
        "API-KEY": apiKey,
        "API-TIMESTAMP": timestamp,
        "API-SIGN": sign
    }
};

axios.get(endPoint + path, options)
  .then(function (response) {
    console.log(JSON.stringify(response.data, null, 2));
  })
  .catch(function (error) {
    console.log(error);
  });
```

> Response example:

```json
{
  "status": 0,
  "data": {
    "actualProfitLoss": "68286188",
    "availableAmount": "57262506",
    "availableAmountForSpot": "57262506",
    "cryptoShortfallStatus": "NORMAL",
    "margin": "1021682",
    "marginCallStatus": "NORMAL",
    "marginRatio": "6683.6",
    "profitLoss": "0",
    "transferableAmount": "57262506"
  },
  "responsetime": "2019-03-19T02:15:06.051Z"
}
```

余力情報を取得します。


##### Request
`GET /private/v1/account/margin`


##### Parameters
無し

##### Response

Property Name | Value | Description
--------- | ----------- | -----------
actualProfitLoss | string | 時価評価総額
availableAmount | string | 取引余力（代用暗号資産評価額を含む、レバレッジ取引用）
availableAmountForSpot | string | 現物購入余力（代用暗号資産評価額を含まない）
cryptoShortfallStatus | string | 代用暗号資産不足金ステータス: `NORMAL`（代用暗号資産不足金ステータス: 通常） `SHORTFALL`（代用不足金発生中） `LIQUIDATION`（代用強制売却中）
margin | string | 拘束証拠金
marginCallStatus | string | 追証ステータス: `NORMAL`（追証ステータス: 通常） `MARGIN_CALL`（追証中） `LOSSCUT`（追証強制決済中）
marginRatio | string | 証拠金維持率
profitLoss | string | 評価損益 
transferableAmount | string | 振替可能額 

<a id="assets"></a>
## 資産残高を取得

> Request example:

```javascript
const axios  = require('axios');
const crypto = require('crypto');

const apiKey    = 'YOUR_API_KEY';
const secretKey = 'YOUR_SECRET_KEY';

const timestamp = Date.now().toString();
const method    = 'GET';
const endPoint  = 'https://api.coin.z.com/private';
const path      = '/v1/account/assets';

const text = timestamp + method + path;
const sign = crypto.createHmac('sha256', secretKey).update(text).digest('hex');
const options = {
    "headers": {
        "API-KEY": apiKey,
        "API-TIMESTAMP": timestamp,
        "API-SIGN": sign
    }
};

axios.get(endPoint + path, options)
  .then(function (response) {
    console.log(JSON.stringify(response.data, null, 2));
  })
  .catch(function (error) {
    console.log(error);
  });
```

> Response example:

```json
{
  "status": 0,
  "data": [
    {
      "amount": "993982448",
      "available": "993982448",
      "conversionRate": "1",
      "symbol": "JPY"
    },
    {
      "amount": "4.0002",
      "available": "4.0002",
      "conversionRate": "859614",
      "symbol": "BTC"
    }
  ],
  "responsetime": "2019-03-19T02:15:06.055Z"
}
```

資産残高を取得します。


##### Request
`GET /private/v1/account/assets`


##### Parameters
無し

##### Response

Property Name | Value | Description
--------- | ----------- | -----------
amount | string | 残高
available | string | 利用可能金額（残高 - 出金予定額）
conversionRate | string | 円転レート（販売所での売却価格です。※販売所で取り扱いのない銘柄は、取引所現物での最終約定価格です。）
symbol | string | 資産残高銘柄: 取扱銘柄は[こちら](#Asset-parameters-ref)  ※取引所（現物取引）の取扱銘柄のみAPIでご注文いただけます。取扱銘柄は[こちら](#parameters-ref)

<a id="tradingVolume"></a>
## 取引高情報を取得

> Request example:

```javascript
const axios  = require('axios');
const crypto = require('crypto');

const apiKey    = 'YOUR_API_KEY';
const secretKey = 'YOUR_SECRET_KEY';

const timestamp = Date.now().toString();
const method    = 'GET';
const endPoint  = 'https://api.coin.z.com/private';
const path      = '/v1/account/tradingVolume';

const text = timestamp + method + path;
const sign = crypto.createHmac('sha256', secretKey).update(text).digest('hex');
const options = {
    "headers": {
        "API-KEY": apiKey,
        "API-TIMESTAMP": timestamp,
        "API-SIGN": sign
    }
};

axios.get(endPoint + path, options)
  .then(function (response) {
    console.log(JSON.stringify(response.data, null, 2));
  })
  .catch(function (error) {
    console.log(error);
  });
```

> Response example:

```json
{
  "status": 0,
  "data": {
      "jpyVolume": "9988888",
      "tierLevel": 1,
      "limit": [
         {
           "symbol": "BTC/JPY",
           "todayLimitOpenSize": "10000",
           "takerFee": "0",
           "makerFee": "0"
         },
         {
           "symbol": "BTC",
           "todayLimitBuySize": "98",
           "todayLimitSellSize": "102",
           "takerFee": "0.0015",
           "makerFee": "-0.0007"
         }
      ]
  },
  "responsetime": "2019-03-19T02:15:06.055Z"
}
```

取引高情報を取得します。


##### Request
`GET /private/v1/account/tradingVolume`


##### Parameters
無し

##### Response

Property Name | Value | Description
--------- | ----------- | -----------
jpyVolume     | string | 今週の取引高(日本円)
tierLevel     | number | 現在の[取引高レベル](#restrictions): `1` `2` `3`
limit.symbol | string | 取扱銘柄は[こちら](#parameters-ref)
limit.todayLimitOpenSize  | string | 1日の最大取引数量の残量(新規)  ※レバレッジ銘柄の場合のみ
limit.todayLimitBuySize   | string | 1日の最大取引数量の残量(購入)  ※現物銘柄の場合のみ
limit.todayLimitSellSize  | string | 1日の最大取引数量の残量(売却)  ※現物銘柄の場合のみ
limit.takerFee  | string | Taker手数料
limit.makerFee  | string | Maker手数料

<a id="fiatDepositHistory"></a>
## 日本円の入金履歴の取得

> Request example:

```javascript
const axios  = require('axios');
const crypto = require('crypto');

const apiKey    = 'YOUR_API_KEY';
const secretKey = 'YOUR_SECRET_KEY';

const timestamp = Date.now().toString();
const method    = 'GET';
const endPoint  = 'https://api.coin.z.com/private';
const path      = '/v1/account/fiatDeposit/history';
const parameters = '?fromTimestamp=2024-03-01T00:00:00.000Z';

const text = timestamp + method + path;
const sign = crypto.createHmac('sha256', secretKey).update(text).digest('hex');
const options = {
    "headers": {
        "API-KEY": apiKey,
        "API-TIMESTAMP": timestamp,
        "API-SIGN": sign
    }
};

axios.get(endPoint + path + parameters, options)
  .then(function (response) {
    console.log(JSON.stringify(response.data, null, 2));
  })
  .catch(function (error) {
    console.log(error);
  });
```

> Response example:

```json
{
  "status": 0,
  "data": [
    {
      "amount": "50000",
      "fee": "0",
      "status": "EXECUTED",
      "symbol": "JPY",
      "timestamp": "2021-01-01T13:47:12.791Z"
    }
  ],
  "responsetime": "2024-02-28T11:48:57.996Z"
}
```

日本円の入金履歴を取得します。


##### Request
`GET /private/v1/account/fiatDeposit/history`


##### Parameters
* Parameter type: query

Parameter | Type | Required | Available Values
--------- | ----------- | ----------- | -----------
fromTimestamp | string | Required | 検索開始時刻（UTC時刻）: YYYY-MM-DDTHH:MM:SS.SSSZ format string (e.g. 2023-03-01T00:00:00.000Z)  ※ fromTimestampのみ指定された場合、toTimestampは「fromTimestamp + 30分」となります。
toTimestamp | string | Optional | 検索終了時刻（UTC時刻）: YYYY-MM-DDTHH:MM:SS.SSSZ format string (e.g. 2023-03-01T00:30:00.000Z)  ※ fromTimestampとtoTimestampの差は最大30分です。

##### Response

Property Name | Value | Description
--------- | ----------- | -----------
amount     | string | 金額
fee     | string | 手数料
status | string | ステータス: `EXECUTED`
symbol  | string | 銘柄: `JPY`
timestamp | string | 完了時刻（UTC時刻）

<a id="fiatWithdrawalHistory"></a>
## 日本円の出金履歴の取得

> Request example:

```javascript
const axios  = require('axios');
const crypto = require('crypto');

const apiKey    = 'YOUR_API_KEY';
const secretKey = 'YOUR_SECRET_KEY';

const timestamp = Date.now().toString();
const method    = 'GET';
const endPoint  = 'https://api.coin.z.com/private';
const path      = '/v1/account/fiatWithdrawal/history';
const parameters = '?fromTimestamp=2024-03-01T00:00:00.000Z';

const text = timestamp + method + path;
const sign = crypto.createHmac('sha256', secretKey).update(text).digest('hex');
const options = {
    "headers": {
        "API-KEY": apiKey,
        "API-TIMESTAMP": timestamp,
        "API-SIGN": sign
    }
};

axios.get(endPoint + path + parameters, options)
  .then(function (response) {
    console.log(JSON.stringify(response.data, null, 2));
  })
  .catch(function (error) {
    console.log(error);
  });
```

> Response example:

```json
{
  "status": 0,
  "data": [
    {
      "amount": "50000",
      "fee": "0",
      "status": "EXECUTED",
      "symbol": "JPY",
      "timestamp": "2021-01-01T13:47:12.791Z"
    }
  ],
  "responsetime": "2024-02-28T11:48:57.996Z"
}
```

日本円の出金履歴を取得します。


##### Request
`GET /private/v1/account/fiatWithdrawal/history`


##### Parameters
* Parameter type: query

Parameter | Type | Required | Available Values
--------- | ----------- | ----------- | -----------
fromTimestamp | string | Required | 検索開始時刻（UTC時刻）: YYYY-MM-DDTHH:MM:SS.SSSZ format string (e.g. 2023-03-01T00:00:00.000Z)  ※ fromTimestampのみ指定された場合、toTimestampは「fromTimestamp + 30分」となります。
toTimestamp | string | Optional | 検索終了時刻（UTC時刻）: YYYY-MM-DDTHH:MM:SS.SSSZ format string (e.g. 2023-03-01T00:30:00.000Z)  ※ fromTimestampとtoTimestampの差は最大30分です。

##### Response

Property Name | Value | Description
--------- | ----------- | -----------
amount     | string | 金額
fee     | string | 手数料
status | string | ステータス: `EXECUTED`
symbol  | string | 取扱銘柄は[こちら](#parameters-ref): `JPY`
timestamp | string | 完了時刻（UTC時刻）

<a id="depositHistory"></a>
## 暗号資産の預入履歴の取得

> Request example:

```javascript
const axios  = require('axios');
const crypto = require('crypto');

const apiKey    = 'YOUR_API_KEY';
const secretKey = 'YOUR_SECRET_KEY';

const timestamp = Date.now().toString();
const method    = 'GET';
const endPoint  = 'https://api.coin.z.com/private';
const path      = '/v1/account/deposit/history';
const parameters = '?symbol=BTC&fromTimestamp=2024-03-01T00:00:00.000Z';

const text = timestamp + method + path;
const sign = crypto.createHmac('sha256', secretKey).update(text).digest('hex');
const options = {
    "headers": {
        "API-KEY": apiKey,
        "API-TIMESTAMP": timestamp,
        "API-SIGN": sign
    }
};

axios.get(endPoint + path + parameters, options)
  .then(function (response) {
    console.log(JSON.stringify(response.data, null, 2));
  })
  .catch(function (error) {
    console.log(error);
  });
```

> Response example:

```json
{
  "status": 0,
  "data": [
    {
      "address": "xxx",
      "amount": "0.9503",
      "status": "EXECUTED",
      "symbol": "BTC",
      "timestamp": "2021-10-05T06:04:46.241Z",
      "txHash": "yyy"
    }
  ],
  "responsetime": "2024-02-28T12:20:07.103Z"
}
```

暗号資産の預入履歴を取得します。


##### Request
`GET /private/v1/account/deposit/history`


##### Parameters
* Parameter type: query

Parameter | Type | Required | Available Values
--------- | ----------- | ----------- | -----------
symbol | string | Required | 取扱銘柄は[こちら](#parameters-ref)
fromTimestamp | string | Required | 検索開始時刻（UTC時刻）: YYYY-MM-DDTHH:MM:SS.SSSZフォーマットの文字列（例：2024-03-01T00:00:00.000Z）  ※ fromTimestampのみ指定された場合、toTimestampは「fromTimestamp + 30分」となります。
toTimestamp | string | Optional | 検索終了時刻（UTC時刻）: YYYY-MM-DDTHH:MM:SS.SSSZフォーマットの文字列（例：2024-03-01T00:30:00.000Z）  ※ fromTimestampとtoTimestampの差は最大30分です。

##### Response

Property Name | Value | Description
--------- | ----------- | -----------
address     | string | アドレス
amount     | string | 数量
fee     | string | 手数料
status | string | ステータス: `EXECUTED`
symbol  | string | 取扱銘柄は[こちら](#parameters-ref)
timestamp | string | 完了時刻（UTC時刻）
txHash | string | トランザクションハッシュ

<a id="withdrawalHistory"></a>
## 暗号資産の送付履歴の取得

> Request example:

```javascript
const axios  = require('axios');
const crypto = require('crypto');

const apiKey    = 'YOUR_API_KEY';
const secretKey = 'YOUR_SECRET_KEY';

const timestamp = Date.now().toString();
const method    = 'GET';
const endPoint  = 'https://api.coin.z.com/private';
const path      = '/v1/account/withdrawal/history';
const parameters = '?symbol=BTC&fromTimestamp=2024-03-01T00:00:00.000Z';

const text = timestamp + method + path;
const sign = crypto.createHmac('sha256', secretKey).update(text).digest('hex');
const options = {
    "headers": {
        "API-KEY": apiKey,
        "API-TIMESTAMP": timestamp,
        "API-SIGN": sign
    }
};

axios.get(endPoint + path + parameters, options)
  .then(function (response) {
    console.log(JSON.stringify(response.data, null, 2));
  })
  .catch(function (error) {
    console.log(error);
  });
```

> Response example:

```json
{
  "status": 0,
  "data": [
    {
      "address": "xxx",
      "amount": "0.9503",
      "status": "EXECUTED",
      "symbol": "BTC",
      "timestamp": "2021-10-05T06:04:46.241Z",
      "txHash": "yyy"
    }
  ],
  "responsetime": "2024-02-28T12:20:07.103Z"
}
```

暗号資産の送付履歴を取得します。


##### Request
`GET /private/v1/account/withdrawal/history`


##### Parameters
* Parameter type: query

Parameter | Type | Required | Available Values
--------- | ----------- | ----------- | -----------
symbol | string | Required | 取扱銘柄は[こちら](#parameters-ref)
fromTimestamp | string | Required | 検索開始時刻（UTC時刻）: YYYY-MM-DDTHH:MM:SS.SSSZフォーマットの文字列（例：2024-03-01T00:00:00.000Z）  ※ fromTimestampのみ指定された場合、toTimestampは「fromTimestamp + 30分」となります。
toTimestamp | string | Optional | 検索終了時刻（UTC時刻）: YYYY-MM-DDTHH:MM:SS.SSSZフォーマットの文字列（例：2024-03-01T00:30:00.000Z）  ※ fromTimestampとtoTimestampの差は最大30分です。

##### Response

Property Name | Value | Description
--------- | ----------- | -----------
address     | string | アドレス
amount     | string | 数量
fee     | string | 手数料
status | string | ステータス: `EXECUTED`
symbol  | string | 取扱銘柄は[こちら](#parameters-ref)
timestamp | string | 完了時刻（UTC時刻）
txHash | string | トランザクションハッシュ

<a id="withdrawalAddresses"></a>
## 登録済み宛先の取得

> Request example:

```javascript
const axios  = require('axios');
const crypto = require('crypto');

const apiKey    = 'YOUR_API_KEY';
const secretKey = 'YOUR_SECRET_KEY';

const timestamp = Date.now().toString();
const method    = 'GET';
const endPoint  = 'https://api.coin.z.com/private';
const path      = '/v1/account/withdrawal/crypto/addresses';
const parameters = '?symbol=ETH';

const text = timestamp + method + path;
const sign = crypto.createHmac('sha256', secretKey).update(text).digest('hex');
const options = {
    "headers": {
        "API-KEY": apiKey,
        "API-TIMESTAMP": timestamp,
        "API-SIGN": sign
    }
};

axios.get(endPoint + path + parameters, options)
  .then(function (response) {
    console.log(JSON.stringify(response.data, null, 2));
  })
  .catch(function (error) {
    console.log(error);
  });
```

> Response example:

```json
{
  "status": 0,
  "data": {
    "list": [
      {
        "addressId": 858872,
        "symbol": "ETH",
        "name": "メタマスクETH",
        "address": "0x0785Ee6A44543aDAC0607A656AEa2e2c96c266f7",
        "chainType": 0,
        "vaspType": "PRIVATE",
        "vaspName": null,
        "receiverType": "SELF",
        "sendable": true,
        "sendableFrom": null
      }
    ]
  },
  "responsetime": "2026-11-14T02:00:00.456Z"
}
```

暗号資産の送付に利用できる登録済みの宛先を取得します。 
会員ページで登録し、審査が完了した宛先が対象です。外部アドレス宛ての宛先と、GMOコイン口座宛ての宛先の両方を含みます。審査中・審査不合格・無効の宛先は含まれません。また、会員ページで「要追加情報入力」と表示される宛先（受取人情報の追加入力が必要な宛先。Sygna未加盟の暗号資産交換業者等宛てで所在国の入力が済んでいない宛先を含みます）も含まれません。会員ページで追加情報の入力と審査を済ませると、一覧に含まれます。 
※ 宛先の登録・変更・削除は会員ページで行ってください。APIでは行えません。 
※ 「宛先リスト審査完了のお知らせ」メールをお送りした時点から24時間は、その宛先へ送付できません。sendableがfalseの宛先は、sendableFromの日時以降に送付できます。 
※ 一覧に含まれない宛先のaddressIdを[暗号資産の送付依頼](#withdrawal)に指定すると、ERR-5138が返ってきます。


##### Request
`GET /private/v1/account/withdrawal/crypto/addresses`


##### Parameters
* Parameter type: query

Parameter | Type | Required | Available Values
--------- | ----------- | ----------- | -----------
symbol | string | Required | 取扱銘柄は[こちら](#parameters-ref)  ※ 1銘柄ずつ取得します。

##### Response

Property Name | Value | Description
--------- | ----------- | -----------
list[].addressId | number | 宛先ID。[暗号資産の送付依頼](#withdrawal)のaddressIdに指定します。
list[].symbol | string | 取扱銘柄は[こちら](#parameters-ref)
list[].name | string | 会員ページで登録した宛先名
list[].address | string | 宛先アドレス。GMOコイン口座宛ての場合は、送付先口座の預入アドレスです。
list[].chainType | number | チェーン種別: `0`（チェーン種別: 銘柄本来のブロックチェーン） `1`（Optimism（Ethereum の L2））
list[].vaspType | string | 宛先区分: `PRIVATE`（宛先区分: 個人ウォレット） `INTERNAL`（GMOコイン口座） `OTHER_VASP`（暗号資産交換業者等（Sygna未加盟）） `SYGNA_VASP`（暗号資産交換業者等（Sygna加盟））
list[].vaspName | string | 送付先の暗号資産交換業者等の名称。宛先区分がSYGNA_VASP・OTHER_VASPの場合のみ設定され、それ以外の場合はnullです。
list[].receiverType | string | 受取人区分: `SELF`（受取人区分: 本人） `THIRD_PARTY`（第三者） 本人・第三者のどちらでもない宛先はnullです。
list[].sendable | bool | 現時点で送付できるか。「宛先リスト審査完了のお知らせ」メールをお送りした時点から24時間以内の場合はfalseです。
list[].sendableFrom | string | sendableがfalseの場合に、送付できるようになる日時（UTC時刻）。それ以外の場合はnullです。


<a id="withdrawalPurposes"></a>
## 送付目的一覧の取得

> Request example:

```javascript
const axios  = require('axios');
const crypto = require('crypto');

const apiKey    = 'YOUR_API_KEY';
const secretKey = 'YOUR_SECRET_KEY';

const timestamp = Date.now().toString();
const method    = 'GET';
const endPoint  = 'https://api.coin.z.com/private';
const path      = '/v1/account/withdrawal/crypto/purposes';

const text = timestamp + method + path;
const sign = crypto.createHmac('sha256', secretKey).update(text).digest('hex');
const options = {
    "headers": {
        "API-KEY": apiKey,
        "API-TIMESTAMP": timestamp,
        "API-SIGN": sign
    }
};

axios.get(endPoint + path, options)
  .then(function (response) {
    console.log(JSON.stringify(response.data, null, 2));
  })
  .catch(function (error) {
    console.log(error);
  });
```

> Response example:

```json
{
  "status": 0,
  "data": {
    "list": [
      {
        "purposeCode": 2,
        "name": "暗号資産の保管",
        "nameEn": "Storage of crypto assets",
        "requiresText": false,
        "requiresTradeDetails": false,
        "manualReview": false
      },
      {
        "purposeCode": 13,
        "name": "輸入品代金の支払い",
        "nameEn": "Payment for imported goods",
        "requiresText": false,
        "requiresTradeDetails": true,
        "manualReview": true
      }
    ]
  },
  "responsetime": "2026-11-14T02:00:00.456Z"
}
```

[暗号資産の送付依頼](#withdrawal)で指定できる送付目的の一覧を取得します。 
※ requiresTextがtrueの送付目的を指定する場合は、purposeTextが必須です。requiresTradeDetailsがtrueの送付目的（貿易関連）を指定する場合は、tradeDetailsが必須です。 
※ manualReviewがtrueの送付目的は当社の手動審査の対象となり、審査の完了まで時間がかかります。 
※ 口座の種別に応じて、その口座で指定できる送付目的だけを返します。一般法人の口座で返るのは1・2・26・99です。特例法人の口座では、個人の口座と同じ送付目的が返ります。一覧に含まれない送付目的コードを指定すると、受付時にERR-5153が返ってきます。


##### Request
`GET /private/v1/account/withdrawal/crypto/purposes`


##### Parameters
無し

##### Response

Property Name | Value | Description
--------- | ----------- | -----------
list[].purposeCode | number | 送付目的コード。[暗号資産の送付依頼](#withdrawal)のpurposeCodeに指定します。
list[].name | string | 送付目的の名称（日本語）
list[].nameEn | string | 送付目的の名称（英語）
list[].requiresText | bool | trueの場合、purposeTextが必須です。
list[].requiresTradeDetails | bool | trueの場合、tradeDetailsが必須です。
list[].manualReview | bool | trueの場合、手動審査の対象です（審査に時間がかかります）。


<a id="withdrawalNations"></a>
## 国・地域一覧の取得

> Request example:

```javascript
const axios  = require('axios');
const crypto = require('crypto');

const apiKey    = 'YOUR_API_KEY';
const secretKey = 'YOUR_SECRET_KEY';

const timestamp = Date.now().toString();
const method    = 'GET';
const endPoint  = 'https://api.coin.z.com/private';
const path      = '/v1/account/withdrawal/crypto/nations';

const text = timestamp + method + path;
const sign = crypto.createHmac('sha256', secretKey).update(text).digest('hex');
const options = {
    "headers": {
        "API-KEY": apiKey,
        "API-TIMESTAMP": timestamp,
        "API-SIGN": sign
    }
};

axios.get(endPoint + path, options)
  .then(function (response) {
    console.log(JSON.stringify(response.data, null, 2));
  })
  .catch(function (error) {
    console.log(error);
  });
```

> Response example:

```json
{
  "status": 0,
  "data": {
    "list": [
      {
        "countryCode": "JPN",
        "name": "日本",
        "hasProvinces": true
      },
      {
        "countryCode": "CAN",
        "name": "カナダ",
        "hasProvinces": false
      }
    ]
  },
  "responsetime": "2026-11-14T02:00:00.456Z"
}
```

送付目的が貿易関連の場合に、[暗号資産の送付依頼](#withdrawal)のtradeDetailsで所在地として指定する国・地域の一覧を取得します。 
※ 一覧には、当社が送付できない国・地域も含まれます。送付できない国・地域を所在地に指定した依頼は、受け付けたあと、送付目的の審査で不合格（REJECTED）になります。


##### Request
`GET /private/v1/account/withdrawal/crypto/nations`


##### Parameters
無し

##### Response

Property Name | Value | Description
--------- | ----------- | -----------
list[].countryCode | string | 国・地域コード（ISO 3166-1 alpha-3）
list[].name | string | 国・地域名（日本語）
list[].hasProvinces | bool | trueの国・地域（日本・米国・中国）では、所在地にregionCodeを指定します。falseの国・地域では、cityNameを指定します。


<a id="withdrawalProvinces"></a>
## 州・都道府県一覧の取得

> Request example:

```javascript
const axios  = require('axios');
const crypto = require('crypto');

const apiKey    = 'YOUR_API_KEY';
const secretKey = 'YOUR_SECRET_KEY';

const timestamp = Date.now().toString();
const method    = 'GET';
const endPoint  = 'https://api.coin.z.com/private';
const path      = '/v1/account/withdrawal/crypto/provinces';
const parameters = '?countryCode=JPN';

const text = timestamp + method + path;
const sign = crypto.createHmac('sha256', secretKey).update(text).digest('hex');
const options = {
    "headers": {
        "API-KEY": apiKey,
        "API-TIMESTAMP": timestamp,
        "API-SIGN": sign
    }
};

axios.get(endPoint + path + parameters, options)
  .then(function (response) {
    console.log(JSON.stringify(response.data, null, 2));
  })
  .catch(function (error) {
    console.log(error);
  });
```

> Response example:

```json
{
  "status": 0,
  "data": {
    "list": [
      {
        "regionCode": "010",
        "name": "北海道"
      },
      {
        "regionCode": "020",
        "name": "青森県"
      }
    ]
  },
  "responsetime": "2026-11-14T02:00:00.456Z"
}
```

送付目的が貿易関連の場合に、[暗号資産の送付依頼](#withdrawal)のtradeDetailsで所在地として指定する州・都道府県の一覧を取得します。 
※ regionCodeは国・地域ごとに採番されているため、国・地域が異なると同じ値になることがあります。必ずcountryCodeと組み合わせて扱ってください。 
※ 州・都道府県を持たない国・地域や、存在しない国・地域コードを指定した場合は、エラーとならずlistが空の配列で返ってきます。countryCodeが英大文字3文字でない場合はERR-5106が返ってきます。


##### Request
`GET /private/v1/account/withdrawal/crypto/provinces`


##### Parameters
* Parameter type: query

Parameter | Type | Required | Available Values
--------- | ----------- | ----------- | -----------
countryCode | string | Required | 国・地域コード（ISO 3166-1 alpha-3）。[国・地域一覧の取得](#withdrawalNations)でhasProvincesがtrueの国・地域を指定します。

##### Response

Property Name | Value | Description
--------- | ----------- | -----------
list[].regionCode | string | 州・都道府県コード（3桁の文字列。例：010）
list[].name | string | 州・都道府県名（日本語）


<a id="withdrawal"></a>
## 暗号資産の送付依頼

> Request example:

```javascript
const axios  = require('axios');
const crypto = require('crypto');

const apiKey    = 'YOUR_API_KEY';
const secretKey = 'YOUR_SECRET_KEY';

const timestamp = Date.now().toString();
const method    = 'POST';
const endPoint  = 'https://api.coin.z.com/private';
const path      = '/v1/account/withdrawal/crypto';
const reqBody   = JSON.stringify({
    clientOrderId: "withdrawal001",
    symbol: "ETH",
    addressId: 858872,
    sendAmount: "0.1",
    purposeCode: 2
})

const text = timestamp + method + path + reqBody;
const sign = crypto.createHmac('sha256', secretKey).update(text).digest('hex');
const options = {
    "headers": {
        "API-KEY": apiKey,
        "API-TIMESTAMP": timestamp,
        "API-SIGN": sign
    }
};

axios.post(endPoint + path, reqBody, options)
  .then(function (response) {
    console.log(JSON.stringify(response.data, null, 2));
  })
  .catch(function (error) {
    console.log(error);
  });
```

> Response example:

```json
{
  "status": 0,
  "data": {
    "orderId": 26145170,
    "clientOrderId": "withdrawal001",
    "symbol": "ETH",
    "addressId": 858872,
    "sendAmount": "0.1",
    "fee": "0.0004",
    "apiFee": "0.0004",
    "apiFeeJpy": "220",
    "rate": "550000",
    "status": "UNDER_REVIEW",
    "acceptedAt": "2026-11-14T02:00:00.000Z"
  },
  "responsetime": "2026-11-14T02:00:00.456Z"
}
```

> tradeDetails example:

```json
{
  "clientOrderId": "withdrawal002",
  "symbol": "BTC",
  "addressId": 850509,
  "sendAmount": "0.05",
  "purposeCode": 13,
  "tradeDetails": {
    "receiverLocation": { "countryCode": "JPN", "regionCode": "010", "cityName": null },
    "itemName": "食料品",
    "originLocation": { "countryCode": "CHN", "regionCode": "004", "cityName": null },
    "shipmentLocation": { "countryCode": "CAN", "regionCode": null, "cityName": "Vancouver" }
  }
}
```

登録済みの宛先へ、暗号資産の送付を依頼します。 
宛先はaddressIdで指定します。addressIdは[登録済み宛先の取得](#withdrawalAddresses)で取得してください。宛先のネットワークは、同APIで返るchainType（チェーン種別）で確認できます。 
送付依頼ごとに、暗号資産（API経由）の手数料が発生します。手数料の金額は[手数料・費用](https://coin.z.com/jp/corp/guide/fees/)をご確認ください。手数料は、送付依頼時点の当社の買取価格（BID）で暗号資産の数量に換算し、銘柄ごとの数量の桁数で切り上げたうえで、送付数量とは別に当該暗号資産の預かり残高から徴収します。宛先がGMOコイン口座の場合も同様です。 
※ 手数料は依頼時点のレートで換算するため、依頼ごとに変わります。徴収した手数料はレスポンスのfee・apiFeeで確認できます。 ※ 手数料は送付数量とは別に当該暗号資産の預かり残高から徴収するため、保有数量の全額を指定すると残高不足（ERR-208）になります（DOTは、最小送付数量未満の場合は全額を指定してもERR-5155になります）。最小送付数量未満の保有分は、会員ページから送付してください。 
審査の対象となる送付依頼は、受付後に当社の審査を経て送付されます。GMOコイン口座宛ての送付は審査の対象外で、受付時点でPROCESSINGになります。受付後の状態は[送付ステータスの取得](#withdrawalStatus)で確認してください。 
※ ERR-5004、ERR-5000などのシステムエラー、HTTPステータス5xx、タイムアウトは、送付依頼の失敗を意味しません。送付依頼が受け付けられている場合があるため、clientOrderIdで[送付ステータスの取得](#withdrawalStatus)を照会して結果を確認してください。同じclientOrderIdで再度依頼すると、ERR-915となり二重には送付されません。 ※ 新しいclientOrderIdで再度依頼すると、先の依頼が受け付けられていた場合に二重に送付されます。[送付ステータスの取得](#withdrawalStatus)でERR-5158が返ってくること（未受付）を確認してから再度依頼してください。依頼の直後は処理が終わっておらず見つからないことがあるため、時間をおいて照会してください。 
※ 所在地が当社の定める送付できない国・地域に該当する場合は、受付時にはエラーとならず、受け付けたあと、送付目的の審査で不合格（REJECTED）になります。 
※ 口座開設から1か月以内で、申告いただいた金融資産の区分に応じた上限を超える送付は、APIでは受け付けません（ERR-5141）。 
※ 送付依頼を取り消せるのは、宛先区分がSYGNA_VASPで、審査待ちの間のみです。詳しくは[暗号資産の送付取消依頼](#cancelWithdrawal)をご確認ください。 
※ 送付目的が貿易関連の場合のtradeDetailsの指定例は、Response exampleの下にあるtradeDetails exampleをご確認ください。 
※ 同じ銘柄の送付依頼は、同一アカウントにつき1秒に1回までです。超えるとERR-5003となります。入力エラーなど受付時の検証で拒否された依頼は回数に含みません。受付後の残高確認や上限確認で拒否された依頼（残高不足のERR-208、1日の送付上限超過のERR-5157など）は回数に含みます。別の銘柄の送付依頼は制限の対象になりません。


##### Request
`POST /private/v1/account/withdrawal/crypto`


##### Parameters
* Parameter content type: `application/json`

Parameter | Type | Required | Available Values
--------- | ----------- | ----------- | -----------
`clientOrderId`（顧客注文ID） | string | Required | お客様が採番する注文の識別子。 ※36文字以内の半角英数字の組み合わせのみ使用可能です。 ※大文字と小文字は区別されます。 ※アカウント内で一意である必要があり、過去に使用したclientOrderIdは再利用できません。ただし受付時にエラーで拒否された依頼のclientOrderIdは再利用できます。審査で不合格となった依頼のclientOrderIdは再利用できません。 ※使用済みのclientOrderIdを指定した場合は、依頼の内容にかかわらずERR-915が返ってきます。依頼ごとに新しい値を付けてください。ERR-915を受け取った場合は、同一のclientOrderIdで[送付ステータスの取得](#withdrawalStatus)を照会すると元のリクエストの結果を確認できます。 ※UUIDを使用する場合はハイフンを除いた32文字（16進数）で指定してください。
symbol | string | Required | 取扱銘柄は[こちら](#parameters-ref)  addressIdの宛先と同じ銘柄を指定します。
addressId | number | Required | [登録済み宛先の取得](#withdrawalAddresses)で取得した宛先ID
sendAmount | string | Required | 送付数量。正の数で、小数部は銘柄ごとの数量の桁数以内で指定します。指定した数量がそのまま送付され、手数料は残高から別途徴収されます。最小送付数量や1日の送付上限などの送付条件は、[こちら](https://coin.z.com/jp/corp/guide/deposit-withdrawal/)をご確認ください。
purposeCode | number | *宛先区分がINTERNAL（GMOコイン口座宛て）以外の場合は必須 | 送付目的コード。指定できる値は[送付目的一覧の取得](#withdrawalPurposes)で取得してください。宛先区分がINTERNAL（GMOコイン口座宛て）の場合は指定できません（ERR-5153）。
purposeText | string | *requiresTextがtrueの送付目的の場合は必須 | 送付目的の内容（自由記述、400文字以内）。requiresTextがfalseの送付目的では指定できません。
tradeDetails | object | *requiresTradeDetailsがtrueの送付目的の場合は必須 | 貿易関連の情報。requiresTradeDetailsがtrueの送付目的（貿易関連）以外では指定できません。
tradeDetails.receiverLocation | object | Required | 貨物受取人の所在地（Location）
tradeDetails.itemName | string | Required | 輸入貨物の商品名（256文字以内）
tradeDetails.originLocation | object | Required | 原産地（Location）
tradeDetails.shipmentLocation | object | Required | 船積地（貨物の積み出し地）（Location）

* Location（receiverLocation・originLocation・shipmentLocation）には、以下の項目を持つオブジェクトを指定します。

Parameter | Type | Required | Available Values
--------- | ----------- | ----------- | -----------
countryCode | string | Required | 国・地域コード（ISO 3166-1 alpha-3）。[国・地域一覧の取得](#withdrawalNations)のcountryCode
regionCode | string | *hasProvincesがtrueの国・地域では必須 | 州・都道府県コード。[州・都道府県一覧の取得](#withdrawalProvinces)のregionCode。hasProvincesがfalseの国・地域では指定できません。
cityName | string | *hasProvincesがfalseの国・地域では必須 | 都市名（256文字以内）。hasProvincesがtrueの国・地域では指定できません。

※ regionCodeとcityNameは、必ずどちらか一方のみを指定します。指定しない項目はnullとするか、省略してください。

##### Response

Property Name | Value | Description
--------- | ----------- | -----------
orderId | number | 注文ID。[送付ステータスの取得](#withdrawalStatus)・[暗号資産の送付取消依頼](#cancelWithdrawal)で指定します。
clientOrderId | string | 送付依頼で指定したclientOrderId
symbol | string | 取扱銘柄は[こちら](#parameters-ref)
addressId | number | 宛先ID
sendAmount | string | 送付数量
fee | string | 送付手数料の合計（暗号資産の数量）。会員ページの取引履歴に表示される手数料と同じ値です。
apiFee | string | feeのうち、暗号資産（API経由）の手数料の数量
apiFeeJpy | string | 暗号資産（API経由）の手数料（円）
rate | string | 手数料の換算に用いたレート（当社の買取価格（BID）、円）
status | string | 送付ステータス: `UNDER_REVIEW`（送付ステータス: 審査中。受付済みで、当社の審査を行っています。） `PROCESSING`（手続中。審査が完了し、送信待ち、またはブロックチェーンへ送信して確定を待っています。） `EXECUTED`（完了。送付が確定しました。） `CANCELED`（取消。お客さま、または当社により取り消されました。） `REJECTED`（審査不合格。審査で不合格となった、または送付先の暗号資産交換業者等に拒否されました。） `ERROR`（エラー。送信に失敗しました。残高の扱いは当社までお問い合わせください。）
acceptedAt | string | 受付日時（UTC時刻）。秒までの値で、ミリ秒は000です。審査の対象となる送付では、送付ステータスの取得で返る受付日時と同じ値です。


<a id="withdrawalStatus"></a>
## 暗号資産の送付ステータスの取得

> Request example:

```javascript
const axios  = require('axios');
const crypto = require('crypto');

const apiKey    = 'YOUR_API_KEY';
const secretKey = 'YOUR_SECRET_KEY';

const timestamp = Date.now().toString();
const method    = 'GET';
const endPoint  = 'https://api.coin.z.com/private';
const path      = '/v1/account/withdrawal/crypto/status';
const parameters = '?orderId=26145170';

const text = timestamp + method + path;
const sign = crypto.createHmac('sha256', secretKey).update(text).digest('hex');
const options = {
    "headers": {
        "API-KEY": apiKey,
        "API-TIMESTAMP": timestamp,
        "API-SIGN": sign
    }
};

axios.get(endPoint + path + parameters, options)
  .then(function (response) {
    console.log(JSON.stringify(response.data, null, 2));
  })
  .catch(function (error) {
    console.log(error);
  });
```

> Response example:

```json
{
  "status": 0,
  "data": {
    "orderId": 26145170,
    "clientOrderId": "withdrawal001",
    "symbol": "ETH",
    "addressId": 858872,
    "sendAmount": "0.1",
    "fee": "0.0004",
    "apiFee": "0.0004",
    "status": "EXECUTED",
    "cancelable": false,
    "txHash": [
      "0x40320c23e98939b724eda46e4eadac82e112309fdba82273b179988cf210569a"
    ],
    "acceptedAt": "2026-11-14T02:00:00.000Z",
    "updatedAt": "2026-11-14T02:06:14.000Z"
  },
  "responsetime": "2026-11-14T02:10:00.456Z"
}
```

指定した暗号資産の送付依頼の状態を取得します。 
orderIdまたはclientOrderIdのいずれか一方を指定します。 
※ 該当する送付依頼が無い場合（存在しない注文ID、他のアカウントの注文、送付以外の注文を指定した場合）はERR-5158が返ってきます。 
※ 審査完了後に送信を待っている間も、PROCESSINGと表示されます。PROCESSINGの送付依頼は取り消せません。PROCESSINGが長時間続く場合は、当社までお問い合わせください。 
完了（EXECUTED）した送付は、[暗号資産の送付履歴の取得](#withdrawalHistory)でも取得できます。 
※ orderIdとclientOrderIdを同時に指定した場合はERR-5212が、どちらも指定しない場合や形式が誤っている場合はERR-5106が返ってきます。


##### Request
`GET /private/v1/account/withdrawal/crypto/status`


##### Parameters
* Parameter type: query

Parameter | Type | Required | Available Values
--------- | ----------- | ----------- | -----------
`orderId`（注文ID） | number | * | 送付依頼の注文ID
`clientOrderId`（顧客注文ID） | string | * | 送付依頼で指定したclientOrderId

##### Response

Property Name | Value | Description
--------- | ----------- | -----------
orderId | number | 注文ID
clientOrderId | string | 送付依頼で指定したclientOrderId。設定されていない場合はnullです。
symbol | string | 取扱銘柄は[こちら](#parameters-ref)
addressId | number | 宛先ID。取得できない場合はnullです。
sendAmount | string | 送付数量
fee | string | 送付手数料の合計（暗号資産の数量）。会員ページの取引履歴に表示される手数料と同じ値です。
apiFee | string | feeのうち、暗号資産（API経由）の手数料の数量。この手数料の記録が無い場合はnullです。
status | string | 送付ステータス: `UNDER_REVIEW`（送付ステータス: 審査中。受付済みで、当社の審査を行っています。） `PROCESSING`（手続中。審査が完了し、送信待ち、またはブロックチェーンへ送信して確定を待っています。） `EXECUTED`（完了。送付が確定しました。） `CANCELED`（取消。お客さま、または当社により取り消されました。） `REJECTED`（審査不合格。審査で不合格となった、または送付先の暗号資産交換業者等に拒否されました。） `ERROR`（エラー。送信に失敗しました。残高の扱いは当社までお問い合わせください。）
cancelable | bool | 取消依頼を受け付けられる状態か。宛先区分がSYGNA_VASPで、審査待ちの間のみtrueです。取消依頼済みの場合や、送付ステータスがUNDER_REVIEW以外（CANCELED・ERRORなど）の場合はfalseです。
txHash | array | トランザクションハッシュの配列。送信前は空の配列です。複数のトランザクションで送信された場合は複数の値が入ります。宛先がGMOコイン口座の場合は、完了後も空の配列です。
acceptedAt | string | 受付日時（UTC時刻）。秒までの値で、ミリ秒は000です。審査の対象外となるGMOコイン口座宛ての送付などではnullです。
updatedAt | string | 最終更新日時（UTC時刻）。取得できない場合はnullです。


<a id="cancelWithdrawal"></a>
## 暗号資産の送付取消依頼

> Request example:

```javascript
const axios  = require('axios');
const crypto = require('crypto');

const apiKey    = 'YOUR_API_KEY';
const secretKey = 'YOUR_SECRET_KEY';

const timestamp = Date.now().toString();
const method    = 'POST';
const endPoint  = 'https://api.coin.z.com/private';
const path      = '/v1/account/withdrawal/crypto/cancel';
const reqBody   = JSON.stringify({
    orderId: 26145188
})

const text = timestamp + method + path + reqBody;
const sign = crypto.createHmac('sha256', secretKey).update(text).digest('hex');
const options = {
    "headers": {
        "API-KEY": apiKey,
        "API-TIMESTAMP": timestamp,
        "API-SIGN": sign
    }
};

axios.post(endPoint + path, reqBody, options)
  .then(function (response) {
    console.log(JSON.stringify(response.data, null, 2));
  })
  .catch(function (error) {
    console.log(error);
  });
```

> Response example:

```json
{
  "status": 0,
  "data": {
    "orderId": 26145188,
    "status": "UNDER_REVIEW",
    "cancelRequested": true
  },
  "responsetime": "2026-11-14T02:00:00.456Z"
}
```

暗号資産の送付依頼の取消を依頼します。 
取消できるのは、宛先区分がSYGNA_VASP（Sygna加盟の暗号資産交換業者等）の送付依頼で、審査待ちの間のみです（会員ページと同じ条件です）。それ以外の宛先区分の送付依頼は取り消せません。 
取消できるかどうかは、[送付ステータスの取得](#withdrawalStatus)のcancelableで確認できます。 
※ 正常なレスポンスは取消依頼の受付を示すもので、取消の完了を示すものではありません。取消の完了（CANCELED）は[送付ステータスの取得](#withdrawalStatus)で確認してください。 
※ 会員ページからも、同じ条件で取り消せます。


##### Request
`POST /private/v1/account/withdrawal/crypto/cancel`


##### Parameters
* Parameter content type: `application/json`

Parameter | Type | Required | Available Values
--------- | ----------- | ----------- | -----------
`orderId`（注文ID） | number | Required | 取り消す送付依頼の注文ID

##### Response

Property Name | Value | Description
--------- | ----------- | -----------
orderId | number | 注文ID
status | string | 取消依頼を受け付けた時点の送付ステータス（取消が完了するまではUNDER_REVIEWのままです）
cancelRequested | bool | 取消依頼を受け付けたか

<a id="exchangeFeeHistory"></a>
## 取引所のレバレッジ手数料・取引手数料返金履歴の取得

> Request example:

```javascript
const axios  = require('axios');
const crypto = require('crypto');

const apiKey    = 'YOUR_API_KEY';
const secretKey = 'YOUR_SECRET_KEY';

const timestamp = Date.now().toString();
const method    = 'GET';
const endPoint  = 'https://api.coin.z.com/private';
const path      = '/v1/account/exchangeFee/history';
const parameters = '?fromDate=20260601&toDate=20260607';

const text = timestamp + method + path;
const sign = crypto.createHmac('sha256', secretKey).update(text).digest('hex');
const options = {
    "headers": {
        "API-KEY": apiKey,
        "API-TIMESTAMP": timestamp,
        "API-SIGN": sign
    }
};

axios.get(endPoint + path + parameters, options)
  .then(function (response) {
    console.log(JSON.stringify(response.data, null, 2));
  })
  .catch(function (error) {
    console.log(error);
  });
```

> Response example:

```json
{
  "status": 0,
  "data": {
    "pagination": {
      "cursor": "AbzejT4z9R01mjvOj_APz3Y34AQmWAQenEVr07RfrVCbAmJZi9vgFexNTqKFYU9uW7rArTHokipb0gXMElEvu2v90QAey3haCOB9"
    },
    "list": [
      {
        "symbol": "BTC_JPY",
        "feeType": "LEVERAGE_FEE",
        "deliveryDate": "20260615",
        "deliveryDatetime": "2026-06-15T21:01:23.456Z",
        "deliveryAmount": "-120"
      },
      {
        "symbol": "BTC",
        "feeType": "SPOT_FEE_REFUND",
        "deliveryDate": "20260615",
        "deliveryDatetime": "2026-06-15T21:01:21.229Z",
        "deliveryAmount": "4"
      }
    ],
    "lastFinalizedDate": "20260615"
  },
  "responsetime": "2026-07-03T11:48:57.996Z"
}
```

取引所のレバレッジ手数料と、取引手数料の返金額（現物取引およびレバレッジ取引の手数料端数の返金）の履歴を取得します。 
明細は営業日×銘柄×手数料種別ごとの1行です。 
明細は新しい順（対象営業日の降順、同一営業日内は登録の新しい順）で返却されます。 
※ 暗号資産FXのレバレッジ手数料は対象外です。 
明細は営業日終了後（営業日は6:00〜翌5:59 JST）の日次処理で作成されます。 
照会したい営業日がlastFinalizedDate以前の日付であれば、その営業日分の明細は出揃っています（0件の場合は、その営業日の手数料・返金が無いことを確定できます）。lastFinalizedDateより後の営業日は日次処理が処理中のため、時間をおいて再取得してください。 
lastFinalizedDateはレスポンス時点の値です。ページングで継続取得している間に値が進むことがあります。進んだ場合に追加された明細は、取得中のcursorからは取得できません。完全な結果が必要な場合はcursorを指定せず最初から再取得してください。 
※ 取引所レバレッジ手数料は、建玉が無い日や金利が0%の場合は明細が作成されません。手数料の端数返金も、合計が0円の場合は明細が作成されません。 
※ 履歴取得処理がタイムアウトした場合、ERR-5016が返ります。まず同じリクエストを再実行し、解消しない場合はfromDate/toDateの期間を狭めてください。


##### Request
`GET /private/v1/account/exchangeFee/history`


##### Parameters
* Parameter type: query

Parameter | Type | Required | Available Values
--------- | ----------- | ----------- | -----------
fromDate | string | Required | 取得対象の開始営業日: YYYYMMDDフォーマットの文字列（例：20260601）  ※ toDate以前の日付を指定してください。未来の営業日は指定できません。
toDate | string | Optional | 取得対象の終了営業日: YYYYMMDDフォーマットの文字列（例：20260607）  ※ 未指定の場合、fromDateと同じ営業日（単日取得）となります。 ※ fromDateとtoDateの差は最大7日です。
count | number | Optional | 1ページあたりの最大取得件数  ※ 指定可能な範囲は1〜100です。既定値は100です。
cursor | string | Optional | 前回レスポンスのpagination.cursorを指定すると次ページを取得します。  ※ cursor指定時は、fromDate/toDateを前回リクエストと同一にしてください。  ※ 次ページには、より古い明細が返ります（listは新しい順）。

##### Response

Property Name | Value | Description
--------- | ----------- | -----------
pagination.cursor | string | 次ページが存在する場合のみ設定される継続トークン
list[].symbol | string | 手数料が発生した取引の銘柄（現物取引：BTC など／レバレッジ取引：BTC_JPY など）
list[].feeType | string | 手数料種別: `LEVERAGE_FEE`（手数料種別: 取引所レバレッジ手数料の徴収） `SPOT_FEE_REFUND`（現物取引手数料の端数返金） `LEVERAGE_FEE_REFUND`（レバレッジ取引手数料の端数返金）
list[].deliveryDate | string | 対象営業日（YYYYMMDD）
list[].deliveryDatetime | string | 計上日時（UTC時刻）
list[].deliveryAmount | string | 金額（日本円）。返金は正の値、徴収は負の値となります。
lastFinalizedDate | string | 日次処理（手数料の計上・返金の反映）が完了している最新の営業日（YYYYMMDD）。この日付までの明細は確定しています。初回の日次処理が完了していない口座では返却されません。

<a id="orders"></a>
## 注文情報取得

> Request example:

```javascript
const axios  = require('axios');
const crypto = require('crypto');

const apiKey    = 'YOUR_API_KEY';
const secretKey = 'YOUR_SECRET_KEY';

const timestamp  = Date.now().toString();
const method     = 'GET';
const endPoint   = 'https://api.coin.z.com/private';
const path       = '/v1/orders';
const parameters = '?orderId=123456789,223456789';

const text = timestamp + method + path;
const sign = crypto.createHmac('sha256', secretKey).update(text).digest('hex');
const options = {
    "headers": {
        "API-KEY": apiKey,
        "API-TIMESTAMP": timestamp,
        "API-SIGN": sign
    }
};

axios.get(endPoint + path + parameters, options)
  .then(function (response) {
    console.log(JSON.stringify(response.data, null, 2));
  })
  .catch(function (error) {
    console.log(error);
  });
```

> Response example:

```json
{
  "status": 0,
  "data": {
    "list": [
      {
        "orderId": 223456789,
        "clientOrderId": "abc123",
        "rootOrderId": 223456789,
        "symbol": "BTC_JPY",
        "side": "BUY",
        "orderType": "NORMAL",
        "executionType": "LIMIT",
        "settleType": "OPEN",
        "size": "0.02",
        "executedSize": "0.02",
        "price": "1430001",
        "losscutPrice": "0",
        "status": "EXECUTED",
        "timeInForce": "FAS",
        "timestamp": "2020-10-14T20:18:59.343Z"
      },
      {
        "rootOrderId": 123456789,
        "orderId": 123456789,
        "symbol": "BTC",
        "side": "BUY",
        "orderType": "NORMAL",
        "executionType": "LIMIT",
        "settleType": "OPEN",
        "size": "1",
        "executedSize": "0",
        "price": "900000",
        "losscutPrice": "0",
        "status": "CANCELED",
        "cancelType": "USER",
        "timeInForce": "FAS",
        "timestamp": "2019-03-19T02:15:06.059Z"
      }
    ]
  },
  "responsetime": "2019-03-19T02:15:06.059Z"
}
```

指定した注文IDまたは顧客注文IDの注文情報を取得します。 
対象: 現物取引、レバレッジ取引

* `orderId` `clientOrderId` いずれか一つが必須です。2つ同時には設定できません。


##### Request
`GET /private/v1/orders`


##### Parameters
* Parameter type: query

Parameter | Type | Required | Available Values
--------- | ----------- | ----------- | -----------
`orderId`（注文ID） | string | * | `orderId` `clientOrderId`（顧客注文ID） いずれか一つが必須。 カンマ区切りで最大10件まで指定可能。
`clientOrderId`（顧客注文ID） | string | * | `orderId`（注文ID） `clientOrderId` いずれか一つが必須。 ※36文字以内の半角英数字の組み合わせのみ使用可能です。 ※カンマ区切りで最大10件まで指定可能です。文字数制限は1件ごとに適用されます。

##### Response

Property Name | Value | Description
--------- | ----------- | -----------
rootOrderId | number | 親注文ID
orderId | number | 注文ID
clientOrderId | string | 顧客注文ID ※設定した場合のみ返却
symbol | string | 取扱銘柄は[こちら](#parameters-ref)
side | string | 売買区分: `BUY`（売買区分: 買） `SELL`（売）
orderType | string | 取引区分: `NORMAL`（取引区分: 自動ロスカット以外の通常の注文） `LOSSCUT`（自動ロスカットの注文）
executionType | string | 注文タイプ: `MARKET`（注文タイプ: 成行） `LIMIT`（指値） `STOP`（逆指値）
settleType | string | 決済区分: `OPEN`（決済区分: 新規） `CLOSE`（決済）
size | string | 発注数量
executedSize | string | 約定数量
price | string | 注文価格 (`MARKET`（注文タイプ: 成行）注文の場合、本項目は含まれません)
losscutPrice | string | ロスカットレート (現物取引や未設定の場合は"0")
status | string | 注文ステータス: `WAITING`（注文ステータス: 待機中 ※逆指値注文の場合は有効） `ORDERED`（有効または一部約定 ※逆指値注文は一部約定） `MODIFYING`（変更中） `CANCELLING`（取消中） `CANCELED`（取消済） `EXECUTED`（全量約定） `EXPIRED`（失効）  ※逆指値注文の場合は`WAITING`が有効
cancelType | string | 取消区分: `USER`（取消区分: お客さまによる注文の取消） `POSITION_LOSSCUT`（建玉のロスカットに伴う決済注文の取消） `INSUFFICIENT_BALANCE`（取引余力の不足による注文の取消（現物取引）） `INSUFFICIENT_MARGIN`（取引余力の不足による注文の取消（レバレッジ取引）） `ACCOUNT_LOSSCUT`（口座残高不足によるロスカットに伴う決済注文の取消） `MARGIN_CALL`（追証による注文の取消） `MARGIN_CALL_LOSSCUT`（追証のロスカットに伴う決済注文の取消） `EXPIRED_FAK`（FAKによる失効） `EXPIRED_FOK`（FOKによる失効） `EXPIRED_SOK`（SOKによる失効） `EXPIRED_SELFTRADE`（対当売買に該当する可能性があるため失効） `COLLATERAL_LIQUIDATION`（代用暗号資産の強制売却により取消された注文） ※statusが`CANCELLING`、`CANCELED`または`EXPIRED`の場合のみ返ってきます。
timeInForce | string | 執行数量条件: `FAK`（執行数量条件: 注文が一部約定後に未執行数量が残った場合、その残数量を失効とする条件） `FAS`（注文が一部約定後に未執行数量が残った場合、その残数量を有効とする条件） `FOK`（注文の全数量が直ちに約定しない場合、その全数量を失効とする条件） (Post-onlyの場合は`SOK`（指値注文においてMakerにならない場合、その全数量を失効とする条件(Post-only)）)
timestamp | string | 注文日時

<a id="active-orders"></a>
## 有効注文一覧

> Request example:

```javascript
const axios  = require('axios');
const crypto = require('crypto');

const apiKey    = 'YOUR_API_KEY';
const secretKey = 'YOUR_SECRET_KEY';

const timestamp  = Date.now().toString();
const method     = 'GET';
const endPoint   = 'https://api.coin.z.com/private';
const path       = '/v1/activeOrders';
const parameters = '?symbol=BTC&page=1&count=10';

const text = timestamp + method + path;
const sign = crypto.createHmac('sha256', secretKey).update(text).digest('hex');
const options = {
    "headers": {
        "API-KEY": apiKey,
        "API-TIMESTAMP": timestamp,
        "API-SIGN": sign
    }
};

axios.get(endPoint + path + parameters, options)
  .then(function (response) {
    console.log(JSON.stringify(response.data, null, 2));
  })
  .catch(function (error) {
    console.log(error);
  });
```

> Response example:

```json
{
  "status": 0,
  "data": {
    "pagination": {
      "currentPage": 1,
      "count": 30
    },
    "list": [
      {
        "rootOrderId": 123456789,
        "orderId": 123456789,
        "clientOrderId": "abc123",
        "symbol": "BTC",
        "side": "BUY",
        "orderType": "NORMAL",
        "executionType": "LIMIT",
        "settleType": "OPEN",
        "size": "1",
        "executedSize": "0",
        "price": "840000",
        "losscutPrice": "0",
        "status": "ORDERED",
        "timeInForce": "FAS",
        "timestamp": "2019-03-19T01:07:24.217Z"
      }
    ]
  },
  "responsetime": "2019-03-19T01:07:24.217Z"
}
```

有効注文一覧を取得します。 
対象: 現物取引、レバレッジ取引


##### Request
`GET /private/v1/activeOrders`


##### Parameters
* Parameter type: query

Parameter | Type | Required | Available Values
--------- | ----------- | ----------- | -----------
`symbol`（銘柄名） | string | Required | 取扱銘柄は[こちら](#parameters-ref)
`page`（取得対象ページ） | number | Optional | 取得対象ページ: 指定しない場合は1を指定したとして動作する。
`count`（1ページ当りの取得件数） | number | Optional | 1ページ当りの取得件数: 指定しない場合は100(最大値)を指定したとして動作する。

##### Response

Property Name | Value | Description
--------- | ----------- | -----------
rootOrderId | number | 親注文ID
orderId | number | 注文ID
clientOrderId | string | 顧客注文ID ※設定した場合のみ返却
symbol | string | 取扱銘柄は[こちら](#parameters-ref)
side | string | 売買区分: `BUY`（売買区分: 買） `SELL`（売）
orderType | string | 取引区分: `NORMAL`（取引区分: 自動ロスカット以外の通常の注文） `LOSSCUT`（自動ロスカットの注文）
executionType | string | 注文タイプ: `MARKET`（注文タイプ: 成行） `LIMIT`（指値） `STOP`（逆指値）
settleType | string | 決済区分: `OPEN`（決済区分: 新規） `CLOSE`（決済）
size | string | 発注数量
executedSize | string | 約定数量
price | string | 注文価格 (`MARKET`（注文タイプ: 成行）注文の場合、本項目は含まれません)
losscutPrice | string | ロスカットレート (現物取引や未設定の場合は"0")
status | string | 注文ステータス: `WAITING`（注文ステータス: 待機中 ※逆指値注文の場合は有効） `ORDERED`（有効または一部約定 ※逆指値注文は一部約定） `MODIFYING`（変更中） `CANCELLING`（取消中）  ※逆指値注文の場合は`WAITING`が有効
timeInForce | string | 執行数量条件: `FAK`（執行数量条件: 注文が一部約定後に未執行数量が残った場合、その残数量を失効とする条件） `FAS`（注文が一部約定後に未執行数量が残った場合、その残数量を有効とする条件） `FOK`（注文の全数量が直ちに約定しない場合、その全数量を失効とする条件） (Post-onlyの場合は`SOK`（指値注文においてMakerにならない場合、その全数量を失効とする条件(Post-only)）)
timestamp | string | 注文日時


<a id="executions"></a>
## 約定情報取得

> Request example:

```javascript
const axios  = require('axios');
const crypto = require('crypto');

const apiKey    = 'YOUR_API_KEY';
const secretKey = 'YOUR_SECRET_KEY';

const timestamp  = Date.now().toString();
const method     = 'GET';
const endPoint   = 'https://api.coin.z.com/private';
const path       = '/v1/executions';
const parameters = '?executionId=72123911,92123912';

const text = timestamp + method + path;
const sign = crypto.createHmac('sha256', secretKey).update(text).digest('hex');
const options = {
    "headers": {
        "API-KEY": apiKey,
        "API-TIMESTAMP": timestamp,
        "API-SIGN": sign
    }
};

axios.get(endPoint + path + parameters, options)
  .then(function (response) {
    console.log(JSON.stringify(response.data, null, 2));
  })
  .catch(function (error) {
    console.log(error);
  });
```

> Response example:

```json
{
  "status": 0,
  "data": {
    "list": [
      {
        "executionId": 92123912,
        "orderId": 223456789,
        "clientOrderId": "abc123",
        "positionId": 1234567,
        "symbol": "BTC_JPY",
        "side": "BUY",
        "settleType": "OPEN",
        "size": "0.02",
        "price": "1900000",
        "lossGain": "0",
        "fee": "223",
        "timestamp": "2020-11-24T21:27:04.764Z"
      },
      {
        "executionId": 72123911,
        "orderId": 123456789,
        "positionId": 1234567,
        "symbol": "BTC",
        "side": "BUY",
        "settleType": "OPEN",
        "size": "0.7361",
        "price": "877404",
        "lossGain": "0",
        "fee": "323",
        "timestamp": "2019-03-19T02:15:06.081Z"
      }
    ]
  },
  "responsetime": "2019-03-19T02:15:06.081Z"
}
```

約定情報を取得します。 
対象: 現物取引、レバレッジ取引

* `orderId` `executionId` `clientOrderId` いずれか一つが必須です。2つ以上を同時には設定できません。


##### Request
`GET /private/v1/executions`


##### Parameters
* Parameter type: query

Parameter | Type | Required | Available Values
--------- | ----------- | ----------- | -----------
`orderId`（注文ID） | number | * | `orderId` `executionId`（約定ID） `clientOrderId`（顧客注文ID） いずれか一つが必須。
`executionId`（約定ID） | string | * | `orderId`（注文ID） `executionId` `clientOrderId`（顧客注文ID） いずれか一つが必須。`executionId`の場合のみカンマ区切りで最大10件まで指定可能。
`clientOrderId`（顧客注文ID） | string | * | `orderId`（注文ID） `executionId`（約定ID） `clientOrderId` いずれか一つが必須。 ※36文字以内の半角英数字の組み合わせのみ使用可能です。 ※1件のみ指定可能です。カンマ区切りでの複数指定はできません。

##### Response

Property Name | Value | Description
--------- | ----------- | -----------
executionId | number | 約定ID
orderId | number | 注文ID
clientOrderId | string | 顧客注文ID ※設定した場合のみ返却
positionId | number | 建玉ID ※レバレッジの場合のみ
symbol | string | 取扱銘柄は[こちら](#parameters-ref)
side | string | 売買区分: `BUY`（売買区分: 買） `SELL`（売）
settleType | string | 決済区分: `OPEN`（決済区分: 新規） `CLOSE`（決済）
size | string | 約定数量
price | string | 約定レート
lossGain | string | 決済損益
fee | string | 取引手数料 ※Takerの場合はプラスの値、Makerの場合はマイナスの値が返ってきます。
timestamp | string | 約定日時


<a id="latest-executions"></a>
## 最新の約定一覧

> Request example:

```javascript
const axios  = require('axios');
const crypto = require('crypto');

const apiKey    = 'YOUR_API_KEY';
const secretKey = 'YOUR_SECRET_KEY';

const timestamp  = Date.now().toString();
const method     = 'GET';
const endPoint   = 'https://api.coin.z.com/private';
const path       = '/v1/latestExecutions';
const parameters = '?symbol=BTC&page=1&count=100';

const text = timestamp + method + path;
const sign = crypto.createHmac('sha256', secretKey).update(text).digest('hex');
const options = {
    "headers": {
        "API-KEY": apiKey,
        "API-TIMESTAMP": timestamp,
        "API-SIGN": sign
    }
};

axios.get(endPoint + path + parameters, options)
  .then(function (response) {
    console.log(JSON.stringify(response.data, null, 2));
  })
  .catch(function (error) {
    console.log(error);
  });
```

> Response example:

```json
{
  "status": 0,
  "data": {
    "pagination": {
      "currentPage": 1,
      "count": 30
    },
    "list": [
      {
        "executionId": 72123911,
        "orderId": 123456789,
        "clientOrderId": "abc123",
        "positionId": 1234567,
        "symbol": "BTC",
        "side": "BUY",
        "settleType": "OPEN",
        "size": "0.7361",
        "price": "877404",
        "lossGain": "0",
        "fee": "323",
        "timestamp": "2019-03-19T02:15:06.086Z"
      }
    ]
  },
  "responsetime": "2019-03-19T02:15:06.086Z"
}
```

最新約定一覧を取得します。 
対象: 現物取引、レバレッジ取引

* 直近1日分の約定情報を返します。


##### Request
`GET /private/v1/latestExecutions`


##### Parameters
* Parameter type: query

Parameter | Type | Required | Available Values
--------- | ----------- | ----------- | -----------
`symbol`（銘柄名） | string | Required | 取扱銘柄は[こちら](#parameters-ref)
`page`（取得対象ページ） | number | Optional | 取得対象ページ: 指定しない場合は1を指定したとして動作する。
`count`（1ページ当りの取得件数） | number | Optional | 1ページ当りの取得件数: 指定しない場合は100(最大値)を指定したとして動作する。

##### Response

Property Name | Value | Description
--------- | ----------- | -----------
executionId | number | 約定ID
orderId | number | 注文ID
clientOrderId | string | 顧客注文ID ※設定した場合のみ返却
positionId | number | 建玉ID ※レバレッジの場合のみ
symbol | string | 取扱銘柄は[こちら](#parameters-ref)
side | string | 売買区分: `BUY`（売買区分: 買） `SELL`（売）
settleType | string | 決済区分: `OPEN`（決済区分: 新規） `CLOSE`（決済）
size | string | 約定数量
price | string | 約定レート
lossGain | string | 決済損益
fee | string | 取引手数料 ※Takerの場合はプラスの値、Makerの場合はマイナスの値が返ってきます。
timestamp | string | 約定日時


<a id="open-positions"></a>
## 建玉一覧を取得

> Request example:

```javascript
const axios  = require('axios');
const crypto = require('crypto');

const apiKey    = 'YOUR_API_KEY';
const secretKey = 'YOUR_SECRET_KEY';

const timestamp  = Date.now().toString();
const method     = 'GET';
const endPoint   = 'https://api.coin.z.com/private';
const path       = '/v1/openPositions';
const parameters = '?symbol=BTC_JPY&page=1&count=100';

const text = timestamp + method + path;
const sign = crypto.createHmac('sha256', secretKey).update(text).digest('hex');
const options = {
    "headers": {
        "API-KEY": apiKey,
        "API-TIMESTAMP": timestamp,
        "API-SIGN": sign
    }
};

axios.get(endPoint + path + parameters, options)
  .then(function (response) {
    console.log(JSON.stringify(response.data, null, 2));
  })
  .catch(function (error) {
    console.log(error);
  });
```

> Response example:

```json
{
  "status": 0,
  "data": {
    "pagination": {
      "currentPage": 1,
      "count": 30
    },
    "list": [
      {
        "positionId": 1234567,
        "symbol": "BTC_JPY",
        "side": "BUY",
        "size": "0.22",
        "orderdSize": "0",
        "price": "876045",
        "lossGain": "14",
        "leverage": "4",
        "losscutPrice": "766540",
        "timestamp": "2019-03-19T02:15:06.094Z"
      }
    ]
  },
  "responsetime": "2019-03-19T02:15:06.095Z"
}
```

有効建玉一覧を取得します。 
対象: レバレッジ取引


##### Request
`GET /private/v1/openPositions`


##### Parameters
* Parameter type: query

Parameter | Type | Required | Available Values
--------- | ----------- | ----------- | -----------
`symbol`（銘柄名） | string | Required | レバレッジ取扱銘柄は[こちら](#Margin-parameters-ref)
`page`（取得対象ページ） | number | Optional | 取得対象ページ: 指定しない場合は1を指定したとして動作する。
`count`（1ページ当りの取得件数） | number | Optional | 1ページ当りの取得件数: 指定しない場合は100(最大値)を指定したとして動作する。

##### Response

Property Name | Value | Description
--------- | ----------- | -----------
positionId | number | 建玉ID
symbol | string | レバレッジ取扱銘柄は[こちら](#Margin-parameters-ref)
side | string | 売買区分: `BUY`（売買区分: 買） `SELL`（売）
size | string | 建玉数量
orderdSize | string | 発注中数量
price | string | 建玉レート
lossGain | string | 評価損益
leverage | string | レバレッジ
losscutPrice | string | ロスカットレート
timestamp | string | 約定日時


<a id="position-summary"></a>
## 建玉サマリーを取得

> Request example:

```javascript
const axios  = require('axios');
const crypto = require('crypto');

const apiKey    = 'YOUR_API_KEY';
const secretKey = 'YOUR_SECRET_KEY';

const timestamp  = Date.now().toString();
const method     = 'GET';
const endPoint   = 'https://api.coin.z.com/private';
const path       = '/v1/positionSummary';
const parameters = '?symbol=BTC_JPY';

const text = timestamp + method + path;
const sign = crypto.createHmac('sha256', secretKey).update(text).digest('hex');
const options = {
    "headers": {
        "API-KEY": apiKey,
        "API-TIMESTAMP": timestamp,
        "API-SIGN": sign
    }
};

axios.get(endPoint + path + parameters, options)
  .then(function (response) {
    console.log(JSON.stringify(response.data, null, 2));
  })
  .catch(function (error) {
    console.log(error);
  });
```

> Response example:

```json
{
  "status": 0,
  "data": {
    "list": [
      {
        "averagePositionRate": "715656",
        "positionLossGain": "250675",
        "side": "BUY",
        "sumOrderQuantity": "2",
        "sumPositionQuantity": "11.6999",
        "symbol": "BTC_JPY"
      }
    ]
  },
  "responsetime": "2019-03-19T02:15:06.102Z"
}
```

建玉サマリーを取得します。 
対象: レバレッジ取引

* 指定した銘柄の建玉サマリーを売買区分(買/売)ごとに取得ができます。symbolパラメータ指定無しの場合は、保有している全銘柄の建玉サマリーを売買区分(買/売)ごとに取得します。


##### Request
`GET /private/v1/positionSummary`


##### Parameters
* Parameter type: query

Parameter | Type | Required | Available Values
--------- | ----------- | ----------- | -----------
`symbol`（銘柄名） | string | Optional | 指定しない場合は全銘柄分の建玉サマリーを返す。 レバレッジ取扱銘柄は[こちら](#Margin-parameters-ref)

##### Response

Property Name | Value | Description
--------- | ----------- | -----------
averagePositionRate | string | 平均建玉レート
positionLossGain | string | 評価損益
side | string | 売買区分: `BUY`（売買区分: 買） `SELL`（売）
sumOrderQuantity | string | 発注中数量
sumPositionQuantity | string | 建玉数量
symbol | string | レバレッジ取扱銘柄は[こちら](#Margin-parameters-ref)

<a id="transfer"></a>
## 口座振替

> Request example:

```javascript
const axios  = require('axios');
const crypto = require('crypto');

const apiKey    = 'YOUR_API_KEY';
const secretKey = 'YOUR_SECRET_KEY';

const timestamp = Date.now().toString();
const method    = 'POST';
const endPoint  = 'https://api.coin.z.com/private';
const path      = '/v1/account/transfer';
const reqBody   = JSON.stringify({
    amount: "100000",
    transferType: "WITHDRAWAL"
})


const text = timestamp + method + path + reqBody;
const sign = crypto.createHmac('sha256', secretKey).update(text).digest('hex');
const options = {
    "headers": {
        "API-KEY": apiKey,
        "API-TIMESTAMP": timestamp,
        "API-SIGN": sign
    }
};

axios.post(endPoint + path, reqBody, options)
  .then(function (response) {
    console.log(JSON.stringify(response.data, null, 2));
  })
  .catch(function (error) {
    console.log(error);
  });
```

> Response example:

```json
{
  "status": 0,
  "data": [
    {
      "transferredAmount": "100000"
    }
  ],
  "responsetime": "2019-03-19T02:15:06.055Z"
}
```

暗号資産口座から外国為替FX口座へ、もしくは外国為替FXから暗号資産口座へ日本円を振替えます。 
口座振替のリクエストは3分に1回が上限です。


##### Request
`POST /private/v1/account/transfer`


##### Parameters
* Parameter content type: `application/json`

Property Name | Value | Description
--------- | ----------- | -----------
amount | string | 振替金額(日本円)
transferType | string | 振替区分: `WITHDRAWAL`（振替区分: 出金 (暗号資産口座から外国為替FX口座へ振替)） `DEPOSIT`（入金 (外国為替FX口座から暗号資産口座へ振替)）


##### Response

Property Name | Value | Description
--------- | ----------- | -----------
transferredAmount | string | 口座振替金額

<a id="order"></a>
## 注文

> Request example:

```javascript
const axios  = require('axios');
const crypto = require('crypto');

const apiKey    = 'YOUR_API_KEY';
const secretKey = 'YOUR_SECRET_KEY';

const timestamp = Date.now().toString();
const method    = 'POST';
const endPoint  = 'https://api.coin.z.com/private';
const path      = '/v1/order';
const reqBody   = JSON.stringify({
    symbol: "BTC_JPY",
    side: "BUY",
    executionType: "LIMIT",
    timeInForce: "FAS",
    price: "430001",
    losscutPrice: "30012",
    size: "0.02"
})

const text = timestamp + method + path + reqBody;
const sign = crypto.createHmac('sha256', secretKey).update(text).digest('hex');
const options = {
    "headers": {
        "API-KEY": apiKey,
        "API-TIMESTAMP": timestamp,
        "API-SIGN": sign
    }
};
axios.post(endPoint + path, reqBody, options)
  .then(function (response) {
    console.log(JSON.stringify(response.data, null, 2));
  })
  .catch(function (error) {
    console.log(error);
  });
```

> Response example:

```json
{
  "status": 0,
  "data": "637000",
  "responsetime": "2019-03-19T02:15:06.108Z"
}
```

新規注文をします。 
対象: 現物取引、レバレッジ取引

* 現物取引: 買/売注文
* レバレッジ取引: 新規の買/売注文

##### Request
`POST /private/v1/order`

##### Parameters
* Parameter content type: `application/json`

Parameter | Type | Required | Available Values
--------- | ----------- | ----------- | -----------
`symbol`（銘柄名） | string | Required | 取扱銘柄は[こちら](#parameters-ref)
`side`（売買区分） | string | Required | `BUY`（買） `SELL`（売）
`executionType`（注文タイプ） | string | Required | `MARKET`（成行） `LIMIT`（指値） `STOP`（逆指値）
`timeInForce`（執行数量条件） | string | Optional | `FAK`（注文が一部約定後に未執行数量が残った場合、その残数量を失効とする条件）   `FAS`（注文が一部約定後に未執行数量が残った場合、その残数量を有効とする条件） `FOK`（注文の全数量が直ちに約定しない場合、その全数量を失効とする条件） ((Post-onlyの場合は`SOK`（指値注文においてMakerにならない場合、その全数量を失効とする条件(Post-only)）) `LIMIT`（注文タイプ: 指値）の場合のみ設定可能  ) ※指定がない場合は成行と逆指値はFAK、指値はFASで注文されます。 SOKが指定可能な銘柄は[こちら](#sok-ref)の参照をお願いいたします。
`price`（注文レート（円）） | string | *executionTypeによる | `LIMIT`（注文タイプ: 指値） `STOP`（逆指値） の場合は必須、 `MARKET`（成行） の場合は不要。
`losscutPrice`（ロスカットレート（円）） | string | Optional | レバレッジ取引で、executionTypeが `LIMIT`（注文タイプ: 指値） または `STOP`（逆指値） の場合のみ設定可能。
`size`（取引数量） | string | Required 
`clientOrderId`（顧客注文ID） | string | Optional | お客様が採番する注文の識別子。 ※36文字以内の半角英数字の組み合わせのみ使用可能です。 ※大文字と小文字は区別されます。 ※アカウント内で一意である必要があり、過去に使用したclientOrderIdは再利用できません。ただしエラーで拒否された注文のclientOrderIdは再利用できます。 ※使用済みのclientOrderIdを指定した場合はERR-915が返ってきます。ERR-915を受け取った場合は、同一のclientOrderIdで[注文情報取得](#orders)を照会すると元のリクエストの結果を確認できます。 ※UUIDを使用する場合はハイフンを除いた32文字（16進数）で指定してください。
cancelBefore | bool | Optional | `true`  の場合、すでに有効注文がある場合に、有効注文の取消と成行注文を同時に行います。  注文数量＞発注可能数量の場合：注文数量≦発注可能数量となるまで、古い有効注文から順に取り消されます。  注文数量≦発注可能数量の場合：有効注文の取消はされず、成行注文のみ実行されます。  指定がない場合は`false`   ※現物取引で、executionType:`MARKET`,timeInforce:`FAK`,side:`SELL`の場合に`true`を指定可能です。


##### Response

Property Name | Value | Description
--------- | ----------- | -----------
data | string | 注文対象の`orderId`（注文ID）


<a id="change-order"></a>
## 注文変更

> Request example:

```javascript
const axios  = require('axios');
const crypto = require('crypto');

const apiKey    = 'YOUR_API_KEY';
const secretKey = 'YOUR_SECRET_KEY';

const timestamp = Date.now().toString();
const method    = 'POST';
const endPoint  = 'https://api.coin.z.com/private';
const path      = '/v1/changeOrder';
const reqBody   = JSON.stringify({
    orderId: 2,
    price: "1201",
    losscutPrice: "1000"
})

const text = timestamp + method + path + reqBody;
const sign = crypto.createHmac('sha256', secretKey).update(text).digest('hex');
const options = {
    "headers": {
        "API-KEY": apiKey,
        "API-TIMESTAMP": timestamp,
        "API-SIGN": sign
    }
};

axios.post(endPoint + path, reqBody, options)
  .then(function (response) {
    console.log(JSON.stringify(response.data, null, 2));
  })
  .catch(function (error) {
    console.log(error);
  });
```

> Response example:

```json
{
  "status": 0,
  "responsetime": "2019-03-19T01:07:24.557Z"
}
```

注文変更をします。 
対象: 現物取引、レバレッジ取引

##### Request
`POST /private/v1/changeOrder`

##### Parameters
* Parameter content type: `application/json`

Parameter | Type | Required | Available Values
--------- | ----------- | ----------- | -----------
`orderId`（注文ID） | number | Required | 
`price`（注文レート（円）） | string | Required | 
`losscutPrice`（ロスカットレート（円）） | string | Optional | 


<a id="cancel-order"></a>
## 注文キャンセル

> Request example:

```javascript
const axios  = require('axios');
const crypto = require('crypto');

const apiKey    = 'YOUR_API_KEY';
const secretKey = 'YOUR_SECRET_KEY';

const timestamp = Date.now().toString();
const method    = 'POST';
const endPoint  = 'https://api.coin.z.com/private';
const path      = '/v1/cancelOrder';
const reqBody   = JSON.stringify({
    orderId: 2
})

const text = timestamp + method + path + reqBody;
const sign = crypto.createHmac('sha256', secretKey).update(text).digest('hex');
const options = {
    "headers": {
        "API-KEY": apiKey,
        "API-TIMESTAMP": timestamp,
        "API-SIGN": sign
    }
};

axios.post(endPoint + path, reqBody, options)
  .then(function (response) {
    console.log(JSON.stringify(response.data, null, 2));
  })
  .catch(function (error) {
    console.log(error);
  });
```

> Response example:

```json
{
  "status": 0,
  "responsetime": "2019-03-19T01:07:24.557Z"
}
```

注文取消をします。 
対象: 現物取引、レバレッジ取引

##### Request
`POST /private/v1/cancelOrder`

##### Parameters
* Parameter content type: `application/json`

Parameter | Type | Required | Available Values
--------- | ----------- | ----------- | -----------
`orderId`（注文ID） | number | Required | 

<a id="cancel-orders"></a>
## 注文の複数キャンセル

> Request example:

```javascript
const axios  = require('axios');
const crypto = require('crypto');

const apiKey    = 'YOUR_API_KEY';
const secretKey = 'YOUR_SECRET_KEY';

const timestamp = Date.now().toString();
const method    = 'POST';
const endPoint  = 'https://api.coin.z.com/private';
const path      = '/v1/cancelOrders';
const reqBody   = JSON.stringify({
    orderIds: [1,2,3,4]
})

const text = timestamp + method + path + reqBody;
const sign = crypto.createHmac('sha256', secretKey).update(text).digest('hex');
const options = {
    "headers": {
        "API-KEY": apiKey,
        "API-TIMESTAMP": timestamp,
        "API-SIGN": sign
    }
};

axios.post(endPoint + path, reqBody, options)
  .then(function (response) {
    console.log(JSON.stringify(response.data, null, 2));
  })
  .catch(function (error) {
    console.log(error);
  });
```

> Response example:

```json
{
  "status": 0,
  "data": {
      "failed": [
        {
          "message_code": "ERR-5122",
          "message_string": "The request is invalid due to the status of the specified order.",
          "orderId": 1
        },
        {
          "message_code": "ERR-5122",
          "message_string": "The request is invalid due to the status of the specified order.",
          "orderId": 2
        }
      ],
      "success": [3,4]
  },
  "responsetime": "2019-03-19T01:07:24.557Z"
}
```

複数の注文を取消します。 
対象: 現物取引、レバレッジ取引

* 最大10件まで注文を取消することができます。

##### Request
`POST /private/v1/cancelOrders`

##### Parameters
* Parameter content type: `application/json`

Parameter | Type | Required | Available Values
--------- | ----------- | ----------- | -----------
`orderIds`（注文ID） | array | Required | 

##### Response

Property Name | Value | Description
--------- | ----------- | -----------
success | array | 取消受付に成功した注文ID
failed | array | 取消受付に失敗した注文IDと失敗情報

<a id="cancel-bulk-order"></a>
## 注文の一括キャンセル

> Request example:

```javascript
const axios  = require('axios');
const crypto = require('crypto');

const apiKey    = 'YOUR_API_KEY';
const secretKey = 'YOUR_SECRET_KEY';

const timestamp = Date.now().toString();
const method    = 'POST';
const endPoint  = 'https://api.coin.z.com/private';
const path      = '/v1/cancelBulkOrder';
const reqBody   = JSON.stringify({
    symbols: ["BTC","BTC_JPY"],
    side: "BUY",
    settleType: "OPEN",
    desc: true
})

const text = timestamp + method + path + reqBody;
const sign = crypto.createHmac('sha256', secretKey).update(text).digest('hex');
const options = {
    "headers": {
        "API-KEY": apiKey,
        "API-TIMESTAMP": timestamp,
        "API-SIGN": sign
    }
};

axios.post(endPoint + path, reqBody, options)
  .then(function (response) {
    console.log(JSON.stringify(response.data, null, 2));
  })
  .catch(function (error) {
    console.log(error);
  });
```

> Response example:

```json
{
  "status": 0,
  "data": [637000,637002],
  "responsetime": "2019-03-19T01:07:24.557Z"
}
```

一括で注文を取消します 
対象: 現物取引、レバレッジ取引

* 取消対象検索後に、最大10件まで注文を取消します。

##### Request
`POST /private/v1/cancelBulkOrder`

##### Parameters
* Parameter content type: `application/json`

Parameter | Type | Required | Available Values
--------- | ----------- | ----------- | -----------
`symbols`（銘柄名） | array | Required | 取扱銘柄は[こちら](#parameters-ref)
`side`（売買区分） | string | Optional | `BUY`（買） `SELL`（売） 指定時のみ、指定された売買区分の注文を取消対象にします。
`settleType`（決済区分） | string | Optional | `OPEN`（新規） `CLOSE`（決済） 指定時のみ、現物取引注文と指定された決済区分のレバレッジ取引注文を取消対象にします。
`desc`（決済区分） | bool | Optional | `true` の場合、注文日時が新しい注文から取消します。 `false` の場合、注文日時が古い注文から取消します。 指定がない場合はfalse

##### Response

Property Name | Value | Description
--------- | ----------- | -----------
data | array | 取消受付に成功した注文ID

<a id="close-order"></a>
## 決済注文

> Request example:

```javascript
const axios  = require('axios');
const crypto = require('crypto');

const apiKey    = 'YOUR_API_KEY';
const secretKey = 'YOUR_SECRET_KEY';

const timestamp = Date.now().toString();
const method    = 'POST';
const endPoint  = 'https://api.coin.z.com/private';
const path      = '/v1/closeOrder';
const reqBody   = JSON.stringify({
    "symbol": "BTC_JPY",
    "side": "BUY",
    "executionType": "LIMIT",
    "timeInForce": "FAS",
    "price": "85201",
    "settlePosition": [
        {
            "positionId": 1000342,
            "size": "3.44"
        }
    ]
})

const text = timestamp + method + path + reqBody;
const sign = crypto.createHmac('sha256', secretKey).update(text).digest('hex');
const options = {
    "headers": {
        "API-KEY": apiKey,
        "API-TIMESTAMP": timestamp,
        "API-SIGN": sign
    }
};

axios.post(endPoint + path, reqBody, options)
  .then(function (response) {
    console.log(JSON.stringify(response.data, null, 2));
  })
  .catch(function (error) {
    console.log(error);
  });
```

> Response example:

```json
{
  "status": 0,
  "data": "637000",
  "responsetime": "2019-03-19T01:07:24.557Z"
}
```

決済注文をします。 
対象: レバレッジ取引

##### Request
`POST /private/v1/closeOrder`

##### Parameters
* Parameter content type: `application/json`

Parameter | Type | Required | Available Values
--------- | ----------- | ----------- | -----------
`symbol`（銘柄名） | string | Required | レバレッジ取扱銘柄は[こちら](#Margin-parameters-ref)
`side`（売買区分） | string | Required | `BUY`（買） `SELL`（売）
`executionType`（注文タイプ） | string | Required | `MARKET`（成行） `LIMIT`（指値） `STOP`（逆指値）
`timeInForce`（執行数量条件） | string | Optional | `FAK`（注文が一部約定後に未執行数量が残った場合、その残数量を失効とする条件）   `FAS`（注文が一部約定後に未執行数量が残った場合、その残数量を有効とする条件） `FOK`（注文の全数量が直ちに約定しない場合、その全数量を失効とする条件） ((Post-onlyの場合は`SOK`（指値注文においてMakerにならない場合、その全数量を失効とする条件(Post-only)）) `LIMIT`（注文タイプ: 指値）の場合のみ設定可能  ) ※指定がない場合は成行と逆指値はFAK、指値はFASで注文されます。 SOKが指定可能な銘柄は[こちら](#sok-ref)の参照をお願いいたします。
`price`（注文レート（円）） | string | *executionTypeによる | `LIMIT`（注文タイプ: 指値） `STOP`（逆指値） の場合は必須、 `MARKET`（成行） の場合は不要。
`settlePosition.positionId`（建玉ID） | number | Required | 建玉は1つのみ指定可能。
`settlePosition.size`（取引数量） | string | Required | 建玉は1つのみ指定可能。
`clientOrderId`（顧客注文ID） | string | Optional | お客様が採番する注文の識別子。 ※36文字以内の半角英数字の組み合わせのみ使用可能です。 ※大文字と小文字は区別されます。 ※アカウント内で一意である必要があり、過去に使用したclientOrderIdは再利用できません。ただしエラーで拒否された注文のclientOrderIdは再利用できます。 ※使用済みのclientOrderIdを指定した場合はERR-915が返ってきます。ERR-915を受け取った場合は、同一のclientOrderIdで[注文情報取得](#orders)を照会すると元のリクエストの結果を確認できます。 ※UUIDを使用する場合はハイフンを除いた32文字（16進数）で指定してください。
cancelBefore | bool | Optional | `true`  の場合、すでに有効注文がある場合に、有効注文の取消と成行注文を同時に行います。  注文数量＞発注可能数量の場合：注文数量≦発注可能数量となるまで、古い有効注文から順に取り消されます。  注文数量≦発注可能数量の場合：有効注文の取消はされず、成行注文のみ実行されます。  指定がない場合は`false`   ※executionType:`MARKET`,timeInforce:`FAK`の場合に`true`を指定可能です。 ※複数の建玉に紐づいた注文については指定いただけません。

##### Response

Property Name | Value | Description
--------- | ----------- | -----------
data | string | 決済注文対象の`orderId`（注文ID）


<a id="close-bulk-order"></a>
## 一括決済注文

> Request example:

```javascript
const axios  = require('axios');
const crypto = require('crypto');

const apiKey    = 'YOUR_API_KEY';
const secretKey = 'YOUR_SECRET_KEY';

const timestamp = Date.now().toString();
const method    = 'POST';
const endPoint  = 'https://api.coin.z.com/private';
const path      = '/v1/closeBulkOrder';
const reqBody   = JSON.stringify({
    "symbol": "BTC_JPY",
    "side": "BUY",
    "executionType": "LIMIT",
    "timeInForce": "FAS",
    "price": "85201",
    "size": "3.44"
})

const text = timestamp + method + path + reqBody;
const sign = crypto.createHmac('sha256', secretKey).update(text).digest('hex');
const options = {
    "headers": {
        "API-KEY": apiKey,
        "API-TIMESTAMP": timestamp,
        "API-SIGN": sign
    }
};

axios.post(endPoint + path, reqBody, options)
  .then(function (response) {
    console.log(JSON.stringify(response.data, null, 2));
  })
  .catch(function (error) {
    console.log(error);
  });
```

> Response example:

```json
{
  "status": 0,
  "data": "637000",
  "responsetime": "2019-03-19T01:07:24.557Z"
}
```

一括決済注文をします。 
対象: レバレッジ取引

##### Request
`POST /private/v1/closeBulkOrder`

##### Parameters
* Parameter content type: `application/json`

Parameter | Type | Required | Available Values
--------- | ----------- | ----------- | -----------
`symbol`（銘柄名） | string | Required | レバレッジ取扱銘柄は[こちら](#Margin-parameters-ref)
`side`（売買区分） | string | Required | `BUY`（買） `SELL`（売）
`executionType`（注文タイプ） | string | Required | `MARKET`（成行） `LIMIT`（指値） `STOP`（逆指値）
`timeInForce`（執行数量条件） | string | Optional | `FAK`（注文が一部約定後に未執行数量が残った場合、その残数量を失効とする条件）   `FAS`（注文が一部約定後に未執行数量が残った場合、その残数量を有効とする条件） `FOK`（注文の全数量が直ちに約定しない場合、その全数量を失効とする条件） ((Post-onlyの場合は`SOK`（指値注文においてMakerにならない場合、その全数量を失効とする条件(Post-only)）) `LIMIT`（注文タイプ: 指値）の場合のみ設定可能  ) ※指定がない場合は成行と逆指値はFAK、指値はFASで注文されます。 SOKが指定可能な銘柄は[こちら](#sok-ref)の参照をお願いいたします。
`price`（注文レート（円）） | string | *executionTypeによる | `LIMIT`（注文タイプ: 指値） `STOP`（逆指値） の場合は必須、 `MARKET`（成行） の場合は不要。
`size`（取引数量） | string | Required | 
`clientOrderId`（顧客注文ID） | string | Optional | お客様が採番する注文の識別子。 ※36文字以内の半角英数字の組み合わせのみ使用可能です。 ※大文字と小文字は区別されます。 ※アカウント内で一意である必要があり、過去に使用したclientOrderIdは再利用できません。ただしエラーで拒否された注文のclientOrderIdは再利用できます。 ※使用済みのclientOrderIdを指定した場合はERR-915が返ってきます。ERR-915を受け取った場合は、同一のclientOrderIdで[注文情報取得](#orders)を照会すると元のリクエストの結果を確認できます。 ※UUIDを使用する場合はハイフンを除いた32文字（16進数）で指定してください。

##### Response

Property Name | Value | Description
--------- | ----------- | -----------
data | string | 一括決済注文対象の`orderId`（注文ID）


<a id="change-losscut-price"></a>
## ﾛｽｶｯﾄﾚｰﾄ変更

> Request example:

```javascript
const axios  = require('axios');
const crypto = require('crypto');

const apiKey    = 'YOUR_API_KEY';
const secretKey = 'YOUR_SECRET_KEY';

const timestamp = Date.now().toString();
const method    = 'POST';
const endPoint  = 'https://api.coin.z.com/private';
const path      = '/v1/changeLosscutPrice';
const reqBody   = JSON.stringify({
    "positionId": 305885,
    "losscutPrice": "750000"
})

const text = timestamp + method + path + reqBody;
const sign = crypto.createHmac('sha256', secretKey).update(text).digest('hex');
const options = {
    "headers": {
        "API-KEY": apiKey,
        "API-TIMESTAMP": timestamp,
        "API-SIGN": sign
    }
};

axios.post(endPoint + path, reqBody, options)
  .then(function (response) {
    console.log(JSON.stringify(response.data, null, 2));
  })
  .catch(function (error) {
    console.log(error);
  });
```

> Response example:

```json
{
  "status": 0,
  "responsetime": "2019-03-19T01:07:24.557Z"
}
```

建玉のロスカットレート変更をします。 
対象: レバレッジ取引

##### Request
`POST /private/v1/changeLosscutPrice`

##### Parameters
* Parameter content type: `application/json`

Parameter | Type | Required | Available Values
--------- | ----------- | ----------- | -----------
`positionId`（建玉ID） | number | Required | 
`losscutPrice`（ロスカットレート（円）） | string | Required | 


<a id="private-ws-api"></a>
# Private WebSocket API

* サーバーから1分に1回クライアントへpingを送り、3回連続でクライアントからの応答(pong)が無かった場合は、自動的に切断されます。
* アクセストークンを取得・延長・削除するために[専用のPrivate API](#ws-auth-post)を使用します。
* Private WebSocket API接続時 `Private WebSocket APIのエンドポイント + アクセストークン` で接続してください。 例: `wss://api.coin.z.com/ws/private/v1/xxxxxxxxxxxxxxxxxxxx`

<a id="ws-auth-post"></a>
## アクセストークンを取得

> Request example:

```javascript
const axios  = require('axios');
const crypto = require('crypto');

const apiKey    = 'YOUR_API_KEY';
const secretKey = 'YOUR_SECRET_KEY';

const timestamp = Date.now().toString();
const method    = 'POST';
const endPoint  = 'https://api.coin.z.com/private';
const path      = '/v1/ws-auth';
const reqBody   = JSON.stringify({})

const text = timestamp + method + path + reqBody;
const sign = crypto.createHmac('sha256', secretKey).update(text).digest('hex');
const options = {
    "headers": {
        "API-KEY": apiKey,
        "API-TIMESTAMP": timestamp,
        "API-SIGN": sign
    }
};

axios.post(endPoint + path, reqBody, options)
  .then(function (response) {
    console.log(JSON.stringify(response.data, null, 2));
  })
  .catch(function (error) {
    console.log(error);
  });
```

> Response example:

```json
{
  "status": 0,
  "data": "xxxxxxxxxxxxxxxxxxxx",
  "responsetime": "2019-03-19T02:15:06.102Z"
}
```

Private WebSocket API用のアクセストークンを取得します。

* 有効期限は60分です。
* アクセストークンは最大5個まで発行できます。
* 発行上限を超えた場合、有効期限の近いトークンから順に削除されます。
* 発行済みのAPIキーを使ってアクセストークンを取得する場合、【会員ページ】-【API】-【編集】-【APIキーの編集】画面で「約定情報通知(WebSocket)」、「注文情報通知(WebSocket)」、「ポジション情報通知(WebSocket)」または「ポジションサマリー情報通知(WebSocket)」にチェックを入れてから、アクセストークンを取得します。

※APIキーの権限を編集する前に取得したアクセストークンには、編集後の権限設定は反映されませんので、ご注意ください。


##### Request
`POST /private/v1/ws-auth`


##### Parameters
無し

##### Response

Property Name | Value | Description
--------- | ----------- | -----------
data | string | アクセストークン


<a id="ws-auth-put"></a>
## アクセストークンを延長

> Request example:

```javascript
const axios  = require('axios');
const crypto = require('crypto');

const apiKey    = 'YOUR_API_KEY';
const secretKey = 'YOUR_SECRET_KEY';

const timestamp = Date.now().toString();
const method    = 'PUT';
const endPoint  = 'https://api.coin.z.com/private';
const path      = '/v1/ws-auth';
const reqBody   = JSON.stringify({
    "token": "xxxxxxxxxxxxxxxxxxxx"
})

const text = timestamp + method + path;
const sign = crypto.createHmac('sha256', secretKey).update(text).digest('hex');
const options = {
    "headers": {
        "API-KEY": apiKey,
        "API-TIMESTAMP": timestamp,
        "API-SIGN": sign
    }
};


axios.put(endPoint + path, reqBody, options)
  .then(function (response) {
    console.log(JSON.stringify(response.data, null, 2));
  })
  .catch(function (error) {
    console.log(error);
  });
```

> Response example:

```json
{
  "status": 0,
  "responsetime": "2019-03-19T02:15:06.102Z"
}
```

Private WebSocket API用のアクセストークンを延長します。

* 延長前の残り有効期限に関わらず、新しい有効期限は60分となります。


##### Request
`PUT /private/v1/ws-auth`


##### Parameters
* Parameter type: JSON

Parameter | Type | Required | Available Values
--------- | ----------- | ----------- | -----------
token | string | Required | アクセストークン


<a id="ws-auth-delete"></a>
## アクセストークンを削除

> Request example:

```javascript
const axios  = require('axios');
const crypto = require('crypto');

const apiKey    = 'YOUR_API_KEY';
const secretKey = 'YOUR_SECRET_KEY';

const timestamp = Date.now().toString();
const method    = 'DELETE';
const endPoint  = 'https://api.coin.z.com/private';
const path      = '/v1/ws-auth';
const reqBody   = JSON.stringify({
    "token": "xxxxxxxxxxxxxxxxxxxx"
})

const text = timestamp + method + path;
const sign = crypto.createHmac('sha256', secretKey).update(text).digest('hex');
const options = {
    "headers": {
        "API-KEY": apiKey,
        "API-TIMESTAMP": timestamp,
        "API-SIGN": sign
    },
    "data": reqBody,
};


axios.delete(endPoint + path, options)
  .then(function (response) {
    console.log(JSON.stringify(response.data, null, 2));
  })
  .catch(function (error) {
    console.log(error);
  });
```

> Response example:

```json
{
  "status": 0,
  "responsetime": "2019-03-19T02:15:06.102Z"
}
```

Private WebSocket API用のアクセストークンを削除します。


##### Request
`DELETE /private/v1/ws-auth`


##### Parameters
* Parameter type: JSON

Parameter | Type | Required | Available Values
--------- | ----------- | ----------- | -----------
token | string | Required | アクセストークン


<a id="ws-execution-events"></a>
## 約定情報通知

> Request example:

```javascript
const WebSocket = require("ws");
const ws = new WebSocket("wss://api.coin.z.com/ws/private/v1/xxxxxxxxxxxxxxxxxxxx");

ws.on("open", () => {
    const message = JSON.stringify(
    {
        "command": "subscribe",
        "channel": "executionEvents"
    });
    ws.send(message);
});

ws.on("message", (data) => {
    console.log("WebSocket message: ", data);
});
```

> Response example:

```json
{
  "channel": "executionEvents",
  "orderId": 123456789,
  "clientOrderId": "abc123",
  "executionId": 72123911,
  "symbol": "BTC_JPY",
  "settleType": "OPEN",
  "executionType": "LIMIT",
  "side": "BUY",
  "executionPrice": "877404",
  "executionSize": "0.5",
  "positionId": 123456789,
  "orderTimestamp": "2019-03-19T02:15:06.081Z",
  "executionTimestamp": "2019-03-19T02:15:06.081Z",
  "lossGain": "0",
  "fee": "323",
  "orderPrice": "877200",
  "orderSize": "0.8",
  "orderExecutedSize": "0.7",
  "timeInForce": "FAS",
  "msgType": "ER"
}
```

最新の約定情報通知を受信します。 
`subscribe`（コマンド: 対象の配信を開始する）後、最新の約定情報通知が配信されます。


##### Parameters
* Parameter type: JSON

Property Name | Type | Required | Available Values
--------- | ----------- | ----------- | -----------
command | string | Required | `subscribe`（コマンド: 対象の配信を開始する） `unsubscribe`（対象の配信を止める）
channel | string | Required | `executionEvents`（チャネル名: 約定情報通知）


##### Response

Property Name | Value | Description
--------- | ----------- | -----------
channel | string | `executionEvents`（チャネル名: 約定情報通知）
orderId | number | 注文ID
clientOrderId | string | 顧客注文ID ※設定した場合のみ返却
executionId | number | 約定ID
symbol | string | 取扱銘柄は[こちら](#parameters-ref)
settleType | string | 決済区分: `OPEN`（決済区分: 新規） `CLOSE`（決済）
executionType | string | 注文タイプ: `MARKET`（注文タイプ: 成行） `LIMIT`（指値） `STOP`（逆指値）
side | string | 売買区分: `BUY`（売買区分: 買） `SELL`（売）
executionPrice | string | 約定レート
executionSize | string | 約定数量
positionId | number | 建玉ID ※レバレッジの場合のみ
orderTimestamp | string | 注文日時
executionTimestamp | string | 約定日時
lossGain | string | 決済損益
fee | string | 取引手数料 ※Takerの場合はプラスの値、Makerの場合はマイナスの値が返ってきます。
orderPrice | string | 注文価格 (`MARKET`（注文タイプ: 成行）注文の場合、本項目は含まれません)
orderSize | string | 注文数量
orderExecutedSize | string | 約定済み数量
timeInForce | string | 執行数量条件: `FAK`（執行数量条件: 注文が一部約定後に未執行数量が残った場合、その残数量を失効とする条件） `FAS`（注文が一部約定後に未執行数量が残った場合、その残数量を有効とする条件） `FOK`（注文の全数量が直ちに約定しない場合、その全数量を失効とする条件） (Post-onlyの場合は`SOK`（指値注文においてMakerにならない場合、その全数量を失効とする条件(Post-only)）)
msgType | string | メッセージタイプ: `ER`（メッセージタイプ: 約定）

* `unsubscribe`（コマンド: 対象の配信を止める）でリクエストした場合のResponseはありません。


<a id="ws-order-events"></a>
## 注文情報通知

> Request example:

```javascript
const WebSocket = require("ws");
const ws = new WebSocket("wss://api.coin.z.com/ws/private/v1/xxxxxxxxxxxxxxxxxxxx");

ws.on("open", () => {
    const message = JSON.stringify(
    {
        "command": "subscribe",
        "channel": "orderEvents"
    });
    ws.send(message);
});

ws.on("message", (data) => {
    console.log("WebSocket message: ", data);
});
```

> Response example:

```json
{
  "channel": "orderEvents",
  "orderId": 123456789,
  "clientOrderId": "abc123",
  "symbol": "BTC_JPY",
  "settleType": "OPEN",
  "executionType": "LIMIT",
  "side": "BUY",
  "orderStatus": "CANCELED",
  "cancelType": "USER",
  "orderTimestamp": "2019-03-19T02:15:06.081Z",
  "orderPrice": "876045",
  "orderSize": "0.8",
  "orderExecutedSize": "0",
  "losscutPrice": "0",
  "timeInForce": "FAS",
  "msgType": "NOR"
}
```

最新の注文情報通知を受信します。 
`subscribe`（コマンド: 対象の配信を開始する）後、最新の注文情報通知が配信されます。


##### Parameters
* Parameter type: JSON

Property Name | Type | Required | Available Values
--------- | ----------- | ----------- | -----------
command | string | Required | `subscribe`（コマンド: 対象の配信を開始する） `unsubscribe`（対象の配信を止める）
channel | string | Required | `orderEvents`（チャネル名: 注文情報通知）


##### Response

Property Name | Value | Description
--------- | ----------- | -----------
channel | string | `orderEvents`（チャネル名: 注文情報通知）
orderId | number | 注文ID
clientOrderId | string | 顧客注文ID ※設定した場合のみ返却
symbol | string | 取扱銘柄は[こちら](#parameters-ref)
settleType | string | 決済区分: `OPEN`（決済区分: 新規） `CLOSE`（決済） `LOSS_CUT`（ロスカット）
executionType | string | 注文タイプ: `MARKET`（注文タイプ: 成行） `LIMIT`（指値） `STOP`（逆指値）
side | string | 売買区分: `BUY`（売買区分: 買） `SELL`（売）
orderStatus | string | 注文ステータス: `WAITING`（注文ステータス: 待機中 ※逆指値注文の場合は有効） `ORDERED`（有効または一部約定 ※逆指値注文は一部約定） `CANCELED`（取消済） `EXPIRED`（失効）  ※逆指値注文の場合は`WAITING`が有効
cancelType | string | 取消区分: `USER`（取消区分: お客さまによる注文の取消） `POSITION_LOSSCUT`（建玉のロスカットに伴う決済注文の取消） `INSUFFICIENT_BALANCE`（取引余力の不足による注文の取消（現物取引）） `INSUFFICIENT_MARGIN`（取引余力の不足による注文の取消（レバレッジ取引）） `ACCOUNT_LOSSCUT`（口座残高不足によるロスカットに伴う決済注文の取消） `MARGIN_CALL`（追証による注文の取消） `MARGIN_CALL_LOSSCUT`（追証のロスカットに伴う決済注文の取消） `EXPIRED_FAK`（FAKによる失効） `EXPIRED_FOK`（FOKによる失効） `EXPIRED_SOK`（SOKによる失効） `EXPIRED_SELFTRADE`（対当売買に該当する可能性があるため失効） `COLLATERAL_LIQUIDATION`（代用暗号資産の強制売却により取消された注文） `CLOSED_ORDER`（対象注文が既にクローズ済みのため注文変更の失敗）  ※orderStatusが`CANCELED`または`EXPIRED`の場合のみ返ってきます。  取消区分: `SOK_TAKER`（Takerのため注文変更の失敗） `PRICE_LIMIT`（価格制限のため注文変更の失敗）  ※orderStatusが`ORDERED`の場合のみ返ってきます。   
orderTimestamp | string | 注文日時
orderPrice | string | 注文価格 (`MARKET`（注文タイプ: 成行）注文の場合、本項目は含まれません)
orderSize | string | 注文数量
orderExecutedSize | string | 約定済み数量
losscutPrice | string | ロスカットレート (現物取引や未設定の場合は"0")
timeInForce | string | 執行数量条件: `FAK`（執行数量条件: 注文が一部約定後に未執行数量が残った場合、その残数量を失効とする条件） `FAS`（注文が一部約定後に未執行数量が残った場合、その残数量を有効とする条件） `FOK`（注文の全数量が直ちに約定しない場合、その全数量を失効とする条件） (Post-onlyの場合は`SOK`（指値注文においてMakerにならない場合、その全数量を失効とする条件(Post-only)）)
msgType | string | メッセージタイプ: `NOR`（メッセージタイプ: 新規注文） `ROR`（注文変更） `COR`（注文取消） `ER`（失効）

* `unsubscribe`（コマンド: 対象の配信を止める）でリクエストした場合のResponseはありません。


<a id="ws-position-events"></a>
## ポジション情報通知

> Request example:

```javascript
const WebSocket = require("ws");
const ws = new WebSocket("wss://api.coin.z.com/ws/private/v1/xxxxxxxxxxxxxxxxxxxx");

ws.on("open", () => {
    const message = JSON.stringify(
    {
        "command": "subscribe",
        "channel": "positionEvents"
    });
    ws.send(message);
});

ws.on("message", (data) => {
    console.log("WebSocket message: ", data);
});
```

> Response example:

```json
{
  "channel": "positionEvents",
  "positionId": 1234567,
  "symbol": "BTC_JPY",
  "side": "BUY",
  "size": "0.22",
  "orderdSize": "0",
  "price": "876045",
  "lossGain": "14",
  "leverage": "4",
  "losscutPrice": "766540",
  "timestamp": "2019-03-19T02:15:06.094Z",
  "msgType": "OPR"
}
```

最新のポジション情報通知を受信します。 
`subscribe`（コマンド: 対象の配信を開始する）後、最新のポジション情報通知が配信されます。


##### Parameters
* Parameter type: JSON

Property Name | Type | Required | Available Values
--------- | ----------- | ----------- | -----------
command | string | Required | `subscribe`（コマンド: 対象の配信を開始する） `unsubscribe`（対象の配信を止める）
channel | string | Required | `positionEvents`（チャネル名: ポジション情報通知）


##### Response

Property Name | Value | Description
--------- | ----------- | -----------
channel | string | `positionEvents`（チャネル名: ポジション情報通知）
positionId | number | 建玉ID
symbol | string | レバレッジ取扱銘柄は[こちら](#Margin-parameters-ref)
side | string | 売買区分: `BUY`（売買区分: 買） `SELL`（売）
size | string | 建玉数量
orderdSize | string | 発注中数量
price | string | 建玉レート
lossGain | string | 評価損益
leverage | string | レバレッジ
losscutPrice | string | ロスカットレート
timestamp | string | 約定日時
msgType | string | メッセージタイプ: `OPR`（メッセージタイプ: ポジションオープン） `UPR`（ポジション部分決済） `ULR`（ロスカットレート変更） `CPR`（ポジションクローズ）

* `unsubscribe`（コマンド: 対象の配信を止める）でリクエストした場合のResponseはありません。


<a id="ws-position-summary-events"></a>
## ポジションサマリー情報通知

> Request example:

```javascript
const WebSocket = require("ws");
const ws = new WebSocket("wss://api.coin.z.com/ws/private/v1/xxxxxxxxxxxxxxxxxxxx");

ws.on("open", () => {
    const message = JSON.stringify(
    {
        "command": "subscribe",
        "channel": "positionSummaryEvents"
    });
    ws.send(message);
});

ws.on("message", (data) => {
    console.log("WebSocket message: ", data);
});
```

> Response example:

```json
{
  "channel":"positionSummaryEvents",
  "symbol":"BTC_JPY",
  "side":"BUY",
  "averagePositionRate":"1014484",
  "positionLossGain":"18",
  "sumOrderQuantity":"0.01",
  "sumPositionQuantity":"0.03",
  "timestamp":"2020-06-24T09:53:19.702Z",
  "msgType":"UPDATE"
}
```

最新のポジションサマリー情報通知を受信します。 
`subscribe`（コマンド: 対象の配信を開始する）後、最新のポジションサマリー情報通知が配信されます。


##### Parameters
* Parameter type: JSON

Property Name | Type | Required | Available Values
--------- | ----------- | ----------- | -----------
command | string | Required | `subscribe`（コマンド: 対象の配信を開始する） `unsubscribe`（対象の配信を止める）
channel | string | Required | `positionSummaryEvents`（チャネル名: ポジションサマリー情報通知）
option | string | Optional | `PERIODIC`（オプション: 定期的にデータを送信する） ※optionが指定された場合、5秒ごとにデータが送信されます。 ※複数回subscribeした場合は後にsubscribeしたものが有効となります。


#### Response

Property Name | Value | Description
--------- | ----------- | -----------
channel | string | `positionSummaryEvents`（チャネル名: ポジションサマリー情報通知）
symbol | string | レバレッジ取扱銘柄は[こちら](#Margin-parameters-ref)
side | string | 売買区分: `BUY`（売買区分: 買） `SELL`（売）
averagePositionRate | string | 平均建玉レート
positionLossGain | string | 評価損益
sumOrderQuantity | string | 発注中数量
sumPositionQuantity | string | 建玉数量
timestamp | string | 配信日時
msgType | string | メッセージタイプ: `INIT`（メッセージタイプ: 初期配信） `UPDATE`（更新配信） `PERIODIC`（定期配信）

* `unsubscribe`（コマンド: 対象の配信を止める）でリクエストした場合のResponseはありません。


<a id="historical_data"></a>
# ヒストリカルデータ
取引所における全ての取引履歴について、[こちら](https://api.coin.z.com/data/trades/)からCSVファイルでダウンロードいただけます。


<a id="references"></a>
# リファレンス

APIのパラメータやレスポンスにより返ってくる各種コードについて説明します。

<a id="parameters-ref"></a>
## パラメータ

パラメータの値とその内容について説明します。

###  
symbol: 取扱銘柄名

Value | Description | Release date
----- | ----- | -----
BTC | ビットコイン（現物取引） | 2018/09/05
ETH | イーサリアム（現物取引） | 2019/01/30
BCH | ビットコインキャッシュ（現物取引） | 2019/01/30
LTC | ライトコイン（現物取引） | 2019/01/30
XRP | エックスアールピー（現物取引） | 2019/01/30
XLM | ステラルーメン（現物取引） | 2021/08/18
DOT | ポルカドット（現物取引） | 2022/06/08
ATOM | コスモス（現物取引） | 2022/06/08
FCR     | FCRコイン（現物取引）     | 2022/05/18
ADA | カルダノ（現物取引） | 2022/07/13
LINK | チェーンリンク（現物取引） | 2022/07/13
DOGE | ドージコイン（現物取引） | 2023/08/05
SOL | ソラナ（現物取引） | 2023/08/05
ASTR | アスター（現物取引） | 2023/03/22
NAC | NOT A HOTEL COIN（現物取引） | 2024/12/13
SUI | スイ（現物取引） | 2026/01/17
WILD | ワイルダーワールド（現物取引） | 2026/03/21
MNT | マントル（現物取引） | 2026/10/31
BNB | ビルドアンドビルド（現物取引） | 2026/10/31

<a id="Margin-parameters-ref"></a>
###  

Value | Description | Release date
----- | ----- | -----
BTC_JPY | ビットコイン/円（レバレッジ取引） | 2018/09/05
ETH_JPY | イーサリアム/円（レバレッジ取引） | 2019/01/30
BCH_JPY | ビットコインキャッシュ/円（レバレッジ取引） | 2019/01/30
LTC_JPY | ライトコイン/円（レバレッジ取引） | 2019/01/30
XRP_JPY | エックスアールピー/円（レバレッジ取引） | 2019/01/30
DOT_JPY | ポルカドット/円（レバレッジ取引） | 2024/04/13
ATOM_JPY | コスモス/円（レバレッジ取引） | 2024/04/13
ADA_JPY | カルダノ/円（レバレッジ取引） | 2024/04/13
LINK_JPY | チェーンリンク/円（レバレッジ取引） | 2024/04/13
DOGE_JPY | ドージコイン/円（レバレッジ取引） | 2024/04/13
SOL_JPY | ソラナ/円（レバレッジ取引） | 2024/04/13
SUI_JPY | スイ/円（レバレッジ取引） | 2026/01/17
MNT_JPY | マントル/円（レバレッジ取引） | 2026/10/31
BNB_JPY | ビルドアンドビルド/円（レバレッジ取引） | 2026/10/31

<a id="Asset-parameters-ref"></a>
###  
symbol: 資産残高銘柄

Value | Description 
----- | ----- | -----
JPY | 日本円 
BTC | ビットコイン（販売所） 
ETH | イーサリアム（販売所） 
BCH | ビットコインキャッシュ（販売所） 
LTC | ライトコイン（販売所） 
XRP | エックスアールピー（販売所） 
XLM | ステラルーメン（販売所） 
OMG | オーエムジー 
DOT | ポルカドット（販売所） 
ATOM | コスモス（販売所） 
FCR     | FCRコイン（取引所）     
ADA | カルダノ（販売所） 
LINK | チェーンリンク（販売所） 
DOGE | ドージコイン（販売所）
SOL | ソラナ（販売所）
ASTR | アスター（取引所）
NAC     | NOT A HOTEL COIN（取引所）
AVAX | アバランチ（販売所）
WILD | ワイルダーワールド（取引所）
SUI | スイ（販売所）
ZPG | ジパングコイン（販売所）
ZPGAG | ジパングコインシルバー（販売所）
ZPGPT | ジパングコインプラチナ（販売所）
MNT | マントル（販売所）
BNB | ビルドアンドビルド（販売所）

#### side: 売買区分

Value | Description
----- | -----
BUY | 買
SELL | 売

#### executionType: 注文タイプ

Value | Description
----- | -----
MARKET | 成行
LIMIT  | 指値
STOP  | 逆指値

#### timeInForce: 執行数量条件

Value | Description
----- | -----
FAK | 注文が一部約定後に未執行数量が残った場合、その残数量を失効とする条件
FAS | 注文が一部約定後に未執行数量が残った場合、その残数量を有効とする条件
FOK | 注文の全数量が直ちに約定しない場合、その全数量を失効とする条件
SOK | 指値注文においてMakerにならない場合、その全数量を失効とする条件(Post-only)

<a id="sok-ref"></a>
## timeInForceパラメータにSOK(Post-only)が指定可能な銘柄
Service | Description     
----- |-----------
取引所現物 | 全銘柄指定可能       
取引所レバレッジ | 全銘柄指定可能

<a id="http-status-code"></a>
## HTTPステータスコード
Status Code | Description
------------- | -----
200 | 処理が正常終了した場合に返ってくるコードです。
404 | `URLが不正な場合などに返ってくるコードです。`（例: https://api.coin.z.com/publlic/v1/status などprivateやpublicの部分が不正な場合に発生します。）
503 | メンテナンス時にWebSocket APIを呼び出した場合に返ってくるコードです。

<a id="status-code"></a>
## ステータスコード

Status Code | Description
------------| -----------------------------
0           | 処理が正常終了した場合に返ってくるコードです。

<a id="error-code"></a>
## エラーコード

Error Code | Description
---------- | -----
ERR-70   | 決済注文において、指定された建玉の売買区分が誤っている場合に返ってきます。
ERR-189  | 決済注文において、決済可能保有数量を超えての数量の注文の場合に返ってきます。
ERR-200  | すでに有効注文があり、注文数量が発注可能な数量を超えている場合に返ってきます。決済注文を行いたい場合は、注文数量を変更するか、有効注文を[取消](#cancel-order)したうえで、再度[注文](#close-order)をしてください。
ERR-201  | 注文時に取引余力が不足している場合に返ってきます。
ERR-208  | 注文可能な保有数量が不足している場合に返ってきます。保有数量、有効注文を確認してください。暗号資産の送付依頼において、送付数量と手数料の合計が当該暗号資産の預かり残高を超える場合にも返ってきます。
ERR-254  | 指定された建玉が存在しない場合に返ってきます。
ERR-422  | 一括決済注文において、建玉が存在しない場合に返ってきます。銘柄または売買区分が誤っていないか確認してください。
ERR-423  | 一括決済注文において、注文数量が決済可能な建玉の合計数量を超えている場合に返ってきます。
ERR-430  | 約定情報取得において、orderId/executionIdの設定が不正な場合に返ってきます。
ERR-554  | サーバーが利用不可能な状態の場合に返ってきます。
ERR-626  | サーバーへのアクセスが集中している場合に返ってきます。しばらく時間をおいてから再度お試しください。
ERR-635  | 有効注文の件数が上限に達している場合に返ってきます。新規の注文をするためには、有効注文を[取消](#cancel-order)したうえで、再度[注文](#order)をしてください。
ERR-682  | 追加証拠金が発生しているため、ご指定の操作が実行できない場合に返ってきます。
ERR-683  | 追加証拠金の処理が実行中のため、ご指定の操作が実行できない場合に返ってきます。
ERR-754  | 振替可能額よりも大きい値を振り替えようとした場合に返ってきます。
ERR-846  | fromTimestampとtoTimestampの差が最大30分よりも大きい場合に返ってきます。
ERR-913  | 代用数量の全量を売却するか、売却後の代用数量が最小代用数量以上となるように売却してください。
ERR-915  | 注文・決済注文・一括決済注文・暗号資産の送付依頼において、指定されたclientOrderIdが既に使用されている場合に返ってきます。
ERR-5003 | API呼出上限を越えた場合に返ってきます。暗号資産の送付依頼では、同じ銘柄の依頼が1秒以内に重なった場合にも返ってきます。
ERR-5004 | 暗号資産の送付依頼・送付取消依頼において、実行結果を確認できなかった場合に返ってきます。応答がタイムアウトした場合も、同じ方法で結果を確認してください。依頼が受け付けられている場合があるため、[送付ステータスの取得](#withdrawalStatus)にclientOrderId（取消依頼はorderId）を指定して結果を確認してください。取消依頼の場合は、同APIのcancelableとstatusで取消依頼の受付有無を確認してから再度依頼してください。
ERR-5007 | リクエストヘッダーにAPI-TIMESTAMPが設定されていない場合、またはAPI-TIMESTAMPに設定されている値が数値でない場合に返されます。 リクエストヘッダーにAPI-TIMESTAMPが設定されていること、設定されている値がミリ秒単位のUNIX時間を表す数値であることをご確認ください。
ERR-5008 | リクエストヘッダーに設定されているAPI-TIMESTAMPが公開APIのシステム時刻より遅い場合に返ってきます。その場合、システム時間の更新をお試しください。
ERR-5009 | リクエストヘッダーに設定されているAPI-TIMESTAMPが公開APIのシステム時刻より早い場合に返ってきます。その場合、システム時間の更新をお試しください。
ERR-5010 | リクエストヘッダーに指定されているAPI-SIGN（Signature）に不正がある場合に返ってきます。[認証](#authentication)情報についてご確認ください。
ERR-5011 | リクエストヘッダーにAPI-KEYが設定されていない場合に返ってきます。[認証](#authentication)情報についてご確認ください。
ERR-5012 | API-KEYが認証エラーの場合などに返ってきます。
ERR-5014 | お客様のご確認、ご同意が必要な処理を実行する際に、お客様に未確認・未同意事項がある場合に返ってきます。
ERR-5016 | 履歴取得処理がタイムアウトした際に返ってきます。再実行いただくか、期間を狭めてお試しください。
ERR-5106 | パラメーターが不正な場合に返ってきます。
ERR-5111 | リクエストボディに指定されているtimeInForceが誤っている場合に返ってきます。指定可能な値に関しては[注文](#order)、[決済注文](#close-order)または[一括決済注文](#close-bulk-order)にてパラメーターのtimeInForceをご確認ください。
ERR-5114 | 小数点以下の桁数が有効桁数を超えている場合に返ってきます。取引ルールの最小注文単位をご確認ください。取引ルールは[こちら](https://coin.z.com/jp/corp/product/info/exchange/#ank-02)よりご確認いただけます。
ERR-5118 | リクエストボディにlosscutPriceを指定できない場合に返ってきます。
ERR-5121 | 注文時の価格が低すぎて注文できない状態の場合に返ってきます。
ERR-5122 | 指定された注文がすでに変更中、取消中、取消済、全量約定、失効のいずれかの状態であるため、注文の変更や取消ができない場合に返ってきます。
ERR-5123 | 指定された注文番号が存在しない場合に返ってきます。
ERR-5125 | APIの取引規制がかかっている場合に返ってきます。
ERR-5126 | 1回あたりの最大注文数量を超えている場合または最小注文数量を下回っている場合に返ってきます。[こちら](https://coin.z.com/jp/corp/product/info/exchange/#ank-02)より取引ルールをご確認ください。
ERR-5127 | お客様に取引規制がかかっている場合に返ってきます。
ERR-5129 | 逆指値注文で、即座に約定される価格が指定されている場合に返ってきます。（逆指値注文では、即座に約定される価格での注文はできません）
ERR-5130 | 注文情報取得・約定情報取得・注文の複数キャンセルにおいて、指定したorderIdが指定可能な件数を超えている場合に返ってきます。
ERR-5132 | 約定情報取得において、指定したexecutionIdが指定可能な件数を超えている場合に返ってきます。
ERR-5133 | 振替規制中のため口座振替が行えない場合に返ってきます。
ERR-5135 | 外国為替FX用口座が開設されていない場合に口座振替を行うと返ってきます。外国為替FX用口座開設後再度お試しください。
ERR-5138 | 暗号資産の送付依頼において、指定した宛先が利用できない場合（存在しない宛先、他のアカウントの宛先、送付する銘柄と異なる宛先など）に返ってきます。[登録済み宛先の取得](#withdrawalAddresses)で取得した宛先をご指定ください。
ERR-5139 | 暗号資産の送付依頼において、「宛先リスト審査完了のお知らせ」メールをお送りした時点から24時間が経過していない場合に返ってきます。送付できるようになる日時は[登録済み宛先の取得](#withdrawalAddresses)のsendableFromでご確認ください。
ERR-5140 | 暗号資産の送付依頼において、預入アドレスが発行されていない場合に返ってきます。会員ページで預入アドレスを発行してください。
ERR-5141 | 暗号資産の送付依頼において、口座開設から1か月以内で、申告いただいた金融資産の区分に応じた上限を超える場合に返ってきます。
ERR-5142 | 暗号資産の送付依頼において、暗号資産（API経由）の手数料の換算レートを取得できない場合、または審査の要否の判定・ペイジー制限の判定に用いる送付銘柄のレートが0の場合に返ってきます。
ERR-5144 | 暗号資産の送付取消依頼において、指定した送付依頼が取消できない場合に返ってきます。審査済み・送信済み・取消済み・エラーになった送付依頼、宛先区分がSYGNA_VASP以外の送付依頼、取消依頼済みの送付依頼のほか、存在しない注文ID・他のアカウントの注文を指定した場合も返ってきます。
ERR-5145 | 注文情報取得・約定情報取得において、指定したclientOrderIdが指定可能な件数を超えている場合に返ってきます。
ERR-5146 | 暗号資産の送付依頼において、指定した銘柄の送付が停止されている場合や、お客さまの口座で指定した銘柄の送付が制限されている場合に返ってきます。宛先がGMOコイン口座の場合は、銘柄の預入が停止されている場合にも返ってきます。
ERR-5147 | 暗号資産の送付依頼において、取引情報が未登録または審査中の場合に返ってきます。
ERR-5148 | 暗号資産の送付依頼において、本人確認書類の有効期限が切れている場合に返ってきます。
ERR-5149 | 暗号資産の送付依頼において、送付機能を利用できない口座の場合や、送付元の口座が閉鎖されている場合に返ってきます。
ERR-5150 | 暗号資産の送付依頼において、直近のペイジー入金により送付が制限されている場合に返ってきます。
ERR-5151 | 暗号資産の送付依頼において、取引規制中の口座の場合（日本円の残高がマイナスの場合を含む）に返ってきます。
ERR-5152 | 暗号資産の送付依頼において、宛先のGMOコイン口座が閉鎖されているなど、送付できない状態の場合に返ってきます。
ERR-5153 | 暗号資産の送付依頼において、送付目的（purposeCode・purposeText・tradeDetails）の指定が誤っている場合（未指定、指定できない送付目的コード、purposeText・tradeDetailsの要否が合わない場合など）に返ってきます。宛先区分がINTERNAL（GMOコイン口座宛て）の場合は、これらを指定すると返ってきます。
ERR-5154 | 暗号資産の送付依頼において、tradeDetailsの所在地（存在しない国・地域コード、regionCode・cityNameの指定の誤り、所在地の未指定）または商品名（itemName）の指定が誤っている場合に返ってきます。送付できない国・地域を指定した場合はERR-5154にならず、受け付けたあと、送付目的の審査で不合格（REJECTED）になります。
ERR-5155 | 暗号資産の送付依頼において、送付数量が最小送付数量未満の場合に返ってきます。GMOコイン口座宛ての送付（内部送付）には最小送付数量は適用されません。DOT以外で保有数量の全額を指定した場合は対象外です（手数料分の残高が足りずERR-208になります）。
ERR-5156 | 暗号資産の送付依頼において、宛先がGMOコイン口座で、審査が必要な送付のため受け付けられない場合に返ってきます。
ERR-5157 | 暗号資産の送付依頼において、1日の送付上限を超えている場合に返ってきます。
ERR-5158 | 暗号資産の送付ステータスの取得において、指定した送付依頼が見つからない場合（存在しない注文ID、他のアカウントの注文、送付以外の注文を指定した場合）に返ってきます。
ERR-5201 | 定期メンテナンス時にPublic/Private APIを呼び出した場合に返ってきます。暗号資産の送付に関するAPIは、取引所ステータスがMAINTENANCEの間は受け付けられ、全体の定期メンテナンス中のみ受け付けられず、このエラーが返ってきます。
ERR-5202 | 緊急メンテナンス時にPublic/Private APIを呼び出した場合に返ってきます。
ERR-5203 | 取引所プレオープン中に注文および注文変更した場合に返ってきます。 ※ 暗号資産の送付に関するAPI（送付依頼・送付取消依頼・送付ステータスの取得・登録済み宛先の取得・送付目的／国・地域／州・都道府県の一覧取得）は、[取引所ステータス](#status)がプレオープン（PREOPEN）またはメンテナンス（MAINTENANCE）の間も受け付けられ、このエラーは返ってきません（全体の定期メンテナンス中は受け付けられず、ERR-5201が返ってきます）。
ERR-5204 | `リクエスト時に各APIのURLが不正な場合に返ってきます。`（例: https://api.coin.z.com/public/public/v1/status などprivateやpublicの部分以降のURLが不正な場合に発生します。）
ERR-5206 | 注文変更を実行時に注文毎の変更可能回数が上限に達している場合に返ってきます。上限に達して更に注文変更を行いたい場合は、1度[注文キャンセル](#cancel-order)をしてから新規に[注文](#order)をしていただくようにお願い致します。
ERR-5207 | リクエストボディに指定されているsymbol、intervalまたはdateが不正な場合に返ってきます。
ERR-5208 | 約定情報取得において、orderId/executionIdが両方設定された場合に返ってきます。
ERR-5212 | 注文情報取得・約定情報取得・暗号資産の送付ステータスの取得において、orderIdとclientOrderIdを同時に指定した場合に返ってきます。
ERR-5230 | 約定情報取得において、executionIdとclientOrderIdを同時に指定した場合に返ってきます。

<a id="feedback"></a>
# フィードバック
APIについてご要望をお聞かせください。いただいたご要望につきましては、開発チームにて精査のうえ、順次開発、リリースしております。 APIについてのご要望は、[こちら](https://support.coin.z.com/hc/ja/requests/new?ticket_form_id=360002450434)よりご連絡ください。

※APIに関するご質問などは、[こちら](https://support.coin.z.com/hc/ja/requests/new)よりお問い合わせください。内容によってはお時間をいただく場合がございます。あらかじめご了承ください。


<a id="changelogs"></a>
# 更新履歴

## 2026

###   2026-11-14 New

[登録済み宛先の取得](#withdrawalAddresses)を追加しました
[送付目的一覧の取得](#withdrawalPurposes)を追加しました
[国・地域一覧の取得](#withdrawalNations)を追加しました
[州・都道府県一覧の取得](#withdrawalProvinces)を追加しました
[暗号資産の送付依頼](#withdrawal)を追加しました
[暗号資産の送付ステータスの取得](#withdrawalStatus)を追加しました
[暗号資産の送付取消依頼](#cancelWithdrawal)を追加しました

[制限](#restrictions)

* **暗号資産の送付に関するAPIは、APIごとに権限を付与したAPIキーでのみ呼び出せる旨を追加しました。**

[APIキー作成](#api-key)

* **暗号資産の送付に関するAPIの権限と、権限を付与したAPIキーの注意事項を追加しました。**

[エラーコード](#error-code)

* **エラーコードERR-5004、ERR-5138〜ERR-5142、ERR-5144、ERR-5146〜ERR-5158を追加しました。**
* **エラーコードERR-208、ERR-915、ERR-5003の説明に暗号資産の送付依頼を、ERR-5212の説明に暗号資産の送付ステータスの取得を追加しました。**
* **エラーコードERR-5201、ERR-5203の説明に、暗号資産の送付に関するAPIは取引所ステータスがプレオープン・メンテナンス中も受け付けられる旨を追加しました。**

###   2026-11-07

[資産残高を取得](#assets)

* **Responseの `symbol`（銘柄名）から **`FIL`（ファイルコイン（販売所）） `SAND`（ザ・サンドボックス（販売所）） `CHZ`（チリーズ（販売所））** を削除しました。**

###   2026-10-31

マントル（現物/レバレッジ）、ビルドアンドビルド（現物/レバレッジ）を追加しました。

* **ParameterとResponseの `symbol`（銘柄名）に **`MNT`（マントル（現物取引）） `MNT_JPY`（マントル/円（レバレッジ取引）） `BNB`（ビルドアンドビルド（現物取引）） `BNB_JPY`（ビルドアンドビルド/円（レバレッジ取引））**を追加しました。**

[資産残高を取得](#assets)

* **Responseの `symbol`（銘柄名）に **`MNT`（マントル（現物取引）） `BNB`（ビルドアンドビルド（現物取引））** を追加しました。**

###   2026-10-10

[注文](#order)

* **Parameterに顧客注文ID（clientOrderId）を追加しました。**

[決済注文](#close-order)

* **Parameterに顧客注文ID（clientOrderId）を追加しました。**

[一括決済注文](#close-bulk-order)

* **Parameterに顧客注文ID（clientOrderId）を追加しました。**

[注文情報取得](#orders)

* **ParameterとResponseに顧客注文ID（clientOrderId）を追加しました。**

[約定情報取得](#executions)

* **ParameterとResponseに顧客注文ID（clientOrderId）を追加しました。**

[有効注文一覧](#active-orders)

* **Responseに顧客注文ID（clientOrderId）を追加しました。**

[最新の約定一覧](#latest-executions)

* **Responseに顧客注文ID（clientOrderId）を追加しました。**

[約定情報通知](#ws-execution-events)

* **Responseに顧客注文ID（clientOrderId）を追加しました。**

[注文情報通知](#ws-order-events)

* **Responseに顧客注文ID（clientOrderId）を追加しました。**

[エラーコード](#error-code)

* **エラーコードERR-915、ERR-5130、ERR-5132、ERR-5145、ERR-5212、ERR-5230を追加しました。**

###   2026-10-03

[制限](#restrictions)

* **Private APIの制限を変更**
    * Tier3（先週の取引高が20億円以上、GET・POSTとも1秒間に50回）を追加し、Tier2が適用される取引高の条件を10億円以上20億円未満に変更しました。

###   2026-08-29

[取引所のレバレッジ手数料・取引手数料返金履歴の取得](#exchangeFeeHistory)を追加しました

###   2026-07-25

[注文情報取得](#orders)

* **Responseの `cancelType`（取消区分）に **`COLLATERAL_LIQUIDATION`（代用暗号資産の強制売却により取消された注文）** を追加しました。**

[注文情報通知](#ws-order-events)

* **Responseの `cancelType`（取消区分）に **`COLLATERAL_LIQUIDATION`（代用暗号資産の強制売却により取消された注文）** を追加しました。**

[余力情報を取得](#margin)

* **availableAmountが代用暗号資産評価額を含むレバレッジ取引用の取引余力であることを明記しました。**
* **ResponseにavailableAmountForSpotを追加しました。**
* **ResponseにcryptoShortfallStatusを追加しました。**

[エラーコード](#error-code)

* **エラーコードERR-913を追加しました。**

[資産残高を取得](#assets)

* **Responseの `symbol`（銘柄名）から **`XTZ`（テゾス（現物取引）） `FLR`（フレア）** を削除しました。**

###   2026-07-18

[取扱銘柄](#parameters-ref)

* **ParameterとResponseの `symbol`（銘柄名）から **`XTZ`（テゾス（現物取引））**を削除しました。**

###   2026-06-27

[資産残高を取得](#assets)

* **Responseの `symbol`（銘柄名）から **`DAI`（ダイ（現物取引））** を削除しました。**

###   2026-06-06

[取扱銘柄](#parameters-ref)

* **ParameterとResponseの `symbol`（銘柄名）から **`DAI`（ダイ（現物取引））**を削除しました。**

###   2026-04-18

[資産残高を取得](#assets)

* **Responseの `symbol`（銘柄名）に **`ZPG`（ジパングコイン（販売所）） `ZPGAG`（ジパングコインシルバー（販売所）） `ZPGPT`（ジパングコインプラチナ（販売所）） ** を追加しました。**

###   2026-03-21

ワイルダーワールド（現物取引）を追加しました。

* **ParameterとResponseの `symbol`（銘柄名）に **`WILD`（ワイルダーワールド（現物取引）） **を追加しました。**

[資産残高を取得](#assets)

- **Responseの `symbol`（銘柄名）に **`WILD`（ワイルダーワールド（取引所））** を追加しました。**

###   2026-01-17

スイ（現物/レバレッジ）を追加しました。

* **ParameterとResponseの `symbol`（銘柄名）に **`SUI`（スイ（現物取引）） `SUI_JPY`（スイ/円（レバレッジ取引））**を追加しました。**

[資産残高を取得](#assets)

* **Responseの `symbol`（銘柄名）に **`SUI`（スイ（現物取引））** を追加しました。**

取引所（現物/レバレッジ）の全銘柄において、timeInForceパラメータにSOK(Post-Only)が指定可能になりました。

## 2025

###   2025-10-25

[資産残高を取得](#assets)

* **Responseの `symbol`（銘柄名）から **`MKR`（メイカー（現物取引））** を削除しました。**

###   2025-10-04

[取扱銘柄](#parameters-ref)

* **ParameterとResponseの `symbol`（銘柄名）から **`MKR`（メイカー（現物取引））**を削除しました。**

###   2025-08-02

[資産残高を取得](#assets)

* **Responseの `symbol`（銘柄名）から **`XEM`（ネム（現物取引）） `BAT`（ベーシックアテンショントークン（現物取引）） `QTUM`（クアンタム（現物取引）） `ENJ`（エンジンコイン（現物取引）） `XYM`（シンボル（現物取引）） `MONA`（モナコイン（現物取引））** を削除しました。**

###   2025-06-28

[取扱銘柄](#parameters-ref)

* **ParameterとResponseの `symbol`（銘柄名）から **`XEM`（ネム（現物取引）） `BAT`（ベーシックアテンショントークン（現物取引）） `QTUM`（クアンタム（現物取引）） `ENJ`（エンジンコイン（現物取引）） `XYM`（シンボル（現物取引）） `MONA`（モナコイン（現物取引））**を削除しました。**

## 2024

###   2024-12-13

NOT A HOTEL COIN（現物取引）を追加しました。

* **ParameterとResponseの `symbol`（銘柄名）に **`NAC`（NOT A HOTEL COIN（現物取引）） **を追加しました。**

[資産残高を取得](#assets)

- **Responseの `symbol`（銘柄名）に **`NAC`（NOT A HOTEL COIN（取引所））** を追加しました。**

###   2024-11-02

[資産残高を取得](#assets)

- **Responseの `symbol`（銘柄名）に **`AVAX`（アバランチ（販売所））** を追加しました。**

###   2024-06-01

以下の6銘柄が[注文](#order)と[決済](#close-order)でtimeInForceパラメータにSOK(Post-Only)を指定できるようになりました。
* `DOT_JPY`（銘柄名: ポルカドット/円（レバレッジ取引）） `ATOM_JPY`（コスモス/円（レバレッジ取引）） `ADA_JPY`（カルダノ/円（レバレッジ取引）） `LINK_JPY`（チェーンリンク/円（レバレッジ取引）） `DOGE_JPY`（ドージコイン/円（レバレッジ取引）） `SOL_JPY`（ソラナ/円（レバレッジ取引））

###   2024-04-13

ポルカドット、コスモス、カルダノ、チェーンリンク、ドージコイン、ソラナの（レバレッジ取引）を追加しました。

* **ParameterとResponseの `symbol`（銘柄名）に **`DOT_JPY`（ポルカドット/円（レバレッジ取引）） `ATOM_JPY`（コスモス/円（レバレッジ取引）） `ADA_JPY`（カルダノ/円（レバレッジ取引）） `LINK_JPY`（チェーンリンク/円（レバレッジ取引）） `DOGE_JPY`（ドージコイン/円（レバレッジ取引）） `SOL_JPY`（ソラナ/円（レバレッジ取引））**を追加しました。**

###   2024-03-02

[制限](#restrictions)

* **Private APIの制限を変更**
  * Tier2が適用される取引高の条件を1億円以上から10億円以上に引き上げました。
  * Tier2のGET,POSTのリクエスト上限を1秒間30回に引き上げました。

[日本円の入金履歴](#fiatDepositHistory)を追加しました
[日本円の出金履歴](#fiatWithdrawalHistory)を追加しました
[暗号資産の預入履歴](#depositHistory)を追加しました
[暗号資産の送付履歴](#withdrawalHistory)を追加しました

## 2023

###   2023-12-16
2023年12月16日時点の各言語の最新バージョンに対応するよう、サンプルを更新しました。

###   2023-12-09

[制限](#restrictions)

* **Private APIの制限を変更**
  * Tier1のGET,POSTのリクエスト上限を1秒間20回に引き上げました。

###   2023-10-28
[口座振替](#transfer)を追加しました

[余力情報を取得](#margin)

* **ResponseにtransferableAmountを追加しました。**

###   2023-10-21

[制限](#restrictions)

* **Private APIの制限を変更**
    * Tier2が適用される取引高の条件を10億以上から1億以上に引き下げました。
    * Tier1のGET,POSTのリクエスト上限を1秒間10回に引き上げました。
    * Tier2のGET,POSTのリクエスト上限を1秒間20回に引き上げました。

###   2023-09-16

[注文情報取得](#orders)

* **Responseの `cancelType`（取消区分）に **`EXPIRED_SELFTRADE`（対当売買に該当する可能性があるため失効）** を追加しました。**

[注文情報通知](#ws-order-events)

* **Responseの `cancelType`（取消区分）に **`EXPIRED_SELFTRADE`（対当売買に該当する可能性があるため失効）** を追加しました。**

###   2023-08-05

ドージコイン（現物取引）、ソラナ（現物取引）を追加しました。

* **ParameterとResponseの `symbol`（銘柄名）に **`DOGE`（ドージコイン（現物取引）） `SOL`（ソラナ（現物取引）） **を追加しました。**

###   2023-07-29

[取扱銘柄](#parameters-ref)

* **ParameterとResponseの `symbol`（銘柄名）から **`OMG`（オーエムジー（現物取引））**を削除しました。**

###   2023-07-08

[資産残高を取得](#assets)

* **Responseの `symbol`（銘柄名）に **`FIL`（ファイルコイン（販売所）） `SAND`（ザ・サンドボックス（販売所）） `CHZ`（チリーズ（販売所））** を追加しました。**

###   2023-05-13
[取引高情報を取得](#tradingVolume)

* **ResponseにTakerFeeとMakerFeeを追加しました。**

###   2023-03-22

アスター（現物取引）を追加しました。

* **ParameterとResponseの `symbol`（銘柄名）に **`ASTR`（アスター（現物取引））**を追加しました。**

[資産残高を取得](#assets)

- **Responseの `symbol`（銘柄名）に **`ASTR`（アスター（取引所））** を追加しました。**

###   2023-01-18

[資産残高を取得](#assets)

* **Responseの `symbol`（銘柄名）に **`FLR`（フレア）** を追加しました。**

## 2022

###   2022-12-21

[取引ルールの取得](#symbols)を追加しました。

###   2022-10-12

[資産残高を取得](#assets)

* **Responseの `symbol`（銘柄名）に **`SOL`（ソラナ（販売所））** を追加しました。**

###   2022-07-13

メイカー、ダイ、カルダノ、チェーンリンクの（現物取引）を追加しました。

* **ParameterとResponseの `symbol`（銘柄名）に **`MKR`（メイカー（現物取引）） `DAI`（ダイ（現物取引）） `ADA`（カルダノ（現物取引）） `LINK`（チェーンリンク（現物取引）） **を追加しました。**

###   2022-07-06

[資産残高を取得](#assets)

* **Responseの `symbol`（銘柄名）に **`DOGE`（ドージコイン（販売所））** を追加しました。**

###   2022-06-08

オーエムジー、テゾス、エンジンコイン、ポルカドット、コスモスの（現物取引）を追加しました。

* **ParameterとResponseの `symbol`（銘柄名）に **`OMG`（オーエムジー（現物取引）） `XTZ`（テゾス（現物取引）） `ENJ`（エンジンコイン（現物取引）） `DOT`（ポルカドット（現物取引）） `ATOM`（コスモス（現物取引））**を追加しました。**

###   2022-05-18

FCRコイン（現物取引）を追加しました。

- **ParameterとResponseの `symbol`（銘柄名）に **`FCR`（FCRコイン（現物取引））**を追加しました。**

[資産残高を取得](#assets)

- **Responseの `symbol`（銘柄名）に **`FCR`（FCRコイン（取引所））** を追加しました。**

###   2022-04-08

[制限](#restrictions)

* **Private APIの制限を変更**
    * Tier2が適用される取引高の条件を20億以上から10億以上に引き下げました。

###   2022-03-30

ベーシックアテンショントークン（現物取引）とクアンタム（現物取引）を追加しました。

* **ParameterとResponseの `symbol`（銘柄名）に **`BAT`（ベーシックアテンショントークン（現物取引）） `QTUM`（クアンタム（現物取引））**を追加しました。**

###   2022-03-02

[資産残高を取得](#assets)

* **Responseの `symbol`（銘柄名）に **`LINK`（チェーンリンク（販売所））** を追加しました。**

###   2022-02-16

[資産残高を取得](#assets)

* **Responseの `symbol`（銘柄名）に **`MKR`（メイカー（販売所）） `DAI`（ダイ（販売所））** を追加しました。**

###   2022-01-27

[制限](#restrictions)

* **Private APIの制限を変更**
    * 先週の取引高に応じて、今週のPrivate APIの呼び出し上限値が決定いたします。

[取引高情報を取得](#tradingVolume)を追加しました。

###   2022-01-26

[資産残高を取得](#assets)

* **Responseの `symbol`（銘柄名）に **`ADA`（カルダノ（販売所））** を追加しました。**

## 2021

###   2021-12-01

モナコイン（現物取引）を追加しました。

* **ParameterとResponseの `symbol`（銘柄名）に **`MONA`（モナコイン（現物取引））**を追加しました。**

###   2021-10-20

シンボル（現物取引）を追加しました。

* **ParameterとResponseの `symbol`（銘柄名）に **`XYM`（シンボル（現物取引））**を追加しました。**

###   2021-09-22

[約定情報取得](#executions)
* **ResponseにpositionIdを追加しました。**

[最新の約定一覧](#latest-executions)
* **ResponseにpositionIdを追加しました。**

###   2021-09-08 

[注文](#order)
* **指値注文の `timeInForce`（執行数量条件）に **`FAK`（注文が一部約定後に未執行数量が残った場合、その残数量を失効とする条件）** を追加しました。**

[決済注文](#close-order)
* **指値注文の `timeInForce`（執行数量条件）に **`FAK`（注文が一部約定後に未執行数量が残った場合、その残数量を失効とする条件）** を追加しました。**

[一括決済注文](#close-bulk-order)
* **指値注文の `timeInForce`（執行数量条件）に **`FAK`（注文が一部約定後に未執行数量が残った場合、その残数量を失効とする条件）** を追加しました。**

###   2021-08-18

ステラルーメン（現物取引）を追加しました。

* **ParameterとResponseの `symbol`（銘柄名）に **`XLM`（ステラルーメン（現物取引））**を追加しました。**

###   2021-08-04

[建玉サマリーを取得](#position-summary)

* **Parameterの`symbol`（銘柄名）をOptionalに変更しました。**

###   2021-07-14 

[資産残高を取得](#assets)

* **Responseの `symbol`（銘柄名）に **`ATOM`（コスモス（販売所））** を追加しました。**

###   2021-06-23 
ネム（現物取引）を追加しました。

* **ParameterとResponseの `symbol`（銘柄名）に **`XEM`（ネム（現物取引））**を追加しました。**

###   2021-05-26
[制限](#restrictions)

* **Private API上限を変更**
    * GETリクエストの上限を1秒間6回に変更しました。
    * POSTリクエストの上限を1秒間6回に変更しました。

###   2021-05-19

[資産残高を取得](#assets)

* **Responseの `symbol`（銘柄名）に **`DOT`（ポルカドット（販売所））** を追加しました。**

###   2021-04-21

[余力情報を取得](#margin)

* **ResponseにmarginCallStatusを追加しました。**

[注文情報取得](#orders)

* **Responseの `cancelType`（取消区分）に **`MARGIN_CALL`（追証による注文の取消） `MARGIN_CALL_LOSSCUT`（追証のロスカットに伴う決済注文の取消）** を追加しました。**

[注文情報通知 (Private WebSocket API)](#ws-order-events)

* **Responseの `cancelType`（取消区分）に **`MARGIN_CALL`（追証による注文の取消） `MARGIN_CALL_LOSSCUT`（追証のロスカットに伴う決済注文の取消）** を追加しました。**

###   2021-04-15

[KLine情報の取得](#klines)を追加しました。

###   2021-03-10

[余力情報を取得](#margin)

* **レスポンスにmarginRatioを追加しました。**

## 2020

###   2020-12-16

[約定情報取得](#executions)

* **カンマ区切りで複数の約定IDを指定できるように変更しました。**
    * パラメータのexecutionIdのTypeをnumberからstringに変更しました。
    * 最大10件まで指定可能です。

###   2020-12-09

[注文](#order)

* **パラメータにcancelBeforeを追加しました。**

[決済注文](#close-order)

* **パラメータにcancelBeforeを追加しました。**

###   2020-11-04

[注文情報取得](#orders)

* **カンマ区切りで複数の注文IDを指定できるように変更しました。**
    * パラメータのorderIdのTypeをnumberからstringに変更しました。
    * 最大10件まで指定可能です。

[Private API](#private-api)に[注文の複数キャンセル](#cancel-orders)を追加しました。

[Private API](#private-api)に[注文の一括キャンセル](#cancel-bulk-order)を追加しました。

###   2020-09-09

[アクセストークンを取得](#ws-auth-post)

* **[Private WebSocket API](#private-ws-api)のアクセストークンの発行上限を1個から5個へ変更しました。**
* **発行上限を超えた場合、有効期限の近いトークンから順に削除されます。**

###   2020-09-02

[注文](#order)

* **パラメータにtimeInForceを追加しました。**

[決済注文](#close-order)

* **パラメータにtimeInForceを追加しました。**

[一括決済注文](#close-bulk-order)

* **パラメータにtimeInForceを追加しました。**

[注文情報取得](#orders)

* **Responseの `cancelType`（取消区分）に **`EXPIRED_FAK`（FAKによる失効） `EXPIRED_FOK`（FOKによる失効） `EXPIRED_SOK`（SOKによる失効）** を追加しました。**

* **Responseの `timeInForce`（取消区分）に **`FOK`（執行数量条件: 注文の全数量が直ちに約定しない場合、その全数量を失効とする条件） `SOK`（指値注文においてMakerにならない場合、その全数量を失効とする条件(Post-only)）** を追加しました。**

[有効注文一覧](#active-orders)

* **Responseの `timeInForce`（取消区分）に **`FOK`（執行数量条件: 注文の全数量が直ちに約定しない場合、その全数量を失効とする条件） `SOK`（指値注文においてMakerにならない場合、その全数量を失効とする条件(Post-only)）** を追加しました。**

[約定情報通知](#ws-execution-events)

* **Responseの `timeInForce`（取消区分）に **`FOK`（執行数量条件: 注文の全数量が直ちに約定しない場合、その全数量を失効とする条件） `SOK`（指値注文においてMakerにならない場合、その全数量を失効とする条件(Post-only)）** を追加しました。**

[注文情報通知 (Private WebSocket API)](#ws-order-events)

* **Responseの `cancelType`（取消区分）に **`EXPIRED_FAK`（FAKによる失効） `EXPIRED_FOK`（FOKによる失効） `EXPIRED_SOK`（SOKによる失効） `CLOSED_ORDER`（対象注文が既にクローズ済みのため注文変更の失敗） `PRICE_LIMIT`（価格制限のため注文変更の失敗） `SOK_TAKER`（Takerのため注文変更の失敗）** を追加しました。**

* **Responseの `timeInForce`（取消区分）に **`FOK`（執行数量条件: 注文の全数量が直ちに約定しない場合、その全数量を失効とする条件） `SOK`（指値注文においてMakerにならない場合、その全数量を失効とする条件(Post-only)）** を追加しました。**

###   2020-08-12
[ポジションサマリー情報通知](#ws-position-summary-events)

* **subscribe時のパラメータに定期配信のoptionを追加しました。**
* **ResponseにmsgTypeを追加しました。**

###   2020-08-05
[注文情報取得](#orders)

* **Responseの `cancelType`（取消区分）に **`INSUFFICIENT_BALANCE`（取引余力の不足による注文の取消（現物取引）） `INSUFFICIENT_MARGIN`（取引余力の不足による注文の取消（レバレッジ取引）） `ACCOUNT_LOSSCUT`（口座残高不足によるロスカットに伴う決済注文の取消）** を追加しました。**

[注文情報通知 (Private WebSocket API)](#ws-order-events)

* **Responseの `cancelType`（取消区分）に **`INSUFFICIENT_BALANCE`（取引余力の不足による注文の取消（現物取引）） `INSUFFICIENT_MARGIN`（取引余力の不足による注文の取消（レバレッジ取引）） `ACCOUNT_LOSSCUT`（口座残高不足によるロスカットに伴う決済注文の取消）** を追加しました。**

###   2020-07-28
[ヒストリカルデータ](#historical_data)を追加しました。

* **取引所における全ての取引履歴について、CSVファイルでダウンロードいただけます。**

###   2020-07-15
[注文](#order)

* **パラメータにlosscutPriceを追加しました。**

###   2020-07-08
[Private WebSocket API](#private-ws-api)に[ポジションサマリー情報通知](#ws-position-summary-events)を追加しました。

* **発行済みのAPIキーを使ってアクセストークンを取得する場合、【会員ページ】-【API】-【編集】-【APIキーの編集】画面で「約定情報通知(WebSocket)」、「注文情報通知(WebSocket)」、「ポジション情報通知(WebSocket)」または「ポジションサマリー情報通知(WebSocket)」にチェックを入れてから、アクセストークンを取得します。**

###   2020-06-24
[注文情報取得](#orders)

* **レスポンスにcancelTypeを追加しました。**

[注文情報通知 (Private WebSocket API)](#ws-order-events)

* **レスポンスにcancelTypeを追加しました。**

###   2020-05-27
[注文変更](#change-order)

* **パラメータにlosscutPriceを追加しました。**

[注文情報取得](#orders)

* **レスポンスにlosscutPriceを追加しました。**

[有効注文一覧](#active-orders)

* **レスポンスにlosscutPriceを追加しました。**

[注文情報通知 (Private WebSocket API)](#ws-order-events)

* **レスポンスにlosscutPriceを追加しました。**

###   2020-04-28
[Private WebSocket API](#private-ws-api)に[ポジション情報通知](#ws-position-events)を追加しました。

* **発行済みのAPIキーを使ってアクセストークンを取得する場合、【会員ページ】-【API】-【編集】-【APIキーの編集】画面で「約定情報通知(WebSocket)」、「注文情報通知(WebSocket)」または「ポジション情報通知(WebSocket)」にチェックを入れてから、アクセストークンを取得します。**

###   2020-04-08
[板情報 (Public WebSocket API)](#ws-orderbooks)

* **レスポンスにtimestampを追加しました。**

###   2020-04-01
[制限](#restrictions)

* **Private API上限を変更**
    * Private APIについて、GETとPOSTで個別に呼び出し上限を設定しました。
        * GETリクエストの上限を1秒間3回に変更しました。
        * POSTリクエストの上限を1秒間3回に変更しました。

###   2020-02-26
[Private WebSocket API](#private-ws-api)に[注文情報通知](#ws-order-events)を追加しました。

* **発行済みのAPIキーを使ってアクセストークンを取得する場合、【会員ページ】-【API】-【編集】-【APIキーの編集】画面で「約定情報通知(WebSocket)」または「注文情報通知(WebSocket)」にチェックを入れてから、アクセストークンを取得します。**

[約定情報通知 (Private WebSocket API)](#ws-execution-events)

* **ResponseにmsgTypeを追加しました。**

[フィードバック](#feedback)ページを追加しました。

###   2020-02-12
Request example

* **Request exampleにSwiftを追加しました。**
* **C#にWebSocket4Netを使用した例を追加しました。**

###   2020-01-23
[Private WebSocket API](#private-ws-api)バージョン v1 をリリースしました。

[制限](#restrictions)

* **Private WebSocket API上限を追加**
    * Private WebSocket APIのリクエスト上限についての記述を追加しました。

## 2019

###   2019-11-27
[取引履歴 (Public WebSocket API)](#ws-trades)

* **subscribe時のパラメータにoptionを追加しました。**

###   2019-11-20
公開APIのドキュメントに[英語版](./en/)を追加しました。

###   2019-10-23
逆指値注文を追加しました。

* 逆指値注文の場合は注文ステータス `WAITING` が有効、`ORDERED` が一部約定になりますので、ご注意ください。

[注文](#order)

* Parameterの `executionType`（注文タイプ）に `STOP`（逆指値） を追加しました。
* Parameterの `price`（注文価格）の説明を変更しました。

[決済注文](#close-order)

* Parameterの `executionType`（注文タイプ）に `STOP`（逆指値） を追加しました。
* Parameterの `price`（注文価格）の説明を変更しました。

[一括決済注文](#close-bulk-order)

* Parameterの `executionType`（注文タイプ）に `STOP`（逆指値） を追加しました。
* Parameterの `price`（注文価格）の説明を変更しました。
 
[注文情報取得](#orders)

* Parameterの `executionType`（注文タイプ）に `STOP`（逆指値） を追加しました。
* Parameterの `status`（注文ステータス）の説明を変更しました。

[有効注文一覧](#active-orders)

* Responseの `executionType`（注文タイプ）に `STOP`（逆指値） を追加しました。
* Responseの `status`（注文ステータス）の説明を変更しました。

###   2019-10-02
[Public WebSocket API](#public-ws-api)に[取引履歴](#ws-trades)を追加しました。

###   2019-09-18
Request exampleにC#，Rust，Haskellを追加しました。

###   2019-09-11
Request exampleにGo，Ruby，PHP，Kotlinを追加しました。

###   2019-08-28
[Public WebSocket API](#public-ws-api)バージョン v1 をリリースしました。

[制限](#restrictions)

* **Public WebSocket API上限を追加**
    * Public WebSocket APIのリクエスト上限についての記述を追加しました。

###   2019-07-03
[制限](#restrictions)

* **Private API上限を変更**
    * Private APIの上限を最大300ミリ秒1回に変更しました。

###   2019-06-12
[GET /public/v1/ticker](#ticker)

* **symbolパラメータをoptionalに変更**
    * symbolを指定しない場合は全銘柄分の最新レートを返すように変更しました。

###   2019-05-29
バージョン v1 をリリースしました。
