Automated Checkout

The Automated Checkout service allows the automation of the entire checkout process, including adding a list of items to the cart. It is available at the following URLs:

Verical.com: https://www.verical.com/server-webapp/api/automatedCheckout

Arrow.com: https://arrow.com/commerce-cc/arrowwebservices/v2/arrow/carts/external/createOrder

Request Parameters

Parameter Description Required
username The email address of the customer to be associated to the sales order. This is your login email to Arrow.com or Verical.com yes
password The SHA-256 encoded password of the customer. yes
customerPONumber The purchase order number to be used as a reference for the customer. yes
currency Specify currency of order no
shipToAddressId The ID associated with the ship-to address.
* This address must already exist within Verical's or Arrow's internal systems.
yes
itemIds A comma-separated list of Verical or Arrow vendor items IDs. yes
quantities A comma-separated list of quantities for each Verical or Arrow sourcePartId specified by the itemIds parameter. yes
billToAddressId The Navision address ID to be used for the bill-to address.
* This address must already exist within Navision
Yes/no
sourceCodes A comma-separated list of Arrow source codes. Note: Customer can only order Verical or Arrow in a single order. Arrow source codes=ACNA, ASIA, EUROPE. Verical source code=VERICAL yes
discountCode A discount code to apply to the order no
shipToAddressId A discount code to apply to the order Yes/no*
stAddressName The name to be used for the ship-to address yes/no
stCompanyName The company name to be used for the ship-to address no
stPhoneNumber The phone number to be used for the ship-to address yes/no
stCountryCode The two character country code to be used for the ship-to address (e.g. US) yes/no
stStreet1 The first line of the street address to be used for the ship-to address yes/no
stStreet2 The second line of the street address to be used for the ship-to address no
stStateProvince The state or province to be used for the ultimate destination address
* This field is only required for certain country codes
yes/no
stCity The city to be used ffor the ship-to address yes/no
stPostalCode The postal code to be used for the ship-to address yes/no
stAddressType The address type to be used for the ship-to address - must be one of the following:
  1. Direct Consumer
  2. Government Entity
  3. Reseller
yes/no
ucAddressId Ultimate destination Address ID. This can be used in place of the full Ultimate Destination address fields mentioned below. yes/no*
ucAddressName The name to be uses for the ultimate destination address yes/no**
ucCompanyName The company name to be used for the ultimate destination address no
ucPhoneNumber The phone number to be used for the ultimate destination address yes/no**
ucCountryCode The two character country code to be used for the ultimate destination address (e.g. US) yes/no**
ucStreet1 The first line of the street address to be used for the ultimate destination address yes/no**
ucStreet2 The second line of the street address to be used for the ultimate destination address no
ucStateProvince The state or province to be used for the ultimate destination address
* This field is only required for certain country codes
yes/no**
ucCity The city to be used for the ultimate destination address yes/no**
ucPostalCode The postal code to be used for the ultimate destination address yes/no**
ucAddressType The address type to be used for the ultimate destination address - must be one of the following:
  1. Direct Consumer
  2. Government Entity
  3. Reseller
yes/no**
format Can specify if response shall be json or XML. XML returned by default no
submitOrder A flag which specifies if order should be submitted. If false, then order will not be processed, but integration and validation can be tested. If true or not included, then order will be processed as usual. no

* Customer has the choice of using either address IDs, or providing the full shipping and/or ultimate destination address

** Required if using a freight forwarder as Ship To address

*** If using an ultimate destination address or address ID, Ship to address or ID is required

