Notes

All requests in Production will be over HTTPS, and HTTP for QA.

All requests should be UTF-8 encoded.

Canopy uses keyed-hash message authentication to authenticate trusted systems.
Clients of Canopy may have any number of different systems with which to communicate with Canopy.


The ERP System details are set up within the Canopy environment by a Canopy Administrator, and include:
System Account Key A UUID representing the communicating system.
Secret Keys Any number of secret keys to calculate a Message Authentication Code.
De-duplification Determines whether the responses provided are de-duplified.
Request Limit The number of requests per month an account may make.
Email Notification Any email addresses to be notified when certain triggers occur, such as the account request limit being reached.

By default the Canopy REST API uses the HMAC SHA-256 hash function, although we are able to alter the hash function per System Account if needed.

Every request is authenticated in using the following request parameters:
account The UUID representing the System Account.
timestamp A timestamp string formatted in ISO Date format representing the time the request was generated. This time is tested against the current time on the server, and must be within a time window of five minutes to guarantee no reuse of signatures.

See the following for the ISO Date format:
http://www.w3.org/TR/xmlschema-2/#dateTime
http://www.iso.org/iso/catalogue_detail?csnumber=40874
signature A one-time generated authentication code, generated by combining your account and timestamp as the “message”, and generating the “digest” or signature from the cryptographic hash function, HMAC SHA-256 in BASE64 encoding.
If the request authentication fails, an error will be returned as a HTTP code, and optionally also an error message.

Email addresses can be given to be notified on the following events:

70% 70 percent of the monthly limit has been reached.
90% 90 percent of the monthly limit has been reached.
100% 100 percent of the monthly limit has been reached.
The testing environment URL is :
https://beta.canopyapp.net

See your Canopy representative to organise a test account.
All dates are expected to be in the ISO Date Format, specified here:
http://www.w3.org/TR/xmlschema-2/#dateTime
http://www.w3.org/TR/NOTE-datetime
http://www.iso.org/iso/catalogue_detail?csnumber=40874
Example:
2018-11-20T08:03:10.599+11:00
All responses from Canopy will use standard HTTP codes. As such the following errors will be possible:
400 Bad Request
401 Unauthorized Request
402 Payment Required
403 Request Forbidden
404 Object Not Found
405 Request Not Acceptable
500 Internal Server Error
All requests must specify the Business Object type in the URI using the following pattern:
https://api.canopyapp.net/api/erp/[Business Object Name]/[Identifier].[Extension].

Where:
Business Object Name The name of the Business Object.
e.g. “Product”, “Media”, etc.
See the Request methods below for the complete list of interfaces.
Identifier The unique identifier of the Business Object, most commonly the UUID value of that object which is determined by Canopy.
For LIST and SEARCH requests, this “request part” must be absent.
See the Request methods below for the complete list of interfaces.
Extension The format the request body is using, and the format the request would like to receive as a response.
e.g. “xml”, “json”, “sc”, etc
See the Extension Types below for the complete list of interfaces.


All requests utilise HTTP Request Method types to specify the action to be taken with the Business Object:
OPTIONS Default action implementing Access Control Policies.
POST Create a new Business Object
PUT Update an existing Business Object
DELETE Archive an existing Business Object
GET Retrieve an existing Business Object or list of Business Objects
All requests may specify the extension type - the format the request body is using, and the format the request would like to receive as a response. The default extension type is xml.
xml XML
http://www.w3.org/XML/
json JSON
http://www.json.com/
http://tools.ietf.org/html/rfc4627
plist Apple Property List
https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man5/plist.5.html
sc SproutCore
http://sproutcore.com/
The following table specifies the available actions for each Business Object:
  Search
(includes sort, search, batch)
Retrieve Create Update Archive
Brand
Range
Product
Media
Offer
Recipe
Swatch
Campaign
Jobs


As all REST API request must include the account,timestamp, and signature parameters in accordance with the authentication requirements of the service, these parameters have been omitted from the Example Requests below for simplicity.

All the below endpoints support schema requests. By adding schema=true to the url, the api application will respond with the schema in the format requested.

For example the following URL will repond with the below result:

https://api.canopyapp.net/api/erp/Product/XXXXXXX-XXXXX-XXXXXXX-XXXX-XXXXXXXXXXX.xml?signature=XXXXXXX=&account=XXXXXXXXX×tamp=XXXXXX&schema=true

Result Schema




This is an Index or Search of the Brand library, with optional batched results, optional search qualification, optional sort orderings.

Details

URL Structure https://api.canopyapp.net/api/erp/Brand.<format>?batchSize=<batchSize>&batch=<batch>&qualifier=<qualifier>&sort=<sort>
Version 1.0
Method GET

Parameters

account
required
The System Account Code
timestamp
required
The request timestamp
signature
required
The generated authentication code for this request
batchSize
optional
Number of Brands in each batch
batch
optional
The batch to include in the response
qualifier
optional
A simple qualification on the Brand objects
sort
optional
A comma delimited list of sort criteria - left hand side is the Brand attribute, right hand side the sort direction.

Example Request

GET https://api.canopyapp.net/api/erp/Brand.json
Request
[Empty Request Body]
Response

[

    {
        "id": "b79f562d-80a4-4620-b75a-2df5b75422af",
        "type": "Brand",
        "canopyPublic": null,
        "descr": "In ancient Greek mythology, ambrosia (Greek: ἀμβροσία)...",
        "isGenericBrand": null,
        "name": "Ambosia",
        "privateLabel": null,
        "uuid": "b79f562d-80a4-4620-b75a-2df5b75422af",
        "productRanges": [
            {
                "id": "8567d3ad-080a-4743-b762-0620313103dc",
                "type": "ProductRange",
                "department": null,
                "descr": "",
                "name": "Ambrosia Puds",
                "uuid": "8567d3ad-080a-4743-b762-0620313103dc"
            }
        ]
    },
    {
        "id": "7fe1e0c9-fece-4b96-b648-0337c5fbb447",
        "type": "Brand",
        "canopyPublic": null,
        "descr": "Arnott's 123",
        "isGenericBrand": null,
        "name": "Arnott's",
        "privateLabel": null,
        "uuid": "7fe1e0c9-fece-4b96-b648-0337c5fbb447",
        "productRanges": [
            {
                "id": "3b6a829a-e395-4b4a-bdf9-9ea9410b12da",
                "type": "ProductRange",
                "department": null,
                "descr": "",
                "name": "Assorted Biscuits",
                "uuid": "3b6a829a-e395-4b4a-bdf9-9ea9410b12da"
            },
            {
                "id": "3d008ac6-facf-430b-98df-78fcd6591b2c",
                "type": "ProductRange",
                "department": "Bakery",
                "descr": null,
                "name": "Cream Biscuits",
                "uuid": "3d008ac6-facf-430b-98df-78fcd6591b2c"
            }
        ]
    },
    {
        "id": "4be37da3-6bf1-456a-a66f-907a8215f0ab",
        "type": "Brand",
        "canopyPublic": null,
        "descr": "asdfsadf",
        "isGenericBrand": null,
        "name": "Berri",
        "privateLabel": null,
        "uuid": "4be37da3-6bf1-456a-a66f-907a8215f0ab",
        "productRanges": [
            {
                "id": "e07d0b1e-019b-4f30-8103-f53836990044",
                "type": "ProductRange",
                "department": null,
                "descr": "",
                "name": "2.4 Litre Fruit Juice",
                "uuid": "e07d0b1e-019b-4f30-8103-f53836990044"
            }
        ]
    }
]

				

Brand Index / Search Schema

{
    "name": "Brand",
    "properties": {
        "name": {
            "optional": false,
            "type": "string",
            "minLength": 1,
            "maxLength": 100
        },
        "descr": {
            "optional": true,
            "type": "string"
        },
        "productRanges": {
            "name": {
                "optional": false,
                "type": "string",
                "minLength": 1,
                "maxLength": 100
            },
            "descr": {
                "optional": true,
                "type": "string"
            },
            "department": {
                "optional": true,
                "type": "string",
                "maxLength": 100
            },
            "uuid": {
                "optional": true,
                "type": "string",
                "maxLength": 100
            }
        },
        "canopyPublic": {
            "optional": true,
            "type": "string",
            "maxLength": 1
        },
        "isGenericBrand": {
            "optional": true,
            "type": "string",
            "maxLength": 1
        },
        "uuid": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "privateLabel": {
            "optional": true,
            "type": "string",
            "maxLength": 1
        }
    }
}


Retrieve an existing Brand in Canopy

Details

URL Structure https://api.canopyapp.net/api/erp/Brand/identifier.format
Version 1.0
Method POST
Request Body Empty

Parameters

account
required
The System Account Code
timestamp
required
The request timestamp
signature
required
The generated authentication code for this request

Example Request

GET https://api.canopyapp.net/api/erp/Brand/b79f562d-80a4-4620-b75a-2df5b75422af.json
Request
[Empty Request Body]
Response
{

    "id": "b79f562d-80a4-4620-b75a-2df5b75422af",
    "type": "Brand",
    "canopyPublic": null,
    "descr": "In ancient Greek mythology, ambrosia (Greek: ἀμβροσία)...",
    "isGenericBrand": null,
    "name": "Ambosia",
    "privateLabel": null,
    "uuid": "b79f562d-80a4-4620-b75a-2df5b75422af",
    "productRanges": [
        {
            "id": "8567d3ad-080a-4743-b762-0620313103dc",
            "type": "ProductRange",
            "department": null,
            "descr": "",
            "name": "Ambrosia Puds",
            "uuid": "8567d3ad-080a-4743-b762-0620313103dc"
        }
    ]

}
				

Brand Retrieve Schema

{
    "name": "Brand",
    "properties": {
        "name": {
            "optional": false,
            "type": "string",
            "minLength": 1,
            "maxLength": 100
        },
        "descr": {
            "optional": true,
            "type": "string"
        },
        "productRanges": {
            "name": {
                "optional": false,
                "type": "string",
                "minLength": 1,
                "maxLength": 100
            },
            "descr": {
                "optional": true,
                "type": "string"
            },
            "department": {
                "optional": true,
                "type": "string",
                "maxLength": 100
            },
            "uuid": {
                "optional": true,
                "type": "string",
                "maxLength": 100
            }
        },
        "canopyPublic": {
            "optional": true,
            "type": "string",
            "maxLength": 1
        },
        "isGenericBrand": {
            "optional": true,
            "type": "string",
            "maxLength": 1
        },
        "uuid": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "privateLabel": {
            "optional": true,
            "type": "string",
            "maxLength": 1
        }
    }
}


Create a new Brand in Canopy

Details

URL Structure https://api.canopyapp.net/api/erp/Brand/Identifier.format
Version 1.0
Method POST
Request Body A graph of the Brand to be created in the format given. Attributes and to-one relationships must match the schema below.

Parameters

account
required
The System Account Code
timestamp
required
The request timestamp
signature
required
The generated authentication code for this request

Example Request

POST https://api.canopyapp.net/api/erp/Brand.json
Request
{
    "type": "Brand",
    "canopyPublic": null,
    "descr": "Brand X Description",
    "id": null,
    "isGenericBrand": "Y",
    "name": "Brand X",
    "privateLabel": null,
    "uuid": null
}
                
Response
{
    "id": "fd10c84f-8cd2-4c01-9571-8274edb246cd",
    "type": "Brand",
    "canopyPublic": null,
    "descr": "Brand X Description",
    "isGenericBrand": "Y",
    "name": "Brand X",
    "privateLabel": null,
    "uuid": "fd10c84f-8cd2-4c01-9571-8274edb246cd"
}

				

Brand Create Schema

{
    "name": "Brand",
    "properties": {
        "descr": {
            "optional": true,
            "type": "string"
        },
        "privateLabel": {
            "optional": true,
            "type": "string",
            "maxLength": 1
        },
        "isGenericBrand": {
            "optional": true,
            "type": "string",
            "maxLength": 1
        },
        "name": {
            "optional": false,
            "type": "string",
            "minLength": 1,
            "maxLength": 100
        }
    }
}


Update an existing Brand in Canopy

Details

URL Structure https://api.canopyapp.net/api/erp/Brand/Identifier.format
Version 1.0
Method PUT
Request Body A graph of the Brand to be updated in the format given. Attributes and to-one relationships must match the schema below.

Parameters

account
required
The System Account Code
timestamp
required
The request timestamp
signature
required
The generated authentication code for this request

Example Request

PUT https://api.canopyapp.net/api/erp/Brand/fd10c84f-8cd2-4c01-9571-8274edb246cd.json
Request
{
    "id": "fd10c84f-8cd2-4c01-9571-8274edb246cd",
    "type": "Brand",
    "canopyPublic": null,
    "descr": "Brand X New Description",
    "isGenericBrand": "N",
    "name": "Brand X",
    "privateLabel": null,
    "uuid": "fd10c84f-8cd2-4c01-9571-8274edb246cd"
}
                
Response
{
    "id": "fd10c84f-8cd2-4c01-9571-8274edb246cd",
    "type": "Brand",
    "canopyPublic": null,
    "descr": "Brand X New Description",
    "isGenericBrand": null,
    "name": "Brand X",
    "privateLabel": "N",
    "uuid": "fd10c84f-8cd2-4c01-9571-8274edb246cd"
}
				

Brand Update Schema

{
    "name": "Brand",
    "properties": {
        "canopyPublic": {
            "optional": true,
            "type": "string",
            "maxLength": 1
        },
        "descr": {
            "optional": true,
            "type": "string"
        },
        "isGenericBrand": {
            "optional": true,
            "type": "string",
            "maxLength": 1
        },
        "name": {
            "optional": false,
            "type": "string",
            "minLength": 1,
            "maxLength": 100
        },
        "privateLabel": {
            "optional": true,
            "type": "string",
            "maxLength": 1
        }
    }
}

Example Request

GET https://api.canopyapp.net/api/erp/Range/c6ce6248-7001-4855-ad02-3b91ff6aaf6e.json
Request
[Empty Request Body]
Response
{

    "id": "c6ce6248-7001-4855-ad02-3b91ff6aaf6e",
    "type": "ProductRange",
    "canopyPublic": null,
    "dateCreated": "2011-10-31T09:56:11.389Z",
    "department": null,
    "descr": "",
    "name": "Australian Pork",
    "story": null,
    "urlName": null,
    "uuid": "c6ce6248-7001-4855-ad02-3b91ff6aaf6e",
    "products": [
        {
            "id": "555eaa92-3110-490d-9ee7-6ccb0afd95d8",
            "type": "Product",
            "code": "CT00000042_A",
            "descr": "Australian Pork Easy Carve Leg Roast.",
            "gtin": "93123450000042",
            "uuid": "555eaa92-3110-490d-9ee7-6ccb0afd95d8"
        }
    ]

}
				

This is an Index of the current user's Company, returns the company details, supplier accesses, corporate accesses, business units, selected job types and sub-job types.

Details

URL Structure https://api.canopyapp.net/api/erp/Company.<format>
Version 1.0
Method GET

Parameters

account
required
The System Account Code

Example Request

GET https://api.canopyapp.net/api/erp/Company.json
Request
[Empty Request Body]
Response
                   [
    {
        "id": 3,
        "type": "Company",
        "businessId": "99 999 999 999",
        "businessName": "Test Company Pty Ltd",
        "name": "Test Company",
        "corporateAccesses": [],
        "supplierAccesses": [
            {
                "id": 14,
                "type": "CompanySupplierAccess",
                "supplier": {
                    "id": 29,
                    "type": "Company",
                    "name": "Test Supplier"
                }
            }
        ],
        "businessUnits": [
            {
                "id": 39,
                "type": "Company",
                "name": "IT"
            },
            {
                "id": 50,
                "type": "Company",
                "name": "Corporate"
            }
        ],
        "selectedDocumentTypes": [
            {
                "id": 1,
                "type": "DocumentType",
                "name": "Catalogue",
                "documentSubTypes": [
                    {
                        "id": 207,
                        "type": "DocumentSubType",
                        "name": " Monthlies",
                        "documentType": {
                            "id": 1,
                            "type": "DocumentType"
                        }
                    }
                ]
            },
            {
                "id": 5,
                "type": "DocumentType",
                "name": "POS",
                "documentSubTypes": [
                    {
                        "id": 271,
                        "type": "DocumentSubType",
                        "name": "A3 Inserts",
                        "documentType": {
                            "id": 5,
                            "type": "DocumentType"
                        }
                    },
                    {
                        "id": 273,
                        "type": "DocumentSubType",
                        "name": "A4 Inserts",
                        "documentType": {
                            "id": 5,
                            "type": "DocumentType"
                        }
                    }
                ]
            },
            {
                "id": 4,
                "type": "DocumentType",
                "name": "Press"
            }
        ]
    }
]
                   

