Order Acknowledgement
Single Order Acknowledgement
Once a custom order has been purchased by the customer and is pending fulfillment, we require transmission of an order acknowledgement to the Spectrum REST API. This request will typically trigger dependent processes, such as delivery of factory print-ready files. It also ensures accurate and meaningful reporting within the Spectrum Admin interface.
If you are using Shopify, order capture happens automatically using the Spectrum + Shopify Integration.
An order acknowledgement consists a single order with one or more line items.
POST https://{SpectrumEnvironment}/api/order/acknowledgement HTTP/1.1
SPECTRUM_API_TOKEN: {SpectrumApiToken}
Content-Type: application/json
The available {SpectrumEnvironment} base URLs are listed in the Environments page.
Required
purchaseOrderNumber(string)orderDate(ISO 8601 date string)lineItems(array)lineItems[n](object)recipeSetId(string)skuQuantities[n](object)quantity(integer)sku(string)
Order Optional Fields
customerServiceContact(string)fulfillmentType(string:DirectToConsumer|BusinessToBusiness|Kiosk)
Line Item Optional Fields
giftMessage(string)shipmentVendor(string)shipmentTracking(string)estimatedDeliveryDate(ISO 8601 date string)
Example request body
Example JSON response (200 Success)
{
"purchaseOrderNumber": "42015953",
"statuses": [
{
"recipeSetId": "ABCD1234",
"success": true,
"message": "Processed Successfully"
}
],
"allSuccessful": true
}
Example response (404 Not Found)
The response body is a plain-text string containing the error message and a link to the log entry for further details.
RecipeSet 'ABCD1234' was not found - https://{SpectrumEnvironment}/logentry/detail/{logId}
Example response (409 Conflict)
Purchase order has already been submitted - https://{SpectrumEnvironment}/logentry/detail/{logId}
Example response (500 Internal Server Error)
A standard RFC 7807 ProblemDetails JSON document is returned. The detail field includes a link to the log entry for further details.
{
"type": "https://tools.ietf.org/html/rfc7231#section-6.6.1",
"title": "An error occurred while processing your request.",
"status": 500,
"detail": "Error in ProcessOrder - https://{SpectrumEnvironment}/logentry/detail/{logId}"
}
Multiple Order Acknowledgements
Spectrum can also handle multiple order acknowledgements, which is helpful when a bulk update is desired over a single request. The same fields for the single order acknowledgement are required.
POST https://{SpectrumEnvironment}/api/order/acknowledgements HTTP/1.1
SPECTRUM_API_TOKEN: {SpectrumApiToken}
Content-Type: application/json
Example request body
[
{
"purchaseOrderNumber": "42015953",
"orderDate": "2022-01-31T13:15:05.2151663-05:00",
"accountNumber": "2000690402",
"priority": "normal",
"organizationId": "1000345201",
"fulfillmentType": "BusinessToBusiness",
"lineItems": [
{
"recipeSetId": "ABCD1234",
"giftMessage": "Enjoy your gift",
"shipmentVendor": "Fedex",
"shipmentTracking": "234324234324",
"proofStatus": "Requested",
"estimatedDeliveryDate": "2022-02-02T00:00:00.00000-00:00",
"skuQuantities": [
{ "sku": "ABC1234", "quantity": 4 },
{ "sku": "ABC1235", "quantity": 2 }
]
},
{
"recipeSetId": "ABCD1235",
"shipmentVendor": "Fedex",
"shipmentTracking": "234324234324",
"proofStatus": "Requested",
"estimatedDeliveryDate": "2022-02-02T00:00:00.00000-00:00",
"skuQuantities": [
{ "sku": "ABC1236", "quantity": 3 },
{ "sku": "ABC1237", "quantity": 6 }
]
}
]
},
{
"purchaseOrderNumber": "42015954",
"orderDate": "2019-08-06T16:05:00-05:00",
"accountNumber": "2000690879",
"organizationId": "10001560201",
"fulfillmentType": "BusinessToBusiness",
"lineItems": [
{
"recipeSetId": "ABCD1236",
"shipmentVendor": "Fedex",
"shipmentTracking": "340044434432",
"estimatedDeliveryDate": "2022-02-02T00:00:00.00000-00:00",
"skuQuantities": [
{ "sku": "ABC1238", "quantity": 7 },
{ "sku": "ABC1239", "quantity": 9 }
]
}
]
}
]
Full Order Details
Finally, Spectrum can capture order and line item details for customer shipping information. This information is stored securely and encrypted within Spectrum, and it can be forwarded to fulfillment partners.
POST https://{SpectrumEnvironment}/api/order HTTP/1.1
SPECTRUM_API_TOKEN: {SpectrumApiToken}
Content-Type: application/json
####
Required
purchaseOrderNumber(string)orderDate(ISO 8601 date string)lineItems(array)lineItems[n](object)recipeSetId(string)skuQuantities[n](object)quantity(integer)sku(string)
customerAddress(object)firstName(string)lastName(string)address1(string)city(string)state(string)postalCode(string)country(string)
shippingAddress(object)- [same required fields as customerAddress]
Optional
customerServiceContact(string)fulfillmentType(string:DirectToConsumer|BusinessToBusiness|Kiosk)
Example request body
{
"purchaseOrderNumber": "42015953",
"orderDate": "2022-01-31T13:15:05.2151663-05:00",
"accountNumber": "2000690402",
"priority": "normal",
"organizationId": "1000345201",
"emailAddress": "john.smith@acme.com",
"phoneNumber": "1015551212",
"customerServiceContact": "Sally Smith",
"fulfillmentType": "BusinessToBusiness",
"lineItems": [
{
"recipeSetId": "ABCD1234",
"giftMessage": "Enjoy your gift",
"shipmentVendor": "Fedex",
"shipmentTracking": "234324234324",
"estimatedDeliveryDate": "2022-02-02T00:00:00.00000-00:00",
"skuQuantities": [
{ "sku": "ABC1234", "quantity": 4 },
{ "sku": "ABC1235", "quantity": 2 }
]
},
{
"recipeSetId": "ABCD1235",
"shipmentVendor": "Fedex",
"shipmentTracking": "234324234324",
"skuQuantities": [
{ "sku": "100003-0001-XL", "quantity": 10 }
]
}
],
"customerAddress": {
"firstName": "John",
"lastName": "Smith",
"address1": "123 Fake Street",
"address2": "",
"city": "Portland",
"state": "OR",
"province": "",
"postalCode": "97205",
"country": "US"
},
"shippingAddress": {
"firstName": "John",
"lastName": "Smith",
"address1": "123 Fake Street",
"address2": "",
"city": "Portland",
"state": "OR",
"province": "",
"postalCode": "97205",
"country": "US"
}
}