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