Skip to main content
Represents an addon in the Stigg system. Addons are optional packages that can be added to a subscription to provide additional features or increased limits.

Type Definition

type Addon {
  id: UUID!
  refId: String!
  displayName: String!
  description: String
  status: PackageStatus!
  type: String!
  versionNumber: Int!
  isLatest: Boolean

  # Pricing
  pricingType: PricingType
  prices: [Price!]
  overagePrices: [Price!]
  overageBillingPeriod: OverageBillingPeriod

  # Quantity limits
  maxQuantity: Float

  # Entitlements
  packageEntitlements: [PackageEntitlementUnion!]

  # Dependencies
  dependencies: [Addon!]

  # Subscriptions
  hasSubscriptions: Boolean!

  # Related entities
  product: Product
  productId: String
  offer: Offer

  # Metadata
  additionalMetaData: JSON
  hiddenFromWidgets: [WidgetType!]

  # Integrations
  billingId: String
  billingLinkUrl: String
  syncStates: [SyncState!]

  # Draft management
  draftDetails: PackageDraftDetails
  draftSummary: PackageDraftSummary

  # Timestamps
  createdAt: DateTime
  updatedAt: DateTime
  environmentId: UUID!
  environment: Environment!
}

Fields

Core Fields

FieldTypeDescription
idUUID!Unique identifier for the addon
refIdString!Your application’s unique identifier for this addon
displayNameString!Display name shown to customers
descriptionStringAddon description
statusPackageStatus!Publication status (DRAFT, PUBLISHED, ARCHIVED)
typeString!Package type identifier
versionNumberInt!Version number of this addon
isLatestBooleanWhether this is the latest version

Pricing

FieldTypeDescription
pricingTypePricingTypeType of pricing (FREE, PAID, CUSTOM)
prices[Price!]Price configurations for this addon
overagePrices[Price!]Overage pricing for usage-based features
overageBillingPeriodOverageBillingPeriodWhen overage is billed

Quantity

FieldTypeDescription
maxQuantityFloatMaximum quantity that can be added to a subscription

Entitlements

FieldTypeDescription
packageEntitlements[PackageEntitlementUnion!]Entitlements provided by this addon

Dependencies

FieldTypeDescription
dependencies[Addon!]Other addons this addon depends on
FieldTypeDescription
productProductThe product this addon belongs to
productIdStringProduct identifier
hasSubscriptionsBoolean!Whether any subscriptions use this addon

SubscriptionAddon Type

When an addon is attached to a subscription, it’s represented as:
type SubscriptionAddon {
  id: UUID!
  addonId: String!
  addon: Addon!
  quantity: Float!
  price: Price
  subscription: CustomerSubscription!
  createdAt: DateTime
  updatedAt: DateTime!
}
FieldTypeDescription
addonIdString!Reference ID of the addon
addonAddon!The addon object
quantityFloat!Quantity of this addon in the subscription
pricePricePrice configuration for this subscription addon

Example Response

{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "refId": "addon-extra-seats",
  "displayName": "Extra Seats",
  "description": "Add more team members to your plan",
  "status": "PUBLISHED",
  "versionNumber": 1,
  "isLatest": true,
  "pricingType": "PAID",
  "maxQuantity": 100,
  "prices": [
    {
      "id": "price-456",
      "billingModel": "PER_UNIT",
      "billingPeriod": "MONTHLY",
      "price": {
        "amount": 10.00,
        "currency": "USD"
      }
    }
  ],
  "packageEntitlements": [
    {
      "feature": {
        "refId": "feature-seats",
        "displayName": "Team Seats"
      },
      "usageLimit": 1,
      "hasUnlimitedUsage": false
    }
  ],
  "hasSubscriptions": true,
  "product": {
    "refId": "product-saas",
    "displayName": "SaaS Platform"
  },
  "createdAt": "2024-01-10T10:00:00Z",
  "updatedAt": "2024-01-15T15:30:00Z"
}