This is an Index or Search of the Range library, with optional batched results, optional search qualification, optional sort orderings.

Details

URL Structure https://api.canopyapp.net/api/erp/Range.<format>?batchSize=<batchSize>&batch=<batch>&qualifier=<qualifier>&sort=<sort>
Version 1.0
Method GET

Parameters

account
required
The System Account Code
timestamp
required
The request timestamp
signature
required
The generated authentication code for this request
batchSize
optional
Number of Ranges in each batch
batch
optional
The batch to include in the response
qualifier
optional
A simple qualification on the Range objects
sort
optional
A comma delimited list of sort criteria - left hand side is the Range attribute, right hand side the sort direction.

Example Request

GET https://api.canopyapp.net/api/erp/Range.json
Request
[Empty Request Body]
Response
[
    {
        "id": "bc334d30-ba4f-4c70-96a8-4c3f2ba31097",
        "type": "ProductRange",
        "canopyPublic": null,
        "dateCreated": "2011-10-31T09:56:10.777Z",
        "department": "Deli",
        "descr": null,
        "name": "100 Pack Tea Bags",
        "story": null,
        "urlName": null,
        "uuid": "bc334d30-ba4f-4c70-96a8-4c3f2ba31097",
        "products": [
            {
                "id": "dd6a83c3-8cc8-4dc3-9884-a7ee0ec17260",
                "type": "Product",
                "code": "42607439",
                "descr": "Twinings English Breakfast Tea Bags 10 Pack",
                "gtin": "86359591",
                "uuid": "dd6a83c3-8cc8-4dc3-9884-a7ee0ec17260"
            },
            {
                "id": "f107fcf3-2b7b-445b-bcba-122e97a0db01",
                "type": "Product",
                "code": "66447695",
                "descr": "Twinings English Breakfast Tea Bags 25 Pack",
                "gtin": "91107197",
                "uuid": "f107fcf3-2b7b-445b-bcba-122e97a0db01"
            },
            {
                "id": "d20e15b1-3e5d-4030-a41f-b169751136e7",
                "type": "Product",
                "code": "63568654",
                "descr": "Twinings English Breakfast Tea Bags 50 Pack",
                "gtin": "99890825",
                "uuid": "d20e15b1-3e5d-4030-a41f-b169751136e7"
            },
            {
                "id": "8c51e546-1c6c-454a-bdba-561898d76b08",
                "type": "Product",
                "code": "CT00000034",
                "descr": "Twinings English Breakfast Tea Bags 100 Pack",
                "gtin": "93123450000034",
                "uuid": "8c51e546-1c6c-454a-bdba-561898d76b08"
            }
        ]
    },
    {
        "id": "e07d0b1e-019b-4f30-8103-f53836990044",
        "type": "ProductRange",
        "canopyPublic": null,
        "dateCreated": "2011-10-31T09:56:10.494Z",
        "department": null,
        "descr": "",
        "name": "2.2 Litre Fruit Juice",
        "story": null,
        "urlName": null,
        "uuid": "e07d0b1e-019b-4f30-8103-f53836990044",
        "products": [
            {
                "id": "5cb44884-404c-4431-8255-7158ddaa9af0",
                "type": "Product",
                "code": "CT00000030",
                "descr": "Apple Juice 2.4 Litre",
                "gtin": "93123450000030",
                "uuid": "5cb44884-404c-4431-8255-7158ddaa9af0"
            }
        ]
    }
]

				

Range Index / Search Schema

{
    "name": "ProductRange",
    "properties": {
        "descr": {
            "optional": true,
            "type": "string"
        },
        "department": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "products": {
            "descr": {
                "optional": true,
                "type": "string"
            },
            "gtin": {
                "optional": true,
                "type": "string",
                "maxLength": 100
            },
            "uuid": {
                "optional": true,
                "type": "string",
                "maxLength": 100
            },
            "code": {
                "optional": false,
                "type": "string",
                "minLength": 1,
                "maxLength": 100
            }
        },
        "story": {
            "optional": true,
            "type": "string"
        },
        "dateCreated": {
            "optional": false,
            "type": "string",
            "format": "date-time"
        },
        "canopyPublic": {
            "optional": true,
            "type": "string",
            "maxLength": 1
        },
        "urlName": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "name": {
            "optional": false,
            "type": "string",
            "minLength": 1,
            "maxLength": 100
        },
        "uuid": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        }
    }
}


Retrieve an existing Range in Canopy

Details

URL Structure https://api.canopyapp.net/api/erp/Range/identifier.format
Version 1.0
Method POST
Request Body Empty

Parameters

account
required
The System Account Code
timestamp
required
The request timestamp
signature
required
The generated authentication code for this request

Example Request

GET https://api.canopyapp.net/api/erp/Range/c6ce6248-7001-4855-ad02-3b91ff6aaf6e.json
Request
[Empty Request Body]
Response
{

    "id": "c6ce6248-7001-4855-ad02-3b91ff6aaf6e",
    "type": "ProductRange",
    "canopyPublic": null,
    "dateCreated": "2011-10-31T09:56:11.389Z",
    "department": null,
    "descr": "",
    "name": "Australian Pork",
    "story": null,
    "urlName": null,
    "uuid": "c6ce6248-7001-4855-ad02-3b91ff6aaf6e",
    "products": [
        {
            "id": "555eaa92-3110-490d-9ee7-6ccb0afd95d8",
            "type": "Product",
            "code": "CT00000042_A",
            "descr": "Australian Pork Easy Carve Leg Roast.",
            "gtin": "93123450000042",
            "uuid": "555eaa92-3110-490d-9ee7-6ccb0afd95d8"
        }
    ]

}
				

Range Retrieve Schema

{
    "name": "ProductRange",
    "properties": {
        "descr": {
            "optional": true,
            "type": "string"
        },
        "department": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "products": {
            "descr": {
                "optional": true,
                "type": "string"
            },
            "gtin": {
                "optional": true,
                "type": "string",
                "maxLength": 100
            },
            "uuid": {
                "optional": true,
                "type": "string",
                "maxLength": 100
            },
            "code": {
                "optional": false,
                "type": "string",
                "minLength": 1,
                "maxLength": 100
            }
        },
        "story": {
            "optional": true,
            "type": "string"
        },
        "dateCreated": {
            "optional": false,
            "type": "string",
            "format": "date-time"
        },
        "canopyPublic": {
            "optional": true,
            "type": "string",
            "maxLength": 1
        },
        "urlName": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "name": {
            "optional": false,
            "type": "string",
            "minLength": 1,
            "maxLength": 100
        },
        "uuid": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        }
    }
}


Create a new Range in Canopy

Details

URL Structure https://api.canopyapp.net/api/erp/Range/Identifier.format
Version 1.0
Method POST
Request Body A graph of the Range to be created in the format given. Attributes and to-one relationships must match the schema below. The Brand schema reference is required.

Parameters

account
required
The System Account Code
timestamp
required
The request timestamp
signature
required
The generated authentication code for this request

Example Request

POST https://api.canopyapp.net/api/erp/Range.json
Request
{
    "type": "Range",
    "department": "Deaprtment A",
    "descr": "Range G Description",
    "id": null,
    "name": "Range G",
    "story": null,
    "urlName": null,
    "uuid": null,
    "brand": {
        "id": "fd10c84f-8cd2-4c01-9571-8274edb246cd",
        "type": "Brand"
    },
    "dateCreated": null
}

                
Response
{

    "id": "1ba041ba-24d1-40f8-bd94-6eb031785e8b",
    "type": "ProductRange",
    "canopyPublic": null,
    "dateCreated": "2011-10-31T09:56:10.087Z",
    "department": null,
    "descr": "Range G Description",
    "name": "Range G",
    "story": null,
    "urlName": null,
    "uuid": "1ba041ba-24d1-40f8-bd94-6eb031785e8b",
    "products": [ ]
}
				

Range Create Schema

{
    "name": "ProductRange",
    "properties": {
        "descr": {
            "optional": true,
            "type": "string"
        },
        "department": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "story": {
            "optional": true,
            "type": "string"
        },
        "brand": {
            "nil": "true"
        },
        "canopyPublic": {
            "optional": true,
            "type": "string",
            "maxLength": 1
        },
        "urlName": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "name": {
            "optional": false,
            "type": "string",
            "minLength": 1,
            "maxLength": 100
        }
    }
}


Update an existing Range in Canopy

Details

URL Structure https://api.canopyapp.net/api/erp/Range/Identifier.format
Version 1.0
Method PUT
Request Body A graph of the Range to be updated in the format given. Attributes and to-one relationships must match the schema below.

Parameters

account
required
The System Account Code
timestamp
required
The request timestamp
signature
required
The generated authentication code for this request

Example Request

PUT https://api.canopyapp.net/api/erp/Range/5c716caf-8519-4c50-a367-2cb1beab7b84.json
Request
{
    "id": "5c716caf-8519-4c50-a367-2cb1beab7b84",
    "type": "Range",
    "department": "Department K",
    "descr": "Range H New Description",
    "name": "Range H",
    "story": null,
    "urlName": "http://my-range-uri.html",
    "uuid": "5c716caf-8519-4c50-a367-2cb1beab7b84",
    "brand": null,
    "dateCreated": {
        "type": "DateTime"
    }
}
                
Response
{
    "id": "5c716caf-8519-4c50-a367-2cb1beab7b84",
    "type": "ProductRange",
    "canopyPublic": null,
    "dateCreated": "2011-10-31T09:56:10.087Z",
    "department": "Department K",
    "descr": "Range H New Description",
    "name": "Range H",
    "story": null,
    "urlName": "http://my-range-uri.html",
    "uuid": "5c716caf-8519-4c50-a367-2cb1beab7b84",
    "products": [ ]
}

Range Update Schema

{
    "name": "ProductRange",
    "properties": {
        "descr": {
            "optional": true,
            "type": "string"
        },
        "department": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "story": {
            "optional": true,
            "type": "string"
        },
        "canopyPublic": {
            "optional": true,
            "type": "string",
            "maxLength": 1
        },
        "urlName": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "name": {
            "optional": false,
            "type": "string",
            "minLength": 1,
            "maxLength": 100
        }
    }
}

This is an Index or Search of the Product library, with optional batched results, optional search qualification, optional sort orderings.

Details

URL Structure https://api.canopyapp.net/api/erp/Product.<format>?batchSize=<batchSize>&batch=<batch>&qualifier=<qualifier>&sort=<sort>
Version 1.0
Method GET

Parameters

account
required
The System Account Code
timestamp
required
The request timestamp
signature
required
The generated authentication code for this request
batchSize
optional
Number of Products in each batch
batch
optional
The batch to include in the response
qualifier
optional
A simple qualification on the Product objects
sort
optional
A comma delimited list of sort criteria - left hand side is the Product attribute, right hand side the sort direction.

Example Request

GET https://api.canopyapp.net/api/erp/Product.json
Request
[Empty Request Body]
Response
[
    {
        "id": "cbe1c0ab-ab79-44f1-ba42-c076af5649d8",
        "type": "Product",
        "code": "0987456",
        "colour": "slate",
        "descr": "Product 101",
        "dimension": null,
        "gtin": "9300601376131",
        "size": "1 Litre",
        "uuid": "cbe1c0ab-ab79-44f1-ba42-c076af5649d8",
        "volume": null,
        "weight": null,
        "status": {
            "id": 1,
            "type": "Status",
            "name": "active"
        },
        "dateCreatedDisplay": "2011-08-31T16:25:47.630Z",
        "dateLastModifiedDisplay": "2013-08-02T00:34:31.371Z"
    },
    {
        "id": "1ec50232-1eb1-48b1-8272-a66d05c22dec",
        "type": "Product",
        "code": "13414532453a",
        "colour": "grey",
        "descr": "Product 101",
        "dimension": null,
        "gtin": "9300644043632",
        "size": "1 Litre",
        "uuid": "1ec50232-1eb1-48b1-8272-a66d05c22dec",
        "volume": null,
        "weight": null,
        "status": {
            "id": 1,
            "type": "Status",
            "name": "active"
        },
        "dateCreatedDisplay": "2012-09-13T05:46:12.159Z",
        "dateLastModifiedDisplay": "2013-07-26T04:56:30.809Z"
    }
]
				

Product Index / Search Schema

{
    "name": "Product",
    "properties": {
        "descr": {
            "optional": true,
            "type": "string"
        },
        "size": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "gtin": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "uuid": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "dimension": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "weight": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "volume": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "status": {
            "name": {
                "optional": false,
                "type": "string",
                "minLength": 1,
                "maxLength": 10
            }
        },
        "colour": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "code": {
            "optional": false,
            "type": "string",
            "minLength": 1,
            "maxLength": 100
        }
    }
}


Retrieve an existing Product in Canopy

Details

URL Structure https://api.canopyapp.net/api/erp/Product/identifier.format
Version 1.0
Method POST
Request Body Empty

Parameters

account
required
The System Account Code
timestamp
required
The request timestamp
signature
required
The generated authentication code for this request

Example Request

GET https://api.canopyapp.net/api/erp/Product/1234-5678-9012-3456.json
Request
[Empty Request Body]
Response
{
    "id": "1ec50232-1eb1-48b1-8272-a66d05c22dec",
    "type": "Product",
    "canopyPublic": "Y",
    "code": "13414532453a",
    "colour": "reddish",
    "descr": "Chicken Stock",
    "dimension": null,
    "eolDate": "2017-12-24T00:00:00.000Z",
    "exposureDate": "2013-01-31T00:00:00.000Z",
    "gtin": "9300644043632",
    "legalCode": "9300644043632",
    "legalCodeName": "APN",
    "rrp": null,
    "size": "1 Litre",
    "story": null,
    "style": "Salt Reduced",
    "themeTags": "autumn 2013, summer 2013",
    "uuid": "1ec50232-1eb1-48b1-8272-a66d05c22dec",
    "volume": null,
    "weight": null,
    "heroMedia": {
        "id": "c960a5ba-cce3-40e0-8785-36ec6738713f",
        "type": "Media",
        "originalFilename": "987629-3D.tif",
        "uuid": "c960a5ba-cce3-40e0-8785-36ec6738713f",
        "thumb": "http://s3-ap-southeast-1.amazonaws.com:80/net-canopyapp/6095.png?Signature=mbktmrWwF5QXBYzzhtpAcIffw6o%3D&Expires=1375740841&AWSAccessKeyId=AKIAJ5UII987345GBAQ"
    },
    "status": {
        "id": 1,
        "type": "Status",
        "name": "active"
    },
    "dateCreatedDisplay": "2012-09-13T05:46:12.159Z",
    "dateLastModifiedDisplay": "2013-07-26T04:56:30.809Z"
}
				

Product Retrieve Schema

{
    "name": "Product",
    "properties": {
        "descr": {
            "optional": true,
            "type": "string"
        },
        "size": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "themeTags": {
            "optional": true,
            "type": "string"
        },
        "dimension": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "canopyPublic": {
            "optional": true,
            "type": "string",
            "maxLength": 1
        },
        "legalCode": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "heroMedia": {
            "originalFilename": {
                "optional": true,
                "type": "string",
                "maxLength": 100
            },
            "uuid": {
                "optional": true,
                "type": "string",
                "maxLength": 100
            }
        },
        "colour": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "code": {
            "optional": false,
            "type": "string",
            "minLength": 1,
            "maxLength": 100
        },
        "uuid": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "rrp": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "legalCodeName": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "status": {
            "name": {
                "optional": false,
                "type": "string",
                "minLength": 1,
                "maxLength": 10
            }
        },
        "story": {
            "optional": true,
            "type": "string"
        },
        "eolDate": {
            "optional": true,
            "type": "string",
            "format": "date-time"
        },
        "weight": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "volume": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "gtin": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "exposureDate": {
            "optional": true,
            "type": "string",
            "format": "date-time"
        },
        "style": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        }
    }
}


Create a new Product in Canopy

Details

