Skip to main content
Tools Reference

D&H Distributing Tools

Written By Christopher Scaminaci

Last updated 7 days ago

D&H Distributing Tools

dnh_ · 18 tools · Free 16 · Pro 2 Two independent D&H surfaces in one connector, sold separately, so either can be configured alone. The REST Customer Order Management API uses a client id and secret; every call carries a company code - US, Canada or DSC - and a ten-digit account number, both defaulted from the credential and overridable per tool. It pages on a scroll id with a page size that must be a multiple of ten between 10 and 200, and array filters are comma-joined and capped at 50 values. The XML dispatch surface authenticates with a D&H website user code and password carried inside the request document, and its XML responses are converted to JSON. That vocabulary forks by country: the US and Canada offer different carriers and branches, Canada uses province and postal code rather than state and ZIP, and Canada has no expected-ship-date element - supplying one is rejected rather than ignored. Neither surface has a cancellation endpoint.

All connector tools · D&H Distributing setup guide

D&H Distributing tool groups

Items

ToolPlanAccessSummary
dnh_get_itemFreeRead-onlyGet full product detail for one D&H item — more than price and availability alone return.
dnh_get_item_availabilityFreeRead-onlyGet real-time inventory availability for one D&H item, broken down by distribution centre.
dnh_get_item_availability_bulkFreeRead-onlyGet real-time inventory availability for up to 50 items in one call, each broken down by distribution centre.
dnh_get_item_priceFreeRead-onlyGet the real-time customer-specific price for one D&H item.
dnh_get_item_price_and_availabilityFreeRead-onlyGet price and inventory availability for one D&H item in a single call — the tool to prefer when quoting, since it halves the round trips versus dnh_get_item_price plus dnh_get_item_availability.
dnh_get_item_price_and_availability_bulkFreeRead-onlyGet price and inventory availability together for up to 50 items in one call — the most efficient way to build a multi-line quote.
dnh_get_item_prices_bulkFreeRead-onlyGet customer-specific prices for up to 50 items in one call.
dnh_search_itemsFreeRead-onlyFind D&H products by manufacturer part number, your own customer item number, or UPC — the tool to reach for when you do not yet know the D&H item number.

[D&H Distributing] Get full product detail for one D&H item — more than price and availability alone return. itemId is the D&H item number (e.g. TI83PLUS); to look an item up by manufacturer part number, customer item number or UPC, use dnh_search_items instead.

ParamTypeRequiredDefaultDescription
accountNumberstringnonullOverride the saved 10-digit D&H account number. Omit to use the account saved on the connector.
dandhTenantstringnonullOverride the D&H company: dhus (US), dhca (Canada), or dsc. Omit to use the saved default.
itemIdstringyesThe D&H item number, e.g. TI83PLUS (max 25 alphanumeric characters).

[D&H Distributing] Get real-time inventory availability for one D&H item, broken down by distribution centre. itemId is the D&H item number (e.g. TI83PLUS). Use this before submitting an order to confirm stock, and dnh_get_item_availability_bulk for up to 50 items at once.

ParamTypeRequiredDefaultDescription
accountNumberstringnonullOverride the saved 10-digit D&H account number. Omit to use the account saved on the connector.
dandhTenantstringnonullOverride the D&H company: dhus (US), dhca (Canada), or dsc. Omit to use the saved default.
itemIdstringyesThe D&H item number, e.g. TI83PLUS (max 25 alphanumeric characters).

[D&H Distributing] Get real-time inventory availability for up to 50 items in one call, each broken down by distribution centre. Identify items either by D&H item number (items) or by your own customer item numbers (customerItemNumbers); each list is capped at 50. Provide at least one of the two lists.

ParamTypeRequiredDefaultDescription
accountNumberstringnonullOverride the saved 10-digit D&H account number. Omit to use the account saved on the connector.
customerItemNumbersarraynonullYour own customer item numbers for the products, if you have mapped them in D&H. Max 50.
dandhTenantstringnonullOverride the D&H company: dhus (US), dhca (Canada), or dsc. Omit to use the saved default.
itemsarraynonullD&H item numbers, e.g. ["TI83PLUS","52T"]. Max 50.

