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.

The Single Order Acknowledgement endpoint supports two request formats: the LineItem format and the deprecated RecipeSet format supported for clients on previous API versions.

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.

LineItem Format - Required

  • purchaseOrderNumber (string)

  • orderDate (ISO 8601 date string)

  • lineItems (array)

  • lineItems[n] (object)

    • recipeSetId (string)

    • sku (string)

    • quantity (string)

    • proofStatus ("Requested" (1) or "Fulfilled" (2))

    • skuQuantities[n] (string)

      • quantity (string)

      • sku(string)

LineItem Format - Optional

  • accountNumber (string)

  • priority (enumeration: lower, normal, higher)

  • organizationId (string)

  • phoneNumber (string)

  • serialNumber (string)

  • proofStatus ("Requested" (1) or "Fulfilled" (2))

  • estimatedDeliveryDate (ISO 8601 date string)

LineItem Format: Example request body

{
  "purchaseOrderNumber": "42015953",
  "orderDate": "2022-01-31T13:15:05.2151663-05:00",
  "accountNumber": "2000690402",
  "organizationId": "1000345201",
  "emailAddress": "john.smith@acme.com",
  "phoneNumber": "1015551212",
  "serialNumber": "A123987",
  "proofStatus": "Requested",
  "priority" "normal",
  "lineItems": [{
      "recipeSetId": "ABCD1234",
      "sku": "100003-0001-S",
      "quantity": 2,
      "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
      }]
    }
  ]
}

RecipeSet Format (Deprecated) - Required

  • purchaseOrderNumber (string)

  • orderDate (ISO 8601 date string)

  • recipeSets (array)

  • recipeSets[n] (object)

    • recipeSetId (string)

    • skuQuantities (array)

    • skuQuantities[n] (object)

      • sku (string)

      • quantity (string)

RecipeSet Format (Deprecated) - Optional

  • accountNumber (string)

  • organizationId (string)

RecipeSet Format (Deprecated): Example request body

{
  "purchaseOrderNumber": "42015953",
  "orderDate": "2022-01-31T13:15:05.2151663-05:00",
  "accountNumber": "2000690402",
  "organizationId": "1000345201",
  "recipeSets": [
    {
      "recipeSetId": "ABCD1234",
      "skuQuantities": [
        {
          "sku": "100003-0001-S",
          "quantity": 2
        }
      ]
    }
  ]
}

Regardless of the request method chosen, both formats will return the same JSON responses.

Example JSON response (200 Success)

{ 
    "purchaseOrderNumber": "42015953",
    "statuses": [
        {
            "recipeSetId": "ABCD1234",
            "success": true,
            "message": "Processed Successfully"
        }
    ],
    "allSuccessful": true
}

Example JSON response (409 Conflict)

{
    "lastModification": "2019-08-06T07:30:38.4459346+00:00",
    "error": "Purchase order has already been submitted.",
    "apiVersion": "3.0.21055.9",
}

Example JSON response (500 Error)

{
    "lastModification": "2019-08-06T07:30:38.4459346+00:00",
    "error": "Error message with trace log ID.",
    "apiVersion": "3.0.21055.9",
}

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",
    "lineItems": [{
        "recipeSetId": "ABCD1234",
        "sku": "100003-0001-S",
        "quantity": 2,
        "giftMessage": "Enjoy your gift",
        "shipmentVendor": "Fedex",
        "shipmentTracking": "234324234324",
        "proofStatus": "Requested",
        "estimatedDeliveryDate": "2022-02-02T00:00:00.00000-00:00"
      },
      {
        "recipeSetId": "ABCD1235",
        "sku": "100003-0001-XL",
        "quantity": 10,
        "shipmentVendor": "Fedex",
        "shipmentTracking": "234324234324",
        "proofStatus": "Requested",
        "estimatedDeliveryDate": "2022-02-02T00:00:00.00000-00:00"
      }
    ]
  },
  {
    "purchaseOrderNumber": "42015954",
    "orderDate": "8/6/2019 4:05PM",
    "accountNumber": "2000690879",
    "organizationId": "10001560201",
    "lineItems": [{
        "recipeSetId": "ABCD1236",
        "sku": "100003-0001-M",
        "quantity": 5,
        "shipmentVendor": "Fedex",
        "shipmentTracking": "340044434432",
        "estimatedDeliveryDate": "2022-02-02T00:00:00.00000-00:00"
      }
    ]
  }
]

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)

    • sku (array)

    • quantity (string)

    • skuQuantities[n] (string)

      • quantity (string)

      • 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

  • accountNumber (string)

  • priority (enumeration: lower, normal, higher)

  • organizationId (string)

  • emailAddress (string)

  • phoneNumber (string)

  • giftMessage (string)

  • shipmentVendor (string)

  • shipmentTracking (string)

  • estimatedDeliveryDate (ISO 8601 date string)

  • address2 (string)

  • province (string)

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",
	"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",
			"sku": "100003-0001-XL",
			"quantity": 10,
			"shipmentVendor": "Fedex",
			"shipmentTracking": "234324234324"
		}
	],
	"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"
	}
}

Last updated