URL Structure https://api.canopyapp.net/api/erp/Product/Identifier.format
Version 1.0
Method POST
Request Body A graph of the Product to be created in the format given. Attributes and to-one relationships must match the schema below.

Parameters

account
required
The System Account Code
timestamp
required
The request timestamp
signature
required
The generated authentication code for this request

Example Request

POST https://api.canopyapp.net/api/erp/Product.json
Request
{
    "type": null,
    "canopyPublic": null,
    "code": "42607439",
    "colour": "aqua",
    "dateLastModifiedDisplay": null,
    "descr": "Product D descr",
    "dimension": "379 x 572 x 328",
    "eolDate": "2015-08-02T10:34:31.472+10:00",
    "exposureDate": "2013-08-02T10:34:31.472+10:00",
    "gtin": "86359591",
    "id": null,
    "legalCode": null,
    "legalCodeName": null,
    "rrp": "$8575",
    "size": "269 ml",
    "status": null,
    "story": "Product Story has no maximum length",
    "style": "cool waters",
    "themeTags": "tag a, tag b, tag c",
    "uuid": null,
    "volume": "7951 ml",
    "weight": "3355 g",
    "dateCreatedDisplay": null,
    "productRange": {
        "id": "bc334d30-ba4f-4c70-96a8-4c3f2ba31097",
        "type": "Range"
    }
}
              
Response
{
    "id": "dd6a83c3-8cc8-4dc3-9884-a7ee0ec17260",
    "type": "Product",
    "canopyPublic": "N",
    "code": "42607439",
    "colour": "aqua",
    "descr": "Product D descr",
    "dimension": "379 x 572 x 328",
    "eolDate": "2013-08-02T00:34:31.551Z",
    "exposureDate": "2013-08-02T00:34:31.551Z",
    "gtin": "86359591",
    "legalCode": null,
    "legalCodeName": null,
    "rrp": "$8575",
    "size": "269 ml",
    "story": "Product Story has no maximum length",
    "style": "cool waters",
    "themeTags": "tag a, tag b, tag c",
    "uuid": "dd6a83c3-8cc8-4dc3-9884-a7ee0ec17260",
    "volume": "7951 ml",
    "weight": "3355 g",
    "status": {
        "id": 1,
        "type": "Status",
        "name": "active"
    },
    "dateCreatedDisplay": "2013-08-02T00:34:31.539Z",
    "dateLastModifiedDisplay": "2013-08-02T00:34:31.540Z"
}
				

Product Create Schema

{
    "name": "Product",
    "properties": {
        "descr": {
            "optional": true,
            "type": "string"
        },
        "size": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "themeTags": {
            "optional": true,
            "type": "string"
        },
        "dimension": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "colour": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "code": {
            "optional": false,
            "type": "string",
            "minLength": 1,
            "maxLength": 100
        },
        "productRange": {
            "nil": "true"
        },
        "rrp": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "style": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "gtin": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "story": {
            "optional": true,
            "type": "string"
        },
        "eolDate": {
            "optional": true,
            "type": "string",
            "format": "date-time"
        },
        "weight": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "volume": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "exposureDate": {
            "optional": true,
            "type": "string",
            "format": "date-time"
        }
    }
}


Update an existing Product in Canopy

Details

URL Structure https://api.canopyapp.net/api/erp/Product/Identifier.format
Version 1.0
Method PUT
Request Body A graph of the Product to be updated in the format given. Attributes and to-one relationships must match the schema below.

Parameters

account
required
The System Account Code
timestamp
required
The request timestamp
signature
required
The generated authentication code for this request

Example Request

PUT https://api.canopyapp.net/api/erp/Product/cbe1c0ab-ab79-44f1-ba42-c076af5649d8.json
Request
{
    "id": "cbe1c0ab-ab79-44f1-ba42-c076af5649d8",
    "type": null,
    "canopyPublic": "Y",
    "code": "0987456",
    "colour": null,
    "dateLastModifiedDisplay": "2013-08-01T23:42:17.489Z",
    "descr": "Beef Stock 1 Litre",
    "dimension": null,
    "eolDate": null,
    "exposureDate": null,
    "gtin": "9300601376131",
    "legalCode": null,
    "legalCodeName": null,
    "rrp": null,
    "size": "1 Litre",
    "status": null,
    "story": null,
    "style": null,
    "themeTags": null,
    "uuid": "cbe1c0ab-ab79-44f1-ba42-c076af5649d8",
    "volume": null,
    "weight": null,
    "dateCreatedDisplay": {
        "type": "DateTime"
    },
    "productRange": null
}
Response
{
    "id": "cbe1c0ab-ab79-44f1-ba42-c076af5649d8",
    "type": "Product",
    "canopyPublic": "Y",
    "code": "0987456",
    "colour": null,
    "descr": "Beef Stock 1 Litre",
    "dimension": null,
    "eolDate": null,
    "exposureDate": null,
    "gtin": "9300601376131",
    "legalCode": "9300601376131",
    "legalCodeName": "APN",
    "rrp": null,
    "size": "1 Litre",
    "story": null,
    "style": null,
    "themeTags": null,
    "uuid": "cbe1c0ab-ab79-44f1-ba42-c076af5649d8",
    "volume": null,
    "weight": null,
    "status": {
        "id": 1,
        "type": "Status",
        "name": "active"
    },
    "dateCreatedDisplay": "2011-08-31T16:25:47.630Z",
    "dateLastModifiedDisplay": "2013-08-02T00:34:31.371Z"
}

Product Update Schema

{
    "name": "Product",
    "properties": {
        "descr": {
            "optional": true,
            "type": "string"
        },
        "size": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "themeTags": {
            "optional": true,
            "type": "string"
        },
        "dimension": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "colour": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "code": {
            "optional": false,
            "type": "string",
            "minLength": 1,
            "maxLength": 100
        },
        "rrp": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "style": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "gtin": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "story": {
            "optional": true,
            "type": "string"
        },
        "eolDate": {
            "optional": true,
            "type": "string",
            "format": "date-time"
        },
        "weight": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "volume": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "exposureDate": {
            "optional": true,
            "type": "string",
            "format": "date-time"
        }
    }
}


Archive an existing Product in Canopy

Details

URL Structure https://api.canopyapp.net/api/erp/Product/Identifier.format
Version 1.0
Method DELETE
Request Body A graph of the Product to be archived in the format given. Attributes and to-one relationships must match the schema below.

Parameters

account
required
The System Account Code
timestamp
required
The request timestamp
signature
required
The generated authentication code for this request

Example Request

DELETE https://api.canopyapp.net/api/erp/Product/dd6a83c3-8cc8-4dc3-9884-a7ee0ec17260.json
Request
[Empty Request Body]
Response
{
    "id": "dd6a83c3-8cc8-4dc3-9884-a7ee0ec17260",
    "type": "Product",
    "code": "42607439",
    "colour": "aqua",
    "descr": "Product description",
    "dimension": "379 x 572 x 328",
    "eolDate": "2013-08-02T00:34:31.551Z",
    "exposureDate": "2013-08-02T00:34:31.551Z",
    "gtin": "86359591",
    "legalCode": null,
    "legalCodeName": null,
    "rrp": "$8575",
    "size": "269 ml",
    "story": "Test Product",
    "style": "Product Style",
    "themeTags": "tag a, tag b, tag c",
    "uuid": "dd6a83c3-8cc8-4dc3-9884-a7ee0ec17260",
    "volume": "7951 ml",
    "weight": "3355 g",
    "status": {
        "id": 3,
        "type": "Status",
        "name": "archived"
    },
    "dateCreatedDisplay": "2013-08-02T00:34:31.539Z",
    "dateLastModifiedDisplay": "2013-08-02T00:34:31.540Z"
}

Product Archive Schema

{
    "name": "Product",
    "properties": {
        "nil": "true"
    }
}

This is an Index or Search of the Media library, with optional batched results, optional search qualification, optional sort orderings.

Details

URL Structure https://api.canopyapp.net/api/erp/Media.<format>?batchSize=<batchSize>&batch=<batch>&qualifier=<qualifier>&sort=<sort>
Version 1.0
Method GET

Parameters

account
required
The System Account Code
timestamp
required
The request timestamp
signature
required
The generated authentication code for this request
batchSize
optional
Number of Media in each batch
batch
optional
The batch to include in the response
qualifier
optional
A simple qualification on the Media objects
sort
optional
A comma delimited list of sort criteria - left hand side is the Media attribute, right hand side the sort direction.

Example Request

GET https://api.canopyapp.net/api/erp/Media.json
Request
[Empty Request Body]
Response
[
    {
        "id": "b0db1ec2-88e6-4af1-ae88-e9fa94e8d368",
        "type": "Media",
        "code": "1111",
        "dateCreated": "2013-06-28T03:58:01.464Z",
        "dateLastModified": null,
        "dateShoot": null,
        "exposureDate": null,
	    "originalFilename": "Canopy.tif",
	    "status": {
        	"id": 1,
        	"type": "Status",
        	"name": "active"
    	},
        "uuid": "b0db1ec2-88e6-4af1-ae88-e9fa94e8d368",
        "thumb": "http://s3-ap-southeast-1.amazonaws.com:80/net-canopyapp/6329.png?Signature=9eXar7Ztwg8IeyL6XhBUtuKylYw%3D&Expires=1375490072&AWSAccessKeyId=AKIA987345LTX7GBA"
    },
    {
        "id": "5337cf1a-827c-4ed5-bd63-8ba6ceda118e",
        "type": "Media",
        "code": "345777",
        "dateCreated": "2013-06-28T01:12:44.300Z",
        "dateLastModified": null,
        "dateShoot": null,
        "exposureDate": null,
	    "originalFilename": "Canopy.png",
	    "status": {
        	"id": 1,
        	"type": "Status",
        	"name": "active"
    	},
        "uuid": "5337cf1a-827c-4ed5-bd63-8ba6ceda118e",
        "thumb": "http://s3-ap-southeast-1.amazonaws.com:80/net-canopyapp/6321.png?Signature=Fudh5TP2athYQ78fdcxx8PRWasc%3D&Expires=1375490072&AWSAccessKeyId=AKIA987345LTX7GBA"
    },
    {
        "id": "87870113-dad2-4c75-898f-35446cc5c65d",
        "type": "Media",
        "code": "4n20",
        "dateCreated": "2011-12-12T12:28:43.145Z",
        "dateLastModified": "2013-05-01T05:21:37.138Z",
        "dateShoot": null,
        "exposureDate": null,
	    "originalFilename": "Canopy.mp4",
	    "status": {
        	"id": 1,
        	"type": "Status",
        	"name": "active"
    	},
        "uuid": "87870113-dad2-4c75-898f-35446cc5c65d",
        "thumb": "http://s3-ap-southeast-1.amazonaws.com:80/net-canopyapp/2953.png?Signature=OcEkYrryaea8Mdbx49lmdpfWnk0%3D&Expires=1375490072&AWSAccessKeyId=AKIA987345LTX7GBA"
    }
]

Media Index / Search Schema

{
    "name": "Media",
    "properties": {
        "dateShoot": {
            "optional": true,
            "type": "string",
            "format": "date-time"
        },
        "code": {
            "optional": false,
            "type": "string",
            "minLength": 1,
            "maxLength": 100
        },
        "exposureDate": {
            "optional": true,
            "type": "string",
            "format": "date-time"
        },
        "originalFilename": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "dateCreated": {
            "optional": false,
            "type": "string",
            "format": "date-time"
        },
        "uuid": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "dateLastModified": {
            "optional": true,
            "type": "string",
            "format": "date-time"
        }
    }
}
				


Retrieve an existing Media in Canopy

Details

URL Structure https://api.canopyapp.net/api/erp/Media/identifier.format
Version 1.0
Method GET
Request Body A graph of the Media to be created in the format given.

Parameters

account
required
The System Account Code
timestamp
required
The request timestamp
signature
required
The generated authentication code for this request

Example Request

GET https://api.canopyapp.net/api/erp/Media/b0db1ec2-88e6-4af1-ae88-e9fa94e8d368.json
Request
[Empty Request Body]
Response
{
    "id": "b0db1ec2-88e6-4af1-ae88-e9fa94e8d368",
    "type": "Media",
    "attchmentStatus": "U",
    "code": "1111",
    "dateCreated": "2013-06-28T03:58:01.464Z",
    "dateLastModified": null,
    "dateShoot": null,
    "descr": null,
    "exposureDate": null,
    "extraTags": null,
    "imageCodeA": null,
    "imageCodeB": null,
    "nodeReference": null,
    "originalDistributionPermit": null,
    "originalFilename": "Canopy.mp4",
    "themeTags": null,
    "status": {
        "id": 1,
        "type": "Status",
        "name": "active"
    },
    "uuid": "b0db1ec2-88e6-4af1-ae88-e9fa94e8d368",
    "thumb": "http://s3-ap-southeast-1.amazonaws.com:80/net-canopyapp/6329.png?Signature=HJrcyWNBVKklMGEvBTX1xQJRVn8%3D&Expires=1375490073&AWSAccessKeyId=AKIA987345LTX7GBA"
}

Media Retrieve Schema

{
    "name": "Media",
    "properties": {
        "descr": {
            "optional": true,
            "type": "string"
        },
        "themeTags": {
            "optional": true,
            "type": "string"
        },
        "imageCodeB": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "extraTags": {
            "optional": true,
            "type": "string"
        },
        "code": {
            "optional": false,
            "type": "string",
            "minLength": 1,
            "maxLength": 100
        },
        "dateShoot": {
            "optional": true,
            "type": "string",
            "format": "date-time"
        },
        "dateLastModified": {
            "optional": true,
            "type": "string",
            "format": "date-time"
        },
        "exposureDate": {
            "optional": true,
            "type": "string",
            "format": "date-time"
        },
        "attchmentStatus": {
            "optional": false,
            "type": "string",
            "minLength": 1,
            "maxLength": 1
        },
        "originalFilename": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "imageCodeA": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "dateCreated": {
            "optional": false,
            "type": "string",
            "format": "date-time"
        },
        "uuid": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "nodeReference": {
            "optional": true,
            "type": "string"
        }
    }
}


This will create a media for the company from the file supplied and trigger the render of the new file supplied.

Details

URL Structure https://api.canopyapp.net/api/erp/Media.format
Version 1.0
Method POST
Request Body The file to set as the final document.

Parameters

account
required
The System Account Code
timestamp
required
The request timestamp
signature
required
The generated authentication code for this request

Example Request

GET https://api.canopyapp.net/api/erp/Media..json
Request
                File to import

      
Response
{
    "id": "b0db1ec2-88e6-4af1-ae88-e9fa94e8d368",
    "type": "Media",
    "attchmentStatus": "U",
    "code": "1111",
    "dateCreated": "2013-06-28T03:58:01.464Z",
    "dateLastModified": null,
    "dateShoot": null,
    "descr": null,
    "exposureDate": null,
    "extraTags": null,
    "imageCodeA": "A New Update",
    "imageCodeB": null,
    "nodeReference": "Canopy video",
    "originalDistributionPermit": null,
    "originalFilename": "Canopy.mp4",
    "themeTags": null,
    "uuid": "b0db1ec2-88e6-4af1-ae88-e9fa94e8d368",
    "status": {
        "id": 1,
        "type": "Status",
        "name": "active"
    },
    "thumb": "http://s3-ap-southeast-1.amazonaws.com:80/net-canopyapp/6329.png?Signature=h94Slfp9XH3gWeI7T4elblzBXqU%3D&Expires=1375490074&AWSAccessKeyId=AKIA98745TX7GBAQ"
}

				



Update existing Media in Canopy

You can also send UUIDs of Products, Campaigns, Jobs or Story Chapters in the array applicableUUIDs. This will only add the media to the above objects.

Details

URL Structure https://api.canopyapp.net/api/erp/Media/Identifier.format
Version 1.0
Method PUT
Request Body A graph of the Media to be updated in the format given. Attributes and to-one relationships must match the schema below.

Parameters

account
required
The System Account Code
timestamp
required
The request timestamp
signature
required
The generated authentication code for this request

Example Request

