NAV Navbar
Logo
shell

Introduction

Easync is a type of application that allows you to dropship orders from seasoned online retailers like Aliexpress and Amazon. To do this, all you have to do is to process a POST request. This method ensures that your web server will accept the sent data and properly extract it from your transmitted message. This is important for storage and reference for future use and to promote accuracy of dropshipping. Aside from helping you find an excellent item manufacturer, wholesaler, or retailer, Easync also gives you access to product information and price ranges. As of this moment, you can get these pieces of information from supported retailers only.

Quick start

1.​ Visit easync.io and create an account. Alternatively, you can directly go to this URL for registration: https://app.easync.io/sign-up.

2.​ To place an order, follow the step-by-step process found on the order creation section

Supported retailers

The table below shows the endpoints available for each retailer. We can add additional retailers upon request – contact us for a quote for a particular retailer.

Name Retailer Code Orders Product Details Product Prices
AliExpress aliexpress Y Y Y
Amazon amazon Y Y Y
Amazon United Kingdom amazon_uk Y Y Y
Amazon Canada amazon_ca Y Y Y
Amazon Deutschland amazon_de Y Y Y
Amazon France amazon_fr Y Y Y
Amazon Italy amazon_it Y Y Y
Amazon Spain amazon_es Y Y Y
Costco costco Y Y
Overstock overstock Y Y
Walmart walmart Y Y Y

Authentication

Example authentication request

curl http://core.easync.io/api/v1/orders \
  -u <client_token>:

Verify your account by providing client tokens for your transactions. You can use HTTP Basic Auth function to do this. For this function, you will consider the client token as the basic auth username value. You don’t have to use a password for this process. You can assign a token to your Easync account here.

Idempotency Keys

Example idempontency key request

curl "http://core.easync.io/api/v1/orders" \ 
  -u <client_token>: \
  -d '{ 
  "idempotency_key": <idempotency_key>, 
  "retailer": "amazon", 
  "max_price": 2300, 
  ...
  }'

Easync API will not provide you with the typical order deduplication. Every time you complete a new transaction, the API will try to place an order on your behalf. Make sure that you will use the same idempotency key that you used to place this order if ever you encounter problems such as connection concerns to prevent duplicate requests. Easync API has retry request functions that safely attempts to prevent accidentally completing an operation twice in a row. To complete the idempotent request, just place your unique key to the request body of the POST request. Use the "idempotency_key": <idempotency_key> parameter to do this. Creation of the unique keys depends on your preferences. For this situation, you may use UUIDs or random strings. Using the same key will send back a similar response for your requests. In case you receive an error instead, you may perform the operation again by sending out another request using another idempotency key. Once you receive a response for the said transaction, you can no longer change the details for your order. In case your API request returns with 5XX status code, retrying the request will possibly end up in a duplicate request. A 5XX request code will give you complications determining the current state of the request. Therefore, make sure you attempt all your requests using idempotency keys. If you are not using these and you end up having an error code, Easync will not refund the completed duplicate order.

Place an order

Create an order

Easync provides underlying API for applications that require real-time order completion functions. With just one POST request, ordering from a supported retailer is a breeze. After starting an order, you will receive one request_id. You can find this in the POST body response. In turn, you can use this to retrieve the order status.

Example create an order request

curl "http://core.easync.io/api/v1/orders" \
  -u <client_token>: \
  -d '{
  "retailer": "amazon",
  "products": [
    {
      "product_id": "0923568964",
      "quantity": 1,
      "variants": [
        {
          "dimension": "color",
          "value": "Red",
        }
      ]
    }
  ],
  "max_price": 2300,
  "shipping_address": {
    "first_name": "Tim",
    "last_name": "Beaver",
    "address_line1": "77 Massachusetts Avenue",
    "address_line2": "",
    "zip_code": "02139",
    "city": "Cambridge",
    "state": "MA",
    "country": "US",
    "phone_number": "5551230101"
  },
  "is_gift": true,
  "gift_message": "Here is your package, Tim! Enjoy!",
  "shipping": {
    "order_by": "price",
    "max_days": 5,
    "max_price": 1000
  },
  "payment_method": {
    "name_on_card": "Ben Bitdiddle",
    "number": "5555555555554444",
    "security_code": "123",
    "expiration_month": 1,
    "expiration_year": 2020,
    "use_gift": false
  },
  "billing_address": {
    "first_name": "William",
    "last_name": "Rogers",
    "address_line1": "84 Massachusetts Ave",
    "address_line2": "",
    "zip_code": "02139",
    "city": "Cambridge",
    "state": "MA",
    "country": "US",
    "phone_number": "5551234567"
  },
  "retailer_credentials": {
    "email": "[email protected]",
    "password": "myRetailerPassword"
  },
  "webhooks": {
    "order_placed": "http://mywebsite.com/easync/order_placed",
    "order_failed": "http://mywebsite.com/easync/order_failed",
    "tracking_obtained": "http://mywebsite.com/easync/tracking_obtained"
  },
  "client_notes": {
    "our_internal_order_id": "abc123",
    "any_other_field": ["any value"]
  }
}'

