Skip to main content
Tools Reference

TD SYNNEX Tools

Written By Christopher Scaminaci

Last updated 7 days ago

TD SYNNEX Tools

tds_ · 37 tools · Free 27 · Pro 10 Two separately-entitled TD SYNNEX surfaces in one connector; configure either or both. The StreamOne ION cloud marketplace tools take a refresh token from the ION portal as their whole credential - no client id or secret is used. That token is single-use, rotates on every refresh and expires after 32 days of disuse, so a connection left idle needs fresh OAuth credentials from the portal. The reseller account id is part of the credential and can be overridden per call. Paging is pageSize with a page token, capped at 100 here. The legacy SYNNEX hardware tools - price and availability, freight quote, purchase-order status and submit - use an ECExpress customer number, username and password carried inside the request document, with region and environment stored as codes for US or Canada and production or test. Their XML answers are converted to JSON. TD SYNNEX must enable that surface for the account separately. The Digital Bridge API is not covered.

All connector tools · TD SYNNEX setup guide

TD SYNNEX tool groups

End Customers

ToolPlanAccessSummary
tds_ion_create_customerProWriteCreate a new end customer under a StreamOne ION reseller account.
tds_ion_get_customerFreeRead-onlyGet a single StreamOne ION end customer by id, including its organization name, address, primary contact, language and status.
tds_ion_get_customer_cloud_profilesFreeRead-onlyGet a StreamOne ION end customer's linked cloud-provider profiles — the per-vendor account details for Microsoft CSP, Google Workspace, Azure and so on, including tenant id, domain, delegated-access…
tds_ion_list_customersFreeRead-onlyList the end customers under a StreamOne ION reseller account, in ascending order of creation date.
tds_ion_update_customerProWriteUpdate an existing StreamOne ION end customer.

[TD SYNNEX] Create a new end customer under a StreamOne ION reseller account. bodyJson is the request body — typically { customerOrganization, customerName, customerEmail, customerPhone, languageCode, customerAddress: { street, city, state, zip, country } }. Returns the created customer JSON including its new id and resource name. accountId defaults to the account saved with your TD SYNNEX credentials.

ParamTypeRequiredDefaultDescription
accountIdstringnonullReseller account id. Defaults to the account id saved with your credentials.
bodyJsonstringyesBody JSON, e.g. { customerOrganization, customerName, customerEmail, customerPhone, languageCode, customerAddress: { street, city, state, zip, country } }.

[TD SYNNEX] Get a single StreamOne ION end customer by id, including its organization name, address, primary contact, language and status. customerId comes from tds_ion_list_customers. accountId defaults to the account saved with your TD SYNNEX credentials.

ParamTypeRequiredDefaultDescription
accountIdstringnonullReseller account id. Defaults to the account id saved with your credentials.
customerIdstringyesThe customer id (from tds_ion_list_customers).

[TD SYNNEX] Get a StreamOne ION end customer's linked cloud-provider profiles — the per-vendor account details for Microsoft CSP, Google Workspace, Azure and so on, including tenant id, domain, delegated-access and agreement status. providerId is REQUIRED by StreamOne ION and identifies which cloud provider to report on (for example 30 for Microsoft CSP); tds_ion_list_provision_templates and the customer's cloud-provider record are where provider ids come from. Set enabledOnly true to return only the customer's active profiles. Note that complete profile detail requires the 'Enable provider in customer portal' toggle to be on for that provider in the TD SYNNEX portal. customerId comes from tds_ion_list_customers. accountId defaults to the account saved with your TD SYNNEX credentials.

ParamTypeRequiredDefaultDescription
accountIdstringnonullReseller account id. Defaults to the account id saved with your credentials.
customerIdstringyesThe customer id (from tds_ion_list_customers).
enabledOnlybooleannonullWhen true, return only the customer's active cloud profiles.
providerIdstringyesREQUIRED cloud provider id, e.g. 30 for Microsoft CSP.

[TD SYNNEX] List the end customers under a StreamOne ION reseller account, in ascending order of creation date. StreamOne ION REQUIRES a page size on this call. Cursor pagination: pass pageToken from the previous response's nextPageToken to get the next page. Optional filters narrow by customer email, name, status (e.g. ACTIVE, INACTIVE) or 2-letter language code. accountId defaults to the account saved with your TD SYNNEX credentials — only pass it to target a different reseller account. Use the returned customer ids with the order, subscription, cart and cloud-provider tools.

ParamTypeRequiredDefaultDescription
accountIdstringnonullReseller account id. Defaults to the account id saved with your credentials.
filterCustomerEmailstringnonullOptional filter: primary contact email address.
filterCustomerNamestringnonullOptional filter: primary contact name (first and last).
filterCustomerStatusstringnonullOptional filter: customer status, e.g. ACTIVE or INACTIVE.
filterLanguageCodestringnonullOptional filter: 2-letter preferred language code, e.g. EN.
pageSizeintegerno50Records per page (default 50, capped at 100). StreamOne ION requires a page size.
pageTokenstringnonullOpaque page token from the previous response's nextPageToken. Omit for the first page.

[TD SYNNEX] Update an existing StreamOne ION end customer. bodyJson is the request body carrying the fields to change (organization, contact name/email/phone, language code, address). Read the customer first with tds_ion_get_customer so you send a complete, current record. customerId comes from tds_ion_list_customers. accountId defaults to the account saved with your TD SYNNEX credentials.

