Product

Product API includes operations to get pricing and inventory in real time

APIDescription
POST product/pricing?customerNumber={customerNumber}

Product pricing returns SPA adjusted customer pricing, MSRP, dealer authorized flag, available and on order quantities. SPA information includes flag indicating pricing is SPA adjusted, SPA description, flag indicating there is a SPA restriction, SPA restriction description. SPA restrictions can include expiration date, min/max quantities.

POST product/availability?customerNumber={customerNumber}

Product availability returns quantity available given a list of warehouse numbers and item numbers

GET product/search?customerNumber={customerNumber}&itemNumber={itemNumber}&partNumberType={partNumberType}&manufacturer={manufacturer}&catalogName={catalogName}&categoryPath={categoryPath}&includeObsolete={includeObsolete}&searchText={searchText}&useAndOperator={useAndOperator}&region={region}&page={page}&pageSize={pageSize}

Product search allows for search for products by item number, manufacturer, general search text against descriptions

GET product/detail?customerNumber={customerNumber}&itemNumber={itemNumber}&partNumberType={partNumberType}&region={region}

Get detail about a product

CustomConfig

Get list of custom configurations

APIDescription
GET customconfig/list?customerNumber={customerNumber}

Get list of custom configurations

Address

Provides an api to handle operations on lists of addresses Addresses are stored in a collection key'd by a "CollectionKey" which is a string defined by the calling application.

APIDescription
GET address/{collectionKey}/{addressId}

Returns address for a given address Id

GET address/exists/{collectionKey}

Determines if collection exists and contains addresses

POST address/{collectionKey}

Create new address in collection Creates new collection if one does not exist

PUT address/{collectionKey}

Update address in collection

POST address/copy/{collectionKey}/{AddressId}

Copy existing address to new address

DELETE address/{collectionKey}/{addressId}

Delete Address

DELETE address/clear/{collectionKey}

Delete all addresses in collection

POST address/move/{sourceCollectionKey}/{destinationCollectionKey}/{addressId}

Moves an address from one collection to another.

GET address/search/{collectionKey}?page={page}&pageSize={pageSize}&name={name}&stateProvince={stateProvince}&postalCode={postalCode}&countryCode={countryCode}&searchText={searchText}&useAndOperator={useAndOperator}

Search for addresses in collection

GET address/countries/{region}

Get Countries codes and validation pattern for a given region

GET address/provinces/{countryCode}

Get provinces / state codes for given countryCode

POST address/validate

Validate address

Rma

Allow for creation of RMAs

APIDescription
POST rma?customerNumber={customerNumber}

Create RMA

VendorOrder

APIDescription
GET vendororder/subscription/{subscriptionId}

Get vendor usage by invoice

Spa

Allow for creation of SPA agreements

APIDescription
POST spa

Create SPA agreement

GET spa/summary?customerNumber={customerNumber}&salesOrg={salesOrg}&dealId={dealId}&endUser={endUser}&mfgCode={mfgCode}&validOn={validOn}&controlNumber={controlNumber}&description={description}&agreementTypes={agreementTypes}

SPA summary

POST spa/detail

Get agreement detail by agreement number

Invoice

Invoice API allows your application to interface with ScanSource backend ERP system in real time Includes operations to get invoice summary and detail

APIDescription
GET invoice/summary/{customerNumber}?page={page}&pageSize={pageSize}&salesOrderNumber={salesOrderNumber}&invoiceNumber={invoiceNumber}&poNumber={poNumber}&fromDate={fromDate}&toDate={toDate}

Get Invoice Summary allows customers to get a paged list of invoices. Search parameters can be specified to search by serial numbers and mac addresses within a given date range

GET invoice/list/{customerNumber}?page={page}&pageSize={pageSize}&salesOrderNumber={salesOrderNumber}&invoiceNumber={invoiceNumber}&poNumber={poNumber}&fromDate={fromDate}&toDate={toDate}

Get Invoice List allows customers to get a paged list of invoices with details.

GET invoice/detail/{customerNumber}/{invoiceNumber}?excludeSerialTracking={excludeSerialTracking}

