Ingram Micro Tools
Written By Christopher Scaminaci
Last updated 7 days ago
Ingram Micro Tools
ingram_ · 51 tools · Free 35 · Pro 16
Two independently-authenticated Ingram Micro families in one connector. The Xvantage tools use a client id and secret and send four customer-context headers on every call: customer number, country code, a fresh correlation id per request, and an optional sender id; a few operations add a customer contact or application id. Three paging spellings are preserved per operation exactly as the vendor documents them, with a cap of 100. The Cloud Marketplace tools have their own base address, credentials and subscription key, all optional, so they fail cleanly as not configured when those are unset; they page on offset and limit, capped at 100 here because the vendor documents no maximum.
All connector tools · Ingram Micro setup guide
Ingram Micro tool groups
- Product Catalog — 4 tools
- Orders — 6 tools
- Quotes — 4 tools
- Invoices — 2 tools
- Renewals — 2 tools
- Deals — 2 tools
- Returns — 3 tools
- Freight — 1 tool
- Cloud Marketplace Customers — 6 tools
- Cloud Marketplace Orders — 6 tools
- Cloud Marketplace Resellers — 4 tools
- Cloud Marketplace Catalog — 3 tools
- Cloud Marketplace Subscriptions — 4 tools
- Cloud Marketplace Reports — 3 tools
- Cloud Marketplace Validation — 1 tool
Product Catalog
ingram_get_price_and_availability details
ingram_get_price_and_availability details
[Ingram Micro] Get live pricing, availability, discounts, inventory location and reserve inventory for up to 50 products in one call. This is a read (POST-as-read, no side effects) — POST is used only to carry the product list. Body (fieldsJson) is a JSON object whose products array holds one entry per SKU, each with ingramPartNumber (preferred) or vendorPartNumber; Ingram recommends always supplying ingramPartNumber. IMPORTANT: the per-product quantity field is named quantityRequested — there is no 'quantity' field, and sending one is silently ignored, giving you quantity-blind pricing. Returns raw JSON; a partial success comes back as HTTP 207 with per-product status. Use ingram_search_products to resolve part numbers first.
ingram_get_product_details details
ingram_get_product_details details
[Ingram Micro] Get full details for one product by its Ingram Micro part number (from ingram_search_products). Returns raw JSON with descriptions, attributes, category hierarchy, weights/dimensions and vendor data. Ingram documents this endpoint as available in the USA, India and the Netherlands; for subscription-plan products use ingram_search_product_details instead. For live pricing and stock use ingram_get_price_and_availability.
ingram_search_product_details details
ingram_search_product_details details
[Ingram Micro] Look up product details for SUBSCRIPTION products, which are keyed by plan rather than by Ingram part number. Ingram requires at least one of vendorPartNumber, planId or planName. Use ingram_get_product_details when you already have an Ingram part number. Returns raw JSON.
ingram_search_products details
ingram_search_products details
[Ingram Micro] Search the Ingram Micro product catalog. keyword, vendor and vendorPartNumber accept COMMA-SEPARATED lists (each value is sent as a repeated query parameter). keyword matches an Ingram part number, a vendor part number, a product description, a UPC or a vendor name. Returns raw JSON including each product's ingramPartNumber — use that with ingram_get_product_details and ingram_get_price_and_availability. Page-based pagination (pageNumber 1-based, pageSize default 25, max 100).
Orders
ingram_cancel_order details
ingram_cancel_order details
[Ingram Micro] Cancel an order. DESTRUCTIVE and irreversible. Ingram only accepts a cancellation BEFORE the order is released to the warehouse, and the order must be on customer hold — once released it cannot be cancelled through the API and you must contact Ingram. Returns raw JSON.
ingram_create_order details
ingram_create_order details
[Ingram Micro] Place a real order with Ingram Micro (v6, synchronous). DESTRUCTIVE — this commits a purchase against your Ingram trade-credit account and bills you on your net terms; it cannot be undone except by ingram_cancel_order, which only works before the order reaches the warehouse. Ingram requires net terms on the account to use this API. Body (fieldsJson) is a JSON object: required customerOrderNumber and lines (each line should carry ingramPartNumber — Ingram recommends it explicitly — plus quantity); optional endCustomerOrderNumber, notes, shipToInfo, additionalAttributes (set the customer-hold flag here if you want the order to be modifiable). WARNING: never emit the additionalAttributes entry allowDuplicateCustomerOrderNumber with value true — Ingram's own request samples ship it true, and it disables Ingram's duplicate-PO protection, so a copied sample can silently place the same order twice; omit the attribute entirely. Supports stocked, licensing and warranty SKUs. Returns raw JSON: orders is an ARRAY and Ingram may split ONE submission across several orders, so read EVERY entry's ingramOrderNumber under orders[] — taking only the first silently drops the rest of a real purchase. Each entry also carries numberOfLinesWithSuccess / numberOfLinesWithError / numberOfLinesWithWarning plus any rejectedLineItems. Read the OUTCOME OFF THE BODY, never off a status code: this tool never surfaces one, and Ingram returns the identical schema for a full and a partial success — top-level processedPartially true, or a non-zero numberOfLinesWithError, is the only partial-success signal. Prefer ingram_create_order_v7 for large orders, but note v7 is ASYNCHRONOUS and returns no order number at submit — poll ingram_search_orders with your customerOrderNumber afterwards.
ingram_create_order_v7 details
ingram_create_order_v7 details
[Ingram Micro] Place a real order with Ingram Micro ASYNCHRONOUSLY (v7). DESTRUCTIVE — this commits a purchase against your Ingram trade-credit account. Unlike ingram_create_order, v7 returns only an immediate acknowledgement; Ingram then reports the outcome to your configured webhook callback URL, so the order number is NOT in this response — poll ingram_search_orders using your customerOrderNumber to find it. v7 also accepts quote-to-order (an existing quote in 'Ready to Order' status) and configure-to-order (CTO) quotes. Body (fieldsJson) is a JSON object per the v7 schema. Returns raw JSON.
ingram_get_order details
ingram_get_order details
[Ingram Micro] Get full detail for one order by its Ingram Micro sales order number (from ingram_search_orders) using the v6.1 endpoint. Returns raw JSON with line items, ship-to data, serial numbers, tracking and status history. Note that service contract, subscription and license information is not yet returned by this endpoint.
ingram_modify_order details
ingram_modify_order details
[Ingram Micro] Modify an existing order, or release one that is on customer hold. DESTRUCTIVE — changes line quantities, SKUs and shipping on a live purchase order, and releasing a held order commits it. Ingram only permits modification of orders CREATED WITH THE CUSTOMER-HOLD FLAG, and only within 24 hours of placement; after 24 hours an unreleased held order is voided automatically, and an order placed without the hold flag cannot be modified at all. Body (fieldsJson) is a JSON object with the lines/attributes to change. Set actionCode for a release. Returns raw JSON; a partial success comes back as HTTP 207.
ingram_search_orders details
ingram_search_orders details
[Ingram Micro] Search your Ingram Micro orders by any combination of the filters below. The *Between parameters take exactly TWO comma-separated dates (start,end). orderStatusIn takes a comma-separated list of statuses. Returns raw JSON with each order's ingramOrderNumber — pass that to ingram_get_order for full detail. NO MATCH reaches you as an empty JSON object — Ingram answers either a 204 with no body, which StackJack normalizes to , or a 200 with recordsFound 0 and an empty orders array — so decide 'nothing found' from the body (no orders entries), never from a status code. Page-based pagination (pageNumber 1-based, pageSize default 25, max 100).
Quotes
ingram_create_quote details
ingram_create_quote details
[Ingram Micro] Create a quote from Ingram or vendor part numbers. On success the quote is activated into 'Ready to Order' status and you get an immediate confirmation; the full quote details follow by webhook, so they are not in this response — use ingram_search_quotes or ingram_get_quote to read them back. Configure-to-order (CTO) quotes are created by supplying a special-bid number (deal ID), and CTO creation currently supports Cisco as the only vendor. This is a Pro write but not destructive — a quote commits you to nothing; converting it to an order (ingram_create_order_v7) does. Body (fieldsJson) is a JSON object with the quote header and lines.
ingram_get_quote details
ingram_get_quote details
[Ingram Micro] Get every detail associated with one quote, by quote number (from ingram_search_quotes). Returns raw JSON with the quote's header, end-user and line-level data including per-line pricing. Use ingram_validate_quote to check the quote is orderable before converting it.
ingram_search_quotes details
ingram_search_quotes details
[Ingram Micro] Search quotes in Ingram Micro's CRM. By default returns quotes created or modified in the LAST 30 DAYS; supply a date range to reach older quotes, up to a 365-day ceiling. Only ACTIVE quotes are available through the API — draft and closed quotes are not accessible. Returns raw JSON with each quote's quoteNumber; pass that to ingram_get_quote for detail, ingram_validate_quote before ordering, or ingram_create_order_v7 to turn a 'Ready to Order' quote into an order. Page-based pagination (pageNumber 1-based; pageSize default AND maximum 25 — Ingram documents this pageSize as decrease-only, unlike the other searches which allow 100).
ingram_validate_quote details
ingram_validate_quote details
[Ingram Micro] Validate a quote before converting it to an order. Besides confirming the quote is valid, this reports every field the VENDOR requires at both the header and line level — so run it before ingram_create_order_v7 and use the result to fill in whatever the order body is missing. Commits nothing. Returns raw JSON.
Invoices
ingram_get_invoice details
ingram_get_invoice details
[Ingram Micro] Get full detail for one invoice by its Ingram Micro invoice number (from ingram_search_invoices), using the v6.1 endpoint. Returns raw JSON with line items, totals, tax, freight and payment terms — optionally including per-line serial numbers. Requires the application-id header, taken from the connector credentials (or the sender ID as a fallback).
ingram_search_invoices details
ingram_search_invoices details
[Ingram Micro] Search your Ingram Micro invoices across any combination of the filters below. All date parameters take the yyyy-MM-dd form. Returns raw JSON with each invoice's invoiceNumber — pass that to ingram_get_invoice for line-level detail. Sorting is controlled by orderBy plus direction. Page-based pagination (pageNumber 1-based, pageSize default 25, max 100). Requires the application-id header, taken from the connector credentials (or the sender ID as a fallback).
Renewals
ingram_get_renewal details
ingram_get_renewal details
[Ingram Micro] Get every detail for one renewal by its Ingram renewal id (from ingram_search_renewals). Returns raw JSON with the covered products, term dates, pricing and the end customer.
ingram_search_renewals details
ingram_search_renewals details
[Ingram Micro] Search the renewals (service contracts, subscriptions and warranties) on your Ingram account. This is a read (POST-as-read, no side effects) — POST is used only to carry the optional advanced-search body. With no filters at all it returns every renewal on the account. Basic search goes through the query parameters below; advanced search goes through fieldsJson. Returns raw JSON with each renewal's id — pass that to ingram_get_renewal. Pagination is lowercase page + size (default 25, max 100).
Deals
ingram_get_deal details
ingram_get_deal details
[Ingram Micro] Get every detail for one deal by its deal id (from ingram_search_deals). Returns raw JSON with the deal's vendor, end user, validity dates and the specially-priced products. Requires the application-id header, taken from the connector credentials (or the sender ID as a fallback).
ingram_search_deals details
ingram_search_deals details
[Ingram Micro] Search the special-pricing deals on your Ingram account by end-user name, vendor name or deal id. With no filters it returns every deal on the account. Returns raw JSON with each deal's id — the same value Ingram calls a special-bid number, so you can feed it to ingram_get_deal, to the specialBidNumber filter on ingram_search_orders and ingram_search_invoices, and to configure-to-order quote creation. Note this operation uses CAPITALISED pagination parameters upstream (default 25 per page, max 100).
Returns
ingram_create_return details
ingram_create_return details
[Ingram Micro] Open a return request (RMA) against a shipped order. DESTRUCTIVE — this creates a real return claim on your Ingram account, and Ingram provides no API to withdraw one: cancelling it means contacting Ingram support. Body (fieldsJson) is a JSON object that must carry EITHER ingramPartNumber OR vendorPartNumber for each returned item, plus the invoice number, quantity and a return reason from Ingram's predefined list. Use ingram_search_returns first to check you are not duplicating an existing claim. Returns raw JSON with the new claim's identifiers.
ingram_get_return details
ingram_get_return details
[Ingram Micro] Get every detail for one return claim by its case request number (from ingram_search_returns). Returns raw JSON with the claim's status, reason, returned products and credit detail.
ingram_search_returns details
ingram_search_returns details
[Ingram Micro] Search the return claims on your Ingram account. With no filters it returns every return on the account. The status and reason filters take COMMA-SEPARATED lists of Ingram's predefined values. Returns raw JSON with returnClaimId, caseRequestNumber, createdOn, referenceNumber and returnReason for each match — pass caseRequestNumber to ingram_get_return for full detail. Pagination is lowercase page + size (default 25, max 100).
Freight
ingram_estimate_freight details
ingram_estimate_freight details
[Ingram Micro] Estimate the freight cost for a prospective order. This is a read (POST-as-read, no side effects) — POST is used only to carry the order's lines and ship-to details, and nothing is ordered or reserved. Pair it with ingram_get_price_and_availability to price an order fully before committing to ingram_create_order. Body (fieldsJson) is a JSON object with the lines and the ship-to address. Ingram declares each line's quantity as a STRING ("1", not 1); StackJack sends it that way for you, so either form works here, but a raw number posted straight to Ingram fails as 'Unable to get Freight Details for this SKU' rather than as a type error. Returns raw JSON with the estimated freight charge.
Cloud Marketplace Customers
ingram_cmp_create_customer details
ingram_cmp_create_customer details
[Ingram Micro] Create a Cloud Marketplace customer and associate it with the reseller that owns the credentials sending the request. Use ingram_cmp_create_reseller_customer instead when the customer must sit beneath one of your sub-resellers. Body (fieldsJson) is a JSON object: REQUIRED name, address, contactPersons and language. address requires streetAddress, postalCode, city and countryCode (two-uppercase-character ISO 3166-1 alpha-2), with state mandatory for certain countries. contactPersons is an array where each entry requires type (admin, billing or technical), firstName, lastName, email and phoneNumber (ITU-T E.164 notation; append '#' plus an extension if needed) — an admin contact may also carry login and password. Optional: externalId (your own id for the account), taxRegId, attributes (a dictionary of custom string attributes) and status (defaults to active). The returned id is what you pass to ingram_cmp_create_order and ingram_cmp_list_subscriptions. Returns raw JSON.
ingram_cmp_create_reseller_customer details
ingram_cmp_create_reseller_customer details
[Ingram Micro] Create a Cloud Marketplace customer and associate it with one specific sub-reseller instead of with your own account — the two-tier distribution case. Identical body to ingram_cmp_create_customer: REQUIRED name, address (streetAddress, postalCode, city, countryCode; state where applicable), contactPersons (array; each entry needs type of admin/billing/technical, firstName, lastName, email and phoneNumber in E.164 notation) and language; optional externalId, taxRegId, attributes and status (defaults to active). Resolve the reseller id with ingram_cmp_list_resellers, or create one first with ingram_cmp_create_reseller. Returns raw JSON.
ingram_cmp_get_customer details
ingram_cmp_get_customer details
[Ingram Micro] Get extended details about one specific Cloud Marketplace customer. Returns raw JSON with the account name, postal address, contact persons (admin/billing/technical), notification language, tax registration id, custom attributes, the owning resellerId, and the account status — one of pending, active, creditHold (active but blocked from ordering because of unpaid balance), adminHold (suspended for policy violations), cancelled or error. Resolve the customer id with ingram_cmp_list_customers or ingram_cmp_list_reseller_customers first. To change any of these fields use ingram_cmp_update_customer.
ingram_cmp_list_customers details
ingram_cmp_list_customers details
[Ingram Micro] List Cloud Marketplace customers and their basic details. This is the subscription cloud-services platform, NOT the Xvantage hardware/licence distribution family (ingram_search_orders and friends). Every filter is optional and they combine; omit them all to page the whole customer book. Returns raw JSON with a results array plus a pagination envelope (offset, limit, total). Pass each customer's id to ingram_cmp_get_customer for the extended record, to ingram_cmp_list_subscriptions to see what they are consuming, or to ingram_cmp_list_orders to see their order history. Fails with a 'not configured' error if only the Xvantage credentials are set for this tenant.
ingram_cmp_list_reseller_customers details
ingram_cmp_list_reseller_customers details
[Ingram Micro] List the Cloud Marketplace customers that belong to one specific sub-reseller beneath your account. Same result shape as ingram_cmp_list_customers (results array plus an offset/limit/total pagination envelope) but scoped to a single reseller id, which you resolve with ingram_cmp_list_resellers. Use ingram_cmp_list_reseller_orders for that reseller's order history.
ingram_cmp_update_customer details
ingram_cmp_update_customer details
[Ingram Micro] Update the details and status of an existing Cloud Marketplace customer. DESTRUCTIVE — this mutates a live commercial record, and the status field can suspend the account: creditHold leaves it active but blocks all further ordering, adminHold suspends it, and cancelled ends it. Those changes stop the customer transacting and are not something an agent should make without confirmation. This is a PATCH — send only the fields you want to change; every body field is optional. Body (fieldsJson) may carry name, externalId, taxRegId, address (streetAddress, postalCode, city, countryCode, plus state where applicable) and contactPersons (each entry needs type of admin/billing/technical, firstName, lastName, email and phoneNumber in E.164). status accepts pending, active, creditHold, adminHold, cancelled or error; Ingram documents active and creditHold as the supported transitions. Read the current record with ingram_cmp_get_customer first. Returns raw JSON.
Cloud Marketplace Orders
ingram_cmp_create_order details
ingram_cmp_create_order details
[Ingram Micro] Place a real Cloud Marketplace order for a set of products for a specific customer. DESTRUCTIVE — this commits a real purchase and provisions billable subscriptions that the end customer starts being charged for; there is no cancel endpoint on this API, so the only way back is a cancellation-type order. Price it first with ingram_cmp_estimate_order (same body, no side effects) and validate activation parameters with ingram_cmp_validate_parameters. Body (fieldsJson) is a JSON object: REQUIRED type and customerId. type is one of sales (a new purchase), change (modify an existing subscription), renewal, cancellation, migration or unknown. products is the array of ordered items, each identified by mpn (the vendor part identifier, from ingram_cmp_list_products) plus vendor, with quantity, billingPeriod / subscriptionPeriod ({type of day|month|year|statement_day, duration}) and a parameters array for product activation parameters. Optional: poNumber (the customer's purchase order number), planId, subscriptionPeriod, billingModel, creditCheck (whether the customer's credit is checked on processing), attributes, and the migration-order fields (startDate, migrationDate, expirationDate, autorenewal, migrationProgram). Returns raw JSON; the created order's id and status come back in the response — poll ingram_cmp_get_order to watch submitted move to processing then completed.
ingram_cmp_estimate_order details
ingram_cmp_estimate_order details
[Ingram Micro] Get the estimated price of a Cloud Marketplace order WITHOUT placing it. This is a read (POST-as-read, no side effects) — POST is used only to carry the order body, nothing is created and no customer is charged. It takes the SAME body shape as ingram_cmp_create_order: REQUIRED type (sales, change, renewal, cancellation, migration or unknown) and customerId, plus the products array (each with mpn, vendor, quantity and billingPeriod/subscriptionPeriod). Returns raw JSON with the priced total ({currency, amount}) and a per-line details array carrying unitPrice, extendedPrice, discount and tax, so this is the tool to call before committing with ingram_cmp_create_order.
ingram_cmp_get_order details
ingram_cmp_get_order details
[Ingram Micro] Get extended details of one specific Cloud Marketplace order. Returns raw JSON with the order type (sales, change, renewal, cancellation, migration), status (submitted, processing, error, completed, cancelled), internal statusCode, poNumber, creation and provisioning dates, the total price, the per-line details array (unit price, extended price, discount, tax) and the ordered products. Resolve the order id with ingram_cmp_list_orders or ingram_cmp_list_reseller_orders. To change an order's properties or status use ingram_cmp_update_order.
ingram_cmp_list_orders details
ingram_cmp_list_orders details
[Ingram Micro] List Cloud Marketplace orders with basic details. This is the subscription cloud-services order book, entirely separate from the Xvantage hardware/licence order book behind ingram_search_orders. Every filter is optional and they combine. Returns raw JSON with a results array plus a pagination envelope (offset, limit, total); pass each order's id to ingram_cmp_get_order for the full record. Use ingram_cmp_list_reseller_orders to scope to one sub-reseller.
ingram_cmp_list_reseller_orders details
ingram_cmp_list_reseller_orders details
[Ingram Micro] List the Cloud Marketplace orders placed for one specific sub-reseller beneath your account. Same result shape as ingram_cmp_list_orders (results array plus an offset/limit/total pagination envelope) but scoped to a single reseller id, which you resolve with ingram_cmp_list_resellers. Note this endpoint does not expose the orderNumber or statusCode filters that ingram_cmp_list_orders offers. Pass an order's id to ingram_cmp_get_order for the full record.
ingram_cmp_update_order details
ingram_cmp_update_order details
[Ingram Micro] Update the properties and status of an existing Cloud Marketplace order. DESTRUCTIVE — it mutates a live commercial order: forcing the internal statusCode can push the order down a different provisioning path, and toggling the credit check changes whether the customer's outstanding balance is enforced before the order is processed. This is a PATCH with a deliberately narrow body — Ingram accepts only two optional fields, creditCheck and statusCode. Read the order first with ingram_cmp_get_order. Returns raw JSON.
Cloud Marketplace Resellers
ingram_cmp_create_reseller details
ingram_cmp_create_reseller details
[Ingram Micro] Create a Cloud Marketplace sub-reseller beneath your own account — onboarding a new second-tier partner that will then own its own customers and orders. Body (fieldsJson) is a JSON object: REQUIRED name, address, contactPersons, language and currency. Note currency is required here and NOT on a customer — it fixes the currency this reseller trades in. address requires streetAddress, postalCode, city and countryCode (two-uppercase-character ISO 3166-1 alpha-2), with state mandatory for certain countries. contactPersons is an array where each entry requires type (admin, billing or technical), firstName, lastName, email and phoneNumber (ITU-T E.164 notation); an admin contact may also carry login and password. Optional: externalId (your own id for the account), taxRegId, taxationProviderName, customerClass, attributes (a dictionary of custom string attributes) and status (defaults to active). The returned id is what you pass to ingram_cmp_create_reseller_customer. Returns raw JSON.
ingram_cmp_get_reseller details
ingram_cmp_get_reseller details
[Ingram Micro] Get extended details about one specific Cloud Marketplace sub-reseller. Returns raw JSON with the company name, postal address, contact persons (admin/billing/technical), the preferred notification language, the currency the reseller trades in, taxRegId, taxationProviderName, customerClass, custom attributes, and the account status — one of pending, active, creditHold (active but blocked from ordering because of unpaid balance), adminHold (suspended for policy violations), cancelled or error. Resolve the id with ingram_cmp_list_resellers. Change any of these with ingram_cmp_update_reseller; list what the reseller sells with ingram_cmp_list_reseller_customers and ingram_cmp_list_reseller_orders.
ingram_cmp_list_resellers details
ingram_cmp_list_resellers details
[Ingram Micro] List the Cloud Marketplace sub-resellers beneath your account, with their basic details. These are the second tier of the distribution model — your resellers, each of which owns its own customers and orders — not end customers (use ingram_cmp_list_customers for those). Every filter is optional and they combine. Returns raw JSON with a results array plus a pagination envelope (offset, limit, total). Each reseller id feeds ingram_cmp_list_reseller_customers and ingram_cmp_list_reseller_orders, and ingram_cmp_get_reseller for the extended record.
ingram_cmp_update_reseller details
ingram_cmp_update_reseller details
[Ingram Micro] Update the details of an existing Cloud Marketplace sub-reseller. DESTRUCTIVE — this mutates a live commercial record, and the status field can suspend the reseller: creditHold leaves it active but blocks all further ordering, adminHold suspends it, and cancelled ends it. Because a sub-reseller sits above its own customer book, suspending it CASCADES to every customer beneath it — the widest blast radius in this connector's Cloud Marketplace surface. This is a PATCH — send only the fields you want to change; every body field is optional. Body (fieldsJson) may carry name, externalId, taxRegId, address (streetAddress, postalCode, city, countryCode, plus state where applicable) and contactPersons (each entry needs type of admin/billing/technical, firstName, lastName, email and phoneNumber in E.164). status accepts pending, active, creditHold, adminHold, cancelled or error; Ingram documents active and creditHold as the supported transitions. Read the current record with ingram_cmp_get_reseller first. Returns raw JSON.
Cloud Marketplace Catalog
ingram_cmp_get_service_plan details
ingram_cmp_get_service_plan details
[Ingram Micro] Get extended details about one specific Cloud Marketplace service plan WITH ALL POSSIBLE SWITCHES — that switch list is the reason to call this rather than ingram_cmp_list_service_plans. Returns raw JSON with the plan id, name, short and long descriptions, published flag, the subscriptionPeriods array (each with type of day/month/year/statement_day, duration, and trial/active flags), the billingPeriod, the billingModel, and planSwitches: the collection of upgrades available from the specified plan period, each carrying the target planId, the target subscriptionPeriod, the billingPolicy that will be used to charge the customer (period_change, prorate_starting_new_subscription_period, prorate_keeping_exp_date, prorate_refund, no_refund, no_refund_with_full_refund_period, prorate_refund_with_full_refund_period) and whenEffective (immediately, next_billing_period or next_subscription_period). Use it to work out a legal upgrade path before placing a change-type order with ingram_cmp_create_order.
ingram_cmp_list_products details
ingram_cmp_list_products details
[Ingram Micro] List the Cloud Marketplace products available for you to sell or resell, with details included. Each product carries mpn — the vendor part identifier, and the key you pass into the products array of ingram_cmp_create_order, ingram_cmp_estimate_order and ingram_cmp_validate_parameters — plus vendor (manufacturer id), serviceName, name, minimumQuantity and maximumQuantity (the smallest and largest number of items a subscription may hold), per-currency prices and costs arrays, the billingPeriod and subscriptionPeriod ({type of day|month|year|statement_day, duration}), the billingModel (chargeBeforeBillingPeriod, chargeAfterBillingPeriod, chargeBeforeSubscriptionPeriod or chargeExternalRating), a coterming policy, and a dependsOn array — a product can declare dependencies on other products, e.g. an add-on that requires a base service, so check dependsOn before ordering an add-on on its own. Every filter is optional and they combine. Returns raw JSON with a results array plus a pagination envelope (offset, limit, total). Do NOT confuse this with the Xvantage catalog behind ingram_search_products.
ingram_cmp_list_service_plans details
ingram_cmp_list_service_plans details
[Ingram Micro] List the basic details of the Cloud Marketplace service plans in the platform — the commercial packages (term, billing period, billing model) that products are sold under. This endpoint takes no filters, only pagination. Returns raw JSON with a results array plus a pagination envelope (offset, limit, total); each entry carries the plan id, name, short and long descriptions, the published flag, the available subscriptionPeriods, the billingPeriod and the billingModel. Pass a plan id to ingram_cmp_get_service_plan for the extended record including every possible plan switch, or supply it as planId when placing an order with ingram_cmp_create_order.
Cloud Marketplace Subscriptions
ingram_cmp_get_subscription details
ingram_cmp_get_subscription details
[Ingram Micro] Get extended details of one specific Cloud Marketplace subscription. Returns raw JSON with the subscription name, customerId, status (pending, active, hold, terminated, removed or unknown), renewalStatus (whether it auto-renews), the creation / renewal / lastModified / expiration dates, the billingModel (chargeBeforeBillingPeriod, chargeAfterBillingPeriod, chargeBeforeSubscriptionPeriod or chargeExternalRating), the billingPeriod and subscriptionPeriod ({type of day|month|year|statement_day, duration}), the per-product quantities and unit prices/costs, and custom attributes. Resolve the id with ingram_cmp_list_subscriptions. Change quantities, auto-renewal or pricing with ingram_cmp_update_subscription and ingram_cmp_update_subscription_pricing.
ingram_cmp_list_subscriptions details
ingram_cmp_list_subscriptions details
[Ingram Micro] List the Cloud Marketplace subscriptions belonging to the customers of the reseller that owns the credentials sending the request. These are the live recurring cloud services (Microsoft 365 and similar) — there is no equivalent on the Xvantage hardware/licence side of this connector. Every filter is optional and they combine. Returns raw JSON with a results array plus a pagination envelope (offset, limit, total); pass each subscription's id to ingram_cmp_get_subscription for the full record, or to ingram_cmp_list_orders as subscriptionId to see the orders that produced it.
ingram_cmp_update_subscription details
ingram_cmp_update_subscription details
[Ingram Micro] Update some of the details of a live Cloud Marketplace subscription. DESTRUCTIVE — this mutates a live billable subscription: per-product unit price / unit cost changes and flipping renewalStatus directly change what the end customer is charged and whether the service silently lapses at the renewal date. This is a PATCH — send only what you want to change; every body field is optional. Body (fieldsJson) may carry products (an array where each entry identifies the product by mpn and/or id and can set unitPrice, unitCost or unitProviderCost, each a {currency, amount} pair), attributes (a dictionary of custom string attributes) and renewalStatus (boolean — whether the subscription will be automatically renewed). To change quantities or switch plans, place a change-type order with ingram_cmp_create_order instead. For special pricing specifically, prefer ingram_cmp_update_subscription_pricing. Read the current state with ingram_cmp_get_subscription first. Returns raw JSON.
ingram_cmp_update_subscription_pricing details
ingram_cmp_update_subscription_pricing details
[Ingram Micro] Apply special pricing to a live Cloud Marketplace subscription. DESTRUCTIVE — special pricing directly changes what the end customer is charged on every subsequent billing period, and your own margin along with it; it is not a draft or a quote. Body (fieldsJson) is a JSON object with a REQUIRED products array; each entry identifies the product by mpn (the vendor part identifier) and/or id, and sets unitPrice (what the customer pays), unitCost (what you pay) and/or unitProviderCost (the cost for the sales vendor) — each a {currency, amount} pair where amount is a string. Read the current per-product pricing with ingram_cmp_get_subscription first, and use ingram_cmp_estimate_order if you want to model a price before committing. Returns raw JSON.
Cloud Marketplace Reports
ingram_cmp_create_report details
ingram_cmp_create_report details
[Ingram Micro] Schedule generation of a one-time Cloud Marketplace rated-data report. This is a Pro write but NOT destructive — it only queues an export job and changes no commercial data, no subscription and no customer. Body (fieldsJson) is a JSON object: REQUIRED name (the PRECONFIGURED report name as defined in the platform — you cannot invent one; take it from an existing report returned by ingram_cmp_list_reports) and startDate (the report period start date and time). Optional: endDate (the report period end date and time), format (csv, xml, xlsx or json), type (periodic, daily, monthly, onetime or on_invoice), customizationName. Generation is asynchronous: the response comes back with status submitted, so poll ingram_cmp_get_report until status is completed and downloadUrl is populated. Returns raw JSON.
ingram_cmp_get_report details
ingram_cmp_get_report details
[Ingram Micro] Get extended details about one specific Cloud Marketplace report. Returns raw JSON with the report name, customizationName, status (submitted, processing, completed or error), type (periodic, daily, monthly, onetime or on_invoice), format (csv, xml, xlsx or json), creationDate, the startDate/endDate of the covered period and — once the report reaches completed status — downloadUrl, the URL of the generated report file. This is the second half of the flow: create with ingram_cmp_create_report (or find an existing export with ingram_cmp_list_reports), then poll this tool until status is completed and the downloadUrl appears. StackJack passes the URL through as-is; it is Ingram's own link, not a StackJack-hosted file.
ingram_cmp_list_reports details
ingram_cmp_list_reports details
[Ingram Micro] List the reseller's Cloud Marketplace rated-data reports exported during a specified period. These are the billing-data exports behind the subscription business; the Xvantage side of this connector exposes invoices instead. Every filter is optional and they combine — use from and to to bound the requested period. Returns raw JSON with a results array plus a pagination envelope (offset, limit, total); each entry carries the report id, name, status, type, format, creationDate, startDate/endDate and, once status is completed, a downloadUrl pointing at the generated file. Pass an id to ingram_cmp_get_report for the extended record, or schedule a fresh one-time export with ingram_cmp_create_report.
Cloud Marketplace Validation
ingram_cmp_validate_parameters details
ingram_cmp_validate_parameters details
[Ingram Micro] Validate the product activation parameters for a set of Cloud Marketplace products before you place an order. This is a read (POST-as-read, no side effects) — POST is used only to carry the product and parameter list; nothing is created, no subscription is provisioned and no customer is charged. Run it ahead of ingram_cmp_create_order so a bad activation value (an unavailable Microsoft 365 domain, a malformed vendor field) fails here instead of stranding a real order in error status. Body (fieldsJson) is a JSON object: REQUIRED customerId (the ID of the customer that will receive the product or services) and products (an array). Each product entry REQUIRES a parameters array (each parameter needs name, plus value or structured_value) and identifies the product by mpn (the vendor part identifier, from ingram_cmp_list_products) and/or id, with optional vendor, quantity, billingPeriod / subscriptionPeriod ({type of day|month|year|statement_day, duration}) and draftRequestId. Optional top-level type is the order type the parameters will be used for: sales, change, renewal, cancellation, migration or unknown. Returns raw JSON — a results array where every parameter carries result (success or error), a human-readable message, valueError and, where the vendor constrains the input, a valueChoices list of allowed values.
More in Tools Reference
Atera ToolsAuvik ToolsAvanan (Check Point Harmony Email) ToolsConnectWise Sell ToolsStill need help? Ask the team