TD SYNNEX Orders API

Order creation and management

OpenAPI Specification

td-synnex-orders-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: TD SYNNEX StreamOne Ion Partner Authentication Orders API
  description: The StreamOne Ion Partner API provides partners with programmatic access to TD SYNNEX cloud distribution services. Partners can manage end customers, browse product catalogs, create and manage orders, track subscriptions, manage shopping carts, and access business intelligence reports through a unified REST interface supporting multiple cloud vendors. The API enables MSPs, resellers, and technology partners to automate their cloud distribution workflows.
  version: '3'
  contact:
    name: TD SYNNEX StreamOne Support
    url: https://www.tdsynnex.com/ion/api/
servers:
- url: https://ion.tdsynnex.com
  description: TD SYNNEX StreamOne Ion Production API
security:
- OAuth2: []
tags:
- name: Orders
  description: Order creation and management
paths:
  /v3/accounts/{accountId}/orders:
    get:
      operationId: listOrders
      summary: List Orders
      description: Retrieve all orders associated with the partner account.
      tags:
      - Orders
      parameters:
      - $ref: '#/components/parameters/AccountId'
      - name: status
        in: query
        description: Filter by order status
        schema:
          type: string
      - name: page
        in: query
        schema:
          type: integer
      - name: pageSize
        in: query
        schema:
          type: integer
      responses:
        '200':
          description: List of orders
          content:
            application/json:
              schema:
                type: object
                properties:
                  orders:
                    type: array
                    items:
                      $ref: '#/components/schemas/Order'
                  totalCount:
                    type: integer
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: createOrder
      summary: Create Order
      description: Create a new technology product order.
      tags:
      - Orders
      parameters:
      - $ref: '#/components/parameters/AccountId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrderRequest'
      responses:
        '201':
          description: Order created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Order'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /v3/accounts/{accountId}/customers/{customerId}/orders:
    get:
      operationId: listCustomerOrders
      summary: List Customer Orders
      description: Fetch all orders for a specific customer.
      tags:
      - Orders
      parameters:
      - $ref: '#/components/parameters/AccountId'
      - $ref: '#/components/parameters/CustomerId'
      responses:
        '200':
          description: List of customer orders
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Order'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /v3/accounts/{accountId}/orders/{orderId}:
    get:
      operationId: getOrder
      summary: Get Order
      description: Retrieve details for a specific order.
      tags:
      - Orders
      parameters:
      - $ref: '#/components/parameters/AccountId'
      - $ref: '#/components/parameters/OrderId'
      responses:
        '200':
          description: Order details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Order'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: updateOrder
      summary: Update Order
      description: Modify an existing order (e.g., update license counts, renewal settings).
      tags:
      - Orders
      parameters:
      - $ref: '#/components/parameters/AccountId'
      - $ref: '#/components/parameters/OrderId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrderRequest'
      responses:
        '200':
          description: Order updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Order'
        '401':
          $ref: '#/components/responses/Unauthorized'
    delete:
      operationId: cancelOrder
      summary: Cancel Order
      description: Cancel a pending order.
      tags:
      - Orders
      parameters:
      - $ref: '#/components/parameters/AccountId'
      - $ref: '#/components/parameters/OrderId'
      responses:
        '200':
          description: Order cancelled
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  schemas:
    Order:
      type: object
      description: A technology product order
      properties:
        orderId:
          type: string
        customerId:
          type: string
        status:
          type: string
          enum:
          - PENDING
          - PROCESSING
          - COMPLETED
          - CANCELLED
          - FAILED
        items:
          type: array
          items:
            $ref: '#/components/schemas/OrderItem'
        totalAmount:
          type: number
          format: double
        currency:
          type: string
        createdDate:
          type: string
          format: date-time
        modifiedDate:
          type: string
          format: date-time
    Error:
      type: object
      properties:
        code:
          type: string
          description: Error code
        message:
          type: string
          description: Human-readable error message
        details:
          type: array
          items:
            type: string
    OrderRequest:
      type: object
      required:
      - customerId
      - items
      properties:
        customerId:
          type: string
        items:
          type: array
          items:
            type: object
            properties:
              productId:
                type: string
              quantity:
                type: integer
        notes:
          type: string
    OrderItem:
      type: object
      properties:
        productId:
          type: string
        quantity:
          type: integer
        unitPrice:
          type: number
          format: double
        totalPrice:
          type: number
          format: double
  responses:
    NotFound:
      description: Not Found - Requested resource does not exist
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    BadRequest:
      description: Bad Request - Invalid request parameters or body
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Unauthorized - Valid OAuth 2.0 token required
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  parameters:
    CustomerId:
      name: customerId
      in: path
      required: true
      description: End customer identifier
      schema:
        type: string
    AccountId:
      name: accountId
      in: path
      required: true
      description: Partner account identifier
      schema:
        type: string
    OrderId:
      name: orderId
      in: path
      required: true
      description: Order identifier
      schema:
        type: string
  securitySchemes:
    OAuth2:
      type: oauth2
      description: TD SYNNEX StreamOne Ion uses OAuth 2.0 with refresh token flow
      flows:
        clientCredentials:
          tokenUrl: https://ion.tdsynnex.com/oauth/token
          scopes:
            read: Read access to partner resources
            write: Write access to create and update resources