メインコンテンツまでスキップ

Pricing API

SaaSus Pricing API Schema (1.0.0)

SaaSus Pricing API Schema

pricingUnits

プライシングユニット

プライシングユニットの一覧を取得

料金のベースとなる最小の計測単位を取得します。 「固定ユニット」(type=fixed)は基本料金などの月額固定料金の単位、 「使用量ユニット」(type=usage)はユーザ数課金などの1単位あたりごとに料金が発生する単位、 「段階ユニット」(type=tiered)は携帯電話の段階的パケット料金のように利用量の段階ごとに一定の料金の単位、 「段階的使用量ユニット」(type=tiered_usage)はボリュームディスカウントのように利用量に応じて1単位あたりの料金が変化していく単位、となります。

Authorizations:
Bearer

Responses

Response samples

Content type
application/json
{
  • "units": [
    ]
}

プライシングユニットを作成

プライシングユニットを作成します。

Authorizations:
Bearer
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

Content type
application/json
Example
{
  • "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": [
    ]
}

Response samples

Content type
application/json
Example
{
  • "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": [
    ]
}

プライシングユニットを取得

プライシングユニットを取得します。

Authorizations:
Bearer
path Parameters
pricing_unit_id
required
string (Uuid)
Example: 69e732d6-8ecc-45c4-c2eb-8438f7ffe775

ユニットID

Responses

Response samples

Content type
application/json
Example
{
  • "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": [
    ]
}

プライシングユニットを削除

プライシングユニットを削除します。

Authorizations:
Bearer
path Parameters
pricing_unit_id
required
string (Uuid)
Example: 69e732d6-8ecc-45c4-c2eb-8438f7ffe775

ユニットID

Responses

Response samples

Content type
application/json
{
  • "type": "string",
  • "message": "string"
}

プライシングユニットを更新

プライシングユニット情報を更新します。

Authorizations:
Bearer
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

Content type
application/json
Example
{
  • "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": [
    ]
}

Response samples

Content type
application/json
{
  • "type": "string",
  • "message": "string"
}

pricingMenus

プライシング機能メニュー

プライシング機能メニュー一覧を取得

機能メニュー一覧を取得します。計測単位を複数まとめて、1つの機能メニューとして定義します。ここで定義した機能メニューを複数合わせ1つの料金プランとします。

Authorizations:
Bearer

Responses

Response samples

Content type
application/json
{
  • "pricing_menus": [
    ]
}

プライシング機能メニューを作成

プライシング機能メニューを作成します。

Authorizations:
Bearer
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

Content type
application/json
{
  • "name": "Ten Users Menu",
  • "display_name": "10ユーザーメニュー",
  • "description": "Can use 10 users.",
  • "unit_ids": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "69e732d6-8ecc-45c4-c2eb-8438f7ffe775",
  • "name": "Ten Users Menu",
  • "display_name": "10ユーザーメニュー",
  • "description": "Can use 10 users.",
  • "used": false,
  • "units": [
    ]
}

プライシング機能メニューを取得

プライシング機能メニューを取得します。

Authorizations:
Bearer
path Parameters
menu_id
required
string (Uuid)
Example: 69e732d6-8ecc-45c4-c2eb-8438f7ffe775

メニューID

Responses

Response samples

Content type
application/json
{
  • "id": "69e732d6-8ecc-45c4-c2eb-8438f7ffe775",
  • "name": "Ten Users Menu",
  • "display_name": "10ユーザーメニュー",
  • "description": "Can use 10 users.",
  • "used": false,
  • "units": [
    ]
}

プライシング機能メニューを削除

プライシング機能メニューを削除します。

Authorizations:
Bearer
path Parameters
menu_id
required
string (Uuid)
Example: 69e732d6-8ecc-45c4-c2eb-8438f7ffe775

メニューID

Responses

Response samples

Content type
application/json
{
  • "type": "string",
  • "message": "string"
}

プライシング機能メニューを更新

プライシング機能メニューを更新します。

Authorizations:
Bearer
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

Content type
application/json
{
  • "name": "Ten Users Menu",
  • "display_name": "10ユーザーメニュー",
  • "description": "Can use 10 users.",
  • "unit_ids": [
    ]
}

Response samples

Content type
application/json
{
  • "type": "string",
  • "message": "string"
}

pricingPlans

料金プラン

料金プラン一覧を取得

料金プラン一覧を取得します。機能メニューを複数まとめて、1つの料金プランとして定義します。ここで定義した料金プランを各テナントは選ぶことができます。もし特定テナント特有の料金(プライベートプライシング)がある場合は、そのテナント専用の料金プランを作成して結びつけます。

