Create order

Use the POST /v3/customers/<customer-id>/orders endpoint to place an order for a customer. Read more about scenarios where an order is created.

Assumptions

Ensure that you are aware of the following before creating an order:

Orders after a country currency change

After a country transitions to a new currency, eligible customers place new orders and purchase additional seats in the new currency. These orders create new subscriptions in the new currency rather than adding licenses to existing subscriptions in the previous currency. For example, this applies when Canada transitions from USD to CAD or Mexico transitions from USD to MXN.

API requests for new orders, previews, manual renewals, early renewals, and license additions using the previous currency return CURRENCY_NOT_ACTIVE_FOR_COUNTRY with HTTP 422, subject to commitment exceptions.

Pre-cutover 3YC commitments retain their existing price list and currency until the commitment ends. Customers with an active pre-cutover 3YC commitment cannot place orders in the new currency during the commitment period. Returns and switch reverts retain the pricing and currency of the original order. See Local currency support for the complete lifecycle and commitment rules.

Request header

Parameter
Description
X-Request-Id
A unique identifier for the call. The value should be reset for every single request. If this is not provided, then a request ID will be automatically generated. Using a duplicate request ID may return an error.
X-Correlation-Id
Required. A unique identifier for the call. This is to ensure idempotency. In the case of a timeout, the retry call could include the same value. Upon receiving some response, the value should be reset for the next call.
Accept
Required. Specifies the response type. Must be "application/json" for proper usage.
Content-Type
Required. Specifies the request type. Must be "application/json" for proper usage.
Authorization
Required. Authorization token in the form Bearer <token>
X-Api-Key
Required. The API Key for your integration

Reques body

Order resource without read-only fields:

{
  "externalReferenceId": "759", // (optional)
  "currencyCode": "USD", // (to be deprecated, use lineItem currencyCode)
  "orderType": "NEW | RETURN | PREVIEW | PREVIEW_RENEWAL | RENEWAL",
  "referenceOrderId": "", // (for returns only)
  "lineItems": [
    {
      "extLineItemNumber": 4,
      "offerId": "80004567EA01A12",
      "quantity": 1,
      "currencyCode": "USD",
      "deploymentId": "12345",
      "discountCode": "HVD_L18_PRE",
    },
  ],
}

Response

{
  "externalReferenceId": "759",
  "orderId": "0123456789",
  "customerId": "9876543210",
  "orderType": "NEW",
  "referenceOrderId": "",
  "currencyCode": "USD",
  "creationDate": "2019-05-02T22:49:54Z",
  "status": "1002",
  "source": "API",
  "lineItems": [
    {
      "extLineItemNumber": 4,
      "offerId": "80004567EA01A12",
      "quantity": 1,
      "subscriptionId": "",
      "status": "1002",
      "currencyCode": "USD",
      "deploymentId": "12345"
    }
  ],
  "links": {
    "self": {
      "uri": "/v3/customers/9876543210/orders/0123456789",
      "method": "GET",
      "headers": []
    }
  }
}

Notes:

HTTP status codes

Status code
Description
201
Order created
400
Bad request
401
Invalid Authorization token
403
Invalid API Key
404
Invalid customer ID
422
Currency not active for the country