Integration Reference
v3.6  ·  v1.0 ↓ Download PDF

Blackinton®PCSDocumentation

A complete integration guide for embedding Blackinton Product Configuration Services into your e-commerce or ERP platform — with full API reference, authentication, and setup instructions.

Cart Integration

Embed into any modern e-commerce platform with full cart control

Platform Agnostic

Works with any ERP or order management system

Design Keys

Unique 36-char GUIDs track every product configuration

RESTful APIs

Products, Orders, Design & Catalog endpoints included

Table of Contents

Section 01

Overview

Product Configuration Services (PCS) is a suite of technology solutions designed to simplify how Blackinton dealers sell customizable products online. Maintaining product offerings and delivering an intuitive, rules-compliant shopping experience can be complex — PCS removes that burden entirely.

PCS provides an IFRAME-integrated solution that delivers a complete, tailored browsing and configuration experience for Blackinton products — eliminating the need to build or maintain a local product library.

🛒 Shopping Cart Integration

  • Embed PCS inside any modern e-commerce platform
  • Dealer retains full control of cart & checkout
  • Products added via programmatic "add-to-cart"

🏢 ERP Integration

  • Works with ERP & order management systems
  • JavaScript postMessage handles data exchange
  • Programmatic sales order creation supported

⚙️ Automatic Storage

  • Configured products stored at Blackinton automatically
  • Convert configurations to orders via secure REST API
  • Design keys track every configuration permanently

🔌 Platform Agnostic

  • Integrates with nearly any modern platform
  • Injectable dealer-specific CSS for custom branding
  • Responsive UI based on Bootstrap 5.3
📌

Scope of PCS

PCS is exclusively dedicated to Blackinton product customization. Dealers continue to manage non-Blackinton products and the overall checkout experience independently within their own platforms.

Section 02

Shopping Cart System Prerequisites

Before integrating PCS with a shopping cart platform, ensure the following capabilities are supported:

Product-Specific Page Layout

The cart system must support a dedicated product page layout that can host an IFRAME. The IFRAME src attribute will reference an external URL — e.g. https://build.blackinton.com — different from your shopping system's domain.

Custom Page Script

The cart system must allow custom JavaScript on the PCS page. PCS uses JavaScript's postMessage method to communicate between the IFRAME and the hosting page. External CDN references load the required JS files.

Programmatic "Add-To-Cart"

The cart system must support adding products programmatically — client-side or server-side — using a style number/identifier, typically via an API or HTTP POST.

Custom Product Setup

The integration uses a single custom product — recommended style number: VHB-PCS. Each time a Blackinton product is configured via PCS, this product is added to the cart.

Storing Additional Data with a Product

Option 1 – Native Custom Data

The cart accepts custom JSON stored with the product through the full order creation lifecycle.

Option 2 – Multi-line Text Option

Add a multi-line text option to the VHB-PCS product. PCS uses this to store and retrieve JSON as the product moves from cart to order.

💡

Data Returned by PCS

Configuration HTML: Well-formed HTML snippets with CSS tags describing the product configuration.
Design Identifier: A 36-character GUID (design key) uniquely tracking each product configuration.

Section 03

ERP System Integration Prerequisites

Custom IFRAME Hosted Page

The ERP platform must support a custom page hosting an IFRAME via the src attribute pointing to a third-party domain, e.g. https://build.blackinton.com.

Custom Page Script

The ERP platform must allow CDN/external JavaScript links. PCS uses postMessage for cross-origin communication, sending JSON product configuration data from the IFRAME to the host page.

Programmatic Control

The ERP system must provide programmatic control to create sales orders, add items, and manage transactional elements via API to support automation workflows.

Storing Additional Data

PCS POSTs JSON data in response to operations. The ERP system must persist this data — including Configuration HTML and Design Keys — as needed.

Section 04

How It Works

Product Configuration Services (PCS)

