---
title: Amazon Sign-in
url: amazon-pay-checkout/amazon-sign-in.html
---

Implement Amazon Sign-in if you need buyer details before the buyer starts Amazon Pay checkout. Once checkout has started, you can use <a href="../amazon-pay-api-v2/checkout-session.md#get-checkout-session" target="_blank" rel="noopener noreferrer">Get Checkout Session</a> and  <a href="../amazon-pay-api-v2/charge-permission.md#get-charge-permission" target="_blank" rel="noopener noreferrer">Get Charge Permission</a> to retrieve buyer information. 

The steps for implementing Amazon Sign-in are very similar to the steps for rendering the Amazon Pay Checkout button. You will need to add the Amazon Pay script, configure sign-in settings, render the sign-in button, and then retrieve buyer details using the <a href="../amazon-pay-api-v2/buyer.md#get-buyer" target="_blank" rel="noopener noreferrer">Get Buyer</a> API. At the end of this page, you will be able to render an Amazon Sign-in button and retrieve buyer details after the buyer signs in.

You must add the domains where the Amazon Pay button will be rendered to Seller Central. See <a href='../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.

<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 Sign-in payload

To render the Amazon Sign-in 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.

Set the `signInReturnUrl` parameter to the URL that the buyer should be redirected to after they sign in. The URL will have a token that you can use to retrieve buyer details appended as a query parameter.

#### Payload example

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

<table width="100%" border="1">
    <tbody>
        <tr id='eVX9CAOOwAm'>
            <td id='s:eVX9CAOOwAm;eVX9CAgCtkV' style='vertical-align: top; font-weight: bold;' class='bold'>Parameter
                <br /></td>
            <td id='s:eVX9CAOOwAm;eVX9CAZWNK6' style='vertical-align: top; font-weight: bold;' class='bold'>Description
                <br /></td>
        </tr>
        <tr id=''>
            <td id='' style='vertical-align: top;'>signInReturnUrl<br><b>(required)</b><br /><br />Type: string
                <br /></td>
            <td id='' style='vertical-align: top;'>Amazon Pay will redirect to this URL after the buyer signs in<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 Sandbox environment, you don't need a 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>
                <br /></td>
        </tr>
        <tr id=''>
            <td id='' style='vertical-align: top;'>storeId<br><b>(required)</b><br><br>Type: string
                <br /></td>
            <td id='' 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 id=''>
            <td id='' style='vertical-align: top;'>signInScopes<br /><br />Type: list<<a href="#type-signinscope">signInScope</a>>
                <br /></td>
            <td id='' style='vertical-align: top;'>The buyer details that you're 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>
        <tr id=''>
            <td id='' style='vertical-align: top;'>signInCancelUrl<br /><br />Type: string
                <br /></td>
            <td id='' 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 Pay 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.

**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,
        'algorithm' => 'AMZN-PAY-RSASSA-PSS-V2'
    );

    $client = new Amazon\Pay\API\Client($amazonpay_config);
    $payload = '{"signInReturnUrl":"https://a.com/merchant-page","storeId":"amzn1.application-oa2-client.8b5e45312b5248b69eeaStoreId","signInScopes":["name", "email", "postalCode", "shippingAddress", "phoneNumber"]}';
    $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">
```
SignInScope[] scopes = { 
    SignInScope.Name, 
    SignInScope.Email, 
    SignInScope.PostalCode,
    SignInScope.ShippingAddress,
    SignInScope.PhoneNumber
};

var request = new SignInRequest
(
    signInReturnUrl: "https://example.com/account.html",
    storeId: "amzn1.application-oa2-client.000000000000000000000000000000000",
    signInScopes: scopes
);

string signature = client.GenerateButtonSignature(request);
```
<a href="https://github.com/amzn/amazon-pay-api-sdk-dotnet/blob/4bcc4b41c51eaedf40ca55e7b5a18f1d8d213577/Amazon.Pay.API.SDK/SignatureHelper.cs#L133" 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)
                .setAlgorithm("AMZN-PAY-RSASSA-PSS-V2");
}catch (AmazonPayClientException e) {
    e.printStackTrace();
}

AmazonPayClient client = new AmazonPayClient(payConfiguration);

String payload = "{\"signInReturnUrl\":\"https://a.com/merchant-page\",\"storeId\":\"amzn1.application-oa2-client.xxxxx\",\"signInScopes\":[\"name\",\"email\",\"postalCode\",\"shippingAddress\",\"phoneNumber\"]}";
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,
    algorithm: 'AMZN-PAY-RSASSA-PSS-V2'
};

const testPayClient = new Client.AmazonPayClient(config);
const payload = {
    "signInReturlUrl": "https://a.com/merchant-page",
    "storeId": "amzn1.application-oa2-client.8b5e45312b5248b69eeaStoreId",
    "signInScopes": ["name", "email", "postalCode", "shippingAddress", "phoneNumber"] 
};
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.