Example API Calls

  • Scenario 1: No ultimate destination needed, Arrow.com parts. Using Ship to Address ID
    API Address: https://www.arrow.com
          
    GET or POST: /commerce-cc/arrowwebservices/v2/arrow/carts/external/createOrder?currency=USD&fields=FULL&itemIds=V99:2348_19024953&sourceCodes=ACNA&quantities=1&username= &password=&customerPONumber=YOURPO&shipToAddressId=H123456
  • Scenario 2: No ultimate destination needed, Verical.com parts. Using Full Ship to Address
    API Address: https://www.verical.com
          
    GET or POST: /server-webapp/api/automatedcheckout?currency=USD&fields=FULL&itemIds=35834312&sourceCodes=VERICAL&quantities=1&username= &password=&customerPONumber=YOURPO&stAddressName=TestName&stCompanyName=TestCompanyName&stPhoneNumber=5551237895&stCountryCode=US&stStreet1=123%20Main%20Street&stStateProvince=OH&stCity=Cleveland&stPostalCode=44114&stAddressType=Direct%20Consumer
  • Scenario 3: Ultimate destination needed, Arrow.com parts. Using Address IDs
    API Address: https://www.arrow.com
          
    GET or POST: /commerce-cc/arrowwebservices/v2/arrow/carts/external/createOrder?currency=USD&fields=FULL&itemIds=V99:2348_19024953&sourceCodes=ACNA&quantities=1&username= &password=&customerPONumber=YOURPO&shipToAddressId=H123456&ucAddressId=H67890
  • Scenario 4: Ultimate destination needed, Verical.com parts. Using full Address
    API Address: https://www.verical.com
            
    GET or POST: /server-webapp/api/automatedcheckout?currency=USD&fields=FULL&itemIds=35834312&sourceCodes=VERICAL&quantities=1&username= &password=&customerPONumber=YOURPO&stAddressName=TestName&stCompanyName=TestCompanyName&stPhoneNumber=5551237895&stCountryCode=US&stStreet1=123%20Main%20Street&stStateProvince=OH&stCity=Cleveland&stPostalCode=44114&stAddressType=Direct%20Consumer&ucAddressName=Arrow&ucCompanyName=ArrowWarehouse&ucPhoneNumber=5551237895&ucCountryCode=US&ucStreet1=9151%20E%20Panorama%20Street&ucStateProvince=CO&ucCity=Centennial&ucPostalCode=80112&ucAddressType=Direct%20Consumer

Example Response Arrow.com

{
  "additionalFee" : 0,
  "entries" : [ {
      "availableQuantity" : 22241,
      "catalogChinaTariffFlag" : false,
      "catalogCustomReel" : false,
      "catalogDateCode" : "1821",
      "catalogManufacturerSeo" : "molex",
      "catalogPartSeo" : "5600230448",
      "catalogSmallImageURL" : "//static6.arrow.com/aropdfconversion/arrowimages/113c7ed221cade8dcfdf5d039aaca2e7ce887245/560023_iso.jpg",
      "catalogSourceCode" : "ACNA",
      "catalogSourceId" : "V79:2366_24072141",
      "catalogSourcePartId" : "V79:2366_24072141",
      "countryOfOrigin" : "US",
      "customerSpecificPrice" : true,
      "dateCode" : 1821,
      "eccn" : "EAR99",
      "itemLocation" : "US",
      "itemLocationCodeAsName" : "United States of America",
      "itemTotal" : 0.01,
      "manufacturer" : "MOLEX",
      "minimumOrderQuantity" : 1,
      "mpn" : "5600230448",
      "orderIncrement" : 1,
      "originalPrice" : 0.01,
      "partCategoryName" : "Connector Contact",
      "partCategoryNo" : "4778",
      "partDescription" : "Contact F Crimp ST Cable Mount 22AWG T/R Automotive",
      "partNo" : "28045657",
      "quantity" : 1,
      "rohsCompliant" : false,
      "sellerId" : "-214",
      "shipAndDebit" : false,
      "unitOfMeasure" : "EA",
      "unitPrice" : 0.01
  } ],
  "handlingFee" : 0,
  "submitted" : false,
  "subtotal" : 0.01
}

Example Response Verical.com

