Update One Customer By Source System Id
curl --request PUT \
--url https://api.upwell.com/api/rest/customers \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"customerRulesInput": {},
"input": {},
"sourceSystem": "<string>",
"sourceSystemId": "<string>"
}
'import requests
url = "https://api.upwell.com/api/rest/customers"
payload = {
"customerRulesInput": {},
"input": {},
"sourceSystem": "<string>",
"sourceSystemId": "<string>"
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
customerRulesInput: {},
input: {},
sourceSystem: '<string>',
sourceSystemId: '<string>'
})
};
fetch('https://api.upwell.com/api/rest/customers', 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://api.upwell.com/api/rest/customers",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'customerRulesInput' => [
],
'input' => [
],
'sourceSystem' => '<string>',
'sourceSystemId' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"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://api.upwell.com/api/rest/customers"
payload := strings.NewReader("{\n \"customerRulesInput\": {},\n \"input\": {},\n \"sourceSystem\": \"<string>\",\n \"sourceSystemId\": \"<string>\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "<api-key>")
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.put("https://api.upwell.com/api/rest/customers")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"customerRulesInput\": {},\n \"input\": {},\n \"sourceSystem\": \"<string>\",\n \"sourceSystemId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.upwell.com/api/rest/customers")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"customerRulesInput\": {},\n \"input\": {},\n \"sourceSystem\": \"<string>\",\n \"sourceSystemId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"updateCustomer": {
"affectedRows": 123,
"returning": [
{
"addresses": [
{
"city": "<string>",
"country": "AD",
"id": "<string>",
"stateOrProvince": "<string>",
"streetLine1": "<string>",
"streetLine2": "<string>",
"type": "ADDRESS_BOOK",
"zipOrPostalCode": "<string>"
}
],
"balance": "<unknown>",
"billToCustomerId": "<string>",
"ccEmailAddresses": [
"<string>"
],
"createdAt": "2023-11-07T05:31:56Z",
"customerRule": {
"dueOption": 123,
"id": "<string>"
},
"emailAddress": "<string>",
"id": "<string>",
"metadata": "<unknown>",
"name": "<string>",
"overdueBalance": "<unknown>",
"overdueInvoiceCount": 123,
"sourceSystem": "<string>",
"sourceSystemId": "<string>",
"updatedAt": "2023-11-07T05:31:56Z"
}
]
},
"updateCustomerRules": {
"affectedRows": 123
}
}{
"error": "Not-NULL violation. null value in column \"shipment_id\" of relation \"shipments\" violates not-null constraint",
"code": "constraint-violation"
}{
"error": "Authentication hook unauthorized this request",
"path": "$",
"code": "access-denied"
}Customers
Update One Customer By Source System Id
Update a customer by source system id
PUT
/
api
/
rest
/
customers
Update One Customer By Source System Id
curl --request PUT \
--url https://api.upwell.com/api/rest/customers \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"customerRulesInput": {},
"input": {},
"sourceSystem": "<string>",
"sourceSystemId": "<string>"
}
'import requests
url = "https://api.upwell.com/api/rest/customers"
payload = {
"customerRulesInput": {},
"input": {},
"sourceSystem": "<string>",
"sourceSystemId": "<string>"
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
customerRulesInput: {},
input: {},
sourceSystem: '<string>',
sourceSystemId: '<string>'
})
};
fetch('https://api.upwell.com/api/rest/customers', 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://api.upwell.com/api/rest/customers",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'customerRulesInput' => [
],
'input' => [
],
'sourceSystem' => '<string>',
'sourceSystemId' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"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://api.upwell.com/api/rest/customers"
payload := strings.NewReader("{\n \"customerRulesInput\": {},\n \"input\": {},\n \"sourceSystem\": \"<string>\",\n \"sourceSystemId\": \"<string>\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "<api-key>")
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.put("https://api.upwell.com/api/rest/customers")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"customerRulesInput\": {},\n \"input\": {},\n \"sourceSystem\": \"<string>\",\n \"sourceSystemId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.upwell.com/api/rest/customers")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"customerRulesInput\": {},\n \"input\": {},\n \"sourceSystem\": \"<string>\",\n \"sourceSystemId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"updateCustomer": {
"affectedRows": 123,
"returning": [
{
"addresses": [
{
"city": "<string>",
"country": "AD",
"id": "<string>",
"stateOrProvince": "<string>",
"streetLine1": "<string>",
"streetLine2": "<string>",
"type": "ADDRESS_BOOK",
"zipOrPostalCode": "<string>"
}
],
"balance": "<unknown>",
"billToCustomerId": "<string>",
"ccEmailAddresses": [
"<string>"
],
"createdAt": "2023-11-07T05:31:56Z",
"customerRule": {
"dueOption": 123,
"id": "<string>"
},
"emailAddress": "<string>",
"id": "<string>",
"metadata": "<unknown>",
"name": "<string>",
"overdueBalance": "<unknown>",
"overdueInvoiceCount": 123,
"sourceSystem": "<string>",
"sourceSystemId": "<string>",
"updatedAt": "2023-11-07T05:31:56Z"
}
]
},
"updateCustomerRules": {
"affectedRows": 123
}
}{
"error": "Not-NULL violation. null value in column \"shipment_id\" of relation \"shipments\" violates not-null constraint",
"code": "constraint-violation"
}{
"error": "Authentication hook unauthorized this request",
"path": "$",
"code": "access-denied"
}Updates by external key: send
sourceSystem + sourceSystemId inside input to update without the Upwell id. See Idempotency & retries.Authorizations
Your API key, sent in the Authorization header: Authorization: YOUR_API_KEY. A Bearer prefix is also accepted (Authorization: Bearer YOUR_API_KEY). Keys are created in the Upwell dashboard (Account → API keys) and are scoped to one organization.
Query Parameters
"sourceSystem" is required (enter it either in parameters or request body)
"sourceSystemId" is required (enter it either in parameters or request body)
Body
application/json
Query parameters can also be provided in the request body as a JSON object
Response
Responses for PUT /api/rest/customers