#### Code sample

<div style="display:none" class="environmentSpecificKeys">
<ul id="profileTabs" class="nav nav-tabs">
  <li class="nav-item"><a class="active nav-link noExtIcon" href="#usButtonTab" data-toggle="tab">US</a></li>
  <li class="nav-item"><a class="nav-link noExtIcon" href="#euButtonTab" data-toggle="tab">EU</a></li>
  <li class="nav-item"><a class="nav-link noExtIcon" href="#ukButtonTab" data-toggle="tab">UK</a></li>
  <li class="nav-item"><a class="nav-link noExtIcon" href="#jpButtonTab" data-toggle="tab">JP</a></li>
</ul>
<div class="tab-content">
  <div role="tabpanel" class="tab-pane active" id="usButtonTab">   
<div markdown="block">
```html
<body>
    <div id="AmazonPayButton"></div>
    <script src="https://static-na.payments-amazon.com/checkout.js"></script>
    <script type="text/javascript" charset="utf-8">
        amazon.Pay.renderButton('#AmazonPayButton', {
            // set checkout environment
            merchantId: 'merchant_id',
            publicKeyId: 'SANDBOX-xxxxxxxxxx',
            ledgerCurrency: 'USD',           
            // customize the buyer experience
            checkoutLanguage: 'en_US',
            productType: 'SignIn',
            placement: 'Cart',
            buttonColor: 'Gold',
            // configure sign in
            signInConfig: {                     
                payloadJSON: 'payload', // string generated in step 2
                signature: 'xxxx', // signature generatd in step 3
                algorithm : 'AMZN-PAY-RSASSA-PSS-V2'
            }  
        });
    </script>
</body>
```
</div>
</div>
<div role="tabpanel" class="tab-pane" id="euButtonTab">
<div markdown="block">
```html
<body>
    <div id="AmazonPayButton"></div>
    <script src="https://static-eu.payments-amazon.com/checkout.js"></script>
    <script type="text/javascript" charset="utf-8">
        amazon.Pay.renderButton('#AmazonPayButton', {
            // set checkout environment
            merchantId: 'merchant_id',
            publicKeyId: 'SANDBOX-xxxxxxxxxx',
            ledgerCurrency: 'EUR',             
            // customize the buyer experience
            checkoutLanguage: 'en_GB',
            productType: 'SignIn',
            placement: 'Cart',
            buttonColor: 'Gold',
            // configure sign in
            signInConfig: {                     
                payloadJSON: 'payload', // string generated in step 2
                signature: 'xxxx', // signature generatd in step 3
                algorithm : 'AMZN-PAY-RSASSA-PSS-V2'
            }   
        });
    </script>
</body>
```
</div>
</div>
<div role="tabpanel" class="tab-pane" id="ukButtonTab">
<div markdown="block">
```html
<body>
    <div id="AmazonPayButton"></div>
    <script src="https://static-eu.payments-amazon.com/checkout.js"></script>
    <script type="text/javascript" charset="utf-8">
        amazon.Pay.renderButton('#AmazonPayButton', {
            // set checkout environment
            merchantId: 'merchant_id',
            publicKeyId: 'SANDBOX-xxxxxxxxxx',
            ledgerCurrency: 'GBP',             
            // customize the buyer experience
            checkoutLanguage: 'en_GB',
            productType: 'SignIn',
            placement: 'Cart',
            buttonColor: 'Gold',
            // configure sign in
            signInConfig: {                     
                payloadJSON: 'payload', // string generated in step 2
                signature: 'xxxx', // signature generatd in step 3
                algorithm : 'AMZN-PAY-RSASSA-PSS-V2'
            }  
        });
    </script>
</body>
```
</div>
</div>  
<div role="tabpanel" class="tab-pane" id="jpButtonTab">
<div markdown="block">
```html
<body>
    <div id="AmazonPayButton"></div>
    <script src="https://static-fe.payments-amazon.com/checkout.js"></script>
    <script type="text/javascript" charset="utf-8">
        amazon.Pay.renderButton('#AmazonPayButton', {
            // set checkout environment
            merchantId: 'merchant_id',
            publicKeyId: 'SANDBOX-xxxxxxxxxx',
            ledgerCurrency: 'JPY',             
            // customize the buyer experience
            checkoutLanguage: 'ja_JP',
            productType: 'SignIn',
            placement: 'Cart',
            buttonColor: 'Gold',
            // configure sign in
            signInConfig: {                     
                payloadJSON: 'payload', // string generated in step 2
                signature: 'xxxx', // signature generatd in step 3
                algorithm : 'AMZN-PAY-RSASSA-PSS-V2'
            } 
        });
    </script>
</body>
```
</div>
</div>
</div>
</div>

