+ All Categories
Home > Documents > Partner Web Services PlaceOrder Version 2 Service Manual · AUTODESK PlaceOrder v2 Service...

Partner Web Services PlaceOrder Version 2 Service Manual · AUTODESK PlaceOrder v2 Service...

Date post: 20-Nov-2018
Category:
Upload: dinhque
View: 217 times
Download: 0 times
Share this document with a friend
36
Partner Web Services PlaceOrder Version 2 Service Manual
Transcript

Partner Web Services

PlaceOrder Version 2

Service Manual

AUTODESK PlaceOrder v2 Service Reference Manual 2

Contents

1 Introduction .......................................................................................................................................... 6

1.1 Overview ....................................................................................................................................... 6

1.2 Supporting Resources ................................................................................................................... 6

2 Service Overview ................................................................................................................................... 7

2.1 Subscription to Autodesk .............................................................................................................. 7

2.1.1 Renewable Order Model ....................................................................................................... 7

2.1.2 Maintenance to Subscription (M2S) ..................................................................................... 8

3 Service Endpoints .................................................................................................................................. 8

4 Pilot Run and Go Live ............................................................................................................................ 8

5 Request/Response Schema ................................................................................................................. 10

5.1 Request ....................................................................................................................................... 10

5.1.1 High-Level Entity Relationship model ................................................................................. 10

5.1.2 Low-Level Entity Relationship model .................................................................................. 11

5.1.3 Detailed Request JSON Structure ........................................................................................ 12

5.2 Response ..................................................................................................................................... 20

5.2.1 High-Level Entity Relationship model ................................................................................. 20

5.2.2 Detailed Response JSON Structure ..................................................................................... 21

6 Sample Requests/Responses .............................................................................................................. 22

6.1 Initial Order ................................................................................................................................. 22

6.2 Additions – Add seats.................................................................................................................. 24

6.3 Additions – Add products............................................................................................................ 26

6.4 Renewals ..................................................................................................................................... 28

6.5 Maintenance-to-Subscription switch .......................................................................................... 30

7 Formatting standards .......................................................................................................................... 32

8 Error Messages.................................................................................................................................... 32

8.1 System Error codes ..................................................................................................................... 32

8.2 Service Error Codes ..................................................................................................................... 33

AUTODESK PlaceOrder v2 Service Reference Manual 3

8.3 Asynchronous Error Codes .......................................................................................................... 36

Tables

Table 1: Service endpoints ..................................................................................................................................... 8

Table 2:Detailed JSON Request Structure for Initial Orders (Renewal) ....................................................13

Table 3:Detailed JSON Request Structure for Additions to existing Orders (Renewal) ........................ 15

Table 4:Detailed JSON Request Structure for Renew Orders ....................................................................... 16

Table 5:Detailed JSON Request Structure for M2S Orders .......................................................................... 18

Table 6: Account JSON Model .............................................................................................................................. 19

Table 7: Contact JSON Model................................................................................................................................ 19

Table 8: Detailed JSON Response Structure .................................................................................................... 21

Table 9: Authentication Error Codes .................................................................................................................. 33

Table 10: Application Error Codes ...................................................................................................................... 36

Figures

Figure 1: Request High-Level JSON Schema Model ....................................................................................... 10

Figure 2: Request Low-Level Entity Model ........................................................................................................ 11

Figure 3: Response High-Level JSON Schema Model ................................................................................... 20

AUTODESK PlaceOrder v2 Service Reference Manual 4

Revision History

Version Date Author Comments

2.0.0 Jan 17, 2017 Abdullah Sahin • Initial version of PlaceOrder API v2

2.0.1 Mar 16, 2017 Jordi Gilabert • Updated the Low-Level entity

relationship Model in 5.1.2

• Changed transaction_id description

in 5.2.2

2.0.2 Mar 17, 2017 Jordi Gilabert • Removed Multi-Event examples

• Full document re-formatting

• Fixed all cross-references

2.0.4 Jun 30, 2017 Oscar Lopez • Removed Software coordinator

section from payload

2.0.5 Jul 20, 2017 Jordi Gilabert • Error codes updated in Section 8

2.0.6 Jul 25, 2017 Jordi Gilabert • Request Payloads updated

2.0.7 Aug 02, 2017 Shantnu Jain • Changed ‘serialNumber’ to ‘subscriptionReferenceNumber’

• Changed ‘subscriptionId’ to ‘partnerSubscriptionId’

2.0.8 Aug 03, 2017 Jordi Gilabert • Minor format changes

2.0.9 Aug 18, 2017 Jordi Gilabert • Updated links to DEVPortal documentation and API Authentication Guide, from QA to STG environment

• Updated low level entity relationship diagram

2.0.10 Aug 22, 2017 Jordi Gilabert • Fixed structure for ShipTo from Contact to Account

2.0.11 Aug 31, 2017 Jordi Gilabert • API Name format fixed

2.0.12 Oct 03, 2017 Oscar Lopez • Removed all QA references

2.0.13 Oct 24, 2017 Jordi Gilabert • Emphasize that Contract Manager

information is only needed for

existing contracts if has to be

updated

AUTODESK PlaceOrder v2 Service Reference Manual 5

2.0.14 Nov 29, 2017 Jordi Gilabert • Country code max length set 2

characters to align with ISO code

max length.

2.0.15 Apr 3, 2018 Jordi Gilabert • Added M2S support