Example create an order response

{
  "request_id": "3f1c939065cf58e7b9f0aea70640dffc"
}

Required attributes

Attribute Type Description
retailer String Retailer code corresponding to the supported retailers.
products List A list of product objects that you have to order.
shipping_address Object This is the address object where your order will be shipped.
shipping_method String This is your preferred shipping method for the order. The available methods are the following: free (does not work for items that have no free shipping), fastest (enables selection of fastest option available), cheapest (enables selection of most affordable option available), free_standard (this will not use Prime benefits and takes 5 days to ship) and no_rush (slower than standard and adds a balance toward your Prime Pantry that you can use within 30 days. Goes away on business accounts). You have to provide the shipping_method attribute or simply the shipping attribute, but not both at the same time.
shipping Object This is a shipping object containing information on shipping methods that you can use. You must provide a shipping_method attribute or this object. These should not show up at the same time.
billing_address Object An address object for someone associated with credit card.
payment_method Object A payment method that contains payment details for a certain order.
retailer_credentials Object The retailer credentials object used to log into your retailer using a pre-existing account.

Optional attributes

Attribute Type Description
gift_message String Message that you have to provide on the recipient’s packing slip. This should be a maximum of 240 characters (equivalent to 9 lines) only.
is_gift Boolean Considers a part or all items for transaction as gifts. Retailers usually exclude the receipt price if is_gift is set.
max_price Number Shows the maximum price for your order (in cents). If the final amount for your transaction exceeds this, your order will be postponed. This will eventually return max_price_exceeded error.
webhooks Object A webhooks object that includes the URLs that you will receive on POST requests. You will receive these after specified events.
client_notes Object Any type of metadata that you can use to keep your requests for future use. Client_notes will be passed back on the response part.
promo_codes Array Shows the promotion codes list that you can use upon checkout.
ignore_invalid_promo_code Boolean Considered a nordstrom only. Helps you proceed with the checkout despite invalid promotion codes. Default setting is false.
po_number Number This is for amazon business accounts only. The attribute adds purchase order numbers to your orders.
bundled Boolean (Amazon only). If enabled, orders will be grouped together into batches and placed together. See the order bundling section for more details.
remove_shipping_addresses Boolean (Amazon only). The shipping address or addresses from this order will be removed from the address book of the amazon account in the event of a successful order.
check_emails Array (Amazon only). check_emails is an additional list of email addresses for finding confirmation codes sent by Amazon during login. If not specified, the email is used from the retailer credentials object.
2fa_secret_key String (Amazon only). A user key for two-step verification.

Retrieving an order

Example retrieve an order request

curl "http://core.easync.io/api/v1/orders/3f1c939065cf58e7b9f0aea70640dffc" \
  -u <client_token>:

Example retrieve an order response (request processing)

{
  "_type": "error",
  "code": "request_processing",
  "message": "Request is currently processing and will complete soon.",
  "data": {}
}

To see the status of an order, you can retrieve it using the request id you obtained from your order request, and placing it in a GET request URL. Orders usually take a while to process. While your order is processing, the response will return an error with code type request_processing.

Once the request completes, the retrieve an order response should either return a response of type order_response or error. An error response body will contain a code and a message. The code indicates the error that occurred, while the message provides a more detailed description of the error. Any extra details about the error will be provided in the data object. For a full list of errors, see the Errors section.

Order response attributes

Example retrieve an order response (order response)

