/api/v2/server-side-api/vc/transactions/ 仮想通貨トランザクションを作成する
1回のアトミックトランザクションで、プロファイルに対して1つ以上の仮想通貨をクレジットまたはデビットします。クレジット(付与)する場合は正の amount を、デビット(消費)する場合は負の amount を使用してください。すべての項目は一括で適用されます — いずれかの項目が失敗した場合、何も適用されません。
通貨コードはリクエストごとに1回のみ使用できます。このエンドポイントを通じたクレジットは、常に有効期限なしの残高を作成します。
Header parameters
お客様のシステムにおける顧客の一意のID。adapty-customer-user-id または adapty-profile-id のいずれかが必須です。
お客様のシステムにおけるプロファイルの一意のID。匿名プロファイルを扱う場合に最適な選択肢です。adapty-customer-user-id または adapty-profile-id のいずれかが必須です。
リクエストを冪等にするUUID v4。同じキーでリクエストを再試行した場合、Adaptyは残高を再度変更することなく元のトランザクションの結果を返します。有効なUUID v4である必要があります。
キーは最大1時間、単一プロファイルのスコープで記憶されます。その期間を過ぎると、同じキーでのリクエストは新しいトランザクションとして適用されます — つまり、このキーは長期的な付与の重複排除ではなく、安全にコールを再試行するために使用してください。
Request body
バーチャル通貨トランザクションを作成するためのリクエストボディ。
アトミックに適用する残高調整。各通貨コードは一度のみ指定できます。
調整するバーチャル通貨コード。
適用する金額。正の値は通貨を付与(クレジット)し、負の値は通貨を消費(デビット)します。ゼロは指定できません。
トランザクションとともに保存されるオプションのキーと値のペア。最大5つのキーを指定できます。各キーは ^[a-z0-9_]{1,30}$ に一致し、各値は最大200文字です。
Responses
トランザクションが正常に適用されました
Schema
バーチャル通貨トランザクションの結果。
作成されたトランザクションの一意のID。
このリクエストによって影響を受けた各通貨のトランザクション後の残高(items の各アイテムにつき1エントリ)。プロファイルの残高一覧全体を取得するには、GET /api/v2/server-side-api/vc/balances/ を使用してください。
仮想通貨コード。
仮想通貨の表示名。
現在保留中の金額を含む合計残高。
すべてのアクティブな保留(予約済み金額)の合計。現在は常に 0。
使用可能な残高。balance - held として計算されます。
Example
{
"transaction_id": "0190e8a4-1c2b-7def-8abc-2c1a4b6d8e90",
"balances": [
{
"code": "COINS",
"name": "Gold Coins",
"balance": 12950,
"held": 0,
"available": 12950
}
]
} 不正なリクエスト。error_code フィールドが原因を示します: insufficient_balance、unknown_currency、duplicate_currency、amount_zero、balance_overflow、empty_items、または idempotency_key_invalid。
Schema
エラーの発生源
エラーメッセージの配列
エラーの短い名称
HTTPステータスコード
Example
{
"errors": [
{
"source": "currency_code",
"errors": [
"Insufficient balance for currency COINS"
]
}
],
"error_code": "insufficient_balance",
"status_code": 400
} 認証エラー。APIキーが見つからないか無効です。
Schema
エラーの発生源
エラーメッセージの配列
エラーの短い名称
HTTPステータスコード
禁止。このアプリでは仮想通貨のServer APIが有効になっていません。アクセスをリクエストするにはAdaptyサポートにお問い合わせください。
Schema
エラーの発生源
エラーメッセージの配列
エラーの短い名称
HTTPステータスコード
Example
{
"errors": [
{
"source": null,
"errors": [
"Server API for virtual currencies is not enabled for this app. Contact Adapty support to request access."
]
}
],
"error_code": "feature_not_enabled",
"status_code": 403
} プロファイルが見つかりません。
Schema
エラーの発生源
エラーメッセージの配列
エラーの短い名称
HTTPステータスコード
競合。error_code フィールドが原因を示します:
idempotency_in_flight— 同じIdempotency-Keyを持つリクエストがまだ処理中です。Retry-Afterレスポンスヘッダーの間隔後に再試行してください。duplicate_source_transaction— 基となるストアトランザクションはすでにクレジット済みのため、再度適用されません。
Schema
エラーの発生源
エラーメッセージの配列
エラーの短い名称
HTTPステータスコード
Example
{
"errors": [
{
"source": null,
"errors": [
"A similar request is being processed."
]
}
],
"error_code": "idempotency_in_flight",
"status_code": 409
} 処理不可能なエンティティ。リクエストボディがスキーマバリデーションに失敗しました — たとえば、items に20件を超えるエントリが含まれているか、metadata のキーまたは値が制約に違反している場合などです。
Schema
エラーの発生源
エラーメッセージの配列
エラーの短い名称
HTTPステータスコード
リクエスト過多。アプリごとまたはグローバルのレート制限を超えました(error_code は rate_limited)。デフォルトの制限は、アプリごとに1分あたり600リクエスト、グローバルで1分あたり6000リクエストです。
Schema
エラーの発生源
エラーメッセージの配列
エラーの短い名称
HTTPステータスコード
内部サーバーエラー