BillingTierResult billing.tier-result@1

Generated at from openvibe-contracts v0.221.0 and openvibe-sdk v0.65.0.

Version
1.0.0
Owner
billing
Visibility
first-party
Status
active
Compatibility
backward
Schema
https://openvibe.network/contracts/billing/tier-result.v1.json

billing.tier-result@1: answers of billing.tier.manage on OpenVibe.Billing. GET /api/v1/tiers/:streamer → { streamer, tiers, default_price_cents, min_price_cents, max_price_cents, max_tiers } (tiers: every tier with a price, archived included; tier 1 without a row is sold at default_price_cents); PUT /api/v1/tiers/:streamer/:tier → { tier }.

Fields

This schema has no named fields.

Examples

From the contract's own test fixtures: valid ones validate, rejected ones must fail.

Valid: list
{
  "streamer": {
    "type": "user",
    "id": "usr_01JAB2C3D4E5F6G7H8J9K0MNPR"
  },
  "tiers": [
    {
      "tier": 1,
      "price_cents": 499,
      "status": "active",
      "updated_at": "2026-10-17T06:00:00.000Z"
    },
    {
      "tier": 2,
      "price_cents": 1500,
      "status": "active"
    }
  ],
  "default_price_cents": 499,
  "min_price_cents": 100,
  "max_price_cents": 50000,
  "max_tiers": 10
}
Valid: put
{
  "tier": {
    "tier": 2,
    "price_cents": 1500,
    "status": "active"
  }
}
Rejected: tier-zero
{
  "tier": {
    "tier": 0,
    "price_cents": 1500,
    "status": "active"
  }
}

Validate

const contracts = require('openvibe-contracts');
contracts.validate('billing.tier-result@1', value);   // { valid, errors: [{ path, message }] }