Skip to main content
PATCH
/
project-monthly-budget-service-items
/
{id}
Update a project monthly budget service item
curl --request PATCH \
  --url https://www.ruddr.io/api/workspace/project-monthly-budget-service-items/{id} \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "fee": 123,
  "description": "<string>",
  "invoiceItemId": "<string>"
}
'
import requests

url = "https://www.ruddr.io/api/workspace/project-monthly-budget-service-items/{id}"

payload = {
    "fee": 123,
    "description": "<string>",
    "invoiceItemId": "<string>"
}
headers = {
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

response = requests.patch(url, json=payload, headers=headers)

print(response.text)
const options = {
  method: 'PATCH',
  headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
  body: JSON.stringify({fee: 123, description: '<string>', invoiceItemId: '<string>'})
};

fetch('https://www.ruddr.io/api/workspace/project-monthly-budget-service-items/{id}', options)
  .then(res => res.json())
  .then(res => console.log(res))
  .catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://www.ruddr.io/api/workspace/project-monthly-budget-service-items/{id}",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "PATCH",
  CURLOPT_POSTFIELDS => json_encode([
    'fee' => 123,
    'description' => '<string>',
    'invoiceItemId' => '<string>'
  ]),
  CURLOPT_HTTPHEADER => [
    "Authorization: Bearer <token>",
    "Content-Type: application/json"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://www.ruddr.io/api/workspace/project-monthly-budget-service-items/{id}"

	payload := strings.NewReader("{\n  \"fee\": 123,\n  \"description\": \"<string>\",\n  \"invoiceItemId\": \"<string>\"\n}")

	req, _ := http.NewRequest("PATCH", url, payload)

	req.Header.Add("Authorization", "Bearer <token>")
	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.patch("https://www.ruddr.io/api/workspace/project-monthly-budget-service-items/{id}")
  .header("Authorization", "Bearer <token>")
  .header("Content-Type", "application/json")
  .body("{\n  \"fee\": 123,\n  \"description\": \"<string>\",\n  \"invoiceItemId\": \"<string>\"\n}")
  .asString();
require 'uri'
require 'net/http'

url = URI("https://www.ruddr.io/api/workspace/project-monthly-budget-service-items/{id}")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"fee\": 123,\n  \"description\": \"<string>\",\n  \"invoiceItemId\": \"<string>\"\n}"

response = http.request(request)
puts response.read_body
{ "id": "d5c19f83-2e47-4b0a-a7e3-f0b29d8c41a6", "fee": 3500, "description": "Monthly managed services retainer", "createdAt": "2026-06-04T16:40:12.508Z", "project": { "id": "d4f81c36-7b29-4e5a-a2d8-c3e7f09b61a4", "name": "Infrastructure Modernization", "client": { "id": "e9a52d47-1c83-4b6f-b7e3-d0f29a8c74b2", "name": "Sterling Cooper" } }, "invoiceItem": { "id": "f1c74e28-9b03-4d5a-86e2-a3d7f0c52b19", "name": "Managed Services" } }
The monthly budget for an additional service invoice item on a project. Only available for billable projects using a monthly budget and the monthly budget mode is “detailed”.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

id
string
required

The project monthly budget service item uuid.

Body

application/json
fee
number

The total amount of the item.

description
string | null

A description of the item being charged. Maximum 255 characters.

invoiceItemId
string

The ID (uuid) of the invoice item to associate with this budget line.

Response

200

id
string

The unique identifier for the object.

fee
number

The total amount of the item.

description
string | null

A description of the item being charged.

createdAt
string<date-time>

The timestamp when the object was created.

project
object

The project this item belongs to.

invoiceItem
object

The invoice item associated with this budget line.