Create support contingent
Creates a new support contingent (retainer plan) for a project.
Required fields:
projectId: ID of the projecttitle: Name of the contingent planfromDate: Start date (ISO 8601 date format)toDate: End date (ISO 8601 date format)frequency: Frequency in monthsprice: Total price for the periodhours: Total hours allocated
Optional fields:
transferable: Whether unused hours can be transferred (default: false)
Validation:
- Date periods must not overlap with existing contingents in the same project
- Rate is automatically calculated as price / hours
- All numeric values must be non-negative
Note: Requires WsSettings.manageSettings permission.
POST
/administration/project-settings/support-contingentsAuthorization
AuthorizationOAuth2 access token · headerrequiredScopes:
api:writeor
AuthorizationBearer token (JWT) · headerrequiredRequest body
requiredapplication/jsonfrequencynumberrequiredFrequency in months for the contingent period
fromDatestringrequiredStart date of the contingent period (ISO 8601 date format)
hoursnumberrequiredTotal hours allocated for the contingent period
pricenumberrequiredTotal price for the contingent period
projectIdstringrequiredID of the project this contingent belongs to (UUID)
titlestringrequiredTitle or name of the support contingent plan
toDatestringEnd date of the contingent period (ISO 8601 date format). If not set, the contingent is active forever.
transferablebooleanWhether unused hours can be transferred to the next period
Responses
201Support contingent created successfully
successbooleanrequiredOperation success flag
401Unauthorized - Invalid or missing authentication token
403Forbidden - Insufficient API scopes or permissions
Request
curl -X POST "https://leadtime.app/api/public/administration/project-settings/support-contingents" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"frequency": 12,
"fromDate": "2025-01-01",
"hours": 120,
"price": 10000,
"projectId": "550e8400-e29b-41d4-a716-446655440001",
"title": "Maintenance flatrate",
"toDate": "2025-12-31",
"transferable": false
}'const response = await fetch("https://leadtime.app/api/public/administration/project-settings/support-contingents", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_ACCESS_TOKEN",
"Content-Type": "application/json"
},
body: JSON.stringify({
"frequency": 12,
"fromDate": "2025-01-01",
"hours": 120,
"price": 10000,
"projectId": "550e8400-e29b-41d4-a716-446655440001",
"title": "Maintenance flatrate",
"toDate": "2025-12-31",
"transferable": false
})
});import requests
response = requests.post(
"https://leadtime.app/api/public/administration/project-settings/support-contingents",
headers={
"Authorization": "Bearer YOUR_ACCESS_TOKEN",
"Content-Type": "application/json"
},
json={
"frequency": 12,
"fromDate": "2025-01-01",
"hours": 120,
"price": 10000,
"projectId": "550e8400-e29b-41d4-a716-446655440001",
"title": "Maintenance flatrate",
"toDate": "2025-12-31",
"transferable": False
},
)Response
{
"success": true
}Unauthorized - Invalid or missing authentication token
Forbidden - Insufficient API scopes or permissions