Prodigi Print API

Are you a developer looking to integrate print on demand into your website or app?

The Prodigi Print API allows you to connect your favourite e-commerce platform, CMS or app to our print on demand fulfilment services.

The API is securely accessed over HTTPS and can only be used by authenticated clients. It's based on pragmatic RESTful principles making it easy to use with a wide variety of programming environments.

Using the API, you can place orders, get the live status of orders including delivery & tracking info and more.

Production
https://api.prodigi.es
Test
https://testapi.prodigi.es
Apply for API access

Authentication

All requests to the Print API must include the following:

Parameter Send as Example
API key HTTP auth header username 958CFE38-2355-4B86-BBDE27C17889C74C
API secret HTTP auth header password abc123456

In addition, you will be allocated a unique client code, which is required to identify your account for some API methods.

JSON or XML

The Prodigi Print API supports both JSON and XML request/response formats.

Make sure you set the appropriate Content-Type header in your JSON or XML request to receive a response in the same format: application/json or application/xml.

Multiple applications

If you use the Print API for multiple applications, then you should use the same API Key for all your apps. To distinguish between orders from different applications, we will issue a unique order source code for each of your applications. This order source code should be included in each Order placed through the API.

Trying out the API

Our test environment testapi.prodigi.es includes a test account that is open to all, and is pre-populated with a generic range of products.

Parameter Test account access
API key 735ef43f-c16e-4a04-9792-a2dbbcd5dd09
API secret s1mpl32015
ClientCode TESTUSER
ClientSourceCode TESTUSERCS

For a dedicated test account with your own product range, please apply for API access.

Orders

The Order object

An Order is a complex object containing all the information associated with any order placed through the Prodigi API. Complete Order objects are returned when retrieving an order, and you should POST a complete Order object when placing an order.

Those fields required when placing an order are marked below. However, it is also advised that you include as much of the optional data as your system allows.

All date/timestamps are formatted according to ISO 8601, e.g. 2014-07-09T10:01:35.

Field Required on POST? Description
OrderId required Your own system's order ID. Also referred to as ClientOrderId.
CICOrderId n/a The order ID on the Prodigi system.
ClientCode required Your unique client code.
ClientSourceCode required The unique client source code given to you. A source code represents a single site/app.
ShippingRetailPrice optional Your shipping retail price.
ShippingCostPrice n/a The Prodigi shipping cost price.
OrderStatus optional New, Processing or Shipped. An order can also be Cancelled or OnHold.
ShippingMethod optional Shipping Method (either Standard or Priority)
OrderDate required Date & time when the order was placed on your system. Used to calculate the estimated ship-by date.
ReceivedDate n/a Date the order was received in our system.
EstimatedShipByDate n/a Estimated ship by date calculated based on OrderDate. This will vary based on the agreed upon SLA.
EstimatedDeliveryByDate optional Estimated delivery date as promised to your customer.
ShippingAddress required An address object
Email optional
FirstName required
LastName required
CompanyName optional
AddressLine1 required
AddressLine2 optional
AddressLine3 optional
AddressLine4 optional
PostCode optional
City required
State optional County, state or region
TwoLetterCountryCode required A valid country code.
CountryName optional
LandLineTelephoneNo optional
MobileTelephoneNo optional
WorkTelephoneNo optional
BillingAddress required An address object
Email optional
FirstName required
LastName required
CompanyName optional
AddressLine1 required
AddressLine2 optional
AddressLine3 optional
AddressLine4 optional
PostCode optional
City required
State optional County, state or region
TwoLetterCountryCode required A valid country code.
CountryName optional
LandLineTelephoneNo optional
MobileTelephoneNo optional
WorkTelephoneNo optional
OrderItems required An array of one or more OrderItem objects.
OrderItemId required Your line item ID.
Title optional Title of the item (e.g. image title)
Description optional Product description, e.g. "Framed Canvas 400 X 500 mm with Black Frame".
Quantity required Quantity required.
CICProductCode required Prodigi product code.
ProductCode required Your product code.
ImageCode required Your image code.
ImageHeight required Height of the final image on the product (mm).
ImageWidth required Width of the final image on the product (mm).
UnitRetailPrice optional Your selling price to your customer.
UnitCostPrice n/a Prodigi cost price. Calculated once an order has been successfully placed.
ImageThumbnailPath required Fully qualified file path to a thumbnail jpeg of the image
Properties required An array of product properties, dependant on the product being ordered.
Name required Name of the property
Value required Value of the property
OrderPrintFiles required An array of print files.
FileName required Name of the print file with extension, e.g. filename.jpg
FilePath required Full URL (including filename) of the file to be printed.

