Update Customer
curl --request PATCH \
--url https://qwoty.app/api/customers/{id} \
--header 'Authorization: <authorization>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"type": "<string>",
"segment_id": {},
"logo": {},
"tax_ids": [
{}
],
"id_crm": {},
"id_erp": {},
"id_accounting": {}
}
'import requests
url = "https://qwoty.app/api/customers/{id}"
payload = {
"name": "<string>",
"type": "<string>",
"segment_id": {},
"logo": {},
"tax_ids": [{}],
"id_crm": {},
"id_erp": {},
"id_accounting": {}
}
headers = {
"Authorization": "<authorization>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: '<authorization>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
type: '<string>',
segment_id: {},
logo: {},
tax_ids: [{}],
id_crm: {},
id_erp: {},
id_accounting: {}
})
};
fetch('https://qwoty.app/api/customers/{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://qwoty.app/api/customers/{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>',
'type' => '<string>',
'segment_id' => [
],
'logo' => [
],
'tax_ids' => [
[
]
],
'id_crm' => [
],
'id_erp' => [
],
'id_accounting' => [
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>",
"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://qwoty.app/api/customers/{id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"type\": \"<string>\",\n \"segment_id\": {},\n \"logo\": {},\n \"tax_ids\": [\n {}\n ],\n \"id_crm\": {},\n \"id_erp\": {},\n \"id_accounting\": {}\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "<authorization>")
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://qwoty.app/api/customers/{id}")
.header("Authorization", "<authorization>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"type\": \"<string>\",\n \"segment_id\": {},\n \"logo\": {},\n \"tax_ids\": [\n {}\n ],\n \"id_crm\": {},\n \"id_erp\": {},\n \"id_accounting\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://qwoty.app/api/customers/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = '<authorization>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"type\": \"<string>\",\n \"segment_id\": {},\n \"logo\": {},\n \"tax_ids\": [\n {}\n ],\n \"id_crm\": {},\n \"id_erp\": {},\n \"id_accounting\": {}\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Acme Corp (Renamed)",
"type": "company",
"segment_id": null,
"logo": null,
"id_crm": "crm_001",
"id_erp": null,
"id_accounting": null,
"created_at": "2026-01-15T10:30:00Z",
"updated_at": "2026-03-24T14:00:00Z"
}
}
{
"success": false,
"error": "Customer not found"
}
Customers
Update Customer
Partially update a customer
PATCH
/
api
/
customers
/
{id}
Update Customer
curl --request PATCH \
--url https://qwoty.app/api/customers/{id} \
--header 'Authorization: <authorization>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"type": "<string>",
"segment_id": {},
"logo": {},
"tax_ids": [
{}
],
"id_crm": {},
"id_erp": {},
"id_accounting": {}
}
'import requests
url = "https://qwoty.app/api/customers/{id}"
payload = {
"name": "<string>",
"type": "<string>",
"segment_id": {},
"logo": {},
"tax_ids": [{}],
"id_crm": {},
"id_erp": {},
"id_accounting": {}
}
headers = {
"Authorization": "<authorization>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: '<authorization>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
type: '<string>',
segment_id: {},
logo: {},
tax_ids: [{}],
id_crm: {},
id_erp: {},
id_accounting: {}
})
};
fetch('https://qwoty.app/api/customers/{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://qwoty.app/api/customers/{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>',
'type' => '<string>',
'segment_id' => [
],
'logo' => [
],
'tax_ids' => [
[
]
],
'id_crm' => [
],
'id_erp' => [
],
'id_accounting' => [
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>",
"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://qwoty.app/api/customers/{id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"type\": \"<string>\",\n \"segment_id\": {},\n \"logo\": {},\n \"tax_ids\": [\n {}\n ],\n \"id_crm\": {},\n \"id_erp\": {},\n \"id_accounting\": {}\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "<authorization>")
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://qwoty.app/api/customers/{id}")
.header("Authorization", "<authorization>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"type\": \"<string>\",\n \"segment_id\": {},\n \"logo\": {},\n \"tax_ids\": [\n {}\n ],\n \"id_crm\": {},\n \"id_erp\": {},\n \"id_accounting\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://qwoty.app/api/customers/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = '<authorization>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"type\": \"<string>\",\n \"segment_id\": {},\n \"logo\": {},\n \"tax_ids\": [\n {}\n ],\n \"id_crm\": {},\n \"id_erp\": {},\n \"id_accounting\": {}\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Acme Corp (Renamed)",
"type": "company",
"segment_id": null,
"logo": null,
"id_crm": "crm_001",
"id_erp": null,
"id_accounting": null,
"created_at": "2026-01-15T10:30:00Z",
"updated_at": "2026-03-24T14:00:00Z"
}
}
{
"success": false,
"error": "Customer not found"
}
Authorization
string
required
Bearer token. Format:
Bearer qwoty_your_tokenPath Parameters
string
required
UUID of the customer to update
Request Body
All fields are optional. Only the fields provided will be updated.string
Customer display name
string
Customer type. Allowed values:
"company", "individual"string | null
UUID of the customer segment. Set to
null to unset.string | null
Logo URL. Set to
null to unset.array
Legal identifiers. Replaces all existing tax IDs. Send
[] to remove all.Omitting this field leaves existing tax IDs unchanged.[{ "tax": "VAT", "tax_value": "FR98765432100" }]
string | null
External CRM ID
string | null
External ERP ID
string | null
External accounting ID
Examples
curl -X PATCH https://qwoty.app/api/customers/550e8400-e29b-41d4-a716-446655440000 \
-H "Authorization: Bearer qwoty_your_token" \
-H "Content-Type: application/json" \
-d '{
"name": "Acme Corp (Renamed)",
"tax_ids": [
{ "tax": "VAT", "tax_value": "FR98765432100" }
]
}'
const customerId = '550e8400-e29b-41d4-a716-446655440000'
const response = await fetch(`https://qwoty.app/api/customers/${customerId}`, {
method: 'PATCH',
headers: {
Authorization: 'Bearer qwoty_your_token',
'Content-Type': 'application/json',
},
body: JSON.stringify({
name: 'Acme Corp (Renamed)',
tax_ids: [{ tax: 'VAT', tax_value: 'FR98765432100' }],
}),
})
const data = await response.json()
import requests
customer_id = '550e8400-e29b-41d4-a716-446655440000'
response = requests.patch(
f'https://qwoty.app/api/customers/{customer_id}',
headers={
'Authorization': 'Bearer qwoty_your_token',
'Content-Type': 'application/json',
},
json={
'name': 'Acme Corp (Renamed)',
'tax_ids': [{'tax': 'VAT', 'tax_value': 'FR98765432100'}],
},
)
data = response.json()
Response
boolean
true if the update succeededobject
The updated customer object (same shape as Get
Customer)
{
"success": true,
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Acme Corp (Renamed)",
"type": "company",
"segment_id": null,
"logo": null,
"id_crm": "crm_001",
"id_erp": null,
"id_accounting": null,
"created_at": "2026-01-15T10:30:00Z",
"updated_at": "2026-03-24T14:00:00Z"
}
}
{
"success": false,
"error": "Customer not found"
}
Was this page helpful?
⌘I