PCS delivers a responsive, intuitive experience by combining a custom product page/template, an HTML IFRAME element, and supporting JavaScript. A secure postMessage messaging system creates a safe communication pathway between your web application and the PCS IFRAME.

Users can browse the Blackinton catalog by category, search by style number or keywords, and configure products entirely within the embedded IFRAME. Dealer-specific injectable CSS enables custom branding.

Communications Integration

When a product configuration is completed, PCS raises a JavaScript event in your hosting page. Two key events must be declared:

JavaScript Events — Host Page
function pcs_ConfigurationCompleted(data) {
  // Called when visitor clicks "Add to Cart" or "Update Cart"
  // data = JSON object with configuration details including Design Key
}

function pcs_ConfigurationCancelled(data) {
  // Called when visitor clicks "Cancel" or "Back"
  // data = JSON object with configuration details
}

The Design Key

🔑

What is a Design Key?

A Design Key (DK) is a 36-character GUID that uniquely identifies a product configuration. Returned via pcs_ConfigurationCompleted — it must be saved persistently and is required for all future API order calls.

Key Rules

  • Always unique — represents style + configuration
  • Does not represent an order commitment
  • Must be saved using persistent storage
  • Required for all future API order calls

Lifetime & Validity

  • Stored indefinitely within your tenant
  • Blackinton may remove keys for invalid configurations
  • Validated at order placement — invalid keys will fail
  • All items on an order must have valid design keys
📦

What Blackinton Stores

Blackinton stores configuration data only. Cart quantities and retail pricing are not stored. You must provide quantity and retail pricing via the API when placing an order.

Section 05

IFRAME Embedment

The host page must include specific CSS, JavaScript, and the IFRAME element. A full-page width layout is strongly recommended.

📌

jQuery 3.7.1 or newer required

The hosting page must have jQuery loaded. It may already be present in your cart environment, or can be added explicitly to just the PCS page.

PCS Supporting JavaScript & CSS

Add the following to the <HEAD> section. Replace highlighted regions with your Tenant ID.

HEAD – PCS Core JS & CSS
<script
  src="//build.blackinton.com/api/YOUR-TENANT-ID/script/?filename=pcs-core.js"
  type="text/javascript" crossorigin="anonymous"></script>

<link rel="stylesheet"
  href="//build.blackinton.com/api/YOUR-TENANT-ID/css/?filename=pcs-core.css"
  type="text/css" crossorigin="anonymous"/>

Additional Required Script References

HEAD – Font Awesome CSS
<link rel="stylesheet"
  href="//cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/css/all.min.css"
  crossorigin="anonymous" referrerpolicy="no-referrer" />

IFRAME Element – Catalog Browsing

BODY – Catalog IFRAME
<div class="pcs-iframe-loader"></div>
<iframe id="pcs_iframe" name="pcs_iframe"
  src="//build.blackinton.com/YOUR-TENANT-ID/catalog/"
  class="pcs-iframe" scrolling="no" title="">
</iframe>
ParameterRequiredDescription
btn=XXXXOptionalCustom text for the action button, e.g. "Add to Cart". Appears next to the QTY field.
sl=true|falseOptionalRenders a "Save for Later" link. Default false. Fires pcs_ConfigurationCompleted when clicked.

IFRAME Element – Direct to Product

BODY – Product IFRAME
<div class="pcs-iframe-loader"></div>
<iframe id="pcs_iframe" name="pcs_iframe"
  src="//build.blackinton.com/YOUR-TENANT-ID/product/?style=B38"
  class="pcs-iframe" scrolling="no" title="">
</iframe>
ParameterRequiredDescription
style=XXXXOptionalValid Blackinton catalog style number, e.g. "B38". Loads that product directly.
btn=XXXXOptionalCustom button text, e.g. "Add to Cart", "Update Cart".
dk=XXXXOptionalDesign Key — pass this when editing an existing configuration.
qty=XXXXOptionalQuantity — typically used together with a dk value.
🚫

