---
title: Add the Sign in with Amazon Button
url: amazon-pay-paymentmethodonfile-signinandsetup/add-the-amazon-pay-button.html
---

**[Step 2 of 8]**The Amazon sign-in and setup process commences when the buyer interacts with the 'Sign in with Amazon' button. Ensure that this button is prominently placed wherever the buyer accesses the sign-in functionality on your website.

In this step, you will configure the Amazon Pay Checkout Session object and then render the ‘Sign in with Amazon’ button. At the end of this step, you will be able to redirect the buyer to an Amazon-hosted page where they can sign in and consent to share their information and save Amazon Pay as a payment method for purchases. The information that is shared enables you to create an account for the buyer and sign them in to your website.

In Seller Central, you must add the domains where the Amazon Pay button will be rendered to Seller Central. See <a href='get-set-up-for-integration.html#2-add-domains-to-seller-central' target='_blank' rel='noopener noreferrer'>Add domains to Seller Central</a> for more information.

<script>
  function keySpecifics(){
    const keyQuery = "?environmentSpecificKeys=";
    const currentSetting = window.location.search?.split("?environmentSpecificKeys=")[1] ?? 'false';
    const newSetting = currentSetting === 'false' ? 'true' : 'false';
    window.location = window.location.origin + window.location.pathname + keyQuery + newSetting // +  window.location.hash (not included as it feels weird to jump down)
  }
</script>
<div style="display:none" class="environmentSpecificKeys">
  <div markdown="span" class="alert alert-info" role="alert"><i class="fa fa-info-circle"></i> <b>Note:</b> If your publicKeyId <b>_does not_</b> have an environment prefix (does not begin with 'SANDBOX' or 'LIVE') follow <a href='#' onclick='keySpecifics()' rel='noopener noreferrer'>these instructions</a> instead.</div>
</div>
<div style="display:none" class="notEnvironmentSpecificKeys">
  <div markdown="span" class="alert alert-info" role="alert"><i class="fa fa-info-circle"></i> <b>Note:</b> If your publicKeyId has an environment prefix (for example: SANDBOX-AFVX7ULWSGBZ5535PCUQOY7B) follow <a href='#' onclick='keySpecifics()' rel='noopener noreferrer'>these instructions</a> instead.</div>
</div>


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

***

### 1. Add the Amazon Pay script

Add the Amazon Pay script to your HTML file. Be sure you select the correct region.

<ul id="profileTabs" class="nav nav-tabs">
  <li class="nav-item"><a class="active nav-link noExtIcon" href="#ustab" data-toggle="tab">US</a></li>
  <li class="nav-item"><a class="nav-link noExtIcon" href="#eutab" data-toggle="tab">EU / UK</a></li>
  <li class="nav-item"><a class="nav-link noExtIcon" href="#jptab" data-toggle="tab">JP</a></li>
</ul>
<div class="tab-content">
  <div role="tabpanel" class="tab-pane active" id="ustab">   
<div markdown="block">
```html
<script src="https://static-na.payments-amazon.com/checkout.js"></script>
```
</div>
  </div>
  <div role="tabpanel" class="tab-pane" id="eutab">
<div markdown="block">
```html
<script src="https://static-eu.payments-amazon.com/checkout.js"></script>
```
</div>
  </div>
  <div role="tabpanel" class="tab-pane" id="jptab">
<div markdown="block">
```html
<script src="https://static-fe.payments-amazon.com/checkout.js"></script>
```
</div>
  </div>
</div>

***

### 2. Generate the Create Checkout Session payload

To render the `Sign in with Amazon` button, you will need to provide a payload that Amazon Pay can use to determine which buyer details to share and where to redirect the buyer after they sign in.

**Instructions for generating button payload:**
* Set the `signInReturnUrl` parameter to the URL that the buyer should be redirected to after they sign in. The URL will have a `checkoutSessionId` that you can use to retrieve buyer details appended as a query parameter.

#### Payload example

```
{
 "storeId":"amzn1.application-oa2-client.8b5e45312b5248b69eeaStoreId",
 "signInScopes":["name", "email", "postalCode", "shippingAddress", "phoneNumber", "billingAddress"]
 "webCheckoutDetails": {
    "signInReturnUrl": "https://a.com/merchant-page",
    "signInCancelUrl": "optional_cancel_url"
    }
}
```