PUT https://api.canopyapp.net/api/erp/Media/b0db1ec2-88e6-4af1-ae88-e9fa94e8d368.json
Request
{
    "id": "b0db1ec2-88e6-4af1-ae88-e9fa94e8d368",
    "type": "Media",
    "attchmentStatus": null,
    "code": "1111",
    "dateLastModified": null,
    "descr": "Test dsecr 16",
    "extraTags": null,
    "imageCodeA": "A New Update",
    "imageCodeB": null,
    "nodeReference": "Canopy video",
    "originalDistributionPermit": null,
    "originalFilename": null,
    "themeTags": null,
    "uuid": "b0db1ec2-88e6-4af1-ae88-e9fa94e8d368",
    "dateCreated": {
        "type": "DateTime"
    },
    "dateShoot": null,
    "exposureDate": null
}
                
Response
{
    "id": "b0db1ec2-88e6-4af1-ae88-e9fa94e8d368",
    "type": "Media",
    "attchmentStatus": "U",
    "code": "1111",
    "dateCreated": "2013-06-28T03:58:01.464Z",
    "dateLastModified": null,
    "dateShoot": null,
    "descr": null,
    "exposureDate": null,
    "extraTags": null,
    "imageCodeA": "A New Update",
    "imageCodeB": null,
    "nodeReference": "Canopy video",
    "originalDistributionPermit": null,
    "originalFilename": "Canopy.mp4",
    "themeTags": null,
    "uuid": "b0db1ec2-88e6-4af1-ae88-e9fa94e8d368",
    "status": {
        "id": 1,
        "type": "Status",
        "name": "active"
    },
    "thumb": "http://s3-ap-southeast-1.amazonaws.com:80/net-canopyapp/6329.png?Signature=h94Slfp9XH3gWeI7T4elblzBXqU%3D&Expires=1375490074&AWSAccessKeyId=AKIA98745TX7GBAQ"
}

				

Media Update Schema

{
    "name": "Media",
    "properties": {
        "dateShoot": {
            "optional": true,
            "type": "string",
            "format": "date-time"
        },
        "themeTags": {
            "optional": true,
            "type": "string"
        },
        "exposureDate": {
            "optional": true,
            "type": "string",
            "format": "date-time"
        },
        "imageCodeA": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "imageCodeB": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "uuid": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "extraTags": {
            "optional": true,
            "type": "string"
        },
        "code": {
            "optional": false,
            "type": "string",
            "minLength": 1,
            "maxLength": 100
        },
        "nodeReference": {
            "optional": true,
            "type": "string"
        }
         "applicableUUIDs": {
            "optional": true,
            "type": "array"
        }
    }
}


Archive existing Media in Canopy

Details

URL Structure https://api.canopyapp.net/api/erp/Media/Identifier.format
Version 1.0
Method DELETE
Request Body A graph of the Media to be archived in the format given. Attributes and to-one relationships must match the schema below.

Parameters

account
required
The System Account Code
timestamp
required
The request timestamp
signature
required
The generated authentication code for this request

Example Request

DELETE https://api.canopyapp.net/api/erp/Media/b0db1ec2-88e6-4af1-ae88-e9fa94e8d368.json
Request
[Empty Request Body]
Response
{
    "id": "b0db1ec2-88e6-4af1-ae88-e9fa94e8d368",
    "type": "Media",
    "attchmentStatus": "U",
    "code": "1111",
    "dateCreated": "2013-06-28T03:58:01.464Z",
    "dateLastModified": null,
    "dateShoot": null,
    "descr": null,
    "exposureDate": null,
    "extraTags": null,
    "imageCodeA": "A New Update",
    "imageCodeB": null,
    "nodeReference": "Canopy video",
    "originalDistributionPermit": null,
    "originalFilename": "Canopy.mp4",
    "themeTags": null,
    "uuid": "b0db1ec2-88e6-4af1-ae88-e9fa94e8d368",
    "status": {
        "id": 1,
        "type": "Status",
        "name": "archived"
    },
    "thumb": "http://s3-ap-southeast-1.amazonaws.com:80/net-canopyapp/6329.png?Signature=h94Slfp9XH3gWeI7T4elblzBXqU%3D&Expires=1375490074&AWSAccessKeyId=AKIA9874345TX7GBAQ"
}				

Media Archive Schema

{
    "name": "Media",
    "properties": {
        "nil": "true"
    }
}

This is an Index or Search of the Campaign library, with optional batched results, optional search qualification, optional sort orderings.

Details

URL Structure https://api.canopyapp.net/api/erp/Campaign.<format>?batchSize=<batchSize>&batch=<batch>&qualifier=<qualifier>&sort=<sort>
Version 1.0
Method GET

Parameters

account
required
The System Account Code
timestamp
required
The request timestamp
signature
required
The generated authentication code for this request
batchSize
optional
Number of Campaign in each batch
batch
optional
The batch to include in the response
qualifier
optional
A simple qualification on the Campaign objects
sort
optional
A comma delimited list of sort criteria - left hand side is the Campaign attribute, right hand side the sort direction.

Example Request

GET https://api.canopyapp.net/api/erp/Campaign.json
Request
[Empty Request Body]
Response
[
    {
        "id": 60,
        "type": "Campaign",
        "clientCode": null,
        "code": null,
        "completedDate": null,
        "createdDate": "2014-06-19T00:43:01.176Z",
        "dateLastModified": "2015-08-26T06:55:16.449Z",
        "deletedDate": null,
        "descr": "2014 Demo Campaign",
        "endDate": "2014-09-30T00:00:00.000Z",
        "locale": null,
        "name": "2014 Demo Campaign",
        "searchIndex": "Campaign 2014 And Demo Terms Conditions",
        "showOfferSets": null,
        "showStorePacks": null,
        "startDate": "2014-06-01T00:00:00.000Z",
        "statRunTrigger": null,
        "uuid": "5sd3c905-7359-498a-a4b3-cd59562b377b",
        "campaignStages": [
            {
                "id": 128,
                "type": "CampaignStage",
                "createdDate": "2015-08-19T03:34:51.655Z",
                "descr": null,
                "endDate": "2015-08-19T03:34:51.657Z",
                "name": "New Stage",
                "stageNumber": 2,
                "startDate": "2015-08-19T03:34:51.657Z",
                "campaignOfferSets": []
            },
            {
                "id": 62,
                "type": "CampaignStage",
                "createdDate": "2014-06-19T00:43:01.180Z",
                "descr": "2014 Demo Campaign",
                "endDate": "2014-09-30T00:00:00.000Z",
                "name": "Stage 1",
                "stageNumber": 1,
                "startDate": "2014-06-01T00:00:00.000Z",
                "campaignOfferSets": [
                    {
                        "id": 251,
                        "type": "CampaignOfferSet",
                        "batchId": null,
                        "code": null,
                        "descr": "MNOT5",
                        "endDate": null,
                        "startDate": null,
                        "campaignStage": {
                            "id": 62,
                            "type": "CampaignStage"
                        }
                    },
                    {
                        "id": 250,
                        "type": "CampaignOfferSet",
                        "batchId": null,
                        "code": null,
                        "descr": "MNOT4",
                        "endDate": null,
                        "startDate": null,
                        "campaignStage": {
                            "id": 62,
                            "type": "CampaignStage"
                        }
                    },
                    {
                        "id": 249,
                        "type": "CampaignOfferSet",
                        "batchId": null,
                        "code": null,
                        "descr": "MNOT3",
                        "endDate": null,
                        "startDate": null,
                        "campaignStage": {
                            "id": 62,
                            "type": "CampaignStage"
                        }
                    },
                    {
                        "id": 114,
                        "type": "CampaignOfferSet",
                        "batchId": null,
                        "code": "1",
                        "descr": "Default Offer Set",
                        "endDate": "2014-09-30T00:00:00.000Z",
                        "startDate": "2014-06-01T00:00:00.000Z",
                        "campaignStage": {
                            "id": 62,
                            "type": "CampaignStage"
                        }
                    }
                ]
            }
        ]
    },
    {
        "id": 940,
        "type": "Campaign",
        "clientCode": "1234567890",
        "code": "424242424242",
        "completedDate": null,
        "createdDate": "2016-02-14T22:33:31.411Z",
        "dateLastModified": "2016-02-14T22:51:23.739Z",
        "deletedDate": null,
        "descr": null,
        "endDate": "2016-03-03T00:00:00.000Z",
        "locale": null,
        "name": "42 day test",
        "searchIndex": "test 1234567890 day 424242424242 42",
        "showOfferSets": null,
        "showStorePacks": null,
        "startDate": "2016-01-31T00:00:00.000Z",
        "statRunTrigger": null,
        "uuid": "54d930c2-9330-4e35-8394-73bba6b256b0",
        "campaignStages": [
            {
                "id": 954,
                "type": "CampaignStage",
                "createdDate": "2016-02-14T22:33:31.416Z",
                "descr": null,
                "endDate": "2016-02-14T22:33:31.420Z",
                "name": "Stage 1",
                "stageNumber": 1,
                "startDate": "2016-02-14T22:33:31.420Z",
                "campaignOfferSets": [
                    {
                        "id": 1076,
                        "type": "CampaignOfferSet",
                        "batchId": null,
                        "code": null,
                        "descr": "Second set",
                        "endDate": null,
                        "startDate": null,
                        "campaignStage": {
                            "id": 954,
                            "type": "CampaignStage"
                        }
                    },
                    {
                        "id": 1075,
                        "type": "CampaignOfferSet",
                        "batchId": null,
                        "code": "1",
                        "descr": "Default Offer Set",
                        "endDate": null,
                        "startDate": null,
                        "campaignStage": {
                            "id": 954,
                            "type": "CampaignStage"
                        }
                    }
                ]
            }
        ]
    }
]  	

Offer Index / Search Schema

{
    "name": "Campaign",
    "properties": {
        "descr": {
            "optional": true,
            "type": "string"
        },
        "campaignStages": {
            "startDate": {
                "optional": false,
                "type": "string",
                "format": "date-time"
            },
            "descr": {
                "optional": true,
                "type": "string"
            },
            "createdDate": {
                "optional": false,
                "type": "string",
                "format": "date-time"
            },
            "stageNumber": {
                "optional": true,
                "type": "integer"
            },
            "endDate": {
                "optional": false,
                "type": "string",
                "format": "date-time"
            },
            "name": {
                "optional": false,
                "type": "string",
                "minLength": 1,
                "maxLength": 100
            },
            "campaignOfferSets": {
                "startDate": {
                    "optional": true,
                    "type": "string",
                    "format": "date-time"
                },
                "descr": {
                    "optional": true,
                    "type": "string"
                },
                "endDate": {
                    "optional": true,
                    "type": "string",
                    "format": "date-time"
                },
                "code": {
                    "optional": true,
                    "type": "string",
                    "maxLength": 100
                },
                "batchId": {
                    "optional": true,
                    "type": "string"
                }
            }
        },
        "deletedDate": {
            "optional": true,
            "type": "string",
            "format": "date-time"
        },
        "endDate": {
            "optional": false,
            "type": "string",
            "format": "date-time"
        },
        "searchIndex": {
            "optional": true,
            "type": "string"
        },
        "name": {
            "optional": false,
            "type": "string",
            "minLength": 1,
            "maxLength": 100
        },
        "code": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "showOfferSets": {
            "optional": true,
            "type": "string",
            "maxLength": 1
        },
        "createdDate": {
            "optional": false,
            "type": "string",
            "format": "date-time"
        },
        "dateLastModified": {
            "optional": true,
            "type": "string",
            "format": "date-time"
        },
        "showStorePacks": {
            "optional": true,
            "type": "string",
            "maxLength": 1
        },
        "clientCode": {
            "optional": true,
            "type": "string"
        },
        "completedDate": {
            "optional": true,
            "type": "string",
            "format": "date-time"
        },
        "locale": {
            "optional": true,
            "type": "string",
            "maxLength": 10
        },
        "uuid": {
            "optional": true,
            "type": "string"
        },
        "startDate": {
            "optional": false,
            "type": "string",
            "format": "date-time"
        },
        "statRunTrigger": {
            "optional": true,
            "type": "string",
            "format": "date-time"
        }
    }
}


Retrieve an existing Campaign in Canopy

Details

URL Structure https://api.canopyapp.net/api/erp/Campaign/identifier.format
Version 1.0
Method POST
Request Body A graph of the Campaign to be created in the format given. Attributes and to-one relationships must match the schema below.

Parameters

account
required
The System Account Code
timestamp
required
The request timestamp
signature
required
The generated authentication code for this request

Example Request

GET https://api.canopyapp.net/api/erp/Campaign/60.json
Request
[Empty Request Body]
Response
{
    "id": 60,
    "type": "Campaign",
    "clientCode": null,
    "code": null,
    "completedDate": null,
    "createdDate": "2014-06-19T00:43:01.176Z",
    "dateLastModified": "2015-08-26T06:55:16.449Z",
    "deletedDate": null,
    "descr": "2014 Demo Campaign",
    "endDate": "2014-09-30T00:00:00.000Z",
    "locale": null,
    "name": "2014 Demo Campaign",
    "searchIndex": "Campaign 2014 And Demo Terms Conditions",
    "showOfferSets": null,
    "showStorePacks": null,
    "startDate": "2014-06-01T00:00:00.000Z",
    "statRunTrigger": null,
    "uuid": "5dd3c905-7359-498a-a4b3-cd59562b377b",
    "campaignStages": [
        {
            "id": 128,
            "type": "CampaignStage",
            "createdDate": "2015-08-19T03:34:51.655Z",
            "descr": null,
            "endDate": "2015-08-19T03:34:51.657Z",
            "name": "New Stage",
            "stageNumber": 2,
            "startDate": "2015-08-19T03:34:51.657Z",
            "campaignOfferSets": []
        },
        {
            "id": 62,
            "type": "CampaignStage",
            "createdDate": "2014-06-19T00:43:01.180Z",
            "descr": "2014 Demo Campaign",
            "endDate": "2014-09-30T00:00:00.000Z",
            "name": "Stage 1",
            "stageNumber": 1,
            "startDate": "2014-06-01T00:00:00.000Z",
            "campaignOfferSets": [
                {
                    "id": 251,
                    "type": "CampaignOfferSet",
                    "batchId": null,
                    "code": null,
                    "descr": "MNOT5",
                    "endDate": null,
                    "startDate": null,
                    "campaignStage": {
                        "id": 62,
                        "type": "CampaignStage"
                    }
                },
                {
                    "id": 250,
                    "type": "CampaignOfferSet",
                    "batchId": null,
                    "code": null,
                    "descr": "MNOT4",
                    "endDate": null,
                    "startDate": null,
                    "campaignStage": {
                        "id": 62,
                        "type": "CampaignStage"
                    }
                },
                {
                    "id": 249,
                    "type": "CampaignOfferSet",
                    "batchId": null,
                    "code": null,
                    "descr": "MNOT3",
                    "endDate": null,
                    "startDate": null,
                    "campaignStage": {
                        "id": 62,
                        "type": "CampaignStage"
                    }
                },
                {
                    "id": 114,
                    "type": "CampaignOfferSet",
                    "batchId": null,
                    "code": "1",
                    "descr": "Default Offer Set",
                    "endDate": "2014-09-30T00:00:00.000Z",
                    "startDate": "2014-06-01T00:00:00.000Z",
                    "campaignStage": {
                        "id": 62,
                        "type": "CampaignStage"
                    }
                }
            ]
        }
    ]
}				

Campaign Retrieve Schema

{
    "name": "Campaign",
    "properties": {
        "descr": {
            "optional": true,
            "type": "string"
        },
        "campaignStages": {
            "startDate": {
                "optional": false,
                "type": "string",
                "format": "date-time"
            },
            "descr": {
                "optional": true,
                "type": "string"
            },
            "createdDate": {
                "optional": false,
                "type": "string",
                "format": "date-time"
            },
            "stageNumber": {
                "optional": true,
                "type": "integer"
            },
            "endDate": {
                "optional": false,
                "type": "string",
                "format": "date-time"
            },
            "name": {
                "optional": false,
                "type": "string",
                "minLength": 1,
                "maxLength": 100
            },
            "campaignOfferSets": {
                "startDate": {
                    "optional": true,
                    "type": "string",
                    "format": "date-time"
                },
                "descr": {
                    "optional": true,
                    "type": "string"
                },
                "endDate": {
                    "optional": true,
                    "type": "string",
                    "format": "date-time"
                },
                "code": {
                    "optional": true,
                    "type": "string",
                    "maxLength": 100
                },
                "batchId": {
                    "optional": true,
                    "type": "string"
                }
            }
        },
        "deletedDate": {
            "optional": true,
            "type": "string",
            "format": "date-time"
        },
        "endDate": {
            "optional": false,
            "type": "string",
            "format": "date-time"
        },
        "searchIndex": {
            "optional": true,
            "type": "string"
        },
        "name": {
            "optional": false,
            "type": "string",
            "minLength": 1,
            "maxLength": 100
        },
        "code": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "showOfferSets": {
            "optional": true,
            "type": "string",
            "maxLength": 1
        },
        "createdDate": {
            "optional": false,
            "type": "string",
            "format": "date-time"
        },
        "dateLastModified": {
            "optional": true,
            "type": "string",
            "format": "date-time"
        },
        "showStorePacks": {
            "optional": true,
            "type": "string",
            "maxLength": 1
        },
        "clientCode": {
            "optional": true,
            "type": "string"
        },
        "completedDate": {
            "optional": true,
            "type": "string",
            "format": "date-time"
        },
        "locale": {
            "optional": true,
            "type": "string",
            "maxLength": 10
        },
        "uuid": {
            "optional": true,
            "type": "string"
        },
        "startDate": {
            "optional": false,
            "type": "string",
            "format": "date-time"
        },
        "statRunTrigger": {
            "optional": true,
            "type": "string",
            "format": "date-time"
        }
    }
}