Do Not Cache PCS Scripts

Never copy or store PCS supporting scripts statically. They are delivered dynamically per API call, are tenant-specific, and can change at any time without notice.

Release to Production

Orders with Draft (DR) status must be released to production manually via Web Wizard at https://app.blackinton.com or programmatically via the API. Daily email notifications summarize all pending PCS draft orders.

Section 06

Integration Instructions

🪪

Integration Identifier (Tenant ID)

Blackinton provides a unique 36-digit GUID identifying your dealer integration. This is critical — integration cannot be completed without it. Contact Blackinton sales to register and obtain yours.

1

Include the PCS Core CSS File

Add to the <HEAD> section of your hosting page.

PCS CSS
<!-- PCS CSS -->
<link rel="stylesheet"
  href="//build.blackinton.com/api/YOUR-TENANT-ID/css/?filename=pcs-core.css"
  type="text/css" crossorigin="anonymous">
2

Include Common CSS (Font Awesome)

Add to the <HEAD> section. Used as-is — no changes needed.

Font Awesome CSS
<link rel="stylesheet"
  href="//cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/css/all.min.css"
  crossorigin="anonymous" referrerpolicy="no-referrer" />
3

Include the PCS Core JavaScript File

Add to the <HEAD> section. Replace the highlighted region with your Tenant ID.

PCS JavaScript
<!-- PCS JS -->
<script
  src="//build.blackinton.com/api/YOUR-TENANT-ID/script/?filename=pcs-core.js"
  type="text/javascript" crossorigin="anonymous"></script>
4

Add the IFRAME Container to the Page BODY

This HTML renders the PCS product configuration interface on your page.

BODY – Catalog IFRAME
<div class="pcs-iframe-loader"></div>
<iframe id="pcs_iframe" name="pcs_iframe"
  src="//build.blackinton.com/YOUR-TENANT-ID/catalog"
  class="pcs-iframe" scrolling="no" title="">
</iframe>
5

Optional: Navigate Directly to a Product Style

To bypass catalog browsing and load a specific product, use the product URL with a style parameter.

BODY – Direct Product IFRAME
<div class="pcs-iframe-loader"></div>
<iframe id="pcs_iframe" name="pcs_iframe"
  src="//build.blackinton.com/YOUR-TENANT-ID/product/?style=B38"
  class="pcs-iframe" scrolling="no" title="">
</iframe>
Section 07

Blackinton Web Wizard

Web Wizard (WW) is Blackinton's flagship B2B web application providing full access to order processing, tracking, and fulfillment. PCS transaction data can also be viewed and managed here.

🌐

Login URL

https://app.blackinton.com

Viewing & Submitting PCS Orders

Navigate to Orders → PCS tab to view draft PCS orders. Use the Action menu to View, Edit, Print, Submit, or Delete an order.

📋 Draft Orders (DR)

Transmitted to Blackinton but not yet in production. Visible in the PCS tab. Can be reviewed and submitted here.

✅ Submitted Orders (SU)

Fully submitted into the production workflow. Cannot be edited without reverting to Draft status first.

Section 08

Authentication – OAuth 2.0

All API requests require an OAuth 2.0 Bearer token included in every request header.

Authorization Header
Authorization: Bearer <YOUR-JWT-TOKEN>
🌐

Base API URL

https://api.blackinton.com/v1

Login – Obtain a JWT Token

POST

/Login/<TENANT-ID>/oauth2/v2/token

Authenticates and returns a JWT token used to access all API endpoints.

Request Body
{
  "ClientId":     "cdeb6084-a4f9-42c2-b6dc-11c8c965970c",
  "ClientSecret": "r1xIEqX4upJqadkCquec7nvAq",
  "GrantType":    "client_credentials"
}
FieldRequiredDescription
ClientIdRequired36-character GUID provided at application registration.
ClientSecretRequired25-character secret created during registration.
GrantTypeRequiredMust be client_credentials for app-to-app authentication.
200Returns token, refreshToken, expires, clientId
400Bad Request
401Unauthorized
429Too Many Requests

