APIリファレンス

XGプロダクトページ XG Developer Guide XG Developer Site

APIリファレンス

Download OpenAPI specification:

注意事項

Response samplesのエラーは一部の例になります。その他のエラーはデベロッパーガイドのエラーコード一覧表をご確認ください。

ユーザー(User)

XGのユーザーを処理するAPIです。

XGユーザー作成

XGのユーザーを、リクエストされたゲームユーザーIDと1対1で関連付けて作成します。
ゲーム側でも作成されたXGユーザーとゲームユーザーを1対1で関連付けて保存してください。
XGユーザーIDはUUIDv4形式の文字列で作成されます。XGユーザーIDを保存するデータベースのテーブルのカラムの長さは、36文字以上で定義してください。
XGユーザーIDは小文字で作成され、大文字小文字を区別します。そのためXG APIのパスに含まれるXGユーザーIDは全て小文字でリクエストしてください。

Request Body schema: application/json
required
gameUserId
required
string [ 1 .. 64 ] characters

ゲームユーザーID

Responses

Response Schema: application/json
id
required
string

XGユーザーID

gameUserId
required
string

ゲームユーザーID

createdAt
required
string <date-time>

XGユーザーを作成した日時(UTC)

Request samples

Content type
application/json
{
  • "gameUserId": "1234567890"
}

Response samples

Content type
application/json
{
  • "id": "12345678-90ab-4cde-8f12-34567890abcd",
  • "gameUserId": "1234567890",
  • "createdAt": "2024-01-23T12:34:56Z"
}

XGユーザー情報取得(XGユーザーID)

XGユーザーIDからXGのユーザー情報を取得します。

path Parameters
id
required
string = 36 characters
Example: 12345678-90ab-4cde-8f12-34567890abcd

XGユーザーID

Responses

Response Schema: application/json
id
required
string

XGユーザーID

gameUserId
required
string

ゲームユーザーID

createdAt
required
string <date-time>

XGユーザーを作成した日時(UTC)

Response samples

Content type
application/json
{
  • "id": "12345678-90ab-4cde-8f12-34567890abcd",
  • "gameUserId": "1234567890",
  • "createdAt": "2024-01-23T12:34:56Z"
}

XGユーザー情報取得(ゲームユーザーID)

ゲームユーザーIDからXGのユーザー情報を取得します。

path Parameters
id
required
string <= 64 characters
Example: 1234567890

ゲームユーザーID

Responses

Response Schema: application/json
id
required
string

XGユーザーID

gameUserId
required
string

ゲームユーザーID

createdAt
required
string <date-time>

XGユーザーを作成した日時(UTC)

Response samples

Content type
application/json
{
  • "id": "12345678-90ab-4cde-8f12-34567890abcd",
  • "gameUserId": "1234567890",
  • "createdAt": "2024-01-23T12:34:56Z"
}

購入(Purchase)

課金アイテム購入を処理するAPIです。

課金アイテム購入(App Store)

App Storeの課金アイテムの購入を検証し、購入情報をXGに記録します。

購入した課金アイテムにゲーム内通貨が含まれている場合、ゲーム内通貨を発行します。
購入の検証に失敗した場合、ステータスコード 400 をレスポンスします。エラーの内容によってエラーコードが異なります。
App Store Server APIでエラーが発生した場合、エラーの内容によって以下のステータスコードをレスポンスします。

  • 無効なリクエスト・認証エラー・存在しないtransactionIdの場合 : 400
  • サーバーエラー・タイムアウト・レート制限エラーの場合 : 500
path Parameters
id
required
string = 36 characters
Example: 12345678-90ab-4cde-8f12-34567890abcd

XGユーザーID

Request Body schema: application/json
transactionId
required
string [ 1 .. 64 ] characters

取引ID

アプリ内課金で購入リクエストをした時に発行されるtransactionIdを指定してください。 App Storeの課金アイテムの購入の検証に使用します。

App Storeのアプリ内課金ではtransactionIdとoriginalTransactionIdの2種類のtransactionIdが存在します。 本パラメーターにはtransactionIdの方を指定してください。

公式ドキュメント
transactionId
originalTransactionId

productId
required
string [ 1 .. 100 ] characters

商品ID

Responses

Response Schema: application/json
transactionId
required
string
transactionAt
required
string <date-time>

購入日時(UTC)

quantity
required
integer

購入数量

status
required
string

商品購入結果ステータス

  • completed:成功
  • already_done:XGで処理済み(ゲーム内通貨の発行済み)
  • non_consumable_reacquired:非消耗型商品の再入手(ゲーム内通貨の発行は行わない)
required
object

ゲーム内通貨の残高

additional property
object

ゲーム内通貨の数量

free
required
integer <int64>

無償通貨の数量

paid
required
integer <int64>

有償通貨の数量

required
object

発行されたゲーム内通貨の数量。発行されるゲーム内通貨が存在しない場合はnullが返却されます

additional property
object

ゲーム内通貨の数量

free
required
integer <int64>

無償通貨の数量

paid
required
integer <int64>

有償通貨の数量

Request samples

Content type
application/json
{
  • "transactionId": "2000000012345678",
  • "productId": "com.dmm.games.sample.appstore00001"
}

Response samples

Content type
application/json
{
  • "transactionId": "2000000012345678",
  • "transactionAt": "2024-01-23T12:34:56Z",
  • "quantity": 1,
  • "status": "completed",
  • "balance": {
    • "gem": {
      • "free": 1000,
      • "paid": 10000
      },
    • "coin": {
      • "free": 0,
      • "paid": 100
      }
    },
  • "added": {
    • "gem": {
      • "free": 90,
      • "paid": 10
      }
    }
}

課金アイテム購入(DMM GAMES)

DMM GAMESの課金アイテムの購入を検証し、購入情報をXGに記録します。

購入した課金アイテムにゲーム内通貨が含まれている場合、ゲーム内通貨を発行します。
購入の検証に失敗した場合、ステータスコード 400 をレスポンスします。エラー内容によってエラーコードが異なります。
DMM GAMESのAPIでエラーが発生した場合、エラー内容によって以下のステータスコードをレスポンスします。

  • 無効なリクエスト・認証エラー・存在しないtransactionIdの場合 : 400
  • サーバーエラー・タイムアウト: 500
path Parameters
id
required
string = 36 characters
Example: 12345678-90ab-4cde-8f12-34567890abcd

XGユーザーID

Request Body schema: application/json
transactionId
required
string [ 1 .. 64 ] characters

取引ID

アプリ内課金で購入リクエストをした時に発行されるpurchaseTokenを指定してください。 DMM GAMESの課金アイテムの購入の検証に使用します。

公式ドキュメント
レシート型課金 サーバー検証リファレンス

productId
required
string [ 1 .. 64 ] characters

商品ID

required
object

DMM GAMESアプリ情報

appId
required
string [ 1 .. 16 ] characters

GAMESアプリID

device
required
string
Enum: "android" "ios" "win" "mac" "pc_web" "sp_web"

デバイス

デバイス
android DMM GAMESストア
ios DMM GAMESストア
win DMM GAME PLAYER (exe版)
mac DMM GAME PLAYER (app版)
pc_web DMM GAMES ブラウザゲーム (PC版)
sp_web DMM GAMES ブラウザゲーム (SP版)
userType
required
string
Enum: "staff" "developer" ""

ユーザーの種類

userTypeの取得機能で取得した値を指定してください。(取得した値が空文字の場合は空文字を指定してください)

ユーザーの種類
staff DMM GAMESスタッフ
developer ゲーム側アカウント
空文字列 一般ユーザー

Responses

Response Schema: application/json
transactionId
required
string
transactionAt
required
string <date-time>

購入日時(UTC)

quantity
required
integer

購入数量

status
required
string

商品購入結果ステータス

  • completed:成功
  • already_done:XGで処理済み(ゲーム内通貨の発行済み)
required
object

ゲーム内通貨の残高

additional property
object

ゲーム内通貨の数量

free
required
integer <int64>

無償通貨の数量

paid
required
integer <int64>

有償通貨の数量

required
object

発行されたゲーム内通貨の数量。発行されるゲーム内通貨が存在しない場合はnullが返却されます

additional property
object

ゲーム内通貨の数量

free
required
integer <int64>

無償通貨の数量

paid
required
integer <int64>

有償通貨の数量

Request samples

Content type
application/json
{
  • "transactionId": "12345678-aabb-ccdd-eeff-999999000000",
  • "productId": "com.dmm.games.sample.dmmgames00001",
  • "games": {
    • "appId": "123456",
    • "device": "android",
    • "userType": ""
    }
}

Response samples

Content type
application/json
{
  • "transactionId": "12345678-aabb-ccdd-eeff-999999000000",
  • "transactionAt": "2024-01-23T12:34:56Z",
  • "quantity": 1,
  • "status": "completed",
  • "balance": {
    • "gem": {
      • "free": 1000,
      • "paid": 10000
      },
    • "coin": {
      • "free": 0,
      • "paid": 100
      }
    },
  • "added": {
    • "gem": {
      • "free": 90,
      • "paid": 10
      }
    }
}

課金アイテム購入(Google Play)

Google Playの課金アイテムの購入を検証し、購入情報をXGに記録します。