Example

Show example Order object (JSON and XML formats).

Order object

{
  "OrderId":               "12345",
  "CICOrderId":            "67890",
  "ClientCode":            "TESTCODE",
  "ClientSourceCode":      "TESTSITE1",
  "ShippingRetailPrice":   5.00,
  "ShippingCostPrice":     5.00,
  "OrderStatus":           "New",
  "ShippingMethod":        "Standard",
  "OrderDate":             "2014-07-10T10:11:19.6428829+01:00",
  "ReceivedDate":          "2014-07-10T10:11:19.6438594+01:00",
  "EstimatedShipByDate":   "2014-07-10T10:11:19.6467891+01:00",
  "ExptectedDeliveryDate": "2014-07-10T10:11:19.6467891+01:00",
  "ShippingAddress": {
    "Email":                "[email protected]",
    "FirstName":            "James",
    "LastName":             "Old",
    "CompanyName":          "Prodigi",
    "AddressLine1":         "79 Station Parade",
    "AddressLine2":         "",
    "AddressLine3":         "",
    "AddressLine4":         "",
    "City":                 "Harrogate",
    "State":                "North Yorkshire",
    "PostCode":             "HG1 1ST",
    "TwoLetterCountryCode": "UK",
    "CountryName":          "United Kingdom",
    "LandLineTelephoneNo":  "0870 777 5 777",
    "MobileTelephoneNo":    "",
    "WorkTelephoneNo":      "0870 777 5 777"
  },
  "BillingAddress": {
    "Email":                "[email protected]",
    "FirstName":            "James",
    "LastName":             "Old",
    "CompanyName":          "Prodigi",
    "AddressLine1":         "79 Station Parade",
    "AddressLine2":         "",
    "AddressLine3":         "",
    "AddressLine4":         "",
    "City":                 "Harrogate",
    "State":                "North Yorkshire",
    "PostCode":             "HG1 1ST",
    "TwoLetterCountryCode": "UK",
    "CountryName":          "United Kingdom",
    "LandLineTelephoneNo":  "0870 777 5 777",
    "MobileTelephoneNo":    "",
    "WorkTelephoneNo":      "0870 777 5 777"
  },
  "OrderItems": [
    {
      "OrderItemId":         "1111",
      "Title":               "Waterlillies",
      "Description":         "AOD Medium Framed Canvas",
      "Quantity":            5,
      "CICProductCode":      "AODFC-0000",
      "ProductCode":         "C2",
      "ImageCode":           "IMG0000",
      "ImageHeight":         600,
      "ImageWidth":          600,
      "UnitRetailPrice":     40.99,
      "ImageThumbnailPath": "http://path.to/the-thumbnail/file.jpg",
      "Properties": [
        {
          "Name":  "FrameCode",
          "Value": "FC-200"
        },
        {
          "Name":  "CanvasCode",
          "Value": "PC"
        }
      ],
      "OrderPrintFiles": [
        {
          "FileName": "filename.jpg",
          "FilePath": "http://path.to/the-print-file/filename.jpg"
        }
      ]
    },
    {
      "OrderItemId":         "1112",
      "Title":               "Mona Lisa",
      "Description":         "Large Framed SL Paper",
      "Quantity":            5,
      "CICProductCode":      "LFSLP-9999",
      "ProductCode":         "XY121",
      "ImageCode":           "IMG1111",
      "ImageHeight":         400,
      "ImageWidth":          600,
      "UnitRetailPrice":     50.25,
      "ImageThumbnailPath": "http://path.to/the-thumbnail/file.jpg",
      "Properties": [
        {
          "Name":  "FrameCode",
          "Value": "FP-400"
        },
        {
          "Name":  "PaperCode",
          "Value": "SGPP"
        }
      ],
      "OrderPrintFiles": [
        {
          "FileName": "filename.jpg",
          "FilePath": "http://path.to/he-print-file/filename.jpg"
        }
      ]
    }
  ],
  "OrderNotes": [
    "Please mark for attn A. Smithee"
  ]
}
<OrderModel xmlns="http://schemas.datacontract.org/2004/07/CIC.Prodogi.WebAPIService.Models">
  <BillingAddress>
    <FirstName>James</FirstName>
    <LastName>Old</LastName>
    <CompanyName>Prodigi</CompanyName>
    <AddressLine1>79 Station Parade</AddressLine1>
    <AddressLine2></AddressLine2>
    <AddressLine3></AddressLine3>
    <AddressLine4></AddressLine4>
    <City>Harrogate</City>
    <State>North Yorkshire</State>
    <PostCode>HG1 1ST</PostCode>
    <CountryName>United Kingdom</CountryName>
    <TwoLetterCountryCode>UK</TwoLetterCountryCode>
    <Email>[email protected]</Email>
    <LandLineTelephoneNo>0870 777 5 777</LandLineTelephoneNo>
    <MobileTelephoneNo>0870 777 5 777</MobileTelephoneNo>
    <WorkTelephoneNo></WorkTelephoneNo>
  </BillingAddress>
  <CICOrderId>67890</CICOrderId>
  <ClientCode>TESTCODE</ClientCode>
  <ClientSourceCode>TESTSITE1</ClientSourceCode>
  <EstimatedShipByDate>2014-07-10T10:11:19.6467891+01:00</EstimatedShipByDate>
  <ExptectedDeliveryDate>2014-07-10T10:11:19.6467891+01:00</ExptectedDeliveryDate>
  <OrderId>12345</OrderId>
  <OrderDate>2014-07-10T10:11:19.6428829+01:00</OrderDate>
  <OrderItems>
    <OrderItemModel>
      <OrderItemId>1111</OrderItemId>
      <CICProductCode>AODFC-0000</CICProductCode>
      <ProductCode>C2</ProductCode>
      <Description>AOD Medium Framed Canvas</Description>
      <ImageCode>IMG0000</ImageCode>
      <ImageWidth>600</ImageWidth>
      <ImageHeight>600</ImageHeight>
      <ImageThumbnailPath>http://path.to/the-thumbnail/file.jpg</ImageThumbnailPath>
      <OrderPrintFiles>
        <OrderPrintFileModel>
          <FileName>filename.jpg</FileName>
          <FilePath>http://path.to/he-print-file/filename.jpg</FilePath>
        </OrderPrintFileModel>
      </OrderPrintFiles>
      <Properties>
        <PropertyValueModel>
          <Name>FrameCode</Name>
          <Value>FC-200</Value>
        </PropertyValueModel>
        <PropertyValueModel>
          <Name>CanvasCode</Name>
          <Value>PC</Value>
        </PropertyValueModel>
      </Properties>
      <Quantity>1</Quantity>
      <Title>Waterlillies</Title>
      <UnitRetailPrice>40.99</UnitRetailPrice>
    </OrderItemModel>
    <OrderItemModel>
      <CICProductCode>LFSLP-9999</CICProductCode>
      <ProductCode>FP3</ProductCode>
      <Description>Large Framed SL Paper</Description>
      <ImageCode>IMG1111</ImageCode>
      <ImageHeight>400</ImageHeight>
      <ImageThumbnailPath>http://path.to/the-thumbnail/file.jpg</ImageThumbnailPath>
      <ImageWidth>600</ImageWidth>
      <OrderItemId>1112</OrderItemId>
      <OrderPrintFiles>
        <OrderPrintFileModel>
          <FileName>filename.jpg</FileName>
          <FilePath>http://path.to/he-print-file/filename.jpg</FilePath>
        </OrderPrintFileModel>
      </OrderPrintFiles>
      <Properties>
        <PropertyValueModel>
          <Name>FrameCode</Name>
          <Value>FP-400</Value>
        </PropertyValueModel>
        <PropertyValueModel>
          <Name>PaperCode</Name>
          <Value>SGPP</Value>
        </PropertyValueModel>
      </Properties>
      <Quantity>1</Quantity>
      <Title>Mona Lisa</Title>
      <UnitRetailPrice>50.25</UnitRetailPrice>
    </OrderItemModel>
  </OrderItems>
  <OrderNotes xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
    <d2p1:string>Please mark for attn A. Smithee</d2p1:string>
  </OrderNotes>
  <OrderStatus>New</OrderStatus>
  <ReceivedDate>2014-07-10T10:11:19.6438594+01:00</ReceivedDate>
  <ShippingAddress>
    <FirstName>James</FirstName>
    <LastName>Old</LastName>
    <CompanyName>Prodigi</CompanyName>
    <AddressLine1>79 Station Parade</AddressLine1>
    <AddressLine2></AddressLine2>
    <AddressLine3></AddressLine3>
    <AddressLine4></AddressLine4>
    <City>Harrogate</City>
    <State>North Yorkshire</State>
    <PostCode>HG1 1ST</PostCode>
    <CountryName>United Kingdom</CountryName>
    <TwoLetterCountryCode>UK</TwoLetterCountryCode>
    <Email>[email protected]</Email>
    <LandLineTelephoneNo>0870 777 5 777</LandLineTelephoneNo>
    <MobileTelephoneNo>0870 777 5 777</MobileTelephoneNo>
    <WorkTelephoneNo></WorkTelephoneNo>
  </ShippingAddress>
  <ShippingCostPrice>5</ShippingCostPrice>
  <ShippingMethod>Standard</ShippingMethod>
  <ShippingRetailPrice>5</ShippingRetailPrice>