<table width="100%" border="1">
    <tbody>
        <tr>
            <td style='vertical-align: top; font-weight: bold; width: 30%' class='bold'>Name
                <br /></td>
            <td style='vertical-align: top; font-weight: bold; width: 20%' class='bold'>Location
                <br /></td>
            <td style='vertical-align: top; font-weight:bold;  width: 50%' class='bold'>Description
                <br /></td>
        </tr>
        <tr>
            <td style='vertical-align: top;'>webCheckoutDetails<br><b>(required)</b><br /><br />Type: <a href="#type-webcheckoutdetails">webCheckoutDetails</a>
                <br /></td>
            <td style='text-align: left;vertical-align: top;'>Body
                <br /></td>
            <td style='vertical-align: top;'>URLs associated to the Checkout Session used to complete checkout. The URLs must use HTTPS protocol
                <br /></td>
        </tr>
        <tr>
            <td style='vertical-align: top;'>storeId<br><b>(required)</b><br><br>Type: string
                <br /></td>
            <td style='vertical-align: top;'>Body
                <br /></td>
            <td style='vertical-align: top;'>Amazon Pay store ID. Retrieve this value from Amazon Pay Integration Central: <a href="https://sellercentral.amazon.com/gp/pyop/seller/integrationcentral/" target="_blank" rel="noopener noreferrer">US</a>, <a href="https://sellercentral-europe.amazon.com/gp/pyop/seller/integrationcentral/" target="_blank" rel="noopener noreferrer">EU</a>, <a href="https://sellercentral-japan.amazon.com/gp/pyop/seller/integrationcentral/" target="_blank" rel="noopener noreferrer">JP</a>
                <br /></td>
        </tr>
        <tr>
            <td style='vertical-align: top;'>signInScopes<br /><br />Type: list &lt;<a href="#type-webcheckoutdetails">signInScopes</a>&gt;
                <br /></td>
            <td style='text-align: left;vertical-align: top;'>Body
                <br /></td>
            <td style='vertical-align: top;'>The buyer details that you are requesting access for. Note that Amazon Pay will always return <code>buyerId</code> even if no values are set for this parameter
                <br /></td>
        </tr>
    </tbody>
</table>

#### Type: webCheckoutDetails