購入した課金アイテムにゲーム内通貨が含まれている場合、ゲーム内通貨を発行します。
消費可能アイテムで未消費の場合は消費し、 消費不可アイテムで未承認の場合は承認します。
Google Play側の購入状態によって以下のステータスコードをレスポンスします。

  • キャンセル済みの場合、ステータスコード 400 をレスポンスします。
  • 保留中の場合、ステータスコード 500 をレスポンスします。
path Parameters
id
required
string = 36 characters
Example: 12345678-90ab-4cde-8f12-34567890abcd

XGユーザーID

Request Body schema: application/json
transactionId
required
string [ 1 .. 300 ] characters

取引ID

アプリ内課金で購入リクエストをした時に発行されるpurchaseTokenを指定してください。 Google Playの課金アイテムの購入の検証に使用します。

公式ドキュメント
REST Resource: purchases.products

productId
required
string [ 1 .. 143 ] characters

商品ID

productType
required
string
Enum: "consumable" "non-consumable"

商品タイプ。消費可能アイテムまたは消費不可アイテムを指定します。

Responses

Response Schema: application/json
transactionId
required
string
transactionAt
required
string <date-time>

購入日時(UTC)

quantity
required
integer

購入数量

status
required
string

商品購入結果ステータス

  • completed:成功
  • already_done:XGで処理済み(ゲーム内通貨の発行済み)
required
object

ゲーム内通貨の残高

additional property
object

ゲーム内通貨の数量

free
required
integer <int64>

無償通貨の数量

paid
required
integer <int64>

有償通貨の数量

required
object

発行されたゲーム内通貨の数量。発行されるゲーム内通貨が存在しない場合はnullが返却されます

additional property
object

ゲーム内通貨の数量

free
required
integer <int64>

無償通貨の数量

paid
required
integer <int64>

有償通貨の数量

Request samples

Content type
application/json
{
  • "transactionId": "ankcbblmmnehcmgjdnjiaapb.AO-J1OxRcRVpIW-NkPAD95HT_lsp51HhwLwtLWrsDGp11sJZ3nds20d5MN0wtYgBOVsyUYuF66gV77qmSpklyF-TZmB9aFK-IaKKuQwJO6xFmv_9Ez3MYJk",
  • "productId": "com.dmm.games.sample.android00001",
  • "productType": "consumable"
}

Response samples

Content type
application/json
{
  • "transactionId": "ankcbblmmnehcmgjdnjiaapb.AO-J1OxRcRVpIW-NkPAD95HT_lsp51HhwLwtLWrsDGp11sJZ3nds20d5MN0wtYgBOVsyUYuF66gV77qmSpklyF-TZmB9aFK-IaKKuQwJO6xFmv_9Ez3MYJk",
  • "transactionAt": "2024-01-23T12:34:56Z",
  • "quantity": 1,
  • "status": "completed",
  • "balance": {
    • "gem": {
      • "free": 1000,
      • "paid": 10000
      },
    • "coin": {
      • "free": 0,
      • "paid": 100
      }
    },
  • "added": {
    • "gem": {
      • "free": 90,
      • "paid": 10
      }
    }
}

課金アイテム購入(DMM GAMESチャージセンター)

DMM GAMESチャージセンターの課金アイテムの購入を検証し、購入情報をXGに記録します。

購入した課金アイテムにゲーム内通貨が含まれている場合、ゲーム内通貨を発行します。
リクエストの内容を元に、DMM GAMESチャージセンターの購入検証APIを呼び出し、購入を検証します。
DMM GAMESチャージセンターの購入検証APIでエラーが発生した場合、エラー内容によって以下のステータスコードをレスポンスします。

  • 無効なリクエスト・認証エラー・存在しないpurchaseIdの場合 : 400
  • サーバーエラー・タイムアウト: 500
path Parameters
id
required
string = 36 characters
Example: 12345678-90ab-4cde-8f12-34567890abcd

XGユーザーID

Request Body schema: application/json
purchaseId
required
string [ 1 .. 100 ] characters

アプリ外課金購入ID

チャージセンターの購入時の通知に含まれるアプリ外課金購入IDを指定してください。

productId
required
string [ 1 .. 64 ] characters

商品ID

storeId
required
string
Enum: "appstore" "googleplay"

ストアID

指定したストアに対してゲーム内通貨を発行します。

gameUserId
required
string [ 1 .. 255 ] characters

ゲームアプリ内のユーザーID

チャージセンターの購入時の通知に含まれるアプリ内ユーザーIDを指定してください。

purchaseAt
required
string <date-time>

アプリ外課金購入日時(UTC)

チャージセンターの購入時の通知に含まれる注文日時をRFC3339形式に変換し指定してください。

Responses

Response Schema: application/json
purchaseId
required
string

アプリ外課金購入ID

リクエストで指定した値をそのまま返却します。

purchaseAt
required
string <date-time>

アプリ外課金購入日時(UTC)

リクエストで指定した値をそのまま返却します。

quantity
required
integer

購入数量

複数個同時購入に対応していないため、常に1を返却します。

status
required
string

商品購入結果ステータス

  • completed:成功
  • already_done:XGで処理済み(ゲーム内通貨の発行済み)
required
object

ゲーム内通貨の残高

additional property
object

ゲーム内通貨の数量

free
required
integer <int64>

無償通貨の数量

paid
required
integer <int64>

有償通貨の数量

required
object

発行されたゲーム内通貨の数量。発行されるゲーム内通貨が存在しない場合はnullが返却されます

additional property
object

ゲーム内通貨の数量

free
required
integer <int64>

無償通貨の数量

paid
required
integer <int64>

有償通貨の数量

Request samples

Content type
application/json
{
  • "purchaseId": "481539-0004687422-20150114180520-0003238000",
  • "productId": "com.dmm.games.sample.chargecenter00001",
  • "storeId": "googleplay",
  • "gameUserId": "user0001",
  • "purchaseAt": "2024-01-23T12:34:56Z"
}

Response samples

Content type
application/json
{
  • "purchaseId": "481539-0004687422-20150114180520-0003238000",
  • "purchaseAt": "2024-01-23T12:34:56Z",
  • "quantity": 1,
  • "status": "completed",
  • "balance": {
    • "gem": {
      • "free": 1000,
      • "paid": 10000
      },
    • "coin": {
      • "free": 0,
      • "paid": 100
      }
    },
  • "added": {
    • "gem": {
      • "free": 90,
      • "paid": 10
      }
    }
}

課金アイテム購入数取得

課金アイテムの購入数を取得します。

購入個数制限のある課金アイテムの処理での使用を想定しています。

path Parameters
id
required
string = 36 characters
Example: 12345678-90ab-4cde-8f12-34567890abcd

XGユーザーID

query Parameters
targetProductId
required
Array of strings
Example: targetProductId=com.dmm.games.sample.android00001,com.dmm.games.sample.android00002

商品ID。

targetStore
required
Array of strings
Items Enum: "appstore" "googleplay" "dmmgames"
Example: targetStore=appstore,googleplay

課金アイテムを購入したストアID。

countStartAt
string <date-time>
Example: countStartAt=2024-01-01T12:34:56Z

取得する購入日時の開始日時(UTC)

countEndAt
string <date-time>
Example: countEndAt=2024-01-31T12:34:56Z

取得する購入日時の終了日時(UTC)

Responses

Response Schema: application/json
required
object non-empty
additional property
object

購入回数レスポンス

count
required
integer <int64> >= 0

指定したストアの合計の購入回数

required
object non-empty

ストアごとの購入回数

課金アイテムを購入したストアID*
additional property
integer <int64> >= 0

Response samples

Content type
application/json
{
  • "purchases": {
    • "com.dmm.games.sample.android00001": {
      • "count": 3,
      • "details": {
        • "appstore": 0,
        • "dmmgames": 1,
        • "googleplay": 2
        }
      },
    • "com.dmm.games.sample.android00002": {
      • "count": 12,
      • "details": {
        • "appstore": 10,
        • "dmmgames": 1,
        • "googleplay": 1
        }
      }
    }
}

XG商品一覧取得

XGに登録されている商品の一覧を取得します。

path Parameters
storeId
required
string
Enum: "appstore" "googleplay" "dmmgames"

ストアID

指定したストアIDでXGに登録されている商品を取得します。

query Parameters
productIdExact
Array of strings
Example: productIdExact=com.dmm.games.sample.android-product0001,com.dmm.games.sample.android-product0002

商品IDの完全一致検索

productIdPrefix
Array of strings
Example: productIdPrefix=com.dmm.games.sample.android-product,com.dmm.games.sample.android-set-product

商品IDの前方一致検索

Responses

Response Schema: application/json
required
Array of objects
Array
productId
required
string

商品ID

price
required
integer <int64>

価格

required
Array of objects

発行されるゲーム内通貨リスト

Array
currencyId
required
string

通貨ID

currencyType
required
string
Enum: "paid" "free"

ゲーム内通貨区分

quantity
required
integer <int64>

発行されるゲーム内通貨数

Response samples

Content type
application/json
{
  • "product": [
    • {
      • "productId": "com.dmm.games.sample.gem1000",
      • "price": 1000,
      • "currency": [
        • {
          • "currencyId": "gem",
          • "currencyType": "paid",
          • "quantity": 1000
          },
        • {
          • "currencyId": "gem",
          • "currencyType": "free",
          • "quantity": 500
          }
        ]
      }
    ]
}