• Fixed cosmetic errors

2.0.16 May 22,2018 Shantnu Jain & Jordi Gilabert

• Removed field

switchToContractNumber from

section 5.1.3.4

• Added section 8.3 to refer to

GetOrderStatus Reference manual

2.0.17 July 30, 2018 Jordi Gilabert • Added support for multiple

additions in the same request in

Section 4

2.0.18 August 14, 2018 Jordi Gilabert • Updated M2S request fields’ order

for a better readability on section

5.1.3.4

• Updated valid contract term options

for M2S on section 5.1.3.4

AUTODESK PlaceOrder v2 Service Reference Manual 6

1 Introduction

1.1 Overview

Autodesk’s Partner Web Services is an automation solution for order placement directly from its partners

to Autodesk, all with low-touch from partners and zero-touch from Autodesk. This new business capability

enables true B2B web service transactions between partners and Autodesk.

For partners to effectively implement Autodesk’s web services, partner developers should be familiar with

REST web services, OAuth, and JSON.

1.2 Supporting Resources

Autodesk Partner Developer Portal: The Autodesk Partner Developer Portal offers a place for partner

developers to build and test their own applications by subscribing to Autodesk web services and helps

partners get connected with Autodesk. The Partner Developer Portal features a robust repository of

service documentation, provides an ongoing conduit to the services to support partner teams, and

features a community to allow partner developers to share insights and information with each other. A

partner administrator can invite and keep track of all the developers associated with the account and all

the details of the applications they submit. Developers can then explore the information related to a

service, understand the way the service works, and test the service to see how it works with their

applications. For more information, please visit Partner Developer Center.

Authentication API Documentation: This documentation guides partners through the process of

generating credentials, signatures, and access tokens necessary for utilizing service APIs. It also covers the

development of a partner’s integrating application. It provides basic information on web service

integration and demonstrates the development of a typical application. For more information, please

check the latest version of the API Authentication Guide.

AUTODESK PlaceOrder v2 Service Reference Manual 7

2 Service Overview

PlaceOrder Service exposes API resources for managing orders: /orders/fulfillment. While version 1 of this

service is intended to be used to manage Recurring (Auto-Renew) contracts and version 2 handles order

creation and management of Renewable orders. With this API, partners can create and also specify events

to add seats and products to existing active agreements or renew those that are going to expire.

This document will include various scenarios of the PlaceOrder v2 service which are eligible for order

generation or agreement modification within the Autodesk environment. The details of the services

included in the order fulfillment process can be found below:

• Submitting new renewable orders

• Adding seats to existing renewable agreements

• Adding products to existing renewable agreements

• Renewing an existing contract

• Switching from a Maintenance contract to a Subscription contract

When an Order Fulfillment request has been made, the API service performs basic validations for schema,

SKUs, contracts, and pricing details to ensure the data is valid fulfilling the order request. If the validations

are successful, the order will be queued for further processing and a response will be returned indicating

that the order is being processed. The response will contain a unique transaction ID as a reference to the

order and partners can query the status of their order by using Get Order Status service or, alternatively,

by SNS service which they can subscribe for order process event notifications.

2.1 Subscription to Autodesk

Subscription to Autodesk is a pay-as-you-go approach, with the option of quarterly, annually or multi-year

term selected by customers. PlaceOrder Version 2 provides API access to the Renewable Model only.

2.1.1 Renewable Order Model

When customers subscribe to a service under the renewable order model, the subscription will be active

for the term selected in their subscription (quarterly, annual, multi-year). The subscription can be

renewed 90 days prior to the end of the term through the renew event in the Order Fulfillment API.

AUTODESK PlaceOrder v2 Service Reference Manual 8

2.1.2 Maintenance to Subscription (M2S)

Maintenance to Subscription (M2S) is a special offer designed to help customers on a maintenance plan

move to subscription.

• Maintenance plan: Autodesk Offering that is attached to a Perpetual License and offers updates,

upgrades and other select benefits

• Subscription plan: Autodesk Offering that allows a customer access to product(s), service(s),

upgrades and/or support for a specified term.

3 Service Endpoints

Environment URL

Staging https://enterprise-api-stg.autodesk.com/v2/orders/fulfillment

Production https://enterprise-api.autodesk.com/v2/orders/fulfillment Table 1: Service endpoints

4 Pilot Run and Go Live

Please note that the following features will not be available during the pilot run (Partners can still use

these fields in their requests, but their values will be ignored by Autodesk APIs.):

• Media Kit

• Fee SKUs/ETR

• Cloud Credits

• Cross Country Orders

• VPA/CQS

• User Packs

• Volume Purchase Order

• Promo Code

• Partner Line Item ID

Additionally, the service is only able to manage one-single event per request for a given contract (i.e. one

Initial Order OR one/various Additions for the same contract OR one contract Renewal OR one M2S

switch):

• Initial Order

AUTODESK PlaceOrder v2 Service Reference Manual 9

o Create a new order with one/multiple products with one/multiple seats.

• Additions

o Add seats to one existing line of a contract

o Create a new line in an existing contract

o Add seats to different lines within the same contract

o Add seats to an existing line and create a new line within the same contract

o Any combination of the above (i.e. Add seats to 3 different lines and create 2 new lines)

• Renewal

o Renew one single contract

• Maintenance to Subscription

o Switch one Maintenance contract to a Subscription contract

AUTODESK PlaceOrder v2 Service Reference Manual 10

