curl --request PATCH \
--url https://www.ruddr.io/api/workspace/business-units/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"isActive": true,
"companyName": "<string>",
"streetAddress": "<string>",
"invoiceSubject": "<string>",
"invoiceNotes": "<string>",
"invoiceEmailSubject": "<string>",
"invoiceEmailBody": "<string>",
"invoiceEmailFromName": "<string>",
"invoiceEmailReplyTo": "<string>",
"invoicePaymentTermId": "<string>",
"invoiceTaxRateId": "<string>",
"invoiceTaxableItems": []
}
'import requests
url = "https://www.ruddr.io/api/workspace/business-units/{id}"
payload = {
"name": "<string>",
"isActive": True,
"companyName": "<string>",
"streetAddress": "<string>",
"invoiceSubject": "<string>",
"invoiceNotes": "<string>",
"invoiceEmailSubject": "<string>",
"invoiceEmailBody": "<string>",
"invoiceEmailFromName": "<string>",
"invoiceEmailReplyTo": "<string>",
"invoicePaymentTermId": "<string>",
"invoiceTaxRateId": "<string>",
"invoiceTaxableItems": []
}
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({
name: '<string>',
isActive: true,
companyName: '<string>',
streetAddress: '<string>',
invoiceSubject: '<string>',
invoiceNotes: '<string>',
invoiceEmailSubject: '<string>',
invoiceEmailBody: '<string>',
invoiceEmailFromName: '<string>',
invoiceEmailReplyTo: '<string>',
invoicePaymentTermId: '<string>',
invoiceTaxRateId: '<string>',
invoiceTaxableItems: []
})
};
fetch('https://www.ruddr.io/api/workspace/business-units/{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/business-units/{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([
'name' => '<string>',
'isActive' => true,
'companyName' => '<string>',
'streetAddress' => '<string>',
'invoiceSubject' => '<string>',
'invoiceNotes' => '<string>',
'invoiceEmailSubject' => '<string>',
'invoiceEmailBody' => '<string>',
'invoiceEmailFromName' => '<string>',
'invoiceEmailReplyTo' => '<string>',
'invoicePaymentTermId' => '<string>',
'invoiceTaxRateId' => '<string>',
'invoiceTaxableItems' => [
]
]),
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/business-units/{id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"isActive\": true,\n \"companyName\": \"<string>\",\n \"streetAddress\": \"<string>\",\n \"invoiceSubject\": \"<string>\",\n \"invoiceNotes\": \"<string>\",\n \"invoiceEmailSubject\": \"<string>\",\n \"invoiceEmailBody\": \"<string>\",\n \"invoiceEmailFromName\": \"<string>\",\n \"invoiceEmailReplyTo\": \"<string>\",\n \"invoicePaymentTermId\": \"<string>\",\n \"invoiceTaxRateId\": \"<string>\",\n \"invoiceTaxableItems\": []\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/business-units/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"isActive\": true,\n \"companyName\": \"<string>\",\n \"streetAddress\": \"<string>\",\n \"invoiceSubject\": \"<string>\",\n \"invoiceNotes\": \"<string>\",\n \"invoiceEmailSubject\": \"<string>\",\n \"invoiceEmailBody\": \"<string>\",\n \"invoiceEmailFromName\": \"<string>\",\n \"invoiceEmailReplyTo\": \"<string>\",\n \"invoicePaymentTermId\": \"<string>\",\n \"invoiceTaxRateId\": \"<string>\",\n \"invoiceTaxableItems\": []\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://www.ruddr.io/api/workspace/business-units/{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 \"name\": \"<string>\",\n \"isActive\": true,\n \"companyName\": \"<string>\",\n \"streetAddress\": \"<string>\",\n \"invoiceSubject\": \"<string>\",\n \"invoiceNotes\": \"<string>\",\n \"invoiceEmailSubject\": \"<string>\",\n \"invoiceEmailBody\": \"<string>\",\n \"invoiceEmailFromName\": \"<string>\",\n \"invoiceEmailReplyTo\": \"<string>\",\n \"invoicePaymentTermId\": \"<string>\",\n \"invoiceTaxRateId\": \"<string>\",\n \"invoiceTaxableItems\": []\n}"
response = http.request(request)
puts response.read_body{
"id": "d2f9a5e3-7c41-4b86-80d0-e3b7c6f02a19",
"name": "West Region (Updated)",
"isActive": true,
"companyName": "Acme West LLC",
"streetAddress": "456 Market St\nSuite 200\nSan Francisco, CA 94105",
"invoiceSubject": "Invoice - West Region",
"invoiceNotes": "Net terms apply. Late fees may be assessed.",
"invoiceEmailSubject": "Invoice from Acme West LLC",
"invoiceEmailBody": "Please review the attached invoice at your earliest convenience.",
"invoiceEmailFromName": "Acme West Finance",
"invoiceEmailReplyTo": "finance-west@acmecorp.com",
"invoiceTaxableItems": [
"services",
"expenses"
],
"createdAt": "2025-11-18T11:25:42.891Z",
"invoicePaymentTerm": {
"id": "b4e1c7a9-2d38-4f96-80d5-f3a7e6c02b19",
"name": "Net 30",
"type": "net",
"days": 30
},
"invoiceTaxRate": {
"id": "c9d2e5b8-3f47-4a81-92d6-e1b7c4f03a28",
"name": "Standard Tax",
"rate": 8.5
}
}Update a business unit
curl --request PATCH \
--url https://www.ruddr.io/api/workspace/business-units/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"isActive": true,
"companyName": "<string>",
"streetAddress": "<string>",
"invoiceSubject": "<string>",
"invoiceNotes": "<string>",
"invoiceEmailSubject": "<string>",
"invoiceEmailBody": "<string>",
"invoiceEmailFromName": "<string>",
"invoiceEmailReplyTo": "<string>",
"invoicePaymentTermId": "<string>",
"invoiceTaxRateId": "<string>",
"invoiceTaxableItems": []
}
'import requests
url = "https://www.ruddr.io/api/workspace/business-units/{id}"
payload = {
"name": "<string>",
"isActive": True,
"companyName": "<string>",
"streetAddress": "<string>",
"invoiceSubject": "<string>",
"invoiceNotes": "<string>",
"invoiceEmailSubject": "<string>",
"invoiceEmailBody": "<string>",
"invoiceEmailFromName": "<string>",
"invoiceEmailReplyTo": "<string>",
"invoicePaymentTermId": "<string>",
"invoiceTaxRateId": "<string>",
"invoiceTaxableItems": []
}
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({
name: '<string>',
isActive: true,
companyName: '<string>',
streetAddress: '<string>',
invoiceSubject: '<string>',
invoiceNotes: '<string>',
invoiceEmailSubject: '<string>',
invoiceEmailBody: '<string>',
invoiceEmailFromName: '<string>',
invoiceEmailReplyTo: '<string>',
invoicePaymentTermId: '<string>',
invoiceTaxRateId: '<string>',
invoiceTaxableItems: []
})
};
fetch('https://www.ruddr.io/api/workspace/business-units/{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/business-units/{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([
'name' => '<string>',
'isActive' => true,
'companyName' => '<string>',
'streetAddress' => '<string>',
'invoiceSubject' => '<string>',
'invoiceNotes' => '<string>',
'invoiceEmailSubject' => '<string>',
'invoiceEmailBody' => '<string>',
'invoiceEmailFromName' => '<string>',
'invoiceEmailReplyTo' => '<string>',
'invoicePaymentTermId' => '<string>',
'invoiceTaxRateId' => '<string>',
'invoiceTaxableItems' => [
]
]),
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/business-units/{id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"isActive\": true,\n \"companyName\": \"<string>\",\n \"streetAddress\": \"<string>\",\n \"invoiceSubject\": \"<string>\",\n \"invoiceNotes\": \"<string>\",\n \"invoiceEmailSubject\": \"<string>\",\n \"invoiceEmailBody\": \"<string>\",\n \"invoiceEmailFromName\": \"<string>\",\n \"invoiceEmailReplyTo\": \"<string>\",\n \"invoicePaymentTermId\": \"<string>\",\n \"invoiceTaxRateId\": \"<string>\",\n \"invoiceTaxableItems\": []\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/business-units/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"isActive\": true,\n \"companyName\": \"<string>\",\n \"streetAddress\": \"<string>\",\n \"invoiceSubject\": \"<string>\",\n \"invoiceNotes\": \"<string>\",\n \"invoiceEmailSubject\": \"<string>\",\n \"invoiceEmailBody\": \"<string>\",\n \"invoiceEmailFromName\": \"<string>\",\n \"invoiceEmailReplyTo\": \"<string>\",\n \"invoicePaymentTermId\": \"<string>\",\n \"invoiceTaxRateId\": \"<string>\",\n \"invoiceTaxableItems\": []\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://www.ruddr.io/api/workspace/business-units/{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 \"name\": \"<string>\",\n \"isActive\": true,\n \"companyName\": \"<string>\",\n \"streetAddress\": \"<string>\",\n \"invoiceSubject\": \"<string>\",\n \"invoiceNotes\": \"<string>\",\n \"invoiceEmailSubject\": \"<string>\",\n \"invoiceEmailBody\": \"<string>\",\n \"invoiceEmailFromName\": \"<string>\",\n \"invoiceEmailReplyTo\": \"<string>\",\n \"invoicePaymentTermId\": \"<string>\",\n \"invoiceTaxRateId\": \"<string>\",\n \"invoiceTaxableItems\": []\n}"
response = http.request(request)
puts response.read_body{
"id": "d2f9a5e3-7c41-4b86-80d0-e3b7c6f02a19",
"name": "West Region (Updated)",
"isActive": true,
"companyName": "Acme West LLC",
"streetAddress": "456 Market St\nSuite 200\nSan Francisco, CA 94105",
"invoiceSubject": "Invoice - West Region",
"invoiceNotes": "Net terms apply. Late fees may be assessed.",
"invoiceEmailSubject": "Invoice from Acme West LLC",
"invoiceEmailBody": "Please review the attached invoice at your earliest convenience.",
"invoiceEmailFromName": "Acme West Finance",
"invoiceEmailReplyTo": "finance-west@acmecorp.com",
"invoiceTaxableItems": [
"services",
"expenses"
],
"createdAt": "2025-11-18T11:25:42.891Z",
"invoicePaymentTerm": {
"id": "b4e1c7a9-2d38-4f96-80d5-f3a7e6c02b19",
"name": "Net 30",
"type": "net",
"days": 30
},
"invoiceTaxRate": {
"id": "c9d2e5b8-3f47-4a81-92d6-e1b7c4f03a28",
"name": "Standard Tax",
"rate": 8.5
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
The business unit uuid.
Body
The name of the business unit. Max 255 characters.
Whether the business unit is active.
The company name displayed on invoices for this business unit. Max 255 characters.
The street address displayed on invoices for this business unit. Max 5000 characters.
The default subject line for invoices. Max 255 characters.
The default notes for invoices. Max 5000 characters.
The default email subject when sending invoices. Max 255 characters.
The default email body when sending invoices. Max 5000 characters.
The sender name used when emailing invoices. Max 255 characters.
The reply-to email address used when emailing invoices. Max 255 characters.
The unique identifier of the default payment term for invoices.
The unique identifier of the default tax rate for invoices.
The types of invoice line items that are taxable.
services, expenses, products, other_items Response
200
The unique identifier for the object.
The name of the business unit.
Whether the business unit is active.
The company name displayed on invoices for this business unit.
The street address displayed on invoices for this business unit.
The default subject line for invoices.
The default notes for invoices.
The default email subject when sending invoices.
The default email body when sending invoices.
The sender name used when emailing invoices.
The reply-to email address used when emailing invoices.
The types of invoice line items that are taxable.
services, expenses, products, other_items The timestamp when the object was created.
The default payment term for invoices.
Show child attributes
Show child attributes
The default tax rate for invoices.
Show child attributes
Show child attributes