ゲーム内通貨(Currency)

ゲーム内通貨を処理するAPIです。

ゲーム内通貨残高取得

ゲーム内通貨の残高を取得します。

path Parameters
id
required
string = 36 characters
Example: 12345678-90ab-4cde-8f12-34567890abcd

XGユーザーID

storeId
required
string
Enum: "appstore" "googleplay" "dmmgames"

ストアID

指定したストアIDで共有されているゲーム内通貨の残高を取得します。

Responses

Response Schema: application/json
required
object

ゲーム内通貨の残高

additional property
object

ゲーム内通貨の数量

free
required
integer <int64>

無償通貨の数量

paid
required
integer <int64>

有償通貨の数量

Response samples

Content type
application/json
Example
{
  • "balance": {
    • "gem": {
      • "paid": 440,
      • "free": 1000
      },
    • "coin": {
      • "paid": 100,
      • "free": 2000
      }
    }
}

ゲーム内通貨有効期限取得

ゲーム内通貨の有効期限を取得します。

日付の範囲について

  • 「startExpiryAt」および「endExpiryAt」に過去日付を指定しても現在日時以降が対象になります。

  • 「startExpiryAt」「endExpiryAt」の有無で検索範囲が下記のように変化します。

    startExpiryAt endExpiryAt 検索範囲
    なし なし 現在日時以降の全て
    なし あり 現在日時から指定された終了日時までの全て
    あり あり 指定された範囲
    あり なし 指定された開始日時以降の全て
path Parameters
id
required
string = 36 characters
Example: 12345678-90ab-4cde-8f12-34567890abcd

XGユーザーID

storeId
required
string
Enum: "appstore" "googleplay" "dmmgames"

ストアID

指定したストアIDで共有されているゲーム内通貨の有効期限を取得します。

query Parameters
startExpiryAt
string <date-time>
Example: startExpiryAt=2023-12-31T15:00:00Z

取得する有効期限の開始日時

endExpiryAt
string <date-time>
Example: endExpiryAt=2024-01-31T14:59:59Z

取得する有効期限の終了日時

Responses

Response Schema: application/json
required
Array of objects

有効期限付きゲーム内通貨リスト

Array
currencyId
required
string

通貨ID

balance
required
integer

ゲーム内通貨数量

currencyType
required
string
Enum: "paid" "free"

ゲーム内通貨区分

expiryAt
required
string <date-time>

有効期限(UTC)

required
Array of objects

有効期限なしゲーム内通貨リスト

Array
currencyId
required
string

通貨ID

balance
required
integer

ゲーム内通貨数量

currencyType
required
string
Enum: "paid" "free"

ゲーム内通貨区分

Response samples

Content type
application/json
{
  • "expiry": [
    • {
      • "currencyId": "gem",
      • "balance": 1000,
      • "currencyType": "paid",
      • "expiryAt": "2024-01-23T12:34:56Z"
      }
    ],
  • "noExpiry": [
    • {
      • "currencyId": "gem",
      • "balance": 1000,
      • "currencyType": "free"
      }
    ]
}

有償通貨残高取得(取引ごと)

取引ごとの有償通貨残高を取得します。

ストアIDについて

  • パスパラメータの「storeId」に指定したストアIDで共有されている有償通貨の残高を取得します。

ゲーム内通貨の状態について

  • ゲーム内通貨の状態が以下の有償通貨の残高を取得します。
    • remaining(残高あり)
path Parameters
id
required
string = 36 characters
Example: 12345678-90ab-4cde-8f12-34567890abcd

XGユーザーID

storeId
required
string
Enum: "appstore" "googleplay" "dmmgames"

ストアID

指定したストアIDで共有されている有償通貨の残高を取得します。

Responses

Response Schema: application/json
required
Array of objects

取引ごとの有償通貨の残高

Array
transactionId
required
string

取引ID

transactionType
required
string
Value: "purchase"

取引タイプ

transactionType 概要
purchase 課金アイテムの購入
transactionAt
required
string <date-time>

取引日時(UTC)

productId
required
string

商品ID

storeId
required
string
Enum: "appstore" "googleplay" "dmmgames"

取引したストアID

required
Array of objects

この取引で発行したゲーム内通貨残高の詳細

Array
currencyId
required
string

通貨ID

currencyType
required
string
Value: "paid"

ゲーム内通貨区分

status
required
string
Value: "remaining"

ゲーム内通貨の状態

balance
required
integer <int64>

この取引で発行したゲーム内通貨の残高

issueQuantity
required
integer <int64>

この取引で発行したゲーム内通貨の発行数

expiryAt
string or null <date-time>

ゲーム内通貨の有効期限(UTC)

Response samples

Content type
application/json
{
  • "balance": [
    • {
      • "transactionId": "string",
      • "transactionType": "purchase",
      • "transactionAt": "2024-01-23T12:34:56Z",
      • "productId": "com.dmm.games.sample.android00001",
      • "storeId": "googleplay",
      • "details": [
        • {
          • "currencyId": "gem",
          • "currencyType": "paid",
          • "status": "remaining",
          • "balance": 1000,
          • "issueQuantity": 10000,
          • "expiryAt": "2024-06-21T23:59:59Z"
          }
        ]
      }
    ]
}

ゲーム内無償通貨発行

ゲーム内無償通貨を発行します。

path Parameters
id
required
string = 36 characters
Example: 12345678-90ab-4cde-8f12-34567890abcd

XGユーザーID

storeId
required
string
Enum: "appstore" "googleplay" "dmmgames"
Example: appstore

ストアID

指定したストアIDに対して無償通貨を発行します。

Request Body schema: application/json

リクエストボディ

required
Array of objects non-empty

無償通貨情報の配列

Array (non-empty)
transactionId
required
string

取引ID

ゲーム側でUUIDv4形式のIDを作成し、XG APIへリクエストしてください。 UUIDv4形式で、ゲーム単位でユニークな値になるように作成してください。

description
required
string <= 255 characters

摘要

無償通貨の発行理由をリクエストしてください。無償通貨発行履歴取得、ゲーム内通貨取引履歴取得(issueFree)で表示されます。

required
object
additional property
object
quantity
required
integer <int64> >= 1

無償通貨の数量

expiryAt
string or null <date-time>

有効期限。無期限の場合は指定しません

Responses

Response Schema: application/json
status
required
string

無償通貨発行結果ステータス

  • completed:全てcompleted
  • already_done:全てalready_done
  • mixed:completedとalready_doneが混在
required
Array of objects
Array
transactionId
required
string

取引ID

transactionAt
required
string <date-time>

無償通貨発行日時(UTC)

status
required
string

無償通貨発行結果ステータス

  • completed:新規で成功
  • already_done:XGで処理済み(ゲーム内通貨の発行済み)
description
required
string <= 255 characters

ゲーム内通貨の発行時に登録した摘要の内容が返されます。

required
object
additional property
object
quantity
required
integer <int64> >= 1

無償通貨の数量

expiryAt
string or null <date-time>

有効期限。無期限の場合は指定しません

required
object

ゲーム内通貨の残高

additional property
object

ゲーム内通貨の数量

free
required
integer <int64>

無償通貨の数量

paid
required
integer <int64>

有償通貨の数量

Request samples

Content type
application/json
{
  • "transactions": [
    • {
      • "transactionId": "ab905406-a011-4731-a42d-7a0a0fe59d77",
      • "description": "ログインボーナス等、無償通貨の発行理由",
      • "currency": {
        • "gem": {
          • "quantity": 500,
          • "expiryAt": "2024-01-23T12:34:56Z"
          },
        • "coin": {
          • "quantity": 200
          }
        }
      }
    ]
}

Response samples

Content type
application/json
{
  • "status": "completed",
  • "transactions": [
    • {
      • "transactionId": "ab905406-a011-4731-a42d-7a0a0fe59d77",
      • "transactionAt": "2024-01-23T12:34:56Z",
      • "status": "completed",
      • "description": "ログインボーナス等、無償通貨の発行理由",
      • "currency": {
        • "gem": {
          • "quantity": 500,
          • "expiryAt": "2024-01-23T12:34:56Z"
          },
        • "coin": {
          • "quantity": 200
          }
        }
      }
    ],
  • "balance": {
    • "gem": {
      • "free": 1000,
      • "paid": 10000
      },
    • "coin": {
      • "free": 0,
      • "paid": 100
      }
    }
}

ゲーム内通貨消費

ゲーム内通貨を消費します。

path Parameters
id
required
string = 36 characters
Example: 12345678-90ab-4cde-8f12-34567890abcd

XGユーザーID

storeId
required
string
Enum: "appstore" "googleplay" "dmmgames"
Example: appstore

ストアID

指定したストアIDで共有されているゲーム内通貨を消費します。

Request Body schema: application/json
required
transactionId
required
string

取引ID

ゲーム側でUUIDv4形式のIDを作成し、XG APIへリクエストしてください。

description
required
string <= 255 characters

摘要

ゲーム内通貨の消費理由をリクエストしてください。ゲーム内商品購入履歴取得(imgame)、ゲーム内通貨取引履歴取得(consume)で表示されます。
上記の他、XGのKPIのゲーム内通貨の消費のディメンションとして使用されます。