5 Request/Response Schema

5.1 Request

5.1.1 High-Level Entity Relationship model

The following figure represents the high-level request schema of the PlaceOrder service. For a detailed

description of each item, please refer to Detailed Request JSON Structure:

Figure 1: Request High-Level JSON Schema Model

AUTODESK PlaceOrder v2 Service Reference Manual 11

5.1.2 Low-Level Entity Relationship model

Figure 2: Request Low-Level Entity Model

AUTODESK PlaceOrder v2 Service Reference Manual 12

5.1.3 Detailed Request JSON Structure

The following tables explain the schema for the Request of the API service.

For a better reading, the payloads are split based on the operation to be done:

• Initial Renewable Order

• Additions to an existing Renewable Order

• Renew a Renewable Order

* Please note that Bold elements denote Groups. Plain elements denote Input Fields.

5.1.3.1 Initial Order

Payload Structure Cardinality Description / Condition Data Type Length Example

action M Action to be performed by the service. For Initial orders its value has to be “Initial”

String - Free Text 35 “Initial” Other possible values for action are – “Initial”, “Add-On” and “Renewal”

endCustomer { M Default End Customer information for the order placed.

JSON Object - -

account {} M Default End Customer Account information for the order placed.

JSON Object Please refer to 5.1.3.4(a) (Account) for entity details.

- -

contractManager {} M Default Contract Manager for the order placed. JSON Object Please refer to 5.1.3.4(b) (Contact) for entity details.

- -

} - - - - -

shipTo {} M Default Ship to Account for the order placed. JSON Object

- -

AUTODESK PlaceOrder v2 Service Reference Manual 13

Please refer to 5.1.3.4(a) (Account) for entity details.

reseller { M Default Reseller Account for the order placed. JSON Object - -

csn M Reseller CSN. String - Free Text 35 5930928324

} - - - - -

soldTo { M Default Sold To Account for the order placed. JSON Object - -

csn M The value should always be equal to the renewable CSN of the partner calling the API.

String - Free Text 35 5986958493

} - - - - -

poNumber M Partner Purchase Order number. String - Free Text 35 PO_20160239483343

customerPoNumber O Customer Purchase Order number. String - Free Text 35 PO_20160239424197

contractStartDate O Requested contract start date. This value can only be in the future and not longer than 1 month from the date order is placed.

String - Date ISO 8601 format

10 2016-01-22

opportunityNumber O Valid opportunities that can be applied to orders. String - Free Text 15 A-2845134

lineItems [ M List of product to be ordered. Array - JSON Object - -

{ 1..N One occurrence per product. JSON Object - -

partNumber M Initial Order SKU for renewable subscription. String - Free Text 18 128I1-WW3492-T000

partnerSubscriptionId M Should be a fresh value generated by the service caller. Formerly known as subscription Id.

String - UUID version 4 40 42e0e7d0-e7d7-408a-8471-bb2acc62fbc2

quantity M Number of seats. Number - Integer - 3

netPrice M Price for the line item. Please note that quantity is a factor for the pricing. Ex – If a customer has ordered 3 seats of a product and each seat is $110.14 then netPrice = 3*$110.14 = $330.42

String - Free Text 20 330.42

} - - - -

] - - - -

Table 2:Detailed JSON Request Structure for Initial Orders (Renewal)

AUTODESK PlaceOrder v2 Service Reference Manual 14

5.1.3.2 Additions

Payload Structure Cardinality Description / Condition Data Type Length Example

action M Action to be performed by the service. For additions its value has to be “Add-On”

String - Free Text 35 “Add-On”

endCustomer { O Default End Customer information for the order placed.

JSON Object - -

contractManager {} O Default Contract Manager for the order placed. JSON Object Please refer to 5.1.3.4(b) (Contact) for entity details.

- -

} - - - - -

shipTo {} M Default Ship to Account for the order placed. JSON Object Please refer to 5.1.3.4(a) (Account) for entity details.

- -

reseller { M Default Reseller Account for the order placed. JSON Object - -

csn M Reseller CSN. String - Free Text 35 5930928324

} - - - - -

soldTo { M Default Sold To Account for the order placed. JSON Object - -

csn M The value should always be equal to the renewable CSN of the partner calling the API.

String - Free Text 35 5986958493

} - - - - -

poNumber M Partner Order number. String - Free Text 35 PO_20160239483644

customerPoNumber O Customer Order number. String - Free Text 35 PO_20160239428990

contractNumber M Contract number to which the product will be added and/or Contract number containing the product to which the additional seats will be added.

String - Free Text 15 778734758334

opportunityNumber O Valid opportunities that can be applied to orders. String - Free Text 15 A-2845121

lineItems [ M List of products to be added or modified. Array - JSON Object - -

{ 1..N One occurrence per product. JSON Object - -

partNumber M Based on the operation:

String - Free Text 18 128I1-WW4421-T056

AUTODESK PlaceOrder v2 Service Reference Manual 15

Add Product: Initial Order SKU Add Seat: Add Seat SKU

partnerSubscriptionId

O Required for Add Products. Should be a fresh value generated by the service caller. Formerly known as subscription ID

String - UUID version 4 40 89095390-7398-45ef-8f2f-41727552d55e

subscriptionReferenceNumber

O Required for Add Seats. Formerly known as serial number Serial number of the product to modify.

String - Free Text 40 563-04891896

Quantity M Number of seats. Number - Integer - 8

netPrice M Price for the line item. Please note that quantity is a factor for the pricing.

String - Free Text 20 230.50

} - - - - -

] - - - - -