<div style="display:none" class="notEnvironmentSpecificKeys">
<ul id="profileTabs" class="nav nav-tabs">
  <li class="nav-item"><a class="active nav-link noExtIcon" href="#usButtonTabNESK" data-toggle="tab">US</a></li>
  <li class="nav-item"><a class="nav-link noExtIcon" href="#euButtonTabNESK" data-toggle="tab">EU</a></li>
  <li class="nav-item"><a class="nav-link noExtIcon" href="#ukButtonTabNESK" data-toggle="tab">UK</a></li>
  <li class="nav-item"><a class="nav-link noExtIcon" href="#jpButtonTabNESK" data-toggle="tab">JP</a></li>
</ul>
<div class="tab-content">
  <div role="tabpanel" class="tab-pane active" id="usButtonTabNESK">   
<div markdown="block">
```html
<body>
    <div id="AmazonPayButton"></div>
    <script src="https://static-na.payments-amazon.com/checkout.js"></script>
    <script type="text/javascript" charset="utf-8">
        amazon.Pay.renderButton('#AmazonPayButton', {
            // set checkout environment
            merchantId: 'merchant_id',
            ledgerCurrency: 'USD',
            sandbox: true,               
            // customize the buyer experience
            checkoutLanguage: 'en_US',
            productType: 'SignIn',
            placement: 'Cart',
            buttonColor: 'Gold',
            // configure sign in
            signInConfig: {                     
                payloadJSON: 'payload', // string generated in step 2
                signature: 'xxxx', // signature generatd in step 3
                algorithm : 'AMZN-PAY-RSASSA-PSS-V2',
                publicKeyId: 'xxxxxxxxxx' 
            }  
        });
    </script>
</body>
```
</div>
</div>
<div role="tabpanel" class="tab-pane" id="euButtonTabNESK">
<div markdown="block">
```html
<body>
    <div id="AmazonPayButton"></div>
    <script src="https://static-eu.payments-amazon.com/checkout.js"></script>
    <script type="text/javascript" charset="utf-8">
        amazon.Pay.renderButton('#AmazonPayButton', {
            // set checkout environment
            merchantId: 'merchant_id',
            ledgerCurrency: 'EUR',
            sandbox: true,               
            // customize the buyer experience
            checkoutLanguage: 'en_GB',
            productType: 'SignIn',
            placement: 'Cart',
            buttonColor: 'Gold',
            // configure sign in
            signInConfig: {                     
                payloadJSON: 'payload', // string generated in step 2
                signature: 'xxxx', // signature generatd in step 3
                algorithm : 'AMZN-PAY-RSASSA-PSS-V2',
                publicKeyId: 'xxxxxxxxxx' 
            }   
        });
    </script>
</body>
```
</div>
</div>
<div role="tabpanel" class="tab-pane" id="ukButtonTabNESK">
<div markdown="block">
```html
<body>
    <div id="AmazonPayButton"></div>
    <script src="https://static-eu.payments-amazon.com/checkout.js"></script>
    <script type="text/javascript" charset="utf-8">
        amazon.Pay.renderButton('#AmazonPayButton', {
            // set checkout environment
            merchantId: 'merchant_id',
            ledgerCurrency: 'GBP',
            sandbox: true,               
            // customize the buyer experience
            checkoutLanguage: 'en_GB',
            productType: 'SignIn',
            placement: 'Cart',
            buttonColor: 'Gold',
            // configure sign in
            signInConfig: {                     
                payloadJSON: 'payload', // string generated in step 2
                signature: 'xxxx', // signature generatd in step 3
                algorithm : 'AMZN-PAY-RSASSA-PSS-V2',
                publicKeyId: 'xxxxxxxxxx' 
            }  
        });
    </script>
</body>
```
</div>
</div>  
<div role="tabpanel" class="tab-pane" id="jpButtonTabNESK">
<div markdown="block">
```html
<body>
    <div id="AmazonPayButton"></div>
    <script src="https://static-fe.payments-amazon.com/checkout.js"></script>
    <script type="text/javascript" charset="utf-8">
        amazon.Pay.renderButton('#AmazonPayButton', {
            // set checkout environment
            merchantId: 'merchant_id',
            ledgerCurrency: 'JPY',
            sandbox: true,               
            // customize the buyer experience
            checkoutLanguage: 'ja_JP',
            productType: 'SignIn',
            placement: 'Cart',
            buttonColor: 'Gold',
            // configure sign in
            signInConfig: {                     
                payloadJSON: 'payload', // string generated in step 2
                signature: 'xxxx', // signature generatd in step 3
                algorithm : 'AMZN-PAY-RSASSA-PSS-V2',
                publicKeyId: 'xxxxxxxxxx' 
            } 
        });
    </script>
</body>
```
</div>
</div>
</div>
</div>

