API Docs easync.io

easync.io makes it easy for you or your application to automatically purchase physical products from Amazon and other retailers.


Client Tokens

Each API call must include a client_token, which is your secret key. You may use the token "public" for testing purposes (or to just experiment with the API). In production, you must use the client_token provided for your application. If you are placing more than one order per day and do not have a dedicated client token, please fill out the form at the bottom of our home page.


Supported Retailers

Name Retailer Code Country Code Requires Pre-Approval
Amazon amazon US No
Amazon UK amazon_uk GB No
Amazon CA amazon_ca CA No
Nordstrom nordstrom US No
Shopbop shopbop US No
East Dane eastdane US No
Walmart walmart US Yes
Best Buy bestbuy US Yes
Sears sears US Yes

If a retailer requires pre-approval, you will not be able to place orders with that retailer using the "public" client token. Contact us so we can approve your client token.

We can add additional retailers upon request—fill out the form at the bottom of our home page for a quote for a particular retailer.


Developer API for Ordering Products

easync.io offers the underlying API for apps that need real-time order placing capabilities. With a single POST request, you can order an item from one of our supporter retailers. Note: if you input a valid credit card and retailer account, this will place a live order. Optionally, tracking information can be automatically added to the response as soon as it is made available (which may take a few days). You must explicitly let us know if you'd like the tracking update service.

How to use the API

First, take the request body below and add it to a file called "request_body.json". Make sure to fill out the retailer credentials, payment method, etc.

Next, make a POST request:

curl https://api.easync.io/v0/order -d @request_body.json
Firing off this request will return a response of the form:
{"request_id": "3f1c939065cf58e7b9f0aea70640dffc"}
This is the Amzn order identifier for this order. To see the status of the order:
curl https://api.easync.io/v0/order/3f1c939065cf58e7b9f0aea70640dffc

Request

curl https://api.easync.io/v0/order -d '{
                      "client_token": "public",
                      "retailer": "amazon",
                      "products": [{"product_id": "0923568964", "quantity": 1}],
                      "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's your package, Tim! Enjoy!",
                      "shipping_method": "cheapest",
                      "payment_method": {
                      "name_on_card": "Ben Bitdiddle",
                      "number": "5555555555554444",
                      "security_code": "123",
                      "expiration_month": 1,
                      "expiration_year": 2015,
                      "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.io/order_placed",
                      "order_failed": "http://mywebsite.com/easync.io/order_failed",
                      "tracking_obtained": "http://mywebsite.com/easync.io/tracking_obtained"
                      },
                      "client_notes": {
                      "our_internal_order_id": "abc123"
                      }
                      }'
Property Type Required Description
client_token String True Your individual client token.
retailer String True Name of the supported retailer.
products List True A list of products you want to order, each with a product_id, which is either and ASIN or an OfferListingID, and quantity. Some products have multiple variants (different sizes, colors, etc.) — use our Variant product ID to determine the product_id for the variant you want to select. Optionally, you can include:
  • merchant_id parameter if the product_id field is an ASIN -- this will automatically pick the ASIN sold by that particular merchant
  • seller_selection_method parameter if you would like to choose the seller based on a particular combination of characteristics -- allowed parameters are cheapest_fba_available_now (now = ships within 3 days), cheapest_available_now, cheapest_available_soon (soon = ships within 6 days), cheapest_domestic_non_addon, and cheapest_used
max_price Number False A maximum price in cents for the order. If the final price exceeds this number, the order will not go through.
shipping_address Object True The address to which the order will be delivered. Phone number is optional.
is_gift Boolean True Whether or not this order should be placed as a gift. Typically, retailers will exclude the price of the items on the receipt if this is set to true.
gift_message String False A message to include on the packing slip for the recipient. Must be no more than 240 characters, or 9 lines.
shipping_method String True The desired shipping method for the object. Choose either cheapest (always select the cheapest method available), fastest (always select the fastest method available), or free (which will fail for items without some sort of free shipping).
billing_address Object True The address of the person associated with the credit card.
payment_method Object True The details of the credit card used to place the order. Must include the name on the credit card (String), the card number (String), security code (String), and the expiration date (both month and year as numbers). You can include an optional "use_gift" field that will use your gift balance and ignore your credit card -- if set to True, you can include dummy values for the other parameters.
retailer_credentials Object True The details of the retailer (Amazon/Walmart/etc.) account used to makes the order. Must include the account email address (String) and the account password (String).
webhooks Object False You can optionally include URLs that you would like our API to POST to after an order_placed, order_failed, and/or tracking_obtained. The API will POST the entire order_response to these endpoints.
promo_codes Array False A list of promotion codes to use at checkout.
ignore_invalid_promo_code Boolean False Continue with checkout even if promotion codes are invalid. Default is false.
client_notes Object False Any data that you would like to store in the request to look up the request in the future. This will be passed back to you in the response and the webhooks.