Create a Campaign in Canopy

Details

URL Structure https://api.canopyapp.net/api/erp/Campaign.format
Version 1.0
Method POST
Request Body A graph of the Campaign to be created in the format given. Attributes and to-one relationships must match the schema below.

Parameters

account
required
The System Account Code
timestamp
required
The request timestamp
signature
required
The generated authentication code for this request

Example Request

GET https://api.canopyapp.net/api/erp/Campaign.json
Request
                {
	"type": "Campaign",
	"clientCode": "123456",
	"code": "987654",
	"descr": "This is a campaign",
	"endDate": "2016-09-26T21:57:18.000+00:00",
	"isMarketingContent": null,
	"locale": null,
	"name": "Test Campaign",
	"startDate": "2016-09-26T21:57:18.000+00:00"
}
Response
{
    "id": 3434,
    "type": "Campaign",
    "clientCode": "123456",
    "code": "987654",
    "completedDate": null,
    "createdDate": "2016-09-26T23:42:39.083Z",
    "dateLastModified": "2016-09-27T00:20:07.838Z",
    "deletedDate": null,
    "descr": "This is a campaign",
    "endDate": "2016-09-26T23:42:37.590Z",
    "isMarketingContent": null,
    "locale": null,
    "name": "Test Campaign",
    "searchIndex": "Campaign a Test 123456 campaign is 987654 This",
    "showOfferSets": null,
    "showStorePacks": null,
    "startDate": "2016-09-26T23:42:37.592Z",
    "statRunTrigger": "2016-09-27T00:25:08.404Z",
    "uploadedPreviewAttachmentID": null,
    "uuid": "76bcb3c1-06f6-482f-866b-1b889995a415",
    "campaignStages": [
        {
            "id": 3449,
            "type": "CampaignStage",
            "createdDate": "2016-09-27T00:20:05.093Z",
            "descr": null,
            "endDate": "2016-09-27T00:20:05.094Z",
            "name": "New Stage",
            "stageNumber": 1,
            "startDate": "2016-09-27T00:20:05.094Z",
            "campaignOfferSets": []
        }
    ]
}		

Campaign Create Schema

{
    "name": "Campaign",
    "properties": {
        "descr": {
            "optional": true,
            "type": "string"
        },
        "uploadedPreviewAttachmentID": {
            "optional": true,
            "type": "integer"
        },
        "deletedDate": {
            "optional": true,
            "type": "string",
            "format": "date-time"
        },
        "endDate": {
            "optional": false,
            "type": "string",
            "format": "date-time"
        },
        "searchIndex": {
            "optional": true,
            "type": "string"
        },
        "name": {
            "optional": false,
            "type": "string",
            "minLength": 1,
            "maxLength": 100
        },
        "code": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "showOfferSets": {
            "optional": true,
            "type": "string",
            "maxLength": 1
        },
        "createdDate": {
            "optional": false,
            "type": "string",
            "format": "date-time"
        },
        "dateLastModified": {
            "optional": true,
            "type": "string",
            "format": "date-time"
        },
        "showStorePacks": {
            "optional": true,
            "type": "string",
            "maxLength": 1
        },
        "clientCode": {
            "optional": true,
            "type": "string"
        },
        "completedDate": {
            "optional": true,
            "type": "string",
            "format": "date-time"
        },
        "locale": {
            "optional": true,
            "type": "string",
            "maxLength": 10
        },
        "uuid": {
            "optional": true,
            "type": "string"
        },
        "isMarketingContent": {
            "optional": true,
            "type": "string",
            "maxLength": 1
        },
        "startDate": {
            "optional": false,
            "type": "string",
            "format": "date-time"
        },
        "statRunTrigger": {
            "optional": true,
            "type": "string",
            "format": "date-time"
        }
    }
}


Update a Campaign in Canopy

Details

URL Structure https://api.canopyapp.net/api/erp/Campaign/identifier.format
Version 1.0
Method POST
Request Body A graph of the Campaign to be updated in the format given. Attributes and to-one relationships must match the schema below.

Parameters

account
required
The System Account Code
timestamp
required
The request timestamp
signature
required
The generated authentication code for this request

Example Request

GET https://api.canopyapp.net/api/erp/Campaign/identifier.json
Request
                {
	"type": "Campaign",
	"clientCode": "123456",
	"code": "987654",
	"descr": "This is a campaign",
	"endDate": "2016-09-26T21:57:18.000+00:00",
	"isMarketingContent": null,
	"locale": null,
	"name": "Test Campaign",
	"startDate": "2016-09-26T21:57:18.000+00:00"
}
Response
{
    "id": 3434,
    "type": "Campaign",
    "clientCode": "123456",
    "code": "987654",
    "completedDate": null,
    "createdDate": "2016-09-26T23:42:39.083Z",
    "dateLastModified": "2016-09-27T00:20:07.838Z",
    "deletedDate": null,
    "descr": "This is a campaign",
    "endDate": "2016-09-26T23:42:37.590Z",
    "isMarketingContent": null,
    "locale": null,
    "name": "Test Campaign",
    "searchIndex": "Campaign a Test 123456 campaign is 987654 This",
    "showOfferSets": null,
    "showStorePacks": null,
    "startDate": "2016-09-26T23:42:37.592Z",
    "statRunTrigger": "2016-09-27T00:25:08.404Z",
    "uploadedPreviewAttachmentID": null,
    "uuid": "76bcb3c1-06f6-482f-866b-1b889995a415",
    "campaignStages": [
        {
            "id": 3449,
            "type": "CampaignStage",
            "createdDate": "2016-09-27T00:20:05.093Z",
            "descr": null,
            "endDate": "2016-09-27T00:20:05.094Z",
            "name": "New Stage",
            "stageNumber": 1,
            "startDate": "2016-09-27T00:20:05.094Z",
            "campaignOfferSets": []
        }
    ]
}		

Campaign Update Schema

{
    "name": "Campaign",
    "properties": {
        "descr": {
            "optional": true,
            "type": "string"
        },
        "uploadedPreviewAttachmentID": {
            "optional": true,
            "type": "integer"
        },
        "deletedDate": {
            "optional": true,
            "type": "string",
            "format": "date-time"
        },
        "endDate": {
            "optional": false,
            "type": "string",
            "format": "date-time"
        },
        "searchIndex": {
            "optional": true,
            "type": "string"
        },
        "name": {
            "optional": false,
            "type": "string",
            "minLength": 1,
            "maxLength": 100
        },
        "code": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "showOfferSets": {
            "optional": true,
            "type": "string",
            "maxLength": 1
        },
        "createdDate": {
            "optional": false,
            "type": "string",
            "format": "date-time"
        },
        "dateLastModified": {
            "optional": true,
            "type": "string",
            "format": "date-time"
        },
        "showStorePacks": {
            "optional": true,
            "type": "string",
            "maxLength": 1
        },
        "clientCode": {
            "optional": true,
            "type": "string"
        },
        "completedDate": {
            "optional": true,
            "type": "string",
            "format": "date-time"
        },
        "locale": {
            "optional": true,
            "type": "string",
            "maxLength": 10
        },
        "uuid": {
            "optional": true,
            "type": "string"
        },
        "isMarketingContent": {
            "optional": true,
            "type": "string",
            "maxLength": 1
        },
        "startDate": {
            "optional": false,
            "type": "string",
            "format": "date-time"
        },
        "statRunTrigger": {
            "optional": true,
            "type": "string",
            "format": "date-time"
        }
    }
}


Mark Up Files into a Campaign in Canopy. This will return a JSON packet of the path to put the files and folders, to be imported into a Make Up File Set.

Details

URL Structure https://api.canopyapp.net/api/erp/Campaign/identifier/importDetails.format
Version 1.0
Method GET
Request Body

Parameters

account
required
The System Account Code
timestamp
required
The request timestamp
signature
required
The generated authentication code for this request

Example Request

GET https://api.canopyapp.net/api/erp/Campaign/identifier/importDetails.json
Response
{
"bucket": "nameofabucket"
"path": "pathtoafoldertouploadyourfilesandfoldersto"
"region": "theregiontouploadinto"
}	



This will trigger the import of files and folders from the location supplied in the import details call. The files and folders will be removed during the import. This will respond simply with a HTTP 200 indicating that the task has been created to move the files into a Make Up File Set. After this the folder should be emptied and a new Make Up File Set created.

Details

URL Structure https://api.canopyapp.net/api/erp/Campaign/identifier/beginImport.format
Version 1.0
Method GET

Parameters

account
required
The System Account Code
timestamp
required
The request timestamp
signature
required
The generated authentication code for this request

Example Request

GET https://api.canopyapp.net/api/erp/Campaign/identifier/beginImport..json

This is an Index or Search of the Job library, with optional batched results, optional search qualification, optional sort orderings.

Details

URL Structure https://api.canopyapp.net/api/erp/CampaignDocument.<format>?batchSize=<batchSize>&batch=<batch>&qualifier=<qualifier>&sort=<sort>
Version 1.0
Method GET

Parameters

account
required
The System Account Code
timestamp
required
The request timestamp
signature
required
The generated authentication code for this request
batchSize
optional
Number of Job in each batch
batch
optional
The batch to include in the response
qualifier
optional
A simple qualification on the Job objects
sort
optional
A comma delimited list of sort criteria - left hand side is the Job attribute, right hand side the sort direction.

Example Request

GET https://api.canopyapp.net/api/erp/CampaignDocument.json
Request
[Empty Request Body]
Response
 [
    {
        "id": 4688,
        "type": "CampaignDocument",
        "code": "",
        "descr": "Job One",
        "name": "PRESANTATION PLOTS",
        "documentType": {
            "id": 1,
            "type": "DocumentType",
            "dateRetired": null,
            "descr": "A publication containing details and often photographs of items for sale, esp. one produced by a mail-order company.",
            "name": "Catalogue"
        },
        "campaignRegions": [],
        "disclaimers": [],
        "startDateAsString": "31 Jul 2016",
        "endDateAsString": "31 Jul 2016",
        "documentSegmentsOrdered": []
    }
]
  	

Job Index / Search Schema

 {
    "name": "CampaignDocument",
    "properties": {
        "descr": {
            "optional": true,
            "type": "string"
        },
        "documentType": {
            "dateRetired": {
                "optional": true,
                "type": "string",
                "format": "date-time"
            },
            "descr": {
                "optional": true,
                "type": "string"
            },
            "name": {
                "optional": false,
                "type": "string",
                "minLength": 1,
                "maxLength": 100
            }
        },
        "disclaimers": {
            "infoURL": {
                "optional": true,
                "type": "string",
                "maxLength": 255
            },
            "disclaimer": {
                "optional": false,
                "type": "string"
            },
            "code": {
                "optional": true,
                "type": "string",
                "maxLength": 100
            }
        },
        "name": {
            "optional": false,
            "type": "string",
            "minLength": 1,
            "maxLength": 100
        },
        "code": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "campaignRegions": {
            "descr": {
                "optional": true,
                "type": "string"
            },
            "geometry": {
                "optional": true,
                "type": "string"
            },
            "dateRetired": {
                "optional": true,
                "type": "string",
                "format": "date-time"
            },
            "dateCreated": {
                "optional": true,
                "type": "string",
                "format": "date-time"
            },
            "name": {
                "optional": false,
                "type": "string",
                "minLength": 1,
                "maxLength": 100
            },
            "latitude": {
                "optional": true,
                "type": "string",
                "maxLength": 100
            },
            "longitude": {
                "optional": true,
                "type": "string",
                "maxLength": 100
            }
        }
    }
}


Retrieve an existing Job in Canopy

Details

URL Structure https://api.canopyapp.net/api/erp/Campaign/identifier.format
Version 1.0
Method POST
Request Body A graph of the Job to be created in the format given. Attributes and to-one relationships must match the schema below.

Parameters

account
required
The System Account Code
timestamp
required
The request timestamp
signature
required
The generated authentication code for this request

Example Request

GET https://api.canopyapp.net/api/erp/CampaignDocument/4688.json
Request
[Empty Request Body]
Response
[
    {
        "id": 4688,
        "type": "CampaignDocument",
        "code": "",
        "descr": "Job One",
        "name": "PRESANTATION PLOTS",
        "documentType": {
            "id": 1,
            "type": "DocumentType",
            "dateRetired": null,
            "descr": "A publication containing details and often photographs of items for sale, esp. one produced by a mail-order company.",
            "name": "Catalogue"
        },
        "campaignRegions": [],
        "disclaimers": [],
        "startDateAsString": "31 Jul 2016",
        "endDateAsString": "31 Jul 2016",
        "documentSegmentsOrdered": []
    }
]

Job Retrieve Schema

{
    "name": "CampaignDocument",
    "properties": {
        "descr": {
            "optional": true,
            "type": "string"
        },
        "documentType": {
            "dateRetired": {
                "optional": true,
                "type": "string",
                "format": "date-time"
            },
            "descr": {
                "optional": true,
                "type": "string"
            },
            "name": {
                "optional": false,
                "type": "string",
                "minLength": 1,
                "maxLength": 100
            }
        },
        "disclaimers": {
            "infoURL": {
                "optional": true,
                "type": "string",
                "maxLength": 255
            },
            "disclaimer": {
                "optional": false,
                "type": "string"
            },
            "code": {
                "optional": true,
                "type": "string",
                "maxLength": 100
            }
        },
        "name": {
            "optional": false,
            "type": "string",
            "minLength": 1,
            "maxLength": 100
        },
        "code": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "campaignRegions": {
            "descr": {
                "optional": true,
                "type": "string"
            },
            "geometry": {
                "optional": true,
                "type": "string"
            },
            "dateRetired": {
                "optional": true,
                "type": "string",
                "format": "date-time"
            },
            "dateCreated": {
                "optional": true,
                "type": "string",
                "format": "date-time"
            },
            "name": {
                "optional": false,
                "type": "string",
                "minLength": 1,
                "maxLength": 100
            },
            "latitude": {
                "optional": true,
                "type": "string",
                "maxLength": 100
            },
            "longitude": {
                "optional": true,
                "type": "string",
                "maxLength": 100
            }
        }
    }
}


Create a Job in Canopy

Details

URL Structure https://api.canopyapp.net/api/erp/CampaignDocument.format
Version 1.0
Method POST
Request Body A graph of the Job to be created in the format given. Attributes and to-one relationships must match the schema below.

Parameters

account
required
The System Account Code
timestamp
required
The request timestamp
signature
required
The generated authentication code for this request

Example Request

GET https://api.canopyapp.net/api/erp/CampaignDocument.json
Request
            {
    "type": "CampaignDocument",
    "code": "",
    "descr": "Job test",
    "name": "First Job",
    "documentType": {
        "id": 1,
        "type": "DocumentType",
        "dateRetired": null,
        "descr": "A publication containing details and often photographs of items for sale, esp. one produced by a mail-order company.",
        "name": "Catalogue"
    },
    "startDate": "2016-09-26T21:57:18.000+00:00",
    "endDate": "2016-09-26T21:57:18.000+00:00",
    "campaignStage": {
        "id": 3449
        }
}
            