Authorizations:
Bearer

Responses

Response samples

Content type
application/json
{
  • "pricing_plans": [
    ]
}

料金プランを作成

料金プランを作成します。

Authorizations:
Bearer
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

Content type
application/json
{
  • "name": "Standard Plan",
  • "display_name": "スタンダードプラン",
  • "description": "Standard Plan for normal use",
  • "menu_ids": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "69e732d6-8ecc-45c4-c2eb-8438f7ffe775",
  • "name": "Standard Plan",
  • "display_name": "スタンダードプラン",
  • "description": "Standard Plan for normal use",
  • "used": false,
  • "pricing_menus": [
    ]
}

料金プランを取得

料金プランを取得します。

Authorizations:
Bearer
path Parameters
plan_id
required
string (Uuid)
Example: 69e732d6-8ecc-45c4-c2eb-8438f7ffe775

料金プランID

Responses

Response samples

Content type
application/json
{
  • "id": "69e732d6-8ecc-45c4-c2eb-8438f7ffe775",
  • "name": "Standard Plan",
  • "display_name": "スタンダードプラン",
  • "description": "Standard Plan for normal use",
  • "used": false,
  • "pricing_menus": [
    ]
}

料金プランを削除

料金プランを削除します。

Authorizations:
Bearer
path Parameters
plan_id
required
string (Uuid)
Example: 69e732d6-8ecc-45c4-c2eb-8438f7ffe775

料金プランID

Responses

Response samples

Content type
application/json
{
  • "type": "string",
  • "message": "string"
}

料金プランを更新

料金プランを更新します。

Authorizations:
Bearer
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

Content type
application/json
{
  • "name": "Standard Plan",
  • "display_name": "スタンダードプラン",
  • "description": "Standard Plan for normal use",
  • "menu_ids": [
    ]
}

Response samples

Content type
application/json
{
  • "type": "string",
  • "message": "string"
}

使用済みフラグ更新

料金プランと配下のメニュー・ユニットを使用済みに更新します。

Authorizations:
Bearer
Request Body schema: application/json
plan_ids
required
Array of strings (Uuid)

Responses

Request samples

Content type
application/json
{
  • "plan_ids": [
    ]
}

Response samples

Content type
application/json
{
  • "type": "string",
  • "message": "string"
}

stripe連携

stripeへ情報を連携します。

Authorizations:
Bearer

Responses

Response samples

Content type
application/json
{
  • "type": "string",
  • "message": "string"
}

stripe上の商品情報を削除

stripe上の商品情報を削除します。

Authorizations:
Bearer

Responses

Response samples

Content type
application/json
{
  • "type": "string",
  • "message": "string"
}

全てのPlans,Menus,Units,Metersの削除

無条件に全料金プラン、メニュー、ユニット、メーター、税率を削除します。

Authorizations:
Bearer

Responses

Response samples

Content type
application/json
{
  • "type": "string",
  • "message": "string"
}

metering

計測

指定した日付のメータリングユニットカウントを取得

指定した日付のメータリングユニットカウントを取得します。

Authorizations:
Bearer
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

Content type
application/json
{
  • "metering_unit_name": "storage_unit",
  • "date": "2022-01-01",
  • "count": 10000
}

指定したタイムスタンプのメータリングユニットカウントを更新

指定したタイムスタンプのメータリングユニットカウントを更新します。

Authorizations:
Bearer
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

Content type
application/json
{
  • "method": "add",
  • "count": 10000
}

Response samples

Content type
application/json
{
  • "metering_unit_name": "storage_unit",
  • "timestamp": 1640995200,
  • "count": 10000
}

指定したタイムスタンプのメータリングユニットカウントを削除

指定したタイムスタンプのメータリングユニットカウントを削除します。

Authorizations:
Bearer
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

Content type
application/json
{
  • "type": "string",
  • "message": "string"
}

当日のメータリングユニットカウントを取得

当日のメータリングユニットカウントを取得します。

Authorizations:
Bearer
path Parameters
tenant_id
required
string
Example: 46af35b5-60de-4cd8-9412-19a3a5d1f838

テナントID

metering_unit_name
required
string
Example: storage_unit

計測ユニット名

Responses

Response samples

Content type
application/json
{
  • "metering_unit_name": "storage_unit",
  • "date": "2022-01-01",
  • "count": 10000
}

現在時刻のメータリングユニットカウントを更新

現在時刻のメータリングユニットカウントを更新します。

Authorizations:
Bearer
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

Content type
application/json
{
  • "method": "add",
  • "count": 10000
}

Response samples

Content type
application/json
{
  • "metering_unit_name": "storage_unit",
  • "timestamp": 1640995200,
  • "count": 10000
}