quantity
required
integer <int64> >= 1

数量

ゲーム内アイテムの購入数。XGのKPIのゲーム内通貨の消費の指標として使用されます。

required
object

消費するゲーム内通貨情報

property name*
additional property
integer <int64> >= 1

各通貨IDが消費するゲーム内通貨数

currencyType
string or null
Enum: "free" "paid"

通貨タイプ

消費するゲーム内通貨の区分を指定します。

currencyType 消費するゲーム内通貨
free 無償通貨のみ消費
paid 有償通貨のみ消費

指定されていない場合、XG Developer Siteのアプリケーション設定の「通貨の消費順」で設定されている順番でゲーム内通貨が消費されます。

Responses

Response Schema: application/json
transactionId
required
string

取引ID

transactionAt
required
string <date-time>

ゲーム内通貨消費日時(UTC)

status
required
string

消費結果ステータス

  • completed:成功
  • already_done:XGで処理済み(ゲーム内通貨の消費済み)
storeId
required
string
Enum: "appstore" "googleplay" "dmmgames"

ゲーム内通貨を消費したストアID

リクエストで指定されたストアIDの値を返却します。

required
object

ゲーム内通貨の残高

additional property
object

ゲーム内通貨の数量

free
required
integer <int64>

無償通貨の数量

paid
required
integer <int64>

有償通貨の数量

Request samples

Content type
application/json
{
  • "transactionId": "550e8400-e29b-41d4-a716-446655440000",
  • "description": "期間限定ガチャA実行等、ゲーム内通貨消費の理由",
  • "quantity": 3,
  • "currencyType": "free",
  • "transaction": {
    • "gem": 2000,
    • "coin": 1000
    }
}

Response samples

Content type
application/json
{
  • "transactionId": "string",
  • "transactionAt": "2024-01-23T12:34:56Z",
  • "status": "completed",
  • "storeId": "appstore",
  • "balance": {
    • "gem": {
      • "free": 1000,
      • "paid": 10000
      },
    • "coin": {
      • "free": 0,
      • "paid": 100
      }
    }
}

ゲーム内通貨消費取消

ゲーム内通貨の消費を取消します。

ゲーム内通貨を消費したが、何らかの理由でゲーム側の処理が失敗し、アイテムの付与や効果(コンティニュー、スタミナ回復等)が発揮されなかった場合、必要に応じて本APIを使用してください。
特にコンティニュー等、ユーザーがリクエストした時に効果が発揮されてないと意味がない場合の使用を想定しています。

path Parameters
id
required
string = 36 characters
Example: 12345678-90ab-4cde-8f12-34567890abcd

XGユーザーID

storeId
required
string
Enum: "appstore" "googleplay" "dmmgames"
Example: appstore

ストアID

指定したストアIDで消費したゲーム内通貨の消費を取消します。
ゲーム内通貨の消費時に指定したストアIDを指定してください。
消費時と異なるストアIDを指定した場合、エラーになります。

Request Body schema: application/json
required
transactionId
required
string

消費APIで使用した、ゲーム側で作成した取引ID

description
required
string

消費取消の理由

Responses

Response Schema: application/json
transactionId
required
string
transactionAt
required
string <date-time>

消費取消日時(UTC)

status
required
string

消費取消結果ステータス

  • completed:成功
  • already_done:XGで処理済み(ゲーム内通貨の消費取消し済み)
required
object

ゲーム内通貨の残高

additional property
object

ゲーム内通貨の数量

free
required
integer <int64>

無償通貨の数量

paid
required
integer <int64>

有償通貨の数量

required
object

発行されたゲーム内通貨の数量。発行されるゲーム内通貨が存在しない場合はnullが返却されます

additional property
object

ゲーム内通貨の数量

free
required
integer <int64>

無償通貨の数量

paid
required
integer <int64>

有償通貨の数量

Request samples

Content type
application/json
{
  • "transactionId": "550e8400-e29b-41d4-a716-446655440000",
  • "description": "コンティニュー失敗のため"
}

Response samples

Content type
application/json
{
  • "transactionId": "550e8400-e29b-41d4-a716-446655440000",
  • "transactionAt": "2024-01-23T12:34:56Z",
  • "status": "completed",
  • "balance": {
    • "gem": {
      • "free": 1000,
      • "paid": 10000
      },
    • "coin": {
      • "free": 0,
      • "paid": 100
      }
    },
  • "added": {
    • "gem": {
      • "free": 90,
      • "paid": 10
      }
    }
}

検証(Verify)

課金アイテムの購入を検証するAPIです。

課金アイテム購入検証(App Store)

App Storeの課金アイテムの購入を検証します。

購入の検証に失敗した場合、ステータスコード 400 をレスポンスします。エラーの内容によってエラーコードが異なります。
App Store Server APIでエラーが発生した場合は、エラーの内容によって以下のステータスコードをレスポンスします。

  • 無効なリクエスト・認証エラー・存在しないtransactionIdの場合 : 400
  • サーバーエラー・タイムアウト・レート制限エラーの場合 : 500
path Parameters
id
required
string = 36 characters
Example: 12345678-90ab-4cde-8f12-34567890abcd

XGユーザーID

productId
required
string [ 1 .. 100 ] characters
Example: com.dmm.games.sample.appstore00001

商品ID

transactionId
required
string [ 1 .. 64 ] characters
Example: 2000000012345678

取引ID

アプリ内課金で購入リクエストをした時に発行されるtransactionIdを指定してください。 App Storeの課金アイテムの購入の検証に使用します。

App Storeのアプリ内課金ではtransactionIdとoriginalTransactionIdの2種類のtransactionIdが存在します。 本パラメーターにはtransactionIdの方を指定してください。

公式ドキュメント transactionId
originalTransactionId

Responses

Response Schema: application/json
transactionId
required
string
transactionAt
required
string <date-time>

購入日時(UTC)

quantity
required
integer

購入数量

status
required
string

XGの処理状態

  • unprocessed:XGで未処理
  • processed:XGで処理済み(ゲーム内通貨の発行済み)
required
object

ゲーム内通貨の残高

additional property
object

ゲーム内通貨の数量

free
required
integer <int64>

無償通貨の数量

paid
required
integer <int64>

有償通貨の数量

Response samples

Content type
application/json
{
  • "transactionId": "2000000012345678",
  • "transactionAt": "2024-01-23T12:34:56Z",
  • "quantity": 1,
  • "status": "unprocessed",
  • "balance": {
    • "gem": {
      • "free": 1000,
      • "paid": 10000
      },
    • "coin": {
      • "free": 0,
      • "paid": 100
      }
    }
}

課金アイテム購入検証(DMM GAMES)

DMM GAMESの課金アイテムの購入を検証します。

購入の検証に失敗した場合、ステータスコード 400 をレスポンスします。エラー内容によってエラーコードが異なります。
DMM GAMESのAPIでエラーが発生した場合、エラー内容によって以下のステータスコードをレスポンスします。

  • 無効なリクエスト・認証エラー・存在しないtransactionIdの場合 : 400
  • サーバーエラー・タイムアウト: 500
path Parameters
id
required
string = 36 characters
Example: 12345678-90ab-4cde-8f12-34567890abcd

XGユーザーID

productId
required
string [ 1 .. 64 ] characters
Example: com.dmm.games.sample.dmmgames00001

商品ID

transactionId
required
string [ 1 .. 64 ] characters
Example: 12345678-aabb-ccdd-eeff-999999000000

取引ID

アプリ内課金で購入リクエストをした時に発行されるpurchaseTokenを指定してください。 DMM GAMESの課金アイテムの購入の検証に使用します。

公式ドキュメント
レシート型課金 サーバー検証リファレンス

query Parameters
appId
required
string [ 1 .. 16 ] characters
Example: appId=123456

GAMESアプリID

device
required
string
Enum: "android" "ios" "win" "mac" "pc_web" "sp_web"
Example: device=android

デバイス

デバイス
android DMM GAMESストア
ios DMM GAMESストア
win DMM GAME PLAYER (exe版)
mac DMM GAME PLAYER (app版)
pc_web DMM GAMES ブラウザゲーム (PC版)
sp_web DMM GAMES ブラウザゲーム (SP版)
userType
required
string
Enum: "staff" "developer" ""

ユーザーの種類

ユーザーの種類
staff DMM GAMESスタッフ
developer ゲーム側アカウント
空文字 一般ユーザー

Responses

Response Schema: application/json
transactionId
required
string
transactionAt
required
string <date-time>

購入日時(UTC)

quantity
required
integer

購入数量

status
required
string

XGの処理状態

  • unprocessed:XGで未処理
  • processed:XGで処理済み(ゲーム内通貨の発行済み)
required
object

ゲーム内通貨の残高

additional property
object

ゲーム内通貨の数量

free
required
integer <int64>

無償通貨の数量

paid
required
integer <int64>

有償通貨の数量

Response samples

Content type
application/json
{
  • "transactionId": "12345678-aabb-ccdd-eeff-999999000000",
  • "transactionAt": "2024-01-23T12:34:56Z",
  • "quantity": 1,
  • "status": "unprocessed",
  • "balance": {
    • "gem": {
      • "free": 1000,
      • "paid": 10000
      },
    • "coin": {
      • "free": 0,
      • "paid": 100
      }
    }
}

