Skip to content
Leadtime
English
Esc
navigateopen⌘Jpreview

Get workspace subscription and billing status

What is Subscription Status? Subscription Status provides comprehensive information about your workspace subscription, billing details, and payment information. This endpoint returns all data needed to display subscription management interfaces, including current plan details, upcoming invoices, payment history, and feature availability.

What data is returned:

Core Subscription Information:

  • billingMode: The workspace billing tier (free, regular, or enterprise)
  • billingStatus: Current subscription status (active, trialing, canceled, etc.)
  • planCode: The specific plan identifier
  • billingInterval: Billing frequency (monthly or yearly)
  • features: List of enabled workspace features
  • featuresInfo: Detailed feature information with pricing for each enabled feature

Stripe Integration:

  • stripeCustomerId: Stripe customer identifier (null for free workspaces)
  • stripeSubscriptionId: Stripe subscription identifier (null for free workspaces)
  • hasPaymentMethod: Whether a payment method is on file

Trial Information:

  • trialEnd: End date of trial period (null if not in trial)

Subscription Details (Enterprise workspaces only):

  • status: Current subscription status from Stripe
  • currentPeriodStart/End: Current billing period dates
  • items: List of subscription items with product names, quantities, and pricing
  • dashboardUrl: Direct link to Stripe dashboard for this subscription

Invoice Information (Paid workspaces only):

  • nextInvoice: Preview of upcoming invoice with:
    • Line items with descriptions and quantities
    • Subtotal, tax, and total amounts
    • Tax breakdown by rate
    • Due date
  • latestInvoices: Up to 5 most recent invoices with:
    • Invoice number and status
    • Amount and currency
    • Payment dates and due dates
    • Direct links to view invoices

Seat Management:

  • billableUsersCount: Current number of billable users
  • committedSeats: Seats currently committed for billing
  • pendingSeats: Seats scheduled to be added in next period
  • pendingEffectiveAt: When pending seats become effective

Cancellation Information:

  • cancelAtPeriodEnd: Whether subscription will cancel at period end
  • cancellationEffectiveAt: When cancellation becomes effective
  • cancellationRequestedAt: When cancellation was requested
  • cancellationReason: Reason provided for cancellation

Billing Interval Changes:

  • nextBillingInterval: Scheduled billing interval change (if any)
  • billingIntervalChangeScheduled: When the change takes effect
  • stillAvailableFeatures: Features that remain available after interval change

Important Notes:

  • This is a read-only endpoint - it does not modify subscription state
  • Free workspaces return basic information without Stripe details
  • Enterprise workspaces include detailed Stripe subscription information
  • Trial workspaces may have limited invoice history
  • All monetary amounts are in cents (divide by 100 for display)
  • Dates are returned in ISO 8601 format