Table 3:Detailed JSON Request Structure for Additions to existing Orders (Renewal)

5.1.3.3 Renewal

Payload Structure Cardinality Description / Condition Data Type Length Example

action M Action to be performed by the service. For renewals its value has to be “Renewal”

String - Free Text 35 “Renewal”

endCustomer { O Default End Customer information for the order placed.

JSON Object - -

contractManager {} O Contract Manager details should only be sent if there is a new Contract Manager for the particular contract. If the Contract Manager is unchanged, then there is no need for the partner to send the contract manager.

JSON Object Please refer to 5.1.3.4(b) (Contact) for entity details.

- -

} - - - - -

shipTo {} M Default Ship to Account for the order placed. JSON Object Please refer to 5.1.3.4(a) (Account) for entity details.

- -

reseller { M Default Reseller Account for the order placed. JSON Object - -

AUTODESK PlaceOrder v2 Service Reference Manual 16

csn M Reseller CSN. String - Free Text 35 5930928324

} - - - - -

soldTo { M Default Sold To Account for the order placed. JSON Object - -

csn M The value should always be equal to the renewable CSN of the partner calling the API.

String - Free Text 35 5986958493

} - - - - -

poNumber M Partner Order number. String - Free Text 35 PO_20160239489975

customerPoNumber O Customer Order number. String - Free Text 35 PO_20160239420056

contractNumber M String - Free Text 15 778734753442

opportunityNumber O Valid opportunities that can be applied to orders. String - Free Text 15 A-2845443

lineItems [ M List of products to be added or modified. Array - JSON Object - -

{ 1..N One occurrence per product. JSON Object - -

partNumber M Renew SKU. String - Free Text 18 128I1-WW3497-T122

partnerSubscriptionId O Subscription ID of the product to renew. Formerly known as subscriptionID

String - UUID version 4 40 d3a274b0-3bb4-4f52-a39b-11163bb09b0f

subscriptionReferenceNumber

M Subscription Reference Number of the product to renew. Formerly known as the serial number.

String - Free Text 40 563-04891896

quantity M Number of seats. Number - Integer - 5

netPrice M Price for the line item. Please note that quantity is a factor for the pricing.

String - Free Text 20 553.20

} - - - - -

] - - - - -

Table 4:Detailed JSON Request Structure for Renew Orders

AUTODESK PlaceOrder v2 Service Reference Manual 17

5.1.3.4 Maintenance-to-Subscription Switch

Payload Structure Cardinality Description / Condition Data Type Length Example

action M Action to be performed by the service. For M2S its value has to be “Switch from Maintenance”

String - Free Text 35 “Switch from Maintenance”

endCustomer { O Default End Customer information for the order placed.

JSON Object - -

contractManager {} O Contract Manager details should only be sent if there is a new Contract Manager for the particular contract. If the Contract Manager is unchanged, then there is no need for the partner to send the contract manager.

JSON Object Please refer to (b) (Contact) for entity details.

- -

} - - - - -

shipTo {} M Default Ship to Account for the order placed. JSON Object Please refer to (a) (Account) for entity details.

- -

reseller { M Default Reseller Account for the order placed. JSON Object - -

csn M Reseller CSN. String - Free Text 35 5930928324

} - - - - -

soldTo { M Default Sold To Account for the order placed. JSON Object - -

csn M The value should always be equal to the renewable CSN of the partner calling the API.

String - Free Text 35 5986958493

} - - - - -

poNumber M Partner Order number. String - Free Text 35 PO_20160239489975

customerPoNumber O Customer Order number. String - Free Text 35 PO_20160239420056

switchFromContractNumber M Represents the existing maintenance agreement. String - Free Text 15 110123456789

contractTerm O String value of the unit of measurement the partner is ordering. Term is annual (1 year), 2 year, or 3 year

String - Free Text 15 Annual

opportunityNumber M Represents the maintenance renewal opportunity. This is a required field for M2S switches.

String - Free Text 15 A-2845443

AUTODESK PlaceOrder v2 Service Reference Manual 18

lineItems [ M List of products to be added or modified. Array - JSON Object - -

{ 1..N One occurrence per product. JSON Object - -

partNumber M Renew SKU. String - Free Text 18 128I1-WW3497-T122

quantity M Number of seats. Number - Integer - 5

netPrice M Either the full price of the sku or the prorated price if it is add to existing contract.

String - Free Text 20 553.20

partnerSubscriptionId O Subscription ID of the product to renew. Formerly known as subscriptionID

String - UUID version 4 40 d3a274b0-3bb4-4f52-a39b-11163bb09b0f

previousSubscriptions [ M Array of serial numbers to be switched. Array - JSON Object - -

subscriptionReferenceNumber

M Subscription Reference Number of the product to renew. Formerly known as the serial number.

String - Free Text 36 563-04891896

quantity O For future extension of this schema to support partial quantity but will not be validated for existing Switch Flow. As it is always assumed that all the quantity is switched with switch action.

Number - Integer - 7

]

} - - - - -

] - - - - -

Table 5:Detailed JSON Request Structure for M2S Orders

AUTODESK PlaceOrder v2 Service Reference Manual 19

(a) Account

Payload Structure Cardinality Description / Condition Data Type Length Example

