curl --request PATCH \
--url https://dev.sbx.imprint.co/v2/card_designs/{card_design_id} \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"status": "INACTIVE"
}
'import requests
url = "https://dev.sbx.imprint.co/v2/card_designs/{card_design_id}"
payload = { "status": "INACTIVE" }
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Basic <encoded-value>', 'Content-Type': 'application/json'},
body: JSON.stringify({status: 'INACTIVE'})
};
fetch('https://dev.sbx.imprint.co/v2/card_designs/{card_design_id}', 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://dev.sbx.imprint.co/v2/card_designs/{card_design_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'status' => 'INACTIVE'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"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://dev.sbx.imprint.co/v2/card_designs/{card_design_id}"
payload := strings.NewReader("{\n \"status\": \"INACTIVE\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Basic <encoded-value>")
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.patch("https://dev.sbx.imprint.co/v2/card_designs/{card_design_id}")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/json")
.body("{\n \"status\": \"INACTIVE\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://dev.sbx.imprint.co/v2/card_designs/{card_design_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Basic <encoded-value>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"status\": \"INACTIVE\"\n}"
response = http.request(request)
puts response.read_body{
"id": "3b9c1f3e-52a0-44c1-b131-a7ab0099a214",
"name": "Midnight Black",
"access_min_rank": 0,
"type": "REGULAR",
"status": "ACTIVE",
"loyalty_tier_name": "GOLD",
"categories": {},
"image_orientation": "VERTICAL",
"light_asset_url_path": "https://assets.imprint.co/brand-assets/card-designs/light/midnight-black.svg",
"dark_asset_url_path": "https://assets.imprint.co/brand-assets/card-designs/dark/midnight-black.svg",
"virtual_digital_card_art_id": "<string>",
"physical_digital_card_art_id": "<string>"
}{
"path": "/v2/customers",
"details": [
"email: must be a well-formed email address"
],
"error": "Bad Request",
"status": 400,
"timestamp": "2025-01-20T18:18:22.923+00:00"
}{
"error": {
"type": "BAD_REQUEST_ERROR",
"message": "unsupported reward_type: INVALID, must be STATEMENT or DELAYED"
}
}{
"type": "CARD_DESIGN_NOT_FOUND_ERROR",
"message": "card design not found"
}Update a card design
Activates or deactivates one of your card designs. Only status can be changed;
any other field in the request returns 400. Only ACTIVE designs can be
selected by customers, so set a design to INACTIVE to stop offering it.
With a partner-scoped API key and no x-imprint-merchant-key header, you can
update designs configured for your partner and for any of your programs. With a
merchant key, or a product-scoped API key, you can update only that program’s
designs. A design you cannot update returns 404.
A program’s default design cannot be deactivated.
Required scope: CARD_DESIGN_WRITE
curl --request PATCH \
--url https://dev.sbx.imprint.co/v2/card_designs/{card_design_id} \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"status": "INACTIVE"
}
'import requests
url = "https://dev.sbx.imprint.co/v2/card_designs/{card_design_id}"
payload = { "status": "INACTIVE" }
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Basic <encoded-value>', 'Content-Type': 'application/json'},
body: JSON.stringify({status: 'INACTIVE'})
};
fetch('https://dev.sbx.imprint.co/v2/card_designs/{card_design_id}', 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://dev.sbx.imprint.co/v2/card_designs/{card_design_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'status' => 'INACTIVE'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"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://dev.sbx.imprint.co/v2/card_designs/{card_design_id}"
payload := strings.NewReader("{\n \"status\": \"INACTIVE\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Basic <encoded-value>")
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.patch("https://dev.sbx.imprint.co/v2/card_designs/{card_design_id}")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/json")
.body("{\n \"status\": \"INACTIVE\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://dev.sbx.imprint.co/v2/card_designs/{card_design_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Basic <encoded-value>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"status\": \"INACTIVE\"\n}"
response = http.request(request)
puts response.read_body{
"id": "3b9c1f3e-52a0-44c1-b131-a7ab0099a214",
"name": "Midnight Black",
"access_min_rank": 0,
"type": "REGULAR",
"status": "ACTIVE",
"loyalty_tier_name": "GOLD",
"categories": {},
"image_orientation": "VERTICAL",
"light_asset_url_path": "https://assets.imprint.co/brand-assets/card-designs/light/midnight-black.svg",
"dark_asset_url_path": "https://assets.imprint.co/brand-assets/card-designs/dark/midnight-black.svg",
"virtual_digital_card_art_id": "<string>",
"physical_digital_card_art_id": "<string>"
}{
"path": "/v2/customers",
"details": [
"email: must be a well-formed email address"
],
"error": "Bad Request",
"status": 400,
"timestamp": "2025-01-20T18:18:22.923+00:00"
}{
"error": {
"type": "BAD_REQUEST_ERROR",
"message": "unsupported reward_type: INVALID, must be STATEMENT or DELAYED"
}
}{
"type": "CARD_DESIGN_NOT_FOUND_ERROR",
"message": "card design not found"
}Authorizations
Basic HTTP authentication. Allowed headers-- Authorization: Basic <base64(api_key_id:api_key_secret)>
Path Parameters
The card design to update Imprint ID for the graphic design printed on the card
"3b9c1f3e-52a0-44c1-b131-a7ab0099a214"
Body
The new availability of the design.
ACTIVE, INACTIVE "INACTIVE"
Response
The updated card design
Imprint ID for the graphic design printed on the card
"3b9c1f3e-52a0-44c1-b131-a7ab0099a214"
Human-readable name of the card design
"Midnight Black"
Minimum loyalty tier rank a customer must hold to select this design. 0
means available to everyone. A design with a rank above the customer's own
tier is returned but cannot be selected by them.
0
Whether this is the program's default design or one of its selectable alternates.
UNSPECIFIED, DEFAULT, REGULAR "REGULAR"
Availability of the design. Only ACTIVE designs can be selected.
UNSPECIFIED, ACTIVE, INACTIVE, DELETED "ACTIVE"
Name of the loyalty tier corresponding to access_min_rank. Currently always
omitted; use access_min_rank to determine gating.
"GOLD"
Partner-defined key/value labels for grouping designs
Show child attributes
Show child attributes
Orientation of the card design artwork
UNSPECIFIED, VERTICAL, HORIZONTAL "VERTICAL"
Absolute URL of the card design artwork for light mode. Artwork is served
from https://assets.imprint.co or https://app.imprint.co depending on
where it was uploaded.
"https://assets.imprint.co/brand-assets/card-designs/light/midnight-black.svg"
Absolute URL of the card design artwork for dark mode. Artwork is served
from https://assets.imprint.co or https://app.imprint.co depending on
where it was uploaded.
"https://assets.imprint.co/brand-assets/card-designs/dark/midnight-black.svg"
Processor-side art identifier for the virtual card
Processor-side art identifier for the physical card