curl --request POST \
--url https://api.fabric.inc/v3/allocations/{allocationId}/actions/update-attributes \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'x-fabric-channel-id: <x-fabric-channel-id>' \
--header 'x-fabric-tenant-id: <x-fabric-tenant-id>' \
--data '
{
"attributes": {
"attr1": "value"
},
"keysToRemove": [
"<string>"
]
}
'import requests
url = "https://api.fabric.inc/v3/allocations/{allocationId}/actions/update-attributes"
payload = {
"attributes": { "attr1": "value" },
"keysToRemove": ["<string>"]
}
headers = {
"x-fabric-tenant-id": "<x-fabric-tenant-id>",
"x-fabric-channel-id": "<x-fabric-channel-id>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'x-fabric-tenant-id': '<x-fabric-tenant-id>',
'x-fabric-channel-id': '<x-fabric-channel-id>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({attributes: {attr1: 'value'}, keysToRemove: ['<string>']})
};
fetch('https://api.fabric.inc/v3/allocations/{allocationId}/actions/update-attributes', 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/allocations/{allocationId}/actions/update-attributes",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'attributes' => [
'attr1' => 'value'
],
'keysToRemove' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"x-fabric-channel-id: <x-fabric-channel-id>",
"x-fabric-tenant-id: <x-fabric-tenant-id>"
],
]);
$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/allocations/{allocationId}/actions/update-attributes"
payload := strings.NewReader("{\n \"attributes\": {\n \"attr1\": \"value\"\n },\n \"keysToRemove\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-fabric-tenant-id", "<x-fabric-tenant-id>")
req.Header.Add("x-fabric-channel-id", "<x-fabric-channel-id>")
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.post("https://api.fabric.inc/v3/allocations/{allocationId}/actions/update-attributes")
.header("x-fabric-tenant-id", "<x-fabric-tenant-id>")
.header("x-fabric-channel-id", "<x-fabric-channel-id>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"attributes\": {\n \"attr1\": \"value\"\n },\n \"keysToRemove\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fabric.inc/v3/allocations/{allocationId}/actions/update-attributes")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-fabric-tenant-id"] = '<x-fabric-tenant-id>'
request["x-fabric-channel-id"] = '<x-fabric-channel-id>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"attributes\": {\n \"attr1\": \"value\"\n },\n \"keysToRemove\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"allocationId": "62ff5c0bec0aed3c86202c32",
"allocationRequestId": "62ff5c0bec0aed3c86202c32",
"createdAt": "2022-08-01T18:03:28.483971941Z",
"locationNumber": "1234B",
"version": 2,
"allocationNumber": 13000004,
"allocationExternalId": "123k4h123k",
"auditLogs": [
{
"amount": 2.4,
"auditId": "a05b72dc-78d8-4ea4-90fc-2fe6a1fe1111",
"auditType": "CANCEL",
"auditedAt": "2023-03-12T09:24:54.804Z",
"employeeId": "6227",
"isSuccess": true,
"lineItemId": "b03b72dc-78d8-4ea4-90fc-2fe6a1fe6569",
"lineItemNumber": 1,
"note": "Note",
"paymentToken": {
"paymentType": "VISA",
"token": "pi_34tr6787rt"
},
"policyCode": "POS",
"quantity": 1,
"reasonCode": "Scratched item",
"sku": "SKU0023",
"source": "POS",
"subReasonCode": "Scratched item",
"updatedFields": [
{
"fieldName": "UOM",
"fieldOriginalValue": "PK"
}
]
}
],
"currency": "USD",
"decisionContexts": [
{
"allocatedOrderLineIds": [
"<string>"
],
"methodConfigs": {},
"methodName": "<string>",
"ruleName": "<string>",
"ruleSetId": "<string>",
"ruleSetVersion": "<string>"
}
],
"items": [
{
"allocationLineNumber": 3,
"itemId": 100064,
"quantity": 3,
"sku": "123k4h123k",
"uom": "EA",
"channelId": "4a35cc1b-4e15-46df-96c9-38a697d88dfe",
"cost": 150.6,
"estimatedDeliveryDate": "2022-08-01T18:03:28.483971941Z",
"itemStatus": "PARTIALLY_ALLOCATED",
"notes": [
{
"createdAt": "2022-05-12T09:30:31.198Z",
"notes": "Fragile - handle with care",
"user": "62272e917b12209e68751d94"
}
],
"orderId": "62f3982438bcab1951be0a19",
"orderLineId": "134fqfaa532qrf",
"orderLineNumber": 1,
"orderNumber": "123k4h123k",
"orderExternalId": "123k4h123k",
"orderedAt": "2022-08-01T18:03:28.483971941Z",
"parentAllocationLineNumber": 3,
"price": 50.2,
"reallocationReasonCode": "Reallocating due to unavailability of location number",
"reallocationRequestId": "123k4h123k",
"reshipReasonCode": "Stock refilled",
"scratchQuantity": 1,
"scratchedReasonCode": "Out of stock",
"shippedQuantity": 1,
"weight": 5.5
}
],
"itemsType": "WEB_SHIP",
"locationType": "DC",
"notifiedToPPSAt": "2022-08-01T18:03:28.483971941Z",
"orderSubType": "ANDROID",
"parentAllocationId": "62ff5c0bec0aed3c86202c32",
"previousAllocatedLocationNums": [
"410"
],
"recipients": [
{
"email": "test@example.com",
"name": {
"firstName": "Alex",
"lastName": "Doe",
"middleName": "E"
},
"phone": {
"number": "123-456-7890",
"type": "MOBILE"
},
"pickupType": "PRIMARY"
}
],
"shipToAddress": {
"addressLine1": "123 Main St.",
"city": "Seattle",
"countryCode": "US",
"latitude": 47.6205,
"longitude": -122.3493,
"postalCode": "98121",
"region": "WA",
"type": "Home",
"addressLine2": "Suite 100",
"addressLine3": "Seventh floor",
"addressLine4": "Attention: Pat E. Kake",
"email": "test@example.com",
"name": {
"firstName": "Alex",
"lastName": "Doe",
"middleName": "E"
},
"phone": {
"number": "123-456-7890",
"type": "MOBILE"
}
},
"shipFromAddress": {
"addressLine1": "123 Main St.",
"city": "Seattle",
"countryCode": "US",
"latitude": 47.6205,
"longitude": -122.3493,
"postalCode": "98121",
"region": "WA",
"type": "Home",
"addressLine2": "Suite 100",
"addressLine3": "Seventh floor",
"addressLine4": "Attention: Pat E. Kake",
"email": "test@example.com",
"name": {
"firstName": "Alex",
"lastName": "Doe",
"middleName": "E"
},
"phone": {
"number": "123-456-7890",
"type": "MOBILE"
}
},
"shipToId": "98ff5c0bec0aed3c86202c32",
"shipmentMethod": "Parcel Post Delivery",
"shipmentType": "SHIP_TO_ADDRESS",
"shippedAt": "2022-08-01T20:03:28.483971941Z",
"statusCode": "ALLOCATED",
"type": "ALLOCATED",
"updatedAt": "2022-08-01T20:03:28.483971941Z"
}{
"type": "CLIENT_ERROR",
"errorCode": "SERVICE-4003",
"message": "Mandatory or invalid request parameters",
"errors": [
{
"type": "CLIENT_ERROR",
"errorCode": "SERVICE-4002",
"message": "Invalid value specified for one or more attributes",
"errors": []
}
],
"context": {
"service": "allocations",
"endpoint": "POST /v3/allocations/{allocationId}/actions/update-attributes"
}
}{
"type": "CLIENT_ERROR",
"errorCode": "SERVICE-4001",
"message": "Unauthorized request",
"errors": [],
"context": {
"service": "allocations",
"endpoint": "POST /v3/allocations/{allocationId}/actions/update-attributes"
}
}{
"type": "CLIENT_ERROR",
"message": "Allocation not found",
"errorCode": "SERVICE-4040",
"errors": [],
"context": {
"service": "allocations",
"endpoint": "POST /v3/allocations/{allocationId}/actions/update-attributes"
}
}{
"type": "SERVER_ERROR",
"errorCode": "SERVICE-5000",
"message": "Internal server error",
"errors": [],
"context": {
"service": "allocations",
"endpoint": "POST /v3/allocations/{allocationId}/actions/update-attributes"
}
}Update allocation attributes
Updates merchant-defined attributes for an allocation identified by allocationId. Only the attributes provided in the request payload are updated; existing attributes not included in the payload remain unchanged.
curl --request POST \
--url https://api.fabric.inc/v3/allocations/{allocationId}/actions/update-attributes \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'x-fabric-channel-id: <x-fabric-channel-id>' \
--header 'x-fabric-tenant-id: <x-fabric-tenant-id>' \
--data '
{
"attributes": {
"attr1": "value"
},
"keysToRemove": [
"<string>"
]
}
'import requests
url = "https://api.fabric.inc/v3/allocations/{allocationId}/actions/update-attributes"
payload = {
"attributes": { "attr1": "value" },
"keysToRemove": ["<string>"]
}
headers = {
"x-fabric-tenant-id": "<x-fabric-tenant-id>",
"x-fabric-channel-id": "<x-fabric-channel-id>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'x-fabric-tenant-id': '<x-fabric-tenant-id>',
'x-fabric-channel-id': '<x-fabric-channel-id>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({attributes: {attr1: 'value'}, keysToRemove: ['<string>']})
};
fetch('https://api.fabric.inc/v3/allocations/{allocationId}/actions/update-attributes', 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/allocations/{allocationId}/actions/update-attributes",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'attributes' => [
'attr1' => 'value'
],
'keysToRemove' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"x-fabric-channel-id: <x-fabric-channel-id>",
"x-fabric-tenant-id: <x-fabric-tenant-id>"
],
]);
$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/allocations/{allocationId}/actions/update-attributes"
payload := strings.NewReader("{\n \"attributes\": {\n \"attr1\": \"value\"\n },\n \"keysToRemove\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-fabric-tenant-id", "<x-fabric-tenant-id>")
req.Header.Add("x-fabric-channel-id", "<x-fabric-channel-id>")
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.post("https://api.fabric.inc/v3/allocations/{allocationId}/actions/update-attributes")
.header("x-fabric-tenant-id", "<x-fabric-tenant-id>")
.header("x-fabric-channel-id", "<x-fabric-channel-id>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"attributes\": {\n \"attr1\": \"value\"\n },\n \"keysToRemove\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fabric.inc/v3/allocations/{allocationId}/actions/update-attributes")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-fabric-tenant-id"] = '<x-fabric-tenant-id>'
request["x-fabric-channel-id"] = '<x-fabric-channel-id>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"attributes\": {\n \"attr1\": \"value\"\n },\n \"keysToRemove\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"allocationId": "62ff5c0bec0aed3c86202c32",
"allocationRequestId": "62ff5c0bec0aed3c86202c32",
"createdAt": "2022-08-01T18:03:28.483971941Z",
"locationNumber": "1234B",
"version": 2,
"allocationNumber": 13000004,
"allocationExternalId": "123k4h123k",
"auditLogs": [
{
"amount": 2.4,
"auditId": "a05b72dc-78d8-4ea4-90fc-2fe6a1fe1111",
"auditType": "CANCEL",
"auditedAt": "2023-03-12T09:24:54.804Z",
"employeeId": "6227",
"isSuccess": true,
"lineItemId": "b03b72dc-78d8-4ea4-90fc-2fe6a1fe6569",
"lineItemNumber": 1,
"note": "Note",
"paymentToken": {
"paymentType": "VISA",
"token": "pi_34tr6787rt"
},
"policyCode": "POS",
"quantity": 1,
"reasonCode": "Scratched item",
"sku": "SKU0023",
"source": "POS",
"subReasonCode": "Scratched item",
"updatedFields": [
{
"fieldName": "UOM",
"fieldOriginalValue": "PK"
}
]
}
],
"currency": "USD",
"decisionContexts": [
{
"allocatedOrderLineIds": [
"<string>"
],
"methodConfigs": {},
"methodName": "<string>",
"ruleName": "<string>",
"ruleSetId": "<string>",
"ruleSetVersion": "<string>"
}
],
"items": [
{
"allocationLineNumber": 3,
"itemId": 100064,
"quantity": 3,
"sku": "123k4h123k",
"uom": "EA",
"channelId": "4a35cc1b-4e15-46df-96c9-38a697d88dfe",
"cost": 150.6,
"estimatedDeliveryDate": "2022-08-01T18:03:28.483971941Z",
"itemStatus": "PARTIALLY_ALLOCATED",
"notes": [
{
"createdAt": "2022-05-12T09:30:31.198Z",
"notes": "Fragile - handle with care",
"user": "62272e917b12209e68751d94"
}
],
"orderId": "62f3982438bcab1951be0a19",
"orderLineId": "134fqfaa532qrf",
"orderLineNumber": 1,
"orderNumber": "123k4h123k",
"orderExternalId": "123k4h123k",
"orderedAt": "2022-08-01T18:03:28.483971941Z",
"parentAllocationLineNumber": 3,
"price": 50.2,
"reallocationReasonCode": "Reallocating due to unavailability of location number",
"reallocationRequestId": "123k4h123k",
"reshipReasonCode": "Stock refilled",
"scratchQuantity": 1,
"scratchedReasonCode": "Out of stock",
"shippedQuantity": 1,
"weight": 5.5
}
],
"itemsType": "WEB_SHIP",
"locationType": "DC",
"notifiedToPPSAt": "2022-08-01T18:03:28.483971941Z",
"orderSubType": "ANDROID",
"parentAllocationId": "62ff5c0bec0aed3c86202c32",
"previousAllocatedLocationNums": [
"410"
],
"recipients": [
{
"email": "test@example.com",
"name": {
"firstName": "Alex",
"lastName": "Doe",
"middleName": "E"
},
"phone": {
"number": "123-456-7890",
"type": "MOBILE"
},
"pickupType": "PRIMARY"
}
],
"shipToAddress": {
"addressLine1": "123 Main St.",
"city": "Seattle",
"countryCode": "US",
"latitude": 47.6205,
"longitude": -122.3493,
"postalCode": "98121",
"region": "WA",
"type": "Home",
"addressLine2": "Suite 100",
"addressLine3": "Seventh floor",
"addressLine4": "Attention: Pat E. Kake",
"email": "test@example.com",
"name": {
"firstName": "Alex",
"lastName": "Doe",
"middleName": "E"
},
"phone": {
"number": "123-456-7890",
"type": "MOBILE"
}
},
"shipFromAddress": {
"addressLine1": "123 Main St.",
"city": "Seattle",
"countryCode": "US",
"latitude": 47.6205,
"longitude": -122.3493,
"postalCode": "98121",
"region": "WA",
"type": "Home",
"addressLine2": "Suite 100",
"addressLine3": "Seventh floor",
"addressLine4": "Attention: Pat E. Kake",
"email": "test@example.com",
"name": {
"firstName": "Alex",
"lastName": "Doe",
"middleName": "E"
},
"phone": {
"number": "123-456-7890",
"type": "MOBILE"
}
},
"shipToId": "98ff5c0bec0aed3c86202c32",
"shipmentMethod": "Parcel Post Delivery",
"shipmentType": "SHIP_TO_ADDRESS",
"shippedAt": "2022-08-01T20:03:28.483971941Z",
"statusCode": "ALLOCATED",
"type": "ALLOCATED",
"updatedAt": "2022-08-01T20:03:28.483971941Z"
}{
"type": "CLIENT_ERROR",
"errorCode": "SERVICE-4003",
"message": "Mandatory or invalid request parameters",
"errors": [
{
"type": "CLIENT_ERROR",
"errorCode": "SERVICE-4002",
"message": "Invalid value specified for one or more attributes",
"errors": []
}
],
"context": {
"service": "allocations",
"endpoint": "POST /v3/allocations/{allocationId}/actions/update-attributes"
}
}{
"type": "CLIENT_ERROR",
"errorCode": "SERVICE-4001",
"message": "Unauthorized request",
"errors": [],
"context": {
"service": "allocations",
"endpoint": "POST /v3/allocations/{allocationId}/actions/update-attributes"
}
}{
"type": "CLIENT_ERROR",
"message": "Allocation not found",
"errorCode": "SERVICE-4040",
"errors": [],
"context": {
"service": "allocations",
"endpoint": "POST /v3/allocations/{allocationId}/actions/update-attributes"
}
}{
"type": "SERVER_ERROR",
"errorCode": "SERVICE-5000",
"message": "Internal server error",
"errors": [],
"context": {
"service": "allocations",
"endpoint": "POST /v3/allocations/{allocationId}/actions/update-attributes"
}
}Authorizations
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.
Path Parameters
Body
Response
OK
Allocation response details
Allocation ID that's generated while creating the allocation for the first time. Initially this will be the same as allocationRequestId. If there is a reallocation, the parentAllocationId will be assigned the same value as the initial allocationRequestId, and will serve as a means of monitoring all subsequent child allocations.
"62ff5c0bec0aed3c86202c32"
Was this page helpful?