csn O - String - Free Text 10 5256678474

name O Mandatory if csn is not provided, ignored otherwise. String - Free Text 35 Partner Inc.

altName O Mandatory if csn is not provided, ignored otherwise. String - Free Text 35 -

addressLine1 O Mandatory if csn is not provided, ignored otherwise. String - Free Text 35 1 Parkway Road

addressLine2 O Optional if csn is not provided, ignored otherwise. String - Free Text 35 -

addressLine3 O Optional if csn is not provided, ignored otherwise. String - Free Text 35 -

city O Mandatory if csn is not provided, ignored otherwise. String - Free Text 35 San Jose

postalCode O Mandatory if csn is not provided, ignored otherwise. String - Free Text 35 94604

stateProvinceCode O Optional if csn is not provided, ignored otherwise. String - Free Text 35 CA

countryCode O Mandatory if csn is not provided, ignored otherwise. String - ISO 2 Digit Country Code

2 US

Table 6: Account JSON Model

(b) Contact

Payload Structure Cardinality Description / Condition Data Type Length Example

firstName M First name of the contact. String - Free Text 35 James

lastName M Last name of the contact. String - Free Text 35 Peterson

email M Email address of the contact. String - Free Text 35 [email protected]

countryCode O Country of the contact. String - ISO 2 Digit Country Code

2 US

language O Preferred language of the contact. String - ISO 2 Digit Language Code

35 EN

Table 7: Contact JSON Model

AUTODESK PlaceOrder v2 Service Reference Manual 20

5.2 Response

5.2.1 High-Level Entity Relationship model

The following figure represents the high-level response schema of the PlaceOrder service. For a detailed

description of each item, please refer to Detailed Response JSON Structure:

Figure 3: Response High-Level JSON Schema Model

AUTODESK PlaceOrder v2 Service Reference Manual 21

5.2.2 Detailed Response JSON Structure

The following table explains the schema for the Response of the API service.

* Please note that Bold elements denote Groups. Plain elements denote Input Fields.

Payload Structure Cardinality Description / Condition Data Type Length Example

transactionId M The unique integer used in the request to identify the transaction.

String - UUID version 4 36 aed587eb-4ad3-4ec2-8083-822062d55a0b

status M The status confirming if request event has started processing or encountered an error. Possible values are:

• processing

• error

String - Free Text 10 processing

error O Error when processing the event, if any. JSON Object - -

{ - - - - -

code O Error code associated with error message. Please check section 8 for error codes and descriptions.

String - Free Text 5 43003

message O Human readable message explaining error Please check section 8 for error codes and descriptions.

String - Free Text 50 Enter a valid action

} - - - - -

Table 8: Detailed JSON Response Structure

AUTODESK PlaceOrder v2 Service Reference Manual 22

6 Sample Requests/Responses

Below some sample requests are provided as a reference. Please note that there are lots of other

combinations possible.

6.1 Initial Order

Below sample request is for an initial renewable order with one product subscription.

Request

POST /v2/orders/fulfillment HTTP/1.1 Host: enterprise-api-stg.autodesk.com Authorization: Bearer EJHZpIWBkdQPecjwVhLylKGDOtMF Content-Type: application/json signature: eDHyiqdugOMZTJwcvXFlrb/YycqvIMfgBSKhWEptVoR= timestamp: 1481139061 CSN: 0013284960

{

"action": "Initial",

"endCustomer": {

"account": {

"name": "Padberg-Boyle",

"addressLine1": "9451 Lee Hwy",

"addressLine2": "Apt:617",

"city": "Fairfax",

"stateProvinceCode": "VA",

"postalCode": "22031",

"countryCode": "US"

},

"contractManager": {

"firstName": "Pearlie",

"lastName": "Christiansen",

"email": "[email protected]",

"language": "EN",

"countryCode": "US"

}

},

"shipTo": {

"name": "ABC End User",

"addressLine1": "123 Main Street",

"addressLine2": "Building A",

"city": "San Francisco",

AUTODESK PlaceOrder v2 Service Reference Manual 23

"stateProvinceCode": "CA",

"postalCode": "94105",

"countryCode": "US"

},

"reseller": {

"csn": "0070176510"

},

"soldTo": {

"csn": "0070176510"

},

"poNumber": "2017-08-01-9678071455770702",

"customerPoNumber": "2017-08-01-5521607100752069",

"lineItems": [{

"partNumber": "001I1-WW1518-T316",

"partnerSubscriptionId": "f2072540-4713-42c4-89bb-52bc6862db7a",

"quantity": 1,

"netPrice": "497.25"

}

]

}

Response with no errors

{

"transactionId": "b982c66e-0a02-4c7a-a920-f6d94a37888c",

"status": "processing"

}

Response with errors

{

"transactionId": "f23d640e-ed49-4f8b-83fb-d549c15aaef2",

"status": "error",

"error": {

"code": 43033,

"message": "Enter a valid price for Part Number 001I1-WW1518-T316"

}

}

AUTODESK PlaceOrder v2 Service Reference Manual 24

6.2 Additions – Add seats

Below sample request is an addition request for adding more seats to one product of an existing

renewable contract.

Request

POST /v2/orders/fulfillment HTTP/1.1 Host: enterprise-api-stg.autodesk.com Authorization: Bearer EJHZpIWBkdQPecjwVhLylKGDOtMF Content-Type: application/json signature: eDHyiqdugOMZTJwcvXFlrb/YycqvIMfgBSKhWEptVoR= timestamp: 1481139061 CSN: 0013284960