</OrderModel>

Place an order

POST /Order

For placing an order a complete Order object needs to be supplied. It is good practice to include as many of the optional parameters as you can.

Request

newOrder required An Order object, with all required fields included.

Sample response

A complete Order object, with all fields populated (CinCOrderID, ShippingCostPrice, etc.).

Retrieve an order

GET /Order?clientOrderId={clientOrderId}

Retrieve an order's details, based on your own order reference or ID.

Request

clientOrderId required Your order reference/ID.

Sample response

Get an order's status

GET /OrderStatus?clientOrderId={clientOrderId}

Retrieve the status of an order. If the order is Shipped, the repsonse includes a ShipmentInfo object, containing tracking number and related information.

The sequence is as follows:

  • New
  • Processing
  • Shipped

In addition, an order may have a status of Cancelled or OnHold.

Request

clientOrderId required Your order reference/ID.

Sample response

{
 "ClientOrderId":       "12345",
 "CICOrderId":          "67890",
 "OrderStatus":         "Shipped",
 "EstimatedShipByDate": "10/10/2014",
 "ShipmentInfo": {
  "ShipmentDate":    "10/10/2014",
  "TrackingNo":      "ABC123",
  "DeliveryCompany": "Royal Mail",
  "ServiceType":     "Standard",
  "ShippingCost":    5.00
 }
}
<OrderStatusModel xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/CIC.Prodogi.WebAPIService.Models">
 <CICOrderId>67890</CICOrderId>
 <ClientOrderId>12345</ClientOrderId>
 <EstimatedShipByDate>10/10/2014</EstimatedShipByDate>
 <OrderStatus>Shipped</OrderStatus>
 <ShipmentInfo>
  <DeliveryCompany>Royal Mail</DeliveryCompany>
  <ServiceType>Standard</ServiceType>
  <ShipmentDate>10/10/2014</ShipmentDate>
  <ShippingCost>5.00</ShippingCost>
  <TrackingNo>ABC123</TrackingNo>
 </ShipmentInfo>
