Skip to main content
PATCH
/
clients
/
{id}
Update a client
curl --request PATCH \
  --url https://www.ruddr.io/api/workspace/clients/{id} \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "key": "<string>",
  "name": "<string>",
  "code": "<string>",
  "currency": "<string>",
  "notes": "<string>",
  "emails": [
    "<string>"
  ],
  "streetAddress": "<string>",
  "invoiceSubject": "<string>",
  "invoiceNotes": "<string>",
  "invoiceEmailSubject": "<string>",
  "invoiceEmailBody": "<string>",
  "ownerId": "<string>",
  "practiceId": "<string>",
  "industryId": "<string>",
  "locationId": "<string>",
  "tagIds": [
    "<string>"
  ],
  "invoicePaymentTermId": "<string>",
  "salesRepresentativeId": "<string>",
  "businessUnitId": "<string>"
}
'
import requests

url = "https://www.ruddr.io/api/workspace/clients/{id}"

payload = {
"key": "<string>",
"name": "<string>",
"code": "<string>",
"currency": "<string>",
"notes": "<string>",
"emails": ["<string>"],
"streetAddress": "<string>",
"invoiceSubject": "<string>",
"invoiceNotes": "<string>",
"invoiceEmailSubject": "<string>",
"invoiceEmailBody": "<string>",
"ownerId": "<string>",
"practiceId": "<string>",
"industryId": "<string>",
"locationId": "<string>",
"tagIds": ["<string>"],
"invoicePaymentTermId": "<string>",
"salesRepresentativeId": "<string>",
"businessUnitId": "<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({
key: '<string>',
name: '<string>',
code: '<string>',
currency: '<string>',
notes: '<string>',
emails: ['<string>'],
streetAddress: '<string>',
invoiceSubject: '<string>',
invoiceNotes: '<string>',
invoiceEmailSubject: '<string>',
invoiceEmailBody: '<string>',
ownerId: '<string>',
practiceId: '<string>',
industryId: '<string>',
locationId: '<string>',
tagIds: ['<string>'],
invoicePaymentTermId: '<string>',
salesRepresentativeId: '<string>',
businessUnitId: '<string>'
})
};