当月のメータリングユニットカウントを取得

当月のメータリングユニットカウントを取得します。

Authorizations:
Bearer
path Parameters
tenant_id
required
string
Example: 46af35b5-60de-4cd8-9412-19a3a5d1f838

テナントID

metering_unit_name
required
string
Example: storage_unit

計測ユニット名

Responses

Response samples

Content type
application/json
{
  • "metering_unit_name": "storage_unit",
  • "month": "2022-05",
  • "count": 10000
}

指定月のメータリングユニットカウントを取得

指定した月のメータリングユニットカウントを取得します。

Authorizations:
Bearer
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

Content type
application/json
{
  • "metering_unit_name": "storage_unit",
  • "month": "2022-05",
  • "count": 10000
}

指定日の全メータリングユニットカウントを取得

指定した日の全メータリングユニットカウントを取得します。

Authorizations:
Bearer
path Parameters
tenant_id
required
string
Example: 46af35b5-60de-4cd8-9412-19a3a5d1f838

テナントID

date
required
string
Example: 2022-01-01

Responses

Response samples

Content type
application/json
{
  • "counts": [
    ]
}

指定月の全メータリングユニットカウントを取得

指定した月の全メータリングユニットカウントを取得します。

Authorizations:
Bearer
path Parameters
tenant_id
required
string
Example: 46af35b5-60de-4cd8-9412-19a3a5d1f838

テナントID

month
required
string
Example: 2022-01

Responses

Response samples

Content type
application/json
{
  • "counts": [
    ]
}

指定した日時期間のメータリングユニットカウントを取得

指定した日時期間のメータリングユニットカウントを取得します。

Authorizations:
Bearer
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

Content type
application/json
{
  • "metering_unit_name": "storage_unit",
  • "counts": [
    ]
}

メータリングユニットの作成

メータリングユニットを作成します。

Authorizations:
Bearer
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

Content type
application/json
{
  • "unit_name": "storage_unit",
  • "aggregate_usage": "sum",
  • "display_name": "User Count Meter",
  • "description": "Number of users count"
}

Response samples

Content type
application/json
{
  • "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:
Bearer

Responses

Response samples

Content type
application/json
{
  • "units": [
    ]
}

メータリングユニットを更新

メータリングユニットを更新します。

Authorizations:
Bearer
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

Content type
application/json
{
  • "unit_name": "storage_unit",
  • "aggregate_usage": "sum",
  • "display_name": "User Count Meter",
  • "description": "Number of users count"
}

Response samples

Content type
application/json
{
  • "type": "string",
  • "message": "string"
}

メータリングユニットを削除

メータリングユニットを削除します。

Authorizations:
Bearer
path Parameters
metering_unit_id
required
string
Example: 46af35b5-60de-4cd8-9412-19a3a5d1f838

メータリングユニットID

Responses

Response samples

Content type
application/json
{
  • "type": "string",
  • "message": "string"
}

taxRate

税率

税率の作成

税率を作成します。

Authorizations:
Bearer
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

Content type
application/json
{
  • "name": "japanese_consumption_tax_inclusive",
  • "display_name": "消費税(外税)",
  • "percentage": 10,
  • "inclusive": false,
  • "country": "JP",
  • "description": "SaaSusとの連携用の税率"
}

Response samples

Content type
application/json
{
  • "id": "69e732d6-8ecc-45c4-c2eb-8438f7ffe775",
  • "name": "japanese_consumption_tax_inclusive",
  • "display_name": "消費税(外税)",
  • "percentage": 10,
  • "inclusive": false,
  • "country": "JP",
  • "description": "SaaSusとの連携用の税率"
}

税率を取得します

税率を取得します。

Authorizations:
Bearer

Responses

Response samples

Content type
application/json
{
  • "tax_rates": [
    ]
}

税率を更新

税率を更新します。

Authorizations:
Bearer
path Parameters
tax_rate_id
required
string (Uuid)
Example: 69e732d6-8ecc-45c4-c2eb-8438f7ffe775

税率ID

Request Body schema: application/json
display_name
required
string

表示名

description
required
string

説明

Responses

Request samples

Content type
application/json
{
  • "display_name": "消費税(外税)",
  • "description": "SaaSusとの連携用の税率"
}

Response samples

Content type
application/json
{
  • "type": "string",
  • "message": "string"
}

error

テスト用途のエラー

ステータスコード500でサーバーエラーを返却

テスト用途で使用するエンドポイントです。ステータスコード500でサーバーエラーを返却します。

Authorizations:
Bearer

Responses

Response samples

Content type
application/json
{
  • "type": "string",
  • "message": "string"
}