Invoice Detail - returns details about an invoice including serial and tracking numbers

GET invoice/pdf/{customerNumber}/{invoiceNumber}

Get PDF of invoice

SystemCentral

System Central API allows you to search for System Central logs and pull summary information

APIDescription
GET systemcentral/summary/{customerNumber}?page={page}&pageSize={pageSize}&logNumber={logNumber}&poNumber={poNumber}&status={status}&fromDate={fromDate}&toDate={toDate}

Get Summary allows customers to get a paged list of System Central logs. Search parameters can be specified to search by log number, po number, statuses within a given date range

Tracking

Allow for creation of SPA agreements

APIDescription
GET tracking?customerNumber={customerNumber}&poNumber={poNumber}&salesOrderNumber={salesOrderNumber}

Get tracking info

GET tracking/shipment?customerNumber={customerNumber}&poNumber={poNumber}&salesOrderNumber={salesOrderNumber}

Get tracking info

Cart

Provides an api to handle the back-end for a single or multiple cart per user shopping cart system, as well as optionally providing the back-end for the checkout process. The carts are stored in a collection for each user key'd by a "cartCollectionKey" which is a string defined by the calling application. Each cart collection has a current cart. When a new cart is created, it becomes the current cart.There are methods to switch the current cart to another cart in the collection.There are methods which operate on the current cart, and also many equivalent methods that can work on any cart in the collection based on the cartID. CartID is not necessary on methods which operate on the collection's current cart.

APIDescription
GET cart/{cartCollectionKey}?cartId={cartId}

Returns current cart for the given cartCollectionKey optional id returns cart specified in cart collection

GET cart/exists/{cartCollectionKey}

Determines if cart collection exists and contains carts

POST cart/{cartCollectionKey}?currentCart={currentCart}

Create new cart in cart collection, optionally set as current cart Creates new cart collection if one does not exist

PUT cart/{cartCollectionKey}?updateCartItems={updateCartItems}

Update cart in cart collection

POST cart/copy/{cartCollectionKey}/{cartId}?currentCart={currentCart}

Copy existing cart to new cart Optionally set new cart as current cart

DELETE cart/{cartCollectionKey}?cartId={cartId}

Delete current cart or specific cart

GET cart/list/{cartCollectionKey}?name={name}

Returns an array of carts contained by the collection matching the received "cartCollectionKey". This method can be used for client applications to display a list of carts for the user to select as their current cart for systems which allow multiple carts per user.

POST cart/item/{cartCollectionKey}?cartId={cartId}

Add cart item to current cart or specified cartId

PUT cart/item/{cartCollectionKey}/{cartId}

Update cart item

DELETE cart/item/{cartCollectionKey}/{itemId}?cartId={cartId}

Delete current cart item or specific cart item

DELETE cart/clear/{cartCollectionKey}

Delete all carts in cart collection

GET cart/hascurrent/{cartCollectionKey}

Indicates if cart collection has current cart

PUT cart/switch/{cartCollectionKey}/{cartId}

For client applications which allow multiple carts per user, provides a way to switch what is considered the user's current cart to the cart matching the given cartID.

POST cart/move/{sourceCollectionKey}/{destinationCollectionKey}/{cartId}

Moves a cart from one collection to another. This could be used by a caller for many purposes such as providing a way to move a cart from one user to another, or to provide the server-side implementation of an approval queue by creating a collectionKey for the queue, and moving the cart to the queue collection upon submission.

POST cart/checkoutinfo/{cartCollectionKey}?cartId={cartId}

Add or update checkout info to current cart or cart specified by cartId

GET cart/checkoutinfo/{cartCollectionKey}?cartId={cartId}

Get checkout info from current cart or specified cart by cartId

CiscoDart

Allow for creation of SPA agreements

APIDescription
GET ciscodart/summary?customerNumber={customerNumber}

Cisco Dart summary

GET ciscodart/detail?dealId={dealId}

Cisco Dart detail

SalesOrder

Sales Order API allows your application to interface with ScanSource backend ERP system in real time Includes operations to create orders, get available shipping options with freight amounts, get tracking info, get order detail and cancel orders

