curl --request PUT \
--url https://api.fabric.inc/v3/customers/self \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": {
"title": "Dr.",
"firstName": "Pat",
"middleName": "E",
"lastName": "Kake",
"suffix": "Jr."
},
"emailAddress": "test@example.com",
"phone": {
"number": 15555551234,
"type": "MOBILE"
},
"additionalAttributes": {
"middleName": "user"
}
}
'import requests
url = "https://api.fabric.inc/v3/customers/self"
payload = {
"name": {
"title": "Dr.",
"firstName": "Pat",
"middleName": "E",
"lastName": "Kake",
"suffix": "Jr."
},
"emailAddress": "test@example.com",
"phone": {
"number": 15555551234,
"type": "MOBILE"
},
"additionalAttributes": { "middleName": "user" }
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: {
title: 'Dr.',
firstName: 'Pat',
middleName: 'E',
lastName: 'Kake',
suffix: 'Jr.'
},
emailAddress: 'test@example.com',
phone: {number: 15555551234, type: 'MOBILE'},
additionalAttributes: {middleName: 'user'}
})
};
fetch('https://api.fabric.inc/v3/customers/self', 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.fabric.inc/v3/customers/self",
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([
'name' => [
'title' => 'Dr.',
'firstName' => 'Pat',
'middleName' => 'E',
'lastName' => 'Kake',
'suffix' => 'Jr.'
],
'emailAddress' => 'test@example.com',
'phone' => [
'number' => 15555551234,
'type' => 'MOBILE'
],
'additionalAttributes' => [
'middleName' => 'user'
]
]),
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://api.fabric.inc/v3/customers/self"
payload := strings.NewReader("{\n \"name\": {\n \"title\": \"Dr.\",\n \"firstName\": \"Pat\",\n \"middleName\": \"E\",\n \"lastName\": \"Kake\",\n \"suffix\": \"Jr.\"\n },\n \"emailAddress\": \"test@example.com\",\n \"phone\": {\n \"number\": 15555551234,\n \"type\": \"MOBILE\"\n },\n \"additionalAttributes\": {\n \"middleName\": \"user\"\n }\n}")
req, _ := http.NewRequest("PUT", 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.put("https://api.fabric.inc/v3/customers/self")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": {\n \"title\": \"Dr.\",\n \"firstName\": \"Pat\",\n \"middleName\": \"E\",\n \"lastName\": \"Kake\",\n \"suffix\": \"Jr.\"\n },\n \"emailAddress\": \"test@example.com\",\n \"phone\": {\n \"number\": 15555551234,\n \"type\": \"MOBILE\"\n },\n \"additionalAttributes\": {\n \"middleName\": \"user\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fabric.inc/v3/customers/self")
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 \"name\": {\n \"title\": \"Dr.\",\n \"firstName\": \"Pat\",\n \"middleName\": \"E\",\n \"lastName\": \"Kake\",\n \"suffix\": \"Jr.\"\n },\n \"emailAddress\": \"test@example.com\",\n \"phone\": {\n \"number\": 15555551234,\n \"type\": \"MOBILE\"\n },\n \"additionalAttributes\": {\n \"middleName\": \"user\"\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "61df41892bf06d00092d0d8a",
"name": {
"firstName": "Pat",
"lastName": "Doe",
"title": "Dr.",
"middleName": "E",
"suffix": "Jr."
},
"emailAddress": "test@example.com",
"isDeleted": false,
"createdAt": "2023-08-30T23:20:42.822Z",
"updatedAt": "2023-08-30T23:20:42.822Z",
"status": "ACTIVE",
"phone": {
"number": 15555551234,
"type": "MOBILE"
},
"externalId": "1231012312-312-31231asda",
"additionalAttributes": {
"middleName": "user"
},
"deletedAt": "2023-08-30T23:20:42.822Z",
"defaultAddress": [
{
"id": "61604a30fdfacd0009816e44",
"address": {
"type": "BILLING",
"addressLine1": "123 Main St.",
"addressLine2": "Suite 100",
"addressLine3": "Seventh floor",
"addressLine4": "Attention: Pat E. Doe",
"city": "Seattle",
"region": "WA",
"postalCode": 98121,
"county": "King County",
"country": "US",
"latitude": 47.6205,
"longitude": -122.3493
},
"isDeleted": false,
"createdAt": "2023-08-30T23:20:42.822Z",
"updatedAt": "2023-08-30T23:20:42.822Z",
"additionalAttributes": {
"landmark": "Beach"
},
"isDefault": false,
"deletedAt": "2023-08-30T23:20:42.822Z"
}
]
}{
"type": "INVALID_ACCOUNT_PROVIDED",
"message": "Invalid account provided for the request."
}{
"type": "REQUEST_DENIED",
"message": "Forbidden"
}{
"type": "CUSTOMER_NOT_FOUND",
"message": "Data with the given identifier isn't found"
}{
"type": "INTERNAL_SERVER_ERROR",
"message": "Internal server error"
}Update customer details - customer context
Using this endpoint, customers can update their own details through the storefront UI.
curl --request PUT \
--url https://api.fabric.inc/v3/customers/self \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": {
"title": "Dr.",
"firstName": "Pat",
"middleName": "E",
"lastName": "Kake",
"suffix": "Jr."
},
"emailAddress": "test@example.com",
"phone": {
"number": 15555551234,
"type": "MOBILE"
},
"additionalAttributes": {
"middleName": "user"
}
}
'import requests
url = "https://api.fabric.inc/v3/customers/self"
payload = {
"name": {
"title": "Dr.",
"firstName": "Pat",
"middleName": "E",
"lastName": "Kake",
"suffix": "Jr."
},
"emailAddress": "test@example.com",
"phone": {
"number": 15555551234,
"type": "MOBILE"
},
"additionalAttributes": { "middleName": "user" }
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: {
title: 'Dr.',
firstName: 'Pat',
middleName: 'E',
lastName: 'Kake',
suffix: 'Jr.'
},
emailAddress: 'test@example.com',
phone: {number: 15555551234, type: 'MOBILE'},
additionalAttributes: {middleName: 'user'}
})
};
fetch('https://api.fabric.inc/v3/customers/self', 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.fabric.inc/v3/customers/self",
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([
'name' => [
'title' => 'Dr.',
'firstName' => 'Pat',
'middleName' => 'E',
'lastName' => 'Kake',
'suffix' => 'Jr.'
],
'emailAddress' => 'test@example.com',
'phone' => [
'number' => 15555551234,
'type' => 'MOBILE'
],
'additionalAttributes' => [
'middleName' => 'user'
]
]),
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://api.fabric.inc/v3/customers/self"
payload := strings.NewReader("{\n \"name\": {\n \"title\": \"Dr.\",\n \"firstName\": \"Pat\",\n \"middleName\": \"E\",\n \"lastName\": \"Kake\",\n \"suffix\": \"Jr.\"\n },\n \"emailAddress\": \"test@example.com\",\n \"phone\": {\n \"number\": 15555551234,\n \"type\": \"MOBILE\"\n },\n \"additionalAttributes\": {\n \"middleName\": \"user\"\n }\n}")
req, _ := http.NewRequest("PUT", 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.put("https://api.fabric.inc/v3/customers/self")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": {\n \"title\": \"Dr.\",\n \"firstName\": \"Pat\",\n \"middleName\": \"E\",\n \"lastName\": \"Kake\",\n \"suffix\": \"Jr.\"\n },\n \"emailAddress\": \"test@example.com\",\n \"phone\": {\n \"number\": 15555551234,\n \"type\": \"MOBILE\"\n },\n \"additionalAttributes\": {\n \"middleName\": \"user\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fabric.inc/v3/customers/self")
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 \"name\": {\n \"title\": \"Dr.\",\n \"firstName\": \"Pat\",\n \"middleName\": \"E\",\n \"lastName\": \"Kake\",\n \"suffix\": \"Jr.\"\n },\n \"emailAddress\": \"test@example.com\",\n \"phone\": {\n \"number\": 15555551234,\n \"type\": \"MOBILE\"\n },\n \"additionalAttributes\": {\n \"middleName\": \"user\"\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "61df41892bf06d00092d0d8a",
"name": {
"firstName": "Pat",
"lastName": "Doe",
"title": "Dr.",
"middleName": "E",
"suffix": "Jr."
},
"emailAddress": "test@example.com",
"isDeleted": false,
"createdAt": "2023-08-30T23:20:42.822Z",
"updatedAt": "2023-08-30T23:20:42.822Z",
"status": "ACTIVE",
"phone": {
"number": 15555551234,
"type": "MOBILE"
},
"externalId": "1231012312-312-31231asda",
"additionalAttributes": {
"middleName": "user"
},
"deletedAt": "2023-08-30T23:20:42.822Z",
"defaultAddress": [
{
"id": "61604a30fdfacd0009816e44",
"address": {
"type": "BILLING",
"addressLine1": "123 Main St.",
"addressLine2": "Suite 100",
"addressLine3": "Seventh floor",
"addressLine4": "Attention: Pat E. Doe",
"city": "Seattle",
"region": "WA",
"postalCode": 98121,
"county": "King County",
"country": "US",
"latitude": 47.6205,
"longitude": -122.3493
},
"isDeleted": false,
"createdAt": "2023-08-30T23:20:42.822Z",
"updatedAt": "2023-08-30T23:20:42.822Z",
"additionalAttributes": {
"landmark": "Beach"
},
"isDefault": false,
"deletedAt": "2023-08-30T23:20:42.822Z"
}
]
}{
"type": "INVALID_ACCOUNT_PROVIDED",
"message": "Invalid account provided for the request."
}{
"type": "REQUEST_DENIED",
"message": "Forbidden"
}{
"type": "CUSTOMER_NOT_FOUND",
"message": "Data with the given identifier isn't found"
}{
"type": "INTERNAL_SERVER_ERROR",
"message": "Internal server error"
}Authorizations
The access token.
Headers
A header used by fabric to identify the tenant making the request. You must include tenant id in the authentication header for an API request to access any of fabric’s endpoints. You can retrieve the tenant id , which is also called account id, from Copilot. This header is required.
"517fa9dfd42d8b00g1o3k312"
Unique request ID
Body
A sample request to update customer's details.
Response
OK
A 24-character system-generated ID of the customer.
"61df41892bf06d00092d0d8a"
The full name of the customer.
Show child attributes
Show child attributes
The customer's email.
"test@example.com"
A flag indicating whether the customer's record is deleted. true indicates, the customer's record is deleted and false indicates otherwise.
false
The time when the customer was added to the system, in UTC format.
"2023-08-30T23:20:42.822Z"
The time when the customer data was last updated, in UTC format.
"2023-08-30T23:20:42.822Z"
The account status of the customer.
ACTIVE, INACTIVE, BLOCKED "ACTIVE"
Show child attributes
Show child attributes
A UUID of the customer.
"1231012312-312-31231asda"
A placeholder for additional info, in key-value pairs.
{ "middleName": "user" }
The time when the customer's record was deleted, in UTC format.
"2023-08-30T23:20:42.822Z"
The default addresses of the customer.
Show child attributes
Show child attributes
Was this page helpful?
