Budgets

Update milestone revenue recognition configs for a budget

Changed on
put/1.0/budgets/{budgetId}/milestone-revenue-recognition-configs

Request

Path parameters

budgetIdinteger required
Example:101

Unique identifier of the budget

Query parameters

includeFieldsstring[]

This query parameter allows you to specify which fields should be returned in the response body by selecting from the drop down. To get the relevant fields, use comma separated values. If the field is left blank, the default properties are returned.

includeAllFieldsboolean
Example:true

This query parameter allows you to specify if all the fields should be returned in the response body. If the field is left blank, the default properties are returned.

Request body

Example request

{
  "milestoneRevenueRecognitionConfigs": [
    {
      "sourceType": "TASK",
      "sourceId": 1001,
      "recognisedRevenue": 1000,
      "recognisedPercentage": 10
    }
  ]
}

Response

The requested action was successfully executed.

budgetIdinteger

Unique identifier of the budget

projectIdinteger

Project this budget belongs to

projectNamestring

Name of the project containing this budget

budgetNamestring

Display name of the budget

startDatestring date

Budget period start date (YYYY-MM-DD)

endDatestring date

Budget period end date (YYYY-MM-DD)

currency'AFN' | 'ALL' | 'DZD' | 'ARS' | 'AMD' | 'AUD' | 'AZN' | 'BHD' | 'BDT' | 'BYN' | 'BZD' | 'BOB' | 'BAM' | 'BWP' | 'BRL' | 'GBP' | 'BND' | 'BGN' | 'BIF' | 'KHR' | 'CAD' | 'CVE' | 'XAF' | 'CLP' | 'CNY' | 'COP' | 'KMF' | 'CDF' | 'CRC' | 'HRK' | 'CZK' | 'DKK' | 'DJF' | 'DOP' | 'EGP' | 'ERN' | 'EEK' | 'ETB' | 'EUR' | 'GEL' | 'GHS' | 'GTQ' | 'GNF' | 'HNL' | 'HKD' | 'HUF' | 'ISK' | 'INR' | 'IDR' | 'IRR' | 'IQD' | 'ILS' | 'JMD' | 'JPY' | 'JOD' | 'KZT' | 'KES' | 'KWD' | 'LVL' | 'LBP' | 'LYD' | 'LTL' | 'MOP' | 'MKD' | 'MGA' | 'MYR' | 'MUR' | 'MXN' | 'MDL' | 'MAD' | 'MZN' | 'MMK' | 'NAD' | 'NPR' | 'TWD' | 'NZD' | 'NIO' | 'NGN' | 'NOK' | 'OMR' | 'PKR' | 'PAB' | 'PYG' | 'PEN' | 'PHP' | 'PLN' | 'QAR' | 'RON' | 'RUB' | 'RWF' | 'SAR' | 'RSD' | 'SGD' | 'SOS' | 'ZAR' | 'KRW' | 'LKR' | 'SDG' | 'SEK' | 'CHF' | 'SYP' | 'TZS' | 'THB' | 'TOP' | 'TTD' | 'TND' | 'TRY' | 'USD' | 'UGX' | 'UAH' | 'AED' | 'UYU' | 'UZS' | 'VEF' | 'VND' | 'XOF' | 'YER' | 'ZMK' | 'ZWL'

Currency code for budget amounts

billingType'FIXED_FEE' | 'TIME_AND_MATERIAL' | 'SUBSCRIPTION' | 'NON_BILLABLE'

Financial contract type for the budget (e.g. TIME_AND_MATERIAL, FIXED_FEE)

revenueRecognitionTypestring

Revenue recognition type configured for the budget. For custom revenue recognition, this is CUSTOM_REVENUE_RECOGNITION and customRevenueRecognitionConfigId identifies the config.

customRevenueRecognitionConfigIdinteger

Unique identifier of the custom revenue recognition configuration associated with this budget. Present when revenueRecognitionType is CUSTOM_REVENUE_RECOGNITION.

budgetAmountnumber

Total budgeted amount for the budget

budgetHoursnumber double

