# 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.

**Note**:  If you are using Shopify, order capture happens automatically using the [Spectrum + Shopify Integration](/integration/ecommerce/spectrum-and-shopify-integration.md).

An order acknowledgement consists a single order with one or more line items.

```http
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](/integration/api/environments.md) page.

#### **Required**

* `purchaseOrderNumber` (string)
* `orderDate` (ISO 8601 date string)
* `lineItems` (array)
* `lineItems[n]` (object)
  * `recipeSetId` (string)
  * `skuQuantities[n]` (string)
    * `quantity` (string)
    * `sku`(string)

#### Order Optional Fields

* `customerServiceContact` (string)

#### Line Item Optional Fields

* `giftMessage` (string)
* `shipmentVendor` (string)
* `shipmentTracking` (string)
* `estimatedDeliveryDate` (ISO 8601 date string)

#### Example request body

#### Example JSON response (200 Success)

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

```

#### Example JSON response (409 Conflict)

```javascript
{
    "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)

```javascript
{
    "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](/integration/ecommerce/order-acknowledgement.md#single-order-acknowledgement) are required.

```http
POST https://{SpectrumEnvironment}/api/order/acknowledgements HTTP/1.1
SPECTRUM_API_TOKEN: {SpectrumApiToken}
Content-Type: application/json
```

#### Example request body

```javascript
[
  {
    "purchaseOrderNumber": "42015953",
    "orderDate": "2022-01-31T13:15:05.2151663-05:00",
    "accountNumber": "2000690402",
    "priority" "normal",
    "organizationId": "1000345201",
    "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": "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"
        "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.

```http
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

* `customerServiceContact` (string)

#### Example request body

```javascript
{
	"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",
	"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"
	}
}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.spectrumcustomizer.com/integration/ecommerce/order-acknowledgement.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