ParamTypeRequiredDefaultDescription
accountIdstringnonullReseller account id. Defaults to the account id saved with your credentials.
bodyJsonstringyesBody JSON with the customer fields to set.
customerIdstringyesThe customer id to update (from tds_ion_list_customers).

Products & Catalog

ToolPlanAccessSummary
tds_ion_get_productFreeRead-onlyGet a single StreamOne ION product by id, including its versions, plans, SKUs and add-ons.
tds_ion_list_categoriesFreeRead-onlyList the product categories available to a StreamOne ION reseller account, each with a product count.
tds_ion_list_productsFreeRead-onlyList the cloud products available to a StreamOne ION reseller account.
tds_ion_list_verticalsFreeRead-onlyList the verticals available to a StreamOne ION reseller account.

[TD SYNNEX] Get a single StreamOne ION product by id, including its versions, plans, SKUs and add-ons. language selects the language of the returned product text; priceBookCustomerId returns pricing from a specific customer's price book; productVersion selects a product version (e.g. NCE). clientRole changes what is returned: CUSTOMER (the default when omitted) returns published products with price-book pricing, while OWNER returns product design information including unpublished versions and version identifiers but NO pricing. The five exclude flags trim the response (pricing, marketing, definition, version history, deployment) — useful for keeping large product payloads small. productId comes from tds_ion_list_products. accountId defaults to the account saved with your TD SYNNEX credentials.

ParamTypeRequiredDefaultDescription
accountIdstringnonullReseller account id. Defaults to the account id saved with your credentials.
clientRolestringnonullOptional retrieval mode: CUSTOMER (published products with pricing) or OWNER (design info incl. unpublished versions, no pricing).
excludeDefinitionbooleannonullWhen true, omit the product definition from the response.
excludeDeploymentbooleannonullWhen true, omit deployment detail from the response.
excludeMarketingbooleannonullWhen true, omit marketing content from the response.
excludePricingbooleannonullWhen true, omit pricing from the response.
excludeVersionHistorybooleannonullWhen true, omit version history from the response.
languagestringnonullOptional language for product text, e.g. en.
priceBookCustomerIdstringnonullOptional customer id whose price book should be applied to returned pricing.
productIdstringyesThe product id (from tds_ion_list_products).
productVersionstringnonullOptional product version, e.g. NCE.

[TD SYNNEX] List the product categories available to a StreamOne ION reseller account, each with a product count. Categories classify products by FUNCTION — security, cloud services, technology and so on. Compare with tds_ion_list_verticals, which classifies by industry segment instead. Takes no filters or paging. accountId defaults to the account saved with your TD SYNNEX credentials. This is also the read StackJack's Test Connection uses to validate TD SYNNEX credentials.

ParamTypeRequiredDefaultDescription
accountIdstringnonullReseller account id. Defaults to the account id saved with your credentials.

[TD SYNNEX] List the cloud products available to a StreamOne ION reseller account. Cursor pagination: pass pageToken from the previous response's nextPageToken. Optional filters narrow by product name, SKU or add-on (by id, display name, or the vendor's external id). language selects the language of the returned product text. For per-customer price-book pricing, read an individual product with tds_ion_get_product. accountId defaults to the account saved with your TD SYNNEX credentials. Use the returned product ids with tds_ion_get_product, and product plan names when building cart items or orders.

ParamTypeRequiredDefaultDescription
accountIdstringnonullReseller account id. Defaults to the account id saved with your credentials.
filterAddonDisplayNamestringnonullOptional filter: add-on display name.
filterAddonExternalIdstringnonullOptional filter: the cloud vendor's external add-on id.
filterAddonIdstringnonullOptional filter: add-on id.
filterNamestringnonullOptional filter: product name.
filterSkuDisplayNamestringnonullOptional filter: SKU display name.
filterSkuExternalIdstringnonullOptional filter: the cloud vendor's external SKU id.
filterSkuIdstringnonullOptional filter: SKU id.
languagestringnonullOptional language for product text, e.g. en.
pageSizeintegerno50Records per page (default 50, capped at 100).
pageTokenstringnonullOpaque page token from the previous response's nextPageToken. Omit for the first page.

[TD SYNNEX] List the verticals available to a StreamOne ION reseller account. Verticals classify products by INDUSTRY SEGMENT — commercial, corporate, education, charity and so on — and are used to tailor products and pricing per segment. Compare with tds_ion_list_categories, which classifies by function instead. Takes no filters or paging. accountId defaults to the account saved with your TD SYNNEX credentials.

ParamTypeRequiredDefaultDescription
accountIdstringnonullReseller account id. Defaults to the account id saved with your credentials.

Orders

ToolPlanAccessSummary
tds_ion_cancel_orderProDestructiveCancel a StreamOne ION order.
tds_ion_create_orderProDestructiveSubmit an order for a StreamOne ION end customer.
tds_ion_get_orderFreeRead-onlyGet a single StreamOne ION order by id, including its line items, quantities, status and pricing.
tds_ion_list_account_ordersFreeRead-onlyList orders across a whole StreamOne ION reseller account (all customers).
tds_ion_list_customer_ordersFreeRead-onlyList the orders belonging to ONE StreamOne ION end customer.

[TD SYNNEX] Cancel a StreamOne ION order. StreamOne ION only permits cancellation while the order status is NEW or ON_HOLD — in practice immediately after it was placed; a CONFIRMED, SHIPPING or COMPLETED order cannot be cancelled this way. This acts on a real order and may terminate the services it provisioned — confirm the order with tds_ion_get_order before cancelling. customerId comes from tds_ion_list_customers; orderId comes from tds_ion_list_account_orders or tds_ion_list_customer_orders. accountId defaults to the account saved with your TD SYNNEX credentials.