Refresh a JWT Token

POST

/Login/<TENANT-ID>/oauth2/v2/token/refresh

Refreshes an expired token. Both old token and refresh token are invalidated; new ones issued.

Request Body
{
  "ClientId":     "cdeb6084-a4f9-42c2-b6dc-11c8c965970c",
  "Token":        "<EXISTING-JWT-TOKEN>",
  "RefreshToken": "r1xIEqX4upJqadkCquec7nvAq",
  "GrantType":    "refresh_token"
}
Section 09

RESTful API – Products

Validate a Product Style

GET

/products/<style>.json

Validates a product style number and returns its short description.

https://api.blackinton.com/v1/products/b38.json
200{"style":"", "description":""}
400Bad Request
401Unauthorized
404Not Found
429Too Many Requests

Product Export

GET

/products/export?LastModifiedOn={YYYY-MM-DD}&categories=76&limit=400&offset=0

Returns a paginated list of products updated since the specified date, optionally filtered by category.

ParameterRequiredDescription
LastModifiedOnRequiredDate format YYYY-MM-DD. Returns products modified on or after this date.
categoriesOptionalComma-separated CategoryID values, e.g. 76,101,102.
limitOptionalMax records to return. Default and max: 400.
offsetOptionalRecords to skip from the start of the result set.
Section 10

RESTful API – Orders

Create an Order

POST

/orders.json

Creates a new order with either DR (Draft) or SU (Submitted) status.

Request Body – JSON Example (Full)
{
  "PcsOrderID": 641,
  "DealerPO": "12345",
  "CustomerPO": "K106639",
  "Status": "DR",
  "CreatedByLogon": "username",
  "CarrierAccount": "W691V3",
  "CarrierCode": "UPSN",
  "CarrierServiceCode": "03",
  "NotificationEmail": "[email protected]",
  "ShipAddress": {
    "Name":        "Providence Police Department",
    "Address1":    "536 Atwells Ave",
    "Address2":    "Suite 100",
    "City":        "Providence",
    "State":       "RI",
    "Postal":      "02909",
    "Country":     "US",
    "IsResidence": false
  },
  "ShipContact": {
    "Title":      "Chief",
    "First":      "John",
    "Middle":     "A",
    "Last":       "Smith",
    "Phone":      "4015551234",
    "Email":      "[email protected]",
    "Department": "Operations"
  },
  "Items": [
    {
      "DesignKey": "980549bc-6461-468c-88ee-8d8071f36343",
      "Price": "89.90",
      "Qty": 1
    }
  ]
}
FieldTypeRequiredNotes
Order
PcsOrderIDintegerOptionalExternal reference ID from the dealer's system. Stored for cross-reference but not used internally by PCS.
DealerPOstringRequiredDealer purchase order number. Alphanumeric, max 10 characters.
CustomerPOstringOptionalEnd-customer PO number. Max 25 characters.
StatusstringRequiredDR = Draft   SU = Submitted. Use DR to save without triggering production.
CreatedByLogonstringRequiredLogon of the user creating the order. Must be a valid PCS user with order-creation permission. Max 40 characters.
NotificationEmailstringOptionalOne or more email addresses for order status notifications. Separate multiple addresses with a semicolon (;). Max 80 characters per address.
Carrier
CarrierCodestringOptionalShipping carrier. Accepted values: FDXG (FedEx Ground), FDXE (FedEx Express), UPSN (UPS), USPS.
CarrierServiceCodestringOptionalCarrier service level code. Example: 03 = UPS Ground, 92 = FedEx Ground. Must be valid for the chosen CarrierCode.
CarrierAccountstringOptionalThird-party carrier account number to bill freight charges to. Max 25 characters.
ShipAddress
ShipAddress.NamestringOptionalRecipient or organization name. Max 60 characters.
ShipAddress.Address1stringRequiredPrimary street address. Max 50 characters. See Address Validation below.
ShipAddress.Address2stringOptionalSuite, floor, unit, or other secondary address line. Max 50 characters.
ShipAddress.CitystringRequiredCity name. Max 40 characters.
ShipAddress.StatestringRequiredState or province code. Must be valid for the given Country. Max 10 characters. See Address Validation below.
ShipAddress.PostalstringRequiredPostal / ZIP code. Format is validated against the expected pattern for the given country. Max 20 characters. See Address Validation below.
ShipAddress.CountrystringRequiredISO 3166-1 alpha-2 country code (e.g. US, CA). Must exist in the PCS country reference table. See Address Validation below.
ShipAddress.IsResidencebooleanOptionaltrue if shipping to a residential address. Carriers may apply a residential surcharge. Defaults to false.
ShipContact
ShipContact.TitlestringOptionalContact's title or honorific (e.g. Chief, Sgt). Max 25 characters.
ShipContact.FirststringOptionalContact's first name. Max 25 characters.
ShipContact.MiddlestringOptionalContact's middle name or initial. Max 25 characters. Send "" to omit.
ShipContact.LaststringRequiredContact's last name. Max 25 characters.
ShipContact.PhonestringOptionalContact phone number. Digits only, no formatting. Max 20 characters. Example: "4015551234".
ShipContact.EmailstringRequiredContact email address. Max 80 characters.
ShipContact.DepartmentstringOptionalDepartment or division within the organization. Max 50 characters. Send "" to omit.
Items
Items[].DesignKeystringRequired36-character GUID identifying the PCS product configuration. Obtained from the PCS configurator.
Items[].QtyintegerRequiredOrder quantity. Range: 1 to 999,999.
Items[].PricedecimalOptionalDealer-set retail price as a string-formatted decimal (e.g. "89.90"). Uses the configured suggested retail price if omitted.