{
  "itemViews" : [ {
    "vendorItemNo" : "27511536",
    "sellerId" : null,
    "partNo" : null,
    "partCategoryNo" : null,
    "partCategoryName" : null,
    "mpn" : null,
    "manufacturer" : null,
    "partDescription" : null,
    "minimumOrderQuantity" : 0,
    "quantity" : 22,
    "unitPrice" : 6.1505,
    "itemTotal" : 135.3110,
    "availableQuantity" : 0,
    "orderIncrement" : 0,
    "dateCode" : 0,
    "lotCode" : null,
    "pedigree" : 0,
    "itemLocation" : null,
    "itemLocationCodeAsName" : null,
    "countryOfOrigin" : null,
    "rohsCompliant" : null,
    "leadFree" : false,
    "shippingLeadTime" : 0,
    "deliveryDate" : 1590105600000,
    "shipmentDate" : 1589932800000,
    "ncnr" : false,
    "warranty" : "",
    "smallImage" : null,
    "servicesAvailable" : null,
    "priceTiers" : null,
    "saleType" : null,
    "originalPrice" : null,
    "customerSpecificPrice" : null,
    "itemUom" : null,
    "eccn" : null,
    "catalogType" : null,
    "specSource" : null,
    "specSourceId" : null,
    "factoryStock" : false,
    "candC" : false,
    "onSale" : false,
    "backOrderItem" : false,
    "ipn" : null,
    "sellerType" : null,
    "shipAndDebit" : false
  }],
  "errors" : [ ],
  "orderNumber" : "WEB-SO123456789",
  "total" : 99.49,
  "subtotal" : 48.5,
  "shippingFee" : 50.99,
  "additionalFee" : null,
  "handlingFee" : null,
  "submitted" : false,
  "shipToAddressId" : "ST12345"
}

Available Shipping Methods

Domestic Options

Agent Code Service Code
FEDEX 2DAY
FEDEX 2DAY AM
FEDEX EXPRESS SAVER
FEDEX FIRST OVERNIGHT
FEDEX GROUND SERVICE
FEDEX HOME DELIVERY
FEDEX PRIORITY
FEDEX STANDARD OVERNIGHT
UPS 2ND DAY AIR
UPS 2ND DAY AIR AM
UPS 3 DAY SELECT
UPS GROUND
UPS NEXT DAY AIR
UPS NEXT DAY AIR AM
UPS NEXT DAY AIR SAVER
USPS 1ST CLASS MAIL
USPS PRIORITY EXPRESS
USPS PRIORITY MAIL

International Options

Agent Code Service Code
DHL EXPRESS
FEDEX ECONOMY
FEDEX PRIORITY-I
UPS EXPEDITED
UPS EXPRESS-I
UPS SAVER-I
UPS STANDARD

Potential Error Messages

The following is a list of error messages* that could be received as a result of an error in the API request or one of the Arrow/Verical internal prerequisites not being completed. This list DOES NOT ENCAPSULATE ALL POSSIBLE ERRORS that could be generated by the API.

Error Code Description
checkout.user.not.found The provided email address (username) was not found
checkout.invalid.password The provided email address (username) was found but the password (password) is incorrect for the given Customer
address.not.found The provided ship-to address ID (shipToAddressId) was not found
checkout.address.not.terms The provided ship-to address ID (shipToAddressId) was but is not marked as a Terms address
checkout.shipping.domestic.not.found The default domestic shipping methods are not available for the sales order
checkout.shipping.international.not.found The default international shipping methods are not available for the sales order
checkout.item.id.invalid One of the provided item IDs (itemIds) are blank
checkout.item.quantity.invalid One of the provided quantities (quantities) are blank
checkout.length.not.equal The provided number of item IDs (itemIds) does not equal the provided number of quantities (quantities)
checkout.invalid.quantity One of the provided quantities is found to not be a valid number
checkout.item.not.found One of the provided item IDs (itemIds) is not found within Marketplace
checkout.item.quantity.minimum The provided quantity for a given item ID does not meet the minimum order quantity for the item
checkout.item.quantity.maximum The provided quantity for a given item ID is greater than the total amount available for the item
checkout.item.quantity.increment The provided quantity for a given item ID is not a valid increment for the item
checkout.invalid.address.type The provided address type for the ultimate destination address is not a valid type
checkout.uc.required The provided ship-to address ID (shipToAddressId) is found but no ultimate destination address information is provided
checkout.uc.freight.forwarder The provided address type for the ultimate destination is found to be "Freight Forwarder"
navision.soap.exception An internal database error occurred
navision.failed.sales.order.create The sales order was created in Verical's internal system, but the response returned was empty
navision.failed.sales.lines.update The sales lines were created in Verical's internal system and applied to the sales order but the response returned was empty
navision.failed.sales.order.update The sales order update function failed in Verical's internal system
navision.failed.sales.order.submit The sales order was unable to be placed in Verical's internal system.