ingrammicro_create_order
Places real purchase orders for standard SKUs (stocked, direct-ship, licensing, warranty) on net-terms, returning per-line success/error details and rejected items on partial failure.
Instructions
Place a real purchase order for stocked, direct-ship, licensing, or warranty SKUs. Real money against the reseller's net-terms account — Ingram does not support credit-card API ordering.
For cloud subscriptions, Quote-to-Order, or Configure-to-Order, use
ingrammicro_create_cloud_order instead — this tool is for standard
SKU ordering only. Confirm every SKU/quantity/price with a human
first; there is no dry-run mode. Returns per-line success/error/
warning counts and, on partial failure, a rejectedLineItems list
naming exactly which lines failed and why.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| lines | Yes | Order line items: [{"customerLineNumber": <unique numeric string, 1-884>, "ingramPartNumber": <Ingram's own SKU, required>, "quantity": <int>, "unitPrice": <optional decimal, not guaranteed>, "specialBidNumber": <optional, line-level pricing bid>, "notes": <optional>}]. Resolve ingramPartNumber via Ingram Micro's own MCP Server's product/catalog search first — this server has no catalog lookup of its own. | |
| notes | No | Order-level notes. | |
| ship_to_info | No | Optional shipping destination override: {"addressId" (Ingram-issued address id from onboarding), "contact", "companyName", "name1", "name2", "addressLine1/2/3", "city", "state", "postalCode", "countryCode", "phoneNumber", "email"}. Omit to ship to the address tied to addressId on the account. | |
| end_user_info | No | Optional end-customer identity, used for pricing/discount purposes: {"endUserId", "contact", "companyName", "name1", "name2", "addressLine1/2/3", "city", "state", "postalCode", "countryCode", "phoneNumber", "email"}. | |
| reseller_info | No | Optional reseller identity/address override: {"resellerId", "companyName", "contact", "addressLine1/2/3", "city", "state", "postalCode", "countryCode", "phoneNumber", "email"}. Omit to use the account's on-file reseller info. | |
| shipment_details | No | Optional shipping instructions: {"carrierCode", "freightAccountNumber" (bill reseller's own carrier account directly), "shipComplete" ("true"/"C"=hold until all lines ship, "P"=ship-complete per line, "E"=ship-complete across all distributions), "requestedDeliveryDate" (date, not guaranteed), "signatureRequired" (bool), "shippingInstructions"}. | |
| accept_back_order | No | Accept the order even if a line is backordered. Ignored if shipment_details.shipComplete is set. | |
| bill_to_address_id | No | Billing address suffix issued during onboarding. Omit for the default. | |
| special_bid_number | No | Header-level special-pricing bid number from the vendor. Line-level bids in `lines` take precedence. | |
| vendor_auth_number | No | Vendor authorization number — REQUIRED for warranty-SKU orders (the specific vendor mandates this; ask Ingram Micro sales which vendors need it). Without it, warranty orders are placed on hold. | |
| additional_attributes | No | Optional Ingram-specific flags as [{"attributeName", "attributeValue"}] pairs — e.g. allowPartialOrder, allowDuplicateCustomerOrderNumber, government-order fields (govtProgramType, govtEndUserType, etc). Rarely needed; omit unless a specific Ingram-documented flag is required. | |
| customer_order_number | Yes | Your own unique PO/order number for this order (max 35 chars). Ingram Micro tracks orders by this, not just its own order number — reuse of a number that already exists is rejected unless allowDuplicateCustomerOrderNumber is set via additional_attributes. | |
| end_customer_order_number | No | The end customer's own PO number, if any. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |