Update a Contact Reference
curl --request PUT \
--url https://api.virtuoussoftware.com/api/ContactReference/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"referenceId": "cus_123456_updated",
"contactIndividualId": null
}
'const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({referenceId: 'cus_123456_updated', contactIndividualId: null})
};
fetch('https://api.virtuoussoftware.com/api/ContactReference/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.virtuoussoftware.com/api/ContactReference/{id}"
payload = {
"referenceId": "cus_123456_updated",
"contactIndividualId": None
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)using RestSharp;
var options = new RestClientOptions("https://api.virtuoussoftware.com/api/ContactReference/{id}");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
request.AddJsonBody("{\n \"referenceId\": \"cus_123456_updated\",\n \"contactIndividualId\": null\n}", false);
var response = await client.PutAsync(request);
Console.WriteLine("{0}", response.Content);
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.virtuoussoftware.com/api/ContactReference/{id}",
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([
'referenceId' => 'cus_123456_updated',
'contactIndividualId' => null
]),
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;
}HttpResponse<String> response = Unirest.put("https://api.virtuoussoftware.com/api/ContactReference/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"referenceId\": \"cus_123456_updated\",\n \"contactIndividualId\": null\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.virtuoussoftware.com/api/ContactReference/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"referenceId\": \"cus_123456_updated\",\n \"contactIndividualId\": null\n}"
response = http.request(request)
puts response.read_bodyconst url = 'https://api.virtuoussoftware.com/api/ContactReference/{id}';
const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({referenceId: 'cus_123456_updated', contactIndividualId: null})
};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));{
"id": 25,
"contactId": 501,
"contactIndividualId": null,
"referenceSource": "Stripe",
"referenceId": "cus_123456_updated"
}{
"message": "Authorization has been denied for this request."
}{
"message": "You do not have permission to perform this action."
}{
"message": "Rate limit exceeded. Try again later."
}Contacts and Individuals
Update a Contact Reference
Updates the external referenceId and, optionally, the associated contactIndividualId. The contact and referenceSource cannot be changed. Omit contactIndividualId or set it to null to clear the association.
PUT
/
api
/
ContactReference
/
{id}
Update a Contact Reference
curl --request PUT \
--url https://api.virtuoussoftware.com/api/ContactReference/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"referenceId": "cus_123456_updated",
"contactIndividualId": null
}
'const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({referenceId: 'cus_123456_updated', contactIndividualId: null})
};
fetch('https://api.virtuoussoftware.com/api/ContactReference/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.virtuoussoftware.com/api/ContactReference/{id}"
payload = {
"referenceId": "cus_123456_updated",
"contactIndividualId": None
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)using RestSharp;
var options = new RestClientOptions("https://api.virtuoussoftware.com/api/ContactReference/{id}");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
request.AddJsonBody("{\n \"referenceId\": \"cus_123456_updated\",\n \"contactIndividualId\": null\n}", false);
var response = await client.PutAsync(request);
Console.WriteLine("{0}", response.Content);
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.virtuoussoftware.com/api/ContactReference/{id}",
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([
'referenceId' => 'cus_123456_updated',
'contactIndividualId' => null
]),
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;
}HttpResponse<String> response = Unirest.put("https://api.virtuoussoftware.com/api/ContactReference/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"referenceId\": \"cus_123456_updated\",\n \"contactIndividualId\": null\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.virtuoussoftware.com/api/ContactReference/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"referenceId\": \"cus_123456_updated\",\n \"contactIndividualId\": null\n}"
response = http.request(request)
puts response.read_bodyconst url = 'https://api.virtuoussoftware.com/api/ContactReference/{id}';
const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({referenceId: 'cus_123456_updated', contactIndividualId: null})
};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));{
"id": 25,
"contactId": 501,
"contactIndividualId": null,
"referenceSource": "Stripe",
"referenceId": "cus_123456_updated"
}{
"message": "Authorization has been denied for this request."
}{
"message": "You do not have permission to perform this action."
}{
"message": "Rate limit exceeded. Try again later."
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
The numeric id of the Contact Reference record.
Body
application/json
The fields to update on the Contact Reference.
Response
OK
A Contact Reference and its numeric Virtuous record id.
The numeric id of this Contact Reference record.
The id of the contact this reference belongs to.
The associated contact individual's id, if any.
The external system that owns the reference identifier.
The identifier of the record in the external system.
Maximum string length:
80Last modified on October 1, 2026
Was this page helpful?