APIDescription
POST salesorder/create?customerNumber={customerNumber}

Create a new sales order in ScanSource’s ERP system. When the order is created clients receive a response with a sales order number.

POST salesorder/createAsync?customerNumber={customerNumber}

Create a new sales order in ScanSource’s ERP system. When the order is created clients receive a response with sales order number.

POST salesorder/vrd?customerNumber={customerNumber}

Allows consumer to know which vendor required fields are necessary to collect before order creation fields returned should be included on the salesorder/create VRDAnswers array

GET salesorder/summary/{customerNumber}?page={page}&pageSize={pageSize}&salesOrderNumber={salesOrderNumber}&poNumber={poNumber}&referenceNumber={referenceNumber}&status={status}&docType={docType}&fromDate={fromDate}&toDate={toDate}&fromLastChangeDate={fromLastChangeDate}&toLastChangeDate={toLastChangeDate}&serialNumbers={serialNumbers}&macAddresses={macAddresses}

Get Order Summary allows customers to get a paged list of sales orders. Search parameters can be specified to search by serial numbers and mac addresses within a given date range

GET salesorder/list/{customerNumber}?page={page}&pageSize={pageSize}&salesOrderNumber={salesOrderNumber}&poNumber={poNumber}&referenceNumber={referenceNumber}&status={status}&docType={docType}&fromDate={fromDate}&toDate={toDate}&fromLastChangeDate={fromLastChangeDate}&toLastChangeDate={toLastChangeDate}

Get Order List allows customers to get a paged list of sales orders with details.

POST salesorder/shipquote?customerNumber={customerNumber}

ShipQuote allows customers to get a list of available shipping options with freight amounts given a shipping address and list of items

GET salesorder/detail/{customerNumber}/{salesOrderNumber}?excludeSerialTracking={excludeSerialTracking}

Sales Order Detail - returns details about an order including serial and tracking numbers

GET salesorder/tracking/{customerNumber}?orderNumber={orderNumber}&poNumber={poNumber}&deliveryNumber={deliveryNumber}

Sales Order tracking allows customers to get tracking numbers for a given sales order, po or delivery

DELETE salesorder/cancel?customerNumber={customerNumber}&salesOrderNumber={salesOrderNumber}&purchaseOrderNumber={purchaseOrderNumber}

Submit request to process order cancellation

GET salesorder/serials?customerNumber={customerNumber}&page={page}&pageSize={pageSize}&salesOrderNumber={salesOrderNumber}&poNumber={poNumber}&invoiceNumber={invoiceNumber}&serialNumbers={serialNumbers}&fromDate={fromDate}&toDate={toDate}

Get serial numbers in date range / search serial numbers

WebHook

WebHooks - subscribe to receiving callbacks when specific events fire

APIDescription
GET webhooks

Returns list of webhooks currently subscribed to

POST webhooks

Subscribe to webhook to start receiving event notifications

DELETE webhooks/{Id}

Delete a webhook

POST api/WebHook

No documentation available.

VendorQuote

APIDescription
GET vendorquote/{vendor}/{quoteNumber}

Get vendor quote

GET vendorquote/list/{vendor}?dealId={dealId}&dealName={dealName}&quoteName={quoteName}&status={status}&fromDate={fromDate}&toDate={toDate}

Get list of quotes

Customer

Customer api is used to get customer credit information, and payers

APIDescription
GET customer/creditdata/{customerNumber}/{region}

Returns customer status, revenue, credit limit, for a given customer

GET customer/payers/{customerNumber}/{businessUnit}

Returns list of payers for a given customer

PartnerProfile

Get list of custom configurations

APIDescription
GET partnerprofile?APIKey={APIKey}&developerEmail={developerEmail}

Get partners profile

GET partnerprofile/validate?developerEmail={developerEmail}&customerNumber={customerNumber}&url={url}

Determines if partner profile is valid for specific api / resource

VendorUsage

APIDescription
GET vendorusage/{vendor}/{bid}/{invoiceNumber}

Get vendor usage by invoice