List project subscription billings
What are Project Subscription Billings? Project Subscription Billings allow you to manage recurring fees and charges for projects. This feature is ideal for SaaS subscriptions, maintenance contracts, support packages, or any recurring billing arrangement. The system automatically generates billing rows based on your date range and frequency settings, which can then be included in invoices.
What data is returned:
- All active subscription billing items for the specified project
- Items are sorted by their sort order (display order)
- Each item includes date range, payment type, price, frequency, and configuration details
Payment types supported:
- fixed: Fixed monthly fee (e.g., $500/month support package)
- perUnit: Variable pricing based on units (e.g., per user, per license)
- oneTime: One-time charge within the subscription period
Use cases:
- Retrieve all recurring billing items for a project
- Display subscription information in project dashboards
- Generate reports on recurring revenue
- Audit subscription configurations
GET
/projects/{projectId}/subscription-billingsAuthorization
AuthorizationOAuth2 access token · headerrequiredScopes:
api:reador
AuthorizationBearer token (JWT) · headerrequiredPath parameters
projectIdstringrequiredResponses
200Subscription billings retrieved successfully
Array of
ProjectSubscriptionBillingResponseDtobillingTimingstringrequiredWhen billing rows become invoiceable: **arrears** = after the billing period ends (default; row `to` date is before today). **advance** = at the start of the billing period (row `from` date is on or before today).
Allowed:
arrearsadvancefrequencynumberrequiredBilling frequency in months. Determines how often billing rows are generated. Common values: 1 = monthly billing, 3 = quarterly billing, 6 = semi-annual billing, 12 = yearly billing. Must be between 1 and 12.
min 1 · max 12
fromDatestringrequiredStart date of the subscription period. Format: ISO 8601 date string (YYYY-MM-DD). The subscription becomes active on this date.
idstringrequiredUnique identifier for the subscription billing item. UUID format.
manualTitlestringrequiredHuman-readable title or description of the subscription. This appears on invoices and in project settings. Examples: "Monthly Support Package", "Quarterly Maintenance", "Annual License Renewal".
paymentstringrequiredPayment calculation method for the subscription. "fixed" = fixed amount per billing period (e.g., $500/month). "perUnit" = variable pricing based on units (e.g., per user, per license). "oneTime" = one-time charge within the subscription period.
Allowed:
fixedperUnitoneTimepricenumberrequiredPrice amount for the subscription. For fixed payment type, this is the amount per billing period. For perUnit payment type, this is the price per unit. For oneTime payment type, this is the total charge. Must be a positive number.
projectIdstringrequiredThe project this subscription billing belongs to. UUID format.
quantitynumberQuantity for variable pricing. Required when payment type is "oneTime". Used to calculate total charge (price × quantity). Optional for other payment types.
sortnumberrequiredDisplay sort order for the subscription billing item. Lower numbers appear first. Used to control the order when multiple subscriptions are displayed. Automatically calculated when creating new items.
toDatestringrequiredEnd date of the subscription period. Format: ISO 8601 date string (YYYY-MM-DD). The subscription expires after this date. Must be equal to or after fromDate.
typestringrequiredType of subscription billing. "manual" indicates a manually created subscription (typical for API-created subscriptions). "product" indicates a subscription linked to a product catalog item.
Allowed:
manualproduct401Unauthorized - Invalid or missing authentication token
403Forbidden - Insufficient API scopes or permissions
404Project not found or access denied
Request
curl -X GET "https://leadtime.app/api/public/projects/string/subscription-billings" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"const response = await fetch("https://leadtime.app/api/public/projects/string/subscription-billings", {
method: "GET",
headers: {
"Authorization": "Bearer YOUR_ACCESS_TOKEN"
}
});import requests
response = requests.get(
"https://leadtime.app/api/public/projects/string/subscription-billings",
headers={
"Authorization": "Bearer YOUR_ACCESS_TOKEN"
},
)Response
[
{
"billingTiming": "arrears",
"frequency": 1,
"fromDate": "2024-01-01",
"id": "550e8400-e29b-41d4-a716-446655440000",
"manualTitle": "Monthly Support Package",
"payment": "fixed",
"price": 5000,
"projectId": "550e8400-e29b-41d4-a716-446655440001",
"quantity": 1,
"sort": 0,
"toDate": "2024-12-31",
"type": "manual"
}
]Unauthorized - Invalid or missing authentication token
Forbidden - Insufficient API scopes or permissions
Project not found or access denied