ParamTypeRequiredDefaultDescription
accountIdstringnonullReseller account id. Defaults to the account id saved with your credentials.
customerIdstringyesThe customer id owning the order (from tds_ion_list_customers).
orderIdstringyesThe order id to cancel (from tds_ion_list_account_orders / tds_ion_list_customer_orders).

[TD SYNNEX] Submit an order for a StreamOne ION end customer. THIS PLACES A REAL, BILLABLE ORDER. StreamOne ION uses this ONE endpoint for both creating and MODIFYING orders, so it also renews and amends existing subscriptions — the action field on each order item selects the intent (for example CREATE to buy, or the modify/renew/suspend/delete actions to change licence counts, change renewal settings, upgrade a plan tier, add an entitlement, or suspend/reactivate/delete a subscription). bodyJson is the request body: { referenceId, displayName, orderItems: [ { referenceId, productId, skuId, planId, action, quantity, providerName, attributes: [ { name, value } ] } ] }. Get productId/skuId/planId from tds_ion_list_products and tds_ion_get_product. customerId comes from tds_ion_list_customers. accountId defaults to the account saved with your TD SYNNEX credentials.

ParamTypeRequiredDefaultDescription
accountIdstringnonullReseller account id. Defaults to the account id saved with your credentials.
bodyJsonstringyesBody JSON: { referenceId, displayName, orderItems: [ { referenceId, productId, skuId, planId, action, quantity, providerName, attributes: [ { name, value } ] } ] }.
customerIdstringyesThe customer id to place the order for (from tds_ion_list_customers).

[TD SYNNEX] Get a single StreamOne ION order by id, including its line items, quantities, status and pricing. customerId comes from tds_ion_list_customers; orderId comes from tds_ion_list_account_orders or tds_ion_list_customer_orders. accountId defaults to the account saved with your TD SYNNEX credentials.

ParamTypeRequiredDefaultDescription
accountIdstringnonullReseller account id. Defaults to the account id saved with your credentials.
customerIdstringyesThe customer id owning the order (from tds_ion_list_customers).
orderIdstringyesThe order id (from tds_ion_list_account_orders / tds_ion_list_customer_orders).

[TD SYNNEX] List orders across a whole StreamOne ION reseller account (all customers). StreamOne ION REQUIRES a page size on this call. Cursor pagination: pass pageToken from the previous response's nextPageToken. Optional status filters to one of NEW, IN_PROGRESS, CONFIRMED, ON_HOLD, COMPLETED, ERROR or CANCELED. For a single customer's orders use tds_ion_list_customer_orders instead. accountId defaults to the account saved with your TD SYNNEX credentials.

ParamTypeRequiredDefaultDescription
accountIdstringnonullReseller account id. Defaults to the account id saved with your credentials.
pageSizeintegerno50Records per page (default 50, capped at 100). StreamOne ION requires a page size.
pageTokenstringnonullOpaque page token from the previous response's nextPageToken. Omit for the first page.
statusstringnonullOptional order status: NEW, IN_PROGRESS, CONFIRMED, ON_HOLD, COMPLETED, ERROR or CANCELED.

[TD SYNNEX] List the orders belonging to ONE StreamOne ION end customer. StreamOne ION REQUIRES a page size on this call. Cursor pagination: pass pageToken from the previous response's nextPageToken. Optional status filters to one of NEW, IN_PROGRESS, CONFIRMED, ON_HOLD, COMPLETED, ERROR or CANCELED. customerId comes from tds_ion_list_customers. accountId defaults to the account saved with your TD SYNNEX credentials.

ParamTypeRequiredDefaultDescription
accountIdstringnonullReseller account id. Defaults to the account id saved with your credentials.
customerIdstringyesThe customer id whose orders to list (from tds_ion_list_customers).
pageSizeintegerno50Records per page (default 50, capped at 100). StreamOne ION requires a page size.
pageTokenstringnonullOpaque page token from the previous response's nextPageToken. Omit for the first page.
statusstringnonullOptional order status: NEW, IN_PROGRESS, CONFIRMED, ON_HOLD, COMPLETED, ERROR or CANCELED.

Subscriptions

ToolPlanAccessSummary
tds_ion_get_customer_subscriptionFreeRead-onlyGet the full detail of one StreamOne ION subscription belonging to a specific end customer.
tds_ion_list_subscriptionsFreeRead-onlySearch subscriptions across a StreamOne ION reseller account.

[TD SYNNEX] Get the full detail of one StreamOne ION subscription belonging to a specific end customer. Set refresh true to have StreamOne ION update the subscription's data from the cloud vendor before returning it — use that when you suspect the cached view is stale, and leave it off for ordinary reads since it is slower. customerId comes from tds_ion_list_customers; subscriptionId comes from tds_ion_list_subscriptions. accountId defaults to the account saved with your TD SYNNEX credentials.

ParamTypeRequiredDefaultDescription
accountIdstringnonullReseller account id. Defaults to the account id saved with your credentials.
customerIdstringyesThe customer id owning the subscription (from tds_ion_list_customers).
refreshbooleannofalseWhen true, refresh the subscription's data from the cloud vendor before returning it (sent as a bare flag).
subscriptionIdstringyesThe subscription id (from tds_ion_list_subscriptions).