{
  "_type" : "order_response",
  "price_components" : {
    "shipping" : 0,
    "subtotal" : 1999,
    "tax" : 0,
    "total" : 1999
  },
  "merchant_order_ids" : [
    {
      "merchant_order_id" : "112-1234567-7272727",
      "merchant" : "amazon",
      "account" : "[email protected]",
      "placed_at" : "2014-07-02T23:51:08.366Z"
    }
  ],
  "tracking" : [
    {
      "product_id" : "0923568964",
      "merchant_order_id" : "112-1234567-7272727",
      "carrier" : "Fedex",
      "tracking_number" : "9261290100129790891234",
      "obtained_at" : "2014-07-03T23:22:48.165Z"
    }
  ],
  "request" : {
    ...
  }
}
Attribute Type Description
price_components Object A price components object which contains details about the price of the final order
merchant_order_ids Array A merchant order ids object which contains details about the retailer’s order identifiers
tracking Array An array of tracking objects that contain the order’s tracking information. In most cases, this field will not be populated immediately after the order is placed and will only be available later after tracking is updated by the retailer. Once tracking has been obtained, a POST request will be sent to the tracking_obtained field of the webhooks object from the request if set.
request Object The original request that was sent to the Easync API

Selecting shipping

Ordering on the Easync API can be complicated due to all the potential shipping options available. Generally, faster shipping will cost more money, so you must decide how fast you’d like your items or how much money to pay for shipping. Easync provides a number of options to customize your shipping speed and cost formulas.

Since different items will have different shipping options, you can use a product’s seller selection criteria to specify handling_days_max. This will filter the list of potential offers down to those that will arrive within a certain number of days. The Easync API will then select the cheapest offer that matched all of your seller selection criteria to make a purchase. For example, if you specified "handling_days_max": 6, then any offer whose latest delivery date is greater than 6 days from now would be excluded from your buying selection. Thus, if two sellers are offering the same product, but one has a guaranteed delivery date 10 days away and the other seller has a guaranteed delivery date 5 days away, the second seller’s offer would be selected.

You may also use the shipping parameter on an order to select a shipping option once a product has been selected. Instead of filtering by the different offers, like the seller selection criteria, the shipping parameter will choose the shipping speed on the selected offer. For example, if you set "max_days": 5 on the shipping parameter, the Easync API would attempt to select the cheapest shipping method that took less than 5 days. Thus, if there was a shipping method that took 3 days and cost $10 and another shipping method that took 7 days but cost $2, the first shipping option would be selected.

Order bundling

The bundling feature groups orders together before placing them. This is often advantageous on retailers where larger orders are given free shipping. To use bundling, you only need to specify bundled: true when placing an order request. Bundling currently only works on the following retailers: amazon, amazon_uk, amazon_ca, amazon_fr, amazon_de.

The bundling feature allows you to take advantage of free shipping over $50 (on Amazon) without having to change your Easync integration. Bundling will take the shipping addresses, products, and quantities from separate orders and will group them together into a single order, making sure that each product is routed correctly. The order requests and responses remain exactly the same. The only difference is when the order is placed. The order bundling feature will wait for enough orders in the queue before launching a bundled order. The exact dynamics are as follows: 1. The order bundler will wait until $55 in products have been purchased. As soon as more than $55 of products have been queued with bundled: true, the bundler will launch a new order. 2. If the order bundler has waited for longer than 6 hours and has not yet obtained $55 in products, it will launch an order with whatever products are currently in the queue.

Note that the order bundler will not group together two orders which have the same product ids.

Cancel bundled order

GET https://core.easync.io/api/v1/cancel_bundle/:order_id

Available responses: 1) Success: { “_type”: “order_response”, “message”: “Order removed from bundle” }

2) Failure: No such order { “_type”: “error”, “code”: “internal_error”, “message”: “no_such_order” }

3) Failure: On check { “_type”: “error”, “code”: “internal_error”, “message”: “currently_on_check” }

4) Failure: order.bundled: false { “_type”: “error”, “code”: “invalid_request”, “message”: “order not bundled”, “data”: {} }

Get product details

Example product details request

curl http://core.easync.io/api/v1/products/0923568964?retailer=amazon \
  -u <client_token>:

Get up to date information on the title, description, manufacturer details, item specifics, and more for any product on our supported retailers.

To retrieve product details, make a GET request to the following URL, replacing :product_id with the retailer’s unique identifier for a particular product and specifying the request attributes as query parameters in the URL.

http://core.easync.io/api/v1/products/:product_id

Required request attributes

Attribute Type Description
retailer String The retailer for the product

Optional request attributes

