curl --request PATCH \
--url https://www.ruddr.io/api/workspace/project-revenue-adjustments/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"date": "2023-12-25",
"amount": 123,
"notes": "<string>"
}
'import requests
url = "https://www.ruddr.io/api/workspace/project-revenue-adjustments/{id}"
payload = {
"date": "2023-12-25",
"amount": 123,
"notes": "<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({date: '2023-12-25', amount: 123, notes: '<string>'})
};
fetch('https://www.ruddr.io/api/workspace/project-revenue-adjustments/{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-revenue-adjustments/{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([
'date' => '2023-12-25',
'amount' => 123,
'notes' => '<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-revenue-adjustments/{id}"
payload := strings.NewReader("{\n \"date\": \"2023-12-25\",\n \"amount\": 123,\n \"notes\": \"<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-revenue-adjustments/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"date\": \"2023-12-25\",\n \"amount\": 123,\n \"notes\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://www.ruddr.io/api/workspace/project-revenue-adjustments/{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 \"date\": \"2023-12-25\",\n \"amount\": 123,\n \"notes\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "5f2da3bb-6bf6-4ea8-8d74-2d07f77e368b",
"date": "2026-03-01",
"revenueType": "services",
"amount": 18750.5,
"notes": "Q1 true-up",
"creditNoteId": null,
"createdAt": "2026-01-20T16:08:44.561Z",
"project": {
"id": "1b297f6a-2985-497b-a1c5-0b25939484f1",
"name": "Data Analytics Platform",
"client": {
"id": "328d516f-684f-46e8-8711-64b66ab078aa",
"name": "Globex Industries"
}
}
}Update a project revenue adjustment
curl --request PATCH \
--url https://www.ruddr.io/api/workspace/project-revenue-adjustments/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"date": "2023-12-25",
"amount": 123,
"notes": "<string>"
}
'import requests
url = "https://www.ruddr.io/api/workspace/project-revenue-adjustments/{id}"
payload = {
"date": "2023-12-25",
"amount": 123,
"notes": "<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({date: '2023-12-25', amount: 123, notes: '<string>'})
};
fetch('https://www.ruddr.io/api/workspace/project-revenue-adjustments/{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-revenue-adjustments/{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([
'date' => '2023-12-25',
'amount' => 123,
'notes' => '<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-revenue-adjustments/{id}"
payload := strings.NewReader("{\n \"date\": \"2023-12-25\",\n \"amount\": 123,\n \"notes\": \"<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-revenue-adjustments/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"date\": \"2023-12-25\",\n \"amount\": 123,\n \"notes\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://www.ruddr.io/api/workspace/project-revenue-adjustments/{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 \"date\": \"2023-12-25\",\n \"amount\": 123,\n \"notes\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "5f2da3bb-6bf6-4ea8-8d74-2d07f77e368b",
"date": "2026-03-01",
"revenueType": "services",
"amount": 18750.5,
"notes": "Q1 true-up",
"creditNoteId": null,
"createdAt": "2026-01-20T16:08:44.561Z",
"project": {
"id": "1b297f6a-2985-497b-a1c5-0b25939484f1",
"name": "Data Analytics Platform",
"client": {
"id": "328d516f-684f-46e8-8711-64b66ab078aa",
"name": "Globex Industries"
}
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
The project revenue adjustment uuid.
Body
The date (YYYY-MM-DD) of the adjustment.
The category of earned revenue this adjustment applies to.
services, expenses, products, other_items The adjustment amount. Positive values increase earned revenue and negative values decrease it.
Any notes about the adjustment (max 255 chars).
Response
200
The unique identifier for the object.
The date of the adjustment. Will be in the form YYYY-MM-DD.
The category of earned revenue this adjustment applies to.
services, expenses, products, other_items The adjustment amount. Positive values increase earned revenue and negative values decrease it.
Any notes about the adjustment.
The ID (uuid) of the credit note that created this adjustment when it was published, if any. Adjustments created by a credit note are read-only.
The timestamp when the object was created.
The project this adjustment belongs to.
Show child attributes
Show child attributes