課金アイテム購入検証(Google Play)

GooglePlayの課金アイテムの購入を検証します。

Google Play側の購入状態によって以下のステータスコードをレスポンスします。

  • キャンセル済みの場合、ステータスコード 400 をレスポンスします。
  • 保留中の場合、ステータスコード 500 をレスポンスします。
path Parameters
id
required
string = 36 characters
Example: 12345678-90ab-4cde-8f12-34567890abcd

XGユーザーID

productId
required
string [ 1 .. 143 ] characters
Example: com.dmm.games.sample.android00001

商品ID

transactionId
required
string [ 1 .. 300 ] characters
Example: ankcbblmmnehcmgjdnjiaapb.AO-J1OxRcRVpIW-NkPAD95HT_lsp51HhwLwtLWrsDGp11sJZ3nds20d5MN0wtYgBOVsyUYuF66gV77qmSpklyF-TZmB9aFK-IaKKuQwJO6xFmv_9Ez3MYJk

取引ID

アプリ内課金で購入リクエストをした時に発行されるpurchaseTokenを指定してください。 Google Playの課金アイテムの購入の検証に使用します。

公式ドキュメント
REST Resource: purchases.products

query Parameters
productType
required
string
Enum: "consumable" "non-consumable"
Example: productType=consumable

商品タイプ。消費可能アイテムまたは消費不可アイテムを指定します。

Responses

Response Schema: application/json
transactionId
required
string
transactionAt
required
string <date-time>

購入日時(UTC)

quantity
required
integer

購入数量

status
required
string

XGの処理状態

  • unprocessed:XGで未処理
  • processed:XGで処理済み(ゲーム内通貨の発行済み)
required
object

ゲーム内通貨の残高

additional property
object

ゲーム内通貨の数量

free
required
integer <int64>

無償通貨の数量

paid
required
integer <int64>

有償通貨の数量

Response samples

Content type
application/json
{
  • "transactionId": "ankcbblmmnehcmgjdnjiaapb.AO-J1OxRcRVpIW-NkPAD95HT_lsp51HhwLwtLWrsDGp11sJZ3nds20d5MN0wtYgBOVsyUYuF66gV77qmSpklyF-TZmB9aFK-IaKKuQwJO6xFmv_9Ez3MYJk",
  • "transactionAt": "2024-01-23T12:34:56Z",
  • "quantity": 1,
  • "status": "unprocessed",
  • "balance": {
    • "gem": {
      • "free": 1000,
      • "paid": 10000
      },
    • "coin": {
      • "free": 0,
      • "paid": 100
      }
    }
}

履歴V1(HistoryV1)

ゲーム内アイテム(課金アイテム・ゲーム内アイテム)の購入とゲーム内通貨の取引履歴を検索するAPIです。

ゲーム内商品購入履歴取得

ゲーム内商品の購入履歴を取得します。

  • ストアで提供されるアプリ内課金機能を利用した購入の履歴
    • レスポンスの「store」フィールドに含まれます。
    • 直課金商品の購入などのゲーム内通貨の発行を伴わない購入の履歴も含まれます。
  • ゲーム内通貨を消費した購入の履歴
    • レスポンスの「ingame」フィールドに含まれます。
    • ゲーム内通貨の消費取消が行われた購入の履歴は含まれません。

日付の範囲について

  • 「transactionId」がある場合

    • 「startAt」と「endAt」の値は無視されます。
  • 「transactionId」がない場合

    • 「startAt」「endAt」の有無で検索範囲が下記のように変化します。

      startAt endAt 検索範囲
      なし なし 7日前のローカル時間の0:00から現在日時まで
      なし あり 7日前のローカル時間の0:00から指定された終了日時まで
      あり あり 指定された範囲
      あり なし 指定された開始日時から現在日時まで

ソート順について

  • 取引日時の降順でソートされます。
path Parameters
id
required
string = 36 characters
Example: 12345678-90ab-4cde-8f12-34567890abcd

XGユーザーID

query Parameters
storeId
Array of strings
Items Enum: "appstore" "googleplay" "dmmgames"
Example: storeId=appstore,googleplay

ストアID

指定したストアIDで行った購入の履歴を取得します。

ストアIDを指定しない場合は、全てのストアIDを対象とします。

purchasedWith
Array of strings
Items Enum: "store" "ingame"
Example: purchasedWith=store

ゲーム内商品の購入手段

指定しない場合は、全ての購入手段を対象とします。

購入手段
store ストアで提供されるアプリ内課金機能を利用した購入
ingame ゲーム内通貨を消費した購入
startAt
string <date-time>
Example: startAt=2024-01-01T12:34:56Z

取得する取引日時の開始日時

endAt
string <date-time>
Example: endAt=2024-01-31T12:34:56Z

取得する取引日時の終了日時

transactionId
string
Example: transactionId=ab905406-a011-4731-a42d-7a0a0fe59d77

取引IDを指定して検索したいときに指定します。

limit
integer <int64> [ 1 .. 100 ]
Default: 10
Example: limit=10

購入履歴の1ページの取得件数を指定します。

pageNumber
integer <int64> >= 1
Example: pageNumber=1

購入履歴のページ数を指定します。

Responses

Response Schema: application/json
required
Array of objects

ストアで提供されるアプリ内課金機能を利用した購入の履歴

直課金商品の購入などのゲーム内通貨の発行を伴わない購入の履歴も含まれます。

Array
storeId
required
string
Enum: "appstore" "googleplay" "dmmgames"

ゲーム内商品を購入したストアID

productId
required
string

商品ID

productName
required
string

商品名

quantity
required
integer <int64>

商品の個数

price
required
integer <int64>

価格

transactionId
required
string

取引ID

storeTransactionId
required
string or null

ストア取引ID

transactionAt
required
string <date-time>

ストア取引日時(UTC)

required
Array of objects

ゲーム内通貨を消費した購入の履歴

ゲーム内通貨の消費取消が行われた購入の履歴は含まれません。

Array
storeId
required
string
Enum: "appstore" "googleplay" "dmmgames"

ゲーム内通貨を消費したストアID

description
required
string

ゲーム内通貨消費時の概要

quantity
required
integer <int64>

商品の個数

required
object

消費したゲーム内通貨の詳細

additional property
object
total
required
integer <int64>

消費したゲーム内通貨合計

paid
required
integer <int64>

消費した有償通貨

free
required
integer <int64>

消費した無償通貨

transactionId
required
string

取引ID

transactionAt
required
string <date-time>

ゲーム内通貨消費日時(UTC)

Response samples

Content type
application/json
{
  • "store": [
    • {
      • "storeId": "appstore",
      • "productId": "string",
      • "productName": "string",
      • "quantity": 1,
      • "price": 1000,
      • "transactionId": "string",
      • "storeTransactionId": "string",
      • "transactionAt": "2024-01-23T12:34:56Z"
      }
    ],
  • "ingame": [
    • {
      • "storeId": "appstore",
      • "description": "string",
      • "quantity": 1,
      • "currency": {
        • "gem": {
          • "total": 150,
          • "paid": 100,
          • "free": 50
          },
        • "coin": {
          • "total": 5,
          • "paid": 5,
          • "free": 0
          }
        },
      • "transactionId": "string",
      • "transactionAt": "2024-01-23T12:34:56Z"
      }
    ]
}

無償通貨発行履歴取得

日付の範囲について

  • 「transactionId」がある場合

    • 「startTransactionAt」と「endTransactionAt」の値は無視されます。
  • 「transactionId」がない場合

    • 「startTransactionAt」「endTransactionAt」の有無で検索範囲が下記のように変化します。

      startTransactionAt endTransactionAt 検索範囲
      なし なし 前月の 1日から現時点の範囲
      なし あり 指定された終了日時までの全て
      あり あり 指定された範囲
      あり ない 指定された開始日時から現時点の範囲
path Parameters
id
required
string = 36 characters
Example: 12345678-90ab-4cde-8f12-34567890abcd

XGユーザーID

query Parameters
storeId
Array of strings
Items Enum: "appstore" "googleplay" "dmmgames"
Example: storeId=appstore,googleplay

ストアID

指定したストアIDで行った無償通貨の発行履歴を取得します。

ストアIDを指定しない場合は、全てのストアを対象とします。

startTransactionAt
string <date-time>
Example: startTransactionAt=2024-01-01T12:34:56Z

取得する発行日時の開始日時

endTransactionAt
string <date-time>
Example: endTransactionAt=2024-01-31T12:34:56Z

取得する発行日時の終了日時

transactionId
string
Example: transactionId=ab905406-a011-4731-a42d-7a0a0fe59d77

取引IDを指定して検索したいときに指定します。

limit
integer <int64> [ 1 .. 100 ]
Default: 10
Example: limit=10

無償通貨の発行履歴の1ページの取得件数を指定します。

pageNumber
integer <int64> >= 1
Example: pageNumber=1

無償通貨の発行履歴のページ数を指定します。

Responses

Response Schema: application/json
required
Array of objects

ゲーム内通貨の取引履歴

Array
storeId
required
string
Enum: "appstore" "googleplay" "dmmgames"

取引したストアID

取引
無償通貨の発行 無償通貨を発行したストアID
ゲーム内通貨の消滅 消滅したゲーム内通貨を発行したストアID
description
required
string