{

"action": "Add-On",

"endCustomer":{

"contractManager":{

"firstName":"John",

"lastName":"Smith",

"email":"[email protected]",

"language":"EN",

"countryCode":"US"

}

},

"shipTo":{

"name":"AB Devillers",

"addressLine1":"1482 spicetree circle",

"addressLine2":"Apt:203",

"city":"Fairborn",

"stateProvinceCode":"OH",

"postalCode":"45324",

"countryCode":"US"

},

"reseller":{

"csn":"0070176510"

},

"soldTo":{

"csn":"0070176510"

},

"customerPoNumber":"2017-08-01-9678071455779977",

"poNumber":"2017-08-01-9678071455776653",

"contractNumber":"712100035873",

"lineItems":[

{

"partNumber":"001I1-009113-T722",

AUTODESK PlaceOrder v2 Service Reference Manual 25

"subscriptionReferenceNumber":"712-10050071",

"quantity":1,

"netPrice":"497.25"

}

]

}

Response with no errors

{

"transactionId": "7ec0f98e-116f-4fea-81a4-25257c28dd39",

"status": "processing"

}

Response with errors

{

"transactionId": "9f387ef1-fd89-4e03-a70d-1f6394ecae45",

"status": "error",

"error": {

"code": "status_failed",

"message": "No asset on agreement for corresponding

subscriptionReferenceNumber 123-434343 in line items"

}

}

AUTODESK PlaceOrder v2 Service Reference Manual 26

6.3 Additions – Add products

Below sample request is an addition request for adding one product to an existing renewable contract.

Request

POST /v2/orders/fulfillment HTTP/1.1 Host: enterprise-api-stg.autodesk.com Authorization: Bearer EJHZpIWBkdQPecjwVhLylKGDOtMF Content-Type: application/json signature: eDHyiqdugOMZTJwcvXFlrb/YycqvIMfgBSKhWEptVoR= timestamp: 1481139061 CSN: 0013284960

{

"action": "Add-On",

"endCustomer":{

"contractManager":{

"firstName":"John",

"lastName":"Smith",

"email":"[email protected]",

"language":"EN",

"countryCode":"US"

}

},

"shipTo":{

"name":"AB Devillers",

"addressLine1":"1482 spicetree circle",

"addressLine2":"Apt:203",

"city":"Fairborn",

"stateProvinceCode":"OH",

"postalCode":"45324",

"countryCode":"US"

},

"reseller":{

"csn":"0070176510"

},

"soldTo":{

"csn":"0070176510"

},

"customerPoNumber":"2017-08-01-9678071455779977",

"poNumber":"2017-08-01-9678071455776653",

"contractNumber":"712100035873",

"lineItems":[

{

"partNumber":"834I1-WW1518-T316",

"partnerSubscriptionId":"36b91fc0-06ba-4ee2-a1f4-093268e7d8c6",

AUTODESK PlaceOrder v2 Service Reference Manual 27

"quantity":1,

"netPrice":"211.75"

}

]

}

Response with no errors

{

"transactionId": "466f482a-49cd-4e61-9d8f-88a3fa217a0f",

"status": "processing"

}

Response with errors

{

"transactionId": "112e5a87-6983-4512-b847-e13b2e9092e4",

"status": "error",

"error": {

"code": 43015,

"message": "Part Number 827I1-WW1060-T725 does not exist"

}

}

AUTODESK PlaceOrder v2 Service Reference Manual 28

6.4 Renewals

Below sample request is a request for the renewal of a contract. The proper renew SKU should be used

by the caller.

Request

POST /v2/orders/fulfillment HTTP/1.1 Host: enterprise-api-stg.autodesk.com Authorization: Bearer EJHZpIWBkdQPecjwVhLylKGDOtMF Content-Type: application/json signature: eDHyiqdugOMZTJwcvXFlrb/YycqvIMfgBSKhWEptVoR= timestamp: 1481139061 CSN: 0013284960

{

"action": "Renewal",

"endCustomer": {

"contractManager": {

"firstName": "John",

"lastName": "Smith",

"email": "[email protected]",

"language": "EN",

"countryCode": "US"

}

},

"shipTo": {

"name": "rqrmnDdwsRenew Auto",

"addressLine1": "500 California st",

"addressLine2": "Omni building",

"city": "San Francisco",

"stateProvinceCode": "CA",

"postalCode": "94104",

"countryCode": "US"

},

"reseller": {

"csn": "0070176510"

},

"soldTo": {

"csn": "0070176510"

},

"poNumber": "2017-08-01-9678071455771112",

"customerPoNumber": "2017-08-01-9678071455774556",

"contractNumber": "712100035873",

"opportunityNumber": "A-2010676",

"lineItems": [{

"partNumber": "001I1-006414-T772",

AUTODESK PlaceOrder v2 Service Reference Manual 29

"subscriptionReferenceNumber": "712-10050071",

"quantity": 1,

"netPrice": "485.55"

}

]

}

Response with no errors

{

"transactionId": "f30b6c7a-9585-41d1-9411-834d170acd95",

"status": "processing"

}

Response with errors

{

"transactionId": "7e937dbf-ab52-4a28-b7cf-74c4908d333a",

"status": "error",

"error": {

"code": 43001,

"message": "Unable to retrieve opportunity details"

}

}