[TD SYNNEX] Search subscriptions across a StreamOne ION reseller account. Despite listing per-customer results, this is an ACCOUNT-level search: the customer is an optional filter rather than part of the path, so omitting every filter returns the account's subscriptions. NOTE this endpoint paginates with the cart-style dotted offset/limit window (paginationLimit is required and always sent) rather than the page tokens most of this API uses. Filter by customer, subscription, reseller, cloud provider id or name, subscription status (such as ACTIVE, SUSPENDED, CANCELLED, EXPIRED, PENDING, ERROR), billing term, account/customer/subscription name, resource type (such as AZURESubscription, GSUITEEntitlement, ACRONIS::Tenant), catalog product id, either purchase-order field, relative start/end date windows (such as TODAY, MONTH_TO_DATE, LAST_MONTH, YEAR_TO_DATE), or a custom field — for a custom field pass BOTH customFieldField (the key name) and customFieldValue. To change a subscription, submit an order with tds_ion_create_order. accountId defaults to the account saved with your TD SYNNEX credentials.

ParamTypeRequiredDefaultDescription
accountIdstringnonullReseller account id. Defaults to the account id saved with your credentials.
accountNamestringnonullOptional filter: account name.
billingTermstringnonullOptional filter: billing term, e.g. Monthly.
ccpProductIdstringnonullOptional filter: catalog product id.
cloudProviderNamestringnonullOptional filter: cloud provider name, e.g. AWS, GCP.
customFieldFieldstringnonullOptional custom-field key name to filter on. Pass together with customFieldValue.
customFieldValuestringnonullOptional custom-field value to match. Pass together with customFieldField.
customerIdstringnonullOptional filter: customer id (from tds_ion_list_customers).
customerNamestringnonullOptional filter: customer name.
customerPostringnonullOptional filter: the end customer's purchase order.
endDateRelativeDateRangestringnonullOptional filter: relative end-date window, same value set as the start-date window.
paginationFilterstringnonullOptional free-text filter applied across the results.
paginationLimitintegerno50Records to return (default 50, capped at 100). StreamOne ION requires a limit on this call.
paginationOffsetintegernonullOptional number of initial results to skip.
paginationSortBystringnonullOptional field to sort by, e.g. resourcetype.
paginationSortOrderstringnonullOptional sort direction: ASC or DESC.
paginationUserIdstringnonullOptional user id to scope the results to.
providerIdstringnonullOptional filter: cloud provider id.
resellerIdstringnonullOptional filter: reseller id.
resellerPostringnonullOptional filter: the reseller's purchase order.
resourceTypestringnonullOptional filter: resource type, e.g. AZURESubscription, GSUITEEntitlement, ACRONIS::Tenant.
startDateRelativeDateRangestringnonullOptional filter: relative start-date window, e.g. TODAY, MONTH_TO_DATE, QUARTER_TO_DATE, YEAR_TO_DATE, LAST_MONTH, LAST_QUARTER, LAST_YEAR, WEEK_TO_DATE, LAST_WEEK.
subscriptionIdstringnonullOptional filter: a specific subscription id.
subscriptionNamestringnonullOptional filter: subscription name.
subscriptionStatusstringnonullOptional filter: subscription status, e.g. ACTIVE, SUSPENDED, CANCELLED, EXPIRED, PENDING, ERROR.

Cloud Providers & Provisioning

ToolPlanAccessSummary
tds_ion_get_customer_cloud_providerFreeRead-onlyGet the cloud-provider linkage for a StreamOne ION end customer — the provider record tying that customer to a cloud vendor tenant.
tds_ion_get_provision_templateFreeRead-onlyGet one StreamOne ION provisioning template by id, including the parameter definitions the cloud vendor requires at provisioning time.
tds_ion_list_provision_templatesFreeRead-onlyList the provisioning templates available to a StreamOne ION reseller account.

[TD SYNNEX] Get the cloud-provider linkage for a StreamOne ION end customer — the provider record tying that customer to a cloud vendor tenant. customerId comes from tds_ion_list_customers; providerId is the cloud provider's id (visible on the customer's cloud profiles via tds_ion_get_customer_cloud_profiles). accountId defaults to the account saved with your TD SYNNEX credentials.

ParamTypeRequiredDefaultDescription
accountIdstringnonullReseller account id. Defaults to the account id saved with your credentials.
customerIdstringyesThe customer id (from tds_ion_list_customers).
providerIdstringyesThe cloud provider id (see tds_ion_get_customer_cloud_profiles).

[TD SYNNEX] Get one StreamOne ION provisioning template by id, including the parameter definitions the cloud vendor requires at provisioning time. templateId comes from tds_ion_list_provision_templates. accountId defaults to the account saved with your TD SYNNEX credentials.

ParamTypeRequiredDefaultDescription
accountIdstringnonullReseller account id. Defaults to the account id saved with your credentials.
templateIdstringyesThe provisioning template id (from tds_ion_list_provision_templates).

[TD SYNNEX] List the provisioning templates available to a StreamOne ION reseller account. Provisioning templates describe the parameters a cloud vendor requires when provisioning a product, so read these before submitting an order that needs vendor-specific attributes. vendor is REQUIRED (for example AZURE, GOOGLE, IBM); provider and action narrow the result further. accountId defaults to the account saved with your TD SYNNEX credentials.

