Pricing API
SaaSus Pricing API Schema (1.0.0)
SaaSus Pricing API Schema
プライシングユニットの一覧を取得
料金のベースとなる最小の計測単位を取得します。 「固定ユニット」(type=fixed)は基本料金などの月額固定料金の単位、 「使用量ユニット」(type=usage)はユーザ数課金などの1単位あたりごとに料金が発生す る単位、 「段階ユニット」(type=tiered)は携帯電話の段階的パケット料金のように利用量の段階ごとに一定の料金の単位、 「段階的使用量ユニット」(type=tiered_usage)はボリュームディスカウントのように利用量に応じて1単位あたりの料金が変化していく単位、となります。
Authorizations:
Responses
Response samples
- 200
- 500
{- "units": [
- {
- "id": "69e732d6-8ecc-45c4-c2eb-8438f7ffe775",
- "metering_unit_id": "69e732d6-8ecc-45c4-c2eb-8438f7ffe775",
- "recurring_interval": "month",
- "used": false,
- "upper_count": 100,
- "metering_unit_name": "test_unit",
- "aggregate_usage": "sum",
- "name": "storage_unit",
- "display_name": "ストレージユニット",
- "description": "KB unit for storage usage",
- "type": "fixed",
- "currency": "JPY",
- "tiers": [
- {
- "up_to": 5,
- "unit_amount": 1000,
- "flat_amount": 500,
- "inf": true
}
]
}
]
}
プライシングユニットを作成
プライシングユニットを作成します。
Authorizations:
Request Body schema: application/json
upper_count required | integer 上限値 |
metering_unit_name required | string 計測ユニット名 |
aggregate_usage | string (AggregateUsage) Enum: "sum" "max" 使用量の集計方法 sum: 期間内の使用量の合計 max: 期間内の使用量の最大値 |
name required | string 名前 |
display_name required | string 表示名 |
description required | string 説明 |
type required | string (UnitType) 計測単位の種別 fixed: 固定ユニット usage: 使用量ユニット tiered: 段階ユニット tiered_usage: 段階的使用量ユニット |
currency required | string (Currency) Enum: "JPY" "USD" 計測単位の通貨 |
required | Array of objects (従量課金情報) |
Responses
Request samples
- Payload
{- "upper_count": 100,
- "metering_unit_name": "test_unit",
- "aggregate_usage": "sum",
- "name": "storage_unit",
- "display_name": "ストレージユニット",
- "description": "KB unit for storage usage",
- "type": "tiered_usage",
- "currency": "JPY",
- "tiers": [
- {
- "up_to": 5,
- "unit_amount": 1000,
- "flat_amount": 500,
- "inf": true
}
]
}
Response samples
- 201
- 500
{- "id": "69e732d6-8ecc-45c4-c2eb-8438f7ffe775",
- "metering_unit_id": "69e732d6-8ecc-45c4-c2eb-8438f7ffe775",
- "recurring_interval": "month",
- "used": false,
- "upper_count": 100,
- "metering_unit_name": "test_unit",
- "aggregate_usage": "sum",
- "name": "storage_unit",
- "display_name": "ストレージユニット",
- "description": "KB unit for storage usage",
- "type": "tiered_usage",
- "currency": "JPY",
- "tiers": [
- {
- "up_to": 5,
- "unit_amount": 1000,
- "flat_amount": 500,
- "inf": true
}
]
}
プライシングユニットを取得
プライシングユニットを取得します。
Authorizations:
path Parameters
pricing_unit_id required | string (Uuid) Example: 69e732d6-8ecc-45c4-c2eb-8438f7ffe775 ユニットID |
Responses
Response samples
- 200
- 500
{- "id": "69e732d6-8ecc-45c4-c2eb-8438f7ffe775",
- "metering_unit_id": "69e732d6-8ecc-45c4-c2eb-8438f7ffe775",
- "recurring_interval": "month",
- "used": false,
- "upper_count": 100,
- "metering_unit_name": "test_unit",
- "aggregate_usage": "sum",
- "name": "storage_unit",
- "display_name": "ストレージユニット",
- "description": "KB unit for storage usage",
- "type": "tiered_usage",
- "currency": "JPY",
- "tiers": [
- {
- "up_to": 5,
- "unit_amount": 1000,
- "flat_amount": 500,
- "inf": true
}
]
}
プライシングユニットを更新
プライシングユニット情報を更新します。
Authorizations:
path Parameters
pricing_unit_id required | string (Uuid) Example: 69e732d6-8ecc-45c4-c2eb-8438f7ffe775 ユニットID |
Request Body schema: application/json
upper_count required | integer 上限値 |
metering_unit_name required | string 計測ユニット名 |
aggregate_usage | string (AggregateUsage) Enum: "sum" "max" 使用量の集計方法 sum: 期間内の使用量の合計 max: 期間内の使用量の最大値 |
name required | string 名前 |
display_name required | string 表示名 |
description required | string 説明 |
type required | string (UnitType) 計測単位の種別 fixed: 固定ユニット usage: 使用量ユニット tiered: 段階ユニット tiered_usage: 段階的使用量ユニッ ト |
currency required | string (Currency) Enum: "JPY" "USD" 計測単位の通貨 |
required | Array of objects (従量課金情報) |
Responses
Request samples
- Payload
{- "upper_count": 100,
- "metering_unit_name": "test_unit",
- "aggregate_usage": "sum",
- "name": "storage_unit",
- "display_name": "ストレージユニット",
- "description": "KB unit for storage usage",
- "type": "tiered_usage",
- "currency": "JPY",
- "tiers": [
- {
- "up_to": 5,
- "unit_amount": 1000,
- "flat_amount": 500,
- "inf": true
}
]
}
Response samples
- 500
{- "type": "string",
- "message": "string"
}
プライシング機能メニュー一覧を取得
機能メニュー一覧を取得します。計測単位を複数まとめて、1つの機能メニューとして定義します。ここで定義した機能メニューを複数合わせ1つの料金プランとします。
Authorizations:
Responses
Response samples
- 200
- 500
{- "pricing_menus": [
- {
- "id": "69e732d6-8ecc-45c4-c2eb-8438f7ffe775",
- "name": "Ten Users Menu",
- "display_name": "10ユーザーメニュー",
- "description": "Can use 10 users.",
- "used": false,
- "units": [
- {
- "id": "69e732d6-8ecc-45c4-c2eb-8438f7ffe775",
- "metering_unit_id": "69e732d6-8ecc-45c4-c2eb-8438f7ffe775",
- "recurring_interval": "month",
- "used": false,
- "upper_count": 100,
- "metering_unit_name": "test_unit",
- "aggregate_usage": "sum",
- "name": "storage_unit",
- "display_name": "ストレージユニット",
- "description": "KB unit for storage usage",
- "type": "fixed",
- "currency": "JPY",
- "tiers": [
- {
- "up_to": 5,
- "unit_amount": 1000,
- "flat_amount": 500,
- "inf": true
}
]
}
]
}
]
}
プライシング機能メニューを作成
プライシング機能メニューを作成します。
Authorizations:
Request Body schema: application/json
name required | string メニュー名 |
display_name required | string メニュー表示名 |
description required | string メニュー説明 |
unit_ids required | Array of strings (Uuid) 追加するユニットID |
Responses
Request samples
- Payload
{- "name": "Ten Users Menu",
- "display_name": "10ユーザーメニュー",
- "description": "Can use 10 users.",
- "unit_ids": [
- "69e732d6-8ecc-45c4-c2eb-8438f7ffe775"
]
}
Response samples
- 201
- 500
{- "id": "69e732d6-8ecc-45c4-c2eb-8438f7ffe775",
- "name": "Ten Users Menu",
- "display_name": "10ユーザーメニュー",
- "description": "Can use 10 users.",
- "used": false,
- "units": [
- {
- "id": "69e732d6-8ecc-45c4-c2eb-8438f7ffe775",
- "metering_unit_id": "69e732d6-8ecc-45c4-c2eb-8438f7ffe775",
- "recurring_interval": "month",
- "used": false,
- "upper_count": 100,
- "metering_unit_name": "test_unit",
- "aggregate_usage": "sum",
- "name": "storage_unit",
- "display_name": "ストレージユニット",
- "description": "KB unit for storage usage",
- "type": "fixed",
- "currency": "JPY",
- "tiers": [
- {
- "up_to": 5,
- "unit_amount": 1000,
- "flat_amount": 500,
- "inf": true
}
]
}
]
}
プライシング機能メニューを取得
プライシング機能メニューを取得します。
Authorizations:
path Parameters
menu_id required | string (Uuid) Example: 69e732d6-8ecc-45c4-c2eb-8438f7ffe775 メニューID |
Responses
Response samples
- 200
- 500
{- "id": "69e732d6-8ecc-45c4-c2eb-8438f7ffe775",
- "name": "Ten Users Menu",
- "display_name": "10ユーザーメニュー",
- "description": "Can use 10 users.",
- "used": false,
- "units": [
- {
- "id": "69e732d6-8ecc-45c4-c2eb-8438f7ffe775",
- "metering_unit_id": "69e732d6-8ecc-45c4-c2eb-8438f7ffe775",
- "recurring_interval": "month",
- "used": false,
- "upper_count": 100,
- "metering_unit_name": "test_unit",
- "aggregate_usage": "sum",
- "name": "storage_unit",
- "display_name": "ストレージユニット",
- "description": "KB unit for storage usage",
- "type": "fixed",
- "currency": "JPY",
- "tiers": [
- {
- "up_to": 5,
- "unit_amount": 1000,
- "flat_amount": 500,
- "inf": true
}
]
}
]
}
プライシング機能メニューを更新
プライシング機能メニューを更新します。
Authorizations:
path Parameters
menu_id required | string (Uuid) Example: 69e732d6-8ecc-45c4-c2eb-8438f7ffe775 メニューID |
Request Body schema: application/json
name required | string メニュー名 |
display_name required | string メニュー表示名 |
description required | string メニュー説明 |
unit_ids required | Array of strings (Uuid) 追加するユニットID |
Responses
Request samples
- Payload
{- "name": "Ten Users Menu",
- "display_name": "10ユーザーメニュー",
- "description": "Can use 10 users.",
- "unit_ids": [
- "69e732d6-8ecc-45c4-c2eb-8438f7ffe775"
]
}
Response samples
- 500
{- "type": "string",
- "message": "string"
}
料金プラン一覧を取得
料金プラン一覧を取得します。機能メニューを複数まとめて、1つの料金プランとして定義します。ここで定義した料金プランを各テナントは選ぶことができます。もし特定テナント特有の料金(プライベートプライシング)がある場合は、そのテナント専用の料金プランを作成して結びつけます。
Authorizations:
Responses
Response samples
- 200
- 500
{- "pricing_plans": [
- {
- "id": "69e732d6-8ecc-45c4-c2eb-8438f7ffe775",
- "name": "Standard Plan",
- "display_name": "スタンダードプラン",
- "description": "Standard Plan for normal use",
- "used": false,
- "pricing_menus": [
- {
- "id": "69e732d6-8ecc-45c4-c2eb-8438f7ffe775",
- "name": "Ten Users Menu",
- "display_name": "10ユーザーメニュー",
- "description": "Can use 10 users.",
- "used": false,
- "units": [
- {
- "id": "69e732d6-8ecc-45c4-c2eb-8438f7ffe775",
- "metering_unit_id": "69e732d6-8ecc-45c4-c2eb-8438f7ffe775",
- "recurring_interval": "month",
- "used": false,
- "upper_count": 100,
- "metering_unit_name": "test_unit",
- "aggregate_usage": "sum",
- "name": "storage_unit",
- "display_name": "ストレージユニット",
- "description": "KB unit for storage usage",
- "type": "fixed",
- "currency": "JPY",
- "tiers": [
- {
- "up_to": 5,
- "unit_amount": 1000,
- "flat_amount": 500,
- "inf": true
}
]
}
]
}
]
}
]
}
料金プランを作成
料金プランを作成します。
Authorizations:
Request Body schema: application/json
name required | string 料金プラン名 |
display_name required | string 料金プラン表示名 |
description required | string 料金プラン説明 |
menu_ids required | Array of strings (Uuid) メニューID(料金プランに追加するメニューID) |
Responses
Request samples
- Payload
{- "name": "Standard Plan",
- "display_name": "スタンダードプラン",
- "description": "Standard Plan for normal use",
- "menu_ids": [
- "69e732d6-8ecc-45c4-c2eb-8438f7ffe775"
]
}
Response samples
- 201
- 500
{- "id": "69e732d6-8ecc-45c4-c2eb-8438f7ffe775",
- "name": "Standard Plan",
- "display_name": "スタンダードプラン",
- "description": "Standard Plan for normal use",
- "used": false,
- "pricing_menus": [
- {
- "id": "69e732d6-8ecc-45c4-c2eb-8438f7ffe775",
- "name": "Ten Users Menu",
- "display_name": "10ユーザーメニュー",
- "description": "Can use 10 users.",
- "used": false,
- "units": [
- {
- "id": "69e732d6-8ecc-45c4-c2eb-8438f7ffe775",
- "metering_unit_id": "69e732d6-8ecc-45c4-c2eb-8438f7ffe775",
- "recurring_interval": "month",
- "used": false,
- "upper_count": 100,
- "metering_unit_name": "test_unit",
- "aggregate_usage": "sum",
- "name": "storage_unit",
- "display_name": "ストレージユニット",
- "description": "KB unit for storage usage",
- "type": "fixed",
- "currency": "JPY",
- "tiers": [
- {
- "up_to": 5,
- "unit_amount": 1000,
- "flat_amount": 500,
- "inf": true
}
]
}
]
}
]
}
料金プランを取得
料金プランを取得します。
Authorizations:
path Parameters
plan_id required | string (Uuid) Example: 69e732d6-8ecc-45c4-c2eb-8438f7ffe775 料金プランID |
Responses
Response samples
- 200
- 500
{- "id": "69e732d6-8ecc-45c4-c2eb-8438f7ffe775",
- "name": "Standard Plan",
- "display_name": "スタンダードプラン",
- "description": "Standard Plan for normal use",
- "used": false,
- "pricing_menus": [
- {
- "id": "69e732d6-8ecc-45c4-c2eb-8438f7ffe775",
- "name": "Ten Users Menu",
- "display_name": "10ユーザーメニュー",
- "description": "Can use 10 users.",
- "used": false,
- "units": [
- {
- "id": "69e732d6-8ecc-45c4-c2eb-8438f7ffe775",
- "metering_unit_id": "69e732d6-8ecc-45c4-c2eb-8438f7ffe775",
- "recurring_interval": "month",
- "used": false,
- "upper_count": 100,
- "metering_unit_name": "test_unit",
- "aggregate_usage": "sum",
- "name": "storage_unit",
- "display_name": "ストレージユニット",
- "description": "KB unit for storage usage",
- "type": "fixed",
- "currency": "JPY",
- "tiers": [
- {
- "up_to": 5,
- "unit_amount": 1000,
- "flat_amount": 500,
- "inf": true
}
]
}
]
}
]
}
料金プランを更新
料金プランを更新します。
Authorizations:
path Parameters
plan_id required | string (Uuid) Example: 69e732d6-8ecc-45c4-c2eb-8438f7ffe775 料金プランID |
Request Body schema: application/json
name required | string 料金プラン名 |
display_name required | string 料金プラン表示名 |
description required | string 料金プラン説明 |
menu_ids required | Array of strings (Uuid) メニューID(料金プランに追加するメニューID) |
Responses
Request samples
- Payload
{- "name": "Standard Plan",
- "display_name": "スタンダードプラン",
- "description": "Standard Plan for normal use",
- "menu_ids": [
- "69e732d6-8ecc-45c4-c2eb-8438f7ffe775"
]
}
Response samples
- 500
{- "type": "string",
- "message": "string"
}
使用済みフラグ更新
料金プランと配下のメニュー・ユニットを使用済みに更新します。
Authorizations:
Request Body schema: application/json
plan_ids required | Array of strings (Uuid) |
Responses
Request samples
- Payload
{- "plan_ids": [
- "69e732d6-8ecc-45c4-c2eb-8438f7ffe775"
]
}
Response samples
- 500
{- "type": "string",
- "message": "string"
}
指定した日付のメータリングユニッ トカウントを取得
指定した日付のメータリングユニットカウントを取得します。
Authorizations:
path Parameters
tenant_id required | string Example: 46af35b5-60de-4cd8-9412-19a3a5d1f838 テナントID |
metering_unit_name required | string Example: storage_unit 計測ユニット名 |
date required | string Example: 2022-01-01 日 |
Responses
Response samples
- 200
- 500
{- "metering_unit_name": "storage_unit",
- "date": "2022-01-01",
- "count": 10000
}
指定したタイムスタンプのメータリングユニットカウントを更新
指定したタイムスタンプのメータリングユニットカウントを更新します。
Authorizations:
path Parameters
tenant_id required | string Example: 46af35b5-60de-4cd8-9412-19a3a5d1f838 テナントID |
metering_unit_name required | string Example: storage_unit 計測ユニット名 |
timestamp required | integer Example: 1640995200 タイムスタンプ |
Request Body schema: application/json
method required | string (メータリングユニットカウント更新方法) Enum: "add" "sub" "direct" 更新方法 add: 加算 sub: 減算 direct: 上書き |
count required | integer 件数 |
Responses
Request samples
- Payload
{- "method": "add",
- "count": 10000
}
Response samples
- 200
- 500
{- "metering_unit_name": "storage_unit",
- "timestamp": 1640995200,
- "count": 10000
}
指定したタイムスタンプのメータリングユニットカウントを削除
指定したタイムスタンプのメータリングユニットカウントを削除します。
Authorizations:
path Parameters
tenant_id required | string Example: 46af35b5-60de-4cd8-9412-19a3a5d1f838 テナントID |
metering_unit_name required | string Example: storage_unit 計測ユニット名 |
timestamp required | integer Example: 1640995200 タイムスタンプ |
Responses
Response samples
- 500
{- "type": "string",
- "message": "string"
}
当日のメータリングユニットカウントを取得
当日のメータリングユニットカウントを取得します。
Authorizations:
path Parameters
tenant_id required | string Example: 46af35b5-60de-4cd8-9412-19a3a5d1f838 テナントID |
metering_unit_name required | string Example: storage_unit 計測ユニット名 |
Responses
Response samples
- 200
- 500
{- "metering_unit_name": "storage_unit",
- "date": "2022-01-01",
- "count": 10000
}
現在時刻のメータリングユニットカウントを更新
現在時刻のメータリングユニットカウントを更新します。
Authorizations:
path Parameters
tenant_id required | string Example: 46af35b5-60de-4cd8-9412-19a3a5d1f838 テナントID |
metering_unit_name required | string Example: storage_unit 計測ユニット名 |
Request Body schema: application/json
method required | string (メータリングユニットカウント更新方法) Enum: "add" "sub" "direct" 更新方法 add: 加算 sub: 減算 direct: 上書き |
count required | integer 件数 |
Responses
Request samples
- Payload
{- "method": "add",
- "count": 10000
}
Response samples
- 200
- 500
{- "metering_unit_name": "storage_unit",
- "timestamp": 1640995200,
- "count": 10000
}
当月のメータリングユニットカウントを取得
当月のメータリングユニットカウントを取得します。
Authorizations:
path Parameters
tenant_id required | string Example: 46af35b5-60de-4cd8-9412-19a3a5d1f838 テナントID |
metering_unit_name required | string Example: storage_unit 計測ユニット名 |
Responses
Response samples
- 200
- 500
{- "metering_unit_name": "storage_unit",
- "month": "2022-05",
- "count": 10000
}
指定月のメータリングユニットカウントを取得
指定した月のメータリングユニットカウントを取得します。
Authorizations:
path Parameters
tenant_id required | string Example: 46af35b5-60de-4cd8-9412-19a3a5d1f838 テナントID |
metering_unit_name required | string Example: storage_unit 計測ユニット名 |
month required | string Example: 2022-01 月 |
Responses
Response samples
- 200
- 500
{- "metering_unit_name": "storage_unit",
- "month": "2022-05",
- "count": 10000
}
指定日の全メータリングユニットカウントを取得
指定した日の全メータリングユニットカウントを取得します。
Authorizations:
path Parameters
tenant_id required | string Example: 46af35b5-60de-4cd8-9412-19a3a5d1f838 テナントID |
date required | string Example: 2022-01-01 日 |
Responses
Response samples
- 200
- 500
{- "counts": [
- {
- "metering_unit_name": "storage_unit",
- "date": "2022-01-01",
- "count": 10000
}
]
}
指定月の全メータリングユニットカウントを取得
指定した月の全メータリングユニットカウントを取得します。
Authorizations:
path Parameters
tenant_id required | string Example: 46af35b5-60de-4cd8-9412-19a3a5d1f838 テナントID |
month required | string Example: 2022-01 月 |
Responses
Response samples
- 200
- 500
{- "counts": [
- {
- "metering_unit_name": "storage_unit",
- "month": "2022-05",
- "count": 10000
}
]
}
指定した日時期間のメータリングユニットカウントを取得
指定した日時期間のメータリングユニットカウントを取得します。
Authorizations:
path Parameters
tenant_id required | string Example: 46af35b5-60de-4cd8-9412-19a3a5d1f838 テナントID |
metering_unit_name required | string Example: storage_unit 計測ユニット名 |
query Parameters
start_timestamp | integer Example: start_timestamp=1640995200 開始日時 |
end_timestamp | integer Example: end_timestamp=1640995200 終了日時 |
Responses
Response samples
- 200
- 500
{- "metering_unit_name": "storage_unit",
- "counts": [
- {
- "timestamp": 1640995200,
- "count": 10000
}
]
}
メータリングユニットの作成
メータリングユニットを作成します。
Authorizations:
Request Body schema: application/json
unit_name required | string 計測ユニット名 |
aggregate_usage | string (AggregateUsage) Enum: "sum" "max" 使用量の集計方法 sum: 期間内の使用量の合計 max: 期間内の使用量の最大値 |
display_name required | string 表示名 |
description required | string 説明 |
Responses
Request samples
- Payload
{- "unit_name": "storage_unit",
- "aggregate_usage": "sum",
- "display_name": "User Count Meter",
- "description": "Number of users count"
}
Response samples
- 201
- 400
- 500
{- "id": "69e732d6-8ecc-45c4-c2eb-8438f7ffe775",
- "used": false,
- "unit_name": "storage_unit",
- "aggregate_usage": "sum",
- "display_name": "User Count Meter",
- "description": "Number of users count"
}
Response samples
- 200
- 500
{- "units": [
- {
- "id": "69e732d6-8ecc-45c4-c2eb-8438f7ffe775",
- "used": false,
- "unit_name": "storage_unit",
- "aggregate_usage": "sum",
- "display_name": "User Count Meter",
- "description": "Number of users count"
}
]
}
メータリングユニットを更新
メータリングユニットを更新します。
Authorizations:
path Parameters
metering_unit_id required | string Example: 46af35b5-60de-4cd8-9412-19a3a5d1f838 メータリングユニットID |
Request Body schema: application/json
unit_name required | string 計測ユニット名 |
aggregate_usage | string (AggregateUsage) Enum: "sum" "max" 使用量の集計方法 sum: 期間内の使用量の合計 max: 期間内の使用量の最大値 |
display_name required | string 表示名 |
description required | string 説明 |
Responses
Request samples
- Payload
{- "unit_name": "storage_unit",
- "aggregate_usage": "sum",
- "display_name": "User Count Meter",
- "description": "Number of users count"
}
Response samples
- 400
- 500
{- "type": "string",
- "message": "string"
}
税率の作成
税率を作成します。
Authorizations:
Request Body schema: application/json
name required | string 税率の名前 |
display_name required | string 表示名 |
percentage required | number 税率 |
inclusive required | boolean 内税かどうか |
country required | string^[A-Z]{2}$ ISO 3166-1 alpha-2 の国コード |
description required | string 説明 |
Responses
Request samples
- Payload
{- "name": "japanese_consumption_tax_inclusive",
- "display_name": "消費税(外税)",
- "percentage": 10,
- "inclusive": false,
- "country": "JP",
- "description": "SaaSusとの連携用の税率"
}
Response samples
- 201
- 400
- 500
{- "id": "69e732d6-8ecc-45c4-c2eb-8438f7ffe775",
- "name": "japanese_consumption_tax_inclusive",
- "display_name": "消費税(外税)",
- "percentage": 10,
- "inclusive": false,
- "country": "JP",
- "description": "SaaSusとの連携用の税率"
}
Response samples
- 200
- 500
{- "tax_rates": [
- {
- "id": "69e732d6-8ecc-45c4-c2eb-8438f7ffe775",
- "name": "japanese_consumption_tax_inclusive",
- "display_name": "消費税(外税)",
- "percentage": 10,
- "inclusive": false,
- "country": "JP",
- "description": "SaaSusとの連携用の税率"
}
]
}