#### Function parameters

<table width="100%" border="1">
    <tbody>
        <tr id='SPI9CAvz30I'>
            <td id='s:SPI9CAvz30I;SPI9CAwqfh9' style='vertical-align: top; font-weight: bold ; width: 35%' class='bold'>Parameter
                <br /></td>
            <td id='s:SPI9CAvz30I;SPI9CAy6rIp' style='vertical-align: top; font-weight: bold; width: 65%' class='bold'>Description
                <br /></td>
        </tr>
        <tr id='SPI9CAIyYS4'>
            <td id='s:SPI9CAIyYS4;SPI9CAwqfh9' style='vertical-align: top;'>merchantId<br>(<b>required</b>)<br><br>Type: string
                <br /></td>
            <td id='s:SPI9CAIyYS4;SPI9CAy6rIp' style='text-align: left;vertical-align: top;'>Amazon Pay merchant account identifier
                <br /></td>
        </tr>
        <tr id='' style="display:none;" class="environmentSpecificKeys">
            <td id='' style='vertical-align: top;'>publicKeyId<br>(<b>required</b>)<br><br>Type: string
                <br /></td>
            <td id='' style='text-align: left;vertical-align: top;'>Credential provided by Amazon Pay. See <a href="../amazon-pay-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 id='SPI9CAw52Yq'>
            <td id='s:SPI9CAw52Yq;SPI9CAwqfh9' style='vertical-align: top;'>signInConfig<br>(<b>required</b>)<br><br>Type: <a href="../amazon-pay-checkout/amazon-pay-script.md#type-signInConfig">signInConfig</a>
                <br /></td>
            <td id='s:SPI9CAw52Yq;SPI9CAy6rIp' style='text-align: left;vertical-align: top;'>Amazon Sign-in configuration. This is a required field if you use SignIn <code>productType</code></td>
        </tr>
        <tr id='SPI9CAf8yEh'>
            <td id='s:SPI9CAf8yEh;SPI9CAwqfh9' style='text-align: left;vertical-align: top;'>placement<br>(<b>required</b>)<br><br>Type: string
                <br /></td>
            <td id='s:SPI9CAf8yEh;SPI9CAy6rIp' style='text-align: left;vertical-align: top;'>Placement of the Amazon Pay 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>'Other' - Any page that doesn't fit the previous descriptions</li>
            </ul>
          </td>
        </tr>
        <tr id='IXV9CAD2lCG'>
            <td id='s:IXV9CAD2lCG;IXV9CAYD3dl' style='text-align: left;vertical-align: top;'>ledgerCurrency<br>(<b>required</b>)<br><br>Type: string
                <br /></td>
            <td id='s:IXV9CAD2lCG;IXV9CAsibgY' 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 id='SPI9CAcT2N8'>
            <td id='s:SPI9CAcT2N8;SPI9CAwqfh9' style='vertical-align: top;'>productType<br><br>Type: string
                <br /></td>
            <td id='s:SPI9CAcT2N8;SPI9CAy6rIp' style='text-align: left;vertical-align: top;'>Product type selected for checkout<br><br>Supported values:<br>
                    <ul>
                      <li>'PayAndShip' - Offer checkout using buyer's Amazon wallet and  address book. Select this product type if you need the buyer's shipping details</li>
                      <li>'PayOnly' - Offer checkout using only the buyer's Amazon wallet. Select this product type if you do not need the buyer's shipping details</li>
                      <li>'SignIn' - Offer Amazon Sign-in. Select this product type if you need buyer details before the buyer starts Amazon Pay checkout</li>
                    </ul>
              Default value: 'PayAndShip'
                <br /></td>
        </tr>
        <tr id=''>
            <td id='' style='vertical-align: top;'>buttonColor<br><br>Type: string
                <br /></td>
            <td id='' style='text-align: left;vertical-align: top;'>Color of the Amazon Pay button<br><br>Supported values: 'Gold', 'LightGray', 'DarkGray'<br>
              Default value: 'Gold'
                <br /></td>
        </tr>
        <tr id='SPI9CAUKjWp'>
            <td id='s:SPI9CAUKjWp;SPI9CAwqfh9' style='vertical-align: top;'>checkoutLanguage<br><br>Type: string
                <br /></td>
            <td id='s:SPI9CAUKjWp;SPI9CAy6rIp' 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 id='SPI9CAvGRow'>
            <td id='s:SPI9CAvGRow;SPI9CAwqfh9' style='vertical-align: top;'>sandbox<br><br>Type: boolean
                <br /></td>
            <td id='' 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>


### 5. Retrieve Buyer details