Shipping Address Validation

All ShipAddress fields are validated server-side in a strict, sequential order before the order is accepted. The first failure immediately stops processing and returns an error — no further fields are checked until the reported error is corrected and the request is resubmitted.

ℹ️

Validation is always sequential

PCS checks fields in this order: Country → Address1 → City → Postal (presence) → Postal (format) → State (presence) → State–Country match. Correct each error one at a time and resubmit until the order is accepted.

Validation Flow

1
CountryShipAddress.Country
Must be a valid ISO 3166-1 alpha-2 code (e.g. US, CA) recognised by PCS. The country value is used to validate both the postal code format and the state/province in the steps that follow.
ERR 51007 if invalid
2
Address Line 1ShipAddress.Address1
Must not be null or empty.
ERR 51008 if blank
3
CityShipAddress.City
Must not be null or empty.
ERR 51009 if blank
4
Postal Code — PresenceShipAddress.Postal
Must not be null or empty.
ERR 51010 if blank
5
Postal Code — FormatShipAddress.Postal
The value is validated against the expected format for the given country (e.g. 5 digits for US, alphanumeric for CA). Leading/trailing spaces are ignored.
ERR 51022 if invalid
6
State / Province — PresenceShipAddress.State
Must not be null or empty.
ERR 51011 if blank
7
State / Province — Country MatchShipAddress.State
The state or province code must be a recognised value for the given country. For example, RI is valid for US, and ON is valid for CA — but not interchangeable between them.
ERR 51021 if mismatch
All checks passed — order proceeds to processing

Address Validation Error Code Reference