Results

{
"_type" : "order_response",
"price_components" : {
  "shipping" : 0,
  "subtotal" : 1999,
  "tax" : 0,
  "total" : 1999
},
"merchant_order_ids" : [ {
  "product_id" : "B000000123",
  "merchant_order_id" :
  "112-1234567-7272727",
  "merchant" : "amazon",
  "account" : "[email protected]",
  "placed_at" : ISODate("2016-07-02T23:51:08.366Z")
} ],
"tracking" : [ {
  "product_id" : "0923568964",
  "merchant_order_id" : "112-1234567-7272727",
  "carrier" : "Fedex",
  "tracking_number" : "9261290100129790891234",
  "obtained_at" : ISODate("2016-07-03T23:22:48.165Z")
} ],
"request" : { ... }
}

The response contains information about the order that was placed, as well as the original request. If there was a problem placing the order, you may receive an error response instead -- see the Errors section for more details. If you have subscribed to our optional tracking update service, the tracking information listed above will be automatically added to the response when it becomes available.


Developer API for Ordering Gift Cards

easync.io offers an API for purchasing email gift cards from Amazon.com.

How to use the API

Firing off the request will return a response of the form:
{"request_id": "3f1c939065cf58e7b9f0aea70640dffc"}
In order to see the status and results of the call, use the following command:
curl https://api.easync.io/v0/email_gift_card/3f1c939065cf58e7b9f0aea70640dffc

Request

curl https://api.easync.io/v0/email_gift_card -d '{
                      "client_token":"public",
                        "retailer":"amazon",
                        "retailer_credentials": {
                        "email":"[email protected]",
                        "password":"qwerty123"
                      },
                      "gift_info": {
                        "amount": 500,
                        "recipient_email": "[email protected]",
                        "sender_name": "Sherlock Holmes",
                        "message": "Happy Birthday John! Here's a $10 gift card!",
                        "quantity": 1
                      },
                      "payment_method": {
                        "number": "5555555555554444",
                        "name_on_card": "Sherlock Holmes",
                        "expiration_month": "1",
                        "expiration_year": "2017",
                        "security_code": "345"
                      },
                      "billing_address": {
                        "first_name": "John",
                        "last_name": "Watson",
                        "address_line1": "501 Twin Peaks Boulevard",
                        "zip_code": "94114",
                        "city": "San Francisco",
                        "state": "CA",
                        "country": "US",
                        "phone_number": "5551231234"
                      },
                      "webhooks": {
                        "order_placed": "http://yoursite.com/easy_order_placed"
                      },
                      "client_notes": {
                        "our_internal_order_id": "abc123"
                      }
                      }'
                      
Property Type Required Description
client_token String True Your individual client token.
retailer String True Name of the supported retailer.
retailer_credentials Object True The details of Amazon account used to makes the order. Must include the account email address (String) and the account password (String).
gift_info Object True The details of the gift card to purchase. Must include the face value of the gift card (in cents, a number), the recipient's email (String), the sender name (String), a message included in the email (String), and the quantity (number).
payment_method Object True The details of the credit card used to place the order. Must include the card number (String), security code (String), and the expiration date (both month and year as numbers).
billing_address Object True The address of the person associated with the credit card.
webhooks Object False You can optionally include URLs that you would like our API to POST to after an order_placed. The API will POST the entire order_response to this endpoint.
client_notes Object False Any data that you would like to store in the request to look up the request in the future. This will be passed back to you in the response and the webhooks.
po_number String False *For business accounts only* Assigns a purchase order number to this order. Amazon only.
ignore_invalid_promo_code Boolean False Still places the order even if the promo code is incorrect. Nordstrom only.
qa Boolean False Specifies the quality assurance, or test, environment. Walmart only.

Results

{
  "_type" : "order_response",
  "price_components" : {
    "shipping" : 0,
    "subtotal" : 1000,
    "tax" : 0,
    "total" : 1000
  },
  "merchant_order_ids" : [ {
    "merchant_order_id" : "112-1234567-7272727",
    "merchant" : "amazon",
    "account" : "[email protected]",
    "placed_at" : ISODate("2016-07-02T23:51:08.366Z")
  } ],
  "request" : { ... }
}