</OrderStatusModel>

Cancel an order

DELETE /Order?clientOrderId={clientOrderId}&comment={comment}

An order can only be cancelled if its status is New. For orders that have progressed further, please contact [email protected]. Once an order has shipped, it cannot be cancelled.

You can re-submit an order with the same ClientOrderId as long as the previous order with the same ID has been cancelled. For example, if an order was originally submitted with incorrect information, it can be cancelled and then re-submitted using the same ClientOrderId.

Request

clientOrderId required Your order reference/ID.
comment optional Optional short note about this cancellation.

Sample response

A 200 OK HTTP status code.

Shipping

Get shipping cost

POST /ShippingCost

Retrieve the shipping price for a basket of products.

Request

{
 "ClientSourceCode": "ABC123",
 "CountryCode": "UK",
 "ProductsAndQuantities": [
  {
   "ProductCode": "AODFC-0000",
   "Quantity": 1
  },
  {
   "ProductCode": "LFSLP-9999",
   "Quantity": 2
  }
 ]
}
<ShippingCostModel xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/CIC.Prodogi.WebAPIService.Models">
  <ClientSourceCode>ABC123</ClientSourceCode>
  <CountryCode>UK</CountryCode>
  <ProductsAndQuantities>
    <ProductAndQuantityModel>
      <ProductCode>AODFC-0000</ProductCode>
      <Quantity>1</Quantity>
    </ProductAndQuantityModel>
    <ProductAndQuantityModel>
      <ProductCode>LFSLP-9999</ProductCode>
      <Quantity>2</Quantity>
    </ProductAndQuantityModel>
  </ProductsAndQuantities>