Error CodeFieldMessageHow to Fix
51007ShipAddress.CountryshipAddress.Country is invalidSupply a valid ISO 3166-1 alpha-2 code (e.g. US, CA). Three-letter codes, full country names, and unrecognised values are all rejected.
51008ShipAddress.Address1shipAddress.Address1 is requiredProvide a non-empty street address string.
51009ShipAddress.CityshipAddress.City is requiredProvide a non-empty city name.
51010ShipAddress.PostalshipAddress.Postal is requiredProvide a non-empty postal or ZIP code.
51022ShipAddress.PostalshipAddress.Postal format is invalid for the given CountryEnsure the postal code matches the expected format for the country supplied (e.g. 5 digits for US). Extra or missing digits, or letters in a numeric-only field, will trigger this error.
51011ShipAddress.StateshipAddress.State is requiredProvide a non-empty state or province code.
51021ShipAddress.StateshipAddress.State is invalid for the given CountryUse the correct abbreviation for the country supplied. State and province codes are country-specific — ON is a Canadian province and is not valid for US. Full state names are not accepted.

Country

Supply the country as a standard two-letter ISO code. PCS validates the code against a supported country list — if the code is not found, the entire address is rejected immediately and no further fields are evaluated.

✅ Valid Country Values

  • "Country": "US" — United States
  • "Country": "CA" — Canada
  • "Country": "GB" — United Kingdom
  • "Country": "AU" — Australia
  • "Country": "DE" — Germany

Always use the two-character uppercase ISO 3166-1 alpha-2 format.

❌ Invalid Country Values

  • "Country": "USA" — three-letter codes are not accepted
  • "Country": "United States" — full names are not accepted
  • "Country": "" — blank or null → ERR 51007
  • "Country": "XX" — unrecognised code → ERR 51007

State / Province

The state or province code is validated against the country supplied in the same request. The same code can be valid for one country and invalid for another — always pair the correct state code with its matching country.

✅ Valid State / Province Values

  • "State": "RI", "Country": "US" — Rhode Island
  • "State": "CA", "Country": "US" — California
  • "State": "TX", "Country": "US" — Texas
  • "State": "NY", "Country": "US" — New York
  • "State": "ON", "Country": "CA" — Ontario, Canada
  • "State": "BC", "Country": "CA" — British Columbia, Canada

❌ Invalid State / Province Values

  • "State": "ON", "Country": "US" — ON is Canadian, not a US state → ERR 51021
  • "State": "Rhode Island", "Country": "US" — full names not accepted → ERR 51021
  • "State": "ZZ", "Country": "US" — unrecognised code → ERR 51021
  • "State": "", "Country": "US" — blank → ERR 51011

Postal Code

The postal code is first checked for presence, then validated against the expected format for the country. Leading and trailing spaces are automatically ignored.

⚠️

Format is country-specific

Each country enforces its own postal format. For example, US ZIP codes must be 5 digits — 4 digits or any letters will fail. Canadian postal codes follow an alternating letter-digit pattern. Always use the format standard for the country you are shipping to.

✅ Valid Postal Code Examples

  • "Postal": "02909", "Country": "US" — 5-digit US ZIP
  • "Postal": "10001", "Country": "US" — New York City ZIP
  • "Postal": "90210", "Country": "US" — Beverly Hills ZIP
  • "Postal": "K1A 0A9", "Country": "CA" — Canadian postal code
  • "Postal": "M5G 2J3", "Country": "CA" — Toronto postal code

Leading/trailing whitespace is automatically trimmed before validation.

❌ Invalid Postal Code Examples

  • "Postal": "ABCDE", "Country": "US" — letters in a US ZIP → ERR 51022
  • "Postal": "9290", "Country": "US" — only 4 digits, 5 required → ERR 51022
  • "Postal": "029034", "Country": "US" — 6 digits, 5 required → ERR 51022
  • "Postal": "", "Country": "US" — blank → ERR 51010

End-to-End Address Examples

✅ Valid US Address

"ShipAddress": {
  "Name":        "Riverside Police Department",
  "Address1":    "4102 Orange St",
  "Address2":    "Suite 200",
  "City":        "Riverside",
  "State":       "CA",
  "Postal":      "92501",
  "Country":     "US",
  "IsResidence": false
}