The response contains information about the order that was placed, as well as the original request. If there was a problem placing the order, you may receive an error response instead—see the Errors section for more details.


Developer API for Checking Gift Balance

This API call allows you to retrieve and add gift balance to an Amazon account.

Request

curl https://api.easync.io/v0/gift_balance -d '{
                      "client_token":"public",
                      "retailer":"amazon",
                      "retailer_credentials":{
                      "email":"[email protected]",
                      "password":"sussex_downs"
                      },
                      "billing_address": {
                      "first_name": "John",
                      "last_name": "Watson",
                      "address_line1": "501 Twin Peaks Boulevard",
                      "zip_code": "94114",
                      "city": "San Francisco",
                      "state": "CA",
                      "country": "US",
                      "phone_number": "5551231234"
                      },
                      "gift_card_claim_code": "AQKVYK3AYMDWTZG"
                      }'
                      
Property Type Required Description
client_token String True Your individual client token.
retailer String True Name of the supported retailer.
retailer_credentials Object True The details of Amazon account used to makes the order. Must include the account email address (String) and the account password (String).
billing_address Object True The address of the person associated with the credit card on your account.
gift_card_claim_code String False The gift card code that you would like to add to the account. If this is omitted, no gift cardis added.

Results

{ "gift_balance": 1000 "request" : { ... } }

The response contains the gift balance on the account. If a gift card claim code is provided, this will be the resulting balance on the account. If there was a problem placing the order, you may receive an error response instead—see the Errors section for more details.


API Guidelines and Recommendations

Here are a few tips for using the easync.io Order API:
  • Use two-letter country codes. A list of two-letter country codes can be found here.
  • Don't use customer billing information. If you are placing orders on behalf of a customer, we recommend that you intermediate payment collection by charging your customer and then placing Amazon orders with your Amazon account and billing information. This improves the user experience for your customers in multiple ways -- they don't have to give you their Amazon credentials, and they don't see a charge from Amazon on their credit card statement.
  • Only have one credit card on your Amazon account. Sometimes, Amazon will ask identity verification questions of the form "What is the billing zip code of the card ending in XX?" If our software encounters this question, we attempt to answer it with the billing zip code provided in the API call. However, we don't allow you to pass multiple zip codes in, so we suggest only having one credit card and billing address associated with the account -- that way, it'll be the only one ever asking about in identity verification and we will be able to answer it for you.

Other APIs

easync.io offers a variety of other APIs:

  • Product Details: Up to date information on the title, description, product details, manufacturer details, item specifics, etc. for any product.
  • Product Offers: Information about all the sellers for a particular product, including item price, shipping price, condition, seller reputation, etc. This is updated with a refresh rate of your choosing.
If you are interested in these APIs, contact us with your use case for more details.

File Exchange API

The easiest way to use easync.io is through our File Exchange API. This API allows you to automate your Amazon orders with no developer integration. Once you are set up, you can email us a CSV of orders to place and we will run them through our API on your behalf. The steps are as follows:

1. Setup

First, contact us and provide us your Amazon account name, password and billing information (CC number, CVC, expiration, full billing address including phone number). We will issue you a client_token you can use to track your orders.

2. Using the API

Email [email protected] with an attached CSV file.

Our software will run these orders through our API. It will also add three columns -- "Status", "Order IDs", and "Price" -- and email the csv back to you. The "Status" field will contain either "successful" or an error message describing why the order could not be placed, the order IDs are the retailer's merchant IDs, and the price will indicate the final post-tax price paid.


easync.io for Business

easync.io offers a more advanced solution for businesses interested in automating their orders. In addition to API access, this solution includes

  • Account Management: easync.io maintains your retailer accounts for you, distributing orders across accounts and ensuring that accounts remain in good standing
  • Fund Management: No need to pass credit card or retailer data in each API call. easync.io manages the payment methods on your accounts and ensure you never run out of funds
  • Error Handling: easync.io handles most purchase errors for you, including payment_info_problem, additional_information_required, internal_error, max_quantity_exceeded and many more
  • 24/7 Phone Support
  • Uptime SLA
  • Cross-Sourcing: (optional) easync.io can cross source your orders to different pre-approved retailers with equal or better prices
Contact us for more details.

eBay Dropship Service

easync.io's Dropship Service is the simplest integration available for eBay sellers to automatically dropship orders from Amazon. As soon as we detect that you've made a sale on eBay, our software immediately places the order using the Ordering API. We can also automatically upload tracking to eBay once it gets posted to Amazon.

