帳戶及工作空間
讀取組織帳單資料
按明確 workspace_id 同目前 Organization Owner 權限,讀取組織實際方案、以發票為依據嘅價格同待生效更改。此操作唯讀,唔會領取優惠或更改帳單。
POST /identity-api/commercial-access/billing/statusContract 核對日期: · sha256:794dfa010f25b5de
概覽
按明確 workspace_id 同目前 Organization Owner 權限,讀取組織實際方案、以發票為依據嘅價格同待生效更改。此操作唯讀,唔會領取優惠或更改帳單。
HTTP 成功只表示本次操作的回應。背景工作須保留回傳 ID,並讀取同一操作,直至達到文件指定的終態。接受請求、排程成功或客戶端逾時,均不代表已發佈。
驗證及權限
憑證不能擴大持有人的權限。實際操作仍會檢查工作空間成員資格、資源擁有權、已選工作空間及能力授權。Tool profile 只會改變可見工具,不會授予權限。
請求欄位
必填表示在所屬物件及所選分支內必須提供;子欄位必填不代表可選的父物件亦變成必填。以下欄位名稱及規則直接來自 contract。
| 欄位/分支 | 類型/必填 | 限制 |
|---|---|---|
$ | object父物件內必填 |
|
workspace_id | string父物件內必填 |
|
完整 JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"workspace_id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"required": [
"workspace_id"
],
"additionalProperties": false
}回應及完成條件
成功 HTTP 狀態碼: 200. 完成依據: synchronous_http_response.
HTTP 成功只表示本次操作的回應。背景工作須保留回傳 ID,並讀取同一操作,直至達到文件指定的終態。接受請求、排程成功或客戶端逾時,均不代表已發佈。
必填表示在所屬物件及所選分支內必須提供;子欄位必填不代表可選的父物件亦變成必填。以下欄位名稱及規則直接來自 contract。
| 欄位/分支 | 類型/必填 | 限制 |
|---|---|---|
$ | object父物件內必填 | — |
contract_version | string父物件內必填 |
|
workspace_id | string父物件內必填 |
|
organization_id | string父物件內必填 |
|
plan | string父物件內必填 |
|
plan_limits | object父物件內必填 | — |
plan_limitsoneOf 1 | object父物件內必填 | — |
plan_limits.planoneOf 1 | string父物件內必填 |
|
plan_limits.included_human_seatsoneOf 1 | number | null父物件內必填 | — |
plan_limits.included_human_seatsoneOf 1 / anyOf 1 | number父物件內必填 |
|
plan_limits.included_human_seatsoneOf 1 / anyOf 2 | null父物件內必填 | — |
plan_limits.connected_channel_limitoneOf 1 | number父物件內必填 |
|
plan_limits.successful_destination_publishes_limitoneOf 1 | number | null父物件內必填 | — |
plan_limits.successful_destination_publishes_limitoneOf 1 / anyOf 1 | number父物件內必填 |
|
plan_limits.successful_destination_publishes_limitoneOf 1 / anyOf 2 | null父物件內必填 | — |
plan_limits.pending_scheduled_posts_limitoneOf 1 | number父物件內必填 |
|
plan_limits.history_daysoneOf 1 | number父物件內必填 |
|
plan_limits.stripe_quantityoneOf 1 | number父物件內必填 |
|
plan_limitsoneOf 2 | object父物件內必填 | — |
plan_limits.planoneOf 2 | string父物件內必填 |
|
plan_limits.included_human_seatsoneOf 2 | number | null父物件內必填 | — |
plan_limits.included_human_seatsoneOf 2 / anyOf 1 | number父物件內必填 |
|
plan_limits.included_human_seatsoneOf 2 / anyOf 2 | null父物件內必填 | — |
plan_limits.connected_channel_limitoneOf 2 | number父物件內必填 | — |
plan_limits.connected_channel_limitoneOf 2 / anyOf 1 | number父物件內必填 |
|
plan_limits.connected_channel_limitoneOf 2 / anyOf 2 | number父物件內必填 |
|
plan_limits.successful_destination_publishes_limitoneOf 2 | number | null父物件內必填 | — |
plan_limits.successful_destination_publishes_limitoneOf 2 / anyOf 1 | number父物件內必填 |
|
plan_limits.successful_destination_publishes_limitoneOf 2 / anyOf 2 | null父物件內必填 | — |
plan_limits.pending_scheduled_posts_limitoneOf 2 | number父物件內必填 |
|
plan_limits.history_daysoneOf 2 | number父物件內必填 |
|
plan_limits.stripe_quantityoneOf 2 | number父物件內必填 |
|
plan_limitsoneOf 3 | object父物件內必填 | — |
plan_limits.planoneOf 3 | string父物件內必填 |
|
plan_limits.included_human_seatsoneOf 3 | null父物件內必填 | — |
plan_limits.connected_channel_limitoneOf 3 | number父物件內必填 |
|
plan_limits.successful_destination_publishes_limitoneOf 3 | null父物件內必填 | — |
plan_limits.unlimited_publishing_platformsoneOf 3 | array父物件內必填 |
|
plan_limits.pending_scheduled_posts_limitoneOf 3 | number父物件內必填 |
|
plan_limits.history_daysoneOf 3 | number父物件內必填 |
|
plan_limits.stripe_quantityoneOf 3 | number父物件內必填 |
|
plan_limitsoneOf 4 | object父物件內必填 | — |
plan_limits.planoneOf 4 | string父物件內必填 |
|
plan_limits.included_human_seatsoneOf 4 | null父物件內必填 | — |
plan_limits.connected_channel_limitoneOf 4 | number父物件內必填 |
|
plan_limits.successful_destination_publishes_limitoneOf 4 | null父物件內必填 | — |
plan_limits.unlimited_publishing_platformsoneOf 4 | array父物件內必填 |
|
plan_limits.pending_scheduled_posts_limitoneOf 4 | number父物件內必填 |
|
plan_limits.history_daysoneOf 4 | number父物件內必填 |
|
plan_limits.stripe_quantityoneOf 4 | number父物件內必填 |
|
pricing | object父物件內必填 | — |
pricingoneOf 1 | object父物件內必填 | — |
pricingoneOf 1 / oneOf 1 | object父物件內必填 | — |
pricing.statusoneOf 1 / oneOf 1 | string父物件內必填 |
|
pricing.source_kindoneOf 1 / oneOf 1 | string父物件內必填 |
|
pricing.authorityoneOf 1 / oneOf 1 | string父物件內必填 |
|
pricing.planoneOf 1 / oneOf 1 | string父物件內必填 |
|
pricing.plan_versiononeOf 1 / oneOf 1 | number父物件內必填 | — |
pricing.plan_versiononeOf 1 / oneOf 1 / anyOf 1 | number父物件內必填 |
|
pricing.plan_versiononeOf 1 / oneOf 1 / anyOf 2 | number父物件內必填 |
|
pricing.currencyoneOf 1 / oneOf 1 | string父物件內必填 |
|
pricing.interval_unitoneOf 1 / oneOf 1 | string父物件內必填 |
|
pricing.monthly_amount_centsoneOf 1 / oneOf 1 | number父物件內必填 |
|
pricingoneOf 1 / oneOf 2 | object父物件內必填 | — |
pricing.statusoneOf 1 / oneOf 2 | string父物件內必填 |
|
pricing.source_kindoneOf 1 / oneOf 2 | string父物件內必填 |
|
pricing.authorityoneOf 1 / oneOf 2 | string父物件內必填 |
|
pricing.planoneOf 1 / oneOf 2 | string父物件內必填 |
|
pricing.plan_versiononeOf 1 / oneOf 2 | number父物件內必填 |
|
pricing.currencyoneOf 1 / oneOf 2 | string父物件內必填 |
|
pricing.interval_unitoneOf 1 / oneOf 2 | string父物件內必填 |
|
pricing.monthly_amount_centsoneOf 1 / oneOf 2 | number父物件內必填 |
|
pricing.verified_periodoneOf 1 / oneOf 2 | object父物件內必填 | — |
pricing.verified_period.period_startoneOf 1 / oneOf 2 | string父物件內必填 |
|
pricing.verified_period.period_endoneOf 1 / oneOf 2 | string父物件內必填 |
|
pricingoneOf 1 / oneOf 3 | object父物件內必填 | — |
pricing.statusoneOf 1 / oneOf 3 | string父物件內必填 |
|
pricing.source_kindoneOf 1 / oneOf 3 | string父物件內必填 |
|
pricing.authorityoneOf 1 / oneOf 3 | string父物件內必填 |
|
pricing.planoneOf 1 / oneOf 3 | string父物件內必填 |
|
pricing.plan_versiononeOf 1 / oneOf 3 | number父物件內必填 |
|
pricing.currencyoneOf 1 / oneOf 3 | string父物件內必填 |
|
pricing.interval_unitoneOf 1 / oneOf 3 | string父物件內必填 |
|
pricing.monthly_amount_centsoneOf 1 / oneOf 3 | number父物件內必填 |
|
pricing.verified_periodoneOf 1 / oneOf 3 | object父物件內必填 | — |
pricing.verified_period.period_startoneOf 1 / oneOf 3 | string父物件內必填 |
|
pricing.verified_period.period_endoneOf 1 / oneOf 3 | string父物件內必填 |
|
pricingoneOf 2 | object父物件內必填 | — |
pricingoneOf 2 / oneOf 1 | object父物件內必填 | — |
pricing.statusoneOf 2 / oneOf 1 | string父物件內必填 |
|
pricing.source_kindoneOf 2 / oneOf 1 | string父物件內必填 |
|
pricing.authorityoneOf 2 / oneOf 1 | string父物件內必填 |
|
pricing.planoneOf 2 / oneOf 1 | string父物件內必填 |
|
pricing.plan_versiononeOf 2 / oneOf 1 | number父物件內必填 |
|
pricing.currencyoneOf 2 / oneOf 1 | string父物件內必填 |
|
pricing.interval_unitoneOf 2 / oneOf 1 | string父物件內必填 |
|
pricing.monthly_amount_centsoneOf 2 / oneOf 1 | number父物件內必填 |
|
pricing.verified_periodoneOf 2 / oneOf 1 | object父物件內必填 | — |
pricing.verified_period.period_startoneOf 2 / oneOf 1 | string父物件內必填 |
|
pricing.verified_period.period_endoneOf 2 / oneOf 1 | string父物件內必填 |
|
pricingoneOf 2 / oneOf 2 | object父物件內必填 | — |
pricing.statusoneOf 2 / oneOf 2 | string父物件內必填 |
|
pricing.source_kindoneOf 2 / oneOf 2 | string父物件內必填 |
|
pricing.authorityoneOf 2 / oneOf 2 | string父物件內必填 |
|
pricing.planoneOf 2 / oneOf 2 | string父物件內必填 |
|
pricing.plan_versiononeOf 2 / oneOf 2 | number父物件內必填 |
|
pricing.currencyoneOf 2 / oneOf 2 | string父物件內必填 |
|
pricing.interval_unitoneOf 2 / oneOf 2 | string父物件內必填 |
|
pricing.monthly_amount_centsoneOf 2 / oneOf 2 | number父物件內必填 |
|
pricing.verified_periodoneOf 2 / oneOf 2 | object父物件內必填 | — |
pricing.verified_period.period_startoneOf 2 / oneOf 2 | string父物件內必填 |
|
pricing.verified_period.period_endoneOf 2 / oneOf 2 | string父物件內必填 |
|
pricingoneOf 3 | object父物件內必填 | — |
pricingoneOf 3 / oneOf 1 | object父物件內必填 | — |
pricing.statusoneOf 3 / oneOf 1 | string父物件內必填 |
|
pricing.source_kindoneOf 3 / oneOf 1 | string父物件內必填 |
|
pricing.planoneOf 3 / oneOf 1 | string父物件內必填 |
|
pricing.plan_versiononeOf 3 / oneOf 1 | integer父物件內必填 |
|
pricing.currencyoneOf 3 / oneOf 1 | string父物件內必填 |
|
pricing.interval_unitoneOf 3 / oneOf 1 | string父物件內必填 |
|
pricing.monthly_amount_centsoneOf 3 / oneOf 1 | integer父物件內必填 |
|
pricing.authorityoneOf 3 / oneOf 1 | string父物件內必填 |
|
pricingoneOf 3 / oneOf 2 | object父物件內必填 | — |
pricing.statusoneOf 3 / oneOf 2 | string父物件內必填 |
|
pricing.source_kindoneOf 3 / oneOf 2 | string父物件內必填 |
|
pricing.planoneOf 3 / oneOf 2 | string父物件內必填 |
|
pricing.plan_versiononeOf 3 / oneOf 2 | integer父物件內必填 |
|
pricing.currencyoneOf 3 / oneOf 2 | string父物件內必填 |
|
pricing.interval_unitoneOf 3 / oneOf 2 | string父物件內必填 |
|
pricing.monthly_amount_centsoneOf 3 / oneOf 2 | integer父物件內必填 |
|
pricing.authorityoneOf 3 / oneOf 2 | string父物件內必填 |
|
pricing.verified_periodoneOf 3 / oneOf 2 | object父物件內必填 | — |
pricing.verified_period.period_startoneOf 3 / oneOf 2 | string父物件內必填 |
|
pricing.verified_period.period_endoneOf 3 / oneOf 2 | string父物件內必填 |
|
pricingoneOf 4 | object父物件內必填 | — |
pricing.statusoneOf 4 | string父物件內必填 |
|
pricing.source_kindoneOf 4 | string父物件內必填 |
|
pricing.authorityoneOf 4 | string父物件內必填 |
|
pricing.planoneOf 4 | string父物件內必填 |
|
pricing.plan_versiononeOf 4 | integer父物件內必填 |
|
pricing.monthly_amount_centsoneOf 4 | null父物件內必填 | — |
pricing.reason_codeoneOf 4 | string父物件內必填 |
|
pricingoneOf 5 | object父物件內必填 | — |
pricing.statusoneOf 5 | string父物件內必填 |
|
pricing.source_kindoneOf 5 | string父物件內必填 |
|
pricing.authorityoneOf 5 | string父物件內必填 |
|
pricing.planoneOf 5 | string父物件內必填 |
|
pricing.plan_versiononeOf 5 | integer | null父物件內必填 | — |
pricing.plan_versiononeOf 5 / anyOf 1 | integer父物件內必填 |
|
pricing.plan_versiononeOf 5 / anyOf 2 | null父物件內必填 | — |
pricing.monthly_amount_centsoneOf 5 | null父物件內必填 | — |
pricing.reason_codeoneOf 5 | string父物件內必填 |
|
purchase_options | object父物件內必填 | — |
purchase_optionsoneOf 1 | object父物件內必填 | — |
purchase_options.statusoneOf 1 | string父物件內必填 |
|
purchase_options.reason_codeoneOf 1 | string父物件內必填 |
|
purchase_optionsoneOf 2 | object父物件內必填 | — |
purchase_options.statusoneOf 2 | string父物件內必填 |
|
purchase_options.catalog_versiononeOf 2 | string父物件內必填 |
|
purchase_options.plansoneOf 2 | object父物件內必填 | — |
purchase_options.plans.prooneOf 2 | object父物件內必填 | — |
purchase_options.plans.pro.planoneOf 2 | string父物件內必填 |
|
purchase_options.plans.pro.plan_versiononeOf 2 | number父物件內必填 |
|
purchase_options.plans.pro.currencyoneOf 2 | string父物件內必填 |
|
purchase_options.plans.pro.interval_unitoneOf 2 | string父物件內必填 |
|
purchase_options.plans.pro.monthly_amount_centsoneOf 2 | number父物件內必填 |
|
purchase_options.plans.teamoneOf 2 | object父物件內必填 | — |
purchase_options.plans.team.planoneOf 2 | string父物件內必填 |
|
purchase_options.plans.team.plan_versiononeOf 2 | number父物件內必填 |
|
purchase_options.plans.team.currencyoneOf 2 | string父物件內必填 |
|
purchase_options.plans.team.interval_unitoneOf 2 | string父物件內必填 |
|
purchase_options.plans.team.monthly_amount_centsoneOf 2 | number父物件內必填 |
|
pending_change | object父物件內必填 | — |
pending_changeoneOf 1 | object父物件內必填 | — |
pending_change.statusoneOf 1 | string父物件內必填 |
|
pending_changeoneOf 2 | object父物件內必填 | — |
pending_change.statusoneOf 2 | string父物件內必填 |
|
pending_change.target_planoneOf 2 | string父物件內必填 |
|
pending_change.target_plan_versiononeOf 2 | number父物件內必填 | — |
pending_change.target_plan_versiononeOf 2 / anyOf 1 | number父物件內必填 |
|
pending_change.target_plan_versiononeOf 2 / anyOf 2 | number父物件內必填 |
|
pending_change.source_kindoneOf 2 | string父物件內必填 |
|
pending_change.currencyoneOf 2 | string父物件內必填 |
|
pending_change.interval_unitoneOf 2 | string父物件內必填 |
|
pending_change.monthly_amount_centsoneOf 2 | number父物件內必填 | — |
pending_change.monthly_amount_centsoneOf 2 / anyOf 1 | number父物件內必填 |
|
pending_change.monthly_amount_centsoneOf 2 / anyOf 2 | number父物件內必填 |
|
pending_change.monthly_amount_centsoneOf 2 / anyOf 3 | number父物件內必填 |
|
pending_change.monthly_amount_centsoneOf 2 / anyOf 4 | number父物件內必填 |
|
pending_change.effective_atoneOf 2 | string父物件內必填 |
|
pending_change.activationoneOf 2 | string父物件內必填 |
|
pending_changeoneOf 3 | object父物件內必填 | — |
pending_change.statusoneOf 3 | string父物件內必填 |
|
pending_change.reason_codeoneOf 3 | string父物件內必填 |
|
continuous_lock | object父物件內必填 | — |
continuous_lockoneOf 1 | object父物件內必填 | — |
continuous_lock.statusoneOf 1 | string父物件內必填 |
|
continuous_lockoneOf 2 | object父物件內必填 | — |
continuous_lock.statusoneOf 2 | string父物件內必填 |
|
continuous_lock.reason_codeoneOf 2 | string父物件內必填 |
|
continuous_lockoneOf 3 | object父物件內必填 | — |
continuous_lock.statusoneOf 3 | string父物件內必填 |
|
continuous_lock.source_kindoneOf 3 | string父物件內必填 |
|
continuous_lock.currencyoneOf 3 | string父物件內必填 |
|
continuous_lock.interval_unitoneOf 3 | string父物件內必填 |
|
continuous_lock.pro_monthly_amount_centsoneOf 3 | number父物件內必填 |
|
continuous_lock.team_monthly_amount_centsoneOf 3 | number父物件內必填 |
|
continuous_lockoneOf 4 | object父物件內必填 | — |
continuous_lock.statusoneOf 4 | string父物件內必填 |
|
continuous_lock.ended_atoneOf 4 | string父物件內必填 |
|
continuous_lockoneOf 5 | object父物件內必填 | — |
continuous_lock.statusoneOf 5 | string父物件內必填 |
|
continuous_lock.reason_codeoneOf 5 | string父物件內必填 |
|
observed_at | string父物件內必填 |
|
完整 JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"contract_version": {
"type": "string",
"const": "organization-commercial-billing/v1"
},
"workspace_id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"organization_id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"plan": {
"type": "string",
"enum": [
"free",
"founding_pro",
"pro",
"team"
]
},
"plan_limits": {
"oneOf": [
{
"type": "object",
"properties": {
"plan": {
"type": "string",
"const": "free"
},
"included_human_seats": {
"anyOf": [
{
"type": "number",
"const": 1
},
{
"type": "null"
}
]
},
"connected_channel_limit": {
"type": "number",
"const": 3
},
"successful_destination_publishes_limit": {
"anyOf": [
{
"type": "number",
"const": 100
},
{
"type": "null"
}
]
},
"pending_scheduled_posts_limit": {
"type": "number",
"const": 30
},
"history_days": {
"type": "number",
"const": 30
},
"stripe_quantity": {
"type": "number",
"const": 0
}
},
"required": [
"plan",
"included_human_seats",
"connected_channel_limit",
"successful_destination_publishes_limit",
"pending_scheduled_posts_limit",
"history_days",
"stripe_quantity"
]
},
{
"type": "object",
"properties": {
"plan": {
"type": "string",
"const": "founding_pro"
},
"included_human_seats": {
"anyOf": [
{
"type": "number",
"const": 5
},
{
"type": "null"
}
]
},
"connected_channel_limit": {
"anyOf": [
{
"type": "number",
"const": 10
},
{
"type": "number",
"const": 20
}
]
},
"successful_destination_publishes_limit": {
"anyOf": [
{
"type": "number",
"const": 1000
},
{
"type": "null"
}
]
},
"pending_scheduled_posts_limit": {
"type": "number",
"const": 300
},
"history_days": {
"type": "number",
"const": 365
},
"stripe_quantity": {
"type": "number",
"const": 1
}
},
"required": [
"plan",
"included_human_seats",
"connected_channel_limit",
"successful_destination_publishes_limit",
"pending_scheduled_posts_limit",
"history_days",
"stripe_quantity"
]
},
{
"type": "object",
"properties": {
"plan": {
"type": "string",
"const": "pro"
},
"included_human_seats": {
"type": "null"
},
"connected_channel_limit": {
"type": "number",
"const": 10
},
"successful_destination_publishes_limit": {
"type": "null"
},
"unlimited_publishing_platforms": {
"type": "array",
"prefixItems": [
{
"type": "string",
"const": "instagram"
},
{
"type": "string",
"const": "facebook"
},
{
"type": "string",
"const": "threads"
},
{
"type": "string",
"const": "youtube"
}
],
"items": false,
"minItems": 4,
"maxItems": 4
},
"pending_scheduled_posts_limit": {
"type": "number",
"const": 300
},
"history_days": {
"type": "number",
"const": 365
},
"stripe_quantity": {
"type": "number",
"const": 1
}
},
"required": [
"plan",
"included_human_seats",
"connected_channel_limit",
"successful_destination_publishes_limit",
"unlimited_publishing_platforms",
"pending_scheduled_posts_limit",
"history_days",
"stripe_quantity"
]
},
{
"type": "object",
"properties": {
"plan": {
"type": "string",
"const": "team"
},
"included_human_seats": {
"type": "null"
},
"connected_channel_limit": {
"type": "number",
"const": 20
},
"successful_destination_publishes_limit": {
"type": "null"
},
"unlimited_publishing_platforms": {
"type": "array",
"prefixItems": [
{
"type": "string",
"const": "instagram"
},
{
"type": "string",
"const": "facebook"
},
{
"type": "string",
"const": "threads"
},
{
"type": "string",
"const": "youtube"
}
],
"items": false,
"minItems": 4,
"maxItems": 4
},
"pending_scheduled_posts_limit": {
"type": "number",
"const": 300
},
"history_days": {
"type": "number",
"const": 365
},
"stripe_quantity": {
"type": "number",
"const": 1
}
},
"required": [
"plan",
"included_human_seats",
"connected_channel_limit",
"successful_destination_publishes_limit",
"unlimited_publishing_platforms",
"pending_scheduled_posts_limit",
"history_days",
"stripe_quantity"
]
}
]
},
"pricing": {
"oneOf": [
{
"oneOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "available"
},
"source_kind": {
"type": "string",
"const": "standard"
},
"authority": {
"type": "string",
"const": "default_free"
},
"plan": {
"type": "string",
"const": "free"
},
"plan_version": {
"anyOf": [
{
"type": "number",
"const": 1
},
{
"type": "number",
"const": 2
}
]
},
"currency": {
"type": "string",
"const": "usd"
},
"interval_unit": {
"type": "string",
"const": "month"
},
"monthly_amount_cents": {
"type": "number",
"const": 0
}
},
"required": [
"status",
"source_kind",
"authority",
"plan",
"plan_version",
"currency",
"interval_unit",
"monthly_amount_cents"
]
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "available"
},
"source_kind": {
"type": "string",
"const": "standard"
},
"authority": {
"type": "string",
"const": "verified_invoice"
},
"plan": {
"type": "string",
"const": "pro"
},
"plan_version": {
"type": "number",
"const": 1
},
"currency": {
"type": "string",
"const": "usd"
},
"interval_unit": {
"type": "string",
"const": "month"
},
"monthly_amount_cents": {
"type": "number",
"const": 4000
},
"verified_period": {
"type": "object",
"properties": {
"period_start": {
"type": "string",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
"format": "date-time"
},
"period_end": {
"type": "string",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
"format": "date-time"
}
},
"required": [
"period_start",
"period_end"
]
}
},
"required": [
"status",
"source_kind",
"authority",
"plan",
"plan_version",
"currency",
"interval_unit",
"monthly_amount_cents",
"verified_period"
]
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "available"
},
"source_kind": {
"type": "string",
"const": "standard"
},
"authority": {
"type": "string",
"const": "verified_invoice"
},
"plan": {
"type": "string",
"const": "team"
},
"plan_version": {
"type": "number",
"const": 1
},
"currency": {
"type": "string",
"const": "usd"
},
"interval_unit": {
"type": "string",
"const": "month"
},
"monthly_amount_cents": {
"type": "number",
"const": 8000
},
"verified_period": {
"type": "object",
"properties": {
"period_start": {
"type": "string",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
"format": "date-time"
},
"period_end": {
"type": "string",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
"format": "date-time"
}
},
"required": [
"period_start",
"period_end"
]
}
},
"required": [
"status",
"source_kind",
"authority",
"plan",
"plan_version",
"currency",
"interval_unit",
"monthly_amount_cents",
"verified_period"
]
}
]
},
{
"oneOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "available"
},
"source_kind": {
"type": "string",
"const": "promotional"
},
"authority": {
"type": "string",
"const": "verified_invoice"
},
"plan": {
"type": "string",
"const": "pro"
},
"plan_version": {
"type": "number",
"const": 2
},
"currency": {
"type": "string",
"const": "usd"
},
"interval_unit": {
"type": "string",
"const": "month"
},
"monthly_amount_cents": {
"type": "number",
"const": 1900
},
"verified_period": {
"type": "object",
"properties": {
"period_start": {
"type": "string",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
"format": "date-time"
},
"period_end": {
"type": "string",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
"format": "date-time"
}
},
"required": [
"period_start",
"period_end"
]
}
},
"required": [
"status",
"source_kind",
"authority",
"plan",
"plan_version",
"currency",
"interval_unit",
"monthly_amount_cents",
"verified_period"
]
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "available"
},
"source_kind": {
"type": "string",
"const": "promotional"
},
"authority": {
"type": "string",
"const": "verified_invoice"
},
"plan": {
"type": "string",
"const": "team"
},
"plan_version": {
"type": "number",
"const": 2
},
"currency": {
"type": "string",
"const": "usd"
},
"interval_unit": {
"type": "string",
"const": "month"
},
"monthly_amount_cents": {
"type": "number",
"const": 3900
},
"verified_period": {
"type": "object",
"properties": {
"period_start": {
"type": "string",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
"format": "date-time"
},
"period_end": {
"type": "string",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
"format": "date-time"
}
},
"required": [
"period_start",
"period_end"
]
}
},
"required": [
"status",
"source_kind",
"authority",
"plan",
"plan_version",
"currency",
"interval_unit",
"monthly_amount_cents",
"verified_period"
]
}
]
},
{
"oneOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "available"
},
"source_kind": {
"type": "string",
"const": "legacy"
},
"plan": {
"type": "string",
"const": "founding_pro"
},
"plan_version": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 2147483647
},
"currency": {
"type": "string",
"const": "usd"
},
"interval_unit": {
"type": "string",
"const": "month"
},
"monthly_amount_cents": {
"type": "integer",
"minimum": 0,
"maximum": 2147483647
},
"authority": {
"type": "string",
"const": "legacy_commitment"
}
},
"required": [
"status",
"source_kind",
"plan",
"plan_version",
"currency",
"interval_unit",
"monthly_amount_cents",
"authority"
]
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "available"
},
"source_kind": {
"type": "string",
"const": "legacy"
},
"plan": {
"type": "string",
"const": "founding_pro"
},
"plan_version": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 2147483647
},
"currency": {
"type": "string",
"const": "usd"
},
"interval_unit": {
"type": "string",
"const": "month"
},
"monthly_amount_cents": {
"type": "integer",
"minimum": 0,
"maximum": 2147483647
},
"authority": {
"type": "string",
"const": "verified_invoice"
},
"verified_period": {
"type": "object",
"properties": {
"period_start": {
"type": "string",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
"format": "date-time"
},
"period_end": {
"type": "string",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
"format": "date-time"
}
},
"required": [
"period_start",
"period_end"
]
}
},
"required": [
"status",
"source_kind",
"plan",
"plan_version",
"currency",
"interval_unit",
"monthly_amount_cents",
"authority",
"verified_period"
]
}
]
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "unavailable"
},
"source_kind": {
"type": "string",
"const": "manual"
},
"authority": {
"type": "string",
"const": "manual_grant"
},
"plan": {
"type": "string",
"enum": [
"free",
"founding_pro",
"pro",
"team"
]
},
"plan_version": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 2147483647
},
"monthly_amount_cents": {
"type": "null"
},
"reason_code": {
"type": "string",
"const": "recurring_charge_not_observed"
}
},
"required": [
"status",
"source_kind",
"authority",
"plan",
"plan_version",
"monthly_amount_cents",
"reason_code"
]
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "unavailable"
},
"source_kind": {
"type": "string",
"const": "unavailable"
},
"authority": {
"type": "string",
"const": "not_observed"
},
"plan": {
"type": "string",
"enum": [
"free",
"founding_pro",
"pro",
"team"
]
},
"plan_version": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 2147483647
},
{
"type": "null"
}
]
},
"monthly_amount_cents": {
"type": "null"
},
"reason_code": {
"type": "string",
"enum": [
"current_period_proof_missing",
"pricing_authority_not_observed",
"catalog_binding_not_observed"
]
}
},
"required": [
"status",
"source_kind",
"authority",
"plan",
"plan_version",
"monthly_amount_cents",
"reason_code"
]
}
]
},
"purchase_options": {
"oneOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "unavailable"
},
"reason_code": {
"type": "string",
"enum": [
"checkout_disabled",
"catalog_unconfigured"
]
}
},
"required": [
"status",
"reason_code"
]
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "configured"
},
"catalog_version": {
"type": "string",
"const": "organization-monthly-2026-10-24"
},
"plans": {
"type": "object",
"properties": {
"pro": {
"type": "object",
"properties": {
"plan": {
"type": "string",
"const": "pro"
},
"plan_version": {
"type": "number",
"const": 1
},
"currency": {
"type": "string",
"const": "usd"
},
"interval_unit": {
"type": "string",
"const": "month"
},
"monthly_amount_cents": {
"type": "number",
"const": 4000
}
},
"required": [
"plan",
"plan_version",
"currency",
"interval_unit",
"monthly_amount_cents"
]
},
"team": {
"type": "object",
"properties": {
"plan": {
"type": "string",
"const": "team"
},
"plan_version": {
"type": "number",
"const": 1
},
"currency": {
"type": "string",
"const": "usd"
},
"interval_unit": {
"type": "string",
"const": "month"
},
"monthly_amount_cents": {
"type": "number",
"const": 8000
}
},
"required": [
"plan",
"plan_version",
"currency",
"interval_unit",
"monthly_amount_cents"
]
}
},
"required": [
"pro",
"team"
]
}
},
"required": [
"status",
"catalog_version",
"plans"
]
}
]
},
"pending_change": {
"oneOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "not_observed"
}
},
"required": [
"status"
]
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"scheduled",
"blocked_by_cancellation",
"terminated"
]
},
"target_plan": {
"type": "string",
"enum": [
"pro",
"team"
]
},
"target_plan_version": {
"anyOf": [
{
"type": "number",
"const": 1
},
{
"type": "number",
"const": 2
}
]
},
"source_kind": {
"type": "string",
"enum": [
"standard",
"promotional"
]
},
"currency": {
"type": "string",
"const": "usd"
},
"interval_unit": {
"type": "string",
"const": "month"
},
"monthly_amount_cents": {
"anyOf": [
{
"type": "number",
"const": 4000
},
{
"type": "number",
"const": 8000
},
{
"type": "number",
"const": 1900
},
{
"type": "number",
"const": 3900
}
]
},
"effective_at": {
"type": "string",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
"format": "date-time"
},
"activation": {
"type": "string",
"const": "next_paid_invoice"
}
},
"required": [
"status",
"target_plan",
"target_plan_version",
"source_kind",
"currency",
"interval_unit",
"monthly_amount_cents",
"effective_at",
"activation"
]
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "unavailable"
},
"reason_code": {
"type": "string",
"const": "pending_change_authority_not_observed"
}
},
"required": [
"status",
"reason_code"
]
}
]
},
"continuous_lock": {
"oneOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "not_observed"
}
},
"required": [
"status"
]
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "none"
},
"reason_code": {
"type": "string",
"const": "standard_subscription"
}
},
"required": [
"status",
"reason_code"
]
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "active"
},
"source_kind": {
"type": "string",
"const": "promotional"
},
"currency": {
"type": "string",
"const": "usd"
},
"interval_unit": {
"type": "string",
"const": "month"
},
"pro_monthly_amount_cents": {
"type": "number",
"const": 1900
},
"team_monthly_amount_cents": {
"type": "number",
"const": 3900
}
},
"required": [
"status",
"source_kind",
"currency",
"interval_unit",
"pro_monthly_amount_cents",
"team_monthly_amount_cents"
]
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "terminated"
},
"ended_at": {
"type": "string",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
"format": "date-time"
}
},
"required": [
"status",
"ended_at"
]
},
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "unavailable"
},
"reason_code": {
"type": "string",
"const": "commitment_authority_not_observed"
}
},
"required": [
"status",
"reason_code"
]
}
]
},
"observed_at": {
"type": "string",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
"format": "date-time"
}
},
"required": [
"contract_version",
"workspace_id",
"organization_id",
"plan",
"plan_limits",
"pricing",
"purchase_options",
"pending_change",
"continuous_lock",
"observed_at"
]
}錯誤及安全重試
請檢查 HTTP 狀態及實際回應格式。400 驗證錯誤可能回傳 ZodError;handler 錯誤可能採用 error/message/code envelope。請保留可用的 request_id 或 x-request-id,避免記錄憑證。遇到 401/403 時,須先修正存取問題;429 須遵守 Retry-After。寫入結果未明或回傳 5xx 時,請先讀取原有結果,再決定是否重試。只有操作支援時才可重用 idempotency key;並無通用重試或 exactly-once 保證。
問題排解指南範例
以下虛構值已按 contract 驗證,並非真實帳戶 ID、憑證或發佈紀錄。請以已授權範圍回傳的 ID、已準備完成的素材及已審核排程取代,並在寫入前核對平台資格。此頁不會呼叫 API。
在伺服器環境設定 SOSOAPI_ACCESS_TOKEN,使用此操作接受的憑證。請勿將憑證放入瀏覽器程式。一般 AI Agent 建議透過 sosoapi auth login 使用瀏覽器 OAuth,由 CLI 管理憑證更新。
request.json
{
"workspace_id": "11111111-1111-4111-8111-111111111111"
}cURL
curl --request POST \
"https://gqeshlawtcexsapabaui.supabase.co/functions/v1/identity-api/commercial-access/billing/status" \
-H "Authorization: Bearer $SOSOAPI_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
--data-binary @request.jsonJavaScript
// Server-side JavaScript. Do not print tokens or credential-bearing responses.
const token = process.env.SOSOAPI_ACCESS_TOKEN;
if (!token) throw new Error("Set an accepted credential for this operation");
const response = await fetch("https://gqeshlawtcexsapabaui.supabase.co/functions/v1/identity-api/commercial-access/billing/status", {
method: "POST",
headers: { "Content-Type": "application/json", Authorization: "Bearer " + token },
body: JSON.stringify({
"workspace_id": "11111111-1111-4111-8111-111111111111"
})
});
const result = await response.json();
// Check response.ok, the operation-specific body and completion state before continuing.CLI
npx sosoapi api post /identity-api/commercial-access/billing/status < request.json虛構回應範例
{
"contract_version": "organization-commercial-billing/v1",
"workspace_id": "11111111-1111-4111-8111-111111111111",
"organization_id": "11111111-1111-4111-8111-111111111111",
"plan": "free",
"plan_limits": {
"plan": "free",
"included_human_seats": null,
"connected_channel_limit": 3,
"successful_destination_publishes_limit": null,
"pending_scheduled_posts_limit": 30,
"history_days": 30,
"stripe_quantity": 0
},
"pricing": {
"status": "available",
"source_kind": "standard",
"authority": "default_free",
"plan": "free",
"plan_version": 1,
"currency": "usd",
"interval_unit": "month",
"monthly_amount_cents": 0
},
"purchase_options": {
"status": "unavailable",
"reason_code": "checkout_disabled"
},
"pending_change": {
"status": "not_observed"
},
"continuous_lock": {
"status": "not_observed"
},
"observed_at": "2099-01-15T09:00:00Z"
}