Response
{
    "id": 5090,
    "type": "CampaignDocument",
    "code": null,
    "descr": "Job test",
    "name": "First Job",
    "documentType": {
        "id": 1,
        "type": "DocumentType",
        "dateRetired": null,
        "descr": "A publication containing details and often photographs of items for sale, esp. one produced by a mail-order company.",
        "name": "Catalogue"
    },
    "campaignRegions": [],
    "disclaimers": [],
    "startDateAsString": "27 Sep 2016",
    "endDateAsString": "27 Sep 2016",
    "documentSegmentsOrdered": []
}
		

Job Create Schema

{
    "name": "CampaignDocument",
    "properties": {
        "descr": {
            "optional": true,
            "type": "string"
        },
        "name": {
            "optional": false,
            "type": "string",
            "minLength": 1,
            "maxLength": 100
        },
        "campaignStage": {
            "id": {
                "optional": false,
                "type": "integer"
            }
        },
        "clientCode": {
            "optional": true,
            "type": "string"
        },
        "completedDate": {
            "optional": true,
            "type": "string",
            "format": "date-time"
        },

        "clientReferenceNum": {
            "optional": true,
            "type": "string"
        },
        "endDate": {
            "optional": false,
            "type": "string",
            "format": "date-time"
        },
        "code": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "startDate": {
            "optional": false,
            "type": "string",
            "format": "date-time"
        },
        "documentType": {
            "dateRetired": {
                "optional": true,
                "type": "string",
                "format": "date-time"
            },
            "descr": {
                "optional": true,
                "type": "string"
            },
            "name": {
                "optional": false,
                "type": "string",
                "minLength": 1,
                "maxLength": 100
            }
        }
    }
}


Update a Job in Canopy

Details

URL Structure https://api.canopyapp.net/api/erp/CampaignDocument/identifier.format
Version 1.0
Method POST
Request Body A graph of the Job to be updated in the format given. Attributes and to-one relationships must match the schema below.

Parameters

account
required
The System Account Code
timestamp
required
The request timestamp
signature
required
The generated authentication code for this request

Example Request

GET https://api.canopyapp.net/api/erp/CampaignDocument/identifier.json
Request
      {
    "type": "CampaignDocument",
    "code": "",
    "descr": "Job test",
    "name": "First Job",
    "documentType": {
        "id": 1,
        "type": "DocumentType",
        "dateRetired": null,
        "descr": "A publication containing details and often photographs of items for sale, esp. one produced by a mail-order company.",
        "name": "Catalogue"
    },
    "startDate": "2016-09-26T21:57:18.000+00:00",
    "endDate": "2016-09-26T21:57:18.000+00:00",
    "campaignStage": {
        "id": 3449
        }
}
      
Response
{
    "id": 5090,
    "type": "CampaignDocument",
    "code": null,
    "descr": "Job test",
    "name": "First Job",
    "documentType": {
        "id": 1,
        "type": "DocumentType",
        "dateRetired": null,
        "descr": "A publication containing details and often photographs of items for sale, esp. one produced by a mail-order company.",
        "name": "Catalogue"
    },
    "campaignRegions": [],
    "disclaimers": [],
    "startDateAsString": "27 Sep 2016",
    "endDateAsString": "27 Sep 2016",
    "documentSegmentsOrdered": []
}
		

Job Update Schema

{
    "name": "CampaignDocument",
    "properties": {
        "descr": {
            "optional": true,
            "type": "string"
        },
        "name": {
            "optional": false,
            "type": "string",
            "minLength": 1,
            "maxLength": 100
        },
        "campaignStage": {
            "id": {
                "optional": false,
                "type": "integer"
            }
        },
        "clientCode": {
            "optional": true,
            "type": "string"
        },
        "completedDate": {
            "optional": true,
            "type": "string",
            "format": "date-time"
        },

        "clientReferenceNum": {
            "optional": true,
            "type": "string"
        },
        "endDate": {
            "optional": false,
            "type": "string",
            "format": "date-time"
        },
        "code": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "startDate": {
            "optional": false,
            "type": "string",
            "format": "date-time"
        },
        "documentType": {
            "dateRetired": {
                "optional": true,
                "type": "string",
                "format": "date-time"
            },
            "descr": {
                "optional": true,
                "type": "string"
            },
            "name": {
                "optional": false,
                "type": "string",
                "minLength": 1,
                "maxLength": 100
            }
        }
    }
}


This will trigger the replacement of the current final document ( if any ) and the render of the new document supplied. The API will respond with a HTTP Code of 200 if successful, else an error msg will be returned.

Details

URL Structure https://api.canopyapp.net/api/erp/CampaignDocument/identifier/uploadFinalFile.format
Version 1.0
Method POST
Request Body The file to set as the final document.

Parameters

account
required
The System Account Code
timestamp
required
The request timestamp
signature
required
The generated authentication code for this request

Example Request

GET https://api.canopyapp.net/api/erp/CampaignDocument/identifier/uploadFinalFile.json
Request
                File to import

      

This is an Index or Search of the Offer library, with optional batched results, optional search qualification, optional sort orderings.

Details

URL Structure https://api.canopyapp.net/api/erp/Offer.<format>?batchSize=<batchSize>&batch=<batch>&qualifier=<qualifier>&sort=<sort>
Version 1.0
Method GET

Parameters

account
required
The System Account Code
timestamp
required
The request timestamp
signature
required
The generated authentication code for this request
batchSize
optional
Number of Offers in each batch
batch
optional
The batch to include in the response
qualifier
optional
A simple qualification on the Offer objects
sort
optional
A comma delimited list of sort criteria - left hand side is the Offer attribute, right hand side the sort direction.

Example Request

GET https://api.canopyapp.net/api/erp/Offer.json
Request
[Empty Request Body]
Response
[
    {
        "id": "b49918a6-2d47-4057-93b0-bd4a1091573d",
        "type": "PublicOffer",
        "advertDetails": null,
        "approvedDate": "2011-12-05T11:47:26.700Z",
        "assetKeys": null,
        "code": "b49918a6-2d47-4057-93b0-bd4a1091573d",
        "createdDate": "2011-12-05T11:46:58.259Z",
        "dateLastUpdated": "2011-12-05T11:46:58.259Z",
		"department": null,
		"discountType": null,
		"domain": null,
        "endDate": "2011-12-16T00:00:00.000Z",
        "leaseBuyPlanDetails": null,
        "localOffer": null,
        "multiBuyQuantity": null,
        "offerDescr": "Product A Description",
        "offerName": "Product A Description",
        "offerType": "S",
        "offerTypeDescr": null,
		"onsaleFriday": null,
		"onsaleMidweek": null,
		"origOfferReference": null,
        "origXML": null,
		"packagedOffer": null,
		"pageIn": 2,
		"position": "1234 5678 9012 3456",
		"previousPrice": "6.25",
		"region": "FNQ",
        "rejectedDate": null,
        "retiredDate": null,
        "saveCurrency": 1.26,
        "saveString": null,
        "sellCurrency": 4.99,
        "sellDecoration": "4.99",
        "sellString": null,
        "startDate": "2014-12-01T00:00:00.000Z",
        "tactic" : null,
        "tags": null,
        "termType": null,
        "unit": "100 Millilitres",
        "unitPrice": "0.49",
        "codedSnippet": ""
    },
    {
        "id": "caee05a4-20b5-4204-bf24-8c750222eb7e",
        "type": "PublicOffer",
        "advertDetails": null,
        "approvedDate": "2011-12-05T11:53:34.259Z",
        "assetKeys": null,
        "code": "caee05a4-20b5-4204-bf24-8c750222eb7e",
        "createdDate": "2011-12-05T11:52:57.536Z",
        "dateLastUpdated": "2011-12-05T11:46:58.259Z",
		"department": null,
		"discountType": null,
		"domain": null,
        "endDate": "2011-12-31T00:00:00.000Z",
        "leaseBuyPlanDetails": null,
        "localOffer": null,
        "multiBuyQuantity": null,
        "offerDescr": "Product B Description",
        "offerName": "Product B Description",
        "offerType": "S",
        "offerTypeDescr": null,
		"onsaleFriday": null,
		"onsaleMidweek": null,
		"origOfferReference": null,
        "origXML": null,
		"packagedOffer": null,
		"pageIn": 2,
		"position": "1234 5678 9012 3456",
        "previousPrice": "6.99",
		"region": "FNQ",
        "rejectedDate": null,
        "retiredDate": null,
        "saveCurrency": 1.44,
        "saveString": null,
        "sellCurrency": 5.55,
        "sellDecoration": "5.55",
        "sellString": null,
        "startDate": "2014-12-01T00:00:00.000Z",
        "tactic" : null,
        "tags": null,
        "termType": null,
        "unit": "100 Millilitres",
        "unitPrice": "0.55",
        "codedSnippet": ""
    },
    {
        "id": "1cdfd479-c262-40eb-bac1-fe3b3bd8b23f",
        "type": "PublicOffer",
        "advertDetails": null,
        "approvedDate": null,
        "assetKeys": "S074411-3D_1.tif",
        "code": "1cdfd479-c262-40eb-bac1-fe3b3bd8b23f",
        "createdDate": "2011-12-05T15:53:40.101Z",
        "dateLastUpdated": "2011-12-05T11:46:58.259Z",
		"department": null,
		"discountType": null,
		"domain": null,
        "endDate": "2011-09-30T00:00:00.000Z",
        "leaseBuyPlanDetails": null,
        "localOffer": null,
        "multiBuyQuantity": null,
        "offerDescr": "Product C Description",
        "offerName": "Product C Description",
        "offerType": "S",
        "offerTypeDescr": null,
		"onsaleFriday": null,
		"onsaleMidweek": null,
		"origOfferReference": null,
        "origXML": null,
		"packagedOffer": null,
		"pageIn": 2,
		"position": "1234 5678 9012 3456",
        "previousPrice": "3.87",
		"region": "FNQ",
        "rejectedDate": null,
        "retiredDate": null,
        "saveCurrency": 0.87,
        "saveString": null,
        "sellCurrency": 3,
        "sellDecoration": null,
        "sellString": null,
        "startDate": "2014-09-01T00:00:00.000Z",
        "tactic" : null,
        "tags": null,
        "termType": null,
        "unit": "ea",
        "unitPrice": "3",
        "codedSnippet": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAMCA.... "
    }
]				

Offer Index / Search Schema

{
    "name": "PublicOffer",
    "properties": {
        "sellCurrency": {
            "optional": true,
            "type": "number"
        },
        "assetKeys": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "approvedDate": {
            "optional": true,
            "type": "string",
            "format": "date-time"
        },
        "offerDescr": {
            "optional": true,
            "type": "string",
            "maxLength": 255
        },
        "sellString": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "unit": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "rejectedDate": {
            "optional": true,
            "type": "string",
            "format": "date-time"
        },
        "advertDetails": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "createdDate": {
            "optional": false,
            "type": "string",
            "format": "date-time"
        },
        "previousPrice": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "origXML": {
            "optional": true,
            "type": "string"
        },
        "tags": {
            "optional": true,
            "type": "string"
        },
        "saveString": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "code": {
            "optional": false,
            "type": "string",
            "minLength": 1,
            "maxLength": 100
        },
        "unitPrice": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "endDate": {
            "optional": true,
            "type": "string",
            "format": "date-time"
        },
        "leaseBuyPlanDetails": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "saveCurrency": {
            "optional": true,
            "type": "number"
        },
        "startDate": {
            "optional": true,
            "type": "string",
            "format": "date-time"
        },
        "sellDecoration": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "offerType": {
            "optional": true,
            "type": "string",
            "maxLength": 1
        },
        "retiredDate": {
            "optional": true,
            "type": "string",
            "format": "date-time"
        },
        "multiBuyQuantity": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        }
    }
}


Retrieve an existing Offer in Canopy

Details

URL Structure https://api.canopyapp.net/api/erp/Offer/identifier.format
Version 1.0
Method POST
Request Body A graph of the Offer to be created in the format given. Attributes and to-one relationships must match the schema below.

Parameters

account
required
The System Account Code
timestamp
required
The request timestamp
signature
required
The generated authentication code for this request

Example Request

GET https://api.canopyapp.net/api/erp/Offer/7842b493-fd20-4f29-a186-fa2c44a35061.json
Request
[Empty Request Body]
Response
{
    "id": "7842b493-fd20-4f29-a186-fa2c44a35061",
    "type": "PublicOffer",
    "advertDetails": null,
    "approvedDate": "2011-12-07T10:08:04.297Z",
    "assetKeys": null,
    "code": "7842b493-fd20-4f29-a186-fa2c44a35061",
    "createdDate": "2011-11-11T14:00:53.195Z",
    "endDate": "2012-04-12T00:00:00.000Z",
    "leaseBuyPlanDetails": null,
    "multiBuyQuantity": null,
    "offerDescr": "Product D",
    "offerType": "S",
    "origXML": null,
    "previousPrice": "14.99",
    "rejectedDate": null,
    "retiredDate": null,
    "saveCurrency": 2,
    "saveString": null,
    "sellCurrency": 12.99,
    "sellDecoration": "12.99",
    "sellString": null,
    "startDate": "2011-09-01T00:00:00.000Z",
    "tags": null,
    "unit": "3",
    "unitPrice": "19",
    "codedSnippet": ""
}				

Offer Retrieve Schema

{
    "name": "PublicOffer",
    "properties": {
        "sellCurrency": {
            "optional": true,
            "type": "number"
        },
        "assetKeys": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "approvedDate": {
            "optional": true,
            "type": "string",
            "format": "date-time"
        },
        "offerDescr": {
            "optional": true,
            "type": "string",
            "maxLength": 255
        },
        "sellString": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "unit": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "rejectedDate": {
            "optional": true,
            "type": "string",
            "format": "date-time"
        },
        "advertDetails": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "createdDate": {
            "optional": false,
            "type": "string",
            "format": "date-time"
        },
        "previousPrice": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "origXML": {
            "optional": true,
            "type": "string"
        },
        "tags": {
            "optional": true,
            "type": "string"
        },
        "saveString": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "code": {
            "optional": false,
            "type": "string",
            "minLength": 1,
            "maxLength": 100
        },
        "unitPrice": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "endDate": {
            "optional": true,
            "type": "string",
            "format": "date-time"
        },
        "leaseBuyPlanDetails": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "saveCurrency": {
            "optional": true,
            "type": "number"
        },
        "startDate": {
            "optional": true,
            "type": "string",
            "format": "date-time"
        },
        "sellDecoration": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "offerType": {
            "optional": true,
            "type": "string",
            "maxLength": 1
        },
        "retiredDate": {
            "optional": true,
            "type": "string",
            "format": "date-time"
        },
        "multiBuyQuantity": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        }
    }
}


Create a new Offer in Canopy

Details

URL Structure https://api.canopyapp.net/api/erp/Offer/Identifier.format
Version 1.0
Method POST
Request Body A graph of the Offer to be created in the format given. Attributes and to-one relationships must match the schema below.

Parameters

account
required
The System Account Code
timestamp
required
The request timestamp
signature
required
The generated authentication code for this request

Example Request

POST https://api.canopyapp.net/api/erp/Offer.json
Request
{
    "type": "PublicOffer",
    "advertDetails": "TVC 3347-J",
    "approvedDate": null,
    "assetKeys": null,
    "code": "1989739",
    "codedSnippet": null,
    "endDate": "2013-09-12T00:34:32.384Z",
    "id": null,
    "leaseBuyPlanDetails": null,
    "multiBuyQuantity": null,
    "offerDescr": null,
    "offerType": null,
    "origXML": null,
    "previousPrice": null,
    "saveString": "2.00",
    "sellDecoration": "Only Available this month",
    "sellString": null,
    "tags": null,
    "unit": "1",
    "unitPrice": null,
    "uuid": null,
    "createdDate": null,
    "rejectedDate": null,
    "retiredDate": null,
    "saveCurrency": null,
    "sellCurrency": null,
    "startDate": "2013-08-12T00:34:32.384Z"
}
Response
{
    "id": "7842b493-fd20-4f29-a186-fa2c44a35061",
    "type": "PublicOffer",
    "advertDetails": "TVC 3347-J",
    "approvedDate": null,
    "assetKeys": null,
    "code": "1989739",
    "createdDate": "2013-08-02T00:34:32.384Z",
    "endDate": "2013-09-12T00:34:32.384Z",
    "leaseBuyPlanDetails": null,
    "multiBuyQuantity": null,
    "offerDescr": null,
    "offerType": null,
    "origXML": null,
    "previousPrice": null,
    "rejectedDate": null,
    "retiredDate": null,
    "saveCurrency": null,
    "saveString": "2.00",
    "sellCurrency": null,
    "sellDecoration": "Only Available this month",
    "sellString": null,
    "startDate": "2013-08-12T00:34:32.384Z",
    "tags": null,
    "unit": "1",
    "unitPrice": null,
    "codedSnippet": ""
}