ParamTypeRequiredDefaultDescription
accountIdstringnonullReseller account id. Defaults to the account id saved with your credentials.
actionstringnonullOptional action to narrow the templates to.
providerstringnonullOptional provider to narrow the templates to.
vendorstringyesREQUIRED cloud vendor, e.g. AZURE, GOOGLE, IBM.

Carts & Checkout

ToolPlanAccessSummary
tds_ion_checkout_cartProDestructiveCheck out a StreamOne ION cart.
tds_ion_create_cartProWriteCreate a new cart for a StreamOne ION end customer.
tds_ion_create_cart_itemProWriteAdd an item to a StreamOne ION cart.
tds_ion_get_cartFreeRead-onlyGet a single StreamOne ION cart by id, including its status and totals.
tds_ion_get_cart_itemFreeRead-onlyGet a single item from a StreamOne ION cart, including its plan, period, quantity, add-ons and pricing.
tds_ion_list_cart_itemsFreeRead-onlyList the items in a StreamOne ION cart, with their plans, quantities and pricing.
tds_ion_list_cartsFreeRead-onlyList the carts belonging to a StreamOne ION end customer.
tds_ion_update_cartProDestructiveUpdate an existing StreamOne ION cart — for example to rename it, change its payment details, or change its status (such as saving it for later or converting it to a quote).
tds_ion_update_cart_itemProWriteUpdate an item already in a StreamOne ION cart — for example to change its quantity, plan, billing period or add-ons.

[TD SYNNEX] Check out a StreamOne ION cart. THIS PLACES A REAL, BILLABLE ORDER for everything in the cart and cannot be undone from this tool — cancelling afterwards requires tds_ion_cancel_order on the resulting order. Review the cart with tds_ion_get_cart and tds_ion_list_cart_items first. bodyJson is REQUIRED: { totalCalculatedValue, provisionData: [ { cartItemId, attributes: [ { name, value } ] } ] } — totalCalculatedValue is the cart's final value including discounts, and provisionData carries the provisioning attributes each product needs to activate after checkout (for example domainName and the agreement fields for Microsoft products). Get cartItemId values from tds_ion_list_cart_items, and check tds_ion_get_provision_template for which attributes a vendor requires. customerId comes from tds_ion_list_customers; cartId from tds_ion_list_carts. This surface takes no account id.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesREQUIRED body JSON: { totalCalculatedValue, provisionData: [ { cartItemId, attributes: [ { name, value } ] } ] }.
cartIdstringyesThe cart id to check out (from tds_ion_list_carts).
customerIdstringyesThe customer id owning the cart (from tds_ion_list_customers).

[TD SYNNEX] Create a new cart for a StreamOne ION end customer. Checking a cart out with tds_ion_checkout_cart is the step that places a billable order. bodyJson is the request body describing the cart — documented fields are cartDisplayName, userName, status, currencyCode, and a payment object carrying paymentType and creditCardName. customerId comes from tds_ion_list_customers. This surface takes no account id.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesBody JSON describing the cart, e.g. its display name, status and currency code.
customerIdstringyesThe customer id to create the cart for (from tds_ion_list_customers).

