curl --request POST \
--url https://www.ruddr.io/api/workspace/business-units \
--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"
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.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
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', 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",
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([
'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"
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("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/business-units")
.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")
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 \"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": "e8b4d2a9-5c31-4f87-90d6-f3a7c6e02b48",
"name": "East Region",
"isActive": true,
"companyName": "Acme Corp - East",
"streetAddress": "123 Broadway\nNew York, NY 10001",
"invoiceSubject": "Invoice for services rendered - East Region",
"invoiceNotes": "Payment due within terms specified.",
"invoiceEmailSubject": "Your invoice from Acme Corp - East",
"invoiceEmailBody": "Please find your invoice attached. Thank you for your business.",
"invoiceEmailFromName": "Acme East Billing",
"invoiceEmailReplyTo": "billing-east@acmecorp.com",
"invoiceTaxableItems": [
"services"
],
"createdAt": "2026-02-20T09:35:18.442Z",
"invoicePaymentTerm": {
"id": "a1d8c4e7-3b29-4f86-91d5-e0b7c6f03a19",
"name": "Net 15",
"type": "net",
"days": 15
},
"invoiceTaxRate": null
}Create a business unit
curl --request POST \
--url https://www.ruddr.io/api/workspace/business-units \
--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"
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.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
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', 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",
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([
'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"
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("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/business-units")
.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")
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 \"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": "e8b4d2a9-5c31-4f87-90d6-f3a7c6e02b48",
"name": "East Region",
"isActive": true,
"companyName": "Acme Corp - East",
"streetAddress": "123 Broadway\nNew York, NY 10001",
"invoiceSubject": "Invoice for services rendered - East Region",
"invoiceNotes": "Payment due within terms specified.",
"invoiceEmailSubject": "Your invoice from Acme Corp - East",
"invoiceEmailBody": "Please find your invoice attached. Thank you for your business.",
"invoiceEmailFromName": "Acme East Billing",
"invoiceEmailReplyTo": "billing-east@acmecorp.com",
"invoiceTaxableItems": [
"services"
],
"createdAt": "2026-02-20T09:35:18.442Z",
"invoicePaymentTerm": {
"id": "a1d8c4e7-3b29-4f86-91d5-e0b7c6f03a19",
"name": "Net 15",
"type": "net",
"days": 15
},
"invoiceTaxRate": null
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
The name of the business unit. Max 255 characters.
Whether the business unit is active. Defaults to true if not provided.
The company name displayed on invoices for this business unit. Defaults to the workspace's company name if not provided. 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. Defaults to the workspace's payment term if not provided.
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