Skip to main content
Tools Reference

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

ToolPlanAccessSummary
ingram_get_price_and_availabilityFreeRead-onlyGet live pricing, availability, discounts, inventory location and reserve inventory for up to 50 products in one call.
ingram_get_product_detailsFreeRead-onlyGet full details for one product by its Ingram Micro part number (from ingram_search_products).
ingram_search_product_detailsFreeRead-onlyLook up product details for SUBSCRIPTION products, which are keyed by plan rather than by Ingram part number.
ingram_search_productsFreeRead-onlySearch the Ingram Micro product catalog.

[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.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body. products: array of up to 50 entries; per entry ingramPartNumber (preferred) or vendorPartNumber, plus optional customerPartNumber (your own part number), upc, quantityRequested (the quantity — NOT 'quantity'), planID, and additionalAttributes ([{attributeName, attributeValue}]). TOP-LEVEL (not per product): specialBidNumber (one pre-approved bid number for the whole request), showAvailableDiscounts (true to include discount detail), showReserveInventoryDetails (true to include reserve-inventory detail), availabilityByWarehouse ([{availabilityByWarehouseId, availabilityForAllLocation}] to scope stock to specific warehouses), and additionalAttributes.
includeAvailabilitybooleannotrueInclude per-warehouse availability detail in the response (default true).
includePricingbooleannotrueInclude pricing detail in the response (default true).
includeProductAttributesbooleannonullInclude detailed product attributes in the response.

[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.

ParamTypeRequiredDefaultDescription
ingramPartNumberstringyesThe Ingram Micro part number (from ingram_search_products).

[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.

ParamTypeRequiredDefaultDescription
planIdstringnonullThe subscription plan id.
planNamestringnonullThe subscription plan name.
vendorPartNumberstringnonullThe vendor's part number for the product.

[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).

ParamTypeRequiredDefaultDescription
acceptLanguagestringnonullResponse language, e.g. 'en'. Omit for the account default.
categorystringnonullProduct category, e.g. 'Displays'.
groupNamestringnonullProduct group name.
hasDiscountsstringnonullFilter to products that have discounts available.
keywordstringnonullComma-separated keywords. Each matches an Ingram part number, vendor part number, product description, UPC or vendor name.
pageNumberintegerno11-based page number (default 1).
pageSizeintegerno25Records per page (default 25, max 100).
planIdstringnonullSubscription plan id.
showGroupInfobooleannonullWhen true, returns group-level information (group name, description, plan count) instead of per-plan detail.
skipAuthorisationstringnonullSet to skip authorization so the template behaves like the current B2B template.
typestringnonullSKU type. Ingram requires its IM-prefixed forms — one of 'IMphysical', 'IMdigital' or 'IMany'. A bare 'Physical' is not a recognized value and will not filter.
vendorstringnonullComma-separated vendor/manufacturer names.
vendorNumberstringnonullA single vendor number.
vendorPartNumberstringnonullComma-separated vendor part numbers.

Orders

ToolPlanAccessSummary
ingram_cancel_orderProDestructiveCancel an order.
ingram_create_orderProDestructivePlace a real order with Ingram Micro (v6, synchronous).
ingram_create_order_v7ProDestructivePlace a real order with Ingram Micro ASYNCHRONOUSLY (v7).
ingram_get_orderFreeRead-onlyGet full detail for one order by its Ingram Micro sales order number (from ingram_search_orders) using the v6.1 endpoint.
ingram_modify_orderProDestructiveModify an existing order, or release one that is on customer hold.
ingram_search_ordersFreeRead-onlySearch your Ingram Micro orders by any combination of the filters below.

[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.

ParamTypeRequiredDefaultDescription
orderNumberstringyesThe Ingram Micro sales order number to cancel (from ingram_search_orders).
regionCodestringnonullSANDBOX ONLY — region code for sandbox testing. Not for production use.

[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.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body. Required: customerOrderNumber, lines (each with ingramPartNumber and quantity). Optional: endCustomerOrderNumber, notes, shipToInfo, additionalAttributes.

[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.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body per the Ingram v7 order schema. Required: customerOrderNumber and lines; for quote-to-order supply the quote number instead of lines.

[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.

ParamTypeRequiredDefaultDescription
ingramOrderDatestringnonullThe order's creation date/time in UTC, used to narrow the lookup.
isImlbooleannonullTrue/False, for IML customers only.
orderNumberstringyesThe Ingram Micro sales order number (from ingram_search_orders).
regionCodestringnonullSANDBOX ONLY — region code for sandbox testing. Not for production use.
simulateStatusstringnonullSANDBOX ONLY — returns a canned response for a given order status. Not for production use. Ingram's IM-prefixed values: 'IMSHIPPED', 'IMPARTIALLY_SHIPPED', 'IMHOLD', 'IM::INVOICED'.
vendorNumberstringnonullVendor number.

[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.

ParamTypeRequiredDefaultDescription
actionCodestringnonullAction code for order release.
fieldsJsonstringyesJSON object body with the changes to apply (lines, quantities, shipping, additionalAttributes).
orderNumberstringyesThe Ingram Micro sales order number (from ingram_search_orders).
regionCodestringnonullSANDBOX ONLY — region code used for the order-release flow in sandbox. Not for production use.

[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).

ParamTypeRequiredDefaultDescription
customerOrderNumberstringnonullYour own PO / order number.
deliveryDateBetweenstringnonullDelivery-date range: two comma-separated dates. Not available in Australia.
endCustomerOrderNumberstringnonullThe end customer's purchase order number.
ingramOrderDatestringnonullOrder date, yyyy-MM-dd.
ingramOrderDateBetweenstringnonullOrder-date range: exactly two comma-separated dates, 'start,end'.
ingramOrderNumberstringnonullThe Ingram Micro order number.
ingramPartNumberstringnonullIngram Micro part number.
invoiceDateBetweenstringnonullInvoice-date range: two comma-separated dates. Not available in Australia.
orderStatusstringnonullA single Ingram Micro order status. Documented values: SHIPPED, PROCESSING, 'ON HOLD', BACKORDERED, CANCELLED (no IM:: prefix on this parameter).
orderStatusInstringnonullComma-separated list of order statuses to match, from the same set as orderStatus.
pageNumberintegerno11-based page number (default 1).
pageSizeintegerno25Records per page (default 25, max 100).
serialNumberstringnonullA product serial number.
shipDateBetweenstringnonullShip-date range: two comma-separated dates.
specialBidNumberstringnonullSpecial-pricing bid number (some vendors call this a Dart number).
trackingNumberstringnonullA shipment tracking number. Not available in Australia.
vendorNamestringnonullVendor name.
vendorPartNumberstringnonullThe vendor's part number.

Quotes

ToolPlanAccessSummary
ingram_create_quoteProWriteCreate a quote from Ingram or vendor part numbers.
ingram_get_quoteFreeRead-onlyGet every detail associated with one quote, by quote number (from ingram_search_quotes).
ingram_search_quotesFreeRead-onlySearch quotes in Ingram Micro's CRM.
ingram_validate_quoteFreeRead-onlyValidate a quote before converting it to an order.

[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.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body. Header fields: quoteName, firstname, lastname, CustomerContact (the logged-in user's email), quoteExpiryDate, customerNeed, pricingType, sendQuoteCopy (WARNING: Ingram actually EMAILS the finished quote to every address listed here, up to 10 — omit it unless you intend to send real mail to real people), dealId (the special-bid number — supply this for a CTO quote, Cisco only), and endUserInfo (companyName, contact, addressLine1/2, city, two-letter state, postalCode, two-letter countryCode, email, phoneNumber). Lines go in products (array), each with ingramPartNumber OR vendorPartNumber plus quantity, and optionally customerLineNumber, specialBid, lineLevelNotes and pricingType.

[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.

ParamTypeRequiredDefaultDescription
quoteNumberstringyesThe quote number (from ingram_search_quotes). A partial number matches too.

[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).

ParamTypeRequiredDefaultDescription
customerContactstringnonullOptional override for the logged-in user's email address that Ingram requires on this endpoint; omit to use the email stored in the connector credentials.
endUserContactstringnonullEnd-user name — the end customer associated with the quote in Ingram's CRM.
ingramOrderDateBetweenstringnonullOrder-date range: two comma-separated dates, 'start,end'.
pageNumberintegerno11-based page number (default 1).
pageSizeintegerno25Records per page. Default AND maximum 25 — Ingram documents this one as decrease-only, so it is the one search that does not go to 100.
quoteCreateDateBetweenstringnonullQuote-creation date range: two comma-separated dates, 'start,end'.
quoteNamestringnonullThe quote name given by the customer when the quote was created.
quoteNumberstringnonullQuote number. A partial number matches too.
sortBystringnonullColumn to sort on. Valid values: quoteNumber, createdDate, lastModifiedDate, expiryDate. Defaults to dateCreated (most recently created first).
sortingOrderstringnonullSort direction applied to sortBy: 'asc' (ascending) or 'desc' (descending). Default is 'desc' — most recent first.
specialBidNumberstringnonullSpecial-pricing bid number (some vendors call this a Dart number).
statusstringnonullQuote status.
vendorNamestringnonullVendor name.

[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.

ParamTypeRequiredDefaultDescription
quoteNumberstringyesThe quote number to validate (from ingram_search_quotes).

Invoices

ToolPlanAccessSummary
ingram_get_invoiceFreeRead-onlyGet full detail for one invoice by its Ingram Micro invoice number (from ingram_search_invoices), using the v6.1 endpoint.
ingram_search_invoicesFreeRead-onlySearch your Ingram Micro invoices across any combination of the filters below.

[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).

ParamTypeRequiredDefaultDescription
customerTypestringnonullWhich record the number refers to: 'invoice' or 'order'.
includeSerialNumbersbooleannonullSet true to include per-line serial numbers in the response.
invoiceNumberstringyesThe Ingram Micro invoice number (from ingram_search_invoices).

[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).

ParamTypeRequiredDefaultDescription
customerOrderNumberstringnonullYour own PO / order number.
deliveryNumberstringnonullDelivery number.
directionstringnonullSort direction for orderBy: 'asc' or 'desc'.
endCustomerOrderNumberstringnonullThe end customer's purchase order number.
invoiceDatestringnonullInvoice date, yyyy-MM-dd.
invoiceDueDatestringnonullInvoice due date, yyyy-MM-dd.
invoiceFromDatestringnonullStart of an invoice-date window, yyyy-MM-dd.
invoiceFromDueDatestringnonullStart of an invoice-due-date window, yyyy-MM-dd.
invoiceNumberstringnonullThe Ingram Micro invoice number.
invoiceStatusstringnonullInvoice status.
invoiceToDatestringnonullEnd of an invoice-date window, yyyy-MM-dd.
invoiceToDueDatestringnonullEnd of an invoice-due-date window, yyyy-MM-dd.
invoiceTypestringnonullInvoice type.
orderBystringnonullColumn name to sort on; pair it with direction.
orderDatestringnonullOrder date, yyyy-MM-dd.
orderFromDatestringnonullStart of an order-date window, yyyy-MM-dd.
orderNumberstringnonullIngram order number.
orderToDatestringnonullEnd of an order-date window, yyyy-MM-dd.
pageNumberintegerno11-based page number (default 1).
pageSizeintegerno25Records per page (default 25, max 100).
paymentTermsNetDatestringnonullPayment-terms net date, yyyy-MM-dd.
serialNumberstringnonullA product serial number.
specialBidNumberstringnonullSpecial-pricing bid number.

Renewals

ToolPlanAccessSummary
ingram_get_renewalFreeRead-onlyGet every detail for one renewal by its Ingram renewal id (from ingram_search_renewals).
ingram_search_renewalsFreeRead-onlySearch the renewals (service contracts, subscriptions and warranties) on your Ingram account.

[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.

ParamTypeRequiredDefaultDescription
renewalIdstringyesThe Ingram renewal id (from ingram_search_renewals).

[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).

ParamTypeRequiredDefaultDescription
customerOrderNumberstringnonullYour own PO / order number.
fieldsJsonstringnonullOptional JSON object body for ADVANCED search criteria. Omit for a basic search using only the query parameters below.
ingramPurchaseOrderNumberstringnonullThe Ingram sales order number the renewal came from.
pageintegerno11-based page number (default 1).
serialNumberstringnonullA product serial number.
sizeintegerno25Records per page (default 25, max 100).
sortstringnonullColumn to apply the sorting criteria to.

Deals

ToolPlanAccessSummary
ingram_get_dealFreeRead-onlyGet every detail for one deal by its deal id (from ingram_search_deals).
ingram_search_dealsFreeRead-onlySearch the special-pricing deals on your Ingram account by end-user name, vendor name or deal id.

[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).

ParamTypeRequiredDefaultDescription
dealIdstringyesThe deal id, also known as the special-bid number (from ingram_search_deals).

[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).

ParamTypeRequiredDefaultDescription
dealIdstringnonullDeal id, also known as the special-bid number.
endUserstringnonullThe end user / customer's name.
pageintegerno11-based page number (default 1).
sizeintegerno25Records per page (default 25, max 100).
vendorstringnonullThe vendor's name.

Returns

ToolPlanAccessSummary
ingram_create_returnProDestructiveOpen a return request (RMA) against a shipped order.
ingram_get_returnFreeRead-onlyGet every detail for one return claim by its case request number (from ingram_search_returns).
ingram_search_returnsFreeRead-onlySearch the return claims on your Ingram account.

[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.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body. Required: list (array of returned items). Each item REQUIRES invoiceNumber, invoiceDate, quantity, primaryReason, secondaryReason, shipFromInfo and numberOfBoxes, plus EITHER ingramPartNumber OR vendorPartNumber. Optional per item: customerOrderNumber, serialNumber, notes, referenceNumber, billToAddressId (the billing-address suffix). Reason values come from Ingram's predefined list — the same values ingram_search_returns accepts for returnReasonIn, e.g. '(EW) Express Warehousing', '(AR) Account Receivables', '(BB) Buy Back', '(BE) Stock Balance Exception'.

[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.

ParamTypeRequiredDefaultDescription
caseRequestNumberstringyesThe return request number (from ingram_search_returns).

[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).

ParamTypeRequiredDefaultDescription
caseRequestNumberstringnonullA unique return request number.
claimStatusInstringnonullComma-separated claim statuses. Ingram's predefined values: Open, Approved, Partially Approved, Denied, Voided.
createdOnBetweenstringnonullCreated-on date range for the return request: two comma-separated dates, 'start,end'.
ingramPartNumberstringnonullIngram Micro part number.
invoiceNumberstringnonullThe invoice number for the order being returned.
modifiedOnBetweenstringnonullLast-modified date range for the return request: two comma-separated dates, 'start,end'.
pageintegerno11-based page number (default 1).
referenceNumberstringnonullThe reference number for the return.
returnClaimIdstringnonullA unique return claim id.
returnReasonInstringnonullComma-separated return reasons from Ingram's predefined list, for example '(EW) Express Warehousing', '(AR) Account Receivables', '(BB) Buy Back', '(BE) Stock Balance Exception'.
returnStatusInstringnonullComma-separated return statuses. Ingram's predefined values: Open, Approved, Partially Approved, Denied, Voided.
sizeintegerno25Records per page (default 25, max 100).
sortstringnonullColumn to apply the sorting criteria to.
sortingColumnNamestringnonullThe column name to sort on.
vendorPartNumberstringnonullThe vendor's part number.

Freight

ToolPlanAccessSummary
ingram_estimate_freightFreeRead-onlyEstimate the freight cost for a prospective order.

[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.

ParamTypeRequiredDefaultDescription
customerContactstringnonullOptional override for the logged-in user's email address that Ingram requires on this endpoint; omit to use the email stored in the connector credentials.
fieldsJsonstringyesJSON object body describing the prospective order. Fields: lines (array; each with ingramPartNumber, quantity, and optionally customerLineNumber, warehouseId for the shipping warehouse and carrierCode for the carrier), plus EITHER shipToAddressId (the reseller's shipping address id issued by Ingram during onboarding) OR an inline shipToAddress OBJECT (companyName, addressLine1/2/3, city, state, postalCode, two-character ISO countryCode). Ingram's published spec types shipToAddress as an array, but the live endpoint binds it as a single object and rejects the array form with a 400 naming shipToAddress; StackJack unwraps a one-element array for you, so either form works here. Optional billToAddressId selects the billing address suffix when the account has more than one. Ingram declares each line's quantity as a STRING ("1", not 1) and StackJack converts a numeric quantity for you; warehouseId, customerLineNumber, shipToAddressId and postalCode are declared as strings too, so quote them.

Cloud Marketplace Customers

ToolPlanAccessSummary
ingram_cmp_create_customerProWriteCreate a Cloud Marketplace customer and associate it with the reseller that owns the credentials sending the request.
ingram_cmp_create_reseller_customerProWriteCreate a Cloud Marketplace customer and associate it with one specific sub-reseller instead of with your own account — the two-tier distribution case.
ingram_cmp_get_customerFreeRead-onlyGet extended details about one specific Cloud Marketplace customer.
ingram_cmp_list_customersFreeRead-onlyList Cloud Marketplace customers and their basic details.
ingram_cmp_list_reseller_customersFreeRead-onlyList the Cloud Marketplace customers that belong to one specific sub-reseller beneath your account.
ingram_cmp_update_customerProDestructiveUpdate the details and status of an existing Cloud Marketplace customer.

[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.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body. Required: name, address (streetAddress, postalCode, city, countryCode; state where applicable), contactPersons (array; each needs type of admin/billing/technical, firstName, lastName, email, phoneNumber in E.164), language. Optional: externalId, taxRegId, attributes, status (pending, active, creditHold, adminHold, cancelled, error — defaults to active).

[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.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body. Required: name, address (streetAddress, postalCode, city, countryCode; state where applicable), contactPersons (array; each needs type of admin/billing/technical, firstName, lastName, email, phoneNumber in E.164), language. Optional: externalId, taxRegId, attributes, status (defaults to active).
resellerIdstringyesThe ID of the reseller to be processed by the request — the sub-reseller that will own this customer (from ingram_cmp_list_resellers).

[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.

ParamTypeRequiredDefaultDescription
customerIdstringyesThe ID of the customer to be processed by the request (from ingram_cmp_list_customers).

[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.

ParamTypeRequiredDefaultDescription
emailstringnonullFind customers that have a contact person with the provided email address (exact match).
externalIdstringnonullFind customers that have an external ID assigned equal to the provided ID — the customer's id in your own system, e.g. 'EXTERNAL-A1S2D3'.
limitintegerno20Number of items to return. StackJack sends 20 when you omit it (Ingram's own default is 10) and caps it at 100 — Ingram documents no maximum of its own.
namestringnonullFind customers that are similar to the provided name (fuzzy company-name match, e.g. 'Acme').
offsetintegerno0Number of items to skip (default 0).
resellerIdstringnonullRestrict the result to customers owned by this reseller id (from ingram_cmp_list_resellers). Prefer ingram_cmp_list_reseller_customers when you always want one reseller's book.

[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.

ParamTypeRequiredDefaultDescription
emailstringnonullFind customers that have a contact person with the provided email address (exact match).
externalIdstringnonullFind customers that have an external ID assigned equal to the provided ID (the customer's id in your own system).
limitintegerno20Number of items to return. StackJack sends 20 when you omit it (Ingram's own default is 10) and caps it at 100 — Ingram documents no maximum of its own.
namestringnonullFind customers that are similar to the provided name (fuzzy company-name match).
offsetintegerno0Number of items to skip (default 0).
resellerIdstringyesThe ID of the reseller to be processed by the request (from ingram_cmp_list_resellers).

[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.

ParamTypeRequiredDefaultDescription
customerIdstringyesThe ID of the customer to be processed by the request (from ingram_cmp_list_customers).
fieldsJsonstringyesJSON object body with only the fields to change. All optional: name, externalId, taxRegId, status (active or creditHold are the documented transitions; the enum also allows pending, adminHold, cancelled, error), address, contactPersons.

Cloud Marketplace Orders

ToolPlanAccessSummary
ingram_cmp_create_orderProDestructivePlace a real Cloud Marketplace order for a set of products for a specific customer.
ingram_cmp_estimate_orderFreeRead-onlyGet the estimated price of a Cloud Marketplace order WITHOUT placing it.
ingram_cmp_get_orderFreeRead-onlyGet extended details of one specific Cloud Marketplace order.
ingram_cmp_list_ordersFreeRead-onlyList Cloud Marketplace orders with basic details.
ingram_cmp_list_reseller_ordersFreeRead-onlyList the Cloud Marketplace orders placed for one specific sub-reseller beneath your account.
ingram_cmp_update_orderProDestructiveUpdate the properties and status of an existing Cloud Marketplace order.

[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.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body. Required: type (sales, change, renewal, cancellation, migration or unknown) and customerId. products is an array of ordered items, each with mpn plus vendor, quantity, billingPeriod/subscriptionPeriod ({type, duration}) and a parameters array. Optional: poNumber, planId, subscriptionPeriod, billingModel, creditCheck, attributes, subscriptionId, and the migration fields (startDate, migrationDate, expirationDate, autorenewal, migrationProgram).

[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.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body — the same shape as ingram_cmp_create_order. Required: type (sales, change, renewal, cancellation, migration or unknown) and customerId. products is an array of items, each with mpn plus vendor, quantity and billingPeriod/subscriptionPeriod ({type, duration}). Optional: poNumber, planId, subscriptionPeriod, billingModel, attributes.

[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.

ParamTypeRequiredDefaultDescription
orderIdstringyesThe ID of the order that must be processed by the request (from ingram_cmp_list_orders).

[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.

ParamTypeRequiredDefaultDescription
creationTimeFromstringnonullThe beginning of a specific period of time used to search for orders created during that same period (ISO-8601 date/time).
creationTimeTostringnonullThe end of a specific period of time used to search for orders created during that same period (ISO-8601 date/time).
customerIdstringnonullThe ID of the customer for whom the order was placed (from ingram_cmp_list_customers).
limitintegerno20Number of items to return. StackJack sends 20 when you omit it (Ingram's own default is 10) and caps it at 100 — Ingram documents no maximum of its own.
offsetintegerno0Number of items to skip (default 0).
orderNumberstringnonullOrder Number — the human-readable order number rather than the platform id.
statusstringnonullThe order status, one of: submitted, processing, error, completed, cancelled.
statusCodestringnonullInternal status code of the order — a finer-grained vendor code alongside status, e.g. 'CL'.
subscriptionIdstringnonullThe ID of the subscription created from the order (from ingram_cmp_list_subscriptions).

[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.

ParamTypeRequiredDefaultDescription
creationTimeFromstringnonullThe beginning of a specific period of time used to search for orders created during that same period (ISO-8601 date/time).
creationTimeTostringnonullThe end of a specific period of time used to search for orders created during that same period (ISO-8601 date/time).
customerIdstringnonullThe ID of the customer for whom the order was placed (from ingram_cmp_list_reseller_customers).
limitintegerno20Number of items to return. StackJack sends 20 when you omit it (Ingram's own default is 10) and caps it at 100 — Ingram documents no maximum of its own.
offsetintegerno0Number of items to skip (default 0).
resellerIdstringyesThe ID of the reseller to be processed by the request (from ingram_cmp_list_resellers).
statusstringnonullThe order status, one of: submitted, processing, error, completed, cancelled.
subscriptionIdstringnonullThe ID of the subscription created from the order (from ingram_cmp_list_subscriptions).

[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.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body. Both fields optional: creditCheck (boolean — defines whether the customer's credit should be checked on order processing) and statusCode (string — the internal status code of the order, e.g. 'CL').
orderIdstringyesThe ID of the order that must be processed by the request (from ingram_cmp_list_orders).

Cloud Marketplace Resellers

ToolPlanAccessSummary
ingram_cmp_create_resellerProWriteCreate a Cloud Marketplace sub-reseller beneath your own account — onboarding a new second-tier partner that will then own its own customers and orders.
ingram_cmp_get_resellerFreeRead-onlyGet extended details about one specific Cloud Marketplace sub-reseller.
ingram_cmp_list_resellersFreeRead-onlyList the Cloud Marketplace sub-resellers beneath your account, with their basic details.
ingram_cmp_update_resellerProDestructiveUpdate the details of an existing Cloud Marketplace sub-reseller.

[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.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body. Required: name, address (streetAddress, postalCode, city, countryCode; state where applicable), contactPersons (array; each needs type of admin/billing/technical, firstName, lastName, email, phoneNumber in E.164), language, currency (e.g. 'USD'). Optional: externalId, taxRegId, taxationProviderName, customerClass, attributes, status (pending, active, creditHold, adminHold, cancelled, error — defaults to active).

[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.

ParamTypeRequiredDefaultDescription
resellerIdstringyesThe ID of the reseller to be processed by the request (from ingram_cmp_list_resellers).

[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.

ParamTypeRequiredDefaultDescription
emailstringnonullFind resellers that have a contact person with the provided email address (exact match).
externalIdstringnonullFind resellers that have an external ID assigned equal to the provided ID — the reseller's id in your own system, e.g. 'EXTERNAL-A1S2D3'.
limitintegerno20Number of items to return. StackJack sends 20 when you omit it (Ingram's own default is 10) and caps it at 100 — Ingram documents no maximum of its own.
namestringnonullFind resellers that are similar to the provided name (fuzzy company-name match).
offsetintegerno0Number of items to skip (default 0).

[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.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body with only the fields to change. All optional: name, externalId, taxRegId, status (active or creditHold are the documented transitions; the enum also allows pending, adminHold, cancelled, error), address, contactPersons.
resellerIdstringyesThe ID of the reseller to be processed by the request (from ingram_cmp_list_resellers).

Cloud Marketplace Catalog

ToolPlanAccessSummary
ingram_cmp_get_service_planFreeRead-onlyGet 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.
ingram_cmp_list_productsFreeRead-onlyList the Cloud Marketplace products available for you to sell or resell, with details included.
ingram_cmp_list_service_plansFreeRead-onlyList 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.

[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.

ParamTypeRequiredDefaultDescription
planIdstringyesThe ID of the service plan that must be processed by the request (from ingram_cmp_list_service_plans).

[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.

ParamTypeRequiredDefaultDescription
limitintegerno20Number of items to return. StackJack sends 20 when you omit it (Ingram's own default is 10) and caps it at 100 — Ingram documents no maximum of its own.
mpnstringnonullMPN value — the Manufacturer Part Number / vendor part identifier to match.
namestringnonullProduct name — filter by the product's display name.
offsetintegerno0Number of items to skip (default 0).
serviceNamestringnonullService name — filter by the parent cloud service, e.g. the vendor service the product belongs to.
vendorstringnonullManufacturer ID value — the vendor identifier, e.g. 'NewVendor1'.

[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.

ParamTypeRequiredDefaultDescription
limitintegerno20Number of items to return. StackJack sends 20 when you omit it (Ingram's own default is 10) and caps it at 100 — Ingram documents no maximum of its own.
offsetintegerno0Number of items to skip (default 0).

Cloud Marketplace Subscriptions

ToolPlanAccessSummary
ingram_cmp_get_subscriptionFreeRead-onlyGet extended details of one specific Cloud Marketplace subscription.
ingram_cmp_list_subscriptionsFreeRead-onlyList the Cloud Marketplace subscriptions belonging to the customers of the reseller that owns the credentials sending the request.
ingram_cmp_update_subscriptionProDestructiveUpdate some of the details of a live Cloud Marketplace subscription.
ingram_cmp_update_subscription_pricingProDestructiveApply special pricing to a live Cloud Marketplace subscription.

[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.

ParamTypeRequiredDefaultDescription
subscriptionIdstringyesThe ID of the subscription that must be processed by the request (from ingram_cmp_list_subscriptions).

[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.

ParamTypeRequiredDefaultDescription
creationDateFromstringnonullFind subscriptions that were created after the specified date (ISO-8601 date/time).
creationDateTostringnonullFind subscriptions that were created before the specified date (ISO-8601 date/time).
customerIdstringnonullThe ID of the subscription owner — the customer (from ingram_cmp_list_customers).
limitintegerno20Number of items to return. StackJack sends 20 when you omit it (Ingram's own default is 10) and caps it at 100 — Ingram documents no maximum of its own.
offsetintegerno0Number of items to skip (default 0).
statusstringnonullThe subscription status filter, one of: pending (the subscription and its services are not ready yet), active, hold, terminated, removed.

[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.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body with only the fields to change. All optional: products (array; each entry has mpn and/or id plus optional unitPrice, unitCost, unitProviderCost — each a {currency, amount} object), attributes (dictionary of custom string attributes), renewalStatus (boolean auto-renew flag).
subscriptionIdstringyesThe ID of the subscription that must be processed by the request (from ingram_cmp_list_subscriptions).

[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.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body. Required: products (array). Each entry: mpn and/or id to identify the product, plus optional unitPrice, unitCost and unitProviderCost — each a {currency, amount} object where amount is a string; unitPrice and unitCost also accept a priceTiers array for tier-priced products.
subscriptionIdstringyesThe ID of the subscription that must be processed by the request (from ingram_cmp_list_subscriptions).

Cloud Marketplace Reports

ToolPlanAccessSummary
ingram_cmp_create_reportProWriteSchedule generation of a one-time Cloud Marketplace rated-data report.
ingram_cmp_get_reportFreeRead-onlyGet extended details about one specific Cloud Marketplace report.
ingram_cmp_list_reportsFreeRead-onlyList the reseller's Cloud Marketplace rated-data reports exported during a specified period.

[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.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body. Required: name (the preconfigured report name as defined in the platform) and startDate (report period start date/time). Optional: endDate, format (csv, xml, xlsx, json), type (periodic, daily, monthly, onetime, on_invoice), customizationName.

[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.

ParamTypeRequiredDefaultDescription
reportIdstringyesThe ID of the report to be processed by the request (from ingram_cmp_list_reports or the response of ingram_cmp_create_report).

[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.

ParamTypeRequiredDefaultDescription
formatstringnonullThe format filter of the requested reports. Available types: json, xml, csv, xlsx.
fromstringnonullThe first day of the requested period (bounds the report period, ISO-8601 date/time).
limitintegerno20Number of items to return. StackJack sends 20 when you omit it (Ingram's own default is 10) and caps it at 100 — Ingram documents no maximum of its own.
namestringnonullThe name of the requested reports — the preconfigured report name as defined in the platform.
offsetintegerno0Number of items to skip (default 0).
statusstringnonullThe status filter of the requested reports. Available types: submitted, processing, completed, error.
tostringnonullThe last day of the requested period (bounds the report period, ISO-8601 date/time).
typestringnonullThe type filter of the requested reports. Available types: periodic, daily, monthly, onetime, on_invoice.

Cloud Marketplace Validation

ToolPlanAccessSummary
ingram_cmp_validate_parametersFreeRead-onlyValidate the product activation parameters for a set of Cloud Marketplace products before you place an order.

[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.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body. Required: customerId (the ID of the customer that will receive the product or services) and products (array). Each product entry requires a parameters array (each with name plus value or structured_value) and identifies the product by mpn and/or id; optional vendor, quantity, billingPeriod, subscriptionPeriod, draftRequestId. Optional top-level type: sales, change, renewal, cancellation, migration or unknown.