[TD SYNNEX] Add an item to a StreamOne ION cart. This stages a line for purchase; nothing is billed until tds_ion_checkout_cart. bodyJson requires planName, quantity and productType, and also accepts status, currencyCode and a payment object carrying paymentType. Get planName from tds_ion_get_product (it looks like accounts//products//versions//plans/). customerId comes from tds_ion_list_customers; cartId from tds_ion_list_carts. This surface takes no account id.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesBody JSON. Required: planName, quantity, productType. Also accepts status, currencyCode, payment: .
cartIdstringyesThe cart id to add the item to (from tds_ion_list_carts).
customerIdstringyesThe customer id owning the cart (from tds_ion_list_customers).

[TD SYNNEX] Get a single StreamOne ION cart by id, including its status and totals. customerId comes from tds_ion_list_customers; cartId comes from tds_ion_list_carts. This surface takes no account id.

ParamTypeRequiredDefaultDescription
cartIdstringyesThe cart id (from tds_ion_list_carts).
customerIdstringyesThe customer id owning the cart (from tds_ion_list_customers).

[TD SYNNEX] Get a single item from a StreamOne ION cart, including its plan, period, quantity, add-ons and pricing. customerId comes from tds_ion_list_customers; cartId from tds_ion_list_carts; cartItemId from tds_ion_list_cart_items. Takes no account id.

ParamTypeRequiredDefaultDescription
cartIdstringyesThe cart id (from tds_ion_list_carts).
cartItemIdstringyesThe cart item id (from tds_ion_list_cart_items).
customerIdstringyesThe customer id owning the cart (from tds_ion_list_customers).

[TD SYNNEX] List the items in a StreamOne ION cart, with their plans, quantities and pricing. customerId comes from tds_ion_list_customers; cartId comes from tds_ion_list_carts. Takes no filters or paging, and no account id.

ParamTypeRequiredDefaultDescription
cartIdstringyesThe cart id (from tds_ion_list_carts).
customerIdstringyesThe customer id owning the cart (from tds_ion_list_customers).

[TD SYNNEX] List the carts belonging to a StreamOne ION end customer. status is REQUIRED and selects which carts to return: CART_STATUS_UNSPECIFIED, OPEN, SAVED_FOR_LATER, CHECKED_OUT or QUOTE. Note this call uses StreamOne ION's cart-specific pagination — an offset/limit window, not the page tokens the rest of the API uses. customerId comes from tds_ion_list_customers. This surface takes no account id — StreamOne ION scopes carts to the customer alone.

ParamTypeRequiredDefaultDescription
customerIdstringyesThe customer id whose carts to list (from tds_ion_list_customers).
paginationFilterstringnonullOptional filter expression, e.g. a cart display name.
paginationLimitintegerno50Records to return (default 50, capped at 100).
paginationOffsetintegernonullOptional number of records to skip from the start of the result set.
paginationSortBystringnonullOptional attribute name(s) to sort by.
paginationSortOrderstringnonullOptional sort direction: ASC or DESC.
paginationUserIdstringnonullOptional user id to scope the carts to.
statusstringyesREQUIRED cart status: CART_STATUS_UNSPECIFIED, OPEN, SAVED_FOR_LATER, CHECKED_OUT or QUOTE.

[TD SYNNEX] Update an existing StreamOne ION cart — for example to rename it, change its payment details, or change its status (such as saving it for later or converting it to a quote). TREAT THIS AS POTENTIALLY BILLABLE: status is one of the writable body fields and CHECKED_OUT is one of its documented values, so an update could place the cart's order. Read the cart first with tds_ion_get_cart so you send a complete, current record. bodyJson is the request body — documented fields are cartDisplayName, userName, status, currencyCode, and a payment object carrying paymentType and creditCardName. customerId comes from tds_ion_list_customers; cartId from tds_ion_list_carts. This surface takes no account id.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesBody JSON with the cart fields to set.
cartIdstringyesThe cart id to update (from tds_ion_list_carts).
customerIdstringyesThe customer id owning the cart (from tds_ion_list_customers).

[TD SYNNEX] Update an item already in a StreamOne ION cart — for example to change its quantity, plan, billing period or add-ons. This changes staged lines only; nothing is billed until tds_ion_checkout_cart. Read the item first with tds_ion_get_cart_item so you send a complete, current record. bodyJson accepts the cart-item fields (name, cartName, userName, title, planName, period, status, quantity, currencyCode, payment, upfrontPrice, recurringPrice, paymentSpec, and an addOns array of { planId, displayName, quantity, quantitySpec, upfrontPrice, recurringPrice }). customerId comes from tds_ion_list_customers; cartId from tds_ion_list_carts; cartItemId from tds_ion_list_cart_items. This surface takes no account id.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesBody JSON with the cart-item fields to set, e.g. { planName, quantity, period, addOns: [...] }.
cartIdstringyesThe cart id (from tds_ion_list_carts).
cartItemIdstringyesThe cart item id to update (from tds_ion_list_cart_items).
customerIdstringyesThe customer id owning the cart (from tds_ion_list_customers).

Reports

ToolPlanAccessSummary
tds_ion_get_reportFreeRead-onlyPreview a StreamOne ION report's layout and configuration generated from YOUR specification — column definitions, currency information and date ranges, but NOT the actual data.
tds_ion_get_report_dataFreeRead-onlyPull a StreamOne ION report WITH its actual data — column definitions, currency information, date ranges and the data values.
tds_ion_get_report_data_csvFreeRead-onlyPull a StreamOne ION report in its CSV form.
tds_ion_get_report_metadataFreeRead-onlyGet the general structure of a StreamOne ION report template — its column definitions, currency information and date ranges — without supplying any input parameters and without returning data.
tds_ion_list_reportsFreeRead-onlyList the report templates available to a StreamOne ION reseller account.

[TD SYNNEX] Preview a StreamOne ION report's layout and configuration generated from YOUR specification — column definitions, currency information and date ranges, but NOT the actual data. Use this to confirm a report request is shaped correctly before pulling the full data with tds_ion_get_report_data. This is a read: it submits the report specification in the request body but changes nothing. bodyJson is the report specification, most easily obtained by starting from tds_ion_get_report_metadata output and trimming its column list. reportId comes from tds_ion_list_reports. accountId defaults to the account saved with your TD SYNNEX credentials.

ParamTypeRequiredDefaultDescription
accountIdstringnonullReseller account id. Defaults to the account id saved with your credentials.
bodyJsonstringyesBody JSON: the report specification, e.g. { reportId, displayName, category, specs: { allColumns: [ { id, displayName, columnTemplateId } ] } }.
reportIdstringyesThe report id (from tds_ion_list_reports).

[TD SYNNEX] Pull a StreamOne ION report WITH its actual data — column definitions, currency information, date ranges and the data values. This is a read: it submits the report specification in the request body but changes nothing. bodyJson is the report specification, most easily obtained by starting from tds_ion_get_report_metadata output and trimming its column list. Billing and invoice reports can be large — narrow the column list and date range before requesting. reportId comes from tds_ion_list_reports. accountId defaults to the account saved with your TD SYNNEX credentials.

ParamTypeRequiredDefaultDescription
accountIdstringnonullReseller account id. Defaults to the account id saved with your credentials.
bodyJsonstringyesBody JSON: the report specification, e.g. { reportId, displayName, category, specs: { allColumns: [ { id, displayName, columnTemplateId } ] } }.
reportIdstringyesThe report id (from tds_ion_list_reports).

[TD SYNNEX] Pull a StreamOne ION report in its CSV form. This takes the same specification as tds_ion_get_report_data and returns the same content, but structured as CSV rather than as report objects. Per TD SYNNEX this is not a downloadable file attachment, so it comes back inline. Prefer tds_ion_get_report_data unless you specifically need the CSV shape. bodyJson is the report specification. reportId comes from tds_ion_list_reports. accountId defaults to the account saved with your TD SYNNEX credentials.

ParamTypeRequiredDefaultDescription
accountIdstringnonullReseller account id. Defaults to the account id saved with your credentials.
bodyJsonstringyesBody JSON: the report specification — identical in shape to tds_ion_get_report_data.
reportIdstringyesThe report id (from tds_ion_list_reports).

[TD SYNNEX] Get the general structure of a StreamOne ION report template — its column definitions, currency information and date ranges — without supplying any input parameters and without returning data. Use this to discover the column set you can then request. Set includeMetadata true to get the report's detailed metadata as well. Compare with tds_ion_get_report, which generates the structure dynamically from a specification you provide. reportId comes from tds_ion_list_reports. accountId defaults to the account saved with your TD SYNNEX credentials.

ParamTypeRequiredDefaultDescription
accountIdstringnonullReseller account id. Defaults to the account id saved with your credentials.
includeMetadatabooleannonullWhen true, include the report's detailed metadata.
reportIdstringyesThe report id (from tds_ion_list_reports).

[TD SYNNEX] List the report templates available to a StreamOne ION reseller account. Optional module narrows to one reporting area, such as REPORTS_REPORTS_MODULE, DASHBOARDS_REPORTS_MODULE, BUDGET_MANAGEMENT_REPORTS_MODULE, INVOICE_REPORTS_MODULE, V1_BILLING_REPORTS_MODULE or CACHING_REPORTS_MODULE. Start here to get a report id, then read its shape with tds_ion_get_report_metadata before pulling data. accountId defaults to the account saved with your TD SYNNEX credentials.

ParamTypeRequiredDefaultDescription
accountIdstringnonullReseller account id. Defaults to the account id saved with your credentials.
modulestringnonullOptional reporting module, e.g. REPORTS_REPORTS_MODULE, INVOICE_REPORTS_MODULE, V1_BILLING_REPORTS_MODULE.

XML Hardware

ToolPlanAccessSummary
tds_xml_get_freight_quoteFreeRead-onlyQuote freight cost for a prospective hardware shipment.
tds_xml_get_po_statusFreeRead-onlyGet the status of ONE hardware purchase order, looked up by the purchase order number you supplied when placing it.
tds_xml_get_price_availabilityFreeRead-onlyGet reseller price and per-warehouse stock for hardware products, in one batched request.
tds_xml_submit_poProDestructiveSubmit a REAL hardware purchase order to TD SYNNEX.

[TD SYNNEX] Quote freight cost for a prospective hardware shipment. EVERY parameter is mandatory — the vendor schema declares no optional fields on this request — and that includes shipFromWarehouse, so run tds_xml_get_price_availability FIRST and take a warehouseInfo/number from its response: there is no warehouse-list operation anywhere in this API. The response is also the ONLY published source of ship-method codes: its AvailableShipMethods array returns AvailableShipMethod entries each carrying a code attribute plus description, service level and freight cost, and those codes are contextual to this warehouse, destination and weight rather than a fixed list. Use a code from here when submitting an order with tds_xml_submit_po. Note the response spells its line items with a LOWERCASE 'item' inside 'Items', unlike every other tool on this connector. Errors arrive with HTTP 200 as an ErrorMessage/ErrorDetail pair — for example a mfgPartNumber matching several SKUs returns Client.MultiSKU rather than a quote.

ParamTypeRequiredDefaultDescription
customerNamestringyesYour company name as TD SYNNEX holds it.
linesJsonstringyesJSON array of lines. Each needs lineNumber, description and quantity, plus exactly one of sku or mfgPartNumber, e.g. [{"lineNumber":"1","sku":"11571352","description":"Catalyst 9300","quantity":2}].
serviceLevelstringyesService level for the ship method, e.g. GROUND.
shipFromWarehousestringyesThe warehouse to ship from — a warehouseInfo/number from a tds_xml_get_price_availability response, e.g. 506.
shipMethodCodestringyesShip-method code. Discover valid codes from a previous freight quote's AvailableShipMethod/@code, or ask TD SYNNEX — no static list is published.
shipToZipCodestringyesDestination postal/ZIP code.

[TD SYNNEX] Get the status of ONE hardware purchase order, looked up by the purchase order number you supplied when placing it. That is the only lookup key this API offers — there is no search by TD SYNNEX order number, no date range, and no list-all-orders operation, so track your own PO numbers. The response carries an order-level Code plus per-line Code, ShipDatetime, OrderNumber (TD SYNNEX's own sales-order number), quantities ordered and shipped, unit price, SKU, MfgPN and ship method. An unknown PO number is NOT an error: it returns a normal response with Code 'not found' (lowercase here, though the price tools spell the same idea 'Not found' — compare case-insensitively). Fields the schema marks mandatory are routinely absent, so treat every one as optional; ResponseElapsedTime is a string with a unit suffix like '0.098s' and will not parse as a number, and ResponseDateTime carries no timezone.

ParamTypeRequiredDefaultDescription
purchaseOrderNumberstringyesYour own purchase order number, exactly as submitted (max 20 characters).
shipFromCountrystringnonullOptional ship-from country: US, CA or GB. Omit unless the order shipped from a country other than your account's default.

[TD SYNNEX] Get reseller price and per-warehouse stock for hardware products, in one batched request. This is the HARDWARE distribution API, not the StreamOne ION cloud catalog (tds_ion_list_products) — it needs the ECExpress credentials rather than the ION refresh token. Pass linesJson as an array where each line has a lineNumber plus EXACTLY ONE of synnexSku or mfgPartNumber, e.g. [{"lineNumber":"1","mfgPartNumber":"C9300-24T-A"},{"lineNumber":"2","synnexSku":"11571352"}]. CRITICAL: the server returns lines OUT OF REQUEST ORDER (it groups them by result class), so you MUST match each result to its request by lineNumber and must NOT rely on array position. Each result carries status (Active, Discontinued or Not found), price, totalQuantity and an AvailabilityByWarehouse array of warehouseInfo (number, city, zipcode, addr) plus qty — but only Active lines carry all of them; Discontinued and Not found lines carry status and lineNumber almost alone. A synnexSKU of 0 is a sentinel meaning 'no match', not a real id. Warehouses with zero stock are still listed, and warehouse 98 is the pseudo-warehouse for manufacturer drop-ship rather than a building. Take a warehouse number from here to use with tds_xml_get_freight_quote or when submitting an order. Optional per-line fields: priceType (FEDERALGOVERNMENT, STATEGOVERNMENT, EDUCATION, REGULAR, PROMOTION), specialDealNumber, requestWarehouse (comma-joined warehouse numbers to restrict the answer to), rioRefNo. Anything past the first 200 lines is dropped, so split a larger list across several calls.

ParamTypeRequiredDefaultDescription
linesJsonstringyesJSON array of lines. Each needs lineNumber (digits, unique within the request) and exactly one of synnexSku or mfgPartNumber. Optional per line: rioRefNo, priceType, specialDealNumber, requestWarehouse. Max 200 lines — anything beyond that is dropped.
rioRefNostringnonullOptional request-level reference number echoed by TD SYNNEX (max 30 characters).

[TD SYNNEX] Submit a REAL hardware purchase order to TD SYNNEX. THIS SPENDS MONEY AND CANNOT BE UNDONE: no cancellation endpoint exists anywhere in this API, so once accepted the order can only be dealt with by contacting TD SYNNEX directly. The purchaseOrderNumber must be unique — it is the only key tds_xml_get_po_status can later look the order up by, so reusing one makes both orders unreadable. Every line must carry a unitPrice, because the vendor schema requires the buyer to state the price they expect to pay; get current prices from tds_xml_get_price_availability immediately beforehand. Card payment is deliberately NOT supported here (cardholder data must never transit this interface) — this places account-terms orders only; for a card order use ECExpress. Shipping details are all-or-nothing: supply shipToName, shipToAddressLine1, shipToCity AND a ship method together, or omit every shipping field to use the account's default address — a partial ship-to is refused locally, because TD SYNNEX would reject the order and the PO number would be consumed anyway. Ship-method codes come from tds_xml_get_freight_quote and warehouse numbers from tds_xml_get_price_availability; neither has a static list. The response carries a Code at BOTH order level and line level, because an order can partially succeed, plus TD SYNNEX's own OrderNumber per line. Confirm the outcome with tds_xml_get_po_status rather than assuming HTTP success means accepted.

ParamTypeRequiredDefaultDescription
backOrderbooleannonullTrue to allow back-ordering items that are out of stock, false to refuse.
commentsJsonstringnonullOptional free-text comments, as a JSON array of strings.
dropShipbooleanyesTrue when TD SYNNEX ships directly to the end customer, false when it ships to you. Mandatory — the vendor schema has no default.
endUserPurchaseOrderNumberstringnonullThe end customer's own PO number, for reference on the order.
expectedDatestringnonullRequested delivery date as YYYYMMDD.
linesJsonstringyesJSON array of order lines. Each needs lineNumber, unitPrice and orderQuantity, plus exactly one of synnexPartNumber, sku or manufacturerPartNumber. Optional per line: customerPartNumber, productName, shipFromWarehouse. Example: [{"lineNumber":"1","sku":"11571352","unitPrice":"4774.98","orderQuantity":2}].
notificationsJsonstringnonullOptional email confirmation targets, as a JSON array of at most THREE objects: [{"confirmationId":"1","address":"orders@example.com"}].
orderTypestringnonullOrder action: ADD (default when omitted), CHANGE, HOLD or RELEASE.
purchaseOrderNumberstringyesYour purchase order number — must be unique, and is the only way to look this order up later (max 20 characters).
shipCompletebooleannonullTrue to hold the order until every line can ship together.
shipFromCountrystringnonullShip-from country: US, CA or GB.
shipFromWarehousestringnonullOrder-level warehouse to ship from — a warehouseInfo/number from tds_xml_get_price_availability. A line may override it.
shipMethodCodestringnonullShip-method code from a tds_xml_get_freight_quote response's AvailableShipMethod/@code.
shipMethodDescriptionstringnonullFree-text description of the ship method.
shipToAddressLine1stringnonullShip-to street address.
shipToAddressLine2stringnonullShip-to second address line.
shipToCitystringnonullShip-to city.
shipToContactNamestringnonullShip-to contact name.
shipToCountrystringnonullShip-to country: US, CA or GB.
shipToEmailAddressstringnonullShip-to contact email address.
shipToNamestringnonullShip-to company or recipient name.
shipToPhoneNumberstringnonullShip-to contact phone number.
shipToStatestringnonullShip-to state or province.
shipToZipCodestringnonullShip-to postal/ZIP code.