Build Product Code
Uri: https://test-api.finerworks.com/v3/build_product_code
Method: POST

Create a product code based on a list of material ids. This is used for the product builder to build a product code that can be added to the cart. Note this endpoint does not check if the materials are active or valid for use, it simply builds a code based on the ids provided.


Body

NameDescriptionTypeAdditional information
build

Build object containing all the details needed to build a product code. The more details included, the more accurate the product code and price will be. However, even if only a few details are included, a product code will still be generated based on the details provided.

build_product_code_obj

None.

Example JSON Body

application/json, text/json

{
  "build": {
    "CardStockID": 1,
    "CardStyleID": 2,
    "CardTypeID": 3,
    "FrameID": 4,
    "FrameW": 5.0,
    "FrameH": 6.0,
    "SheetW": 7.0,
    "SheetH": 8.0,
    "MatID": 9,
    "Mat1WindowW": 10.0,
    "Mat1WindowH": 11.0,
    "MatID2": 12,
    "Mat2WindowW": 13.0,
    "Mat2WindowH": 14.0,
    "GlassID": 15,
    "PrintProductTypeID": 16,
    "MediaID": 17,
    "MountingID": 18,
    "MountingSetID": 19,
    "MountingAddOns": [
      1,
      2
    ],
    "CanvasAddOns": [
      1,
      2
    ],
    "CardOptions": [
      1,
      2
    ],
    "Units": 20,
    "PrintW": 21.0,
    "PrintH": 22.0,
    "PhotoItemID": 23,
    "PhotoItemOptions": [
      1,
      2
    ],
    "ColorCorrect": true
  }
}

Sample Code Library


                        
curl --location --request sample_method 'https://test-api.finerworks.comsample_endpoint' \
--header 'Content-Type: application/json' \
--header 'web_api_key: my-web-api-key-goes-here' \
--header 'app_key: my-app-key-goes-here' \
--data-raw '{
  "build": {
    "CardStockID": 1,
    "CardStyleID": 2,
    "CardTypeID": 3,
    "FrameID": 4,
    "FrameW": 5.0,
    "FrameH": 6.0,
    "SheetW": 7.0,
    "SheetH": 8.0,
    "MatID": 9,
    "Mat1WindowW": 10.0,
    "Mat1WindowH": 11.0,
    "MatID2": 12,
    "Mat2WindowW": 13.0,
    "Mat2WindowH": 14.0,
    "GlassID": 15,
    "PrintProductTypeID": 16,
    "MediaID": 17,
    "MountingID": 18,
    "MountingSetID": 19,
    "MountingAddOns": [
      1,
      2
    ],
    "CanvasAddOns": [
      1,
      2
    ],
    "CardOptions": [
      1,
      2
    ],
    "Units": 20,
    "PrintW": 21.0,
    "PrintH": 22.0,
    "PhotoItemID": 23,
    "PhotoItemOptions": [
      1,
      2
    ],
    "ColorCorrect": true
  }
}'
                            
                        


require_once 'HTTP/Request2.php';
$request = new HTTP_Request2();
$request->setUrl('https://test-api.finerworks.comsample_endpoint');
$request->setMethod(HTTP_Request2::METHOD_sample_method);
$request->setConfig(array(
'follow_redirects' => TRUE
));
$request->setHeader(array(
'Content-Type' => 'application/json',
'web_api_key' => 'my-web-api-key-goes-here',
'app_key' => 'my-app-key-goes-here'
));
$request->setBody('{
  'build': {
    'CardStockID': 1,
    'CardStyleID': 2,
    'CardTypeID': 3,
    'FrameID': 4,
    'FrameW': 5.0,
    'FrameH': 6.0,
    'SheetW': 7.0,
    'SheetH': 8.0,
    'MatID': 9,
    'Mat1WindowW': 10.0,
    'Mat1WindowH': 11.0,
    'MatID2': 12,
    'Mat2WindowW': 13.0,
    'Mat2WindowH': 14.0,
    'GlassID': 15,
    'PrintProductTypeID': 16,
    'MediaID': 17,
    'MountingID': 18,
    'MountingSetID': 19,
    'MountingAddOns': [
      1,
      2
    ],
    'CanvasAddOns': [
      1,
      2
    ],
    'CardOptions': [
      1,
      2
    ],
    'Units': 20,
    'PrintW': 21.0,
    'PrintH': 22.0,
    'PhotoItemID': 23,
    'PhotoItemOptions': [
      1,
      2
    ],
    'ColorCorrect': true
  }
}');
try {
$response = $request->send();
if ($response->getStatus() == 200) {
echo $response->getBody();
}
else {
echo 'Unexpected HTTP status: ' . $response->getStatus() . ' ' .
$response->getReasonPhrase();
}
}
catch(HTTP_Request2_Exception $e) {
echo 'Error: ' . $e->getMessage();
}

                        