<a href="../amazon-pay-api-v2/buyer.md#get-buyer" target="_blank" rel="noopener noreferrer">Get Buyer</a> to retrieve buyer details. Get Buyer will only return `buyerId` by default. You must explicitly request access to additional buyer details using the button <a href="#type-signinscope" target="_blank" rel="noopener noreferrer">`signInScopes`</a> parameter.

Amazon Pay will only provide the token required to retrieve buyer details after the buyer signs in. It will be appended to the `signInReturnUrl` as a query parameter and expires after 24 hours.

#### Request


<div style="display:none" class="environmentSpecificKeys">
<code style="color:black">
curl "https://pay-api.amazon.com/:version/buyers/:buyerToken" \<br />
-X GET<br />
-H "authorization:Px2e5oHhQZ88vVhc0DO%2FsShHj8MDDg%3DEXAMPLESIGNATURE"<br />
-H "x-amz-pay-date:20201012T235046Z"<br />
</code>
</div>
<div style="display:none" class="notEnvironmentSpecificKeys">
<code style="color:black">
curl "https://pay-api.amazon.com/:environment/:version/buyers/:buyerToken" \<br />
-X GET<br />
-H "authorization:Px2e5oHhQZ88vVhc0DO%2FsShHj8MDDg%3DEXAMPLESIGNATURE"<br />
-H "x-amz-pay-date:20201012T235046Z"<br />
</code>
</div>

#### Request parameters

<table width="100%" border="1">
    <tbody>
        <tr id=''>
            <td id='' style='vertical-align: top; font-weight: bold; width: 30%;' class='bold'>Name
                <br /></td>
            <td id='' style='vertical-align: top; font-weight: bold; width: 20%;' class='bold'>Location
                <br /></td>
            <td id='' style='vertical-align: top; font-weight: bold; width: 50%;' class='bold'>Description
                <br /></td>
        </tr>
        <tr id=''>
            <td id='' style='vertical-align: top;'>buyerToken<br><b>(required)</b><br><br>Type: string
                <br /></td>
            <td id='' style='vertical-align: top;'>Path Parameter
                <br /></td>
            <td id='' style='vertical-align: top;'>Token used to retrieve buyer details. This value is appended as a query parameter to <code>signInReturnUrl</code><br><br>Max length: 1000 characters/bytes
                <br /></td>
        </tr>
    </tbody>
</table>

#### Sample Code

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

    $amazonpay_config = array(
        'public_key_id' => 'YOUR_PUBLIC_KEY_ID',
        'private_key'   => 'keys/private.pem', // Path to RSA Private Key (or a string representation)
        'region'        => 'YOUR_REGION_CODE', 
        'algorithm'     => 'AMZN-PAY-RSASSA-PSS-V2'
    );
            
    try {
        $buyerToken = 'eyL7YthG12BvRUYiLCJlbmMiOiJBMjU2R0NNIiwidGFnIjoiNXQ3NmhOTVhKN0tidkpSbHR0WmggBn12JmnY6yI6IkExMjhHQ01LVyIsIml2IjoidXFUeWl5NzUtMlU1RVk0RyJ9.iy6tY93sESc2fHVj49ynJO3e45ZiGkpDbmVYjgAimiM.K4nVJFzrHV-Pbotw.CumBT12hN5Bih_V0UI635PuIZ_IAD-HcH42hy5NuliOhFoAoFf4uNnVpjjDbPWnkYcdgtettavJlKGPG5wG2zaHJc2AFODXuuHklYGUbOwX1Z9JBXJExXfcLyvM_d5Zh4eaXkJWB3BUCfrP4afG9llHmwOHRvORu4vyGzG4JuBrZVeZ69EK0yqDMOYgbR44Bospf9XCDeV_NQfkmZWerjHaWe_ltYgCEcbUQu4-Snb76NbVT8Uf85KNocQfi4SYJn5tUKTjh2uR9XHeQhQY.f7UR3zVnUDe_WfqsvrPMNw';
        
        $client = new Amazon\Pay\API\Client($amazonpay_config);
        $result = $client->getBuyer($buyerToken);
            
        if ($result['status'] === 200) {
            $response = json_decode($result['response'], true);

        } else {
            // check the error
            echo 'status=' . $result['status'] . '; response=' . $result['response'];
        }
    } catch (Exception $e) {
        // handle the exception
        echo $e;
    }
?>
```

</div>
  </div>
  <div role="tabpanel" class="tab-pane" id="dotnettab-getBuyer">
<div markdown="block">
```
using Amazon.Pay.API;
using Amazon.Pay.API.Types;
using Amazon.Pay.API.WebStore;
using Amazon.Pay.API.WebStore.Types;
using Amazon.Pay.API.WebStore.Buyer;
using Microsoft.AspNetCore.Mvc.RazorPages;