摘要。 ゲーム内通貨の発行時や消費時に登録した摘要の内容が返されます。

  • 消費:「初心者おすすめ素材セットAを購入」「スタミナ回復」などの文字列。

  • 発行:「ログインボーナス」や商品IDなどの文字列。

transactionType
required
string
Enum: "issue_free" "expired"

取引履歴の種類です。

transactionType 概要
issue_free 無償通貨の発行リクエストの取引履歴です
expired 有効期限切れゲーム内通貨の履歴です
transactionAt
required
string <date-time>

取引日時(UTC)

required
Array of objects

内訳

Array
currencyId
required
string

通貨ID

currencyType
required
string
Enum: "free" "paid"

ゲーム内通貨区分

change
required
integer <int64>

ゲーム内通貨変動数

expiryAt
required
string or null <date-time>

ゲーム内通貨の有効期限(UTC)

Response samples

Content type
application/json
{
  • "history": [
    • {
      • "storeId": "dmmgames",
      • "description": "ゲーム内通貨Aを購入",
      • "details": [
        • {
          • "currencyId": "gem",
          • "currencyType": "free",
          • "change": 1000,
          • "expiryAt": null
          }
        ],
      • "transactionType": "issue_free",
      • "transactionAt": "2024-01-23T12:34:56Z"
      }
    ]
}

ゲーム内通貨消滅履歴取得

日付の範囲について

  • 「transactionId」がある場合

    • 「startTransactionAt」と「endTransactionAt」の値は無視されます。
  • 「transactionId」がない場合

    • 「startTransactionAt」「endTransactionAt」の有無で検索範囲が下記のように変化します。

      startTransactionAt endTransactionAt 検索範囲
      なし なし 前月の 1日から現時点の範囲
      なし あり 指定された終了日時までの全て
      あり あり 指定された範囲
      あり ない 指定された開始日時から現時点の範囲
path Parameters
id
required
string = 36 characters
Example: 12345678-90ab-4cde-8f12-34567890abcd

XGユーザーID

query Parameters
storeId
Array of strings
Items Enum: "appstore" "googleplay" "dmmgames"
Example: storeId=appstore,googleplay

ストアID

指定したストアIDで発行したゲーム内通貨の消滅履歴を取得します。

ストアIDを指定しない場合は、全てのストアを対象とします。

startTransactionAt
string <date-time>
Example: startTransactionAt=2024-01-01T12:34:56Z

取得する消滅日時の開始日時

endTransactionAt
string <date-time>
Example: endTransactionAt=2024-01-31T12:34:56Z

取得する消滅日時の終了日時

transactionId
string
Example: transactionId=ab905406-a011-4731-a42d-7a0a0fe59d77

取引IDを指定して検索したいときに指定します。

limit
integer <int64> [ 1 .. 100 ]
Default: 10
Example: limit=10

消滅履歴の1ページの取得件数を指定します。

pageNumber
integer <int64> >= 1
Example: pageNumber=1

消滅履歴のページ数を指定します。

Responses

Response Schema: application/json
required
Array of objects

ゲーム内通貨の取引履歴

Array
storeId
required
string
Enum: "appstore" "googleplay" "dmmgames"

取引したストアID

取引
無償通貨の発行 無償通貨を発行したストアID
ゲーム内通貨の消滅 消滅したゲーム内通貨を発行したストアID
description
required
string

摘要。 ゲーム内通貨の発行時や消費時に登録した摘要の内容が返されます。

  • 消費:「初心者おすすめ素材セットAを購入」「スタミナ回復」などの文字列。

  • 発行:「ログインボーナス」や商品IDなどの文字列。

transactionType
required
string
Enum: "issue_free" "expired"

取引履歴の種類です。

transactionType 概要
issue_free 無償通貨の発行リクエストの取引履歴です
expired 有効期限切れゲーム内通貨の履歴です
transactionAt
required
string <date-time>

取引日時(UTC)

required
Array of objects

内訳

Array
currencyId
required
string

通貨ID

currencyType
required
string
Enum: "free" "paid"

ゲーム内通貨区分

change
required
integer <int64>

ゲーム内通貨変動数

expiryAt
required
string or null <date-time>

ゲーム内通貨の有効期限(UTC)

Response samples

Content type
application/json
{
  • "history": [
    • {
      • "storeId": "dmmgames",
      • "description": "ゲーム内通貨Aを購入",
      • "details": [
        • {
          • "currencyId": "gem",
          • "currencyType": "free",
          • "change": 1000,
          • "expiryAt": null
          }
        ],
      • "transactionType": "issue_free",
      • "transactionAt": "2024-01-23T12:34:56Z"
      }
    ]
}

履歴V2(HistoryV2)

課金アイテムの購入とゲーム内通貨の取引履歴を検索するAPIです。履歴V1のゲーム内アイテムの購入に相当する履歴は、ゲーム内通貨の取引履歴の消費で検索可能です。

課金アイテム購入履歴取得

課金アイテムの購入履歴を取得します。

レスポンスのtransactionAt(XGの取引日時)は、クエリパラメーターのtimeZoneの日時に変換されます。

日付の範囲について

  • 「transactionId」がある場合

    • 「startAt」と「endAt」の値は無視されます。
    • 「storeId」が必須になります。
  • 「transactionId」がない場合

    • 「startAt」「endAt」の有無で検索範囲が下記のように変化します。

      startAt endAt 検索範囲
      なし なし 30日前のローカル時間(Asia/Tokyo)の0:00から現在日時まで
      なし あり 30日前のローカル時間(Asia/Tokyo)の0:00から指定された終了日時まで
      あり あり 指定された範囲
      あり なし 指定された開始日時から現在日時まで
path Parameters
id
required
string = 36 characters
Example: 12345678-90ab-4cde-8f12-34567890abcd

XGユーザーID

query Parameters
storeId
Array of strings
Items Enum: "appstore" "googleplay" "dmmgames" "dmmgamesChargecenter"
Example: storeId=dmmgames,appstore,googleplay

ストアID

指定したストアIDで行った購入の履歴を取得します。

transactionIdがない場合

  • ストアIDを指定しない場合は、全てのストアを対象とします。

transactionIdがある場合

  • ストアIDを指定しない場合は、ストアIDは未指定になります(購入の履歴を取得できません)。購入を行なったストアIDを指定してください。
timeZone
string
Default: "Asia/Tokyo"
Enum: "Asia/Tokyo" "Etc/UTC"
Example: timeZone=Etc/UTC

タイムゾーン

レスポンスのタイムゾーンを指定します。

startAt
string <date-time>
Example: startAt=2025-04-01T00:00:00+09:00

XG取引日時の範囲(開始)

省略時は30日前の0時になります。

endAt
string <date-time>
Example: endAt=2025-04-30T23:59:59+09:00

XG取引日時の範囲(終了)

省略時は現在日時になります。

transactionId
string
Example: transactionId=ab905406-a011-4731-a42d-7a0a0fe59d77

取引IDを指定して検索したいときに指定します。

sort
string
Default: "desc"
Enum: "asc" "desc"
Example: sort=asc

ソート

XG取引日時でソートします。

並び順
asc 昇順
desc 降順

省略時は"desc"になります。

limit
integer <int64> [ 1 .. 1000 ]
Default: 100
Example: limit=100

購入履歴の1ページの取得件数

pageNumber
integer <int64> [ 1 .. 100 ]
Default: 1
Example: pageNumber=1

購入履歴のページ数

Responses

Response Schema: application/json
totalCount
required
integer <int64>

検索された件数

required
Array of objects

課金アイテムの購入履歴詳細

Array
transactionAt
required
string <date-time>

XGの取引日時

transactionId
required
string

ストアの取引ID

storeId
required
string

ストアID

productId
required
string

商品ID

productName
required
string

商品名

quantity
required
integer <int64>

個数

price
required
integer <int64>

単価

Response samples

Content type
application/json
{
  • "totalCount": 1,
  • "purchases": [
    • {
      • "transactionAt": "2025-04-01T10:00:00+09:00",
      • "transactionId": "481539-0004687422-20150114180520-0003238000",
      • "storeId": "dmmgamesChargecenter",
      • "productId": "com.dmm.games.sample.product_1",
      • "productName": "ストアで買うよりお得な有償石",
      • "quantity": 1,
      • "price": 10000
      }
    ]
}

ゲーム内通貨取引履歴取得

ゲーム内通貨の取引履歴を取得します。

レスポンスのtransactionAt(XGの取引日時)は、クエリパラメーターのtimeZoneの日時に変換されます。

日付の範囲について

  • 「transactionId」がある場合

    • 「startAt」と「endAt」の値は無視されます。
  • 「transactionId」がない場合

    • 「startAt」「endAt」の有無で検索範囲が下記のように変化します。

      startAt endAt 検索範囲
      なし なし 30日前のローカル時間の0:00から現在日時まで
      なし あり 30日前のローカル時間の0:00から指定された終了日時まで
      あり あり 指定された範囲
      あり なし 指定された開始日時から現在日時まで
path Parameters
id
required
string = 36 characters
Example: 12345678-90ab-4cde-8f12-34567890abcd

XGユーザーID