[D&H Distributing] Get the real-time customer-specific price for one D&H item. itemId is the D&H item number (e.g. TI83PLUS), not the manufacturer part number — use dnh_search_items to resolve a manufacturer number or UPC first. Pass quantity to get volume pricing for that quantity. For several items at once use dnh_get_item_prices_bulk (up to 50).

ParamTypeRequiredDefaultDescription
accountNumberstringnonullOverride the saved 10-digit D&H account number. Omit to use the account saved on the connector.
dandhTenantstringnonullOverride the D&H company: dhus (US), dhca (Canada), or dsc. Omit to use the saved default.
itemIdstringyesThe D&H item number, e.g. TI83PLUS (max 25 alphanumeric characters).
quantityintegernonullUnits being priced, for volume pricing. Omit for single-unit price.

[D&H Distributing] Get price and inventory availability for one D&H item in a single call — the tool to prefer when quoting, since it halves the round trips versus dnh_get_item_price plus dnh_get_item_availability. itemId is the D&H item number (e.g. TI83PLUS). Pass quantity for volume pricing.

ParamTypeRequiredDefaultDescription
accountNumberstringnonullOverride the saved 10-digit D&H account number. Omit to use the account saved on the connector.
dandhTenantstringnonullOverride the D&H company: dhus (US), dhca (Canada), or dsc. Omit to use the saved default.
itemIdstringyesThe D&H item number, e.g. TI83PLUS (max 25 alphanumeric characters).
quantityintegernonullUnits being priced, for volume pricing. Omit for single-unit price.

[D&H Distributing] Get price and inventory availability together for up to 50 items in one call — the most efficient way to build a multi-line quote. Identify items either by D&H item number (items) or by your own customer item numbers (customerItemNumbers); each list is capped at 50. Provide at least one of the two lists.

ParamTypeRequiredDefaultDescription
accountNumberstringnonullOverride the saved 10-digit D&H account number. Omit to use the account saved on the connector.
customerItemNumbersarraynonullYour own customer item numbers for the products, if you have mapped them in D&H. Max 50.
dandhTenantstringnonullOverride the D&H company: dhus (US), dhca (Canada), or dsc. Omit to use the saved default.
itemsarraynonullD&H item numbers, e.g. ["TI83PLUS","52T"]. Max 50.

[D&H Distributing] Get customer-specific prices for up to 50 items in one call. Identify items either by D&H item number (items) or by your own customer item numbers (customerItemNumbers); each list is capped at 50 and anything beyond that is dropped. Provide at least one of the two lists.

ParamTypeRequiredDefaultDescription
accountNumberstringnonullOverride the saved 10-digit D&H account number. Omit to use the account saved on the connector.
customerItemNumbersarraynonullYour own customer item numbers for the products, if you have mapped them in D&H. Max 50.
dandhTenantstringnonullOverride the D&H company: dhus (US), dhca (Canada), or dsc. Omit to use the saved default.
itemsarraynonullD&H item numbers, e.g. ["TI83PLUS","52T"]. Max 50.

[D&H Distributing] Find D&H products by manufacturer part number, your own customer item number, or UPC — the tool to reach for when you do not yet know the D&H item number. Supply at least one search criterion. Results page via scrollId: pass the scrollId returned by the previous call to fetch the next page. pageSize must be a multiple of 10 between 10 and 200 (default 50) and is rounded down to a multiple of 10 if it is not.

ParamTypeRequiredDefaultDescription
accountNumberstringnonullOverride the saved 10-digit D&H account number. Omit to use the account saved on the connector.
customerItemNumberstringnonullA single customer item number (your own SKU as mapped in D&H).
customerItemNumbersarraynonullSeveral customer item numbers. Max 50.
dandhTenantstringnonullOverride the D&H company: dhus (US), dhca (Canada), or dsc. Omit to use the saved default.
itemsarraynonullD&H item numbers to look up. Max 50.
pageSizeintegernonullResults per page: a multiple of 10 from 10 to 200. Omit for the D&H default of 50.
scrollIdstringnonullPagination cursor from a previous response. Omit for the first page.
universalProductCodestringnonullA 12- or 13-digit Universal Product Code (UPC).
vendorItemIdstringnonullA single manufacturer (vendor) part number, e.g. 01G-P3-1302-LR.
vendorItemIdsarraynonullSeveral manufacturer part numbers to look up at once. Max 50.

