Tech Data Orders API
Order creation, management, and cancellation
Order creation, management, and cancellation
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.