curl --request GET \
--url https://www.ruddr.io/api/workspace/project-prepayments/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://www.ruddr.io/api/workspace/project-prepayments/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://www.ruddr.io/api/workspace/project-prepayments/{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-prepayments/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://www.ruddr.io/api/workspace/project-prepayments/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://www.ruddr.io/api/workspace/project-prepayments/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://www.ruddr.io/api/workspace/project-prepayments/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "a8b2c4d6-3e1f-4a9b-8c7d-f5e2a1b9c6d3",
"type": "services",
"date": "2026-05-01",
"details": "Retainer for Q2 advisory services",
"quantity": 40,
"rate": 250,
"fee": 10000,
"createdAt": "2026-04-15T14:08:33.512Z",
"project": {
"id": "d077258e-2158-4f34-aabd-97e971d0c18d",
"name": "Cloud Infrastructure Services",
"client": {
"id": "aa39afdb-e168-4956-b061-41c7c62e8c2e",
"name": "Paul's Boutique"
}
},
"invoiceItem": {
"id": "aba04832-216c-463e-8998-c520948f707c",
"name": "Consulting Services"
},
"amountUsed": 2500,
"invoiced": true,
"locked": true
}{
"status": 400,
"message": "Parameter 'id' is not a valid UUID."
}{
"status": 404,
"message": "Object with id 'b2c4e6a8-1d3f-5a7c-9e0b-d4f6a8c2e1b3' not found."
}Get a project prepayment
curl --request GET \
--url https://www.ruddr.io/api/workspace/project-prepayments/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://www.ruddr.io/api/workspace/project-prepayments/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://www.ruddr.io/api/workspace/project-prepayments/{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-prepayments/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://www.ruddr.io/api/workspace/project-prepayments/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://www.ruddr.io/api/workspace/project-prepayments/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://www.ruddr.io/api/workspace/project-prepayments/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "a8b2c4d6-3e1f-4a9b-8c7d-f5e2a1b9c6d3",
"type": "services",
"date": "2026-05-01",
"details": "Retainer for Q2 advisory services",
"quantity": 40,
"rate": 250,
"fee": 10000,
"createdAt": "2026-04-15T14:08:33.512Z",
"project": {
"id": "d077258e-2158-4f34-aabd-97e971d0c18d",
"name": "Cloud Infrastructure Services",
"client": {
"id": "aa39afdb-e168-4956-b061-41c7c62e8c2e",
"name": "Paul's Boutique"
}
},
"invoiceItem": {
"id": "aba04832-216c-463e-8998-c520948f707c",
"name": "Consulting Services"
},
"amountUsed": 2500,
"invoiced": true,
"locked": true
}{
"status": 400,
"message": "Parameter 'id' is not a valid UUID."
}{
"status": 404,
"message": "Object with id 'b2c4e6a8-1d3f-5a7c-9e0b-d4f6a8c2e1b3' not found."
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
The project prepayment uuid
Response
200
The unique identifier for the object.
The category of fees this prepayment is applied against.
services, expenses, products, other_items The date of the prepayment. Will be in the form YYYY-MM-DD.
A description of the prepayment.
The quantity used to calculate the fee. null when the fee was entered directly.
The rate used to calculate the fee. null when the fee was entered directly.
The total prepaid amount available to offset future fees.
The timestamp when the object was created.
The project this prepayment belongs to.
Show child attributes
Show child attributes
The invoice item the prepayment is billed and offset against.
Show child attributes
Show child attributes
The portion of the fee already consumed to offset fees on issued invoices. This is a calculated value.
Whether the prepayment has been added to an invoice.
Whether the prepayment can no longer be modified because it is on an invoice or has been used to offset fees.