OpenAPI Specification
openapi: 3.1.0
info:
title: TD SYNNEX StreamOne Ion Authentication Customers 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: Customers
description: End customer account management
paths:
/v3/accounts/{accountId}/customers:
get:
operationId: listCustomers
summary: List Customers
description: Retrieve a paginated list of all end customers for the reseller account.
tags:
- Customers
parameters:
- $ref: '#/components/parameters/accountId'
- name: page
in: query
schema:
type: integer
default: 1
description: Page number for pagination.
- name: pageSize
in: query
schema:
type: integer
default: 20
description: Number of records per page.
- name: status
in: query
schema:
type: string
description: Filter customers by status.
responses:
'200':
description: List of customers
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerList'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
post:
operationId: createCustomer
summary: Create Customer
description: Create a new end customer account under the reseller account.
tags:
- Customers
parameters:
- $ref: '#/components/parameters/accountId'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerCreate'
responses:
'201':
description: Customer created
content:
application/json:
schema:
$ref: '#/components/schemas/Customer'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
/v3/accounts/{accountId}/customers/{customerId}:
get:
operationId: getCustomer
summary: Get Customer
description: Retrieve details for a specific end customer.
tags:
- Customers
parameters:
- $ref: '#/components/parameters/accountId'
- $ref: '#/components/parameters/customerId'
responses:
'200':
description: Customer details
content:
application/json:
schema:
$ref: '#/components/schemas/Customer'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
put:
operationId: updateCustomer
summary: Update Customer
description: Update an existing end customer account.
tags:
- Customers
parameters:
- $ref: '#/components/parameters/accountId'
- $ref: '#/components/parameters/customerId'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerUpdate'
responses:
'200':
description: Customer updated
content:
application/json:
schema:
$ref: '#/components/schemas/Customer'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
/v3/accounts/{accountId}/customers/{customerId}/cloudProfiles:
get:
operationId: getCustomerCloudProfiles
summary: Get Customer Cloud Profiles
description: Retrieve cloud provider profiles associated with a customer.
tags:
- Customers
parameters:
- $ref: '#/components/parameters/accountId'
- $ref: '#/components/parameters/customerId'
responses:
'200':
description: Customer cloud profiles
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/CloudProfile'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
components:
responses:
Forbidden:
description: Forbidden - insufficient permissions
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
Unauthorized:
description: Unauthorized - invalid or expired token
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
NotFound:
description: Resource not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
BadRequest:
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
schemas:
Customer:
type: object
properties:
id:
type: string
name:
type: string
email:
type: string
format: email
status:
type: string
enum:
- Active
- Inactive
- Suspended
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
address:
$ref: '#/components/schemas/Address'
Pagination:
type: object
properties:
page:
type: integer
pageSize:
type: integer
totalRecords:
type: integer
totalPages:
type: integer
CustomerUpdate:
type: object
properties:
name:
type: string
email:
type: string
format: email
phone:
type: string
status:
type: string
address:
$ref: '#/components/schemas/Address'
Address:
type: object
properties:
street:
type: string
city:
type: string
state:
type: string
postalCode:
type: string
country:
type: string
Error:
type: object
properties:
code:
type: string
message:
type: string
details:
type: array
items:
type: string
CloudProfile:
type: object
properties:
id:
type: string
provider:
type: string
enum:
- Microsoft
- Google
- AWS
externalId:
type: string
status:
type: string
CustomerCreate:
type: object
required:
- name
- email
properties:
name:
type: string
email:
type: string
format: email
phone:
type: string
address:
$ref: '#/components/schemas/Address'
CustomerList:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Customer'
pagination:
$ref: '#/components/schemas/Pagination'
parameters:
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.
securitySchemes:
BearerAuth:
type: http
scheme: bearer
description: OAuth 2.0 bearer token obtained via the /oauth/token endpoint.