All checks pass. US is a valid country, all required fields are present, 92501 is a valid 5-digit ZIP, and CA is a recognised US state.

✅ Valid Canadian Address

"ShipAddress": {
  "Name":        "Ottawa Police Service",
  "Address1":    "245 Elgin St",
  "City":        "Ottawa",
  "State":       "ON",
  "Postal":      "K2P 1L9",
  "Country":     "CA",
  "IsResidence": false
}

All checks pass. CA is a valid country, K2P 1L9 matches the Canadian postal format, and ON is a valid province for Canada.

❌ Invalid Country Code → ERR 51007

"ShipAddress": {
  "Name":    "Dallas Sheriff Office",
  "Address1": "133 N Riverfront Blvd",
  "City":    "Dallas",
  "State":   "TX",
  "Postal":  "75207",
  "Country": "USA"   ← must be 2-letter code
}

Fails at Step 1. "USA" is not a recognised country code. Use "US" instead. No other fields are checked until this is corrected.

❌ Postal Too Long → ERR 51022

"ShipAddress": {
  "Name":    "Springfield PD",
  "Address1": "800 E Monroe St",
  "City":    "Springfield",
  "State":   "IL",
  "Postal":  "627011",   ← 6 digits, US expects 5
  "Country": "US"
}

Fails at Step 5. US ZIP codes must be exactly 5 digits. Use "62701".

❌ State–Country Mismatch → ERR 51021

"ShipAddress": {
  "Name":    "Vancouver RCMP Detachment",
  "Address1": "2120 Cambie St",
  "City":    "Vancouver",
  "State":   "BC",    ← BC is a Canadian province
  "Postal":  "10001",
  "Country": "US"     ← but Country is set to US
}

Fails at Step 7. BC is not a US state. Either change Country to "CA" with a valid Canadian postal code, or use a valid US state code.

❌ Missing Required Field → ERR 51009

"ShipAddress": {
  "Name":    "Phoenix PD",
  "Address1": "620 W Washington St",
  "City":    "",       ← blank City
  "State":   "AZ",
  "Postal":  "85003",
  "Country": "US"
}

Fails at Step 3. City cannot be blank. Postal and State are not evaluated until this is corrected.

Other Order Endpoints

PATCH/orders/{id}.json

Update Order — Modify items or fields on a Draft (DR) order. Set "deleted": true on an item to remove it.

PATCH/orders/{id}.json

Submit Order — Change status DR → SU. Triggers production. All items re-validated.

{ "Status": "SU" }
GET/orders.json?status=DR&limit=100

Get Orders by Status — Returns paginated list. Values: DR, SU, CO, CA, SH, H.

GET/orders/{id}.json

Get Order by ID — Returns a single order object. No status restriction.

PATCH/orders/{id}.json?userLogon={logon}

Cancel Order — Sets status to CA. Order must be DR or SU.

{ "status": "CA" }
DELETE/orders/{id}.json?userLogon={logon}

Delete Order — Permanently deletes a Draft (DR) order. Submitted orders must revert to DR first.

Section 11

RESTful API – Design

GET/design/duplicate/{design-key}

Clone a Design — Creates a copy of an existing design and returns a new Design Key.

200{"newDesignKey":"..."}
GET/design/print/{design-key}

Print Design (PDF) — Returns a PDF of the design configuration details.

200Returns application/pdf file
GET/design/{design-key}.json

Get Design by Key — Returns full JSON details of a single design configuration.

200Single JSON object representing the design
Section 12

RESTful API – Catalog / Categories

GET

/catalogs/{code}.json

Returns a single catalog object including its full category structure.

https://api.blackinton.com/v1/catalogs/pcs.json
ParameterRequiredDescription
codeRequiredA valid catalog code, e.g. pcs
200Single JSON object representing the catalog and its category structure
400Bad Request
401Unauthorized
404Not Found
429Too Many Requests
500Internal System Error