Orders

ToolPlanAccessSummary
dnh_create_sales_orderProDestructiveSubmit a sales order to D&H.
dnh_get_sales_order_trackingFreeRead-onlyGet the status and shipment tracking of one sales order by its D&H order id.
dnh_list_carriersFreeRead-onlyList the shipping carriers available to this account for order placement.
dnh_list_sales_order_trackingFreeRead-onlyLook up the status and shipment tracking of previously submitted orders by D&H order number, your purchase order number, or D&H invoice number.

[D&H Distributing] Submit a sales order to D&H. DESTRUCTIVE AND NOT REVERSIBLE: this places a real purchase order against the customer's D&H account and there is no cancellation endpoint — a mistake has to be resolved with a D&H sales representative. Confirm price and stock with dnh_get_item_price_and_availability_bulk and carrier names with dnh_list_carriers first. orderJson is the order body. Required: customerPurchaseOrder (your PO, max 30 chars; use a fresh PO per order — D&H documents duplicate-PO rejection for its XML lane and the REST spec is silent on the rule, so do not rely on reuse either way) and shipments — an array where each entry has lines, an array of line objects carrying exactly one of item (D&H item number) or customerItemNumber, plus orderQuantity. Optional per shipment: branch (BR01 Mid-Atlantic, BR03 Toronto, BR04 West Coast, BR05 Midwest, BR06 Atlanta, BR08 Vancouver — omit to let D&H pick the best warehouse). Optional per line: unitPrice, fulfillEntireQuantityOnly, externalLineNumber, clientReferenceData. Optional at the top level: shipping (serviceType one of pickup/ground/nextDay/secondDay/nextDaySaturdayDelivery/firstClassMail/priorityMail, carrier, allowPartialShipment, allowBackOrder — setting both allow flags false can cause D&H to cancel an order it cannot fill completely), deliveryAddress (drop-ship authorized accounts only; requires deliveryName and address with street/city/region/postalCode/country), endUserData, specialInstructions (any value routes the order to a D&H representative for manual review), freightBillingAccount, flooringAuthorizationNumber, clientReferenceData, enrollDevices with customerOrganizationId. Example: {"customerPurchaseOrder":"PO-1042","shipping":{"carrier":"FedEx","serviceType":"ground"},"shipments":[{"lines":[{"item":"TI83PLUS","orderQuantity":5}]}]}

ParamTypeRequiredDefaultDescription
accountNumberstringnonullOverride the saved 10-digit D&H account number. Omit to use the account saved on the connector.
dandhTenantstringnonullOverride the D&H company: dhus (US), dhca (Canada), or dsc. Omit to use the saved default.
orderJsonstringyesThe order body as a JSON object. Minimum shape: {"customerPurchaseOrder":"PO-1042","shipments":[{"lines":[{"item":"TI83PLUS","orderQuantity":5}]}]}

[D&H Distributing] Get the status and shipment tracking of one sales order by its D&H order id. Use dnh_list_sales_order_tracking when you only have a purchase order number or an invoice number.

ParamTypeRequiredDefaultDescription
accountNumberstringnonullOverride the saved 10-digit D&H account number. Omit to use the account saved on the connector.
dandhTenantstringnonullOverride the D&H company: dhus (US), dhca (Canada), or dsc. Omit to use the saved default.
idintegeryesThe D&H sales order id (from dnh_list_sales_order_tracking or a dnh_create_sales_order response).

[D&H Distributing] List the shipping carriers available to this account for order placement. Call this before dnh_create_sales_order to get valid carrier names — the order's shipping.carrier must be one of these. Optionally filter by shipMode: parcel, lessThanTruckload, or fullTruckload. Results page via scrollId; pageSize is a multiple of 10 from 10 to 200 (default 50).

ParamTypeRequiredDefaultDescription
accountNumberstringnonullOverride the saved 10-digit D&H account number. Omit to use the account saved on the connector.
dandhTenantstringnonullOverride the D&H company: dhus (US), dhca (Canada), or dsc. Omit to use the saved default.
pageSizeintegernonullResults per page: a multiple of 10 from 10 to 200. Omit for the D&H default of 50.
scrollIdstringnonullPagination cursor from a previous response. Omit for the first page.
shipModestringnonullFilter to carriers supporting a shipment mode: parcel, lessThanTruckload, or fullTruckload. Omit for all.

