Skip to content
Leadtime
English
Esc
↑↓navigate↵open⌘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.

401

Unauthorized - Invalid or missing authentication token

403

Forbidden - Insufficient API scopes or permissions

Try it
Server
Authorization
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": "2019-08-24T14:15:22Z",
      "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": "2019-08-24T14:15:22Z",
    "currentPeriodStart": "2019-08-24T14:15:22Z",
    "dashboardUrl": "string",
    "items": [
      {
        "currency": "string",
        "interval": {},
        "productName": "string",
        "quantity": 0,
        "totalAmount": 0,
        "unitAmount": 0
      }
    ],
    "status": "string"
  },
  "trialEnd": {}
}