Attribute Type Description
max_age Number A number in seconds setting the maximum age of the response. The data returned in the response will be at most this many seconds old. Cannot specify with newer_than.
newer_than Number A timestamp setting the minimum time the response should be retrieved from. The data returned in the response will be newer this timestamp. Cannot specify with max_age.
async Boolean Determines whether the resulting response will be asynchronous. If set to true, then the API will not block waiting for a result. Instead, it will immediately return status: "processing" and you will be responsible for resending the request until the response is no longer status: "processing". Defaults to false.

Response attributes

Example product details response

{
  "status": "completed",
  "product_description": "This is a great book!",
  "retailer": "amazon",
  "epids":[
    {
      "type": "EAN",
      "value": "9780923568962"
    },
    {
      "type": "ISBN",
      "value": "0923568964"
    }
  ],
  "product_details": [
    "Series: The Easy Way!",
    "Paperback: 60 pages",
    "Publisher: XanEdu Publishing Inc; 2nd Edition edition (September 28, 2009)",
    "Language: English",
    "ISBN-10: 0923568964",
    "ISBN-13: 978-0923568962",
    "Product Dimensions: 8.3 x 5.3 x 0.2 inches",
    "Shipping Weight: 3.5 ounces"
  ],
  "title": "APA: The Easy Way! [Updated for APA 6th Edition]",
  "variant_specifics": [
    {
      "dimension": "Color",
      "value": "Gray"
    },
    {
      "dimension": "Size",
      "value": "Small/Medium"
    }
  ],
  "product_id": "0923568964"
}
Attribute Type Description
status String Possible values are processing, failed, or completed. You will only see processing if async: true was set on the request
retailer String The retailer for the product
product_id String The retailer’s unique identifier for the product
timestamp String The timestamp that the resource was accessed
title String Title of the product
product_details Array An array of strings providing details about the product
main_image String The URL of the primary image associated with the product
images Array An array of image URLs associated with the product
variant_specifics Array Array of objects containing information about the types and values of product variants available. A variant specifics object contains a dimension field describing the type of the variant (e.g. “Color”) and a value field describing the specific value available
categories Array Array of different categories that the product belongs in
authors Array Array of author names (only available for products that are books)
product_description String The description of the product
epids Array Array of objects containing external product identifier (epid) objects. An epid object contains a type field describing the name of the external product identifier and a value field for the identifier’s value

Get product prices

Example product offers request

curl http://core.easync.io/api/v1/products/0923568964/offers?retailer=amazon \
  -u <client_token>:

Get information about all the offers for a particular product, including seller name, item price, shipping price, condition, seller reputation, and more.

To retrieve product offers and prices, make a GET request to the following URL, replacing :product_id with the retailer’s unique identifier for a particular product and specifying the request attributes as query parameters in the URL.

http://core.easync.io/api/v1/products/:product_id/offers

Required request attributes

Attribute Type Description
retailer String The retailer for the product

Optional request attributes

Attribute Type Description
max_age Number A number in seconds setting the maximum age of the response. The data returned in the response will be at most this many seconds old. Cannot specify with newer_than.
newer_than Number A timestamp setting the minimum time the response should be retrieved from. The data returned in the response will be newer this timestamp. Cannot specify with max_age.
async Boolean Determines whether the resulting response will be asynchronous. If set to true, then the API will not block waiting for a result. Instead, it will immediately return status: "processing" and you will be responsible for resending the request until the response is no longer status: "processing". Defaults to false.

Response attributes

Example product offers response

{
  "retailer": "amazon",
  "status": "completed",
  "offers":[
    {
      "addon": false,
      "condition": "New",
      "handling_days_max": 0,
      "handling_days_min": 0,
      "international": false,
      "merchant_id": "ATVPDKIKX0DER",
      "offerlisting_id": "lUai8vEbhC%2F2vYZDwaePlc4baWiHzAy9XJncUR%2FpQ9l4VOrs%2FfpYt4ZtreQaB%2BPL1xJwz5OpIc%2BJjyymHg3iv4YkZvWy5z7flil7n7lUDWNPY76YUhMNdw%3D%3D",
      "price": 9.79,
      "ship_price": 0
      "prime": true,
      "prime_only": false,
      "seller_name": "Amazon.com",
      "seller_num_ratings": 1000000,
      "seller_percent_positive": 100
    }
  ]
}

Attribute Type Description
status String Possible values are processing, failed, or completed. You will only see processing if async: true was set on the request.
retailer String The retailer for the product offers
offers Array An array of product offer objects for a particular product on a retailer