public class Sample : PageModel
{
    public BuyerResponse Buyer { get; private set; }

    public WebStoreClient InitiateClient()
    {
        // set up config
        var payConfiguration = new ApiConfiguration
        (
            region: Region.YOUR_REGION_CODE,
            publicKeyId: "YOUR_PUBLIC_KEY_ID",
            privateKey: "PATH_OR_CONTENT_OF_YOUR_PRIVATE_KEY",
            algorithm: AmazonSignatureAlgorithm.V2
        );

        // init API client
        var client = new WebStoreClient(payConfiguration);
        return client;
    }

    public void OnGet()
    {
        // the token as retrieved from the URL
        string buyerToken = HttpContext.Request.Query["buyerToken"];

        // get the buyer details
        // NOTE: the BuyerResponse that is returned here contains properties for buyerId, name, email, shippingAddress, phoneNumber etc.
        Buyer = client.GetBuyer(buyerToken);

        if (!result.Success)
        {
            // handle the API error (use Status field to get the numeric error code)
        } else {
            // do something with the result, for instance:
            Address buyerAddress = result.ShippingAddress;
            string buyerEmail = result.Email;
        }
    }
}
```

</div>
  </div>
  <div role="tabpanel" class="tab-pane" id="javatab-getBuyer">
<div markdown="block">
```
import com.amazon.pay.api.AmazonPayResponse;
import com.amazon.pay.api.PayConfiguration;
import com.amazon.pay.api.WebstoreClient;
import com.amazon.pay.api.exceptions.AmazonPayClientException;
import com.amazon.pay.api.types.Region;

public void sample() {
    PayConfiguration payConfiguration = null;
    try {

        String buyerToken = "eyL7YthG12BvRUYiLCJlbmMiOiJBMjU2R0NNIiwidGFnIjoiNXQ3NmhOTVhKN0tidkpSbHR0WmggBn12JmnY6yI6IkExMjhHQ01LVyIsIml2IjoidXFUeWl5NzUtMlU1RVk0RyJ9.iy6tY93sESc2fHVj49ynJO3e45ZiGkpDbmVYjgAimiM.K4nVJFzrHV-Pbotw.CumBT12hN5Bih_V0UI635PuIZ_IAD-HcH42hy5NuliOhFoAoFf4uNnVpjjDbPWnkYcdgtettavJlKGPG5wG2zaHJc2AFODXuuHklYGUbOwX1Z9JBXJExXfcLyvM_d5Zh4eaXkJWB3BUCfrP4afG9llHmwOHRvORu4vyGzG4JuBrZVeZ69EK0yqDMOYgbR44Bospf9XCDeV_NQfkmZWerjHaWe_ltYgCEcbUQu4-Snb76NbVT8Uf85KNocQfi4SYJn5tUKTjh2uR9XHeQhQY.f7UR3zVnUDe_WfqsvrPMNw";

        payConfiguration = new PayConfiguration()
            .setPublicKeyId("YOUR_PUBLIC_KEY_ID")
            .setRegion(Region.YOUR_REGION_CODE)
            .setPrivateKey("YOUR_PRIVATE_KEY".toCharArray())
            .setAlgorithm("AMZN-PAY-RSASSA-PSS-V2");

        WebstoreClient webstoreClient = new WebstoreClient(payConfiguration);
        
        AmazonPayResponse response = webstoreClient.getBuyer(buyerToken);
    } catch (AmazonPayClientException e) {
        e.printStackTrace();
    }
}

```

</div>
  </div>
  <div role="tabpanel" class="tab-pane" id="nodejstab-getBuyer">
<div markdown="block">
```html
const fs = require('fs');
const Client = require('@amazonpay/amazon-pay-api-sdk-nodejs');

const config = {
    publicKeyId: 'YOUR_PUBLIC_KEY_ID',
    privateKey: fs.readFileSync('tst/private.pem'),
    region: 'YOUR_REGION_CODE',
    algorithm: 'AMZN-PAY-RSASSA-PSS-V2' 
};

const buyerToken = "eyL7YthG12BvRUYiLCJlbmMiOiJBMjU2R0NNIiwidGFnIjoiNXQ3NmhOTVhKN0tidkpSbHR0WmggBn12JmnY6yI6IkExMjhHQ01LVyIsIml2IjoidXFUeWl5NzUtMlU1RVk0RyJ9.iy6tY93sESc2fHVj49ynJO3e45ZiGkpDbmVYjgAimiM.K4nVJFzrHV-Pbotw.CumBT12hN5Bih_V0UI635PuIZ_IAD-HcH42hy5NuliOhFoAoFf4uNnVpjjDbPWnkYcdgtettavJlKGPG5wG2zaHJc2AFODXuuHklYGUbOwX1Z9JBXJExXfcLyvM_d5Zh4eaXkJWB3BUCfrP4afG9llHmwOHRvORu4vyGzG4JuBrZVeZ69EK0yqDMOYgbR44Bospf9XCDeV_NQfkmZWerjHaWe_ltYgCEcbUQu4-Snb76NbVT8Uf85KNocQfi4SYJn5tUKTjh2uR9XHeQhQY.f7UR3zVnUDe_WfqsvrPMNw";
             
