curl --request POST \
--url https://api.fabric.inc/v3/shipments/{shipmentId}/actions/update-gift-cards-status \
--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 '
{
"items": [
{
"giftCards": [
{
"giftCardNumber": "453456765",
"giftCardStatus": "ACTIVE"
}
],
"shipmentLineItemId": "607f1f77bcf86cd799439011"
}
]
}
'import requests
url = "https://api.fabric.inc/v3/shipments/{shipmentId}/actions/update-gift-cards-status"
payload = { "items": [
{
"giftCards": [
{
"giftCardNumber": "453456765",
"giftCardStatus": "ACTIVE"
}
],
"shipmentLineItemId": "607f1f77bcf86cd799439011"
}
] }
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({
items: [
{
giftCards: [{giftCardNumber: '453456765', giftCardStatus: 'ACTIVE'}],
shipmentLineItemId: '607f1f77bcf86cd799439011'
}
]
})
};
fetch('https://api.fabric.inc/v3/shipments/{shipmentId}/actions/update-gift-cards-status', 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/shipments/{shipmentId}/actions/update-gift-cards-status",
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([
'items' => [
[
'giftCards' => [
[
'giftCardNumber' => '453456765',
'giftCardStatus' => 'ACTIVE'
]
],
'shipmentLineItemId' => '607f1f77bcf86cd799439011'
]
]
]),
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/shipments/{shipmentId}/actions/update-gift-cards-status"
payload := strings.NewReader("{\n \"items\": [\n {\n \"giftCards\": [\n {\n \"giftCardNumber\": \"453456765\",\n \"giftCardStatus\": \"ACTIVE\"\n }\n ],\n \"shipmentLineItemId\": \"607f1f77bcf86cd799439011\"\n }\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/shipments/{shipmentId}/actions/update-gift-cards-status")
.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 \"items\": [\n {\n \"giftCards\": [\n {\n \"giftCardNumber\": \"453456765\",\n \"giftCardStatus\": \"ACTIVE\"\n }\n ],\n \"shipmentLineItemId\": \"607f1f77bcf86cd799439011\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fabric.inc/v3/shipments/{shipmentId}/actions/update-gift-cards-status")
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 \"items\": [\n {\n \"giftCards\": [\n {\n \"giftCardNumber\": \"453456765\",\n \"giftCardStatus\": \"ACTIVE\"\n }\n ],\n \"shipmentLineItemId\": \"607f1f77bcf86cd799439011\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body[
{
"giftCards": [
{
"giftCardNumber": "453456765",
"giftCardStatus": "ACTIVE"
}
],
"shipmentLineItemId": "607f1f77bcf86cd799439011"
}
]{
"errors": [
{
"message": "Invalid request",
"type": "CLIENT_ERROR"
}
],
"message": "Bad request",
"type": "CLIENT_ERROR"
}{
"message": "Unauthorized request",
"type": "CLIENT_ERROR"
}{
"message": "Shipment not found",
"type": "CLIENT_ERROR"
}{
"message": "Internal server error",
"type": "SERVER_ERROR"
}Update gift card activation status
This endpoint is used to activate gift cards before they’re delivered to the customer. Typically used by “adapters” or external web services integrated with gift card applications, so that gift cards can be activated as part of the fabric fulfillment workflow.
curl --request POST \
--url https://api.fabric.inc/v3/shipments/{shipmentId}/actions/update-gift-cards-status \
--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 '
{
"items": [
{
"giftCards": [
{
"giftCardNumber": "453456765",
"giftCardStatus": "ACTIVE"
}
],
"shipmentLineItemId": "607f1f77bcf86cd799439011"
}
]
}
'import requests
url = "https://api.fabric.inc/v3/shipments/{shipmentId}/actions/update-gift-cards-status"
payload = { "items": [
{
"giftCards": [
{
"giftCardNumber": "453456765",
"giftCardStatus": "ACTIVE"
}
],
"shipmentLineItemId": "607f1f77bcf86cd799439011"
}
] }
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({
items: [
{
giftCards: [{giftCardNumber: '453456765', giftCardStatus: 'ACTIVE'}],
shipmentLineItemId: '607f1f77bcf86cd799439011'
}
]
})
};
fetch('https://api.fabric.inc/v3/shipments/{shipmentId}/actions/update-gift-cards-status', 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/shipments/{shipmentId}/actions/update-gift-cards-status",
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([
'items' => [
[
'giftCards' => [
[
'giftCardNumber' => '453456765',
'giftCardStatus' => 'ACTIVE'
]
],
'shipmentLineItemId' => '607f1f77bcf86cd799439011'
]
]
]),
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/shipments/{shipmentId}/actions/update-gift-cards-status"
payload := strings.NewReader("{\n \"items\": [\n {\n \"giftCards\": [\n {\n \"giftCardNumber\": \"453456765\",\n \"giftCardStatus\": \"ACTIVE\"\n }\n ],\n \"shipmentLineItemId\": \"607f1f77bcf86cd799439011\"\n }\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/shipments/{shipmentId}/actions/update-gift-cards-status")
.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 \"items\": [\n {\n \"giftCards\": [\n {\n \"giftCardNumber\": \"453456765\",\n \"giftCardStatus\": \"ACTIVE\"\n }\n ],\n \"shipmentLineItemId\": \"607f1f77bcf86cd799439011\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fabric.inc/v3/shipments/{shipmentId}/actions/update-gift-cards-status")
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 \"items\": [\n {\n \"giftCards\": [\n {\n \"giftCardNumber\": \"453456765\",\n \"giftCardStatus\": \"ACTIVE\"\n }\n ],\n \"shipmentLineItemId\": \"607f1f77bcf86cd799439011\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body[
{
"giftCards": [
{
"giftCardNumber": "453456765",
"giftCardStatus": "ACTIVE"
}
],
"shipmentLineItemId": "607f1f77bcf86cd799439011"
}
]{
"errors": [
{
"message": "Invalid request",
"type": "CLIENT_ERROR"
}
],
"message": "Bad request",
"type": "CLIENT_ERROR"
}{
"message": "Unauthorized request",
"type": "CLIENT_ERROR"
}{
"message": "Shipment not found",
"type": "CLIENT_ERROR"
}{
"message": "Internal server error",
"type": "SERVER_ERROR"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth 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.
x-fabric-channel-id identifies the sales channel where the API request is being made; primarily for multichannel use cases. The channel ids are 12 corresponding to US and 13 corresponding to Canada. The default channel id is 12. This field is required.
Unique request ID
Path Parameters
24-character system-generated shipment ID. It's generated in the response of Create Shipment - POST /shipments endpoint.
Body
Gift card activation request
Items
1 - 1000 elementsShow child attributes
Show child attributes
Response
OK
Gift cards
1 - 100 elementsShow child attributes
Show child attributes
Unique number assigned by merchant to identify item in a shipment. When this value isn't provided, fabric will auto generate (UUID format) during shipment.
"607f1f77bcf86cd799439011"
Was this page helpful?