Object reference

Product object

Example product object

{
  "product_id": "0923568964",
  "quantity": 1,
  "seller_selection_criteria": {
    "prime": true,
    "handling_days_max": 6,
    "condition_in": ["New"],
  }
}

Attribute Type Description
product_id String The retailer’s unique identifier for the product. Note that Easync does not support digital purchases or Amazon prime pantry items.
quantity Number The number of products to purchase.
seller_selection_criteria Object A seller selection criteria object containing information about which offers to choose when there are multiple offers available. If the seller selection criteria object is not included for a product, the seller selection criteria will default to "prime": true, "handling_days_max": 6, and "condition_in": ["New"].

Seller selection criteria object

Example seller selection criteria object

{
  "addon": false,
  "condition_in": ["New"],
  "handling_days_max": 6,
  "max_item_price": 5350
  "min_seller_num_ratings": 100,
  "prime": true,
}

Seller selection criteria allow you to filter multiple offers for a product from a retailer. They give you fine grained control when a retailer has multiple offers for a single product. This happens frequently when third party or affiliated merchants are selling on a platform, such as o Amazon.

The seller selection criteria serve as a series of optional filters to narrow down the potential set of offers to something reasonable. After all the filters have been applied, Easync will select the cheapest offer that is still available. For example, if "handling_days_max": 6 is applied, then the Easync API will order the cheapest offer where the shipping will arrive in 6 days or less.

Attribute Type Description
addon Boolean Addon is for Amazon as well. This specifies if chosen offer must be add-on item.
buy_box Boolean This is for Amazon. This specifies if chosen offer must be the default offer
condition_in Array An array of item conditions that the Easync API must order from
condition_not_in Array An array of item conditions that the Easync API must not order from
first_party_seller Boolean This is the one that determines if the seller is first-party
handling_days_max Number Pertains to the highest number of days for shipping and handling
international Boolean Specifies if the item is from an international supplier
max_item_price Number The maximum allowable price in cents for an item
merchant_id_in Array An array of merchant ids that the Easync API must order from
merchant_id_not_in Array An array of merchant ids that the Easync API must not order from
min_seller_num_ratings Number (Amazon only) The minimum number of ratings required for an Amazon seller’s offer to be selected
min_seller_percent_positive_feedback Number (Amazon only) The minimum percentage of positive ratings of an Amazon seller for their offer to be selected
prime Boolean (Amazon only) Specifies whether the selected offer should be an Amazon Prime offer

Shipping object

Example shipping object

{
  "order_by": "price",
  "max_days": 5,
  "max_price": 1000
}

This provides you with shipping speed control for orders. There is usually a tradeoff between the speed of the order arrival and the total cost of shipping. The shipping object provides a means to ensure that you stay within budget. At the same time, this ensures timely shipment arrival.

Attribute Type Description
order_by String The ordering of available shipping methods that meet the desired criteria. Available values are price or speed. If ordering by price, then the Easync API will choose the cheapest shipping method that meets the desired criteria, while speed will choose the fastest shipping method meeting the criteria.
max_days Number The maximum number of days allowed for shipping on the order.
max_price Number The maximum price in cents allowed for the shipping cost of the order.

Address object

Example address object

{
  "first_name": "Tim",
  "last_name": "Beaver",
  "address_line1": "77 Massachusetts Avenue",
  "address_line2": "",
  "zip_code": "02139",
  "city": "Cambridge",
  "state": "MA",
  "country": "US",
  "phone_number": "5551230101"
}

Attribute Type Description
first_name String The first name of the addressee
last_name String The last name of the addressee
address_line1 String The house number and street name
address_line2 String The suite, post office box, or apartment number (optional)
zip_code String The zip code of the address
city String The city of the address
state String The USPS abbreviation for the state of the address (e.g. AK)
country String The ISO abbreviation for the country of the address (e.g. US). A list of all available two-letter country codes can be found here.
phone_number String The phone number associated with the address

Payment method object

Example payment object

{
  "name_on_card": "Ben Bitdiddle",
  "number": "5555555555554444",
  "security_code": "123",
  "expiration_month": 1,
  "expiration_year": 2015,
  "use_gift": false
}

Recommended means to pay for items is through credited gift card balance. These cards are supported in walmart, amazon_ca, amazon_uk, and amazon_us. To use credit card, you have to fill in the required details regardless of the platform used. To use the existing gift balance on the account, simply pass {"use_gift": true} as the payment_method object.

