OpenAPI Specification
openapi: 3.1.0
info:
title: TD SYNNEX StreamOne Ion Authentication Carts 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: Carts
description: Shopping cart management
paths:
/v3/accounts/{accountId}/carts:
get:
operationId: listCarts
summary: List Carts
description: Retrieve all shopping carts for the account.
tags:
- Carts
parameters:
- $ref: '#/components/parameters/accountId'
responses:
'200':
description: List of carts
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Cart'
'401':
$ref: '#/components/responses/Unauthorized'
post:
operationId: createCart
summary: Create Cart
description: Create a new shopping cart for the account.
tags:
- Carts
parameters:
- $ref: '#/components/parameters/accountId'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CartCreate'
responses:
'201':
description: Cart created
content:
application/json:
schema:
$ref: '#/components/schemas/Cart'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
/v3/accounts/{accountId}/carts/{cartId}:
get:
operationId: getCart
summary: Get Cart
description: Retrieve details for a specific shopping cart.
tags:
- Carts
parameters:
- $ref: '#/components/parameters/accountId'
- $ref: '#/components/parameters/cartId'
responses:
'200':
description: Cart details
content:
application/json:
schema:
$ref: '#/components/schemas/Cart'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
put:
operationId: updateCart
summary: Update Cart
description: Update an existing shopping cart.
tags:
- Carts
parameters:
- $ref: '#/components/parameters/accountId'
- $ref: '#/components/parameters/cartId'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CartUpdate'
responses:
'200':
description: Cart updated
content:
application/json:
schema:
$ref: '#/components/schemas/Cart'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
/v3/accounts/{accountId}/carts/{cartId}/checkout:
post:
operationId: checkoutCart
summary: Checkout Cart
description: Submit a shopping cart to create an order.
tags:
- Carts
parameters:
- $ref: '#/components/parameters/accountId'
- $ref: '#/components/parameters/cartId'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
notes:
type: string
description: Optional order notes.
responses:
'201':
description: Order created from cart
content:
application/json:
schema:
$ref: '#/components/schemas/Order'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
components:
schemas:
Cart:
type: object
properties:
id:
type: string
accountId:
type: string
customerId:
type: string
status:
type: string
enum:
- Active
- Checked Out
- Expired
total:
type: number
format: float
currency:
type: string
itemCount:
type: integer
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
Error:
type: object
properties:
code:
type: string
message:
type: string
details:
type: array
items:
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
CartCreate:
type: object
required:
- customerId
properties:
customerId:
type: string
notes:
type: string
CartUpdate:
type: object
properties:
notes:
type: string
status:
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
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'
parameters:
accountId:
name: accountId
in: path
required: true
schema:
type: string
description: The reseller account identifier.
cartId:
name: cartId
in: path
required: true
schema:
type: string
description: The cart identifier.
securitySchemes:
BearerAuth:
type: http
scheme: bearer
description: OAuth 2.0 bearer token obtained via the /oauth/token endpoint.