GET/administration/subscription-status
Authorization
AuthorizationOAuth2 access token · headerrequired
Scopes:api:read
or
AuthorizationBearer token (JWT) · headerrequired
Responses
200
billableUsersCountnumber
Current number of billable users in the workspace. This is the count of users who are counted toward seat-based billing. Only present for paid workspaces.
billingIntervalstring
Billing frequency. Values: "monthly" (billed every month), "yearly" (billed annually with potential discount). Only present for paid workspaces.
Allowed:monthyear
billingIntervalChangeScheduledobject | null
Date when a scheduled billing interval change will take effect. ISO 8601 format. Null if no interval change is scheduled.
billingModestringrequired
Workspace billing tier. Values: "free" (no paid subscription), "regular" (standard paid subscription), "enterprise" (custom enterprise agreement). Determines what features and billing details are available.
Allowed:freeregularenterprise
billingStatusstring
Current subscription status. Values: "active" (subscription is active and paid), "trialing" (in trial period), "past_due" (payment failed), "canceled" (subscription canceled), "unpaid" (payment required). Only present for paid workspaces.
Allowed:trialingactivepast_duecanceled
cancelAtPeriodEndobject | null
Whether the subscription is scheduled to cancel at the end of the current billing period. True means subscription will cancel automatically, false means it will renew. Null if cancellation status is unknown.
cancellationEffectiveAtobject | null
Date when the subscription cancellation becomes effective. ISO 8601 format. This is typically the end of the current billing period. Null if subscription is not scheduled to cancel.
cancellationReasonobject | null
Reason provided by the user when requesting cancellation. May include feedback about why they are canceling. Null if no reason was provided or cancellation was not user-initiated.
cancellationRequestedAtobject | null
Date when the cancellation was requested by the user. ISO 8601 format. Null if cancellation has not been requested.
committedSeatsnumber
Number of seats currently committed and being billed for. This is the base seat count in the subscription. Only present for paid workspaces.
featuresstring[]
List of workspace features currently enabled. Each feature code represents a capability or add-on that is active (e.g., customFields, advancedReports, apiAccess). Empty array for free workspaces.
featuresInfoFeatureInfoDto[]
Detailed information about each enabled feature including pricing, labels, and descriptions. Useful for displaying feature lists with pricing in subscription management interfaces. Only present for paid workspaces.
Show properties
Array of FeatureInfoDto
currencystringrequired
ISO 4217 currency code (e.g., USD, EUR, GBP). All prices are in this currency.
descriptionstring
Optional description explaining what this feature provides and how it benefits the workspace.
enabledbooleanrequired
Whether this feature is currently enabled and active for the workspace. Disabled features are not available for use.
featureCodestringrequired
Feature code identifier. Identifies which workspace feature this information applies to (e.g., customFields, advancedReports, apiAccess).
Allowed:HELPDESKAPIAGENT
labelstringrequired
Human-readable display label for the feature. Localized based on workspace language settings.
monthlyPriceobject | nullrequired
Monthly subscription price for this feature in cents. Multiply by 100 to get the display amount. Null if feature is not available on monthly billing.
yearlyPriceobject | nullrequired
Yearly subscription price for this feature in cents. Multiply by 100 to get the display amount. Null if feature is not available on yearly billing.
hasPaymentMethodboolean
Whether the workspace has a valid payment method on file with Stripe. True means payment can be processed automatically, false means payment method needs to be added. Only present for paid workspaces.
latestInvoicesLatestInvoiceDto[] | null
List of up to 5 most recent invoices. Includes invoice numbers, amounts, payment status, and direct links to view invoices. Only available for paid workspaces. Empty array for free workspaces or trial workspaces without payment history.
Show properties
Array of LatestInvoiceDto
amountnumberrequired
Total amount due for this invoice in cents. Multiply by 100 to get the display amount. This is the amount that was or will be charged.
createdstring<date-time>required
Date and time when the invoice was created. ISO 8601 format.
currencystringrequired
ISO 4217 currency code (e.g., USD, EUR, GBP). All amounts for this invoice are in this currency.
dueDateobject | nullrequired
Date when payment was or is due for this invoice. ISO 8601 format. Null if due date is not applicable.
idstringrequired
Unique Stripe invoice identifier. Use this to reference the invoice in Stripe API calls or support requests.
numberstringrequired
Human-readable invoice number. This is the invoice number displayed to customers and used for accounting purposes.
paidAtobject | nullrequired
Date and time when the invoice was successfully paid. ISO 8601 format. Null if invoice is not yet paid or payment failed.
statusstringrequired
Current status of the invoice. Common values: "paid" (successfully paid), "open" (awaiting payment), "void" (canceled), "uncollectible" (payment failed).
viewUrlstringrequired
Direct URL to view this invoice in Stripe customer portal. Opens the invoice in a web browser. Use this to allow customers to view or download their invoices.
nextBillingIntervalstring | null
Billing interval that will take effect in the next billing cycle. Values: "monthly" or "yearly". Null if no interval change is scheduled. Only present when user has requested to switch between monthly and yearly billing.
Allowed:monthyear
nextInvoiceobject | null
Preview of the upcoming invoice that will be generated at the next billing cycle. Includes line items, taxes, and totals. Only available for paid workspaces with active subscriptions. Null for free workspaces or if preview cannot be generated.
Show properties
currencystringrequired
ISO 4217 currency code (e.g., USD, EUR, GBP). All amounts are in this currency.
dueDateobject | nullrequired
Date when payment is due for this invoice. ISO 8601 format. Null if due date is not yet determined.
linesInvoiceLineDto[]required
All line items that will appear on the upcoming invoice. Includes base plan, seats, add-ons, and any other charges.
Show properties
Array of InvoiceLineDto
amountExcludingTaxnumber
Total amount excluding tax in cents. Only present if tax is applied. Multiply by 100 to get the display amount.
descriptionstringrequired
Human-readable description of what this line item represents. Examples: "Leadtime Pro Plan - Monthly", "Additional Seats (5)", "Setup Fee".
quantitynumberrequired
Quantity of this item. For seat-based billing, this represents the number of seats. For fixed-price items, typically 1.
taxesTaxInfoDto[]
Tax information specific to this line item. Multiple tax rates may apply to a single line item in some jurisdictions.
Show properties
Array of TaxInfoDto
amountnumberrequired
Tax amount in cents. Multiply by 100 to get the display amount. This is the total tax for this specific tax line.
descriptionstringrequired
Human-readable description of the tax. Typically includes the tax type and jurisdiction (e.g., "VAT", "Sales Tax", "GST").
percentagenumber
Tax rate percentage (e.g., 19.0 for 19% VAT). Optional - may not be available for all tax types.
totalAmountnumberrequired
Total amount for this line item in cents (unitAmount × quantity, including any discounts). Multiply by 100 to get the display amount.
unitAmountobject | nullrequired
Price per unit in cents before quantity multiplication. Multiply by 100 to get the display amount. Null if this is a fixed total amount line item.
periodEndobject | nullrequired
End date of the billing period this invoice covers. ISO 8601 format. Null if period information is not available.
periodStartobject | nullrequired
Start date of the billing period this invoice covers. ISO 8601 format. Null if period information is not available.
subtotalnumberrequired
Subtotal amount in cents before taxes and discounts. Multiply by 100 to get the display amount. Sum of all line item totals.
subtotal_excluding_taxnumber
Subtotal excluding tax in cents. Only present if tax is applied. Multiply by 100 to get the display amount.
taxnumberrequired
Total tax amount in cents. Multiply by 100 to get the display amount. Sum of all tax line amounts.
taxLinesTaxLineDto[]required
All tax lines that will appear on the invoice. Each line represents a different tax rate or tax type.
Show properties
Array of TaxLineDto
amountnumberrequired
Total tax amount for this tax line in cents. Multiply by 100 to get the display amount. This is the sum of all taxes at this rate.
descriptionstringrequired
Human-readable description of the tax line. Typically includes tax type and jurisdiction.
rateobject
Detailed tax rate information including display name and percentage. Optional - may not be available for all tax types.
Show properties
displayNamestringrequired
Human-readable name for this tax rate. Examples: "VAT", "Sales Tax", "GST".
percentagenumberrequired
Tax rate as a percentage. Example: 19.0 represents 19% tax. Used to calculate tax amounts.
totalnumberrequired
Final total amount due in cents including all line items and taxes. Multiply by 100 to get the display amount. This is the amount that will be charged.
total_excluding_taxnumber
Total amount excluding tax in cents. Only present if tax is applied. Multiply by 100 to get the display amount.
pendingEffectiveAtobject | null
Date when pending seat changes become effective. ISO 8601 format. Null if no seat changes are pending. Only present for paid workspaces.
pendingSeatsobject | null
Number of additional seats scheduled to be added in the next billing period. Null if no seat changes are pending. Only present for paid workspaces.
planCodestring
Specific plan identifier. Identifies which subscription plan the workspace is on (e.g., "pro", "team", "enterprise"). Only present for paid workspaces.
Allowed:regular
stillAvailableFeaturesstring[]
List of features that will remain available after a billing interval change. Some features may be restricted when switching from yearly to monthly billing. Empty array if no interval change is scheduled or all features remain available.
stripeCustomerIdobject | null
Stripe customer identifier. Used to reference this workspace in Stripe API calls. Null for free workspaces or if Stripe integration is not set up.
stripeSubscriptionIdobject | null
Stripe subscription identifier. Used to reference the active subscription in Stripe API calls. Null for free workspaces or if no active subscription exists.
subscriptionDetailsobject | null
Detailed subscription information from Stripe including status, billing period, and subscription items. Only available for enterprise workspaces with active Stripe subscriptions. Null for free or regular workspaces.
Show properties
currentPeriodEndstring<date-time>required
End date of the current billing period. ISO 8601 format. This is when the current billing cycle ends and the next invoice will be generated.
currentPeriodStartstring<date-time>required
Start date of the current billing period. ISO 8601 format. This is when the current billing cycle began.
dashboardUrlstringrequired
Direct URL to view and manage this subscription in the Stripe dashboard. Opens in a new window/tab. Only available for enterprise workspaces.
itemsSubscriptionItemDto[]required
List of all items included in this subscription. Each item represents a product or service being billed (e.g., base plan, additional seats, add-ons).
Show properties
Array of SubscriptionItemDto
currencystringrequired
ISO 4217 currency code (e.g., USD, EUR, GBP). All amounts for this item are in this currency.
intervalobject | nullrequired
Billing interval for this item. Values: "month" for monthly billing, "year" for yearly billing. Null if not applicable.
productNamestringrequired
Product name from Stripe. Identifies what is being billed (e.g., "Leadtime Pro Plan", "Additional Seats").
quantitynumberrequired
Quantity of this item in the subscription. For seat-based billing, this represents the number of seats.
totalAmountnumberrequired
Total amount for this line item in cents (unitAmount × quantity). Multiply by 100 to get the display amount.
unitAmountnumberrequired
Price per unit in cents. Multiply by 100 to get the display amount. This is the price for a single unit before quantity multiplication.
statusstringrequired
Current subscription status from Stripe. Common values: "active" (subscription is active and paid), "trialing" (in trial period), "past_due" (payment failed), "canceled" (subscription canceled), "unpaid" (payment required).
trialEndobject | null
End date of the trial period. ISO 8601 format. Null if workspace is not in trial or trial has ended. After this date, subscription will convert to paid or cancel.
401Unauthorized - Invalid or missing authentication token
403Forbidden - Insufficient API scopes or permissions
Request
curl -X GET "https://leadtime.app/api/public/administration/subscription-status" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN"
Response
{
  "billableUsersCount": 0,
  "billingInterval": "month",
  "billingIntervalChangeScheduled": {},
  "billingMode": "free",
  "billingStatus": "trialing",
  "cancelAtPeriodEnd": {},
  "cancellationEffectiveAt": {},
  "cancellationReason": {},
  "cancellationRequestedAt": {},
  "committedSeats": 0,
  "features": [
    "HELPDESK"
  ],
  "featuresInfo": [
    {
      "currency": "string",
      "description": "string",
      "enabled": true,
      "featureCode": "HELPDESK",
      "label": "string",
      "monthlyPrice": {},
      "yearlyPrice": {}
    }
  ],
  "hasPaymentMethod": true,
  "latestInvoices": [
    {
      "amount": 0,
      "created": "2024-01-01T00:00:00Z",
      "currency": "string",
      "dueDate": {},
      "id": "string",
      "number": "string",
      "paidAt": {},
      "status": "string",
      "viewUrl": "string"
    }
  ],
  "nextBillingInterval": "month",
  "nextInvoice": {
    "currency": "string",
    "dueDate": {},
    "lines": [
      {
        "amountExcludingTax": 0,
        "description": "string",
        "quantity": 0,
        "taxes": [
          {
            "amount": 0,
            "description": "string",
            "percentage": 0
          }
        ],
        "totalAmount": 0,
        "unitAmount": {}
      }
    ],
    "periodEnd": {},
    "periodStart": {},
    "subtotal": 0,
    "subtotal_excluding_tax": 0,
    "tax": 0,
    "taxLines": [
      {
        "amount": 0,
        "description": "string",
        "rate": {
          "displayName": "string",
          "percentage": 0
        }
      }
    ],
    "total": 0,
    "total_excluding_tax": 0
  },
  "pendingEffectiveAt": {},
  "pendingSeats": {},
  "planCode": "regular",
  "stillAvailableFeatures": [
    "HELPDESK"
  ],
  "stripeCustomerId": {},
  "stripeSubscriptionId": {},
  "subscriptionDetails": {
    "currentPeriodEnd": "2024-01-01T00:00:00Z",
    "currentPeriodStart": "2024-01-01T00:00:00Z",
    "dashboardUrl": "string",
    "items": [
      {
        "currency": "string",
        "interval": {},
        "productName": "string",
        "quantity": 0,
        "totalAmount": 0,
        "unitAmount": 0
      }
    ],
    "status": "string"
  },
  "trialEnd": {}
}