fetch('https://www.ruddr.io/api/workspace/clients/{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/clients/{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([
'key' => '<string>',
'name' => '<string>',
'code' => '<string>',
'currency' => '<string>',
'notes' => '<string>',
'emails' => [
'<string>'
],
'streetAddress' => '<string>',
'invoiceSubject' => '<string>',
'invoiceNotes' => '<string>',
'invoiceEmailSubject' => '<string>',
'invoiceEmailBody' => '<string>',
'ownerId' => '<string>',
'practiceId' => '<string>',
'industryId' => '<string>',
'locationId' => '<string>',
'tagIds' => [
'<string>'
],
'invoicePaymentTermId' => '<string>',
'salesRepresentativeId' => '<string>',
'businessUnitId' => '<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/clients/{id}"

payload := strings.NewReader("{\n \"key\": \"<string>\",\n \"name\": \"<string>\",\n \"code\": \"<string>\",\n \"currency\": \"<string>\",\n \"notes\": \"<string>\",\n \"emails\": [\n \"<string>\"\n ],\n \"streetAddress\": \"<string>\",\n \"invoiceSubject\": \"<string>\",\n \"invoiceNotes\": \"<string>\",\n \"invoiceEmailSubject\": \"<string>\",\n \"invoiceEmailBody\": \"<string>\",\n \"ownerId\": \"<string>\",\n \"practiceId\": \"<string>\",\n \"industryId\": \"<string>\",\n \"locationId\": \"<string>\",\n \"tagIds\": [\n \"<string>\"\n ],\n \"invoicePaymentTermId\": \"<string>\",\n \"salesRepresentativeId\": \"<string>\",\n \"businessUnitId\": \"<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/clients/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"key\": \"<string>\",\n \"name\": \"<string>\",\n \"code\": \"<string>\",\n \"currency\": \"<string>\",\n \"notes\": \"<string>\",\n \"emails\": [\n \"<string>\"\n ],\n \"streetAddress\": \"<string>\",\n \"invoiceSubject\": \"<string>\",\n \"invoiceNotes\": \"<string>\",\n \"invoiceEmailSubject\": \"<string>\",\n \"invoiceEmailBody\": \"<string>\",\n \"ownerId\": \"<string>\",\n \"practiceId\": \"<string>\",\n \"industryId\": \"<string>\",\n \"locationId\": \"<string>\",\n \"tagIds\": [\n \"<string>\"\n ],\n \"invoicePaymentTermId\": \"<string>\",\n \"salesRepresentativeId\": \"<string>\",\n \"businessUnitId\": \"<string>\"\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://www.ruddr.io/api/workspace/clients/{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 \"key\": \"<string>\",\n \"name\": \"<string>\",\n \"code\": \"<string>\",\n \"currency\": \"<string>\",\n \"notes\": \"<string>\",\n \"emails\": [\n \"<string>\"\n ],\n \"streetAddress\": \"<string>\",\n \"invoiceSubject\": \"<string>\",\n \"invoiceNotes\": \"<string>\",\n \"invoiceEmailSubject\": \"<string>\",\n \"invoiceEmailBody\": \"<string>\",\n \"ownerId\": \"<string>\",\n \"practiceId\": \"<string>\",\n \"industryId\": \"<string>\",\n \"locationId\": \"<string>\",\n \"tagIds\": [\n \"<string>\"\n ],\n \"invoicePaymentTermId\": \"<string>\",\n \"salesRepresentativeId\": \"<string>\",\n \"businessUnitId\": \"<string>\"\n}"

response = http.request(request)
puts response.read_body
{
  "id": "4d7a1c3e-8f2b-4a90-b5d6-e9c1f0a82d47",
  "key": "acme-corp",
  "name": "Acme Corp",
  "code": "ACM-001",
  "currency": "USD",
  "notes": "Key enterprise client.",
  "emails": [
    "billing@acmecorp.com"
  ],
  "streetAddress": "100 Market St, Suite 500",
  "invoiceDetailsSource": "custom",
  "invoiceSubject": "Invoice for professional services",
  "invoiceNotes": "Payment due within 30 days of receipt.",
  "invoiceEmailSubject": "Invoice from Ruddr",
  "invoiceEmailBody": "Please find your invoice attached.",
  "isInternal": false,
  "recordStatusId": "active",
  "createdAt": "2025-01-15T20:47:03.284Z",
  "owner": {
    "id": "e5c8a2f4-3d19-4b76-a0e7-9f1d6c4b28a3",
    "name": "Jane Smith"
  },
  "practice": {
    "id": "b82e4f61-a9c3-4d17-8e05-6f3b2a7d90c1",
    "name": "Consulting"
  },
  "industry": {
    "id": "bc52e68a-96d9-46bd-881c-bda8d5e07053",
    "name": "Technology"
  },
  "location": {
    "id": "ae469b03-51f3-47c2-be12-a319e0ce7cd8",
    "name": "New York"
  },
  "tags": [
    {
      "id": "91d4e7a3-f826-4c10-b5a8-0e3d9c1f72b4",
      "name": "Enterprise"
    }
  ],
  "invoicePaymentTerm": {
    "id": "7a3f1d8e-c249-4b65-91d7-e0a4f8b2c603",
    "name": "Net 30"
  },
  "salesRepresentative": {
    "id": "c6f2b081-d47a-4e93-a8d5-3e1c7f9a204b",
    "name": "John Davis"
  },
  "useWorkspaceInvoiceDetails": false,
  "businessUnit": {
    "id": "2e8d5a7c-f314-4b09-96e1-a0c3d8f4b172",
    "name": "North America"
  },
  "integrations": [
    {
      "type": "xero",
      "connectionId": "9d2f6b1a-4c83-4e57-bf09-1a6d3e8c20b4",
      "externalId": "5e1a9c47-2b86-4d30-9f12-7a4c8e3b50d9"
    },
    {
      "type": "qbo",
      "connectionId": "c4a7e2f9-83b1-4d65-9e07-2f1b6a4c80d3",
      "externalId": "142"
    }
  ]
}
A person or organization using your services. All projects are tied to a client.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

id
string
required

The client uuid

Body

application/json
key
string

The URL-friendly slug for the client. Max 255 characters.

name
string

The name of the client. Max 255 characters.

code
string | null

The client code. Max 255 characters.

currency
string

The 3-letter currency code associated with the client.

notes
string | null

Notes associated with the client. Max 5000 characters.

emails
string[]

Email addresses used for invoicing the client.

streetAddress
string | null

The street address of the client used for invoicing. Max 5000 characters.

invoiceDetailsSource
enum<string>

The source of invoice details. When workspace or business_unit, the invoicePaymentTermId, invoiceSubject, invoiceNotes, invoiceEmailSubject, and invoiceEmailBody values are inherited.

Available options:
workspace,
custom,
business_unit
invoiceSubject
string | null

The subject line used on invoices for this client. Max 255 characters.

invoiceNotes
string | null

Notes included on invoices for this client. Max 5000 characters.

invoiceEmailSubject
string | null

The email subject line used when sending invoices for this client. Max 255 characters.

invoiceEmailBody
string | null

The email body used when sending invoices for this client. Max 5000 characters.

recordStatusId
enum<string>

The record status of the client.

Available options:
active,
archived
ownerId
string | null

The member ID (uuid) of the owner of this client.

practiceId
string | null

The practice ID (uuid) of the practice associated with this client.

industryId
string | null

The industry ID (uuid) of the industry associated with this client.

locationId
string | null

The location ID (uuid) of the location associated with this client.

tagIds
string[]

A list of client tag IDs (uuid) to associate with this client.

invoicePaymentTermId
string

The payment term ID (uuid) used for invoicing the client.

salesRepresentativeId
string | null

The member ID (uuid) of the sales representative for this client.

businessUnitId
string | null

The business unit ID (uuid) of the business unit associated with this client.

Response

200

id
string

The unique identifier for the object.

key
string

The URL-friendly slug for the client.

name
string

The name of the client.

code
string | null

The client code.

currency
string

The 3-letter currency code associated with the client.

notes
string | null

Notes associated with the client.

emails
string[]

Email addresses used for invoicing the client.

streetAddress
string | null

The street address of the client used for invoicing.

invoiceDetailsSource
enum<string>

The source of invoice details for this client. Determines whether invoice settings are inherited from the workspace, the assigned business unit, or configured at the client level.

Available options:
workspace,
custom,
business_unit
invoiceSubject
string | null

The subject line used on invoices for this client.

invoiceNotes
string | null

Notes included on invoices for this client.

invoiceEmailSubject
string | null

The email subject line used when sending invoices for this client.

invoiceEmailBody
string | null

The email body used when sending invoices for this client.

isInternal
boolean

Indicates whether this is the workspace's internal client. This client is auto-created during workspace setup.

recordStatusId
enum<string>

The record status of the client.

Available options:
active,
archived
createdAt
string<date-time>

The timestamp when the object was created.

owner
object | null

The member who owns this client.

practice
object | null

The practice associated with this client.

industry
object | null

The industry associated with this client.

location
object | null

The location associated with this client.

tags
object[]

The tags associated with this client.

invoicePaymentTerm
object | null

The payment term used for invoicing this client.

salesRepresentative
object | null

The sales representative for this client.

useWorkspaceInvoiceDetails
boolean
deprecated

A legacy read-only field indicating whether the client uses workspace-level invoice details. Use invoiceDetailsSource instead.

businessUnit
object | null

The business unit associated with this client.

integrations
object[]

The accounting integration mappings for this client. Each entry ties the client to a record in an external accounting system. Empty when no integrations are configured.