Offer Create Schema

{
    "name": "PublicOffer",
    "properties": {
        "sellDecoration": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "sellCurrency": {
            "optional": true,
            "type": "number"
        },
        "assetKeys": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "offerDescr": {
            "optional": true,
            "type": "string",
            "maxLength": 255
        },
        "sellString": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "unit": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "endDate": {
            "optional": true,
            "type": "string",
            "format": "date-time"
        },
        "leaseBuyPlanDetails": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "saveString": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "startDate": {
            "optional": true,
            "type": "string",
            "format": "date-time"
        },
        "previousPrice": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "advertDetails": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "offerType": {
            "optional": true,
            "type": "string",
            "maxLength": 1
        },
        "multiBuyQuantity": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "tags": {
            "optional": true,
            "type": "string"
        },
        "unitPrice": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "saveCurrency": {
            "optional": true,
            "type": "number"
        }
    }
}


Update an existing Offer in Canopy

Details

URL Structure https://api.canopyapp.net/api/erp/Offer/Identifier.format
Version 1.0
Method PUT
Request Body A graph of the Offer to be updated in the format given. Attributes and to-one relationships must match the schema below.

Parameters

account
required
The System Account Code
timestamp
required
The request timestamp
signature
required
The generated authentication code for this request

Example Request

PUT https://api.canopyapp.net/api/erp/Offer/7842b493-fd20-4f29-a186-fa2c44a35061.json
Request
{
    "type": "PublicOffer",
    "advertDetails": null,
    "approvedDate": "2011-12-07T10:08:04.297Z",
    "assetKeys": null,
    "code": "7842b493-fd20-4f29-a186-fa2c44a35061",
    "codedSnippet": null,
    "id": "7842b493-fd20-4f29-a186-fa2c44a35061",
    "leaseBuyPlanDetails": null,
    "multiBuyQuantity": null,
    "offerDescr": "Barbecue Sauce 420ml",
    "offerType": "S",
    "origXML": null,
    "previousPrice": "14.99",
    "saveString": null,
    "sellDecoration": "12.99",
    "sellString": null,
    "tags": "tag a, tag b, tag c",
    "unit": "3",
    "unitPrice": "14",
    "uuid": null,
    "createdDate": {
        "type": "DateTime"
    },
    "endDate": {
        "type": "DateTime"
    },
    "rejectedDate": null,
    "retiredDate": null,
    "saveCurrency": 2,
    "sellCurrency": 12.99,
    "startDate": {
        "type": "DateTime"
    }
}             
Response
{
    "id": "7842b493-fd20-4f29-a186-fa2c44a35061",
    "type": "PublicOffer",
    "advertDetails": null,
    "approvedDate": "2011-12-07T10:08:04.297Z",
    "assetKeys": null,
    "code": "7842b493-fd20-4f29-a186-fa2c44a35061",
    "createdDate": "2011-11-11T14:00:53.195Z",
    "endDate": "2012-04-12T00:00:00.000Z",
    "leaseBuyPlanDetails": null,
    "multiBuyQuantity": null,
    "offerDescr": "Barbecue Sauce 420ml",
    "offerType": "S",
    "origXML": null,
    "previousPrice": "14.99",
    "rejectedDate": null,
    "retiredDate": null,
    "saveCurrency": 2,
    "saveString": null,
    "sellCurrency": 12.99,
    "sellDecoration": "12.99",
    "sellString": null,
    "startDate": "2011-09-01T00:00:00.000Z",
    "tags": "tag a, tag b, tag c",
    "unit": "3",
    "unitPrice": "14",
    "codedSnippet": ""
}				

Offer Update Schema

{
    "name": "PublicOffer",
    "properties": {
        "sellDecoration": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "sellCurrency": {
            "optional": true,
            "type": "number"
        },
        "assetKeys": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "offerDescr": {
            "optional": true,
            "type": "string",
            "maxLength": 255
        },
        "sellString": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "unit": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "endDate": {
            "optional": true,
            "type": "string",
            "format": "date-time"
        },
        "leaseBuyPlanDetails": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "saveString": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "startDate": {
            "optional": true,
            "type": "string",
            "format": "date-time"
        },
        "previousPrice": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "advertDetails": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "offerType": {
            "optional": true,
            "type": "string",
            "maxLength": 1
        },
        "multiBuyQuantity": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "tags": {
            "optional": true,
            "type": "string"
        },
        "unitPrice": {
            "optional": true,
            "type": "string",
            "maxLength": 100
        },
        "saveCurrency": {
            "optional": true,
            "type": "number"
        }
    }
}


Retire an existing Offer in Canopy

Details

URL Structure https://api.canopyapp.net/api/erp/Offer/Identifier.format
Version 1.0
Method DELETE
Request Body A graph of the Offer to be retired in the format given. Attributes and to-one relationships must match the schema below.

Parameters

account
required
The System Account Code
timestamp
required
The request timestamp
signature
required
The generated authentication code for this request

Example Request

DELETE https://api.canopyapp.net/api/erp/Offer/7842b493-fd20-4f29-a186-fa2c44a35061.json
Request
[Empty Request Body]
Response
{
    "id": "7842b493-fd20-4f29-a186-fa2c44a35061",
    "type": "PublicOffer",
    "advertDetails": "TVC 43985-J",
    "approvedDate": null,
    "assetKeys": null,
    "code": "1989739",
    "createdDate": "2013-08-02T00:34:32.384Z",
    "endDate": null,
    "leaseBuyPlanDetails": null,
    "multiBuyQuantity": null,
    "offerDescr": null,
    "offerType": null,
    "origXML": null,
    "previousPrice": null,
    "rejectedDate": null,
    "retiredDate": "2013-08-16T00:36:52.003Z",
    "saveCurrency": null,
    "saveString": null,
    "sellCurrency": null,
    "sellDecoration": null,
    "sellString": null,
    "startDate": null,
    "tags": null,
    "unit": null,
    "unitPrice": null,
    "codedSnippet": ""
}				

Offer Retire Schema

{
    "name": "PublicOffer",
    "properties": {
        "nil": "true"
    }
}

This is an Index or Search of the Recipe library, with optional batched results, optional search qualification, optional sort orderings.

Details

URL Structure https://api.canopyapp.net/api/erp/Recipe.<format>?batchSize=<batchSize>&batch=<batch>&qualifier=<qualifier>&sort=<sort>&tags=<tags>
Version 1.0
Method GET

Parameters

account
required
The System Account Code
timestamp
required
The request timestamp
signature
required
The generated authentication code for this request
batchSize
optional
Number of Recipes in each batch
batch
optional
The batch to include in the response
qualifier
optional
A simple qualification on the Recipe objects
sort
optional
A comma delimited list of sort criteria - left hand side is the Recipe attribute, right hand side the sort direction.
tags
optional
A semi-colon delimited list of tag criteria - each list item a colon delimited tuple of tag group and value.
For example:
tags=Cusine:Indian;Course:Dinner;
search
optional
Free form search across Recipe name, description, ingredients, steps and preparation data.

Example Request

GET https://api.canopyapp.net/api/erp/Recipe.json
Request
[Empty Request Body]
Response
[
    {
        "uuid": "d5ba6820-7c29-11e5-8bcf-feff819cdc9f",
        "type": "Recipe",
        "id": "d5ba6820-7c29-11e5-8bcf-feff819cdc9f",
        "descr": "Delicious chicken served with chipolte peppers, not too spicy!",
        "name": "Chipotle Chicken"
    },
    {
        "uuid": "e02137bc-7c29-11e5-8bcf-feff819cdc9f",
        "type": "Recipe",
        "id": "e02137bc-7c29-11e5-8bcf-feff819cdc9f",
        "descr": "Put your leftover ham to work",
        "name": "Slow Cooker Ham & Bean Soup"
    },
    {
        "uuid": "f0ed4f18-7c29-11e5-8bcf-feff819cdc9f",
        "type": "Recipe",
        "id": "f0ed4f18-7c29-11e5-8bcf-feff819cdc9f",
        "descr": "Fatastic Dessert with fluffy marshmallow and rich chocolate",
        "name": "Chocolate Marshmallow Cake"
    }
]

				

Example Tag Search (Cuisine, Course)

GET https://api.canopyapp.net/api/erp/Recipe.json?tags=Cuisine:Indian;Course:Lunch
Request
[Empty Request Body]
Response
[
	{
		"id":"22489248-80ee-11e5-8bcf-feff819cdc9f",
		"type":"Recipe",
		"descr":"Enjoy the taste of India at home with this flavour-packed recipe for Coriander & Coconut Fish Parcel. ",
		"name":"Coriander & Coconut Fish Parcel  ",
		"uuid":"22489248-80ee-11e5-8bcf-feff819cdc9f"
	},
	{
		"id":"5017c3ce-80ee-11e5-8bcf-feff819cdc9f",
		"type":"Recipe",
		"descr":"Serve these fresh, hot and crunchy Cucumber & Chilli Pappadums as a tasty side to a spicy curry. ",
		"name":"Cucumber & Chilli Pappadums  ",
		"uuid":"5017c3ce-80ee-11e5-8bcf-feff819cdc9f"
	},
	{
		"id":"3735e700-80ee-11e5-8bcf-feff819cdc9f",
		"type":"Recipe",
		"descr":"Easy and nutritious, this curried lentils recipe combines warm spices, butternut pumpkin and smooth yoghurt into a fragrant and tasty meal! ",
		"name":"Curried Pumpkin Lentils with Yoghurt",
		"uuid":"3735e700-80ee-11e5-8bcf-feff819cdc9f"
	}
]

				

Example Tag Search (Key Ingredient)

GET https://api.canopyapp.net/api/erp/Recipe.json?tags=KeyIngredients:Beef;
Request
[Empty Request Body]
Response
[
	{
		"id":"301e4ff0-80f0-11e5-8bcf-feff819cdc9f",
		"type":"Recipe",
		"descr":"Brimming full with hearty flavours, this beef and bolognese favourite is a real crowd pleaser.",
		"name":"Beef and Mushroom Bolognese",
		"uuid":"301e4ff0-80f0-11e5-8bcf-feff819cdc9f"
	},
	{
		"id":"50c7d2e4-80f0-11e5-8bcf-feff819cdc9f",
		"type":"Recipe",
		"descr":"This is a quick and easy meal but make sure you have everything ready before beginning to cook.",
		"name":"Beef and Noodle Chow Mein",
		"uuid":"50c7d2e4-80f0-11e5-8bcf-feff819cdc9f"
	},
	{
		"id":"407a6a8c-80f0-11e5-8bcf-feff819cdc9f",
		"type":"Recipe",
		"descr":"These sensational samosas are highly addictive so ensure you make plenty for second helpings.",
		"name":"Beef and Pumpkin Samosas",
		"uuid":"407a6a8c-80f0-11e5-8bcf-feff819cdc9f"
	}

]

				

Example Free Form Search

GET https://api.canopyapp.net/api/erp/Recipe.json?search=caster
Request
[Empty Request Body]
Response
[
	{
		"id":"0255e92a-80f5-11e5-8bcf-feff819cdc9f",
		"type":"Recipe",
		"descr":"This baked, nutty dessert is filled with crunchy pecans, oats, and white chocolate pieces.",
		"name":"Apple, Oat & Chocolate Crumble",
		"uuid":"0255e92a-80f5-11e5-8bcf-feff819cdc9f"
	},
	{
		"id":"111455fa-80f5-11e5-8bcf-feff819cdc9f",
		"type":"Recipe",
		"descr":"These spiced apple pancakes with crushed pecans are a great way to start the weekend.",
		"name":"Apple Pancakes with Pecan & Cinnamon Butter",
		"uuid":"111455fa-80f5-11e5-8bcf-feff819cdc9f"
	}

]

				
Note
Note that the term 'caster' is not returned in this Recipe Index response.
The term 'caster' exists as an ingredient in each of these Recipes, and would be presented in the Recipe Retrieve call.

Recipe Index / Search Schema

{
    "name": "Recipe",
    "properties": {
        "name": {
            "type": "string",
            "maxLength": 100,
            "optional": false,
            "minLength": 1
        },
        "descr": {
            "type": "string",
            "optional": true
        },
        "uuid": {
            "type": "string",
            "optional": true,
            "maxLength": 100
        }
    }
}



Retrieve an existing Recipe in Canopy

Details

URL Structure https://api.canopyapp.net/api/erp/Recipe/identifier.format
Version 1.0
Method POST
Request Body A graph of the Recipe to be created in the format given. Attributes and to-one relationships must match the schema below.

Parameters

account
required
The System Account Code
timestamp
required
The request timestamp
signature
required
The generated authentication code for this request

Example Request

