openapi: 3.1.1
info:
  title: APIs for Dassault Systèmes Partners
  description: APIs exposed by Dassault Systèmes to its partners and resellers.
  version: 0.12.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 Validation by Partners (Non Production)
  - url: https://apigw-qal.3ds.com
    description: >-
      Server for Quality Assurance Testing (Non Production internal Dassault
      Systèmes)
  - url: https://apigw-ptd.3ds.com
    description: Server for preprod validation (Non Production internal Dassault Systèmes)
  - url: https://apigw-ppd.3ds.com
    description: Server for postprod validation (Non Production internal Dassault Systèmes)
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
  - name: price-lists
    description: >
      This section defines all the operations related to price lists, including
      the search of price lists for a specfic partner.
  - name: accreditations
    description: >
      This section defines all the operations related to accreditations,
      including the search of accreditations for a specfic partner.
  - name: apikeys
    description: >
      This section defines the operations related to API keys . 


      Current API key management still requires some interaction with Dassault
      Systèmes Information System (IS) team.

      This process will likely be updated in the future to provide more autonomy
      and reactivity on partner side. 


      Below is the description of the process when a partner is onboarded on
      APIForPartners program : 


      1. Dassault Systèmes IS team will initialize an API key and communicate it
      to partner Admin through a secured channel :

          - **Recommendation is to use a 1-1 discussion between Partner Admin and Dassault Systèmes IS person in charge within the dedicated 3DSwym Community**
          - **Do NOT use email or any unsecured communication channel or with wider audience**

      2. Partner Admin will then use this initial APIKEY value to authenticate
      and generate a new API key using the API  


      3. Partner admin will communicate back (within same secured channel) to
      Dassault Systèmes IS person in charge the **hashed_key** attributed from
      the API (NOT the API key itself)

          - The Hash operation is NOT reversible, so Dassault Systèmes will NOT have knowledge about partner API key. 
          - Partner Admin must store securely the generated API key (same level of confidentiality as a password)

      4. Dassault Systèmes IS team will update API Gateway configuration with
      the new API key (in practice with the hash value provided) and inform
      Partner when it is ready to use.


      5. Partner can then use this newly generated APIKEY to interact with all
      the available APIs.


      For the case of revocation and request of a new API key, steps 2 to 5 have
      to be followed.
  - name: leads-opportunities
    description: >
      This section defines the operations related to leads and opportunities for
      sales pipeline management.


      These ressources are managed with 'MySalesPipeline' application which
      implements Dassault Systèmes sales process called 'LEVERAGE' in accordance
      with the VALUE Engagement framework.

      LEVERAGE is an acronym that stands for Listen, Explore, Validate,
      Establish, Reach AGreement & Experience.
  - name: portfolio-items
    description: >
      This section defines the operations related to sales portfolio-items.


      The portfolio items are used in the definition of leads-opportunities in
      'MySalesPipeline' application.
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.  

            Use this for paginating through results. Defaults to 0 if not
            specified.

            For example, `skip=20` will skip the first 20 records.
          schema:
            type: integer
            minimum: 0
            default: 0
        - name: top
          in: query
          description: >
            The maximum number of records to return in the response.  

            Use this to limit the size of the result set. Defaults to 10 if not
            specified.

            For example, `top=10` will return up to 10 records starting from the
            position defined by `skip`.
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 10
      requestBody:
        description: >
          A JSON object specifying filter criteria for retrieving matching
          orders.


          The request must include at least one of the following sub-objects: 

          - `creationDateTime`

          - `bookingDateTime`

          - `lastUpdateDateTime`

          - `installedBaseNumber`

          - `onlineInstanceSeatId`

          - `billToPoReferences`


          These will be combined using an AND operator if more than one is
          provided.
        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
          headers:
            X-RateLimit-Limit:
              description: Total allowed quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 100
            X-RateLimit-Remaining:
              description: Remaining quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 42
            X-RateLimit-Reset:
              description: Number of seconds until the quota window resets.
              schema:
                type: integer
                minimum: 0
              example: 27
          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'
                        dsReceivedPoDate: '2024-05-21'
                        bookingDateTime: '2024-05-29T18:00:00Z'
                        lastUpdateDateTime: '2024-05-21T14:40: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.
          headers:
            X-RateLimit-Limit:
              description: Total allowed quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 100
            X-RateLimit-Remaining:
              description: Remaining quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 42
            X-RateLimit-Reset:
              description: Number of seconds until the quota window resets.
              schema:
                type: integer
                minimum: 0
              example: 27
          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
          headers:
            X-RateLimit-Limit:
              description: Total allowed quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 100
            X-RateLimit-Remaining:
              description: Remaining quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 42
            X-RateLimit-Reset:
              description: Number of seconds until the quota window resets.
              schema:
                type: integer
                minimum: 0
              example: 27
          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
          headers:
            X-RateLimit-Limit:
              description: Total allowed quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 100
            X-RateLimit-Remaining:
              description: Remaining quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 42
            X-RateLimit-Reset:
              description: Number of seconds until the quota window resets.
              schema:
                type: integer
                minimum: 0
              example: 27
          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'
                        lastUpdateDateTime: '2024-05-21T14:40: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.
          headers:
            X-RateLimit-Limit:
              description: Total allowed quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 100
            X-RateLimit-Remaining:
              description: Remaining quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 42
            X-RateLimit-Reset:
              description: Number of seconds until the quota window resets.
              schema:
                type: integer
                minimum: 0
              example: 27
          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.
          headers:
            X-RateLimit-Limit:
              description: Total allowed quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 100
            X-RateLimit-Remaining:
              description: Remaining quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 42
            X-RateLimit-Reset:
              description: Number of seconds until the quota window resets.
              schema:
                type: integer
                minimum: 0
              example: 27
          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
          headers:
            X-RateLimit-Limit:
              description: Total allowed quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 100
            X-RateLimit-Remaining:
              description: Remaining quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 42
            X-RateLimit-Reset:
              description: Number of seconds until the quota window resets.
              schema:
                type: integer
                minimum: 0
              example: 27
          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/price-lists/search:
    get:
      summary: Retrieve Price Lists
      description: |
        Retrieves the price lists for the authenticated user.
      tags:
        - price-lists
      operationId: searchPriceList
      responses:
        '200':
          description: OK
          headers:
            X-RateLimit-Limit:
              description: Total allowed quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 100
            X-RateLimit-Remaining:
              description: Remaining quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 42
            X-RateLimit-Reset:
              description: Number of seconds until the quota window resets.
              schema:
                type: integer
                minimum: 0
              example: 27
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/200_price-lists_search'
              examples:
                successful_priceLists_search:
                  summary: Successful price list search
                  description: >-
                    Example of a successful price list search request that
                    returns multiple price lists for different countries.
                  value:
                    data:
                      - countryCode: BLZ
                        countryName: Belize
                        priceLists:
                          - id: 9
                            name: LATAM South Price List
                            currency: USD
                            hasFuturePriceList: false
                            effectiveDate: null
                      - countryCode: CAN
                        countryName: Canada
                        priceLists:
                          - id: 3
                            name: Canada Price List
                            currency: CAD
                            hasFuturePriceList: false
                            effectiveDate: '2025-09-12'
                      - countryCode: HND
                        countryName: Honduras
                        priceLists:
                          - id: 9
                            name: LATAM South Price List
                            currency: USD
                            hasFuturePriceList: false
                            effectiveDate: null
                    info:
                      success: true
                      statusCode: 200
                      estimatedSearchCount: 3
                successful_priceLists_search_noResult:
                  summary: Successful price list search with no results
                  description: >-
                    Example of a successful price list search request that
                    returns no results, indicating no matching price lists.
                  value:
                    data: []
                    info:
                      success: true
                      statusCode: 200
                      estimatedSearchCount: 0
        '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
          headers:
            X-RateLimit-Limit:
              description: Total allowed quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 100
            X-RateLimit-Remaining:
              description: Remaining quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 42
            X-RateLimit-Reset:
              description: Number of seconds until the quota window resets.
              schema:
                type: integer
                minimum: 0
              example: 27
          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/accreditations/search:
    get:
      summary: Retrieve Accreditations
      description: >
        Retrieves accreditations associated with the authenticated user.
        Supports pagination with `skip` and `top` parameters.
      tags:
        - accreditations
      operationId: searchAccreditations
      parameters:
        - name: skip
          in: query
          description: Number of items to skip in the search results.
          schema:
            type: integer
            minimum: 0
            default: 0
          example: 0
        - name: top
          in: query
          description: Maximum number of items to retrieve in search results.
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 100
          example: 100
      responses:
        '200':
          description: OK
          headers:
            X-RateLimit-Limit:
              description: Total allowed quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 100
            X-RateLimit-Remaining:
              description: Remaining quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 42
            X-RateLimit-Reset:
              description: Number of seconds until the quota window resets.
              schema:
                type: integer
                minimum: 0
              example: 27
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/200_accreditations_search'
              examples:
                successful_accreditations_search_threeResult:
                  summary: Successful accreditation search example
                  description: >-
                    Example of a successful accreditation search request that
                    returns multiple results, demonstrating top matches.
                  value:
                    data:
                      - id: PRTF008
                        name: Support & Services Offering
                        accreditationType: Portfolio
                      - id: PRTF063
                        name: Public Cloud 3DEXPERIENCE WORKS
                        accreditationType: Portfolio
                      - id: IPE00041462
                        name: 18-Sub-system Level Structural Validation
                        accreditationType: Industry Process Experience
                        deploymentType: On Premise
                        industrySolutionExperience:
                          id: ISE00005355
                          name: Co-Design to Target
                        solutionRelease:
                          id: REL00000055
                          name: 3DEXPERIENCE R2025x
                        industry:
                          id: IND000005
                          name: Aerospace & Defense
                    info:
                      success: true
                      statusCode: 200
                      estimatedSearchCount: 3
                successful_accreditations_search_noResult:
                  summary: Successful accreditation search with no results
                  description: >-
                    Example of a successful accreditation search request that
                    returns no results, indicating no matching accreditations.
                  value:
                    data: []
                    info:
                      success: true
                      statusCode: 200
                      estimatedSearchCount: 0
        '400':
          description: Bad request, invalid input.
          headers:
            X-RateLimit-Limit:
              description: Total allowed quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 100
            X-RateLimit-Remaining:
              description: Remaining quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 42
            X-RateLimit-Reset:
              description: Number of seconds until the quota window resets.
              schema:
                type: integer
                minimum: 0
              example: 27
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400_accreditations_search'
              examples:
                failedAccreditationSearch_BadRequest_topOutsideRange:
                  summary: Top query parameter is outside the allowed ranged
                  description: >
                    Response returned when the top parameter exceeds the allowed
                    range.
                  value:
                    data: []
                    info:
                      success: false
                      statusCode: 400
                      estimatedSearchCount: 0
                    error:
                      - type: errors:3dx:invalidRequest
                        title: Bad Request
                        errors:
                          - detail: >-
                              Invalid pagination parameter. It must be a
                              positive natural number between 1 and 100.
                            pointer: '#/Top'
                failedAccreditationSearch_BadRequest_skipNegativeNumber:
                  summary: skip query parameter is a negative number
                  description: >
                    This example shows the response returned when a bad request
                    is made, such as when the skip parameter is a negative
                    number
                  value:
                    data: []
                    info:
                      success: false
                      statusCode: 400
                      estimatedSearchCount: 0
                    error:
                      - type: errors:3dx:invalidRequest
                        title: Bad Request
                        errors:
                          - detail: >-
                              Invalid pagination parameter. It must be a
                              positive whole number.
                            pointer: '#/Skip'
        '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
          headers:
            X-RateLimit-Limit:
              description: Total allowed quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 100
            X-RateLimit-Remaining:
              description: Remaining quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 42
            X-RateLimit-Reset:
              description: Number of seconds until the quota window resets.
              schema:
                type: integer
                minimum: 0
              example: 27
          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/apikeys:
    post:
      summary: Generate a new API key
      description: Generate a new API key and its hash.
      tags:
        - apikeys
      operationId: generateApiKey
      responses:
        '200':
          description: Successfully generated API key
          headers:
            X-RateLimit-Limit:
              description: Total allowed quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 100
            X-RateLimit-Remaining:
              description: Remaining quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 42
            X-RateLimit-Reset:
              description: Number of seconds until the quota window resets.
              schema:
                type: integer
                minimum: 0
              example: 27
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/200_post_apikeys'
        '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: Access 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
          headers:
            X-RateLimit-Limit:
              description: Total allowed quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 100
            X-RateLimit-Remaining:
              description: Remaining quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 42
            X-RateLimit-Reset:
              description: Number of seconds until the quota window resets.
              schema:
                type: integer
                minimum: 0
              example: 27
          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
  /sales/api4partners/v0/leads-opportunities:
    post:
      summary: Create a lead-opportunity object
      description: >
        Creates a lead-opportunity object from its attributes along with
        possible linked objects (contact, sales Rep)
      tags:
        - leads-opportunities
      operationId: createLeadsOpportunities
      requestBody:
        description: request Body for creating a lead-opportunity
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/post_leads-opportunities_data'
            examples:
              createLeadBasic:
                $ref: '#/components/examples/post_leads-opportunities_lead'
              createOpportunityBasic:
                $ref: '#/components/examples/post_leads-opportunities_oppy'
        required: true
      responses:
        '201':
          description: OK
          headers:
            X-RateLimit-Limit:
              description: Total allowed quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 100
            X-RateLimit-Remaining:
              description: Remaining quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 42
            X-RateLimit-Reset:
              description: Number of seconds until the quota window resets.
              schema:
                type: integer
                minimum: 0
              example: 27
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/201_post_leads-opportunities'
              examples:
                200_leadsOpportunitiesCreateResponse:
                  summary: OK
                  description: >-
                    Response in case of a successful creation of a new
                    leadOpportunity
                  value:
                    dsLeadOpportunityId: 9YEL-Y3W56Q
                    partnerLeadOpportunityId: PARTNER-CRM-LEAD-1A8R
                    action: create
                    info:
                      success: true
                      statusCode: 200
                      timestamp: null
                      traceId: null
                    error: null
        '400':
          description: Bad request, invalid input.
          headers:
            X-RateLimit-Limit:
              description: Total allowed quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 100
            X-RateLimit-Remaining:
              description: Remaining quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 42
            X-RateLimit-Reset:
              description: Number of seconds until the quota window resets.
              schema:
                type: integer
                minimum: 0
              example: 27
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400_post_leads-opportunities'
              examples:
                400_leadsOpportunitiesCreateResponse:
                  summary: Bad Request
                  description: >-
                    Response in case of a failure for creation of a new lead
                    Opportunity
                  value:
                    data:
                      leadOportunityId: string
                      leadOpportunity:
                        partnerExternalId: string
                        name: string
                        dsOwnerEmail: string
                        status: string
                        forecastCategory: string
                        closeDate: date
                        cometCampaignCode: string
                        reasonWon:
                          - string
                        reasonLost:
                          - string
                        competitors:
                          - string
                        reasonWonLostComment: string
                        gtmTacticId: string
                        description: string
                        nextMilestone: string
                        nextMilestoneDate: date
                        currency: string
                      offerLines:
                        - amount: double
                          offerNameId: string
                          revenueType: string
                      customerLegalEntity:
                        id: string
                        dunsNumber: string
                        vatNumber: string
                        registrationId: string
                        name: string
                        city: string
                        country: string
                        addressLine1: string
                        statePrefecture: string
                        addressLine2: string
                        zipCode: string
                        websiteUrl: string
                    info:
                      success: false
                      statusCode: 400
                    error: {}
                400_alreadyExisting:
                  summary: Bad Request, already existing lead-opportunity
                  description: >-
                    Lead-opportunity with same partnerExternalId already
                    existing
                  value:
                    info:
                      success: false
                      statusCode: 400
                      timeStamp: '2025-07-01T13:03:16.325Z'
                      traceId: 4e58705b1c7d40b78e0d1ab6ac404ac8
                    error:
                      code: ERR801
                      message: >-
                        Leverage with this Partner External ID
                        DSLeadOpportunityID already exists.
                    data:
                      partnerLeadOpportunityId: null
                      dsLeadOpportunityId: null
                      action: null
        '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: Access 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
        '406':
          description: Not acceptable
          headers:
            X-RateLimit-Limit:
              description: Total allowed quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 100
            X-RateLimit-Remaining:
              description: Remaining quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 42
            X-RateLimit-Reset:
              description: Number of seconds until the quota window resets.
              schema:
                type: integer
                minimum: 0
              example: 27
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/406_leads-opportunities'
              examples:
                406_IncorrectCloseDateNextMilestoneFormat:
                  summary: Error returned when date Format is not as expected.
                  description: >-
                    Date format provided in one input is not as per the expected
                    format.
                  value:
                    info:
                      success: false
                      statusCode: 406
                      timeStamp: '2025-08-07T07:22:41.357Z'
                      traceId: 7a722f2871304f7fa0bd1457388dff5d
                    error:
                      code: ERR805
                      message: >-
                        Incorrect Close Date/next milestone date Format. Provide
                        date in ISO8601 format.
                    data:
                      partnerLeadOpportunityId: null
                      dsLeadOpportunityId: null
                      action: null
        '429':
          description: Too many Requests
          headers:
            X-RateLimit-Limit:
              description: Total allowed quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 100
            X-RateLimit-Remaining:
              description: Remaining quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 42
            X-RateLimit-Reset:
              description: Number of seconds until the quota window resets.
              schema:
                type: integer
                minimum: 0
              example: 27
          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
        '503':
          description: Service Unavailable
          headers:
            X-RateLimit-Limit:
              description: Total allowed quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 100
            X-RateLimit-Remaining:
              description: Remaining quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 42
            X-RateLimit-Reset:
              description: Number of seconds until the quota window resets.
              schema:
                type: integer
                minimum: 0
              example: 27
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/503_leads-opportunities'
              examples:
                503_ServiceUnavailable:
                  summary: Service Unavailable
                  description: >-
                    Service Unavailable Typical reason could be a maintenance on
                    3DS System. try again later
                  value:
                    info:
                      success: false
                      statusCode: 503
                      timestamp: '2025-06-30T12:36:46.556Z'
                      traceId: 3d29ece30a064ea68c3f5f4a9f785c6f
                    error:
                      code: ERR899
                      message: Service currently unavailable, please try again later.
                    data:
                      partnerLeadOpportunityId: null
                      dsLeadOpportunityId: null
                      action: null
  /sales/api4partners/v0/leads-opportunities/{id}:
    patch:
      summary: Update a lead-opportunity object
      description: >-
        Update a lead-opportunity (partial updates on some attributes is
        recommended)
      tags:
        - leads-opportunities
      operationId: updateLeadOpportunitiesDetails
      parameters:
        - name: id
          in: path
          required: true
          description: 3DS id of the lead-opportunity object to update
          schema:
            type: string
      requestBody:
        description: request Body for updating a lead-opportunity object
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/patch_leads-opportunities_data'
            examples:
              updateLeadStatus:
                $ref: '#/components/examples/patch_update-lead_status'
              updateLeadNextMilestone:
                $ref: '#/components/examples/patch_update-lead_nextMilestone'
        required: true
      responses:
        '200':
          description: OK
          headers:
            X-RateLimit-Limit:
              description: Total allowed quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 100
            X-RateLimit-Remaining:
              description: Remaining quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 42
            X-RateLimit-Reset:
              description: Number of seconds until the quota window resets.
              schema:
                type: integer
                minimum: 0
              example: 27
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/200_patch_leads-opportunities'
              examples:
                200_leadsOpportunitiesCreateResponse:
                  summary: OK
                  description: >-
                    Response in case of a successful creation of a new
                    leadOpportunity
                  value:
                    info:
                      success: true
                      statusCode: 200
                      timeStamp: null
                      traceId: null
                    error: null
                    data:
                      partnerLeadOpportunityId: OPPY-12345
                      dsLeadOpportunityId: XJSR-DZMFFT
                      action: update
        '400':
          description: Bad request, invalid input.
          headers:
            X-RateLimit-Limit:
              description: Total allowed quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 100
            X-RateLimit-Remaining:
              description: Remaining quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 42
            X-RateLimit-Reset:
              description: Number of seconds until the quota window resets.
              schema:
                type: integer
                minimum: 0
              example: 27
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400_patch_leads-opportunities'
              examples:
                400_leadsOpportunitiesCreateResponse:
                  summary: Bad Request
                  description: >-
                    Response in case of a Failure in updating an existing
                    leadOpportunity
                  value:
                    data:
                      leadOportunityId: string
                      leadOpportunity:
                        partnerExternalId: string
                        name: string
                        dsOwnerEmail: string
                        status: string
                        forecastCategory: string
                        closeDate: date
                        cometCampaignCode: string
                        reasonWon:
                          - string
                        reasonLost:
                          - string
                        competitors:
                          - string
                        reasonWonLostComment: string
                        gtmTacticId: string
                        description: string
                        nextMilestone: string
                        nextMilestoneDate: date
                        currency: string
                      offerLines:
                        - amount: double
                          offerNameId: string
                          revenueType: string
                      customerLegalEntity:
                        id: string
                        dunsNumber: string
                        vatNumber: string
                        registrationId: string
                        name: string
                        city: string
                        country: string
                        addressLine1: string
                        statePrefecture: string
                        addressLine2: string
                        zipCode: string
                        websiteUrl: string
                      customerContact:
                        - phoneNumber: (555) 555-1234
                          salutation: Mr
                          jobTitle: R&D Director
                          email: robert.johnson@customer.com
                          firstName: robert
                          lastName: Johnson
                      partnerContact:
                        - salesRepEmail: john.doe@partner.com
                          salesRepFirstName: john
                          salesRepLastName: Doe
                    info:
                      success: false
                      statusCode: 400
                    errors: {}
        '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: Access 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
        '406':
          description: Not acceptable
          headers:
            X-RateLimit-Limit:
              description: Total allowed quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 100
            X-RateLimit-Remaining:
              description: Remaining quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 42
            X-RateLimit-Reset:
              description: Number of seconds until the quota window resets.
              schema:
                type: integer
                minimum: 0
              example: 27
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/406_leads-opportunities'
              examples:
                406_IncorrectCloseDateNextMilestoneFormat:
                  summary: Error returned when date Format is not as expected.
                  description: >-
                    Date format provided in one input is not as per the expected
                    format.
                  value:
                    info:
                      success: false
                      statusCode: 406
                      timeStamp: '2025-08-07T07:22:41.357Z'
                      traceId: 7a722f2871304f7fa0bd1457388dff5d
                    error:
                      code: ERR805
                      message: >-
                        Incorrect Close Date/next milestone date Format. Provide
                        date in ISO8601 format.
                    data:
                      partnerLeadOpportunityId: null
                      dsLeadOpportunityId: null
                      action: null
        '429':
          description: Too many Requests
          headers:
            X-RateLimit-Limit:
              description: Total allowed quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 100
            X-RateLimit-Remaining:
              description: Remaining quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 42
            X-RateLimit-Reset:
              description: Number of seconds until the quota window resets.
              schema:
                type: integer
                minimum: 0
              example: 27
          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
        '503':
          description: Service Unavailable
          headers:
            X-RateLimit-Limit:
              description: Total allowed quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 100
            X-RateLimit-Remaining:
              description: Remaining quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 42
            X-RateLimit-Reset:
              description: Number of seconds until the quota window resets.
              schema:
                type: integer
                minimum: 0
              example: 27
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/503_leads-opportunities'
              examples:
                503_ServiceUnavailable:
                  summary: Service Unavailable
                  description: >-
                    Service Unavailable Typical reason could be a maintenance on
                    3DS System. try again later
                  value:
                    info:
                      success: false
                      statusCode: 503
                      timestamp: '2025-06-30T12:36:46.556Z'
                      traceId: 3d29ece30a064ea68c3f5f4a9f785c6f
                    error:
                      code: ERR899
                      message: Service currently unavailable, please try again later.
                    data:
                      partnerLeadOpportunityId: null
                      dsLeadOpportunityId: null
                      action: null
    get:
      summary: Get details of a lead-opportunity object
      description: |
        gets details of a lead-opportunity object from its 3DS identifier.
      tags:
        - leads-opportunities
      operationId: getLeadsOpportunities
      parameters:
        - name: id
          in: path
          required: true
          description: >-
            3DS id of the lead-opportunity object for which details are
            requested
          schema:
            type: string
      responses:
        '200':
          description: OK
          headers:
            X-RateLimit-Limit:
              description: Total allowed quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 100
            X-RateLimit-Remaining:
              description: Remaining quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 42
            X-RateLimit-Reset:
              description: Number of seconds until the quota window resets.
              schema:
                type: integer
                minimum: 0
              example: 27
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/200_get_leads-opportunities'
              examples:
                200_leadsOpportunitiesGetResponse:
                  summary: OK
                  description: Successful retrieval of an existing leadOpportunity object
                  value:
                    error: null
                    info:
                      success: true
                      statusCode: 200
                      timeStamp: null
                      traceId: null
                    data:
                      leadOpportunity:
                        partnerLeadOpportunityId: API4PARTNERS-0813C
                        dsLeadOpportunityId: HCRQ-F1LLDE
                        name: TEST-0813C
                        dsOwnerEmail: john.doe@3ds.com
                        status: WON
                        forecastCategory: WON
                        closeDate: '2024-12-31T00:00:00.000Z'
                        cometCampaignCode: OC2DE17TAQ1C13018
                        competitors: null
                        reasonWon:
                          - STRNG_VAL_PROP
                        reasonLost:
                          - EMPTY
                        reasonWonLostComment: ''
                        gtmTacticId: null
                        description: ''
                        nextMilestone: ''
                        nextMilestoneDate: ''
                        currency: EUR
                        approvalStatus: PRE_APPROVED
                        engagementType: EXTEND
                        poInformation: ''
                        poStatus: null
                        poNumber: null
                        sboIndicator: EMPTY
                        sboStatus: null
                        sboNumber: null
                        growthType: EMPTY
                        leadPriority: EMPTY
                        levelOfInterest: EMPTY
                        dsComment: ''
                        partnerImportMode: EMPTY
                        createdDate: '2025-08-13T12:35:03.775Z'
                        modifiedDate: '2025-08-13T15:44:44.453Z'
                        offerLines:
                          - amount: 10000
                            offerNameId: MDMIND00022_PUBL_ISE00002687_IPE00021337
                            revenueType: UPFRONT
                          - amount: 11
                            offerNameId: MDMIND00022_PUBL_ISE00002687_IPE00021337
                            revenueType: RENTAL_BOOKING
                        customerContact:
                          - phoneNumber: '9658252499'
                            salutation: MR
                            jobTitle: ''
                            email: dummy123_mail@mail.com
                            firstName: F Name1
                            lastName: L_Name2
                        partnerContact: null
                        customerLegalEntity:
                          id: '200000000781989'
                          dunsNumber: null
                          vatNumber: null
                          registrationId: null
                          name: null
                          city: null
                          country: null
                          addressLine1: null
                          statePrefecture: null
                          addressLine2: null
                          zipCode: null
                          websiteUrl: null
        '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: Access 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
          headers:
            X-RateLimit-Limit:
              description: Total allowed quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 100
            X-RateLimit-Remaining:
              description: Remaining quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 42
            X-RateLimit-Reset:
              description: Number of seconds until the quota window resets.
              schema:
                type: integer
                minimum: 0
              example: 27
          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
        '500':
          description: Internal Server Error
          headers:
            X-RateLimit-Limit:
              description: Total allowed quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 100
            X-RateLimit-Remaining:
              description: Remaining quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 42
            X-RateLimit-Reset:
              description: Number of seconds until the quota window resets.
              schema:
                type: integer
                minimum: 0
              example: 27
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/500_get_leads-opportunities'
              examples:
                500_leadsOpportunitiesGetResponse:
                  summary: Internal Server Error
                  description: No access or inexistant lead-opportunity id
                  value:
                    error:
                      code: ERROR_048
                      message: Leverage Id not in scope of requestor
                    info:
                      success: false
                      statusCode: 500
                      timeStamp: '2025-08-12T15:40:35.774Z'
                      traceId: 12bcca3a019645829d5330c5df912537
                    data: null
        '503':
          description: Service Unavailable
          headers:
            X-RateLimit-Limit:
              description: Total allowed quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 100
            X-RateLimit-Remaining:
              description: Remaining quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 42
            X-RateLimit-Reset:
              description: Number of seconds until the quota window resets.
              schema:
                type: integer
                minimum: 0
              example: 27
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/503_leads-opportunities'
              examples:
                503_ServiceUnavailable:
                  summary: Service Unavailable
                  description: >-
                    Service Unavailable Typical reason could be a maintenance on
                    3DS System. try again later
                  value:
                    info:
                      success: false
                      statusCode: 503
                      timestamp: '2025-06-30T12:36:46.556Z'
                      traceId: 3d29ece30a064ea68c3f5f4a9f785c6f
                    error:
                      code: ERR899
                      message: Service currently unavailable, please try again later.
                    data:
                      partnerLeadOpportunityId: null
                      dsLeadOpportunityId: null
                      action: null
  /sales/api4partners/v0/leads-opportunities/search:
    post:
      summary: Search for leads-opportunities
      description: >
        Searches for leads-opportunities using various search criteria (e.g.
        modifiedDate)
      tags:
        - leads-opportunities
      operationId: searchLeadsOpportunities
      requestBody:
        description: >-
          Request Body for searching leads-opportunities.


          The request must include at least one of the following sub-objects:


          - `modifiedDate`

          - `partnerLeadOpportunityId`


          These criteria will be combined using an AND operator if more than one
          is provided.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/post_leads-opportunities_search'
            examples:
              search_modifiedDate:
                summary: search on modifiedDate criterion
                description: >-
                  Sample BodyRequest to search leads-opportunities based on
                  'modifiedDate' criterion.
                value:
                  data:
                    - modifiedDate:
                        fromDate: '2025-08-04T08:00:00Z'
                        toDate: '2025-08-08T18:00:00Z'
              search_partnerLeadOpportunityId:
                summary: search on partnerLeadOpportunityId criterion
                description: >-
                  sample BodyRequest to search leads-opportunitied based on
                  'partnerLeadOpportunityId' criterion.
                value:
                  data:
                    - partnerLeadOpportunityId:
                        - PARTNERID-129763
                        - PARTNERID-248651
              search_partnerLeadOpportunityId-unassigned:
                summary: >-
                  search for leads-opportunities without
                  partnerLeadOpportunityId
                description: >-
                  sample BodyRequest to search leads-opportunities on which
                  there is no partnerLeadOpportunityId defined.
                value:
                  data:
                    - partnerLeadOpportunityId: ''
              search_combined:
                summary: search with combined criteria
                description: >-
                  sample BodyRequest to search leads-opportunitied based on
                  'modifiedDate' & 'partnerLeadOpportunityId' criterion.
                value:
                  data:
                    - partnerLeadOpportunityId:
                        - PARTNERID-129763
                        - PARTNERID-248651
                    - modifiedDate:
                        fromDate: '2025-08-04T08:00:00Z'
                        toDate: '2025-08-08T18:00:00Z'
        required: true
      responses:
        '200':
          description: OK
          headers:
            X-RateLimit-Limit:
              description: Total allowed quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 100
            X-RateLimit-Remaining:
              description: Remaining quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 42
            X-RateLimit-Reset:
              description: Number of seconds until the quota window resets.
              schema:
                type: integer
                minimum: 0
              example: 27
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/200_post_leads-opportunities_search'
              examples:
                200_lead-opportunities_search:
                  summary: OK
                  description: Sample response for successful search.
                  value:
                    info:
                      success: true
                      statusCode: 200
                      timeStamp: '2025-08-08T16:36:23Z'
                      traceId: 785594df0cbd4f149d0ffbd7e0933820
                    error: null
                    data:
                      - dsLeadOpportunityId:
                          - 1FFC-7BQC5E
                          - BYTK-COL4A0
                          - 5KSL-VLSWRX
        '400':
          description: Bad request, invalid input.
          headers:
            X-RateLimit-Limit:
              description: Total allowed quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 100
            X-RateLimit-Remaining:
              description: Remaining quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 42
            X-RateLimit-Reset:
              description: Number of seconds until the quota window resets.
              schema:
                type: integer
                minimum: 0
              example: 27
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400_post_leads-opportunities'
              examples:
                400_lead-opportunities_search_missingFromToDate:
                  summary: Bad Request
                  description: >-
                    Error when modifedDate search criterias (from or to) is
                    invalid
                  value:
                    info:
                      success: false
                      statusCode: 400
                      timeStamp: '2025-08-08T15:14:19Z'
                      traceId: afafb61eb2704ecb9b626d8b3b6c593f
                    error:
                      code: ERROR_043
                      message: >-
                        Both startDateTime and endDateTime must be passed as
                        parameters
                    data: null
        '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: Access 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
          headers:
            X-RateLimit-Limit:
              description: Total allowed quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 100
            X-RateLimit-Remaining:
              description: Remaining quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 42
            X-RateLimit-Reset:
              description: Number of seconds until the quota window resets.
              schema:
                type: integer
                minimum: 0
              example: 27
          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
        '503':
          description: Service Unavailable
          headers:
            X-RateLimit-Limit:
              description: Total allowed quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 100
            X-RateLimit-Remaining:
              description: Remaining quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 42
            X-RateLimit-Reset:
              description: Number of seconds until the quota window resets.
              schema:
                type: integer
                minimum: 0
              example: 27
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/503_leads-opportunities'
              examples:
                503_ServiceUnavailable:
                  summary: Service Unavailable
                  description: >-
                    Service Unavailable Typical reason could be a maintenance on
                    3DS System. try again later
                  value:
                    info:
                      success: false
                      statusCode: 503
                      timestamp: '2025-06-30T12:36:46.556Z'
                      traceId: 3d29ece30a064ea68c3f5f4a9f785c6f
                    error:
                      code: ERR899
                      message: Service currently unavailable, please try again later.
                    data:
                      partnerLeadOpportunityId: null
                      dsLeadOpportunityId: null
                      action: null
  /sales/api4partners/v0/portfolio-items/search:
    get:
      summary: Search Sales portfolio items
      description: >
        Search Sales Portfolio Items. 

        For now, no particular search criteria is offered, only pagination with
        skip & top query parameters.
      tags:
        - portfolio-items
      operationId: searchPortfolioItems
      parameters:
        - name: skip
          in: query
          description: Number of items to skip in the search results.
          schema:
            type: integer
            minimum: 0
            default: 0
          example: 0
        - name: top
          in: query
          description: Maximum number of items to retrieve in search results.
          schema:
            type: integer
            minimum: 1
            default: 9999
          example: 100
      responses:
        '200':
          description: OK
          headers:
            X-RateLimit-Limit:
              description: Total allowed quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 100
            X-RateLimit-Remaining:
              description: Remaining quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 42
            X-RateLimit-Reset:
              description: Number of seconds until the quota window resets.
              schema:
                type: integer
                minimum: 0
              example: 27
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/200_get_portfolio-items_search'
              examples:
                200_portfolioItemsSearchGetResponse:
                  summary: OK
                  description: Successful search in portfolio items (with top=1)
                  value:
                    info:
                      success: true
                      statusCode: 200
                      estimatedSearchCount: 3049
                      timeStamp: '2025-08-14T06:24:04.000Z'
                    data:
                      - salesPortfolioType: Brand
                        salesPortfolioInfrastructure: On Premise
                        salesPortfolioisOrderable: true
                        salesPortfolioLevel1: CATIA
                        salesPortfolioLevel2: CATIA V4
                        salesPortfolioLevel3: MANUFACTURING
                        salesPortfolioId: CLASS00001_ONPR_CATIAV4_SOL000038
        '400':
          description: Bad request, invalid input.
          headers:
            X-RateLimit-Limit:
              description: Total allowed quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 100
            X-RateLimit-Remaining:
              description: Remaining quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 42
            X-RateLimit-Reset:
              description: Number of seconds until the quota window resets.
              schema:
                type: integer
                minimum: 0
              example: 27
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400_get_portfolio-items_search'
              examples:
                400_portfolioItemsSearchGetResponse:
                  summary: Bad request
                  description: Invalid query parameter value (top=-5)
                  value:
                    info:
                      success: false
                      statusCode: 400
                      timeStamp: '2025-08-14T09:07:04.000Z'
                      estimatedSearchCount: 3030
                    error:
                      code: ERROR_004
                      message: '#top should be a positive, non zero integer'
        '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: Access 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
          headers:
            X-RateLimit-Limit:
              description: Total allowed quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 100
            X-RateLimit-Remaining:
              description: Remaining quota in the current window.
              schema:
                type: integer
                minimum: 0
              example: 42
            X-RateLimit-Reset:
              description: Number of seconds until the quota window resets.
              schema:
                type: integer
                minimum: 0
              example: 27
          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:
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
  schemas:
    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'
    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'
    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
    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
    transaction_type:
      type: string
      description: |
        Order type (one of: `PO`, `RN`).
      enum:
        - PO
        - RN
      x-enumDescriptions:
        PO: Purchase Order
        RN: Renewal Notification
      example: PO
    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
    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
    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
    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
    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
    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. 
            Must be an integer between 1 and 999.
          minimum: 1
          maximum: 999
          example: 2
      required:
        - id
        - name
        - locationId
    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'
    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'
    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'
    lastupdate_datetime:
      type: string
      description: >
        UTC timestamp of the most recent update to the order.

        This timestamp indicates the exact moment when the order was last
        modified.

        It is crucial for tracking changes and ensuring data consistency.


        Format: ISO 8601 UTC (e.g., `2025-05-21T14:40:00Z`)
      format: date-time
      example: '2025-05-21T14:40:00Z'
    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
    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
    billto_sales_representative:
      type: string
      description: Name of the sales representative person from the **Bill To** site.
      example: DOE, Jane
    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
    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'
          dsReceivedPoDate:
            $ref: '#/components/schemas/ds_received_po_date'
          bookingDateTime:
            $ref: '#/components/schemas/booking_datetime'
          lastUpdateDateTime:
            $ref: '#/components/schemas/lastupdate_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
    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
    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.  

              This allows API consumers to programmatically recognize and handle
              the error appropriately.  


              The URI follows the format: `errors:<domain>:<error_type>`  

              Example values include:

              - `errors:3dx:invalidRequest`

              - `errors:3dx:authenticationGenericError`

              - `errors:3dx:resourceNotFound`

              - `errors:3dx:internalServerError`
            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.  

              Useful when multiple issues are detected at once.
            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
    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
    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
    401_basic_unauthorized:
      type: object
      description: Unauthorized
      properties:
        message:
          type: string
      required:
        - message
    403_basic_forbidden:
      type: object
      description: Access Forbidden.
      properties:
        message:
          type: string
      required:
        - message
    429_too_many_requests:
      type: object
      description: Too Many Requests
      properties:
        message:
          type: string
      required:
        - message
    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
    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
    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
    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
    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
    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
    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-30'
        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
    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'
    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'
          lastUpdateDateTime:
            $ref: '#/components/schemas/lastupdate_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
    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
    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
    country_code:
      type: string
      description: ISO3 Code (3 capital letters code) of the country
      example: FRA
    country_name:
      type: string
      description: |
        Country Location
      example: France
    price-lists_search_data:
      type: array
      description: >-
        List of **Products** and **Industry Process Experiences (IPE)** that the
        authorized user is accredited to sell.
      items:
        type: object
        description: Summary information for a price list query.
        properties:
          countryCode:
            $ref: '#/components/schemas/country_code'
          countryName:
            $ref: '#/components/schemas/country_name'
          priceLists:
            type: array
            items:
              type: object
              description: >
                A predefined set of product prices applicable to a specific
                country and currency.

                Each price list defines how products are priced within a
                particular market or region

                and serves as a reference for calculating order amounts.
              properties:
                id:
                  type: integer
                  example: 9
                name:
                  type: string
                  example: EMEA Price List
                currency:
                  $ref: '#/components/schemas/currency'
                hasFuturePriceList:
                  type: boolean
                  description: >
                    Indicates whether a future version of the price list has
                    been declared.

                    - true: A future-dated price list exists.

                    - false: No future price list has been declared.
                  examples:
                    - true
                    - false
                effectiveDate:
                  type:
                    - string
                    - 'null'
                  format: date
                  description: >
                    The date when the future price list takes effect.

                    If 'null', it indicates that no future price list version
                    has been declared.
                  examples:
                    - '2025-09-09'
                    - null
    200_price-lists_search:
      type: object
      description: Response body returned upon a successful price list search request.
      properties:
        data:
          $ref: '#/components/schemas/price-lists_search_data'
        info:
          $ref: '#/components/schemas/info'
        error:
          $ref: '#/components/schemas/error'
      required:
        - info
        - data
    accreditations_search_data:
      type: array
      description: List of accreditations retrieved during the search operation.
      items:
        type: object
        description: Summary information for an accreditation query.
        properties:
          id:
            type: string
            examples:
              - IPE00034863
              - PRTF119
          name:
            type: string
            examples:
              - 04-Continuous Product Development
              - Public Cloud 3D Design
          accreditationType:
            type: string
            enum:
              - Industry Process Experience
              - Portfolio
            x-enumDescriptions:
              Industry Process Experience: >
                A Dassault Systèmes offering designed to correspond to the
                business process used by a team in the context of the solution. 

                Delivered through the 3DEXPERIENCE platform, Industry Process
                Experiences (IPEs) are composed of Roles. 

                When combined, they make up Industry Solution Experiences.
              Portfolio: >
                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".
          deploymentType:
            type: string
            enum:
              - On Premise
              - Public Cloud
            x-enumDescriptions:
              On Premise: >
                On-premise refers to a computing infrastructure (either bare
                metal or virtual machines) that is deployed and maintained
                within the organization's own data centers or facilities. 


                It is not shared with other organizations, providing the highest
                level of control and security. 
              Public Cloud: >-
                On-Cloud refers to products or solutions that are designed,
                developed, and delivered directly on cloud infrastructure rather
                than on traditional on-premises systems.
          industrySolutionExperience:
            description: >
              A Dassault Systèmes industry-specific offering designed to help
              companies innovate and achieve their performance objectives by
              addressing specific business challenges, Delivered through the
              3DEXPERIENCE platform, an Industry Solution Experience is
              comprised of Industry Process Experiences.
            type: object
            properties:
              id:
                type: string
                example: ISE00004588
              name:
                type: string
                example: Engineered to Fly
          solutionRelease:
            description: >
              A Release is a group of iterations that results in the completion
              of a valuable deliverable on the project.
            type: object
            properties:
              id:
                type: string
                example: REL00000051
              name:
                type: string
                example: 3DEXPERIENCE R2024x
          industry:
            description: >
              Industry is a wide business industrial domain, marketed by
              Dassault Systèmes as an industry.
            type: object
            properties:
              id:
                type: string
                example: IND000005
              name:
                type: string
                example: Aerospace & Defense
        required:
          - id
          - name
          - accreditationType
    200_accreditations_search:
      type: object
      description: Response returned upon a successful price list search request.
      properties:
        data:
          $ref: '#/components/schemas/accreditations_search_data'
        info:
          $ref: '#/components/schemas/info'
        error:
          $ref: '#/components/schemas/error'
      required:
        - info
        - data
    400_accreditations_search:
      type: object
      description: Response body returned when the accreditation 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
    200_post_apikeys:
      type: object
      properties:
        hashed_key:
          type: string
          description: Generated hash of the API key (60 characters)
          example: $2b$12$8tcF4MTIDcup3WEo8fFSieGIYEnp/DTLHSTivUCcW2II/VVwRI9Qm
          minLength: 60
          maxLength: 60
        api_key:
          type: string
          description: Plain API key (64 characters)
          example: 5839bcfabb9e0d20f889f366dbfbbe2973c152cfbe91fae728a9f7e662ce1a2d
          minLength: 64
          maxLength: 64
      required:
        - hashed_key
        - api_key
    partnerLeadOpportunityId:
      type: string
      description: >-
        <ins>Unique Identifier</ins> of the lead-opportunity in the CRM system
        of the 3DS partner.
      example: OPPY-1004526
    dsOwnerEmail:
      type: string
      description: >-
        email of the 3DS Partner Sales Manager (PSM).


        <ins>Note :</ins> It is defaulted to the primary 3DS PSM if not provided
        at creation time.
      example: john.doe@3ds.com
    lead-opportunity-status:
      type: string
      description: |
        Status of the lead-opportunity (LEVERAGE Processs)
      enum:
        - LEAD_OPEN
        - QUALIFIED
        - ACCEPTED
        - OPPY_OPEN
        - VALIDATED
        - ESTABLISHED
        - WON
        - LOST
      x-enumDescriptions:
        LEAD_OPEN: '-6 Open'
        QUALIFIED: '-5 Qualified'
        ACCEPTED: '-4 Accepted'
        OPPY_OPEN: '-3 Open'
        VALIDATED: '-2 Validated'
        ESTABLISHED: '-1 Established'
        WON: Won opportunity
        LOST: Lost opportunity
    forecastCategory:
      type: string
      enum:
        - UPSIDE
        - COMMIT
        - SAFE
        - WON
        - LOST
        - LONGSHOT
        - EMPTY
      description: >-
        Forecast Category is an assessment done by the Sales Expert to report
        his/her level of confidence that the Opportunity will close on the Close
        Date with the revenue amounts defined.

        Value is ignored at creation if status is ‘LEAD_OPEN’,’QUALIFIED’ or
        ’ACCEPTED’.

        if value is not provided at creation time, it defaults based on the
        following matrix : 

        | status | default forecastCategory | forecastCategory values |

        | ------- | ------------------------ | -----------------------|

        | -3 Open | Upside | Safe/Commit/Upside/Longshot |

        | -2 validated | Upside | Safe/Commit/Upside/Longshot |

        | -1 Established | Upside | Safe/Commit/Upside/Longshot |

        | Won | Won | Won (set by the system)|

        | Lost | Lost| Lost (set by the system)
      x-enumDescriptions:
        UPSIDE: >
          One or more major risks of closing business by the close date, however
          the customer stated an intention, as represented in the Win Plan, to
          place an order by the specified Close Date.
        COMMIT: >
          Commitment that this Opportunity will be won by the close date. All
          key steps to close by the close date have been agreed upon with the
          customer and there are no known major risks.
        SAFE: >
          The Purchase Order and agreements signed by the customer are received
          by 3DS, are being reviewed by Sales Operations and have been submitted
          to Finance.
        WON: >
          The signed Statement of work and Purchase Order are approved (by
          Finance)
        LOST: >
          The signed Statement of work and Purchase Order are approved (by
          Finance) and the Opportunity is lost.
        LONGSHOT: >
          LongLow probability of closing business by the close date due to one
          or more significant risks (RFP in process, missing technical proofs or
          vendor selection, no alignment on Close Date, services or legal
          contracts not startedshot.
        EMPTY: |
          Empty, not filled in.
    reason_won:
      type: string
      description: >-
        Identification of the reason a lead or an opportunity is won.


        <ins>Note :</ins> At Creation time, if Value is Not provided, it will be
        defaulted to 'STRNG_VAL_PROP' (Stronger value proposition).
      enum:
        - SOLUTION_FUNCT
        - STRNG_VAL_PROP
        - LWR_CST_OF_OWNRSHIP
        - LWR_IMPL_COST
        - GOOD_CSTMR_REFER
        - OFFR_TRM_CONDN
        - LWR_SFTWR_COSTS
        - STRONG_CLIENT_RELATION
        - DS_SKILLS_EXPERTISE
        - PRTNR_SKILL_&_EXPRT
        - PRTNR_RELTNSHIP
        - SALE_OPP_ACT
        - IT_DRVN_ACT
        - EMPTY
      x-enumDescriptions:
        SOLUTION_FUNCT: Solution functionality
        STRNG_VAL_PROP: Stronger value proposition
        LWR_CST_OF_OWNRSHIP: Lower costs of ownership
        LWR_IMPL_COST: Lower implementation costs
        GOOD_CSTMR_REFER: Good customer references
        OFFR_TRM_CONDN: Offer Terms & conditions
        LWR_SFTWR_COSTS: Lower software costs
        STRONG_CLIENT_RELATION: Strong client relationship
        DS_SKILLS_EXPERTISE: DS skills & expertise
        PRTNR_SKILL_&_EXPRT: Partner skills & expertise
        PRTNR_RELTNSHIP: Partner (CSI) relationship
        SALE_OPP_ACT: SalesOperations activities
        IT_DRVN_ACT: IT driven activities
        EMPTY: Empty
      example: STRNG_VAL_PROP
    reason_lost:
      type: string
      enum:
        - BETTER_COMP_OFFER
        - CLIENT_DOES_NOT_SEE_VALUE
        - LACK_OR_LOSS_OF_CHAMPION
        - FUNC_GAP
        - HIGH_IMPLEM_COST
        - LACK_OF_REF
        - OFFER_DOES_NOT_MATCH_NEEDS
        - QUALITY_ISSUE
        - DS_SKILLS_SUPPORT_ISSUE
        - PARTNER_SKILL_SUPPORT
        - REL_LEVEL_ISSUE
        - SOFT_COST_TOO_HIGH
        - TERMS_COND_ISSUE
        - COST_OF_SALES_TOO_HIGH
        - LACK_OF_SKILLS_TO_SUPPORT
        - LACK_OF_TECH_RESOURCES
        - NOT_A_DS_PRIORITY
        - NOT_A_PARTNER_PRIORITY
        - CLIENT_BANKRUPT_OR_ACQUIRED
        - CLIENT_HAS_NO_MORE_NEED
        - CLIENT_HAS_NO_MORE_BUDGET
        - DUP_COPY
        - IT_DRIVEN_ACTIVITIES
        - LOST_TO_ANOTHER_PARTNER
        - SALESOPS_ACTIVITIES
        - TERRITORY_REJECT
        - INADEQUATE_REF
        - WRONG_PARTNER_OR_DS_SALES
        - MISSING_INFORMATION
        - INCORRECT_CHANNEL
        - UNMOVABLE_COMPET
        - OPPY_ALREADY_EXISTS
        - NO_PROJECT
        - IMMATURE_PROJECT
        - DUP_LEAD
        - DUP_OPPY
        - CUST_BNKRUPT
        - NVR_SUCCEED_RECHN_CUST
        - NT_ENG_RLVNT_EVD_CUST
        - ROI_NT_VIBLE
        - VLD_CUST_EXPLNTN
        - MERGED
        - EMPTY
      description: >-
        A list of reason lost is used to identify the reason(s) for loss of an
        opportunity and for a Lead (which will give insight for the lessons
        learnt).

        <ins>Note :</ins> It is defaulted to `No Project` if value is Not
        provided during creation of the lead-opportunity.
      x-enumDescriptions:
        BETTER_COMP_OFFER: Better competition offer
        CLIENT_DOES_NOT_SEE_VALUE: Client does not see value
        LACK_OR_LOSS_OF_CHAMPION: Lack or loss of Champion
        FUNC_GAP: Functional gap
        HIGH_IMPLEM_COST: High Implementation cost
        LACK_OF_REF: Lack of references
        OFFER_DOES_NOT_MATCH_NEEDS: Offer does not match needs
        QUALITY_ISSUE: Quality issue
        DS_SKILLS_SUPPORT_ISSUE: DS skills & support issue
        PARTNER_SKILL_SUPPORT: Partner skills & support
        REL_LEVEL_ISSUE: Relationship level issue
        SOFT_COST_TOO_HIGH: Software cost too high
        TERMS_COND_ISSUE: Terms & conditions issue
        COST_OF_SALES_TOO_HIGH: Cost of Sales too high
        LACK_OF_SKILLS_TO_SUPPORT: Lack of skills to support
        LACK_OF_TECH_RESOURCES: Lack of tech resources
        NOT_A_DS_PRIORITY: Not a priority for DS
        NOT_A_PARTNER_PRIORITY: Not a priority for Partner
        CLIENT_BANKRUPT_OR_ACQUIRED: Client Bankrupt/Acquired
        CLIENT_HAS_NO_MORE_NEED: Client has no (more) need
        CLIENT_HAS_NO_MORE_BUDGET: Client has no (more) budget
        DUP_COPY: Duplicate copy
        IT_DRIVEN_ACTIVITIES: IT driven activities
        LOST_TO_ANOTHER_PARTNER: Lost to another partner
        SALESOPS_ACTIVITIES: SalesOperations activities
        TERRITORY_REJECT: Territory reject
        INADEQUATE_REF: Inadequate references
        WRONG_PARTNER_OR_DS_SALES: Wrong Partner/DS Sales
        MISSING_INFORMATION: Missing information
        INCORRECT_CHANNEL: Incorrect channel
        UNMOVABLE_COMPET: Unmovable compet.
        OPPY_ALREADY_EXISTS: Oppy already exists
        NO_PROJECT: No Project
        IMMATURE_PROJECT: Immature project
        DUP_LEAD: Duplicate lead
        DUP_OPPY: Duplicate oppy
        CUST_BNKRUPT: Customer bankruptcy
        NVR_SUCCEED_RECHN_CUST: Never succeed in reaching customer (mail/phone/letter)
        NT_ENG_RLVNT_EVD_CUST: >-
          Not enough relevant evidences to escalate with the customer (at risk
          at the court)
        ROI_NT_VIBLE: ROI for enforcement not viable
        VLD_CUST_EXPLNTN: Valid Customer Explanation (approved by legal)
        MERGED: Merged
        EMPTY: Empty
      example: CLIENT_HAS_NO_MORE_BUDGET
    lead-opportunity_attributes:
      type: object
      properties:
        partnerLeadOpportunityId:
          $ref: '#/components/schemas/partnerLeadOpportunityId'
        name:
          type: string
          description: Name assigned to the lead-opportunity
          example: Projekt Big-Picture Topic + MBSE (STEP 1+2)
        dsOwnerEmail:
          $ref: '#/components/schemas/dsOwnerEmail'
        status:
          $ref: '#/components/schemas/lead-opportunity-status'
          example: LEAD_OPEN
        forecastCategory:
          $ref: '#/components/schemas/forecastCategory'
          example: UPSIDE
        closeDate:
          type: string
          format: date-time
          description: >-
            Expected date for the closing of the sale in ISO 8601 format (like
            YYYY-MM-DDThh:mm:ss.sssZ)
          example: '2025-08-01T18:03:16.325Z'
        cometCampaignCode:
          type: string
          description: COMET Campaign code
          example: OC2DE17TAQ1C13018
        reasonWon:
          type: array
          description: >-

            Identification of the reason a lead or an opportunity is won.


            _Note_ : At creation time, if value is not provided, it will be
            defaulted to `STRNG_VAL_PROP` (Stronger value proposition).
          items:
            $ref: '#/components/schemas/reason_won'
        reasonLost:
          type: array
          description: >-

            A list of reason lost is used to identify the reason(s) for loss of
            an opportunity and for a Lead (which will give insight for the
            lessons learnt).


            _Note_ : At creation time, if value is not provided, it will be
            defaulted to `NO_PROJECT`.
          items:
            $ref: '#/components/schemas/reason_lost'
        competitors:
          type: array
          description: >
            List of the competitors. 

            In current state of the API, the list of valid values will be
            provided through direct communication with partners (mail or 3DSwym
            discussion). 
          items:
            type: string
        reasonWonLostComment:
          type: string
          description: Comment associated to WON or LOST reasons
          example: The Customer has no budget
        gtmTacticId:
          type: string
          description: identification of GoToMarket.
        description:
          type: string
          description: description associated to the lead-opportunity
          example: Projekt Dashboard - Big-Picture TopicPilotprojekt
        nextMilestone:
          type: string
          description: Description of the next activity to be done
          example: Next activity is to make a demo to the Customer
        nextMilestoneDate:
          type: string
          format: date-time
          description: >-
            Next Milestone date in ISO 8601 format (like
            YYYY-MM-DDThh:mm:ss.sssZ)
          example: '2025-08-01T18:03:16.325Z'
        currency:
          $ref: '#/components/schemas/currency'
    lead-opportunity_post:
      type: object
      description: |
        Core attributes of the lead-opportunity in case of creation.
      allOf:
        - $ref: '#/components/schemas/lead-opportunity_attributes'
        - type: object
      required:
        - partnerLeadOpportunityId
        - name
        - status
        - closeDate
        - currency
    revenueType:
      type: string
      enum:
        - UPFRONT
        - RENTAL_BOOKING
        - SUPPORT_SERVICES
        - SERVICES_SIGNING
        - EMPTY
      description: |
        The type of revenue
      x-enumDescriptions:
        UPFRONT: Upfront
        RENTAL_BOOKING: Rental Booking
        SUPPORT_SERVICES: Support Services
        SERVICES_SIGNING: Services Signing
        EMPTY: Empty
    offerLine:
      type: object
      description: |
        One of the item within an offer.
      properties:
        amount:
          type: number
          description: Amount of the offer in the desgnated currency
          example: 13000
        offerNameId:
          type: string
          description: >-
            Identification of the Offer.  

            <ins>Note:</ins> : In current state of the API, the list of valid
            values will be communicated directly to 3DS Partners via email or
            within 3DS Partner Swym Community. 
          example: MDMIND00022_PUBL_ISE00002687_IPE00021337
        revenueType:
          $ref: '#/components/schemas/revenueType'
          example: UPFRONT
      required:
        - offerNameId
    country:
      type:
        - 'null'
        - string
      description: |
        Country Location
      example: France
    customerLegalEntity:
      type: object
      description: identification of the target Customer Legal Entity
      properties:
        id:
          type:
            - string
            - 'null'
          description: 3DS site identifier
          example: '200000000029188'
        dunsNumber:
          type:
            - string
            - 'null'
          description: Duns & Bradstreet identification
          example: '266257315'
        vatNumber:
          type:
            - string
            - 'null'
          description: VAT (Value Added Tax) identification number
          example: DE128212199
        registrationId:
          type:
            - string
            - 'null'
          description: registration id of the company in the country
        name:
          type:
            - string
            - 'null'
          description: the targeted name
          example: World Company Limited
        city:
          type:
            - string
            - 'null'
          description: City Location
          example: San Francisco
        country:
          $ref: '#/components/schemas/country'
        addressLine1:
          type:
            - string
            - 'null'
          description: 1st line of the address
          example: Kraillinger Strasse 5
        statePrefecture:
          type:
            - string
            - 'null'
          description: state / Prefecture
        addressLine2:
          type:
            - string
            - 'null'
          description: 2nd line of the address (if needed)
        zipCode:
          type:
            - string
            - 'null'
          description: ZIP Postal code
          example: '82131'
        websiteUrl:
          type:
            - string
            - 'null'
          description: website URL of the company
          example: www.world-company-limited.com
      required:
        - name
        - city
        - country
    customerContact:
      description: Customer Contact Information
      type: object
      properties:
        phoneNumber:
          type: string
          description: phone number of the Customer Contact
          example: '987654321'
        salutation:
          type: string
          description: 'Salution of the person : Mr., Ms., Dr., etc..'
          example: M.
        jobTitle:
          type: string
          description: Job title of the customer Contact
          example: Director of Reseearch & Development
        email:
          type: string
          description: email of the customer Contact
          example: john.smith@world-company.com
        firstName:
          type: string
          description: first name of the customer Contact
          example: John
        lastName:
          type: string
          description: lastname of the customer Contact
          example: Smith
      required:
        - email
        - firstName
        - lastName
    partnerContact:
      description: |
        Partner contact information
      properties:
        salesRepEmail:
          type: string
          description: email of the partner contact
          example: john.doe@best-partner.com
        salesRepFirstName:
          type: string
          description: first Name of the partner Contact
          example: John
        salesRepLastName:
          type: string
          description: last name of the partner contact
          example: Doe
      required:
        - salesRepEmail
        - salesRepFirstName
        - salesRepLastName
    post_leads-opportunities_data:
      description: request body for creating a new lead-opportunity object.
      type: object
      properties:
        partnerId:
          type: string
          description: Identification of partner LegalEntity in 3DS system.
          example: '200000000014442'
        leadOpportunity:
          type: object
          $ref: '#/components/schemas/lead-opportunity_post'
        offerLines:
          type: array
          description: array of the various Offer Lines.
          minItems: 1
          items:
            type: object
            $ref: '#/components/schemas/offerLine'
        customerLegalEntity:
          $ref: '#/components/schemas/customerLegalEntity'
        customerContacts:
          type: array
          description: Customer Contact(s) informations
          items:
            $ref: '#/components/schemas/customerContact'
        partnerContacts:
          type: array
          description: Partner Contact(s) informations
          items:
            $ref: '#/components/schemas/partnerContact'
      required:
        - leadOpportunity
        - offerLines
        - customerLegalEntity
        - partnerId
    201_post_leads-opportunities:
      type: object
      description: response in case of successful operation
      required:
        - partnerLeadOpportunityId
        - dsLeadOpportunityId
        - action
        - info
      properties:
        partnerLeadOpportunityId:
          $ref: '#/components/schemas/partnerLeadOpportunityId'
        dsLeadOpportunityId:
          type: string
          description: 3DS id of the lead-opportunity
          example: 5ZOQ-LF35OK
        action:
          type: string
          description: action performed
          example: create
        info:
          type: object
          description: Status of the request
          properties:
            success:
              type: boolean
              description: indicator whether request is successful or not.
              example: true
            statusCode:
              type: integer
              description: HTTP Code of the response
              example: 201
            timestamp:
              oneOf:
                - type: string
                  description: Timestamp of the query
                  example: '2025-06-30T12:36:46.556Z'
                - type: 'null'
            traceId:
              oneOf:
                - type: string
                  description: >-
                    Identifier to be communicated to 3DS Support in case
                    support/investigation is required
                  example: 3d29ece30a064ea68c3f5f4a9f785c6f
                - type: 'null'
          required:
            - success
            - statusCode
        error:
          oneOf:
            - type: object
              properties:
                code:
                  type: string
                  description: identification of the error
                message:
                  type: string
                  description: description of the error.
            - type: 'null'
    400_post_leads-opportunities:
      type: object
      description: response in case of Bad Request operation
      properties:
        data:
          type:
            - 'null'
            - object
        info:
          type: object
          required:
            - success
            - statusCode
          properties:
            success:
              type: boolean
              description: indicator whether request is successful or not.
              example: false
            statusCode:
              type: integer
              description: HTTP Code of the response
              example: 400
            timeStamp:
              type: string
              description: Timestamp of the query
              example: '2025-06-30T12:36:46.556Z'
            traceId:
              type: string
              description: >-
                Identifier to be communicated to 3DS Support in case
                support/investigation is required
              example: 3d29ece30a064ea68c3f5f4a9f785c6f
        error:
          type: object
          properties:
            code:
              type: string
              description: identification of the error
            message:
              type: string
              description: description of the error.
      required:
        - data
        - info
        - error
    406_leads-opportunities:
      type: object
      properties:
        info:
          type: object
          properties:
            success:
              type: boolean
              description: status of the operation
            statusCode:
              type: integer
              description: HTTP status code
            timeStamp:
              type: string
              description: timestamp of the operation
            traceId:
              type: string
              description: trace id to be provided for technical investigations.
        error:
          type: object
          properties:
            code:
              type: string
              description: error code
            message:
              type: string
              description: error message
        data:
          type: object
          properties:
            partnerLeadOpportunityId:
              type: 'null'
            dsLeadOpportunityId:
              type: 'null'
            action:
              type: 'null'
    503_leads-opportunities:
      type: object
      description: Service Unavailable
      properties:
        info:
          type: object
          properties:
            success:
              type: boolean
              description: boolean to indicate if request was successful or not.
              example: false
            statusCode:
              type: integer
              description: HTTP code of the response
              example: 503
            timestamp:
              type: string
              format: date-time
              description: Timestamp of the query
              example: '2025-06-30T12:36:46.556Z'
            traceId:
              type: string
              description: >-
                Identifier to be communicated to 3DS Support in case
                support/investigation is required
              example: 3d29ece30a064ea68c3f5f4a9f785c6f
        error:
          type: object
          properties:
            code:
              type: string
              example: ERR899
            message:
              type: string
              example: Service currently unavailable, please try again later.
        data:
          type: object
          properties:
            partnerLeadOpportunityId:
              description: >-
                Identification of the lead-opportunity in the CRM system of the
                3DS partner.
              type: 'null'
              example: null
            dsLeadOpportunityId:
              description: >-
                Identification of the lead-opportunity in 3DS System
                (MySalesPipeline).
              type: 'null'
              example: null
            action:
              description: categorisation of the action performed
              type: 'null'
              example: null
      required:
        - error
        - info
    200_get_leads-opportunities:
      type: object
      description: Response in case of a successful get operation on leadsOpportunities
      required:
        - data
        - info
      properties:
        data:
          type: object
          properties:
            leadOpportunity:
              type: object
              properties:
                partnerLeadOpportunityId:
                  $ref: '#/components/schemas/partnerLeadOpportunityId'
                dsLeadOpportunityId:
                  type:
                    - string
                    - 'null'
                  description: 3DS id of the lead-opportunity
                  example: 5ZOQ-LF35OK
                name:
                  type:
                    - string
                    - 'null'
                  description: Name assigned to the lead-opportunity
                  example: Projekt Big-Picture Topic + MBSE (STEP 1+2)
                dsOwnerEmail:
                  type:
                    - string
                    - 'null'
                  description: email of the 3DS Partner Sales Manager (PSM)
                  example: john.doe@3ds.com
                status:
                  $ref: '#/components/schemas/lead-opportunity-status'
                  example: LEAD_OPEN
                forecastCategory:
                  $ref: '#/components/schemas/forecastCategory'
                  example: UPSIDE
                closeDate:
                  type:
                    - string
                    - 'null'
                  example: '2025-06-30'
                  description: >-
                    expected date for the closing of the sale in ISO 8601 format
                    (YYYY-MM-DD)
                cometCampaignCode:
                  type:
                    - string
                    - 'null'
                  description: COMET Campaign code
                  example: OC2DE17TAQ1C13018
                reasonWon:
                  type:
                    - array
                    - 'null'
                  items:
                    $ref: '#/components/schemas/reason_won'
                reasonLost:
                  type:
                    - array
                    - 'null'
                  items:
                    $ref: '#/components/schemas/reason_lost'
                competitors:
                  type:
                    - array
                    - 'null'
                  description: List of the competitors
                  items:
                    type: string
                reasonWonLostComment:
                  type:
                    - string
                    - 'null'
                  description: Comment associated to WON or LOST reasons
                  example: The Customer has no budget
                gtmTacticId:
                  type:
                    - string
                    - 'null'
                  description: identification of GoToMarket.
                description:
                  type:
                    - string
                    - 'null'
                  description: description associated to the lead-opportunity
                  example: Projekt Dashboard - Big-Picture TopicPilotprojekt
                nextMilestone:
                  type:
                    - string
                    - 'null'
                  description: Description of the next activity to be done
                  example: Next activity is to make a demo to the Customer
                nextMilestoneDate:
                  type:
                    - string
                    - 'null'
                  description: Next Milestone date in ISO 8601 format (YYYY-MM-DD)
                  example: '2025-06-15'
                currency:
                  $ref: '#/components/schemas/currency'
                approvalStatus:
                  type:
                    - string
                    - 'null'
                engagementType:
                  type:
                    - string
                    - 'null'
                poInformation:
                  type:
                    - string
                    - 'null'
                poStatus:
                  type:
                    - string
                    - 'null'
                poNumber:
                  type:
                    - string
                    - 'null'
                sboIndicator:
                  type:
                    - string
                    - 'null'
                sboStatus:
                  type:
                    - string
                    - 'null'
                sboNumber:
                  type:
                    - string
                    - 'null'
                growthType:
                  type:
                    - string
                    - 'null'
                leadPriority:
                  type:
                    - string
                    - 'null'
                levelOfInterest:
                  type:
                    - string
                    - 'null'
                dsComment:
                  type:
                    - string
                    - 'null'
                partnerImportMode:
                  type:
                    - string
                    - 'null'
                createdDate:
                  type:
                    - string
                    - 'null'
                modifiedDate:
                  type:
                    - string
                    - 'null'
                offerLines:
                  type:
                    - array
                    - 'null'
                  description: array of the various Offer Lines.
                  items:
                    type: object
                    $ref: '#/components/schemas/offerLine'
                customerLegalEntity:
                  $ref: '#/components/schemas/customerLegalEntity'
                customerContact:
                  type:
                    - array
                    - 'null'
                  description: Customer Contact(s) informations
                  items:
                    $ref: '#/components/schemas/customerContact'
                partnerContact:
                  type:
                    - array
                    - 'null'
                  description: Partner Contact(s) informations
                  items:
                    $ref: '#/components/schemas/partnerContact'
        info:
          type: object
          properties:
            success:
              type: boolean
              description: status of the operation
            statusCode:
              type: integer
              description: HTTP status code
            timeStamp:
              type:
                - 'null'
                - string
              description: timestamp of the operation
            traceId:
              type: 'null'
              description: trace id to be provided for technical investigations.
        error:
          type: 'null'
          description: no error in case of succees
    500_get_leads-opportunities:
      type: object
      description: Response in case of Bad Request for retrieving lead-opportunity details
      required:
        - data
        - info
        - error
      properties:
        partnerId:
          type: 'null'
        data:
          type: 'null'
        info:
          type: object
          required:
            - success
            - statusCode
          properties:
            success:
              type: boolean
            statusCode:
              type: integer
            timeStamp:
              type: string
            traceId:
              type: string
        error:
          type: object
          properties:
            code:
              type: string
              description: Error code
            message:
              type: string
              description: Human readable error message
    lead-opportunity_patch:
      type: object
      description: |
        Core attributes of the lead-opportunity in case of update.
      allOf:
        - $ref: '#/components/schemas/lead-opportunity_attributes'
        - type: object
      required:
        - partnerLeadOpportunityId
    patch_leads-opportunities_data:
      description: Request body schema for updating leads-opportunities
      type: object
      properties:
        partnerId:
          type: string
          description: Identification of partner LegalEntity in 3DS system.
          example: '200000000014442'
        leadOpportunity:
          type: object
          description: Specific attributes of the lead-opportunity in case of update
          $ref: '#/components/schemas/lead-opportunity_patch'
        offerLines:
          type: array
          description: array of the various Offer Lines.
          items:
            type: object
            $ref: '#/components/schemas/offerLine'
        customerLegalEntity:
          $ref: '#/components/schemas/customerLegalEntity'
        customerContacts:
          type: array
          description: Customer Contact(s) informations
          items:
            $ref: '#/components/schemas/customerContact'
        partnerContacts:
          type: array
          description: Partner Contact(s) informations
          items:
            $ref: '#/components/schemas/partnerContact'
      required:
        - leadOpportunity
    200_patch_leads-opportunities:
      type: object
      description: >-
        Response in case of successful update operation on lead-Opportunities
        object
      required:
        - data
        - info
      properties:
        data:
          type: object
          properties:
            partnerLeadOpportunityId:
              type: string
            dsLeadOpportunityId:
              type: string
            action:
              type: string
        info:
          type: object
          properties:
            success:
              type: boolean
              description: status of the operation
            statusCode:
              type: integer
              description: HTTP status code
            timeStamp:
              type:
                - 'null'
                - string
              description: timestamp of the operation
            traceId:
              type: 'null'
              description: trace id to be provided for technical investigations.
        error:
          type: 'null'
          description: no error in case of succees
    400_patch_leads-opportunities:
      type: object
      description: >-
        Response in case of Bad Request operation for updating
        leadsOpportunities object
      required:
        - data
        - info
        - errors
      properties:
        data:
          type: object
        info:
          type: object
          required:
            - success
            - statusCode
          properties:
            success:
              type: boolean
            statusCode:
              type: integer
            estimateSearchCount:
              type: integer
        errors:
          type: object
    post_leads-opportunities_search:
      description: Request body schema for searching leads-opportunities
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              modifiedDate:
                type: object
                description: >-
                  Search criterion on the last modification date/time of the
                  leads-opportunities.


                  The maximum time window allowed for the search is **1 week / 7
                  days** (between `fromDate`and `toDate`, calculated time to
                  time).

                  Both lower (`fromDate`) and upper (`toDate`) bounds need to be
                  provided as no implict range calculation is done.

                  Lower and upper bounds need to be consistent : `fromDate` has
                  to be anterior to `toDate`.
                properties:
                  fromDate:
                    type: string
                    format: date-time
                    description: >-
                      Lower bound to be considererd for the last modification
                      date/time of the leads-opportunities.

                      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).
                    example: '2024-08-01T14:30:00Z'
                  toDate:
                    type: string
                    format: date-time
                    description: >-
                      Upper bound to be considererd for the last modification
                      date/time of the leads-opportunities.

                      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).
                    example: '2024-08-08T08:30:00Z'
                required:
                  - fromDate
                  - toDate
              partnerLeadOpportunityId:
                type:
                  - array
                  - string
                description: >-
                  Search criterion on the id of the leads-opportunities as
                  defined in partner CRM System.


                  This search criterion can be used for 2 main use cases :

                  - Exact search for a particular lead-opportunitity id from
                  Partner CRM system.
                    - Set the exact id searched for (e.g "PARTNER-ID-1234")
                  - Retrieval of all leads-opportunitities that do not have a
                  partnerLeadOpportunityId defined in 3DS CRM application
                  (MySalesPipeline).
                    - These are typically marketing leads on which update by Partner could be required.
                    - Simply set an empty string ("")
                examples:
                  - PARTNER-ID-1234
                  - ''
            anyOf:
              - required:
                  - modifiedDate
              - required:
                  - partnerLeadOpportunityId
      required:
        - data
    200_post_leads-opportunities_search:
      description: Response body schema for searching leads-opportunities
      type: object
      properties:
        info:
          type: object
          properties:
            success:
              type: boolean
              description: status of the operation
            statusCode:
              type: integer
              description: HTTP status code
            timeStamp:
              type:
                - string
              description: timestamp of the operation
            traceId:
              type: string
              description: trace id to be provided for technical investigations.
        error:
          type: 'null'
          description: no error in case of succees
        data:
          type: array
          items:
            type: object
            description: >-
              3DS lead-opportunities list of id corresponding to the search
              criteria
            properties:
              dsLeadOpportunityId:
                type: array
                description: list of Ids
                items:
                  type: string
      required:
        - data
        - info
    portfolio-items_data:
      type: object
      description: A sales portfolio-item.
      properties:
        salesPortfolioType:
          type: string
          description: type of portfolio item
          example: Brand
        salesPortfolioInfrastructure:
          type: string
          description: infrastructure type
          example: On Premise
        salesPortfolioisOrderable:
          type: boolean
          description: Whether or not the item can be ordered
          example: true
        salesPortfolioLevel1:
          type: string
          description: Level 1 of the description of the portfolio item
          example: 3DEXPERIENCE
        salesPortfolioLevel2:
          type: string
          description: Level 2 of the description of the portfolio item
          example: Simulation
        salesPortfolioLevel3:
          type: string
          description: Level 3 of the description of the portfolio item
          example: Design to Manufacturing Process
        salesPortfolioId:
          type: string
          description: type of portfolio item
          example: CLASS00002_ONPR_PRTF077_SOL001277
    info_response_base_attributes:
      type: object
      description: Global Information on the operation requested.
      properties:
        success:
          type: boolean
          description: true if operation succeeded or false in case of error.
          example: true
        statusCode:
          type: integer
          description: HTTP return code of the operation
          example: 200
        estimatedSearchCount:
          type: integer
          description: Total number of Results.
          example: 6027
    info_response_portfolio-items:
      allOf:
        - $ref: '#/components/schemas/info_response_base_attributes'
        - type: object
          properties:
            timeStamp:
              type: string
              format: date-time
              description: Timestamp of the operation.
              example: '2025-08-14T07:45:59.000Z'
      required:
        - success
        - statusCode
        - timeStamp
        - estimatedSearchCount
    200_get_portfolio-items_search:
      type: object
      description: Response in case of a successful search operation on portfolio-items
      required:
        - data
        - info
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/portfolio-items_data'
        info:
          $ref: '#/components/schemas/info_response_portfolio-items'
    400_get_portfolio-items_search:
      type: object
      description: >-
        Response in case of Bad Request operation for updating
        leadsOpportunities object
      required:
        - info
        - error
      properties:
        info:
          $ref: '#/components/schemas/info_response_portfolio-items'
        error:
          type: object
          properties:
            code:
              type: string
              description: Error code
              example: ERROR_004
            message:
              type: string
              description: Human readable error message
              example: '#top should be a positive, non zero integer'
          required:
            - code
            - message
  examples:
    post_leads-opportunities_lead:
      summary: Basic Request for Creation of a lead
      description: >-
        Minimal Request with mandatory attributes to create a lead with a single
        Offer Line, no customer Contact or partner contact.
      value:
        partnerId: '200000000014442'
        leadOpportunity:
          partnerLeadOpportunityId: PARTNER-CRM-LEAD-1A8R
          name: Projekt Big-Picture Topic + MBSE (STEP 1+2)
          status: LEAD_OPEN
          closeDate: '2025-06-01T18:46:51.326Z'
          description: Projekt Dashboard - Big-Picture TopicPilotprojekt
          currency: EUR
        offerLines:
          - amount: 13800
            offerNameId: 3DEXPERIENCE_Design/Engineering_On_Premise
            revenueType: UPFRONT
        customerLegalEntity:
          name: NEW CUSTOMER CORPORATION
          city: Stockdorf
          country: Germany
    post_leads-opportunities_oppy:
      summary: Request for creation of an opportunity.
      description: >-
        Minimal Request with mandatory attributes to create an ooportunity with
        a single Offer Line
      value:
        partnerId: '200000000014442'
        leadOpportunity:
          partnerLeadOpportunityId: PARTNER-CRM-OPPY-1A8R
          name: Transformation Project at NewCustomer
          status: OPPY_OPEN
          closeDate: '2025-06-01T18:46:51.326Z'
          currency: EUR
        offerLines:
          - amount: 5490
            offerNameId: 3DEXPERIENCE_Design/Engineering_On_Premise
            revenueType: RENTAL_BOOKING
        customerLegalEntity:
          name: string
          city: PARIS
          country: FRANCE
    patch_update-lead_status:
      summary: Example 1, updates status of lead.
      description: >-
        Basic example of request body to update an existing lead-opportunity
        object.
      value:
        leadOpportunity:
          partnerLeadOpportunityId: CRM-LEAD-1234
          status: QUALIFIED
    patch_update-lead_nextMilestone:
      summary: Example 2, updates nextMilestone of lead (date & action)
      description: >
        Basic example of request body to update an existing lead-opportunity
        object.

        Note : only identification attributes of the lead-opportunity + modified
        attributes are required.
      value:
        leadOpportunity:
          partnerLeadOpportunityId: CRM-LEAD-1234
          nextMilestone: Customer Demo
          nextMilestoneDate: '2025-06-01T18:46:51.326Z'
x-tagGroups:
  - name: Authentication
    tags:
      - apikeys
  - name: Order
    tags:
      - orders
      - price-lists
      - accreditations
  - name: Sales
    tags:
      - leads-opportunities
      - portfolio-items
  - name: Schemas
    tags:
      - Schemas