<table width="100%" border="1">
    <tbody>
        <tr>
            <td style='vertical-align: top; font-weight: bold; width: 30%;' class='bold'>Parameter
                <br /></td>
            <td style='vertical-align: top; font-weight: bold; width: 70%;' class='bold'>Description
                <br /></td>
        </tr>
        <tr>
            <td style='vertical-align: top;'>checkoutReviewReturnUrl<br><br>Type: string
                <br /></td>
            <td style='vertical-align: top;'>Checkout review URL provided by the merchant. Amazon Pay will redirect to this URL after the buyer selects their preferred payment instrument and shipping address<br><br>Note:<br>In the Live environment, URLs must use HTTPS protocol. The URL domain must be added to Seller Central. See <a href="../amazon-pay-checkout/get-set-up-for-integration.md#2-add-domains-to-seller-central" target="_blank" rel="noopener noreferrer">Add domains to Seller Central</a> for more information.<br>In the Sandbox environment, you don't need an SSL certificate and can use the HTTP protocol if you're testing on localhost (http://localhost). You don't need to add URLs to the JavaScript Origins in SellerCentral<br><br>Max length: 1024 characters/bytes
                <br /></td>
        </tr>
        <tr>
            <td style='vertical-align: top;'>checkoutResultReturnUrl<br><br>Type: string<br>
                <br /></td>
            <td style='vertical-align: top;'>Checkout result URL provided by the merchant. Amazon Pay will redirect to this URL after completing the transaction<br><br>Note: In the Live environment, URLs must use HTTPS protocol. In the Sandbox environment, you don't need an SSL certificate and can use the HTTP protocol if you're testing on localhost (http://localhost)<br><br>Max length: 1024 characters/bytes
                <br /></td>
        </tr>
        <tr>
            <td style='vertical-align: top;'>checkoutCancelUrl<br><br>Type: string<br>
                <br /></td>
            <td style='vertical-align: top;'>Checkout cancellation URL provided by the merchant. Amazon Pay will redirect to this URL if the buyer cancels checkout on any Amazon Pay hosted page<br><br>If you do not provide a <code>checkoutCancelUrl</code>, Amazon Pay will redirect the buyer using the following logic:
            <ul>
                <li>Payment and address selection hosted page - redirect to referrer URL unless it's a different domain than <code>checkoutReviewReturnUrl</code>. If there is a domain mismatch, the buyer will be redirected to <code>checkoutReviewReturnUrl</code></li>
                <li>Update payment and address hosted page - redirect to <code>checkoutReviewReturnUrl</code></li>
                <li> Declined payment handling hosted page - redirect to <code>checkoutResultReturnUrl</code></li>
            </ul>
            Max length: 1024 characters/bytes
            <br /></td>
        </tr>
        <tr>
            <td style='vertical-align: top;'>amazonPayRedirectUrl<br><br>Type: string
                <br /></td>
            <td style='vertical-align: top;'>URL provided by Amazon Pay. Merchant will redirect to this page after setting transaction details to complete checkout<br><br>Max length: 256 characters/bytes
                <br /></td>
        </tr>
        <tr>
            <td style='vertical-align: top;'>checkoutMode<br><br>Type: string
                <br /></td>
            <td style='vertical-align: top;'>Specify whether the buyer will return to your website to review their order before completing checkout<br><br>Supported values:
                <ul>
                    <li>'ProcessOrder' - Buyer will complete checkout on the Amazon Pay hosted page immediately after clicking on the Amazon Pay button. <code>paymentDetails</code> is required when using 'ProcessOrder'. <code>addressDetails</code> is also required if you use 'ProcessOrder' with <code>productType</code> set to 'PayAndShip'</li>
                    </ul>
                </td>
        </tr>
        <tr>
            <td style='vertical-align: top;'>signInReturnUrl<br><br>Type: string
                <br /></td>
            <td style='vertical-align: top;'>Amazon Pay will redirect to this URL after the buyer signs in<br><br>Note: In the Live environment, URLs must use HTTPS protocol. The URL domain must be added to Seller Central. See <a href="https://developer.amazon.com/docs/amazon-pay-checkout/get-set-up-for-integration.html#2-add-domains-to-seller-central" target="_blank" rel="noopener noreferrer">Add domains to Seller Central</a> for more information. In the Sandbox environment, you don't need an SSL certificate and can use the HTTP protocol if you're testing on localhost (http://localhost). You don't need to add URLs to the JavaScript Origins in SellerCentral
                <br /></td>
        </tr>
        <tr>
            <td style='vertical-align: top;'>signInCancelUrl<br><br>Type: string
            <br /></td>
            <td style='vertical-align: top;'>Sign-in cancellation URL provided by the merchant. Amazon Pay will redirect to this URL if the buyer cancels sign-in on the Amazon hosted page
            <br /></td>
        </tr>
    </tbody>
</table>

#### Type: signInScope

<table width="100%" border="1">
    <tbody>
        <tr id='eVX9CAOgHRv'>
            <td id='s:eVX9CAOgHRv;eVX9CAkIKgm' style='vertical-align: top; font-weight: bold;' class='bold'>Parameter
                <br /></td>
            <td id='s:eVX9CAOgHRv;eVX9CA0qHyb' style='vertical-align: top; font-weight: bold;' class='bold'>Description
                <br /></td>
        </tr>
        <tr id=''>
            <td id='' style='vertical-align: top;'>name
                <br /></td>
            <td id='' style='vertical-align: top;'>Request access to buyer name
                <br /></td>
        </tr>
        <tr id=''>
            <td id='' style='vertical-align: top;'>email
                <br /></td>
            <td id='' style='vertical-align: top;'>Request access to buyer email address
                <br /></td>
        </tr>
        <tr id=''>
            <td id='' style='vertical-align: top;'>postalCode
                <br /></td>
            <td id='' style='vertical-align: top;'>Request access to buyer default shipping address postal code and country code
                <br /></td>
        </tr>
        <tr id=''>
            <td id='' style='vertical-align: top;'>shippingAddress
                <br /></td>
            <td id='' style='vertical-align: top;'>Request access to buyer default shipping address
                <br /></td>
        </tr>
        <tr id=''>
            <td id='' style='vertical-align: top;'>billingAddress
                <br /></td>
            <td id='' style='vertical-align: top;'>Request access to buyer default billing address
                <br /></td>
        </tr>
        <tr id=''>
            <td id='' style='vertical-align: top;'>phoneNumber
                <br /></td>
            <td id='' style='vertical-align: top;'>Request access to buyer default billing address phone number
                <br /></td>
        </tr>
    </tbody>
</table>

***

### 3. Sign the payload

You must secure the payload using a signature. The payload does not include a timestamp so you can re-use the signature as long as the payload does not change. If you need to change the payload and your button signature is dynamic, you should <a href="../amazon-pay-checkout/amazon-pay-script.md#decoupling-button-render-and-checkout-initiation" target="_blank" rel="noopener noreferrer">decouple button render from checkout initialization</a> to avoid re-rendering the button.

**Option 1 (recommended):** Generate a signature using the helper function provided in the Amazon Pay SDKs. The signature generated by the helper function is only valid for the button and not for API requests.

<ul id="profileTabs" class="nav nav-tabs">
  <li class="nav-item"><a class="active nav-link noExtIcon" href="#phptab" data-toggle="tab">PHP</a></li>
  <li class="nav-item"><a class="nav-link noExtIcon" href="#dotnettab" data-toggle="tab">.NET</a></li>
  <li class="nav-item"><a class="nav-link noExtIcon" href="#javatab" data-toggle="tab">Java</a></li>
  <li class="nav-item"><a class="nav-link noExtIcon" href="#nodejstab" data-toggle="tab">Node.js</a></li>
</ul>
<div class="tab-content">
  <div role="tabpanel" class="tab-pane active" id="phptab">   
<div markdown="block">
```
<?php
    include 'vendor/autoload.php';

    $amazonpay_config = array(
        'public_key_id' => 'MY_PUBLIC_KEY_ID',
        'private_key'   => 'keys/private.pem',
        'region'        => 'US',
        'sandbox'       => true
    );

    $client = new Amazon\Pay\API\Client($amazonpay_config);
    $payload = '{"storeId":"amzn1.application-oa2-client.xxxxx","webCheckoutDetails":{"signInReturnUrl":"https://a.com/merchant-page"},"chargePermissionType":"PaymentMethodOnFile","paymentMethodOnFileMetadata":{"setupOnly": true}, "paymentDetails": {"paymentIntent": "Confirm", "canHandlePendingAuthorization": false}}';
    $signature = $client->generateButtonSignature($payload);
    echo $signature . "\n";
?>
```
<a href="https://github.com/amzn/amazon-pay-api-sdk-php/blob/master/Amazon/Pay/API/Client.php#L400"  target="_blank" rel="noopener noreferrer">Source code</a>
</div>
  </div>
  <div role="tabpanel" class="tab-pane" id="dotnettab">
<div markdown="block">
```
var payConfiguration = new ApiConfiguration
(
    region: Region.Europe,
    environment: Environment.Sandbox,
    publicKeyId: "MY_PUBLIC_KEY_ID",
    privateKey: "PATH_OR_CONTENT_OF_MY_PRIVATE_KEY"
);

var request = new  CreateCheckoutSessionRequest
(
    signInReturnUrl: "https://a.com/merchant-page",
    storeId: "amzn1.application-oa2-client.xxxxx"
);

request.ChargePermissionType = ChargePermissionType.PaymentMethodOnFile;
request.PaymentMethodOnFileMetadata.SetupOnly = true;
request.PaymentDetails.PaymentIntent = PaymentIntent.Confirm;
request.PaymentDetails.CanHandlePendingAuthorization = false;

// generate the button signature
var signature = client.GenerateButtonSignature(request);

// the payload as JSON string that you must assign to the button in the next step
var payload = request.ToJson(); 
```
<a href="https://github.com/amzn/amazon-pay-api-sdk-dotnet/#generate-button-signature" target="_blank" rel="noopener noreferrer">Source code</a>
</div>
  </div>
  <div role="tabpanel" class="tab-pane" id="javatab">
<div markdown="block">
```
PayConfiguration payConfiguration = null;
try {
    payConfiguration = new PayConfiguration()
                .setPublicKeyId("YOUR_PUBLIC_KEY_ID")
                .setRegion(Region.YOUR_REGION_CODE)
                .setPrivateKey("YOUR_PRIVATE_KEY_STRING")
                .setEnvironment(Environment.SANDBOX);
}catch (AmazonPayClientException e) {
    e.printStackTrace();
}

AmazonPayClient client = new AmazonPayClient(payConfiguration);

String payload = "{\"storeId\":\"amzn1.application-oa2-client.xxxxxx\",\"webCheckoutDetails\":{\"signInReturnUrl\":\"https://a.com/merchant-page\"},\"chargePermissionType\":\"PaymentMethodOnFile\",\"paymentMethodOnFileMetadata\":{\"setupOnly\": true}, \"paymentDetails\": {\"paymentIntent\": \"Confirm\", \"canHandlePendingAuthorization\": false}}";
String signature = client.generateButtonSignature(payload);

```
<a href="https://github.com/amzn/amazon-pay-api-sdk-java/blob/bbbf89c480f07f8a7217a0a50e88131832612f59/src/com/amazon/pay/api/AmazonPayClient.java#L105"  target="_blank" rel="noopener noreferrer">Source code</a>
</div>
  </div>
  <div role="tabpanel" class="tab-pane" id="nodejstab">
<div markdown="block">
```html
const fs = require('fs');
const Client = require('@amazonpay/amazon-pay-api-sdk-nodejs');

const config = {
    publicKeyId: 'ABC123DEF456XYZ',
    privateKey: fs.readFileSync('tst/private.pem'),
    region: 'us',
    sandbox: true
};

const testPayClient = new Client.AmazonPayClient(config);
const payload = {
    "webCheckoutDetails": {
        "signInReturnUrl": "https://a.com/merchant-page"
    },
    "storeId": "amzn1.application-oa2-client.xxxxx",
    "chargePermissionType": "PaymentMethodOnFile",   
    "paymentMethodOnFileMetadata": {
        "setupOnly": true
    },
    "paymentDetails": {
        "paymentIntent": "Confirm",
        "canHandlePendingAuthorization": false
    }
};
const signature = testPayClient.generateButtonSignature(payload);
```
<a href="https://github.com/amzn/amazon-pay-api-sdk-nodejs/blob/23c3f03f06a4deab437a42885e1d1f548287e7f3/src/client.js#L60"  target="_blank" rel="noopener noreferrer">Source code</a>
</div>
  </div>
</div>

**Option 2:** Build the signature manually by following steps 2 and 3 of the <a href="../amazon-pay-api-v2/signing-requests.md" target="_blank" rel="noopener noreferrer">signing requests</a> guide.


***

### 4. Render the button

Use the values from the previous two steps to render the Amazon Pay button to a HTML container element. The button will be responsive and it will inherit the size of the container element, see <a href="../amazon-pay-checkout/amazon-pay-script.md#responsive-button-logic" target="_blank" rel="noopener noreferrer">responsive button logic</a> for details.

The code below will initiate Amazon Pay checkout immediately on button click. If you need control of the click event, you can decouple button render and checkout initiation. See <a href="../amazon-pay-checkout/amazon-pay-script.md" target="_blank" rel="noopener noreferrer">Amazon Pay script</a> for more info.

#### Code sample
```html
<body>
      <div id="AmazonPayButton"></div>
      <script src="https://static-na.payments-amazon.com/checkout.js"></script>
      <script type="text/javascript" charset="utf-8">
          const amazonPayButton = amazon.Pay.renderButton('#AmazonPayButton', {
              // set checkout environment
              merchantId: 'merchant_id',
              publicKeyId: 'SANDBOX-xxxxxxxxxx',
              ledgerCurrency: 'USD',         
              // customize the buyer experience
              checkoutLanguage: 'en_US',
              productType: 'SignInAndSetup',
              placement: 'Home',
              buttonColor: 'Gold',
              // configure Create Checkout Session request
              createCheckoutSessionConfig: {                     
                  payloadJSON: 'payload', // string generated in step 2
                  signature: 'xxxx', // signature generated in step 3
              }   
          });
      </script>
  </body>
```

#### Function parameters

<table width="100%" border="1">
    <tbody>
        <tr>
            <td style='vertical-align: top; font-weight: bold ; width: 35%' class='bold'>Parameter
                <br /></td>
            <td style='vertical-align: top; font-weight: bold; width: 65%' class='bold'>Description
                <br /></td>
        </tr>
        <tr>
            <td style='vertical-align: top;'>merchantId<br>(<b>required</b>)<br><br>Type: string
                <br /></td>
            <td style='text-align: left;vertical-align: top;'>Amazon Pay merchant account identifier
                <br /></td>
        </tr>
         <tr style="display:none;" class="environmentSpecificKeys">
            <td style='vertical-align: top;'>publicKeyId<br>(<b>required</b>)<br><br>Type: string
                <br /></td>
            <td style='text-align: left;vertical-align: top;'>Credential provided by Amazon Pay. See <a href="../amazon-pay-recurring-checkout/get-set-up-for-integration.md#4-get-your-publickeyid" target="_blank" rel="noopener noreferrer">Get you publicKeyId</a> for more info<br><br>
            You must also set the <code>sandbox</code> parameter if your <code>publicKeyId</code> does not have an environment prefix
                <br /></td>
        </tr>
        <tr>
            <td style='vertical-align: top;'>createCheckoutSessionConfig<br>(<b>required</b>)<br><br>Type: <a href="../amazon-pay-checkout/amazon-pay-script.md#type-buttonConfig">buttonConfig</a>
                <br /></td>
            <td style='text-align: left;vertical-align: top;'>Create Checkout Session configuration. This is a required field if you use PayAndShip or PayOnly <code>productType</code></td>
        </tr>
         <tr>
                    <td style='text-align: left;vertical-align: top;'>placement<br>(<b>required</b>)<br><br>Type: string
                        <br /></td>
                    <td style='text-align: left;vertical-align: top;'>Placement of the 'Sign in with Amazon' button on your website<br><br>Supported values:
                    <ul>
                      <li>'Home' - Initial or main page</li>
                      <li>'Product' - Product details page</li>
                      <li>'Cart' - Cart review page before buyer starts checkout</li>
                      <li>'Checkout' - Any page after buyer starts checkout</li>
                      <li>'PaymentMethodList' - A list of available payment methods, displayed in checkout or in the payment method section of your site</li>
                      <li>'Onboarding' - Displayed after the buyer signs in to your site</li>
                      <li>'Other' - Any page that doesn't fit the previous descriptions</li>
                    </ul>
                  </td>
                </tr>
        <tr>
            <td style='text-align: left;vertical-align: top;'>ledgerCurrency<br>(<b>required</b>)<br><br>Type: string
                <br /></td>
            <td style='text-align: left;vertical-align: top;'>Ledger currency provided during registration for the given merchant identifier<br><br>Supported values: 
            <ul>
                <li>US merchants - 'USD'</li>
                <li>EU merchants - 'EUR'</li>
                <li>UK merchants - 'GBP'</li>
                <li>JP merchants - 'JPY'</li>
              </ul>
            </td>
        </tr>
        <tr>
            <td style='vertical-align: top;'>productType<br><br>Type: string
                <br /></td>
            <td style='text-align: left;vertical-align: top;'>Product type selected for checkout<br><br>Supported values:<br>
                    <ul>
                      <li>'SignInAndSetup' - Offer Amazon Sign-in & Setup. Select this product type if you need the buyer to create an account and sign in to your app or website. The buyer will consent to share their information and save Amazon Pay for purchases.</li>
                    </ul>
            </td>
        </tr>
        <tr>
            <td style='vertical-align: top;'>buttonColor<br><br>Type: string
                <br /></td>
            <td style='text-align: left;vertical-align: top;'>Color of the 'Sign in with Amazon' button<br><br>Supported values: 'Gold', 'LightGray', 'DarkGray'<br>
              Default value: 'Gold'
                <br /></td>
        </tr>
        <tr>
            <td style='vertical-align: top;'>checkoutLanguage<br><br>Type: string
                <br /></td>
            <td style='text-align: left;vertical-align: top;'>Language used to render the button and text on Amazon Pay hosted pages. Please note that supported language(s) is dependent on the region that your Amazon Pay account was registered for<br><br>Supported values: 
              <ul>
                <li>US merchants - 'en_US'</li>
                <li>EU/UK merchants - 'en_GB', 'de_DE', 'fr_FR', 'it_IT', 'es_ES'</li>
                <li>JP merchants - 'ja_JP'</li>
              </ul>
            </td>
        </tr>
        <tr>
            <td style='vertical-align: top;'>sandbox<br><br>Type: boolean
                <br /></td>
            <td style='text-align: left;vertical-align: top;'>Sets button to Sandbox environment
            <br><br>You do not have to set this parameter if your <code>publicKeyId</code> has an environment prefix (for example: SANDBOX-AFVX7ULWSGBZ5535PCUQOY7B)
            <br><br>Default value: false
                <br /></td>
        </tr>
    </tbody>
</table>