Skip to main content
The Scrums.com API is planned and not yet publicly available. Endpoints and behaviour are subject to change before release.

Overview

A subscription (SUB-*) represents an organization’s active commitment to a Plan. Subscriptions are the commercial activation layer: when an organization subscribes to a plan, it unlocks the permitted product lines and usage limits across all its workspaces. Every Service Line is created against a subscription. This is how usage metering and billing trace back to the commercial contract. When a billing period closes, Invoices are generated from the subscription’s accrued usage.

Core Concepts

One or more subscriptions per organization

An organization may hold multiple subscriptions if it has different commercial arrangements for different product lines or billing entities. Each subscription maps to one Plan and generates its own invoice series.

Subscription lifecycle

trialing -> active -> past_due -> cancelled
   |                     ^
   +---> active ---------+  (if payment received)
A subscription transitions to past_due if the invoice is not settled by the due date. past_due subscriptions remain functional for a grace period before Service Lines are suspended.

Subscription and Service Line relationship

A LIN-* always references a SUB-*. This ensures every unit of work has a clear commercial owner. Creating a Service Line requires a subscription_id referencing an active subscription on the same organization.

Endpoints

GET /v1/subscriptions

List subscriptions for an organization.

Request

GET /v1/subscriptions?organization_id=ORG-26-090500
Authorization: Bearer <token>

Response

{
  "data": [
    {
      "id": "SUB-26-001122",
      "organization_id": "ORG-26-090500",
      "plan_id": "plan_enterprise_annual",
      "plan_name": "Enterprise",
      "status": "active",
      "current_period_start": "2026-01-01T00:00:00Z",
      "current_period_end": "2026-12-31T23:59:59Z",
      "cancel_at_period_end": false,
      "active_service_lines": 11,
      "accrued_this_period": 142650.00,
      "currency": "USD",
      "created_at": "2025-01-01T00:00:00Z",
      "updated_at": "2026-01-01T00:00:00Z"
    }
  ]
}

POST /v1/subscriptions

Create a new subscription for an organization.

Request

{
  "organization_id": "ORG-26-090500",
  "plan_id": "plan_enterprise_annual",
  "billing_email": "billing@apexdigital.com",
  "payment_method_id": "pm_1234567890"
}

Response

Returns the created subscription. Status is trialing if the plan has a trial period, otherwise active.

Notes

  • Only org owner or billing role can create subscriptions.
  • payment_method_id references a payment method stored in the billing system.

GET /v1/subscriptions/

Retrieve a subscription with current period accruals.

Response

{
  "data": {
    "id": "SUB-26-001122",
    "organization_id": "ORG-26-090500",
    "plan_id": "plan_enterprise_annual",
    "plan_name": "Enterprise",
    "status": "active",
    "current_period_start": "2026-01-01T00:00:00Z",
    "current_period_end": "2026-12-31T23:59:59Z",
    "cancel_at_period_end": false,
    "active_service_lines": 11,
    "service_line_ids": [
      "LIN-26-084729",
      "LIN-26-088401",
      "LIN-26-091100"
    ],
    "accrued_this_period": 142650.00,
    "forecast_this_period": 298400.00,
    "currency": "USD",
    "invoice_ids": ["INV-26-000881"],
    "created_at": "2025-01-01T00:00:00Z",
    "updated_at": "2026-01-01T00:00:00Z"
  }
}

PATCH /v1/subscriptions/

Update a subscription. Used primarily to change plans, update billing email, or schedule cancellation.

Request

{
  "cancel_at_period_end": true
}

Notes

  • Plan changes (plan_id) take effect at the start of the next billing period.
  • Setting cancel_at_period_end: true does not immediately cancel. The subscription continues until the period ends.
  • Changing to a plan with fewer allowed_product_lines may suspend active Service Lines that exceed the new plan’s limits.

DELETE /v1/subscriptions/

Cancel a subscription immediately. Outstanding usage is invoiced at the time of cancellation.

Notes

  • Requires explicit confirmation. Pass { "confirm": true } in the request body.
  • All Service Lines referencing this subscription are closed on cancellation.
  • This action cannot be undone.

Common Workflows

Checking subscription health before quarter-end

# Current period accrual vs forecast
GET /v1/subscriptions/SUB-26-001122

# Verify no invoices are past due
GET /v1/billing/invoices?subscription_id=SUB-26-001122&status=past_due

Validating a subscription before creating a Service Line

# Check the subscription is active and the product line is permitted
GET /v1/subscriptions/SUB-26-001122

# Verify plan allows the product line
GET /v1/plans/plan_enterprise_annual

Objects

Subscription

FieldTypeDescription
idstringSUB-* identifier
organization_idstringParent organization (ORG-*)
plan_idstringActive plan reference
plan_namestringPlan display name
statusenumtrialing, active, past_due, cancelled, paused
current_period_startdatetimeStart of the current billing period
current_period_enddatetimeEnd of the current billing period
cancel_at_period_endbooleanWhether cancellation is scheduled at period end
active_service_linesintegerNumber of active LIN-* under this subscription
service_line_idsarrayLIN-* identifiers (returned on GET by ID)
accrued_this_periodnumberCosts accrued in the current billing period
forecast_this_periodnumberProjected total for the current period
currencystringISO 4217 currency code
invoice_idsarrayHistorical invoice references
created_atdatetimeSubscription creation timestamp

Best Practices

  • Always reference the correct subscription_id on Service Lines. If an organization has multiple subscriptions, ensure each Service Line references the correct one. Misaligned subscriptions cause incorrect invoice attribution.
  • Monitor accrued_this_period against forecast. Significant divergence between accrual and forecast usually means a new Service Line was activated unexpectedly. Set up webhooks for service_line.activated events to catch this in real time.
  • Do not cancel subscriptions to pause work. Use PATCH /v1/service-lines/{lin_code}/transitions to pause individual Service Lines. Cancelling the subscription closes all Service Lines and invoices immediately.
Last modified on April 15, 2026