var client = new RestClient("https://test-api.finerworks.comsample_endpoint");
client.Timeout = -1;
var request = new RestRequest(Method.sample_method);
request.AddHeader("Content-Type", "application/json");
request.AddHeader("web_api_key", "my-web-api-key-goes-here");
request.AddHeader("app_key", "my-app-key-goes-here");
request.AddParameter("application/json", "{
  'build': {
    'CardStockID': 1,
    'CardStyleID': 2,
    'CardTypeID': 3,
    'FrameID': 4,
    'FrameW': 5.0,
    'FrameH': 6.0,
    'SheetW': 7.0,
    'SheetH': 8.0,
    'MatID': 9,
    'Mat1WindowW': 10.0,
    'Mat1WindowH': 11.0,
    'MatID2': 12,
    'Mat2WindowW': 13.0,
    'Mat2WindowH': 14.0,
    'GlassID': 15,
    'PrintProductTypeID': 16,
    'MediaID': 17,
    'MountingID': 18,
    'MountingSetID': 19,
    'MountingAddOns': [
      1,
      2
    ],
    'CanvasAddOns': [
      1,
      2
    ],
    'CardOptions': [
      1,
      2
    ],
    'Units': 20,
    'PrintW': 21.0,
    'PrintH': 22.0,
    'PhotoItemID': 23,
    'PhotoItemOptions': [
      1,
      2
    ],
    'ColorCorrect': true
  }
},  ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);

                        


var settings = {
"url": "https://test-api.finerworks.comsample_endpoint",
"method": "sample_method",
"timeout": 0,
"headers": {
"Content-Type": "application/json",
"web_api_key": "my-web-api-key-goes-here",
"app_key": "my-app-key-goes-here"
},
"data": JSON.stringify({
  'build': {
    'CardStockID': 1,
    'CardStyleID': 2,
    'CardTypeID': 3,
    'FrameID': 4,
    'FrameW': 5.0,
    'FrameH': 6.0,
    'SheetW': 7.0,
    'SheetH': 8.0,
    'MatID': 9,
    'Mat1WindowW': 10.0,
    'Mat1WindowH': 11.0,
    'MatID2': 12,
    'Mat2WindowW': 13.0,
    'Mat2WindowH': 14.0,
    'GlassID': 15,
    'PrintProductTypeID': 16,
    'MediaID': 17,
    'MountingID': 18,
    'MountingSetID': 19,
    'MountingAddOns': [
      1,
      2
    ],
    'CanvasAddOns': [
      1,
      2
    ],
    'CardOptions': [
      1,
      2
    ],
    'Units': 20,
    'PrintW': 21.0,
    'PrintH': 22.0,
    'PhotoItemID': 23,
    'PhotoItemOptions': [
      1,
      2
    ],
    'ColorCorrect': true
  }
}),
};

$.ajax(settings).done(function (response) {
console.log(response);
});

                        

                        
var https = require('follow-redirects').https;
var fs = require('fs');

var options = {
'method': 'sample_method',
'hostname': 'v2.api.finerworks.com',
'path': 'sample_endpoint',
'headers': {
'Content-Type': 'application/json',
'web_api_key': 'my-web-api-key-goes-here',
'app_key': 'my-app-key-goes-here'
},
'maxRedirects': 20
};

var req = https.request(options, function (res) {
var chunks = [];

res.on("data", function (chunk) {
chunks.push(chunk);
});

res.on("end", function (chunk) {
var body = Buffer.concat(chunks);
console.log(body.toString());
});

res.on("error", function (error) {
console.error(error);
});
});

var postData = JSON.stringify({
  "build": {
    "CardStockID": 1,
    "CardStyleID": 2,
    "CardTypeID": 3,
    "FrameID": 4,
    "FrameW": 5.0,
    "FrameH": 6.0,
    "SheetW": 7.0,
    "SheetH": 8.0,
    "MatID": 9,
    "Mat1WindowW": 10.0,
    "Mat1WindowH": 11.0,
    "MatID2": 12,
    "Mat2WindowW": 13.0,
    "Mat2WindowH": 14.0,
    "GlassID": 15,
    "PrintProductTypeID": 16,
    "MediaID": 17,
    "MountingID": 18,
    "MountingSetID": 19,
    "MountingAddOns": [
      1,
      2
    ],
    "CanvasAddOns": [
      1,
      2
    ],
    "CardOptions": [
      1,
      2
    ],
    "Units": 20,
    "PrintW": 21.0,
    "PrintH": 22.0,
    "PhotoItemID": 23,
    "PhotoItemOptions": [
      1,
      2
    ],
    "ColorCorrect": true
  }
});

