---
title: Multi-currency integration
url: amazon-pay-checkout/v1-multi-currency-integration.html
---

<div markdown="span" class="alert alert-info" role="alert"><i class="fa fa-info-circle"></i> <b>Note:</b> The multi-currency feature is only available for merchants who have registered in the EU or UK</div>

By default, you can only charge your buyer using the currency in which you receive your disbursements from Amazon Pay. You must enable the multi-currency feature to charge your buyer using a different [supported currency](#supported-currencies). 

Prerequisites:

- You must have registered your Amazon Pay account in the EU or UK.
- You must be able to determine which currency should be used to charge the buyer (presentmentCurrency).
- Amazon Pay does not provide any currency conversion functionality, you must be able to calculate the order total in the currency that the buyer will be charged in. 

*** 

* TOC
{:toc}
{::options toc_levels="3" /}

### Integration steps

There are three steps for enabling multi-currency checkout:

1. Set `presentmentCurrency` at the start of checkout
2. Set payment `currencyCode`
3. Set Create Charge, Capture, and Refund `currencyCode`

#### 1. Set presentmentCurrency at the start of checkout

Set the `presentmentCurrency`  parameter when you [Create Checkout Session.](../amazon-pay-api-v2/v1-checkout-session.html#create-checkout-session) This will prevent the buyer from selecting a payment instrument that wasn’t issued by either Visa or Mastercard. See [Buyer checkout experience: Scenario #1](#buyer-checkout-experience) for more info.

#### Request

```
curl "https://pay-api.amazon.eu/:environment/:version/checkoutSessions/" \
-X POST
-H "x-amz-pay-idempotency-key: AVLo5tI10BHgEk2jEXAMPLEKEY"
-H "x-amz-pay-authorization: Px2e5oHhQZ88vVhc0DO%2FsShHj8MDDg%3DEXAMPLESIGNATURE"
-d @request_body
```

#### Request body

```
{
    "webCheckoutDetail": {
        "checkoutReviewReturnUrl":"https://a.com/merchant-review-page"
    },
    "storeId":"amzn1.application-oa2-client.8b5e45312b5248b69eeaStoreId",
    "paymentDetail": {
        "presentmentCurrency":"EUR"
    }
}   
```

#### 2. Set payment currencyCode

Set the `chargeAmount.currencyCode` parameter when you [Update Checkout Session](../amazon-pay-api-v2/v1-checkout-session.html#update-checkout-session) with payment details. This parameter determines the currency that will be used to charge the customer. It will also automatically update the `presentmentCurrency` parameter you passed while calling [Create Checkout Session](../amazon-pay-api-v2/v1-checkout-session.html#create-checkout-session) and prevent the buyer from completing checkout with an unsupported payment instrument. See [Buyer checkout experience: Scenario #2](#buyer-checkout-experience) for more info. Do not attempt to update the `presentmentCurrency` parameter directly as doing so will result in an error.

#### Request

```
curl "https://pay-api.amazon.eu/:environment/:version/checkoutSessions/:checkoutSessionId" \
-X PATCH
-H "x-amz-pay-authorization: Px2e5oHhQZ88vVhc0DO%2FsShHj8MDDg%3DEXAMPLESIGNATURE"
-d @request_body
```

#### Request body

```
{
    "webCheckoutDetail": {
        "checkoutResultReturnUrl":"https://a.com/merchant-confirm-page"
    },
    "paymentDetail": {
        "paymentIntent":"Authorize",
        "canHandlePendingAuthorization":false,
        "chargeAmount": {
            "amount":"1",
            "currencyCode":"EUR"
        }
     },
    "merchantMetadata": {
        "merchantReferenceId":"Merchant reference ID",
        "merchantStoreName":"Merchant store name",
        "noteToBuyer":"Note to buyer",
        "customInformation":"Custom information"
    },
    "platformId":"SPId"
}
```

#### 3. Set Create Charge, Capture, and Refund currencyCode

Set the respective `currencyCode` parameter when you [Create Charge](../amazon-pay-api-v2/v1-charge.html#create-charge), [Capture](../amazon-pay-api-v2/v1-charge.html#capture-charge) payments, and issue [Refunds](../amazon-pay-api-v2/v1-refund.html#create-refund) to match the `chargeAmount.currencyCode` value set during checkout. You cannot Capture or Refund in a different currency.

### Common integration errors

The following errors return a [HTTP 400 (Bad Request) status code](https://restfulapi.net/http-status-codes/) and indicate that there’s an integration error.

#### Setting presentmentCurrency to an unsupported value

Review the [supported currencies](#supported-currencies) table. You will get the following error if you [Create Checkout Session](../amazon-pay-api-v2/v1-checkout-session.html#create-checkout-session) with an unsupported `presentmentCurrency`, or if you Update Checkout Session with an unsupported `chargeAmount.currencyCode`:

```
{
    "reasonCode": "InvalidParameterValue",
    "message": "The value 'RMB' provided for 'presentmentCurrency' is invalid. It is not supported."
}
```

#### Attempting to update presentmentCurrency with Update Checkout Session

Once the [Checkout Session](../amazon-pay-api-v2/v1-checkout-session.html) object has been created, you must use the `chargeAmount.currencyCode` parameter to update `presentmentCurrency`. You will get the following error if you attempt to update the `presentmentCurrency` parameter directly:

```
{
    "reasonCode": "InvalidParameterValue",
    "message": "presentmentCurrency cannot be updated in updateCheckoutSession request, please update ChargeAmount instead."
}
```

#### Capturing payment or issuing a refund with the wrong currency 

You must [Create Charge](../amazon-pay-api-v2/v1-charge.html#create-charge), [Capture](../amazon-pay-api-v2/v1-charge.html#capture-charge) payments, and issue [Refunds](../amazon-pay-api-v2/v1-refund.html#create-refund) using the same `chargeAmount.currencyCode` value set during checkout. You will get the following error if you attempt to Create Charge, Capture, or Refund in a different currency:

```
{
    "reasonCode": "CurrencyMismatch",
    "message": "Currency code provided in [Charge/Refund] does not match the currency set during checkout"
}
```

### Buyer checkout experience

If a non-default checkout currency is specified as the `presentmentCurrency`, the buyer will only be able to successfully checkout using a payment instrument issued by either Visa or Mastercard. Amazon Pay will handle scenarios involving unsupported payment instruments in the following ways:

* **Scenario #1:** You auto-detect the buyer’s currency preference based on location or give buyers the ability to choose their preferred currency before they start checkout. In this scenario, a non-default currency is set at the start of checkout before the buyer has selected a payment instrument. The buyer will only be able to select either a Visa or Mastercard from their Amazon wallet. 
* **Scenario #2:** You offer the buyer the ability to choose their preferred currency right before they complete their order. In this scenario, a non-default currency is set only after the buyer has already selected an unsupported payment instrument. Amazon Pay will prompt the buyer to select either a Visa or Master from their Amazon wallet before they can complete checkout.
* **Scenario #3:** If a non-default currency is set and the buyer doesn’t have a Visa or Master in their Amazon wallet, they will be given the option to add one on an Amazon Pay hosted page.

### Supported currencies

The following is a table of supported currencies and their corresponding currency codes.

<table width="100%" border="1">
    <tbody>
        <tr id='YHS9CARVL4L'>
            <td id='s:YHS9CARVL4L;YHS9CAIfgIj' style='vertical-align: top; font-weight: bold; width: 50%;' class='bold'>Currency
                <br /></td>
            <td id='s:YHS9CARVL4L;YHS9CABsjZN' style='vertical-align: top; font-weight: bold; width: 50%;' class='bold'>Currency Code
                <br /></td>
        </tr>
        <tr id='YHS9CAVVvLt'>
            <td id='s:YHS9CAVVvLt;YHS9CAIfgIj' style=''>Australian Dollar
                <br /></td>
            <td id='s:YHS9CAVVvLt;YHS9CABsjZN' style=''>AUD
                <br /></td>
        </tr>
        <tr id='YHS9CAdbRoA'>
            <td id='s:YHS9CAdbRoA;YHS9CAIfgIj' style=''>British Pound
                <br /></td>
            <td id='s:YHS9CAdbRoA;YHS9CABsjZN' style=''>GBP
                <br /></td>
        </tr>
        <tr id='YHS9CAMgf5g'>
            <td id='s:YHS9CAMgf5g;YHS9CAIfgIj' style=''>Danish Krone
                <br /></td>
            <td id='s:YHS9CAMgf5g;YHS9CABsjZN' style=''>DKK
                <br /></td>
        </tr>
        <tr id='YHS9CANDzIj'>
            <td id='s:YHS9CANDzIj;YHS9CAIfgIj' style=''>Euro
                <br /></td>
            <td id='s:YHS9CANDzIj;YHS9CABsjZN' style=''>EUR
                <br /></td>
        </tr>
        <tr id='YHS9CAr123K'>
            <td id='s:YHS9CAr123K;YHS9CAIfgIj' style=''>Hong Kong Dollar
                <br /></td>
            <td id='s:YHS9CAr123K;YHS9CABsjZN' style=''>HKD
                <br /></td>
        </tr>
        <tr id='YHS9CAzElFp'>
            <td id='s:YHS9CAzElFp;YHS9CAIfgIj' style=''>Japanese Yen
                <br /></td>
            <td id='s:YHS9CAzElFp;YHS9CABsjZN' style=''>JPY
                <br /></td>
        </tr>
        <tr id='YHS9CALQB5O'>
            <td id='s:YHS9CALQB5O;YHS9CAIfgIj' style=''>New Zealand Dollar
                <br /></td>
            <td id='s:YHS9CALQB5O;YHS9CABsjZN' style=''>NZD
                <br /></td>
        </tr>
        <tr id='YHS9CAVRLdD'>
            <td id='s:YHS9CAVRLdD;YHS9CAIfgIj' style=''>Norwegian Krone
                <br /></td>
            <td id='s:YHS9CAVRLdD;YHS9CABsjZN' style=''>NOK
                <br /></td>
        </tr>
        <tr id='YHS9CAGAlvL'>
            <td id='s:YHS9CAGAlvL;YHS9CAIfgIj' style=''>South African Rand
                <br /></td>
            <td id='s:YHS9CAGAlvL;YHS9CABsjZN' style=''>ZAR
                <br /></td>
        </tr>
        <tr id='YHS9CAUgzZF'>
            <td id='s:YHS9CAUgzZF;YHS9CAIfgIj' style=''>Swedish Krone
                <br /></td>
            <td id='s:YHS9CAUgzZF;YHS9CABsjZN' style=''>SEK
                <br /></td>
        </tr>
        <tr id='YHS9CAyGtXd'>
            <td id='s:YHS9CAyGtXd;YHS9CAIfgIj' style=''>Swiss Franc
                <br /></td>
            <td id='s:YHS9CAyGtXd;YHS9CABsjZN' style=''>CHF
                <br /></td>
        </tr>
        <tr id='YHS9CAv4w4j'>
            <td id='s:YHS9CAv4w4j;YHS9CAIfgIj' style=''>United States Dollar
                <br /></td>
            <td id='s:YHS9CAv4w4j;YHS9CABsjZN' style=''>USD
                <br /></td>
        </tr>
    </tbody>
</table>