Budgeted hours for this budget, returned as a decimal with up to two decimal places. The fractional part represents minutes (e.g. 1.65 = 1 hour 39 minutes). Internally, budget time is stored as whole minutes; this value is derived as minutes ÷ 60, rounded to two decimal places. For tracked, allocated, and remaining time, see the whole-minute fields under budgetFinancialsMetrics.

createdAtinteger

Timestamp when the budget was created

updatedAtinteger

Timestamp when the budget was last updated

isDefaultboolean

Whether this is the default budget for the project

Example response

{
  "budgetId": 101,
  "projectId": 42,
  "projectName": "Acme Implementation",
  "budgetName": "FY 2024 Services",
  "startDate": "2024-01-01",
  "endDate": "2024-12-31",
  "status": {
    "value": 2,
    "label": "In progress"
  },
  "currency": "USD",
  "revenueRecognitionType": "TRACKED_HOURS_BY_PERIOD_HOURS",
  "customRevenueRecognitionConfigId": 101,
  "budgetHours": 1.65,
  "timeAndMaterialContract": {
    "rateCard": {
      "rateCardId": 21,
      "rateCardName": "US Project rate"
    }
  },
  "subscriptionContract": {
    "subscriptionFrequency": "MONTHLY",
    "subscriptionStartDate": "2023-03-28",
    "periodMinutes": 60,
    "periodBudget": 10000,
    "noOfPeriods": 10
  },
  "budgetFinancialsMetrics": {
    "actualRevenue": 10000,
    "estimatedRevenue": 200000,
    "actualRevenueInAccountCurrency": 10000,
    "estimatedRevenueInAccountCurrency": 200000,
    "actualTimeCost": 200,
    "estimatedTimeCost": 200,
    "actualTimeCostInAccountCurrency": 200,
    "estimatedTimeCostInAccountCurrency": 200,
    "actualExpenseCost": 200,
    "estimatedExpenseCost": 200,
    "actualExpenseCostInAccountCurrency": 200,
    "estimatedExpenseCostInAccountCurrency": 200,
    "actualCost": 200,
    "estimatedCost": 200,
    "actualCostInAccountCurrency": 200,
    "estimatedCostInAccountCurrency": 200,
    "trackedMinutes": 200,
    "remainingMinutes": 200,
    "allocatedMinutes": 200,
    "billableAllocatedMinutes": 200,
    "nonBillableAllocatedMinutes": 200,
    "billableTrackedMinutes": 200,
    "nonBillableTrackedMinutes": 200,
    "actualProfit": 200,
    "estimatedProfit": 200,
    "actualProfitInAccountCurrency": 200,
    "estimatedProfitInAccountCurrency": 200,
    "actualProfitMargin": 200,
    "estimatedProfitMargin": 200,
    "actualProfitMarginInAccountCurrency": 200,
    "estimatedProfitMarginInAccountCurrency": 200,
    "percentageBudgetedHoursConsumed": 200,
    "percentageBudgetConsumed": 200,
    "estimateAtCompletion": 200,
    "estimationToCompletionInHours": 200
  },
  "manualRevenueRecognitionConfigs": [
    {
      "manualRevenueRecognitionConfigId": 1001,
      "recognitionDate": "2026-04-01",
      "recognisedRevenue": 1000,
      "recognisedPercentage": 10
    }
  ],
  "milestoneRevenueRecognitionConfigs": [
    {
      "milestoneRevenueRecognitionConfigId": 1001,
      "sourceType": "TASK",
      "sourceId": 2001,
      "recognisedRevenue": 1000,
      "recognisedPercentage": 10
    }
  ],
  "createdAt": 1681319726000,
  "updatedAt": 1681319726000,
  "createdBy": {
    "emailId": "john.doe@rocketlane.com",
    "userId": 201,
    "firstName": "John",
    "lastName": "Doe"
  },
  "updatedBy": {
    "emailId": "john.doe@rocketlane.com",
    "userId": 201,
    "firstName": "John",
    "lastName": "Doe"
  },
  "fields": [
    {
      "fieldId": 201,
      "fieldLabel": "MRR",
      "fieldValueLabel": "1000"
    }
  ]
}

Changes