AUTODESK PlaceOrder v2 Service Reference Manual 30

6.5 Maintenance-to-Subscription switch

Below sample request is an M2S request for switching from a Maintenance to a Subscription contract.

Request

POST /v2/orders/fulfillment HTTP/1.1 Host: enterprise-api-stg.autodesk.com Authorization: Bearer EJHZpIWBkdQPecjwVhLylKGDOtMF Content-Type: application/json signature: eDHyiqdugOMZTJwcvXFlrb/YycqvIMfgBSKhWEptVoR= timestamp: 1481139061 CSN: 0013284960

{

"action": "Switch from Maintenance",

"endCustomer": {

"contractManager": {

"firstName": "John",

"lastName": "Doe",

"email": "[email protected]",

"language": "EN",

"countryCode": "US"

}

},

"shipTo": {

"name": "ABC Tech Ltd.",

"addressLine1": "500 California St",

"addressLine2": "Suite 1234 ",

" city ": " San Francisco ",

" stateProvinceCode ": " CA ",

" postalCode ": " 94104 ",

" countryCode ": " US "

},

" reseller ": {

" csn ": " 0000001234 "

},

" soldTo ": {

" csn ": " 0070123456 "

},

" poNumber ": " PO - 1234 ",

" customerPoNumber ": " CUST - PO - 1234 ",

" switchFromContractNumber ": " 110123456789 ",

" opportunityNumber ": " A - 1234567 ",

" lineItems ": [{

" partNumber ": " 001I1 - WW1518 - T316 ",

" partnerSubscriptionId ": " bf862027 - 257a - 4c7a - 9c5d - 69f3516de5d0 ",

AUTODESK PlaceOrder v2 Service Reference Manual 31

" previousSubscriptions ": [{

" subscriptionReferenceNumber ": " 561 - 10123456 ",

" quantity ": " 7 "

}, {

" subscriptionReferenceNumber ": " 561 - 10345678 ",

" quantity ": " 9 "

}

],

" quantity ": " 16 ",

" netPrice ": " 777 "

}

]

}

Response with no errors

{

"transactionId": "f30b6c7a-9585-41d1-9411-834d170acd95",

"status": "processing"

}

Response with errors

{

"transactionId": "7e937dbf-ab52-4a28-b7cf-74c4908d333a",

"status": "error",

"error": {

"code":,43007

"message": "Enter a valid contract number"

}

}

AUTODESK PlaceOrder v2 Service Reference Manual 32

7 Formatting standards

UUID Version 4 – Unique randomly generate string

https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_.28random.29

ISO 8601 – YYYY-MM-DD date format

http://www.iso.org/iso/home/standards/iso8601.htm

ISO 639-1 - Two letter language code

http://www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm?csnumber=22109

ISO 3166-1 alpha-2 format – two letter country code form

http://www.iso.org/iso/country_codes

8 Error Messages

Prior to reaching Autodesk systems, the service validates the request for authorization of services and

authentication of the requester. Below is a list of error codes and their mapping to messages for

scenarios such as when a request is not authorized or if the requester is not authenticated.

8.1 System Error codes

The following table shows the system error codes generated for any system issues in Autodesk

environment and their respective error messages present in response messages:

HTTP Status Code Autodesk Error Code

Internal Message

200 – OK

201 – Created

304 – Not Modified

400 – Bad Request Error: 4000 Incorrect or malformed request

401 - Unauthorized Error: 4100 No CSN was passed in the request

401 - Unauthorized Error: 4101 No HMAC Signature passed in the request

401 – Unauthorized Error: 4102 No HMAC Client ID passed in the request

401 – Unauthorized Error: 4103 No HMAC Timestamp passed in the request

401 – Unauthorized Error: 4104 No Authorization passed in the request

401 – Unauthorized Error: 4105 Invalid token

401 – Unauthorized Error: 4106 Something went wrong generating the token

AUTODESK PlaceOrder v2 Service Reference Manual 33

403 – Forbidden Error: 4301 HMAC signature was passed, but not a correct one

403 – Forbidden Error: 4302 HMAC timestamp was passed, but not a correct one

403 – Forbidden Error: 4300 CSN was passed, but not a correct one Table 9: Authentication Error Codes

8.2 Service Error Codes

Table below lists the possible error codes returned by the PlaceOrder v2 Service due to Business Logic or

Data related errors:

Error Code Error Message Error Description

UAN-GEN-00108 Please enter Customer Number Customer Number with blank value

43001 Enter a valid <request body element> • Partner did not send a required entity/element for specified action (e.g. no Sold-To CSN provided by partner)

• Partner exceeded character length of the entity/element in the message

• Partner sent data in an incorrect format (e.g. sending a string when they were expected to send an integer, or sending dates in a format other than YYYY-MM-DD)

• Partner did not group certain elements together (e.g. partner opted to send end customer account details in lieu of an end customer CSN and are missing the account name)

43002 Request Body Missing Request message body is empty or blank

43003 Enter a valid action Action is not sent by partners or Action is not a valid name/scenario

43005 Invalid Part Number {{0}} for action • Part Number submitted by partner is not applicable to initial orders

• Part Number submitted by partner is not applicable to Add-On orders

• Part Number submitted by partner is not applicable to

AUTODESK PlaceOrder v2 Service Reference Manual 34

Subscription Renewal or Maintenance Renewal orders

