type:
gateway
name:
Amazon Payments
countrie:
US
support-added:
2.0
auth-net-emulation:
no
supports-3dsecure:
no
gateway:
https://payments.amazon.com/solutionproviders

Amazon Payments

Before You Begin…

Do you already have an Amazon merchant account? Amazon has a few different options, including Checkout by Amazon (CBA), Amazon Simple Pay (ASP), and Flexible Payment System (FPS). None of those are what you're going to use here.

Instead, this is Amazon's latest integration, “Amazon Payments”. Even if you already have another Amazon merchant account, you'll need to complete the steps below. If you attempt to use credentials from a different Amazon system, you'll get errors. We know this is confusing, but ASP and FPS are going away soon, at which point things likely will become more clear.

Accepting donations, or selling alcohol, smoking/tobacco or higher risk products?
Before getting started - we recommend ensuring that the types of products/services you will be selling through Amazon Payments will meet their Acceptable Use policy. Amazon currently do not allow donations to be accepted, or to sell alcohol or smoking/tobacco products, along with a number of other restrictions. If you're not sure if your business type is supported, we recommend reaching out to Amazon Payments support to clarify with them.

What about my existing subscribers on ASP?

Glad you asked! Get in touch with us for more info, but Amazon will announce details by mid-May. Your ASP subscriptions will be able to transfer to FoxyCart to run on Pay with Amazon, without any action required from your customers.

Check with Amazon about your Sales Velocity

Some of our users have run into errors accepting payments for larger dollar amounts. This is due to Amazon's “sales velocity”. This is beyond our control at FoxyCart, but is worth checking with Amazon about if you sometimes get large orders or if you're expecting more sales than usual.

Per Customer Billing Limits (per month)

Amazon limits the monthly charges a new Seller can make to a customers account when they chose to store their payment information with your store. Please see their policy for more information and how to contact them to request an increase.

Setting Up Amazon Payments for FoxyCart

  1. Login using the desired Amazon Payments account.
  2. Create a Login with Amazon profile.
    1. The Application Name and Description will be shown when buyers Login on your site.
    2. The Privacy Notice URL is required and should link to an appropriate page on your site.
    3. The Allowed Login Domain should be the secure URL that the checkout will be served from, for example: https://mystore.foxycart.com
  3. Consent to allow FoxyCart to make API calls on your account.
  4. If you don't already have the FoxyCart admin open, go there in a new tab, and click the settings → payment page link. Scroll down a little to find the “Accept payments using your Amazon account” checkbox. Check it and notice the Seller ID, Client ID and MWS Auth Token fields. We'll get those in the next steps. (Keep the FoxyCart admin open in a browser tab so you can copy/paste the values.)
  5. All three fields can be found in your Amazon Payments account on Seller Central
    1. Login to your Seller Central account
    2. If not already selected, choose Amazon Payments Advanced (Production View) from the drop-down in the menu bar. (This should be to the left of the magnifying glass icon in the top right. Depending on your browser screen size, this might be a little double-arrow icon you need to click.)
    3. In the top menu choose IntegrationMWS Access Key
    4. The Seller ID shown is the value for Seller ID in your FoxyCart configuration screen.
    5. The Client ID shown is the value you will enter for Client ID in the FoxyCart configuration page.
    6. Make sure your solution provider is FoxyCart.
    7. To obtain the MWS AuthToken click the “Show Secret” button. Copy and paste its value to the appropriate field in the FoxyCart configuration page.

Setting up the Instant Payment Notifications

Important: Ensure this step is completed for your Amazon Payments account, as without it transactions could fail to complete correctly.

The Instant Payment Notification (IPN) feature allows FoxyCart to be informed about any delayed payment status changes that may occur at Amazon.

To add this setting:

  1. Login to your Seller Central account
  2. Head to “Integration Settings” under the “Settings” menu.
  3. Make sure you're on your Production (not Sandbox) account. (If you're on Sandbox, you'll see “Sandbox” in the upper left, under the Amazon logo.)
  4. For the “Integrator URL” setting, enter the URL https://FOXYCART-STORE-DOMAIN/ipn.php.
    1. If your FoxyCart store domain is mystore.foxycart.com, your IPN URL would be https://mystore.foxycart.com/ipn.php.
    2. If you had a custom SSL subdomain for your store like secure.mystore.com, your IPN URL would be https://secure.mystore.com/ipn.php.

Whitelist your FoxyCart Domain

  1. Select “Login with Amazon” from the drop-down at the top of the page.
  2. Select the store from “Applications” on the left-side of the page.
  3. Under “Web Setting” in the main body of the page, click the “Edit” button.
  4. Add your FoxyCart checkout domain. For example, if your checkout is at https://yourstore.foxycart.com/checkout, then the value for 'Allowed JavaScript Origins' should be https://yourstore.foxycart.com/
  5. Add each domain used by the site under “Allowed Javascript Origins” by clicking “Add Another“.

Testing

Obtaining a Test Account

When you first access the Sandbox environment through Seller Central, Amazon recommends configuring some test buyer accounts to help with your integration testing. These test accounts can be modified to suit most use cases, including the addition of shipping addresses that might violate a business rule your company has about where items can be shipped. You can configure these accounts from Seller Central by going to the “Integration” tab and selecting “Test Accounts”.

With the customization available through Seller Central, Amazon encourages you to test as many scenarios as you see fit through multiple test buyer accounts.

Troubleshooting & Interpreting Response Codes

Resolving Suspended Merchant Agreements

If a customer's subscription has ended up in a suspended state due to a payment method being declined - they will need to update their payment details in their Amazon Pay account. You can send them to this page for steps they can take to bring the agreement back into an open state.

"We're Sorry" Error

If when trying Amazon Payments after entering your credentials in the administration you receive an error notice in the popup, look for the “Show Details” link and click that to see technical details for what went wrong. Usually you will see the following:

 Error Summary
 400 Bad Request
 The domain on which you are using the JavaScript SDK has not been whitelisted for your application.

This occurs when your Login with Amazon configuration is incorrect for your domain. To remedy this, login to your seller central account and choose 'Login with Amazon' from the drop-down menu at the top menu bar. Next, click the name of your configured application in the left sidebar and look for the section named 'Web Settings'. In the web settings section look for a configuration value called “Allowed JavaScript Origins” and ensure the value entered there matches the secure url on which the 'Pay with Amazon' button lives. For example, if the button was clicked from https://yourstore.foxycart.com/cart then the value for 'Allowed JavaScript Origins' should be https://yourstore.foxycart.com

Important Notes and Caveats

Possible Action: Datafeed Handling

An Amazon FPS transaction may not process instantly, so at the time we process the initial transaction, we don't know if it was approved or not. To handle this, transactions are initially marked as pending, and when we get a confirmation from Amazon on the result of the transaction, we update it accordingly. Each time the status changes, a datafeed will be sent to your endpoint if configured with the transaction details and the status node will be present.

The status node can contain one of three different values: pending, approved or rejected. Depending on the types of actions you're needing to perform at your datafeed endpoint, you need to make sure the appropriate status value is present.

User Notes and Experiences

If you have tips, experience, or helpful notes related to this gateway that would benefit others, please add them below, including your name and the date. We reserve the right to edit or remove comments that don't add value to this page.

Site Tools