GET https://api.canopyapp.net/api/erp/Recipe/f0ed4f18-7c29-11e5-8bcf-feff819cdc9f.json
Request
[Empty Request Body]
Response
{
    "consumerCategories": [],
    "cookTimeText": null,
    "creator": null,
    "locale": null,
    "skillLevel": null,
    "tagsKeyIngredients": [
        {
            "type": "CanTag",
            "id": 80,
            "label": "Fruit"
        }
    ],
    "tagsClientSpecific": [],
    "dateLastModified": null,
    "makesValue": null,
    "licencingInfos": [],
    "servingSuggestion": null,
    "tagsClasses": [
        {
            "type": "CanTag",
            "id": 73,
            "label": "Quick&Easy"
        }
    ],
    "tagsTypes": [
        {
            "type": "CanTag",
            "id": 103,
            "label": "Bread"
        }
    ],
    "id": "d46747f2-7c2b-11e5-8bcf-feff819cdc9f",
    "prepTimeText": null,
    "uuid": "d46747f2-7c2b-11e5-8bcf-feff819cdc9f",
    "descr": "Serve this sublime breakfast dish of Almond Milk Fruit French Toast with Berries & Cream Cheese next time you host brunch, guests will fall in love with the rich, fruity flavours. ",
    "tagsAudiences": [],
    "clientCreationDate": null,
    "tagsAuthors": [],
    "celebrityRecipe": null,
    "tagsMealTypes": [
        {
            "type": "CanTag",
            "id": 101,
            "label": "Breakfast"
        },
        {
            "type": "CanTag",
            "id": 102,
            "label": "Brunch"
        }
    ],
    "tagsMethods": [],
    "tagsEvent": [],
    "tagsPageTypes": [],
    "recipeIngredients": [
        {
            "direction": "softened",
            "alternateUOM": null,
            "orderNumber": 2,
            "alternateLabel": null,
            "label": "Philadelphia Cream Cheese, ",
            "groupName": null,
            "alternateQuantity": null,
            "ingredient": null,
            "type": "RecipeIngredient",
            "id": 29538,
            "uom": "250g block",
            "quantity": "1/2 x"
        },
        {
            "direction": "ends discarded",
            "alternateUOM": null,
            "orderNumber": 1,
            "alternateLabel": null,
            "label": "Tip Top Caf\u00c3\u00a9 Range Raisin Toast, ",
            "groupName": null,
            "alternateQuantity": null,
            "ingredient": null,
            "type": "RecipeIngredient",
            "id": 29536,
            "uom": "g loaf",
            "quantity": "650"
        },
        {
            "direction": "thawed, to serve",
            "alternateUOM": null,
            "orderNumber": 9,
            "alternateLabel": null,
            "label": "Frozen mixed berries, ",
            "groupName": null,
            "alternateQuantity": null,
            "ingredient": null,
            "type": "RecipeIngredient",
            "id": 29531,
            "uom": null,
            "quantity": null
        },
        {
            "direction": "to serve",
            "alternateUOM": null,
            "orderNumber": 8,
            "alternateLabel": null,
            "label": "Cinnamon sugar, ",
            "groupName": null,
            "alternateQuantity": null,
            "ingredient": null,
            "type": "RecipeIngredient",
            "id": 29537,
            "uom": null,
            "quantity": null
        },
        {
            "direction": null,
            "alternateUOM": null,
            "orderNumber": 7,
            "alternateLabel": null,
            "label": "butter",
            "groupName": null,
            "alternateQuantity": null,
            "ingredient": null,
            "type": "RecipeIngredient",
            "id": 29533,
            "uom": "g",
            "quantity": "40"
        },
        {
            "direction": null,
            "alternateUOM": null,
            "orderNumber": 6,
            "alternateLabel": null,
            "label": "caster sugar",
            "groupName": null,
            "alternateQuantity": null,
            "ingredient": null,
            "type": "RecipeIngredient",
            "id": 29534,
            "uom": "tbsp",
            "quantity": "1"
        },
        {
            "direction": null,
            "alternateUOM": null,
            "orderNumber": 5,
            "alternateLabel": null,
            "label": "eggs",
            "groupName": null,
            "alternateQuantity": null,
            "ingredient": null,
            "type": "RecipeIngredient",
            "id": 29535,
            "uom": "large",
            "quantity": "2"
        },
        {
            "direction": null,
            "alternateUOM": null,
            "orderNumber": 4,
            "alternateLabel": null,
            "label": "Blue Diamond Almond Milk",
            "groupName": null,
            "alternateQuantity": null,
            "ingredient": null,
            "type": "RecipeIngredient",
            "id": 29530,
            "uom": "cup",
            "quantity": "2/3"
        },
        {
            "direction": null,
            "alternateUOM": null,
            "orderNumber": 3,
            "alternateLabel": null,
            "label": "Bonne Maman Strawberry Jam",
            "groupName": null,
            "alternateQuantity": null,
            "ingredient": null,
            "type": "RecipeIngredient",
            "id": 29532,
            "uom": "370g jar",
            "quantity": "1/3 x"
        }
    ],
    "type": "Recipe",
    "tagsSpecialDiets": [],
    "ingredientTips": null,
    "videoReference": null,
    "skillLevelString": null,
    "tagsFeatureNames": [],
    "tagsCategories": [],
    "dateCreated": "2014-03-17T21:09:22.893Z",
    "tagsPublications": [],
    "tagsDifficulties": [],
    "recipeSteps": [
        {
            "groupName": null,
            "stepNumber": 1,
            "type": "RecipeStep",
            "id": 12875,
            "instructions": "Spread raisin slices thickly with the cream cheese. Spread half the slices with jam. Sandwich the slices together and flatten slightly."
        },
        {
            "groupName": null,
            "stepNumber": 3,
            "type": "RecipeStep",
            "id": 12874,
            "instructions": "Melt about one quarter of the butter in a non-stick frying pan. Dip each sandwich into the egg mixture, allowing excess to run off. Cook in the butter for 2 minutes on each side, or until golden. Remove to a plate and repeat with remaining butter and sandwiches. Serve sprinkled with cinnamon sugar and with berries. "
        },
        {
            "groupName": null,
            "stepNumber": 2,
            "type": "RecipeStep",
            "id": 12873,
            "instructions": "Whisk the almond milk, eggs and sugar together in a medium shallow bowl. "
        }
    ],
    "budgetPerServe": null,
    "clientGroup": null,
    "cookingTime": 10,
    "prepTime": 10,
    "servesNum": null,
    "tagsChefs": [],
    "name": "Almond Milk Fruit French Toast with Berries & Cream Cheese ",
    "tagsMonth": [],
    "externalResources": [],
    "tagsOccasions": [
        {
            "type": "CanTag",
            "id": 74,
            "label": "Entertaining"
        }
    ],
    "tagsSeasons": [],
    "clientReference": "3605",
    "difficultyRating": null,
    "chefNotes": null,
    "medias": [
        {
            "code": "3605_AlmondMilkFruitFrenchToastwithBerries&CreamCheese",
            "uuid": "ad1a049c-40f5-436c-bc98-7f65821b4e0f",
            "descr": null,
            "smallPreview": "http://s3-ap-southeast-2.amazonaws.com:80/net-canopyapp-prod/1179545.png?Signature=LDH6AZMXDHjph3hunFvQPM1ZgIo%3D&Expires=1445978974&AWSAccessKeyId=AKIA05UIZJKBLTX3GBAQ",
            "full": "http://s3-ap-southeast-2.amazonaws.com:80/net-canopyapp-prod/1179543.png?Signature=r8YEUF0qUUqVPQXy61XSgYLexPE%3D&Expires=1445978974&AWSAccessKeyId=AKIA05UIZJKBLTX3GBAQ",
            "nodeReference": null,
            "preview": "http://s3-ap-southeast-2.amazonaws.com:80/net-canopyapp-prod/1179544.png?Signature=GOyjMbHJRVsq%2Be47RIgWQqAduss%3D&Expires=1445978974&AWSAccessKeyId=AKIA05UIZJKBLTX3GBAQ",
            "type": "Media",
            "id": "ad1a049c-40f5-436c-bc98-7f65821b4e0f",
            "originalFilename": "3605_AlmondMilkFruitFrenchToastwithBerries&CreamCheese.tif",
            "thumb": "http://s3-ap-southeast-2.amazonaws.com:80/net-canopyapp-prod/1179546.png?Signature=pLjm%2BSPnj8MCr%2B3jboqqnovUUJw%3D&Expires=1445978974&AWSAccessKeyId=AKIA05UIZJKBLTX3GBAQ"
        },
        {
            "code": "FYFandSAVE-april14-berry-frenchtoast-H",
            "uuid": "a2120f9d-1284-412a-8188-5023210885fe",
            "descr": null,
            "smallPreview": "http://s3-ap-southeast-2.amazonaws.com:80/net-canopyapp-prod/845317.png?Signature=cQ7vkauWT%2F4Iq1%2FIy7a2HEYQY00%3D&Expires=1445978974&AWSAccessKeyId=AKIA05UIZJKBLTX3GBAQ",
            "full": "http://s3-ap-southeast-2.amazonaws.com:80/net-canopyapp-prod/845315.png?Signature=sQUiezJnN1GZ2DYlNAso8ynzCLs%3D&Expires=1445978974&AWSAccessKeyId=AKIA05UIZJKBLTX3GBAQ",
            "nodeReference": null,
            "preview": "http://s3-ap-southeast-2.amazonaws.com:80/net-canopyapp-prod/845316.png?Signature=WRAHGYQh%2BWBVXb2GpQyP26O7z7U%3D&Expires=1445978974&AWSAccessKeyId=AKIA05UIZJKBLTX3GBAQ",
            "type": "Media",
            "id": "a2120f9d-1284-412a-8188-5023210885fe",
            "originalFilename": "FYFandSAVE-april14-berry-frenchtoast-H.tif",
            "thumb": "http://s3-ap-southeast-2.amazonaws.com:80/net-canopyapp-prod/845318.png?Signature=%2BJDgbseLRiEmtPKEwaRjBZsu4vE%3D&Expires=1445978974&AWSAccessKeyId=AKIA05UIZJKBLTX3GBAQ"
        },
        {
            "code": "FYFandSAVE-april14-berry-frenchtoast-V",
            "uuid": "77c8504b-896d-4421-99d7-7ee1ba1699da",
            "descr": null,
            "smallPreview": "http://s3-ap-southeast-2.amazonaws.com:80/net-canopyapp-prod/845327.png?Signature=RhaYq8u%2FXk8U%2BNYsefu5516ovy8%3D&Expires=1445978974&AWSAccessKeyId=AKIA05UIZJKBLTX3GBAQ",
            "full": "http://s3-ap-southeast-2.amazonaws.com:80/net-canopyapp-prod/845325.png?Signature=YNILgXynGbAneuR842Z6RP%2B0kXI%3D&Expires=1445978974&AWSAccessKeyId=AKIA05UIZJKBLTX3GBAQ",
            "nodeReference": null,
            "preview": "http://s3-ap-southeast-2.amazonaws.com:80/net-canopyapp-prod/845326.png?Signature=VhRnmGb18HHEKGnTJsQWXXJJL48%3D&Expires=1445978974&AWSAccessKeyId=AKIA05UIZJKBLTX3GBAQ",
            "type": "Media",
            "id": "77c8504b-896d-4421-99d7-7ee1ba1699da",
            "originalFilename": "FYFandSAVE-april14-berry-frenchtoast-V.tif",
            "thumb": "http://s3-ap-southeast-2.amazonaws.com:80/net-canopyapp-prod/845328.png?Signature=09%2BwE%2B5CeSS1lfT8eJrJFN21T3A%3D&Expires=1445978974&AWSAccessKeyId=AKIA05UIZJKBLTX3GBAQ"
        }
    ],
    "disclaimerNotes": null,
    "lede": "Serve this sublime breakfast dish of Almond Milk Fruit French Toast with Berries & Cream Cheese next time you host brunch, guests will fall in love with the rich, fruity flavours. ",
    "publicationNotes": null,
    "servesValue": "4-6",
    "tagsRecipes": [],
    "tagsCuisines": []
}
				

Recipe Retrieve Schema

{
    "name": "Recipe",
    "properties": {
        "consumerCategories": {
            "name": {
                "type": "string",
                "optional": false
            },
            "descr": {
                "type": "string",
                "optional": true
            }
        },
        "cookTimeText": {
            "type": "string",
            "optional": true
        },
        "creator": {
            "lastName": {
                "type": "string",
                "maxLength": 100,
                "optional": false,
                "minLength": 1
            },
            "firstName": {
                "type": "string",
                "maxLength": 100,
                "optional": false,
                "minLength": 1
            }
        },
        "locale": {
            "type": "string",
            "optional": true,
            "maxLength": 10
        },
        "skillLevel": {
            "type": "string",
            "optional": true,
            "maxLength": 1
        },
        "tagsKeyIngredients": {
            "label": {
                "type": "string",
                "optional": false
            }
        },
        "tagsDifficulties": {
            "label": {
                "type": "string",
                "optional": false
            }
        },
        "externalResources": {
            "uri": {
                "type": "string",
                "optional": true
            },
            "name": {
                "type": "string",
                "optional": true,
                "maxLength": 100
            },
            "tags": {
                "type": "string",
                "optional": true,
                "maxLength": 255
            }
        },
        "chefNotes": {
            "type": "string",
            "optional": true
        },
        "licencingInfos": {
            "source": {
                "type": "string",
                "optional": true,
                "maxLength": 100
            },
            "licenceType": {
                "type": "string",
                "optional": true,
                "maxLength": 100
            },
            "dateEnd": {
                "type": "string",
                "optional": true,
                "format": "date-time"
            },
            "descr": {
                "type": "string",
                "optional": true
            },
            "dateStart": {
                "type": "string",
                "optional": true,
                "format": "date-time"
            }
        },
        "servingSuggestion": {
            "type": "string",
            "optional": true
        },
        "tagsClasses": {
            "label": {
                "type": "string",
                "optional": false
            }
        },
        "tagsTypes": {
            "label": {
                "type": "string",
                "optional": false
            }
        },
        "prepTimeText": {
            "type": "string",
            "optional": true
        },
        "tagsAuthors": {
            "label": {
                "type": "string",
                "optional": false
            }
        },
        "uuid": {
            "type": "string",
            "optional": true,
            "maxLength": 100
        },
        "descr": {
            "type": "string",
            "optional": true
        },
        "tagsAudiences": {
            "label": {
                "type": "string",
                "optional": false
            }
        },
        "clientCreationDate": {
            "type": "string",
            "optional": true,
            "format": "date-time"
        },
        "tagsMonth": {
            "label": {
                "type": "string",
                "optional": false
            }
        },
        "celebrityRecipe": {
            "type": "string",
            "optional": true,
            "maxLength": 1
        },
        "tagsMealTypes": {
            "label": {
                "type": "string",
                "optional": false
            }
        },
        "tagsMethods": {
            "label": {
                "type": "string",
                "optional": false
            }
        },
        "tagsEvent": {
            "label": {
                "type": "string",
                "optional": false
            }
        },
        "lede": {
            "type": "string",
            "optional": true,
            "maxLength": 1000
        },
        "recipeIngredients": {
            "direction": {
                "type": "string",
                "optional": true
            },
            "alternateUOM": {
                "type": "string",
                "optional": true,
                "maxLength": 100
            },
            "orderNumber": {
                "type": "integer",
                "optional": true
            },
            "alternateLabel": {
                "type": "string",
                "optional": true,
                "maxLength": 255
            },
            "label": {
                "type": "string",
                "maxLength": 255,
                "optional": false,
                "minLength": 1
            },
            "groupName": {
                "type": "string",
                "optional": true
            },
            "alternateQuantity": {
                "type": "string",
                "optional": true,
                "maxLength": 100
            },
            "quantity": {
                "type": "string",
                "optional": true,
                "maxLength": 100
            },
            "uom": {
                "type": "string",
                "optional": true,
                "maxLength": 100
            },
            "ingredient": {
                "product": {
                    "code": {
                        "type": "string",
                        "maxLength": 100,
                        "optional": false,
                        "minLength": 1
                    },
                    "uuid": {
                        "type": "string",
                        "optional": true,
                        "maxLength": 100
                    },
                    "descr": {
                        "type": "string",
                        "optional": true
                    }
                },
                "code": {
                    "type": "string",
                    "maxLength": 100,
                    "optional": false,
                    "minLength": 1
                },
                "name": {
                    "type": "string",
                    "maxLength": 100,
                    "optional": false,
                    "minLength": 1
                }
            }
        },
        "tagsSeasons": {
            "label": {
                "type": "string",
                "optional": false
            }
        },
        "tagsSpecialDiets": {
            "label": {
                "type": "string",
                "optional": false
            }
        },
        "ingredientTips": {
            "type": "string",
            "optional": true
        },
        "videoReference": {
            "type": "string",
            "optional": true
        },
        "skillLevelString": {
            "type": "string",
            "optional": true,
            "maxLength": 100
        },
        "tagsFeatureNames": {
            "label": {
                "type": "string",
                "optional": false
            }
        },
        "cookingTime": {
            "type": "number",
            "optional": true
        },
        "tagsCategories": {
            "label": {
                "type": "string",
                "optional": false
            }
        },
        "dateCreated": {
            "type": "string",
            "optional": false,
            "format": "date-time"
        },
        "tagsPublications": {
            "label": {
                "type": "string",
                "optional": false
            }
        },
        "recipeSteps": {
            "groupName": {
                "type": "string",
                "optional": true
            },
            "stepNumber": {
                "type": "integer",
                "optional": false
            },
            "instructions": {
                "type": "string",
                "optional": true
            }
        },
        "budgetPerServe": {
            "type": "number",
            "optional": true
        },
        "clientGroup": {
            "type": "string",
            "optional": true,
            "maxLength": 100
        },
        "tagsClientSpecific": {
            "label": {
                "type": "string",
                "optional": false
            }
        },
        "prepTime": {
            "type": "number",
            "optional": true
        },
        "servesNum": {
            "type": "integer",
            "optional": true
        },
        "tagsChefs": {
            "label": {
                "type": "string",
                "optional": false
            }
        },
        "name": {
            "type": "string",
            "maxLength": 100,
            "optional": false,
            "minLength": 1
        },
        "dateLastModified": {
            "type": "string",
            "optional": true,
            "format": "date-time"
        },
        "tagsOccasions": {
            "label": {
                "type": "string",
                "optional": false
            }
        },
        "clientReference": {
            "type": "string",
            "optional": true,
            "maxLength": 100
        },
        "difficultyRating": {
            "type": "integer",
            "optional": true
        },
        "makesValue": {
            "type": "string",
            "optional": true,
            "maxLength": 100
        },
        "medias": {
            "nodeReference": {
                "type": "string",
                "optional": true
            },
            "code": {
                "type": "string",
                "maxLength": 100,
                "optional": false,
                "minLength": 1
            },
            "descr": {
                "type": "string",
                "optional": true
            },
            "originalFilename": {
                "type": "string",
                "optional": true,
                "maxLength": 100
            },
            "uuid": {
                "type": "string",
                "optional": true,
                "maxLength": 100
            }
        },
        "disclaimerNotes": {
            "type": "string",
            "optional": true
        },
        "tagsPageTypes": {
            "label": {
                "type": "string",
                "optional": false
            }
        },
        "publicationNotes": {
            "type": "string",
            "optional": true
        },
        "servesValue": {
            "type": "string",
            "optional": true,
            "maxLength": 100
        },
        "tagsRecipes": {
            "label": {
                "type": "string",
                "optional": false
            }
        },
        "tagsCuisines": {
            "label": {
                "type": "string",
                "optional": false
            }
        }
    }
}