43006 Invalid line item offering combination Part Numbers submitted by partner are not the same subscription type (e.g. subscription renewal vs. maintenance renewal)

43007 Enter a valid contract number Contract Number submitted by partner does not exist in back office (e.g. Siebel, SFDC)

43008 SubscriptionReferenceNumber {{0}} is not active

Subscription Reference Number submitted by partner is not an active subscription

43009 SubscriptionReferenceNumber {{0}} does not exist on contract

Subscription Reference Number submitted by partner is not a subscription under the Contract Number submitted by partner

43010 Subscription Id {{0}} does not exist on contract

Subscription ID submitted by partner is not a subscription under the Contract Number submitted by partner

43011 Enter a valid Sold-To CSN Invalid Sold To CSN provided

43012 Enter a valid Sold-To CSN Partner CSN not provided by partner in HTTP request header (unlikely scenario, as CSN is used in upfront apigee validation)

43013 Contract Start Date cannot exceed 30 days from today's date

Contact Start Date submitted by partner can be at most be 30 days in the future from today's date

43015 Part Number {{0}} does not exist Part Number submitted by partner does not exist or is not present in cache

43016 Part Number {{0}} billing behavior is not supported

Part Number submitted by partner has a billing behavior that is not blank, renewal, or recurring

43017 Part Number {{0}} is not active Part Number submitted by partner is not released (a.k.a. incorrect Dchain Status) for that partner's Sales Org

43018 Subscription term must match for all line items

Part Numbers submitted by partner do not have the same term (e.g. Quarterly, Annual, Multi-Year)

43019 Subscription term must match between all line items and contract

Part Numbers submitted by partner do not have the same term (e.g. Quarterly, Annual, Multi-Year) & do not match with the Service Contract Number provided

43020 License model must match for all line items

Part Numbers submitted by partner do not have the same License Model (e.g. Term)

AUTODESK PlaceOrder v2 Service Reference Manual 35

43021 License model must match for all line items and contract

Part Numbers submitted by partner do not have the same License Model & do not match with the Service Contract Number provided

43022 License usage type must match for all line items

Part Numbers submitted by partner do not have the same License Usage Type (e.g. COM)

43023 License usage type must match for all line items and contract

Part Numbers submitted by partner do not have the same License Usage Type & do not match with the Service Contract Number provided

43024 Billing behavior must match for all line items

Part Numbers submitted by partner do not have the same Billing Behavior (e.g. renewable, auto-renew)

43025 Billing behavior must match for all line items and contract

Part Numbers submitted by partner do not have the same billing behavior & do not match with the Service Contract's billing behavior

43026 Part Number {{0}} product line must match with subscription product line

Part Number submitted by partner to add seats is not the same product line as the subscription the seats are being added to

43027 Part Number {{0}} support level must match with subscription support level

Part Number submitted by partner to add seats is not the same subscription level as the subscription the seats are being added to

43028 Please submit another order for promotional items.

free month propries do not match

43029 Part Number {{0}} has a free month When modifying existing agreement. New skus can not have free months

43030 Reseller is not specialized for Part Number(s) {{0}}, {{0}}, …, {{0}}

Sku has Special Sales Program

43031 Unable to verify renewal opportunity line items

• No product list returned for opportunity

• Product list is empty

43032 Part Number {{0}} does not meet seat requirement

Seat count provided by partner for a given part number does not match the LPI opportunity seat threshold required for purchase

43033 Enter a valid price for Part Number {{0}} Price for line item submitted by partner does not match price records in cache

43035 Enter a valid Opportunity Number Opportunity Number submitted by partner either does not exist or the opportunity is in an invalid status (e.g. not Open, Ready for Order)

43036 Contract cannot be renewed Partner can no longer renew the service contract as it is past the grace

AUTODESK PlaceOrder v2 Service Reference Manual 36

period (30 days after contract end date)

43037 Line items do not match opportunity line items to be renewed

Partner request line items are not in one-to-one with renewable line items in the renewal opportunity specified (where oppty line item renew flag is set to 'TRUE')

43038 SubscriptionReferenceNumber {{0}} quantity does not match opportunity line item quantity to be renewed

Partner has submitted a Subscription Reference Number to be renewed and the quantity they specified in their request message is not the quantity that is expected to be renewed

43039 Order has already been submitted Partner has submitted the same request/order to us and that previous order was created successfully

43040 Pricing not found for Part Number {{0}} Part Number provided by partner does not have pricing details for that partner's price list and price group

43041 Invalid Part Number {{0}} for subscription product line

Part Number submitted by partner does not match the product line of the subscription it is attempting to modify

43042 SubscriptionReferenceNumber {{0}} does not exist on subscription

Subscription ID generated and submitted by partner is not the Subscription ID that already exists on the Subscription Reference Number

43043 Subscription term must match for opportunity and contract

Opportunity submitted by partner does not have the same term (e.g. Quarterly, Annual, Multi-Year) as the Service Contract Number provided

43044 Product Line {{0}} on opportunity is missing in request

Partner did not send a part number for a corresponding LPI opportunity product to be purchased

50100 Internal Server Error • All unhandled exceptions

• Unable to connect to downstream service

Table 10: Application Error Codes

8.3 Asynchronous Error Codes

Once the Order has been placed, asynchronous validations are executed in the Autodesk backend.

Possible validations errors will be returned by the GetOrderStatus service. Please check the

PWS_GetOrderStatus_Service Reference Manual to find all possible error codes.


Recommended