query Parameters
storeId
Array of strings
Items Enum: "appstore" "googleplay" "dmmgames" "dmmgamesChargecenter"
Example: storeId=dmmgames,appstore,googleplay

ストアID

指定したストアIDで行った取引の履歴を取得します。 ストアIDを指定しない場合は、全てのストアを対象とします。

transactionType
Array of strings
Items Enum: "purchase" "issueFree" "consume" "expired" "compensation" "consumeCancel"
Example: transactionType=purchase,issueFree,comsume

検索対象の取引タイプ

対象
purchase 購入
issueFree 無償通貨発行
consume 消費
expired 期限切れ
compensation 補填
consumeCancel 消費取消
currencyId
Array of strings
Example: currencyId=gem

検索対象の通貨ID

currencyType
string
Enum: "free" "paid"
Example: currencyType=free

検索対象のゲーム内通貨区分

timeZone
string
Default: "Asia/Tokyo"
Enum: "Asia/Tokyo" "Etc/UTC"
Example: timeZone=Etc/UTC

タイムゾーン

レスポンスのタイムゾーンを指定します。

startAt
string <date-time>
Example: startAt=2025-04-01T00:00:00+09:00

取引日時の範囲(開始)

省略時は30日前の0時になります。

endAt
string <date-time>
Example: endAt=2025-04-30T23:59:59+09:00

取引日時の範囲(終了)

省略時は現在日時になります。

transactionId
string
Example: transactionId=ab905406-a011-4731-a42d-7a0a0fe59d77

取引IDを指定して検索したいときに指定します。

sort
string
Default: "desc"
Enum: "asc" "desc"
Example: sort=asc

ソート

取引日時でソートします。

並び順
asc 昇順
desc 降順

省略時は"desc"になります。

limit
integer <int64> [ 1 .. 1000 ]
Default: 100
Example: limit=100

取引履歴の1ページの取得件数

pageNumber
integer <int64> [ 1 .. 100 ]
Default: 1
Example: pageNumber=1

取引履歴のページ数

Responses

Response Schema: application/json
totalCount
required
integer <int64>

検索された件数

required
Array of objects

課金アイテムの購入履歴詳細

Array
transactionAt
required
string <date-time>

取引日時

transactionId
required
string

取引ID

transactionType
required
string

取引タイプ

storeId
required
string

ストアID

description
required
string

摘要

transactionTypeがpurchaseの場合、productIdがレスポンスされます。
expiredの場合、「有効期限切れ」がレスポンスされます。
上記以外は各APIのdescriptionの値がレスポンスされます。
※compensation(補填)は、XG Developer Siteの補填機能から実行可能です。

currencyId
required
string

通貨ID

currencyType
required
string

ゲーム内通貨区分

quantity
required
integer <int64>

取引したゲーム内通貨の個数

balance
integer <int64>

取引後のゲーム内通貨の残高

Response samples

Content type
application/json
{
  • "totalCount": 1,
  • "currencyTransactions": [
    • {
      • "transactionAt": "2025-04-01T10:00:00+09:00",
      • "transactionId": "11234567-890a-4012-a012-34567890abcd",
      • "transactionType": "purchase",
      • "storeId": "dmmgames",
      • "description": "com.dmm.games.sample.product_1",
      • "currencyId": "gem",
      • "currencyType": "paid",
      • "quantity": 5000,
      • "balance": 10000
      }
    ]
}

App Store Server API(Storekit)

XGに登録した認証情報を使用して、App Store Server APIを呼び出します。

GETリクエストを実行(App Store 本番環境)

App Storeの本番環境に対してApp Store Server APIのGETリクエストを実行します。

path Parameters
path:.
string
Example: inApps/v2/history/2000000012345678?productType=CONSUMABLE

https://api.storekit.itunes.apple.com 」以降のパスおよびクエリパラメーターを指定してください。

Responses

Response Schema: application/json
required
object

App Store Server APIからのレスポンス情報

status
required
integer <int>

HTTPステータスコード

required
string or string
One of
string <json>

レスポンスボディ

required
object

レスポンスヘッダー

レスポンスヘッダーのキー*
additional property
string

レスポンスヘッダーの値

object

XGからApp Store Server APIへのリクエストが失敗した際のXGのエラー情報

status
required
integer

XGからApp Store Server APIへリクエストした際のHTTPステータスコード

code
required
string <integer>

XGのエラーコード

title
required
string

エラーの概要

detail
required
string

エラーの詳細理由

Response samples

Content type
application/json
Example
{
  • "external": {
    • "status": 200,
    • "body": {
      • "signedTransactionInfo": "eyJhbGciOiJFUzI1NiIsIng1..."
      },
    • "header": {
      • "Apple-Originating-System": "CommerceGateway",
      • "Apple-Seq": "0.0",
      • "Apple-Timing-App": "19 ms",
      • "Apple-Tk": "false",
      • "B3": "f4118724ee8b60d320c234c5c3a14947-40ff555eea8fd4ce",
      • "Content-Length": "5147",
      • "Content-Type": "application/json",
      • "Date": "Fri, 10 Jan 2025 06:44:02 GMT",
      • "Server": "daiquiri/5",
      • "Strict-Transport-Security": "max-age=31536000; includeSubDomains",
      • "X-Apple-Jingle-Correlation-Key": "6QIYOJHORNQNGIGCGTC4HIKJI4",
      • "X-Apple-Request-Uuid": "f4118724-ee8b-60d3-20c2-34c5c3a14947",
      • "X-B3-Spanid": "40ff555eea8fd4ce",
      • "X-B3-Traceid": "f4118724ee8b60d320c234c5c3a14947",
      • "X-Daiquiri-Instance": "daiquiri:45824002:st44p00it-hyhk15104701:7987:24RELEASE242:daiquiri-amp-commerce-clients-ext-001-st",
      • "X-Responding-Instance": "CommerceGateway:20108:::"
      }
    }
}

POSTリクエストを実行(App Store 本番環境)

App Storeの本番環境に対してApp Store Server APIのPOSTリクエストを実行します。

path Parameters
path:.
string
Example: inApps/v1/subscriptions/extend/mass/

https://api.storekit.itunes.apple.com 」以降のパスを指定してください。

Request Body schema: application/json

App Store Server APIに対してリクエストを行う際と同様にリクエストボディを指定してください。

Schema not provided

Responses

Response Schema: application/json
required
object

App Store Server APIからのレスポンス情報

status
required
integer <int>

HTTPステータスコード

required
string or string
One of
string <json>

レスポンスボディ

required
object

レスポンスヘッダー

レスポンスヘッダーのキー*
additional property
string

レスポンスヘッダーの値

object

XGからApp Store Server APIへのリクエストが失敗した際のXGのエラー情報

status
required
integer

XGからApp Store Server APIへリクエストした際のHTTPステータスコード

code
required
string <integer>

XGのエラーコード

title
required
string

エラーの概要

detail
required
string

エラーの詳細理由

Response samples

Content type
application/json
Example
{
  • "external": {
    • "status": 200,
    • "body": {
      • "signedTransactionInfo": "eyJhbGciOiJFUzI1NiIsIng1..."
      },
    • "header": {
      • "Apple-Originating-System": "CommerceGateway",
      • "Apple-Seq": "0.0",
      • "Apple-Timing-App": "19 ms",
      • "Apple-Tk": "false",
      • "B3": "f4118724ee8b60d320c234c5c3a14947-40ff555eea8fd4ce",
      • "Content-Length": "5147",
      • "Content-Type": "application/json",
      • "Date": "Fri, 10 Jan 2025 06:44:02 GMT",
      • "Server": "daiquiri/5",
      • "Strict-Transport-Security": "max-age=31536000; includeSubDomains",
      • "X-Apple-Jingle-Correlation-Key": "6QIYOJHORNQNGIGCGTC4HIKJI4",
      • "X-Apple-Request-Uuid": "f4118724-ee8b-60d3-20c2-34c5c3a14947",
      • "X-B3-Spanid": "40ff555eea8fd4ce",
      • "X-B3-Traceid": "f4118724ee8b60d320c234c5c3a14947",
      • "X-Daiquiri-Instance": "daiquiri:45824002:st44p00it-hyhk15104701:7987:24RELEASE242:daiquiri-amp-commerce-clients-ext-001-st",
      • "X-Responding-Instance": "CommerceGateway:20108:::"
      }
    }
}

PUTリクエストを実行(App Store 本番環境)

App Storeの本番環境に対してApp Store Server APIのPUTリクエストを実行します。

path Parameters
path:.
string
Example: inApps/v1/transactions/consumption/2000000012345678

https://api.storekit.itunes.apple.com 」以降のパスを指定してください。

Request Body schema: application/json

App Store Server APIに対してリクエストを行う際と同様にリクエストボディを指定してください。

Schema not provided

Responses

Response Schema: application/json
required
object

App Store Server APIからのレスポンス情報

status
required
integer <int>

HTTPステータスコード

required
string or string
One of
string <json>

レスポンスボディ

required
object

レスポンスヘッダー

レスポンスヘッダーのキー*
additional property
string

レスポンスヘッダーの値

object

XGからApp Store Server APIへのリクエストが失敗した際のXGのエラー情報

status
required
integer

XGからApp Store Server APIへリクエストした際のHTTPステータスコード

code
required
string <integer>

XGのエラーコード