[D&H Distributing] Look up the status and shipment tracking of previously submitted orders by D&H order number, your purchase order number, or D&H invoice number. At least one of the three identifiers is required. Use this to answer "where is my order" and to retrieve carrier tracking numbers. Results page via scrollId; pageSize is a multiple of 10 from 10 to 200 (default 50).

ParamTypeRequiredDefaultDescription
accountNumberstringnonullOverride the saved 10-digit D&H account number. Omit to use the account saved on the connector.
dandhTenantstringnonullOverride the D&H company: dhus (US), dhca (Canada), or dsc. Omit to use the saved default.
invoiceNumberstringnonullThe D&H 10-digit invoice number.
orderNumberintegernonullThe D&H order number.
pageSizeintegernonullResults per page: a multiple of 10 from 10 to 200. Omit for the D&H default of 50.
purchaseOrderNumberstringnonullYour purchase order number for the order (max 30 characters).
scrollIdstringnonullPagination cursor from a previous response. Omit for the first page.

XML Items

ToolPlanAccessSummary
dnh_xml_get_availabilityFreeRead-onlyGet inventory availability for up to 50 D&H items via the XML dispatch surface, broken down by distribution centre.
dnh_xml_get_priceFreeRead-onlyGet unit prices for up to 50 D&H items via the XML dispatch surface.
dnh_xml_get_price_and_availabilityFreeRead-onlyGet price and inventory availability together via the XML dispatch surface.
dnh_xml_item_inquiryFreeRead-onlyGet detailed product data for ONE item via the XML dispatch surface — the richest item read D&H offers, and the only one exposing several of these fields: UNITPRICE at the quantity you ask for (volume…

[D&H Distributing] Get inventory availability for up to 50 D&H items via the XML dispatch surface, broken down by distribution centre. Needs the DandH.com user code and password rather than the REST API credentials. Prefer dnh_get_item_availability_bulk unless this account only has XML access. Each ITEM returns a BRANCHQTY array of BRANCH, QTY and INSTOCKDATE (the expected restock date when a branch is out of stock) plus TOTALQTY across all branches. Anything past the first 50 item numbers is dropped.

ParamTypeRequiredDefaultDescription
partNumbersarrayyesD&H item numbers, e.g. ["52T","STYLUSCOLOR880"]. Max 50.

[D&H Distributing] Get unit prices for up to 50 D&H items via the XML dispatch surface. Needs the DandH.com user code and password rather than the REST API credentials. Prefer dnh_get_item_prices_bulk unless this account only has XML access. Returns an ITEM array of PARTNUM plus UNITPRICE; an item that could not be priced carries a MESSAGE instead. Anything past the first 50 item numbers is dropped.

ParamTypeRequiredDefaultDescription
partNumbersarrayyesD&H item numbers, e.g. ["52T","STYLUSCOLOR880"]. Max 50.

[D&H Distributing] Get price and inventory availability together via the XML dispatch surface. NOTE the lower limit: a combined request accepts only 25 item numbers, half the 50 that dnh_xml_get_price and dnh_xml_get_availability allow, and anything past the first 25 is dropped. Needs the DandH.com user code and password rather than the REST API credentials. Prefer dnh_get_item_price_and_availability_bulk unless this account only has XML access.

ParamTypeRequiredDefaultDescription
partNumbersarrayyesD&H item numbers, e.g. ["52T","STYLUSCOLOR880"]. Max 25 for a combined request.

[D&H Distributing] Get detailed product data for ONE item via the XML dispatch surface — the richest item read D&H offers, and the only one exposing several of these fields: UNITPRICE at the quantity you ask for (volume pricing), ERP (estimated retail price), REBATEVALUE and REBATEENDDATE, and the ISNONSTOCK, ISFACTORYDIRECT, FREEFRT and RESTRICTED flags, plus per-branch quantities. Needs the DandH.com user code and password rather than the REST API credentials. Set lookupType to DH when partNumber is a D&H item number, or MFR when it is a manufacturer part number.

ParamTypeRequiredDefaultDescription
lookupTypestringyesWhich numbering the partNumber uses: DH (D&H item number) or MFR (manufacturer part number).
partNumberstringyesThe item number to look up — a D&H item number when lookupType is DH, a manufacturer part number when it is MFR.
quantityintegeryesQuantity to price, for volume pricing. Use 1 for the single-unit price.

XML Orders

ToolPlanAccessSummary
dnh_xml_create_orderProDestructiveSubmit an order via the XML dispatch surface.
dnh_xml_get_order_statusFreeRead-onlyLook up detailed order status via the XML dispatch surface — the richest order read D&H offers.

[D&H Distributing] Submit an order via the XML dispatch surface. DESTRUCTIVE AND NOT REVERSIBLE: a real purchase order on the customer's D&H account, no cancellation endpoint, and the PO number must be unique per account. ALWAYS read STATUS before treating the order as placed: success carries ORDERNUM; failure carries MESSAGE and no ORDERNUM, and is an ORDINARY RESULT, not an error. A retry with the same PO is rejected rather than deduplicated, so use a fresh PO. Prefer dnh_create_sales_order unless this account only has XML access. Confirm price and stock first. RESULT SHAPE in full: a placed order is {"ORDERNUM":"5005560","STATUS":"success"} (ORDERNUM is the D&H order number, present only on success); a rejected one is {"STATUS":"failure","MESSAGE":"..."} with no ORDERNUM. D&H reports submission failure inside the document, so a response is not proof the order exists. Both countries' guides document the same three elements. The XML service serves BOTH the US (dandh.com) and Canada (dandh.ca), and the accepted values below differ by country. The country is configured on the connector, not passed here. Every closed-vocabulary value is checked BEFORE transmission, and a rejection names this tenant's own valid values — so when in doubt, submit and read the error rather than guessing; no PO number is consumed by a rejected request. Shipping: shipCarrier is one of Pickup, UPS, FedEx, USPS (US) or Pickup, FedEx, Purolator (Canada). shipService is one of Pickup, Ground, 2nd Day Air, Next Day Air, FirstClassMail, PriorityMail, Red Sat Del (US) or Pickup, Ground, 2nd Day Air, Next Day Air (Canada). onlyBranch and a line's branch use distribution-centre city names — Harrisburg, California, Chicago or Atlanta (US); Toronto or Vancouver (Canada) — NOT the BR01-BR08 codes the REST API uses; omit both to let D&H pick the best branch from the ship-to address. expectedShipDate is US-only and is REJECTED on a Canadian account rather than dropped. Fulfilment flags matter: allowPartialShipment and allowBackOrder both default to true when omitted. Setting BOTH to false means the order FAILS unless every quantity is available at one branch. false/true backorders the shortfall; true/false spreads across branches and silently drops what it cannot fill; true/true spreads and backorders. linesJson is a JSON array of line objects: partNumber and quantity are required, branch and price optional (price is available to select accounts only). endUserDataJson is an optional JSON object of end-user registration fields keyed by D&H field name — valid keys are ORGANIZATION, ATTENTION, ADDRESS, ADDRESS2, CITY, PONUM, DEPARTMENT, PHONE, FAX, EMAIL, AUTHQUOTENUM, MCN, CCOIDNUM, SERIALNUM, ESDEMAIL, RESELLEREMAIL, RESELLERPHONE, CUSTACCTNO, DATEOFSALE, MODELNO, SKU, DOMAIN, ADMINEMAIL, UPDATETYPE, SUPPORTSTARTDATE, plus STATE and ZIP on a US account or PROVINCE and POSTALCODE on a Canadian one. Any value in remarks puts the order On Hold awaiting a D&H sales representative — it is not a free annotation field. Drop-ship fields (shipTo*) apply to drop-ship authorized accounts only and may need dropShipPassword.

ParamTypeRequiredDefaultDescription
allowBackOrderbooleannonullAllow unavailable quantities to be backordered. Omit for the D&H default (true).
allowPartialShipmentbooleannonullAllow partial shipments when a branch cannot fill everything. Omit for the D&H default (true).
dropShipPasswordstringnonullDrop-ship password, if one is assigned to the account. Required for drop-ship orders on such accounts.
endUserDataJsonstringnonullOptional JSON object of end-user registration fields keyed by D&H field name, e.g. {"ORGANIZATION":"Acme Ltd","EMAIL":"it@acme.com"}. The address pair is STATE/ZIP on a US account and PROVINCE/POSTALCODE on a Canadian one; the wrong pair is rejected with the valid list.
expectedShipDatestringnonullRequested ship date as MM/DD/YYYY. US accounts only — D&H Canada's XML service has no such field, and supplying it on a Canadian account is rejected rather than ignored. Needs prior arrangement with a D&H representative.
linesJsonstringyesJSON array of order lines. Each: {"partNumber":"52T","quantity":5} with optional "branch" (US: Harrisburg|California|Chicago|Atlanta; Canada: Toronto|Vancouver) and "price". Example: [{"partNumber":"52T","quantity":5},{"partNumber":"STYLUSCOLOR880","quantity":1}]
onlyBranchstringnonullShip the whole order from one branch only. US: Harrisburg, California, Chicago, or Atlanta. Canada: Toronto or Vancouver. Omit to let D&H choose.
purchaseOrderNumberstringyesYour purchase order number (max 30 characters). Must not duplicate any previous PO on this D&H account.
remarksstringnonullSpecial instructions (max 58 characters). WARNING: any value places the order On Hold for manual review by a D&H representative.
shipBillToAccountstringnonullFreight account to bill shipping charges to (max 10 characters).
shipCarrierstringyesShipping carrier. US: Pickup, UPS, FedEx, or USPS. Canada: Pickup, FedEx, or Purolator.
shipServicestringyesShipping service. US: Pickup, Ground, 2nd Day Air, Next Day Air, FirstClassMail, PriorityMail, or Red Sat Del. Canada: Pickup, Ground, 2nd Day Air, or Next Day Air.
shipToAddressstringnonullDrop-ship street address (max 30 characters).
shipToAddress2stringnonullDrop-ship street address line 2 (max 30 characters).
shipToAttentionstringnonullDrop-ship attention line (max 30 characters).
shipToCitystringnonullDrop-ship city (max 18 characters).
shipToNamestringnonullDrop-ship recipient name (max 25 characters). Drop-ship authorized accounts only.
shipToStatestringnonullDrop-ship state or province code (2 characters). Sent as SHIPTOSTATE on a US account and SHIPTOPROVINCE on a Canadian one; the connector picks the element name from the account's country.
shipToZipstringnonullDrop-ship ZIP or postal code. US: 5-digit or 9-digit hyphenated. Canada: 6 characters, space separated (e.g. L5N 1P9). Sent as SHIPTOZIP or SHIPTOPOSTALCODE to match the account's country. NOT validated locally — a malformed value reaches D&H on a real, non-cancellable purchase order.

[D&H Distributing] Look up detailed order status via the XML dispatch surface — the richest order read D&H offers. Returns, per order and branch: order date, PO and order numbers, invoice number (or "In Process"), INVTOTAL with tax/environmental-handling/freight/handling/subtotal attributes, sold-to and ship-to addresses, an ORDERDETAIL line list with price, quantity to ship, QTYBO backordered quantity, ETA, vendor and description, and a PACKAGE list with carrier, service, tracking number, ship date and the serial numbers of the items in each package. MESSAGE carries the order milestone: Cancelled, In-Process, Order Sent to Vendor for Fulfillment, Backordered, Shipped, or Invoiced. Supply any combination of purchase order numbers, D&H order numbers and D&H invoice numbers; each identifier is looked up separately and the combined total across all three lists is capped at 50. Backordered items produce an extra ORDERSTATUS entry: an entry with INVTOTAL 0 and QTYBO above 0 points at a spawned order number carrying the backordered quantity. Needs the DandH.com user code and password.

ParamTypeRequiredDefaultDescription
invoiceNumbersarraynonullD&H invoice numbers to look up.
orderNumbersarraynonullD&H order numbers to look up, e.g. ["5005560"].
purchaseOrderNumbersarraynonullYour purchase order numbers to look up, e.g. ["PO-1042"].