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 — 5 tools
- Products & Catalog — 4 tools
- Orders — 5 tools
- Subscriptions — 2 tools
- Cloud Providers & Provisioning — 3 tools
- Carts & Checkout — 9 tools
- Reports — 5 tools
- XML Hardware — 4 tools
End Customers
tds_ion_create_customer details
tds_ion_create_customer details
[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.
tds_ion_get_customer details
tds_ion_get_customer details
[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.
tds_ion_get_customer_cloud_profiles details
tds_ion_get_customer_cloud_profiles details
[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.
tds_ion_list_customers details
tds_ion_list_customers details
[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.
tds_ion_update_customer details
tds_ion_update_customer details
[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.
Products & Catalog
tds_ion_get_product details
tds_ion_get_product details
[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.
tds_ion_list_categories details
tds_ion_list_categories details
[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.
tds_ion_list_products details
tds_ion_list_products details
[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.
tds_ion_list_verticals details
tds_ion_list_verticals details
[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.
Orders
tds_ion_cancel_order details
tds_ion_cancel_order details
[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.
tds_ion_create_order details
tds_ion_create_order details
[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.
tds_ion_get_order details
tds_ion_get_order details
[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.
tds_ion_list_account_orders details
tds_ion_list_account_orders details
[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.
tds_ion_list_customer_orders details
tds_ion_list_customer_orders details
[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.
Subscriptions
tds_ion_get_customer_subscription details
tds_ion_get_customer_subscription details
[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.
tds_ion_list_subscriptions details
tds_ion_list_subscriptions details
[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.
Cloud Providers & Provisioning
tds_ion_get_customer_cloud_provider details
tds_ion_get_customer_cloud_provider details
[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.
tds_ion_get_provision_template details
tds_ion_get_provision_template details
[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.
tds_ion_list_provision_templates details
tds_ion_list_provision_templates details
[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.
Carts & Checkout
tds_ion_checkout_cart details
tds_ion_checkout_cart details
[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.
tds_ion_create_cart details
tds_ion_create_cart details
[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.
tds_ion_create_cart_item details
tds_ion_create_cart_item details
[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.
tds_ion_get_cart details
tds_ion_get_cart details
[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.
tds_ion_get_cart_item details
tds_ion_get_cart_item details
[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.
tds_ion_list_cart_items details
tds_ion_list_cart_items details
[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.
tds_ion_list_carts details
tds_ion_list_carts details
[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.
tds_ion_update_cart details
tds_ion_update_cart details
[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.
tds_ion_update_cart_item details
tds_ion_update_cart_item details
[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.
Reports
tds_ion_get_report details
tds_ion_get_report details
[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.
tds_ion_get_report_data details
tds_ion_get_report_data details
[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.
tds_ion_get_report_data_csv details
tds_ion_get_report_data_csv details
[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.
tds_ion_get_report_metadata details
tds_ion_get_report_metadata details
[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.
tds_ion_list_reports details
tds_ion_list_reports details
[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.
XML Hardware
tds_xml_get_freight_quote details
tds_xml_get_freight_quote details
[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.
tds_xml_get_po_status details
tds_xml_get_po_status details
[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.
tds_xml_get_price_availability details
tds_xml_get_price_availability details
[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.
tds_xml_submit_po details
tds_xml_submit_po details
[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.
More in Tools Reference
Atera ToolsAuvik ToolsAvanan (Check Point Harmony Email) ToolsConnectWise Sell ToolsStill need help? Ask the team