This product normally comes bundled with our easync.io product. Fill out the contact form to request more details.


Variant Product ID

Get variant product ID with Amazon using easync.io Chrome Extension.

The Extension currently only supports Amazon.com.


Errors

If there is an error processing a request, the result endpoint will return an error object containing three fields, as follows:

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

The human-readable 'message' field is intended for the developer and never the end user. The data field is an object containing specific information related to the error (for example, the maximum quantity and the desired quantity for a max_quantity_exceeded code.)

Error Code Message
invalid_json The JSON in your request could not be parsed.
internal_error easync.io or the retailer you requested is experiencing outages. Please try again or contact [email protected] if this error persists.
invalid_client_token Your client token is invalid. Please contact [email protected] to receive a client token and use the full API.
product_unavailable The product_id you used is being phased out by the retailer -- please update your product_id database accordingly. (On Amazon, this means that the offers page at [amazon_domain]/gp/offer-listing/[your_ASIN] has a more recent ASIN for that same product).
request_processing Request is currently processing and will complete soon.
invalid_request_id The provided request_id is invalid.
invalid_request Validation failed on the request.
max_quantity_exceeded You have exceeded the maximum quantity available for a specific product.
invalid_shipping_method The shipping method you selected was not valid.
shipping_address_refused The shipping address you provided was refused by the retailer.
billing_address_refused The billing address you provided was refused by the retailer.
credit_card_declined The credit card you entered was declined.
invalid_security_code The security code you entered was declined.
invalid_card_number The credit card number you entered is not valid.
brand_not_accepted Your credit card brand is not accepted with this merchant.
invalid_login_credentials The email and password you entered were incorrect.
duplicate_order This order is a duplicate.
add_on_item Add-on items cannot be ordered individually.
invalid_promo_code One of the promotion code you entered was not valid.
invalid_claim_code The gift card claim code you entered was not valid.
manual_review_required This order is under manual review by easync.io -- please check back later for the status of this order.
no_two_day_shipping Two day shipping (or faster) is not available for the item(s) you selected.
no_free_shipping Free shipping is not available for the item(s) you selected.
invalid_quantity The quantity for one of the products does not match the one available on the retailer.
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.
payment_info_problem There was a problem with your payment information (likely not enough gift balance).
expired_product_id The product_id you used is no longer supported by the retailer.
insufficient_variants You did not select all required variants for a product.
manual_review_required (Only for easync.io for Business customers) easync.io is manually reviewing the order to bypass all possible error conditions.

FAQ

I'd like to use your API but am placing less than one order per day. Can I have a client token?
We prioritize creating client tokens for customers who already have a large order volume. Please use the client token "public" for the development and testing of your app. Using "public" is free of charge but does not give you access to the full features of the easync.io API such as access to our order dashboard and tracking information updates.
I'm an eBay seller that ships a lot of items from Amazon -- can I use this software?
Yes! We also offer a comprehensive repricing and order automation tool for eBay sellers called easync.io. See the eBay Dropship Service section for more details.
Can you build [feature]?
We occasionally develop additional features for a one-time development fee. Please describe the feature you would like via our contact form and we will provide you with a quote.
How can I view tracking information for orders placed using the API?
We provide an optional feature that will retrieve tracking information for you when it is made available. Alternatively, you can check tracking numbers for your order on the retailer's website directly.
Is there a sandbox for testing the API?
No, but there are a few ways you can test the API. First, you can let the order get placed and then cancel it on the retailer's website (which is easy if done shortly after placing the order). Alternatively, you can set the "max_price" parameter to 0. This will get the API to get to the very last page of checkout, and return a result that includes the final price components (subtotal, shipping, tax) for that order. This is one of the last error conditions the API checks for, so it is a good way to debug your integration.
Can I view all of my orders between a certain date range?
I'm afraid of sending you my credit card and login details. Is your API secure?
Yes. We use industry-grade 256 bit SSL encryption on all API endpoints. Your card number and login details are in memory on the server only for the duration of each request.
What is the difference between original_product_id and product_id in my responses?
If you are using a seller_selection_method or merchant_id with one of the Amazon family of retailers, you'll notice an original_product_id in the response. This corresponds to the actual ASIN of the item. The product_id field will have been converted by our API into an Offer Listing ID which corresponds to a product with a particular price and seller.

Chrome Browser
Get our FREE
 Chrome Extension
Chrome Web Store

Get Product Id from Source Market.

Source Market: Amazon, Walmart, Aliexpress, Overstock ...

Always FREE! + Add to Chrome