req.write(postData);

req.end();
                            
                        

                        
    require "uri"
    require "net/http"

    url = URI("https://test-api.finerworks.comsample_endpoint")

    https = Net::HTTP.new(url.host, url.port)
    https.use_ssl = true

    request = Net::HTTP::sample_method.new(url)
    request["Content-Type"] = "application/json"
    request["web_api_key"] = "my-web-api-key-goes-here"
    request["app_key"] = "my-app-key-goes-here"
    request.body = "{
  'build': {
    'CardStockID': 1,
    'CardStyleID': 2,
    'CardTypeID': 3,
    'FrameID': 4,
    'FrameW': 5.0,
    'FrameH': 6.0,
    'SheetW': 7.0,
    'SheetH': 8.0,
    'MatID': 9,
    'Mat1WindowW': 10.0,
    'Mat1WindowH': 11.0,
    'MatID2': 12,
    'Mat2WindowW': 13.0,
    'Mat2WindowH': 14.0,
    'GlassID': 15,
    'PrintProductTypeID': 16,
    'MediaID': 17,
    'MountingID': 18,
    'MountingSetID': 19,
    'MountingAddOns': [
      1,
      2
    ],
    'CanvasAddOns': [
      1,
      2
    ],
    'CardOptions': [
      1,
      2
    ],
    'Units': 20,
    'PrintW': 21.0,
    'PrintH': 22.0,
    'PhotoItemID': 23,
    'PhotoItemOptions': [
      1,
      2
    ],
    'ColorCorrect': true
  }
}"

    response = https.request(request)
    puts response.read_body


                        

NameDescriptionTypeAdditional information
product_code

text

None.

price

decimal

None.

details

product_details

None.

status

response_status

None.

Example JSON Response

application/json, text/json

{
  "product_code": "sample string 1",
  "price": 2.0,
  "details": {
    "id": 1,
    "monetary_format": "sample string 2",
    "quantity": 3,
    "quantity_in_stock": 4,
    "track_inventory": true,
    "sku": "sample string 6",
    "product_code": "sample string 7",
    "price_details": {
      "product_qty": 1,
      "product_sku": "sample string 2",
      "product_code": "sample string 3",
      "product_price": 4.1,
      "add_frame_price": 5.1,
      "add_mat_1_price": 6.1,
      "add_mat_2_price": 7.1,
      "add_glazing_price": 8.1,
      "add_color_correct_price": 9.1,
      "total_price": 10.1,
      "geo_price": 11.1,
      "info": "sample string 12",
      "debug": {}
    },
    "per_item_price": 8.0,
    "total_price": 9.0,
    "asking_price": 10.0,
    "geo_price": 11.0,
    "name": "sample string 12",
    "description_short": "sample string 13",
    "description_long": "sample string 14",
    "labels": [
      {
        "key": "sample string 1",
        "value": "sample string 2",
        "priority": 3
      },
      {
        "key": "sample string 1",
        "value": "sample string 2",
        "priority": 3
      }
    ],
    "image_url_1": "sample string 15",
    "image_url_2": "sample string 16",
    "image_url_3": "sample string 17",
    "image_url_4": "sample string 18",
    "image_url_5": "sample string 19",
    "image_guid": "9fcf87ef-d497-4726-b976-b923e7115ab3",
    "product_size": {
      "width": 1.0,
      "height": 2.0,
      "depth": 3.0,
      "ounces": 4.0,
      "cubic_volume": 5.0,
      "is_rigid": true
    },
    "third_party_integrations": {
      "etsy_product_id": 1,
      "shopify_product_id": 2,
      "shopify_variant_id": 3,
      "shopify_graphql_product_id": "sample string 4",
      "shopify_graphql_variant_id": "sample string 5",
      "squarespace_product_id": "sample string 6",
      "squarespace_variant_id": "sample string 7",
      "wix_inventory_id": "sample string 8",
      "wix_product_id": "sample string 9",
      "wix_variant_id": "sample string 10",
      "woocommerce_product_id": 11,
      "woocommerce_variant_id": 12
    },
    "framing_options": {
      "collection_ids": [
        1,
        2
      ],
      "allow_frames": true,
      "allow_matting": true,
      "allow_glazing": true,
      "frame_required": true,
      "allow_float_matting": true,
      "require_float_matting": true
    },
    "product_guid": "3f1714b7-da38-4af2-b862-759cee783617",
    "updated": "2026-04-14T00:58:42.3891266-05:00",
    "valid": true,
    "debug": {}
  },
  "status": {
    "success": true,
    "status_code": 100,
    "message": "sample string 2",
    "debug": {},
    "reference_id": "sample string 4",
    "domain": "sample string 5"
  }
}