</ShippingCostModel>

Sample response

{
 19.99
}
<decimal xmlns="https://schemas.microsoft.com/2003/10/Serialization/">19.99</decimal>

List delivery countries

GET /Countries

Retrieve a look-up list of countries and their codes. This is a utility operation, useful to ensure correct the country code is being supplied when placing an order.

Request

No arguments required.

Sample response

[
 {
  "CountryCode": "UK",
  "CountryName": "United Kingdom"
 },
 {
  "CountryCode": "US",
  "CountryName": "United States"
 }
]
<ArrayOfCountryModel xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/CIC.Prodogi.WebAPIService.Models">
 <CountryModel>
  <CountryCode>UK</CountryCode>
  <CountryName>United Kingdom</CountryName>
 </CountryModel>
 <CountryModel>
  <CountryCode>US</CountryCode>
  <CountryName>United States</CountryName>
 </CountryModel>
</ArrayOfCountryModel>

List delivery companies

GET /DeliveryCompanies

Get a look-up list of available delivery companies and their tracking URL.

Request

No arguments required.

Sample response

[
 {
  "Name":        "Royal Mail",
  "TrackingURL": "http://www.royalmail.com/track-trace"
 },
 {
  "Name":        "FedEx UK",
  "TrackingURL": "http://www.fedexuk.net/accounts/track.aspx"
 }
]
<ArrayOfDeliveryCompanyModel xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/CIC.Prodogi.WebAPIService.Models">
 <DeliveryCompanyModel>
  <Name>Royal Mail</Name>
  <TrackingURL>http://www.royalmail.com/track-trace</TrackingURL>
 </DeliveryCompanyModel>
 <DeliveryCompanyModel>
  <Name>FedEx UK</Name>
  <TrackingURL>http://www.fedexuk.net/accounts/track.aspx</TrackingURL>
 </DeliveryCompanyModel>
</ArrayOfDeliveryCompanyModel>

Products

Get available products

GET /Products?clientCode={clientCode}

Retrieve all products that are available on your account.

When placing an order, the product for every line item has to be one from this list. In addition, some of the products we manufacturer are complex, and these have extra Product Properties that must also be included with each line item.

Request

clientCode required Your unique client code.

Sample response