title
required
string

エラーの概要

detail
required
string

エラーの詳細理由

Response samples

Content type
application/json
Example
{
  • "external": {
    • "status": 200,
    • "body": {
      • "signedTransactionInfo": "eyJhbGciOiJFUzI1NiIsIng1..."
      },
    • "header": {
      • "Apple-Originating-System": "CommerceGateway",
      • "Apple-Seq": "0.0",
      • "Apple-Timing-App": "19 ms",
      • "Apple-Tk": "false",
      • "B3": "f4118724ee8b60d320c234c5c3a14947-40ff555eea8fd4ce",
      • "Content-Length": "5147",
      • "Content-Type": "application/json",
      • "Date": "Fri, 10 Jan 2025 06:44:02 GMT",
      • "Server": "daiquiri/5",
      • "Strict-Transport-Security": "max-age=31536000; includeSubDomains",
      • "X-Apple-Jingle-Correlation-Key": "6QIYOJHORNQNGIGCGTC4HIKJI4",
      • "X-Apple-Request-Uuid": "f4118724-ee8b-60d3-20c2-34c5c3a14947",
      • "X-B3-Spanid": "40ff555eea8fd4ce",
      • "X-B3-Traceid": "f4118724ee8b60d320c234c5c3a14947",
      • "X-Daiquiri-Instance": "daiquiri:45824002:st44p00it-hyhk15104701:7987:24RELEASE242:daiquiri-amp-commerce-clients-ext-001-st",
      • "X-Responding-Instance": "CommerceGateway:20108:::"
      }
    }
}

GETリクエストを実行(App Store Sandbox環境)

App StoreのSandbox環境に対してApp Store Server APIのGETリクエストを実行します。

path Parameters
path:.
string
Example: inApps/v2/history/2000000012345678?productType=CONSUMABLE

https://api.storekit-sandbox.itunes.apple.com 」以降のパスおよびクエリパラメーターを指定してください。

Responses

Response Schema: application/json
required
object

App Store Server APIからのレスポンス情報

status
required
integer <int>

HTTPステータスコード

required
string or string
One of
string <json>

レスポンスボディ

required
object

レスポンスヘッダー

レスポンスヘッダーのキー*
additional property
string

レスポンスヘッダーの値

object

XGからApp Store Server APIへのリクエストが失敗した際のXGのエラー情報

status
required
integer

XGからApp Store Server APIへリクエストした際のHTTPステータスコード

code
required
string <integer>

XGのエラーコード

title
required
string

エラーの概要

detail
required
string

エラーの詳細理由

Response samples

Content type
application/json
Example
{
  • "external": {
    • "status": 200,
    • "body": {
      • "signedTransactionInfo": "eyJhbGciOiJFUzI1NiIsIng1..."
      },
    • "header": {
      • "Apple-Originating-System": "CommerceGateway",
      • "Apple-Seq": "0.0",
      • "Apple-Timing-App": "19 ms",
      • "Apple-Tk": "false",
      • "B3": "f4118724ee8b60d320c234c5c3a14947-40ff555eea8fd4ce",
      • "Content-Length": "5147",
      • "Content-Type": "application/json",
      • "Date": "Fri, 10 Jan 2025 06:44:02 GMT",
      • "Server": "daiquiri/5",
      • "Strict-Transport-Security": "max-age=31536000; includeSubDomains",
      • "X-Apple-Jingle-Correlation-Key": "6QIYOJHORNQNGIGCGTC4HIKJI4",
      • "X-Apple-Request-Uuid": "f4118724-ee8b-60d3-20c2-34c5c3a14947",
      • "X-B3-Spanid": "40ff555eea8fd4ce",
      • "X-B3-Traceid": "f4118724ee8b60d320c234c5c3a14947",
      • "X-Daiquiri-Instance": "daiquiri:45824002:st44p00it-hyhk15104701:7987:24RELEASE242:daiquiri-amp-commerce-clients-ext-001-st",
      • "X-Responding-Instance": "CommerceGateway:20108:::"
      }
    }
}

POSTリクエストを実行(App Store Sandbox環境)

App StoreのSandbox環境に対してApp Store Server APIのPOSTリクエストを実行します。

path Parameters
path:.
string
Example: inApps/v1/subscriptions/extend/mass/

https://api.storekit-sandbox.itunes.apple.com/ 」以降のパスを指定してください。

Request Body schema: application/json

App Store Server APIに対してリクエストを行う際と同様にリクエストボディを指定してください。

Schema not provided

Responses

Response Schema: application/json
required
object

App Store Server APIからのレスポンス情報

status
required
integer <int>

HTTPステータスコード

required
string or string
One of
string <json>

レスポンスボディ

required
object

レスポンスヘッダー

レスポンスヘッダーのキー*
additional property
string

レスポンスヘッダーの値

object

XGからApp Store Server APIへのリクエストが失敗した際のXGのエラー情報

status
required
integer

XGからApp Store Server APIへリクエストした際のHTTPステータスコード

code
required
string <integer>

XGのエラーコード

title
required
string

エラーの概要

detail
required
string

エラーの詳細理由

Response samples

Content type
application/json
Example
{
  • "external": {
    • "status": 200,
    • "body": {
      • "signedTransactionInfo": "eyJhbGciOiJFUzI1NiIsIng1..."
      },
    • "header": {
      • "Apple-Originating-System": "CommerceGateway",
      • "Apple-Seq": "0.0",
      • "Apple-Timing-App": "19 ms",
      • "Apple-Tk": "false",
      • "B3": "f4118724ee8b60d320c234c5c3a14947-40ff555eea8fd4ce",
      • "Content-Length": "5147",
      • "Content-Type": "application/json",
      • "Date": "Fri, 10 Jan 2025 06:44:02 GMT",
      • "Server": "daiquiri/5",
      • "Strict-Transport-Security": "max-age=31536000; includeSubDomains",
      • "X-Apple-Jingle-Correlation-Key": "6QIYOJHORNQNGIGCGTC4HIKJI4",
      • "X-Apple-Request-Uuid": "f4118724-ee8b-60d3-20c2-34c5c3a14947",
      • "X-B3-Spanid": "40ff555eea8fd4ce",
      • "X-B3-Traceid": "f4118724ee8b60d320c234c5c3a14947",
      • "X-Daiquiri-Instance": "daiquiri:45824002:st44p00it-hyhk15104701:7987:24RELEASE242:daiquiri-amp-commerce-clients-ext-001-st",
      • "X-Responding-Instance": "CommerceGateway:20108:::"
      }
    }
}

PUTリクエストを実行(App Store Sandbox環境)

App StoreのSandbox環境に対してApp Store Server APIのPUTリクエストを実行します。

path Parameters
path:.
string
Example: inApps/v1/transactions/consumption/2000000012345678

https://api.storekit-sandbox.itunes.apple.com/ 」以降のパスを指定してください。

Request Body schema: application/json

App Store Server APIに対してリクエストを行う際と同様にリクエストボディを指定してください。

Schema not provided

Responses

Response Schema: application/json
required
object

App Store Server APIからのレスポンス情報

status
required
integer <int>

HTTPステータスコード

required
string or string
One of
string <json>

レスポンスボディ

required
object

レスポンスヘッダー

レスポンスヘッダーのキー*
additional property
string

レスポンスヘッダーの値

object

XGからApp Store Server APIへのリクエストが失敗した際のXGのエラー情報

status
required
integer

XGからApp Store Server APIへリクエストした際のHTTPステータスコード

code
required
string <integer>

XGのエラーコード

title
required
string

エラーの概要

detail
required
string

エラーの詳細理由

Response samples

Content type
application/json
Example
{
  • "external": {
    • "status": 200,
    • "body": {
      • "signedTransactionInfo": "eyJhbGciOiJFUzI1NiIsIng1..."
      },
    • "header": {
      • "Apple-Originating-System": "CommerceGateway",
      • "Apple-Seq": "0.0",
      • "Apple-Timing-App": "19 ms",
      • "Apple-Tk": "false",
      • "B3": "f4118724ee8b60d320c234c5c3a14947-40ff555eea8fd4ce",
      • "Content-Length": "5147",
      • "Content-Type": "application/json",
      • "Date": "Fri, 10 Jan 2025 06:44:02 GMT",
      • "Server": "daiquiri/5",
      • "Strict-Transport-Security": "max-age=31536000; includeSubDomains",
      • "X-Apple-Jingle-Correlation-Key": "6QIYOJHORNQNGIGCGTC4HIKJI4",
      • "X-Apple-Request-Uuid": "f4118724-ee8b-60d3-20c2-34c5c3a14947",
      • "X-B3-Spanid": "40ff555eea8fd4ce",
      • "X-B3-Traceid": "f4118724ee8b60d320c234c5c3a14947",
      • "X-Daiquiri-Instance": "daiquiri:45824002:st44p00it-hyhk15104701:7987:24RELEASE242:daiquiri-amp-commerce-clients-ext-001-st",
      • "X-Responding-Instance": "CommerceGateway:20108:::"
      }
    }
}

system

XG APIサーバー ヘルスチェック

XG APIサーバーが正常に稼働しているかチェックします。
XG APIの認証処理なしでリクエスト可能です。

Responses

Response Schema: application/json
object

Response samples

Content type
application/json
{ }