openapi: 3.1.1 info: title: APIs for Dassault Systèmes Partners accreditations orders API description: APIs exposed by Dassault Systèmes to its partners and resellers. version: 0.10.0 license: name: Dassault Systèmes 2025 url: https://www.3ds.com/ x-logo: url: https://www.3ds.com/assets/3ds-navigation/3DS_corporate-logo_blue.svg altText: Dassault Systèmes backgroundColor: '#FFFFFF' servers: - url: https://apigw-prd.3ds.com description: Main (production) server - url: https://apigw-ppt.3ds.com description: Server for development by Partners (Non Production) - url: https://apigw-qal.3ds.com description: Server for Quality Assurance Testing (Non Production) - url: https://apigw-ptd.3ds.com description: Server for preprod validation (Non Production) - url: https://apigw-ppd.3ds.com description: Server for postprod validation (Non Production) security: - ApiKeyAuth: [] tags: - name: orders description: 'This section defines the operations related to orders, including the creation, management, and fulfillment of orders. It provides a comprehensive overview of the order lifecycle, from initial request to final delivery. The operations in this section are designed to support the efficient and effective management of orders, ensuring that customers receive their products or services in a timely and satisfactory manner. The following operations are included in this section: * Searching Orders * Getting Order Details ' paths: /order/api4partners/v0/orders/search: post: summary: Search Orders using various filters description: 'Searches for orders based on various filter criteria such as creation date, booking date, last modified date, and more. Supports pagination through `skip` and `top` query parameters. ' tags: - orders operationId: searchOrders parameters: - name: skip in: query description: "The number of records to skip in the result set. \nUse this for paginating through results. Defaults to 0 if not specified.\nFor example, `skip=20` will skip the first 20 records.\n" schema: type: integer minimum: 0 default: 0 - name: top in: query description: "The maximum number of records to return in the response. \nUse this to limit the size of the result set. Defaults to 10 if not specified.\nFor example, `top=10` will return up to 10 records starting from the position defined by `skip`.\n" schema: type: integer minimum: 1 maximum: 100 default: 10 requestBody: description: "A JSON object specifying filter criteria for retrieving matching orders.\n\nThe request must include at least one of the following sub-objects: \n- `creationDateTime`\n- `bookingDateTime`\n- `lastUpdateDateTime`\n- `installedBaseNumber`\n- `onlineInstanceSeatId`\n- `billToPoReferences`\n\nThese will be combined using an AND operator if more than one is provided.\n" content: application/json: schema: $ref: '#/components/schemas/orders_search_req' examples: basicSearchSingleCriteria: summary: Sample request body for searching orders using a single criterion description: 'This example demonstrates how to search for orders using the `creationDateTime` criterion. If the `to` value is not provided under `creationDateTime`, it is implicitly set to either 7 days after the `from` timestamp or the current time—whichever is earlier. This JSON payload retrieves all orders created between `01-April-2025 1:30 AM UTC` and `08-April-2025 1:30 AM UTC`. ' value: creationDateTime: from: '2025-04-01T01:30:00Z' advancedSearchMultipleCriteria: summary: Sample request body for searching orders using multiple criteria description: 'This example demonstrates how to search for orders using multiple criteria: - `creationDateTime` - `lastUpdateDateTime` - `installedBaseNumber` - `transactionType` If the `to` value is not provided under `creationDateTime`, it is implicitly set to either 7 days after the `from` timestamp or the current time—whichever is earlier. If the `from` value is not provided under `lastUpdateDateTime`, it is implicitly set to 3 days before the `to` timestamp. This JSON payload searches for all `Renewal Orders` that: - Were created between `01-April-2025 1:30 AM UTC` and `08-April-2025 1:30 AM UTC` - Were modified between `22-May-2025 7:45 PM UTC` and `25-May-2025 7:45 PM UTC` - Have the InstalledBase Number `LN00001234567` ' value: creationDateTime: from: '2025-04-01T01:30:00Z' lastUpdateDateTime: to: '2025-05-25T19:45:00Z' installedBaseNumber: LN00001234567 transactionType: RN required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/200_post_orders_search' examples: successful_ordersSearch_OneResult: summary: Sample successful basic Search for orders description: Sample successful basic search for orders with only 1 result. value: data: - transaction: id: PO_A123456789 type: PO status: Sent to DSx.Finance description: XYZ Company Order 50 products creationDateTime: '2024-05-21T14:30:00Z' dsRecievedPoDate: '2024-05-21' bookingDateTime: '2024-05-29T18:00:00Z' currency: USD onlineConsentStatus: Not Applicable billToSalesRepresentative: DOE, Jane billToPoReference: EXAMPLE-CORP-20250518 billToSite: id: '100012345678901' name: Example Corporation localName: 示例公司 locationId: 1 soldToSite: id: '200012345678901' name: Foobar Inc localName: फ़ूबार इंक locationId: 2 businessUnit: id: BU001 name: Corporate Sales Unit A localTimezone: CET info: success: true statusCode: 200 estimatedSearchCount: 1 200_ordersSearch_No-Result: summary: Sample successful Search for orders without any results description: Sample successful Search for orders without any results value: data: [] info: success: true statusCode: 200 estimatedSearchCount: 0 '400': description: Bad request, invalid input. content: application/json: schema: $ref: '#/components/schemas/400_post_orders_search' examples: failedOrderSearch_BadRequest: summary: Example response for a bad request description: 'This example shows the response returned when a bad request is made, such as when no search criteria are provided. ' value: data: [] info: success: false statusCode: 400 estimatedSearchCount: 0 error: - type: errors:3dx:invalidRequest title: Missing required search criteria errors: - detail: 'Please specify at least one search criterion. Valid options include: `creationDateTime`, `bookingDateTime`, `lastUpdateDateTime`, `installedBaseNumber`, `onlineInstanceSeatId`, `billToPoReferences`.' pointer: '#' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/401_basic_unauthorized' examples: 401_missing-apikey: summary: Service response in case of missing APIKEY. description: Basic Service response in case of missing APIKEY in request value: message: Missing API key in request '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/403_basic_forbidden' examples: 403_forbidden: summary: Access Forbidden description: Access Forbidden. Typical reason could be usage of invalid API-KEY or a valid one but for a scope on which access has not been granted by 3DS. value: message: API Consumer Not allowed '429': description: Too many Requests content: application/json: schema: $ref: '#/components/schemas/429_too_many_requests' examples: 429_too_many_requests: summary: Too many Requests description: The service cannot handle the request as too many have been received. value: message: Too many requests, please try again later /order/api4partners/v0/orders/{id}: get: summary: Get Order details description: Retrieves all the details of an order given its Dassault Systèmes reference. tags: - orders operationId: getOrderDetails parameters: - name: id in: path required: true description: id of the order to get details from schema: type: string example: PO_000123456789 responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/200_get_orders' examples: successful_getOrderDetails: summary: Sample successful response for order details query description: Example of response for order details with line and subLine value: data: - transaction: id: PO_A123456789 type: PO status: Sent to DSx.Finance description: XYZ Company Order 50 products businessUnit: id: BU001 name: Corporate Sales Unit A localTimezone: CET billToSite: id: '100012345678901' name: Example Corporation localName: 示例公司 locationId: 1 billToContact: DOE, Jini soldToSite: id: '200012345678901' name: Foobar Inc localName: फ़ूबार इंक locationId: 2 creationDateTime: '2024-05-21T14:30:00Z' dsReceivedPoDate: '2024-05-21' bookingDateTime: '2024-05-29T18:00:00Z' currency: USD onlineConsentStatus: Not Applicable billToSalesRepresentative: DOE, Jane billToPoReference: EXAMPLE-CORP-20250518 agreement: type: General VAR Agreement reference: Enterprise License Agreement Q2 2024 sboNumber: ABC0012345 customerRequestedArrivalDate: '2025-05-31' dsSalesRepresentative: DOE, John isMultiYear: false hasExitClause: false recurringChargeBillingCycle: Calendar Year opportunity: A1B2-C3D4E5 paymentTerms: Net Date of Invoice + 60 days licenseChargeConditions: - sequenceNumber: 1 lineGroup: SBL0001234567 onlineInstanceSeatId: R1122334455667 orderType: Stop - Transform usageScope: GEO EMEA promotion: id: PAO0000111 name: 3DEXPERIENCE for small and medium business combination: Collaborative Design & Engineering Learning @Home waiver: endDate: '2025-09-15' licenseChargeBreakdown: - sequenceNumber: 1 installedBaseNumber: LN00012345678 subOrderType: New License revenueType: ALC portfolio: CATIA release: 3DEXPERIENCE R2025x product: trigram: ABC type: Named User number: 1AB-ABC name: Generic Product Standard with Cloud Services dsOffering: Licensed Program quantity: 2 unitListPrice: 1000 totalListPrice: 2000 billToNetAmount: 1930 billToAnnualAmount: 1930 billToDiscountPercentage: 30.5 billToMarginPercentage: 10.5 maximumCustomerNetAmount: 1958.95 maximumCustomerAnnualAmount: 1958.95 minimumCustomerDiscountPercentage: 10.5 startDate: '2025-06-01' endDate: '2026-05-31' duration: 2 calculatedStartDate: '2025-06-01' calculatedEndDate: '2026-05-31' yearNumber: 1 coupon: name: 10% off on Installation Fee discountPercentage: 10 inflation: date: '2025-07-01' ratio: 1.04 exception: Capping To Price List info: success: true statusCode: 200 estimatedSearchCount: 1 '400': description: Bad Request. content: application/json: schema: $ref: '#/components/schemas/4xx_get_orders' examples: failedOrderGet_BadRequest: summary: Example response for missing required parameter description: 'This example shows the response returned when transaction id is missing in the request. ' value: data: [] info: success: false statusCode: 400 estimatedSearchCount: 0 error: - type: errors:3dx:invalidRequest title: Bad Request errors: - detail: A required parameter is missing. pointer: '#/transactionId' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/401_basic_unauthorized' examples: 401_missing-apikey: summary: Service response in case of missing APIKEY. description: Basic Service response in case of missing APIKEY in request value: message: Missing API key in request '403': description: Unauthorized, missing or invalid API Key. content: application/json: schema: $ref: '#/components/schemas/403_basic_forbidden' examples: 403_forbidden: summary: Access Forbidden description: Access Forbidden. Typical reason could be usage of invalid API-KEY or a valid one but for a scope on which access has not been granted by 3DS. value: message: API Consumer Not allowed '404': description: Not Found. content: application/json: schema: $ref: '#/components/schemas/4xx_get_orders' examples: failedOrderGet_BadRequest: summary: Example response for a Resource not Found description: 'This example shows the response returned when no Order exists with the provided Id. ' value: data: [] info: success: false statusCode: 400 estimatedSearchCount: 0 error: - type: errors:3dx:resourceNotFound title: Not found errors: - detail: Change your parameters to get results pointer: '#' '429': description: Too many Requests content: application/json: schema: $ref: '#/components/schemas/429_too_many_requests' examples: 429_too_many_requests: summary: Too many Requests description: The service cannot handle the request as too many have been received. value: message: Too many requests, please try again later components: schemas: installed_base_number: type: string description: 'A unique identifier for the installed base, representing the total number of software licenses that have been issued to a Final Customer. The Installed Base Number is used to determine the Final Customer''s maintenance and support obligations, as well as to calculate the cost of future upgrades or renewals. This is used to track the Final Customer''s software licenses and maintenance history. ' maxLength: 40 example: LN00012345678 error: type: array description: 'An array containing one or more error objects identified during the request processing. Each object provides detailed information about a specific type of error encountered. ' items: type: object properties: type: type: string description: "A URI identifying the specific type of error. \nThis allows API consumers to programmatically recognize and handle the error appropriately. \n\nThe URI follows the format: `errors::` \nExample values include:\n- `errors:3dx:invalidRequest`\n- `errors:3dx:authenticationGenericError`\n- `errors:3dx:resourceNotFound`\n- `errors:3dx:internalServerError`\n" enum: - errors:3dx:invalidRequest - errors:3dx:authenticationGenericError - errors:3dx:resourceNotFound - errors:3dx:internalServerError title: type: string description: A user-friendly error message, typically localized (NLS-supported), describing the general nature of the error. errors: type: array description: "A list of individual validation or processing errors related to the request. \nUseful when multiple issues are detected at once.\n" items: type: object description: Details of a single error instance. properties: detail: type: string description: A human-readable message offering guidance to resolve the specific error. pointer: type: string description: A [JSON Pointer](https://datatracker.ietf.org/doc/html/rfc6901) indicating the location of the field in the request payload where the error occurred. required: - type - title 429_too_many_requests: type: object description: Too Many Requests properties: message: type: string required: - message order_type: type: string description: 'Specifies the classification of the order based on its nature, purpose, or contractual arrangement. This helps identify whether the order involves a new purchase, renewal, upgrade, transfer, suspension, migration, evaluation, or any other business scenario. Each value represents a predefined business process or transaction type that impacts how the order is handled and processed. For a complete list of supported values, refer to the `enum` section. ' enum: - Change of Channel - Change of VAR - DS Brand -> DS & Migration - DS Brand -> DS OTC Platform - EPP Training - Evaluation License - IBM -> DS - IBM -> DS & Migration - IBM -> DS without Support - IBM NAL Parallel Use -> DS - IBM NAL without Support -> DS - Intercompany Transfer - Migration - Non Standard - Migration - Standard - Module Exchange - Non Standard - Module Exchange - Standard - New - One Time Fee - Parallel Use Extension - Renewal - Special Order - Stop - Stop & Parallel Use - Stop - Transform - Suspension - Suspension Reinstatement - TOS Reinstatement - Termination Of Support - Transfer Parallel Use - Transfer without Support - VAR Use x-enumDescriptions: New: A fresh order that does not involve any migration, renewal, or upgrade. Renewal: Extending an existing license. Migration - Standard: A standard migration from another platform. Evaluation License: License issued temporarily for evaluation purposes. Stop - Transform: Discontinuing an existing license with a shift to a transformed model or product. Suspension: Temporarily halting the license or support services. Termination Of Support: Ending the support of a product or service. VAR Use: Orders associated with Value-Added Resellers (VAR). Change of Channel: Changing Final Customer coverage from direct to indirect or vice versa. Change of VAR: Changing the Value-Added Reseller (VAR) for an existing order. DS Brand -> DS & Migration: Migrating from DS Brand to DS with migration services. DS Brand -> DS OTC Platform: Transitioning from DS Brand to DS OTC Platform. EPP Training: Training related to EPP (Enterprise Productivity Portfolio). IBM -> DS: Transitioning from IBM to DS. IBM -> DS & Migration: Transitioning from IBM to DS with migration services. IBM -> DS without Support: Transitioning from IBM to DS without support. IBM NAL Parallel Use -> DS: Parallel use of IBM NAL with DS. IBM NAL without Support -> DS: Transitioning from IBM NAL to DS without support. Intercompany Transfer: Transferring licenses between different companies. Migration - Non Standard: Non-standard migration processes. Module Exchange - Non Standard: Non-standard module exchange processes. Module Exchange - Standard: Standard module exchange processes. One Time Fee: Fee charged for a one-time service or transaction. Parallel Use Extension: Extending the parallel use period. Special Order: New licenses with specific administrative requests. Stop: Discontinuing an existing license. Stop & Parallel Use: Discontinuing an existing license with parallel use. Suspension Reinstatement: Reinstating a suspended license or support services. TOS Reinstatement: Reinstating terms of service. Transfer Parallel Use: Transferring licenses with parallel use. Transfer without Support: Transferring licenses without support. example: Stop - Transform order_get_data: type: array description: List of orders retrieved during the search operation. items: type: object description: Summary information for a single order. properties: transaction: $ref: '#/components/schemas/transaction' businessUnit: $ref: '#/components/schemas/business_unit' billToSite: type: object description: Legal entity to which Dassault Systèmes will issue the invoice (Bill To). $ref: '#/components/schemas/legal_entity' soldToSite: type: object description: Legal entity of the company that is the Final Customer of Dassault Systèmes products (Sold To). $ref: '#/components/schemas/legal_entity' agreement: type: object description: 'Contains details about the license agreement associated with the licenses being ordered in the Purchase Order (PO). ' properties: type: type: string description: 'Type or classification of the agreement. ' maxLength: 100 example: General VAR Agreement reference: type: string description: 'A short, descriptive title or label assigned to the agreement at the time of its creation. This helps users identify the specific agreement applied to the order. It can be selected in the Purchase Order only for agreement types where the sub-group is `Instantiated`. ' maxLength: 254 example: Enterprise License Agreement Q2 2024 required: - type billToContact: type: string description: Full name of the contact person at the Bill To site (billing entity) who is responsible for the order. This contact person is the primary point of communication for billing-related inquiries and transactions. Format-`LASTNAME, Firstname` (e.g., `DOE, John`). creationDateTime: $ref: '#/components/schemas/creation_datetime' dsReceivedPoDate: $ref: '#/components/schemas/ds_received_po_date' bookingDateTime: $ref: '#/components/schemas/booking_datetime' currency: $ref: '#/components/schemas/currency' onlineConsentStatus: $ref: '#/components/schemas/online_consent_status' billToSalesRepresentative: $ref: '#/components/schemas/billto_sales_representative' billToPoReference: $ref: '#/components/schemas/billto_po_reference' sboNumber: type: string description: 'Unique identifier of the Special Bid Offer (SBO) that served as the basis for creating the order. Typically used to track and reference special pricing or offer conditions. ' maxLength: 10 example: ABC0012345 customerRequestedArrivalDate: type: string description: 'Customer Requested Arrival Date (CRAD) indicates the date by which the Final Customer requests delivery of the DS Licenses and Support Order. > **Note:** CRAD is a non-binding request. While DS will make reasonable efforts to meet this date, it does not constitute a contractual commitment. - Orders can still receive ''Finance Approved'' status, media can be ''Shipped'', and license keys can be issued and marked as ''Completed'' irrespective of the CRAD. - The **Support Start Date** in the Installed Base will never begin before the CRAD. - Format: ISO 8601 format (YYYY-MM-DD) - License keys will remain inactive until the Support Start Date. ' format: date example: '2025-05-31' dsSalesRepresentative: type: string description: 'Full name of the Dassault Systèmes (DS) sales representative responsible for the order. Format: `LASTNAME, Firstname` (e.g., `DOE, John`) ' example: DOE, John isMultiYear: type: boolean description: 'Indicates whether the order is part of a Multi-Year deal (i.e., duration longer than one year), applicable for revenue types such as `YxC` or `AxC`. ' example: true hasExitClause: type: boolean description: 'Indicates whether the agreement includes an exit clause requiring the Final Customer to pay early termination fees if they end the rental before the completion of the multi-year engagement. ' example: true recurringChargeBillingCycle: $ref: '#/components/schemas/recurring_charge_billing_cycle' opportunity: type: string description: 'Unique identifier for the sales opportunity as recorded in the **My Sales Pipeline** system. This value helps link the order to its originating sales activity. ' example: A1B2-C3D4E5 paymentTerms: type: string description: 'Payment terms for the order, as provided by the Finance Department. Specifies the agreed period within which the payment must be made. ' maxLength: 50 example: Net Date of Invoice + 60 days licenseChargeConditions: type: array description: 'A list of conditions that determine when the license is charged for the order. These conditions specify the circumstances under which the license fee is applied, such as: - The number of users or seats that are licensed. - The type of license or subscription being purchased. - Any waiver given on the license or subscription. - Any additional features or services that are included with the license. The license charge conditions are used to calculate the total cost of the license and to ensure that the correct pricing is applied. ' items: $ref: '#/components/schemas/order_line' required: - transaction - businessUnit - billToSite - soldToSite - creationDateTime - currency - agreement orders_search_req: type: object properties: creationDateTime: type: object description: 'Returns orders created within a specified time range, using the `Creation` timestamp. The maximum time window allowed for the search is **7 days** (calculated time to time). Including this tag prompts the system to perform validations and automatically compute the `from` or `to` timestamp if either is missing. Omitting this tag means the system will skip these validations and will not perform any implicit computation of the `from` or `to` values. ' properties: from: $ref: '#/components/schemas/date_time_from' to: $ref: '#/components/schemas/date_time_to' anyOf: - required: - from - required: - to bookingDateTime: type: object description: 'Returns orders booked within a specified time range, using the `Booking` timestamp. The maximum time window allowed for the search is **7 days** (calculated time to time). The `Booking` timestamp refers to the date and time when the order was approved by the Finance Department. Including this tag prompts the system to perform validations and automatically compute the `from` or `to` timestamp if either is missing. Omitting this tag means the system will skip these validations and will not perform any implicit computation of the `from` or `to` values. ' properties: from: $ref: '#/components/schemas/date_time_from' to: $ref: '#/components/schemas/date_time_to' anyOf: - required: - from - required: - to lastUpdateDateTime: type: object description: 'Indicates the timestamp of the most recent update to the order. The maximum time window allowed for the search is **3 days** (calculated time to time). This field is automatically set to the current timestamp whenever the order is modified. Omitting this tag means the system will skip these validations and will not perform any implicit computation of the `from` or `to` values. ' properties: from: $ref: '#/components/schemas/date_time_from' to: $ref: '#/components/schemas/date_time_to' anyOf: - required: - from - required: - to installedBaseNumber: $ref: '#/components/schemas/installed_base_number' onlineInstanceSeatId: $ref: '#/components/schemas/online_instance_seat_id' billToPoReferences: type: array minItems: 1 description: List of partner order references. example: - '390830' items: type: string maxLength: 60 description: 'Must be a string with a maximum length of 60 characters. ' transactionType: description: 'Order type (one of: `PO`, `RN`). If left unspecified, records of both transaction types will be included in the response. ' $ref: '#/components/schemas/transaction_type' anyOf: - required: - creationDateTime - required: - bookingDateTime - required: - lastUpdateDateTime - required: - installedBaseNumber - required: - onlineInstanceSeatId - required: - billToPoReferences 4xx_get_orders: type: object description: Response body returned when the order details request fails. properties: data: type: array description: Always an empty array in case of error responses. maxItems: 0 items: {} example: [] info: $ref: '#/components/schemas/info' error: $ref: '#/components/schemas/error' required: - data - info - error 403_basic_forbidden: type: object description: Access Forbidden. properties: message: type: string required: - message billto_sales_representative: type: string description: Name of the sales representative person from the **Bill To** site. example: DOE, Jane transaction_type: type: string description: 'Order type (one of: `PO`, `RN`). ' enum: - PO - RN x-enumDescriptions: PO: Purchase Order RN: Renewal Notification example: PO date_time_from: type: string description: 'This property represents a timestamp in UTC format, following the ISO 8601 standard. All date-time values must be provided in Coordinated Universal Time (UTC). The timestamp must not be set in the future. If not provided, the system will automatically calculate it by subtracting the maximum number of days specified for the time range defined for the parent search criteria. ' format: date-time example: '2024-05-21T14:30:00Z' info: type: object description: Metadata section of the response providing execution status and result summary. properties: success: type: boolean description: Indicates whether the API request was executed successfully. statusCode: type: integer description: HTTP status code corresponding to the response. estimatedSearchCount: type: integer description: Estimated number of results matching the search criteria. required: - success - statusCode creation_datetime: type: string description: 'UTC timestamp when the order was created in the system. Format: ISO 8601 UTC (e.g., `2025-05-21T14:30:00Z`) ' format: date-time example: '2025-05-21T14:30:00Z' order_sub_line: type: object description: 'Details of License Charge Breakdown. It is also interchangably called as Sub-Line Item. ' properties: sequenceNumber: type: integer description: 'The sequence number used to identify the license charge breakdown item. It is an integer autogenerated by system, between 1 and 999. ' minimum: 1 maximum: 999 example: 1 installedBaseNumber: $ref: '#/components/schemas/installed_base_number' subOrderType: $ref: '#/components/schemas/sub_order_type' revenueType: $ref: '#/components/schemas/order_revenue_type' portfolio: type: string description: 'The portfolio to which the product being ordered belongs. This field identifies the specific product family or category to which the ordered product belongs. For example, a product might belong to a portfolio such as "CATIA", "ENOVIA", or "SIMULIA". ' maxLength: 50 example: CATIA release: type: string description: 'The name of the product release being ordered. This field identifies the specific version of the product to which the ordered product belongs. For example, a product might belong to a release such as "3DEXPERIENCE R2025x", "SOLIDWORKS 2025", or "V5-6R2025". ' maxLength: 50 example: 3DEXPERIENCE R2025x product: type: object description: 'This field identifies the specific product that is being ordered. ' properties: trigram: type: string description: 'The trigram code for the product being ordered. ' maxLength: 10 example: XYZ type: $ref: '#/components/schemas/product_type' number: type: string description: 'The product number. ' maxLength: 20 example: 1AB-XYZ name: type: string description: 'The name of the product. This field specifies the title or label of the product. ' maxLength: 200 example: Generic Product Standard with Cloud Services dsOffering: $ref: '#/components/schemas/ds_offering' quantity: type: integer description: 'The quantity of the product being ordered. ' minimum: 1 example: 2 unitListPrice: type: number format: float description: 'The price listed by the Finance Department for the product being ordered. This field represents the standard price of a single unit of the product, as approved by the Finance Department. ' example: 1000 totalListPrice: type: number format: float description: 'The total price of the product licenses, calculated by multiplying the `Unit List Price` and the `Quantity`. This field represents the total cost of the product licenses, taking into account the number of units purchased. ' example: 2000 billToNetAmount: type: number format: float description: 'The actual amount payable by the Bill To Site for the selected product. This field represents the total cost of the product or service, including any applicable taxes, fees, or discounts. ' example: 1930 billToAnnualAmount: type: number format: float description: 'The total amount payable by the Bill To Site for the full year. This field represents the annual cost of the product or service, taking into account any usage periods that are not a full year. Note that there may be a difference between `Bill To Net Amount` and `Bill To Annual Amount` when the product is not purchased for a full year of usage. ' example: 1930 billToDiscountPercentage: type: number format: float description: 'The discount percentage applicable to the `Total List Price`. This field represents the percentage reduction in the total list price, as a decimal value (e.g. 3.5 represents 3.5%). ' example: 3.5 billToMarginPercentage: type: number format: float description: 'The percentage difference between the discount price offered by Dassault Systèmes and the Partner Bill To Site. This field represents the margin earned by the Partner Bill To Site, calculated as a percentage of the discount price. Note: This field is pre-filled according to the percentage value set inside the Distributor Discount Model section of the GVA Agreement. Additionally, note that this field is related to `Bill to Discount Percentage`, which represents the percentage reduction in the `Total List Price`. ' example: 1.5 maximumCustomerNetAmount: type: number format: float description: 'The actual amount payable by the Final Customer Site for the selected product. This field represents the maximum net amount that the Final Customer Site is responsible for paying, taking into account any applicable discounts or fees. ' example: 1958.95 maximumCustomerAnnualAmount: type: number format: float description: 'The total amount payable by the Final Customer Site for the full year. This field represents the annual cost of the product or service, taking into account any usage periods that are not a full year. Note that there may be a difference between `Maximum Customer Net Amount` and `Maximum Customer Annual Amount` when the product is not purchased for a full year of usage. ' example: 1958.95 minimumCustomerDiscountPercentage: type: number format: float description: 'The minimum discount percentage that the Partner Bill To Site offers to the Final Customer for the selected product. This field represents the lowest percentage discount that the Partner Bill To Site is willing to offer to the Final Customer, as a decimal value (e.g. 0.5 represents 0.5%). ' example: 0.5 startDate: type: string description: 'The start date of the product or service, in ISO 8601 format (YYYY-MM-DD). ' format: date example: '2025-06-01' endDate: type: string description: 'The end date of the product or service, in ISO 8601 format (YYYY-MM-DD). ' example: '2026-05-31' duration: type: integer description: 'The duration for which the product or service is intended to be used. The unit of duration depends on the `Revenue Type`: - If `Revenue Type` is ALC (Annual License Charge), then the duration is measured in years. For example, a duration of 2 represents 2 years. - If `Revenue Type` is QLC (Quarterly License Charge), then the duration is measured in quarters. For example, a duration of 2 represents 2 quarters. ' example: 2 calculatedStartDate: type: string description: 'This field is automatically calculated by the system. Format: ISO 8601 format (YYYY-MM-DD). It is based on one of the following dates: - The user-entered `Start Date` - The `CRAD (Customer Requested Arrival Date)` - The `Finance Approved` date of the order ' format: date example: '2025-06-01' calculatedEndDate: type: string description: 'This field is automatically calculated by the system. Format: ISO 8601 format (YYYY-MM-DD). It is based on one of the following values: - `First Year Co-Terminus`: The end date of the first year of the contract. - End date of the Duration calculated from ''calculatedStartDate'' or entered by the user ' format: date example: '2026-06-31' yearNumber: type: integer description: 'This field represents the product usage `Year Number` for multi-year orders. It is used to identify the specific year of a multi-year contract. ' example: 1 coupon: type: object description: 'Details of the discount coupon applied to the final price. ' properties: name: type: string description: 'The name of the discount coupon. ' maxLength: 40 example: 10% off on Installation Fee discountPercentage: type: number format: float description: 'The discount percentage that will be applied to final price. ' example: 10 inflation: type: object description: 'Details about the inflation rate applied to the price of the product. The inflation occurs when it is the case of product renewals. ' properties: date: type: string description: 'The date since when the inflation rate is applicable. This date should be in the format `YYYY-MM-DD`. ' format: date example: '2025-07-01' ratio: type: number format: float description: 'The multiplication factor applied to the price. For example, a ratio of `1.04` indicates a 4% price increase applied. ' example: 1.04 exception: type: string description: 'Any exception applied while calculating the inflated amount. ' enum: - Capping To Price List - No Price Increase - No Cap. Lower than Price List example: Capping To Price List business_unit: type: object description: Details of the sales business unit. properties: id: type: string description: Unique identifier of the sales business unit. minLength: 5 maxLength: 5 example: BU001 name: type: string description: Name of the sales business unit. maxLength: 25 example: Corporate Sales Unit A localTimezone: $ref: '#/components/schemas/local_time_zone' required: - id - name - localTimezone order_revenue_type: type: string enum: - ALC - ASC - ELC - PLC - PSC - QLC - QSC - SLC - SSC - TBL2 - TBL3 - TSC2 - TSC3 - TSC5 - ULC - USC - XLC - XSC - YLC - YSC x-enumDescriptions: ALC: Annual License Charge ASC: Annual Service Charge ELC: Evaluation Licence Charge PLC: Primary License Charge PSC: Primary Service Charge QLC: Quarter License Charge QSC: Quarter Service Charge SLC: Service/support license charge SSC: Service Charge TBL2: Term Based Licenses 2 TBL3: Term Based Licenses 3 TSC2: Term Service Charge 2 TSC3: Term Service Charge 3 TSC5: Term Service Charge 5 ULC: Administration license charge USC: Upfront Service Charge XLC: X License Charge XSC: eXtended Service Charge YLC: Yearly License Charge YSC: Yearly Service Charge example: ALC 200_post_orders_search: type: object description: Response body returned upon a successful order search request. properties: data: $ref: '#/components/schemas/orders_search_data' info: $ref: '#/components/schemas/info' error: $ref: '#/components/schemas/error' required: - info - data 200_get_orders: type: object description: Response body returned upon a successful order details request. properties: data: $ref: '#/components/schemas/order_get_data' info: $ref: '#/components/schemas/info' error: $ref: '#/components/schemas/error' required: - data - info booking_datetime: type: string description: 'UTC timestamp when the order was approved by the Finance Department. Format: ISO 8601 UTC (e.g., `2025-05-30T14:30:00Z`) ' format: date-time example: '2025-05-29T18:00:00Z' ds_offering: type: string description: Dassault Systèmes offering Type enum: - Auxiliary - Licensed Program - Not Applicable - Online Services - Packaged Offering - Specific x-enumDescriptions: Auxiliary: Non software items i.e hardware, peripherals, or anything else that is not software. Licensed Program: On premises software. Not Applicable: "Items that are not governed by the CLOSA at all.\t" Online Services: Cloud based services. Packaged Offering: A bundle that mixes licensed programs and online. Specific: Items covered by a separate agreement rather than the standard CLOSA. example: Licensed Program currency: type: string description: 'Three-letter ISO 4217 currency code representing the transaction currency. Must be exactly 3 uppercase alphabetic characters (e.g., `USD` for US Dollar, `EUR` for Euro, `INR` for Indian Ruppee). ' minLength: 3 maxLength: 3 pattern: ^[A-Z]{3}$ example: USD transaction: type: object description: Transactional details of the order. properties: id: type: string description: Unique identifier of the order. Can represent a Purchase Order or a Renewal Notification. maxLength: 13 example: PO_A123456789 type: $ref: '#/components/schemas/transaction_type' status: $ref: '#/components/schemas/order_processing_status' description: type: string description: Short description given to the Purchase Order / Renewal Notification. maxLength: 30 example: XYZ Company Order 50 products billto_po_reference: type: string description: 'Identifier of the order as recorded in the **Bill To** site''s ordering system. If available, this reference will also appear on the Dassault Systèmes invoice. ' example: EXAMPLE-CORP-20250518 400_post_orders_search: type: object description: Response body returned when the order search request fails. properties: data: type: array description: Always an empty array in case of error responses. maxItems: 0 items: {} example: [] info: $ref: '#/components/schemas/info' error: $ref: '#/components/schemas/error' required: - info - data - error online_instance_seat_id: type: string description: 'Unique identifier assigned to a 3DEXPERIENCE platform instance. It is used to identify a specific instance of the platform, which can be accessed through the cloud. This identifier is also referred to as the **Online Instance ID**. Additionally, it is also used as the **Seat ID** to identify a user''s access to the instance. The Seat ID is used to manage user licenses, authenticate users, and track user activity within the instance. The Online Instance ID/Seat ID is a combination of letters and numbers. ' maxLength: 15 example: R1122334455667 recurring_charge_billing_cycle: type: string description: 'Identifies how often invoices are sent for ALC and ASC licenses. In the event of prorating (to an anniversary date, in the first month, or in the first quarter) or cancellation and refund or overpayment, the prorate calculation is based on 30 day months. ' enum: - Calendar Month - Calendar Quarter - Calendar Semester - Calendar Year - Full At Date - Immediate - Rolling Month 360 - Rolling Quarter 360 - Rolling Semester 360 - Rolling Year 360 x-enumDescriptions: Calendar Month: bill recurring license charges through the end of the current calendar month and for full month periods thereafter (or until indicated anniversary date if earlier) Calendar Quarter: bill recurring license charges through the end of the current calendar quarter and for full 3 month periods thereafter (or until indicated anniversary date if earlier) Calendar Semester: bill recurring license charges through the end of the current semester and for full 6 month periods thereafter (or until indicated anniversary date if earlier) Calendar Year: bill recurring license charges through the end of the current calendar year and for full 12 month periods thereafter (or until indicated anniversary date if earlier) Full At Date: bill recurring license charges for a 12-month period (or until indicated anniversary date if earlier) taking into consideration any start dates contained in the PO. If multiple durations (in contrast to quantity) of a recurrent license charge are ordered, they are invoiced at up front rather than on an annual basis. For example, if a PO is for two years of ALC, the two years are invoiced upfront at the start date rather than year one following order completion and year two the next year. Immediate: bill is generated by DS at the PO approval date for the full amount of the order not taking into consideration any license start dates contained in the PO. For example, if a PO is for two years of ALC, the two years are invoiced upfront at PO approval date. Rolling Month 360: bill recurring license charges from the start date through start date plus one month duration (or until indicated end date if earlier). Rolling Quarter 360: bill recurring license charges from the start date through start date plus 3 months duration (or until indicated end date if earlier). Rolling Semester 360: bill recurring license charges from the start date through start date plus 6 months duration (or until indicated end date if earlier). Rolling Year 360: bill recurring license charges from the start date through start date plus 12 months (or until indicated end date if earlier). For example, if PO is for 2 years of ALC with a start date February 1st, the 2 invoicing periods will be from February 1st to January 31st. example: Calendar Year sub_order_type: type: string description: sub Order Type enum: - Change of Channel - Change of VAR - EPP Training - Evaluation License - Transfer License - New License - One Time Fee - License Renewal - Stop (NO Parallel Use) - Stop - Transform - Stop License - Stop of PU - Stop & Parallel use - Suspension - Suspension Reinstatement - TOS Reinstatement - Termination Of Support - Transfer without Support - VAR Use x-enumDescriptions: Change of Channel: Changing customer coverage from direct to indirect or vice versa. Change of VAR: Changing the Value-Added Reseller (VAR) for an existing order. EPP Training: Training related to EPP (Enterprise Productivity Portfolio). Evaluation License: License issued temporarily for evaluation purposes. Transfer License: Transferring licenses between different companies. New License: Fresh order that does not involve any migration, renewal, or upgrade. One Time Fee: Fee charged for a one-time service or transaction. License Renewal: Extending an existing license. Stop (NO Parallel Use): Discontinuing an existing license with no parallel use Stop - Transform: Discontinuing an existing license with a shift to a transformed model or product. Stop License: Discontinuing an existing license. Stop of PU: Discontinuing an existing PU license. Stop & Parallel use: Discontinuing an existing license with parallel use Suspension: Temporarily halting the license or support services. Suspension Reinstatement: Reinstating a suspended license or support services. TOS Reinstatement: Reinstating terms of service. Termination Of Support: Ending the support of a product or service. Transfer without Support: Transferring licenses without support. VAR Use: Orders associated with Value-Added Resellers (VAR). example: New License product_type: type: string description: Type of the product. enum: - Add-On - Auxiliary - Casual Named User - Configuration - Enterprise - Machine Based - Migration Path - Named User - Offer - Package - Service - Shareable - Single Add-On - System - Token-Based x-enumDescriptions: Add-On: An additional feature or component that enhances the functionality of a product. Auxiliary: A supplementary product or service that supports the primary product. Casual Named User: A type of user license that allows for occasional or infrequent use of a product. Configuration: A specific setup or arrangement of a product's features or components. Enterprise: A product or service designed for large-scale or enterprise-level use. Machine Based: A product or service that is licensed or used on a machine or device. Migration Path: A product or service that helps customers transition from one product to another. Named User: A type of user license that allows for regular or frequent use of a product by a specific individual. Offer: A product or service that is being promoted or offered as a special deal. Package: A collection of products or services that are bundled together for sale. Service: A product or service that provides support or assistance to customers. Shareable: A product or service that can be shared among multiple users or devices. Single Add-On: A single additional feature or component that enhances the functionality of a product. System: A product or service that is designed to work as a complete system or solution. Token-Based: A product or service that uses tokens or other forms of authentication to manage access. example: Named User local_time_zone: type: string description: 'Time zone abbreviation used by the sales business unit. ' enum: - ACST - AEST - AKST - ASK - AST - AWST - BRI - CET - CHN - CST - EET - EST - ESTA - GMT - HAW - HOB - HST - IST - JST - MSK - MST - MSTA - NST - PST - SYD - UTC - VAL - WET x-enumDescriptions: ACST: Australian Central Standard Time AEST: Australian Eastern Standard Time AKST: Alaska Time (US) ASK: Alaska Time AST: Atlantic Time (Canada) AWST: Australian Western Standard Time BRI: Brisbane Time CET: Central European Time CHN: China Standard Time CST: Central Time (US) EET: Eastern European Time EST: Eastern Time (US) ESTA: Indiana GMT: Greenwich Mean Time HAW: Hawaii Time HOB: Hobart Time HST: Hawaiian Time IST: Indian Time JST: Japan Standard Time MSK: Moscow Time MST: Mountain Time (US) MSTA: Arizona Time NST: Newfoundland Time (Canada) PST: Pacific Time (US) SYD: Sydney Time UTC: Universal Time Coordinated, Zulu VAL: Vladivostok Time WET: Western European Time example: CET online_consent_status: type: string description: 'Status of the online consent request sent to the designated contact. ' enum: - Accepted - Expired - Not Applicable - Not Requested - Refused - Requested x-enumDescriptions: Accepted: The online consent request has been successfully accepted by the designated contact. Expired: The online consent request has expired and is no longer valid. Not Applicable: The online consent request is not applicable to the current situation or context. Not Requested: The online consent request has not been sent to the designated contact. Refused: The online consent request has been refused by the designated contact. Requested: The online consent request has been sent to the designated contact, but the status is pending. default: '' example: Accepted legal_entity: type: object properties: id: type: string description: 'A unique identifier for the company. The value will be within the Legal Entity Family. ' maxLength: 15 example: '100012345678901' name: type: string description: 'The registered name of the company in English. ' maxLength: 120 example: Example Corporation localName: type: string description: 'The registered name of the company in the local language. ' maxLength: 120 example: 示例公司 locationId: type: integer description: "A unique identifier representing the company's location. \nMust be an integer between 1 and 999.\n" minimum: 1 maximum: 999 example: 2 required: - id - name - locationId orders_search_data: type: array description: List of orders retrieved during the search operation. items: type: object description: Summary information for a single order. properties: transaction: $ref: '#/components/schemas/transaction' businessUnit: $ref: '#/components/schemas/business_unit' billToSite: type: object description: Legal entity to which Dassault Systèmes will issue the invoice (Bill To). $ref: '#/components/schemas/legal_entity' soldToSite: type: object description: Legal entity of the company that is the Final Customer of Dassault Systèmes products (Sold To). $ref: '#/components/schemas/legal_entity' creationDateTime: $ref: '#/components/schemas/creation_datetime' dsRecievedPoDate: $ref: '#/components/schemas/ds_received_po_date' bookingDateTime: $ref: '#/components/schemas/booking_datetime' currency: $ref: '#/components/schemas/currency' onlineConsentStatus: $ref: '#/components/schemas/online_consent_status' billToSalesRepresentative: $ref: '#/components/schemas/billto_sales_representative' billToPoReference: $ref: '#/components/schemas/billto_po_reference' required: - transaction - businessUnit - billToSite - soldToSite - creationDateTime - currency order_line: type: object description: 'Details of License Charge Condition. This object is also interchangably called as Line Item. ' properties: sequenceNumber: type: integer description: 'The sequence number used to identify the line item. It is an integer autogenerated by system, between 1 and 999. ' minimum: 1 maximum: 999 example: 1 lineGroup: type: string description: 'Unique identifier of license charge condition. This is used to group together the Installed Base sub-lines. ' maxLength: 15 example: SBL0001234567 onlineInstanceSeatId: $ref: '#/components/schemas/online_instance_seat_id' orderType: $ref: '#/components/schemas/order_type' usageScope: type: string description: 'Defines the geographical or territorial scope in which the product can be used, as specified in the associated agreement details. This may refer to a region (e.g., GEO) or a specific country. ' maxLength: 80 example: GEO EMEA promotion: type: object description: 'Promotion information. This object contains information about the promotion applied to the order. The promotion object contains information about the promotion, including its name, ID, and combination of one or more products. ' properties: id: type: string description: 'Unique identifier of the promotion. The ID is a 15-character string that starts with "PAO" followed by a sequence of numbers. The numbers are generated by the system and are used to identify the promotion. The ID is unique within the instance and is used to track and manage the promotion. ' maxLength: 10 example: PAO0000111 name: type: string description: 'Name of the promotion. The name is a human-readable description of the promotion. The name is used to identify the promotion and to display it to the user. ' maxLength: 100 example: 3DEXPERIENCE for small and medium business combination: type: string description: 'The human-readable name of the combination that represents specific grouping of products. The combination is usually one or more products from one or multiple portfolios. A combination can be thought of as a "bundle" of products that are sold together, or as a "package" of products that are related in some way. ' maxLength: 100 example: Collaborative Design & Engineering Learning @Home waiver: type: object description: 'Waiver information for the license charge. It can be either of `duration` or `endDate`. ' properties: duration: type: integer description: 'The number of months the order is eligible for free or discount. The duration is usually a number of months. ' example: 1 endDate: type: string description: 'The date untill which the order is eligible for free or discount. Format: ISO 8601 (e.g., `2025-05-30`) ' format: date example: '2025-05-30' oneOf: - required: - duration - required: - endDate licenseChargeBreakdown: type: array items: $ref: '#/components/schemas/order_sub_line' 401_basic_unauthorized: type: object description: Unauthorized properties: message: type: string required: - message ds_received_po_date: type: string description: Date when the order was received by Dassault Systèmes, in ISO 8601 format (YYYY-MM-DD). format: date example: '2025-05-21' order_processing_status: type: string description: Current processing status of the order. enum: - Cancelled - Claim to be Managed - Consent Refused - Discarded - Draft - Forecast - On Hold - Quote - Draft by VAR - Finance Approved - Finance Refused - Pending Consent - Pending Customer Consent - Quote Rejected - Sales Approved - Sent Back to Finance - Sent Back to Sales - Sent Back to Quote - Sent Back to VAR - Sent Back to VAR Central Admin - Sent to Credit Manager - Sent to DSx.Finance - Submitted to Sales - Submitted to VAR Central Admin x-enumDescriptions: Cancelled: The order has been cancelled and is no longer valid. Claim to be Managed: The order is being claimed by a different entity for management. Consent Refused: The Final Customer has refused to provide consent for the order. Discarded: The order has been discarded and is no longer valid. Draft: The order is in draft mode and has not been submitted. Forecast: Status for renewal which are created more than 90 days before their start date, renewal is kept in Forecast status until system applies the price increase, then moved to Draft or Quote. On Hold: Users can put a renewal on-hold temporarily to prevent automatic finalization. Quote: The order is in the quoting phase and has not been submitted. Draft by VAR: The order is in draft mode and has been created by a Value Added Reseller (VAR). Finance Approved: The order has been approved by the Finance Department. Finance Refused: The order has been refused by the Finance Department. Pending Consent: The order is waiting for Final Customer consent. Pending Customer Consent: The order is waiting for Final Customer consent and has not been submitted. Quote Rejected: The quote for the order has been rejected. Sales Approved: The order has been approved by the Sales Department. Sent Back to Finance: The order has been sent back to the Finance Department for further processing. Sent Back to Sales: The order has been sent back to the Sales Department for further processing. Sent Back to Quote: The order has been sent back to the quoting phase for further review or modification. Sent Back to VAR: The order has been sent back to the Value Added Reseller (VAR) for further processing. Sent Back to VAR Central Admin: The order has been sent back to the VAR central administration for further processing. Sent to Credit Manager: The order has been sent to the credit manager for further processing. Sent to DSx.Finance: The order has been sent to the Finance Department for further processing. Submitted to Sales: The order has been submitted to the Sales Department for further processing. Submitted to VAR Central Admin: The order has been submitted to the VAR central administration for further processing. example: Sales Approved date_time_to: type: string description: 'This property represents a timestamp in UTC format, following the ISO 8601 standard. All date-time values must be provided in Coordinated Universal Time (UTC). If the `from` timestamp is specified, this value must be later than `from`. If not provided, the system will automatically calculate this value by adding the maximum number of days specified for the time range defined for the parent search criteria. ' format: date-time example: '2024-05-22T14:30:00Z' securitySchemes: ApiKeyAuth: type: apiKey in: header name: X-API-Key x-tagGroups: - name: Authentication tags: - apikeys - name: Order tags: - orders - price-lists - accreditations - name: Sales tags: - leads-opportunities - portfolio-items - name: Schemas tags: - Schemas