Create an expense report
curl --request POST \
--url https://www.ruddr.io/api/workspace/expense-reports \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"title": "<string>",
"date": "2023-12-25",
"memberId": "<string>",
"notes": "<string>"
}
'import requests
url = "https://www.ruddr.io/api/workspace/expense-reports"
payload = {
"title": "<string>",
"date": "2023-12-25",
"memberId": "<string>",
"notes": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({title: '<string>', date: '2023-12-25', memberId: '<string>', notes: '<string>'})
};
fetch('https://www.ruddr.io/api/workspace/expense-reports', 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/expense-reports",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'title' => '<string>',
'date' => '2023-12-25',
'memberId' => '<string>',
'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/expense-reports"
payload := strings.NewReader("{\n \"title\": \"<string>\",\n \"date\": \"2023-12-25\",\n \"memberId\": \"<string>\",\n \"notes\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", 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.post("https://www.ruddr.io/api/workspace/expense-reports")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"title\": \"<string>\",\n \"date\": \"2023-12-25\",\n \"memberId\": \"<string>\",\n \"notes\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://www.ruddr.io/api/workspace/expense-reports")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"title\": \"<string>\",\n \"date\": \"2023-12-25\",\n \"memberId\": \"<string>\",\n \"notes\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "c3e7a1f4-82b5-4d9e-b063-2f8a1c5e9d47",
"number": 14,
"title": "January 2025 Expenses",
"notes": "Monthly expense report.",
"date": "2025-01-15",
"createdAt": "2025-01-15T20:47:03.284Z",
"member": {
"id": "a9b2d6e8-3c14-4f7a-9051-6e8b2d4f1c93",
"name": "Jane Smith"
}
}Expense Reports
Create an expense report
POST
/
expense-reports
Create an expense report
curl --request POST \
--url https://www.ruddr.io/api/workspace/expense-reports \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"title": "<string>",
"date": "2023-12-25",
"memberId": "<string>",
"notes": "<string>"
}
'import requests
url = "https://www.ruddr.io/api/workspace/expense-reports"
payload = {
"title": "<string>",
"date": "2023-12-25",
"memberId": "<string>",
"notes": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({title: '<string>', date: '2023-12-25', memberId: '<string>', notes: '<string>'})
};
fetch('https://www.ruddr.io/api/workspace/expense-reports', 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/expense-reports",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'title' => '<string>',
'date' => '2023-12-25',
'memberId' => '<string>',
'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/expense-reports"
payload := strings.NewReader("{\n \"title\": \"<string>\",\n \"date\": \"2023-12-25\",\n \"memberId\": \"<string>\",\n \"notes\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", 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.post("https://www.ruddr.io/api/workspace/expense-reports")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"title\": \"<string>\",\n \"date\": \"2023-12-25\",\n \"memberId\": \"<string>\",\n \"notes\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://www.ruddr.io/api/workspace/expense-reports")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"title\": \"<string>\",\n \"date\": \"2023-12-25\",\n \"memberId\": \"<string>\",\n \"notes\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "c3e7a1f4-82b5-4d9e-b063-2f8a1c5e9d47",
"number": 14,
"title": "January 2025 Expenses",
"notes": "Monthly expense report.",
"date": "2025-01-15",
"createdAt": "2025-01-15T20:47:03.284Z",
"member": {
"id": "a9b2d6e8-3c14-4f7a-9051-6e8b2d4f1c93",
"name": "Jane Smith"
}
}A container for expense items. This helps group expenses for a specific purpose.
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
application/json
The title of the expense report. Max 255 characters.
The report date. Should be in the form YYYY-MM-DD.
The member ID (uuid) of the member this expense report belongs to.
Notes for the expense report. Max 5000 characters.
Response
200
The unique identifier for the object.
The report number.
The report title.
Any notes for the report.
The report date. Will be in the form YYYY-MM-DD.
The timestamp when the object was created.
The member associated with this expense report.
Show child attributes
Show child attributes
⌘I