const testPayClient = new Client.WebStoreClient(config);
const response = testPayClient.getBuyer(buyerToken);

response.then(function (result) {
    console.log(result.data);
}).catch(err => {
    console.log(err);
});
```

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

    $amazonpay_config = array(
        'public_key_id' => 'YOUR_PUBLIC_KEY_ID',
        'private_key'   => 'keys/private.pem', // Path to RSA Private Key (or a string representation)
        'region'        => 'YOUR_REGION_CODE', 
        'sandbox'       => true,
        'algorithm'     => 'AMZN-PAY-RSASSA-PSS-V2'
    );
            
    try {
        $buyerToken = 'eyL7YthG12BvRUYiLCJlbmMiOiJBMjU2R0NNIiwidGFnIjoiNXQ3NmhOTVhKN0tidkpSbHR0WmggBn12JmnY6yI6IkExMjhHQ01LVyIsIml2IjoidXFUeWl5NzUtMlU1RVk0RyJ9.iy6tY93sESc2fHVj49ynJO3e45ZiGkpDbmVYjgAimiM.K4nVJFzrHV-Pbotw.CumBT12hN5Bih_V0UI635PuIZ_IAD-HcH42hy5NuliOhFoAoFf4uNnVpjjDbPWnkYcdgtettavJlKGPG5wG2zaHJc2AFODXuuHklYGUbOwX1Z9JBXJExXfcLyvM_d5Zh4eaXkJWB3BUCfrP4afG9llHmwOHRvORu4vyGzG4JuBrZVeZ69EK0yqDMOYgbR44Bospf9XCDeV_NQfkmZWerjHaWe_ltYgCEcbUQu4-Snb76NbVT8Uf85KNocQfi4SYJn5tUKTjh2uR9XHeQhQY.f7UR3zVnUDe_WfqsvrPMNw';
        
        $client = new Amazon\Pay\API\Client($amazonpay_config);
        $result = $client->getBuyer($buyerToken);
            
        if ($result['status'] === 200) {
            $response = json_decode($result['response'], true);

        } else {
            // check the error
            echo 'status=' . $result['status'] . '; response=' . $result['response'];
        }
    } catch (Exception $e) {
        // handle the exception
        echo $e;
    }
?>
```

</div>
  </div>
  <div role="tabpanel" class="tab-pane" id="dotnettab-getBuyer-NESK">
<div markdown="block">
```
using Amazon.Pay.API;
using Amazon.Pay.API.Types;
using Amazon.Pay.API.WebStore;
using Amazon.Pay.API.WebStore.Types;
using Amazon.Pay.API.WebStore.Buyer;
using Microsoft.AspNetCore.Mvc.RazorPages;

public class Sample : PageModel
{
    public BuyerResponse Buyer { get; private set; }

    public WebStoreClient InitiateClient()
    {
        // set up config
        var payConfiguration = new ApiConfiguration
        (
            region: Region.YOUR_REGION_CODE,
            environment: Environment.Sandbox,
            publicKeyId: "YOUR_PUBLIC_KEY_ID",
            privateKey: "PATH_OR_CONTENT_OF_YOUR_PRIVATE_KEY",
            algorithm: AmazonSignatureAlgorithm.V2
        );

        // init API client
        var client = new WebStoreClient(payConfiguration);
        return client;
    }

    public void OnGet()
    {
        // the token as retrieved from the URL
        string buyerToken = HttpContext.Request.Query["buyerToken"];

        // get the buyer details
        // NOTE: the BuyerResponse that is returned here contains properties for buyerId, name, email, shippingAddress, phoneNumber etc.
        Buyer = client.GetBuyer(buyerToken);

        if (!result.Success)
        {
            // handle the API error (use Status field to get the numeric error code)
        } else {
            // do something with the result, for instance:
            Address buyerAddress = result.ShippingAddress;
            string buyerEmail = result.Email;
        }
    }
}
```

</div>
  </div>
  <div role="tabpanel" class="tab-pane" id="javatab-getBuyer-NESK">