To use a credit card, you must include the name_on_card, number, security_code, expiration_month, and expiration_year fields. For Amazon, you should only have a single credit card associated with an account which should be the same as the card passed in the payment method object. This allows the system to correctly answer any payment-related security questions.

Attribute Type Description
name_on_card String The full name on the credit/debit card
number String The credit/debit card number
security_code String The card verification value on the back of the credit/debit card
expiration_month Number The month of the expiration of the card (e.g. January is 1, February is 2)
expiration_year Number The year of the expiration of the card (e.g. 2016)
use_gift Boolean Whether or not to use the gift balance on the retailer account. If true, then the gift balance will be used for payment. Only works for retailers which support gift balance.

Webhooks object

Example webhooks object

{
  "order_placed": "http://mywebsite.com/easync/order_placed",
  "order_failed": "http://mywebsite.com/easync/order_failed",
  "tracking_obtained": "http://mywebsite.com/easync/tracking_obtained",
  "status_updated": "http://mywebsite.com/easync/status_updated"
}

Webhooks let you register a URL that the Easync API notifies whenever an event happens pertaining to your account. When an event occurs, we will send a POST request to the URL specified in the webhooks object. If no URL was specified, then a webhook will not be sent. The body of the POST request is the standard raw JSON response for that object.

As an example, let’s say you have just created an order via the Easync API. Every time the order status changes, a POST request will be sent to the URL that you passed in the status_updated parameter of the webhooks object. The body will mimic the response received from the standard GET http://core.easync.io/api/v1/orders/<request_id> request. A webhook will also be sent if order fails, gets placed, or if tracking gets updated.

Attribute Type Description
order_placed String The webhook URL to send data to when an order is placed
order_failed String The webhook URL to send data to when an order fails
tracking_obtained String The webhook URL to send data to when tracking for an order is retrieved
status_updated String The webhook URL to send data to when the status of a request is updated

Retailer credentials object

Example retailer credentials object

{
  "email": "[email protected]",
  "password": "myRetailerPassword"
}

Attribute Type Description
email String The email for the retailer account
password String The password for the retailer account

Price components object

Example price components object

{
  "shipping" : 0,
  "subtotal" : 1999,
  "tax" : 0,
  "total" : 1999
}

Attribute Type Description
shipping Number The price for shipping
subtotal Number The total price of the order before tax and other price adjustments
tax Number The tax collected on the order
total Number The total price paid for the order
gift_certificate Number (Optional) The amount of value used on a gift certificate placed on the account

Merchant order ids object

Example merchant order ids object

{
  "merchant_order_id" : "112-1234567-7272727",
  "merchant" : "amazon",
  "account" : "[email protected]",
  "placed_at" : "2014-07-02T23:51:08.366Z"
}

Attribute Type Description
merchant_order_id String The identifier provided by the retailer for the order that was placed
merchant String The retailer on which the order was placed
account String The account on which the order was placed
placed_at Date The date and time at which the order was placed

Product offer object

Example product offer object

{
  "addon": false,
  "condition": "New",
  "handling_days_max": 0,
  "handling_days_min": 0,
  "international": false,
  "merchant_id": "ATVPDKIKX0DER",
  "offerlisting_id": "lUai8vEbhC%2F2vYZDwaePlc4baWiHzAy9XJncUR%2FpQ9l4VOrs%2FfpYt4ZtreQaB%2BPL1xJwz5OpIc%2BJjyymHg3iv4YkZvWy5z7flil7n7lUDWNPY76YUhMNdw%3D%3D",
  "price": 9.79,
  "ship_price": 0
  "prime": true,
  "prime_only": false,
  "seller_name": "Amazon.com",
  "seller_num_ratings": 1000000,
  "seller_percent_positive": 100
}

Attribute Type Description
addon Boolean Whether or not the product is an addon item that can only be purchased in a bundle
condition String The condition of the product. Possible values are New, Refurbished, Used - Like New, Used - Very Good, Used - Good, Used - Acceptable, Unacceptable.
handling_days_max Number The maximum number of days required for shipping and handling
handling_days_min Number The minimum number of days required for shipping and handling
international Boolean Whether or not the product ships from outside of the United States
merchant_id String The merchant’s unique identifier for the product
offerlisting_id String (amazon and amazon_uk only). The unique identifier that identifies an item sold by any merchant on Amazon
price Number The price of the item, not including shipping
ship_price Number The price of the shipping for the item
prime Boolean (amazon and amazon_uk only). Whether or not the product ships using Amazon Prime
prime_only Boolean (amazon and amazon_uk only). Whether or not the product only ships using Amazon Prime
seller_name String The name of the seller of the current offer
seller_num_ratings Number The number of ratings that the seller has accumulated
seller_percent_positive Number Number between 0 and 100 denoting the percentage of positive ratings the seller has received