[
 {
  "CICProductCode":    "AODFC-0000",
  "ProductTypeName":   "AODFramedCanvas",
  "SLAShipByInNoDays": 5,
  "ProductCostModel":  "FixedCost",
  "UnitCostPrice":     30.00,
  "Description":       "AOD Medium Framed Canvas"
 },
 {
  "CICProductCode":    "LFSLP-9999",
  "ProductTypeName":   "FramedPaper",
  "SLAShipByInNoDays": 6,
  "ProductCostModel":  "FixedCost",
  "UnitCostPrice":     32.00,
  "Description":       "Large Framed SL Paper"
 }
]
<ArrayOfProductModel xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/CIC.Prodogi.WebAPIService.Models">
 <ProductModel>
  <CICProductCode>AODFC-0000</CICProductCode>
  <Description>AOD Medium Framed Canvas</Description>
  <ProductCostModel>FixedCost</ProductCostModel>
  <ProductTypeName>AODFramedCanvas</ProductTypeName>
  <SLAShipByInNoDays>5</SLAShipByInNoDays>
  <UnitCostPrice>30.00</UnitCostPrice>
 </ProductModel>
 <ProductModel>
  <CICProductCode>LFSLP-9999</CICProductCode>
  <Description>Large Framed SL Paper</Description>
  <ProductCostModel>FixedCost</ProductCostModel>
  <ProductTypeName>FramedPaper</ProductTypeName>
  <SLAShipByInNoDays>6</SLAShipByInNoDays>
  <UnitCostPrice>32.00</UnitCostPrice>
 </ProductModel>
</ArrayOfProductModel>

See a product's properties

GET /ProductProperties?cicProductCode={cicProductCode}

Retrieve all product-specific property definitions.

Due to the complexity of our print products, some require additional Product Properties to be sent with each line item. This may include a specific paper type, frame colour, or the image dimensions for example. This API method returns all the properties associated with a particular product.

Some of these properties will be required within an Order's line item, as indicated by the IsMandatory attribute.

Product Properties should be included in an Order as an array of name:value pairs. See the Order object example for the exact formatting.

Request

cicProductCode required The product's unique code.

Sample response

[
 {
  "PropertyName": "FrameCode",
  "IsMandatory":  true,
  "DataType":     "String",
  "Example":      "FC-200"
 },
 {
  "PropertyName": "ImageWidth",
  "IsMandatory":  true,
  "DataType":     "Integer",
  "Example":      "600"
 },
 {
  "PropertyName": "ImageHeight",
  "IsMandatory":  true,
  "DataType":     "Integer",
  "Example":      "400"
 }
]
<ArrayOfProductTypePropertyModel xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/CIC.Prodogi.WebAPIService.Models">
 <ProductTypePropertyModel>
  <DataType>String</DataType>
  <Example>FC-200</Example>
  <IsMandatory>true</IsMandatory>
  <PropertyName>FrameCode</PropertyName>
 </ProductTypePropertyModel>
 <ProductTypePropertyModel>
  <DataType>Integer</DataType>
  <Example>600</Example>
  <IsMandatory>true</IsMandatory>
  <PropertyName>ImageWidth</PropertyName>
 </ProductTypePropertyModel>
 <ProductTypePropertyModel>
  <DataType>Integer</DataType>
  <Example>400</Example>
  <IsMandatory>true</IsMandatory>
  <PropertyName>ImageHeight</PropertyName>
 </ProductTypePropertyModel>
</ArrayOfProductTypePropertyModel>

Get all product types

GET /ProductTypes?clientCode={clientCode}

Retrieve all product types available in your account.

Request

clientCode required Your unique client code.

Sample response