<div markdown="block">
```
import com.amazon.pay.api.AmazonPayResponse;
import com.amazon.pay.api.PayConfiguration;
import com.amazon.pay.api.WebstoreClient;
import com.amazon.pay.api.exceptions.AmazonPayClientException;
import com.amazon.pay.api.types.Environment;
import com.amazon.pay.api.types.Region;

public void sample() {
    PayConfiguration payConfiguration = null;
    try {

        String buyerToken = "eyL7YthG12BvRUYiLCJlbmMiOiJBMjU2R0NNIiwidGFnIjoiNXQ3NmhOTVhKN0tidkpSbHR0WmggBn12JmnY6yI6IkExMjhHQ01LVyIsIml2IjoidXFUeWl5NzUtMlU1RVk0RyJ9.iy6tY93sESc2fHVj49ynJO3e45ZiGkpDbmVYjgAimiM.K4nVJFzrHV-Pbotw.CumBT12hN5Bih_V0UI635PuIZ_IAD-HcH42hy5NuliOhFoAoFf4uNnVpjjDbPWnkYcdgtettavJlKGPG5wG2zaHJc2AFODXuuHklYGUbOwX1Z9JBXJExXfcLyvM_d5Zh4eaXkJWB3BUCfrP4afG9llHmwOHRvORu4vyGzG4JuBrZVeZ69EK0yqDMOYgbR44Bospf9XCDeV_NQfkmZWerjHaWe_ltYgCEcbUQu4-Snb76NbVT8Uf85KNocQfi4SYJn5tUKTjh2uR9XHeQhQY.f7UR3zVnUDe_WfqsvrPMNw";

        payConfiguration = new PayConfiguration()
            .setPublicKeyId("YOUR_PUBLIC_KEY_ID")
            .setRegion(Region.YOUR_REGION_CODE)
            .setPrivateKey("YOUR_PRIVATE_KEY".toCharArray())
            .setEnvironment(Environment.SANDBOX)
            .setAlgorithm("AMZN-PAY-RSASSA-PSS-V2");

        WebstoreClient webstoreClient = new WebstoreClient(payConfiguration);
        
        AmazonPayResponse response = webstoreClient.getBuyer(buyerToken);
    } catch (AmazonPayClientException e) {
        e.printStackTrace();
    }
}

```

</div>
  </div>
  <div role="tabpanel" class="tab-pane" id="nodejstab-getBuyer-NESK">
<div markdown="block">
```html
const fs = require('fs');
const Client = require('@amazonpay/amazon-pay-api-sdk-nodejs');

const config = {
    publicKeyId: 'YOUR_PUBLIC_KEY_ID',
    privateKey: fs.readFileSync('tst/private.pem'),
    region: 'YOUR_REGION_CODE',
    sandbox: true,
    algorithm: 'AMZN-PAY-RSASSA-PSS-V2' 
};

const buyerToken = "eyL7YthG12BvRUYiLCJlbmMiOiJBMjU2R0NNIiwidGFnIjoiNXQ3NmhOTVhKN0tidkpSbHR0WmggBn12JmnY6yI6IkExMjhHQ01LVyIsIml2IjoidXFUeWl5NzUtMlU1RVk0RyJ9.iy6tY93sESc2fHVj49ynJO3e45ZiGkpDbmVYjgAimiM.K4nVJFzrHV-Pbotw.CumBT12hN5Bih_V0UI635PuIZ_IAD-HcH42hy5NuliOhFoAoFf4uNnVpjjDbPWnkYcdgtettavJlKGPG5wG2zaHJc2AFODXuuHklYGUbOwX1Z9JBXJExXfcLyvM_d5Zh4eaXkJWB3BUCfrP4afG9llHmwOHRvORu4vyGzG4JuBrZVeZ69EK0yqDMOYgbR44Bospf9XCDeV_NQfkmZWerjHaWe_ltYgCEcbUQu4-Snb76NbVT8Uf85KNocQfi4SYJn5tUKTjh2uR9XHeQhQY.f7UR3zVnUDe_WfqsvrPMNw";
             
const testPayClient = new Client.WebStoreClient(config);
const response = testPayClient.getBuyer(buyerToken);

response.then(function (result) {
    console.log(result.data);
}).catch(err => {
    console.log(err);
});
```

</div>
  </div>
</div>
</div>

#### Response

```
{
	"name": "John Example",
	"email": "johnexample@amazon.com",
	"postalCode": "12345",
	"countryCode": "US",
	"buyerId": "DIRECTEDBUYERID",
	"phoneNumber": "1234567811" // default billing address phone number
	"shippingAddress": {
		"name": "John",
		"addressLine1": "15th Street",
		"addressLine2": "",
		"addressLine3": "",
		"city": "Seattle", 
		"county": "",
		"district": "",
		"stateOrRegion": "WA",
		"country": "USA",
		"postalCode": "98121",
		"phoneNumber": "1234567899"
	},
	"billingAddress": null,
	"primeMembershipTypes": null
}
```

