openapi: 3.1.0 info: title: TD SYNNEX StreamOne Ion Authentication Orders API description: The StreamOne Ion API provides reseller partners with programmatic access to TD SYNNEX's cloud distribution platform. Partners can manage end customers, browse product catalogs, create and manage orders, handle subscriptions, configure cloud provider accounts, manage shopping carts, and access billing reports. The API supports multi-vendor cloud management across Microsoft, Google, and AWS through a unified interface. version: v3 contact: name: TD SYNNEX StreamOne Ion url: https://docs.streamone.cloud/ license: name: TD SYNNEX Terms of Service url: https://eu.tdsynnex.com/CatAdminHtmlContentEditor/uploads/Country/COM/NEW%20Terms-and-Conditions/StreamOne/Partner%20API%20Service%20Specification%20Addendum%20to%20ION%20Platform%20Agreement.pdf servers: - url: https://ion.tdsynnex.com/api description: TD SYNNEX StreamOne Ion Production security: - BearerAuth: [] tags: - name: Orders description: Order creation, management, and cancellation paths: /v3/accounts/{accountId}/orders: get: operationId: listAccountOrders summary: List Account Orders description: Retrieve a paginated list of all orders for the account. tags: - Orders parameters: - $ref: '#/components/parameters/accountId' - name: page in: query schema: type: integer default: 1 - name: pageSize in: query schema: type: integer default: 20 - name: status in: query schema: type: string description: Filter orders by status. responses: '200': description: List of orders content: application/json: schema: $ref: '#/components/schemas/OrderList' '401': $ref: '#/components/responses/Unauthorized' post: operationId: createOrder summary: Create Order description: Create a new order for the account. tags: - Orders parameters: - $ref: '#/components/parameters/accountId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/OrderCreate' responses: '201': description: Order created content: application/json: schema: $ref: '#/components/schemas/Order' '400': $ref: '#/components/responses/BadRequest' '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: Update an existing order before it is processed. tags: - Orders parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/orderId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/OrderUpdate' responses: '200': description: Order updated content: application/json: schema: $ref: '#/components/schemas/Order' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' delete: operationId: cancelOrder summary: Cancel Order description: Cancel an existing order that has not yet been processed. tags: - Orders parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/orderId' responses: '204': description: Order cancelled '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /v3/accounts/{accountId}/customers/{customerId}/orders: get: operationId: listCustomerOrders summary: List Customer Orders description: Retrieve all orders placed for a specific customer. tags: - Orders parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/customerId' - name: page in: query schema: type: integer default: 1 - name: pageSize in: query schema: type: integer default: 20 responses: '200': description: List of customer orders content: application/json: schema: $ref: '#/components/schemas/OrderList' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' components: schemas: OrderList: type: object properties: data: type: array items: $ref: '#/components/schemas/Order' pagination: $ref: '#/components/schemas/Pagination' OrderItemCreate: type: object required: - productId - quantity properties: productId: type: string quantity: type: integer provisioningData: type: object additionalProperties: true Pagination: type: object properties: page: type: integer pageSize: type: integer totalRecords: type: integer totalPages: type: integer Error: type: object properties: code: type: string message: type: string details: type: array items: type: string OrderCreate: type: object required: - customerId - items properties: customerId: type: string items: type: array items: $ref: '#/components/schemas/OrderItemCreate' notes: type: string Order: type: object properties: id: type: string accountId: type: string customerId: type: string status: type: string enum: - Draft - Submitted - Processing - Completed - Cancelled total: type: number format: float currency: type: string items: type: array items: $ref: '#/components/schemas/OrderItem' createdAt: type: string format: date-time updatedAt: type: string format: date-time OrderUpdate: type: object properties: items: type: array items: $ref: '#/components/schemas/OrderItemCreate' notes: type: string OrderItem: type: object properties: id: type: string productId: type: string productName: type: string quantity: type: integer unitPrice: type: number format: float totalPrice: type: number format: float parameters: orderId: name: orderId in: path required: true schema: type: string description: The order identifier. accountId: name: accountId in: path required: true schema: type: string description: The reseller account identifier. customerId: name: customerId in: path required: true schema: type: string description: The customer account identifier. responses: NotFound: description: Resource not found content: application/json: schema: $ref: '#/components/schemas/Error' Unauthorized: description: Unauthorized - invalid or expired token content: application/json: schema: $ref: '#/components/schemas/Error' BadRequest: description: Bad request content: application/json: schema: $ref: '#/components/schemas/Error' securitySchemes: BearerAuth: type: http scheme: bearer description: OAuth 2.0 bearer token obtained via the /oauth/token endpoint.