[
 {
  "ProductTypeId":   3,
  "ProductTypeName": "AODFramedPrint",
  "Properties": [
   {
    "PropertyName": "FrameCode",
    "IsMandatory":  true,
    "DataType":     "String",
    "Example":      "FP-400"
   },
   {
    "PropertyName": "PaperCode",
    "IsMandatory":  true,
    "DataType":     "String",
    "Example":      "SGPP"
   }
  ]
 },
 {
  "ProductTypeId":   4,
  "ProductTypeName": "AODFramedCanvas",
  "Properties": [
   {
    "PropertyName": "FrameCode",
    "IsMandatory":  true,
    "DataType":     "String",
    "Example":      "FC-200"
   },
   {
    "PropertyName": "CanvasCode",
    "IsMandatory":  true,
    "DataType":     "String",
    "Example":      "PC"
   }
  ]
 }
]
<ArrayOfProductTypeModel xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/CIC.Prodogi.WebAPIService.Models">
 <ProductTypeModel>
  <ProductTypeId>3</ProductTypeId>
  <ProductTypeName>AODFramedPrint</ProductTypeName>
  <Properties>
   <ProductTypePropertyModel>
    <DataType>String</DataType>
    <Example>FP-400</Example>
    <IsMandatory>true</IsMandatory>
    <PropertyName>FrameCode</PropertyName>
   </ProductTypePropertyModel>
   <ProductTypePropertyModel>
    <DataType>String</DataType>
    <Example>SGPP</Example>
    <IsMandatory>true</IsMandatory>
    <PropertyName>PaperCode</PropertyName>
   </ProductTypePropertyModel>
   </Properties>
 </ProductTypeModel>
 <ProductTypeModel>
  <ProductTypeId>4</ProductTypeId>
  <ProductTypeName>AODFramedCanvas</ProductTypeName>
  <Properties>
   <ProductTypePropertyModel>
    <DataType>String</DataType>
    <Example>FC-200</Example>
    <IsMandatory>true</IsMandatory>
    <PropertyName>FrameCode</PropertyName>
   </ProductTypePropertyModel>
   <ProductTypePropertyModel>
    <DataType>String</DataType>
    <Example>PC</Example>
    <IsMandatory>true</IsMandatory>
    <PropertyName>CanvasCode</PropertyName>
   </ProductTypePropertyModel>
  </Properties>
 </ProductTypeModel>
</ArrayOfProductTypeModel>

Account

Retrieve your order sources

GET /ClientSources?clientCode={clientCode}

Get a list of all active stores/sites on your account.

Request

clientCode required Your unique client code.

Sample response

[
  {
    "SourceCode":                  "TESTSITE1",
    "SourceName":                  "Test web store 1",
    "ClientName":                  "Any Art Ltd",
    "Status":                      "Active",
    "FirstLiveDate":               "2014-07-09T10:36:44.4408869+01:00",
    "SourceType":                  "Website",
    "ShipmentManifestEnabled":     true,
    "NewOrderNotificationEnabled": true
  },
  {
    "SourceCode":                  "TESTSITE2",
    "SourceName":                  "Test web store 2",
    "ClientName":                  "Any Art Ltd",
    "Status":                      "Active",
    "FirstLiveDate":               "2014-07-09T10:36:44.4408869+01:00",
    "SourceType":                  "Website",
    "ShipmentManifestEnabled":     true,
    "NewOrderNotificationEnabled": true
  }
]
<ArrayOfClientSourceModel xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/CIC.Prodogi.WebAPIService.Models">
  <ClientSourceModel>
    <ClientName>Any Art Ltd</ClientName>
    <FirstLiveDate>2014-07-09T10:36:44.4408869+01:00</FirstLiveDate>
    <NewOrderNotificationEnabled>true</NewOrderNotificationEnabled>
    <ShipmentManifestEnabled>true</ShipmentManifestEnabled>
    <SourceCode>TESTSITE1</SourceCode>
    <SourceName>Test web store 1</SourceName>
    <SourceType>Website</SourceType>
    <Status>Active</Status>
  </ClientSourceModel>
  <ClientSourceModel>
    <ClientName>Any Art Ltd</ClientName>
    <FirstLiveDate>2014-07-09T10:36:44.4408869+01:00</FirstLiveDate>
    <NewOrderNotificationEnabled>true</NewOrderNotificationEnabled>
    <ShipmentManifestEnabled>true</ShipmentManifestEnabled>
    <SourceCode>TESTSITE2</SourceCode>
    <SourceName>Test web store 2</SourceName>
    <SourceType>Website</SourceType>
    <Status>Active</Status>
  </ClientSourceModel>
</ArrayOfClientSourceModel>

Get in touch

To find out more about Prodigi and what we do, visit the Prodigi website.