Tracking object

Example tracking object

{
  "merchant_order_id": "112-1234567-7272727",
  "carrier": "UPS",
  "tracking_number": "1Z9999999999999999",
  "tracking_url": "http://some-url.com/tracking-number/1Z9999999999999999",
  "product_id": "0923568964"
}

Attribute Type Description
merchant_order_id String The corresponding order identifier for which tracking was obtained.
carrier String (Optional) The logistics carrier that was used to ship the package.
tracking_number String (Optional) The tracking number from the logistics carrier.
tracking_url String (Optional) The tracking url that can be used to find the carrier and tracking number for a package.
product_id String (Optional) The corresponding product for which tracking was obtained.

Errors

Example error response

{
  "_type": "error",
  "code": "product_unavailable",
  "message": "One of the products you selected is unavailable.",
  "data": {'product_id': '018293801'}
}

If there is a problem in request processing, the endpoint will most likely return with an error object that has the three main fields: data, message, and code.

The code field can provide a short but unique code that describes the situation of the error. The message field gives a type of human-readable that describes the error. This is meant for developers, not the end users. On the other hand, the data field has the specific pieces of information related to the error.

The Easync API uses the following errors:

Error Code Meaning
account_login_failed We were unable to log in to the retailer with the username and password you provided.
add_on_item Add-on items cannot be ordered individually.
additional_information_required The retailer asked for additional account verification questions. If using the API, please add a field ‘phone_number’ in the billing address that matches your billing telephone number.
billing_address_refused The billing address you provided was refused by the retailer.
brand_not_accepted Your credit card brand is not accepted with this merchant.
credit_card_declined The credit card you entered was declined.
duplicate_order This order is a duplicate.
expired_product_id The product_id you used is no longer supported by the retailer.
incomplete_account_setup You attempted to place an order with an account that has not been fully set up.
insufficient_variants You did not select all required variants for a product.
internal_error Easync or the retailer you requested is experiencing outages. Please try again or contact [email protected] if this error persists.
invalid_card_number The credit card number you entered is not valid.
invalid_client_token Your client token is invalid.
invalid_expiration_date The expiration date on your credit card is not valid.
invalid_gift_options The gift options you provided were rejected by the retailer.
invalid_json The JSON in your request could not be parsed.
invalid_login_credentials The email and password you entered were incorrect.
invalid_payment_method The payment method provided is not available on the retailer.
invalid_promo_code One of the promotion code you entered was not valid.
invalid_quantity The quantity for one of the products does not match the one available on the retailer.
invalid_request Validation failed on the request.
invalid_request_id The provided request_id is invalid.
invalid_security_code The security code you entered was declined.
invalid_shipping_method The shipping method you selected was not valid.
invalid_variant One of the product variants you provided was not valid.
manual_review_required This order is under manual review by Easync – please check back later for the status of this order.
max_price_exceeded The retailers final price exceeds the maximum price.
max_quantity_exceeded You have exceeded the maximum quantity available for a specific product.
no_free_shipping Free shipping is not available for the item(s) you selected.
no_gift_shipping No gift shipping was available on this order.
no_two_day_shipping Two day shipping (or faster) is not available for the item(s) you selected.
order_probably_placed This order was probably placed, but we were not able to retrieve the merchant order ids.
payment_info_problem There was a problem with your payment information (likely not enough gift balance).
prime_pantry_not_supported Purchasing Prime Pantry items is not supported by the Easync API.
product_unavailable One of the products you selected is not available on the retailer. Either the seller selection criteria did not match any available offers or the product is out of stock and not available for purchase.
request_processing Request is currently processing and will complete soon.
shipping_address_refused The shipping address you provided was refused by the retailer.
shipping_address_unavailable The item(s) cannot be shipped to the selected shipping address.
shipping_method_unavailable The selected shipping_method is not available for the selected shipping_address.
unauthorized_access You are not authorized to make this API call. Please contact [email protected].