This guide provides information on using Shopify test certificates to test a credit card payments apps extension.

> Note:
> You should only use this test certificate for non-production credit card payments apps extensions.

## Requirements

- You've [created a credit card payments app extension](/docs/apps/build/payments/credit-card/use-the-cli).
- You're a [Partner organization owner](https://help.shopify.com/partners/dashboard/account-access).


## Using the test certificate

To use Shopify's test certificate, set the value of the `encryption_certificate_fingerprint` field to `Test Certificate` in your [credit card payment extension](/docs/apps/build/payments/credit-card/use-the-cli?framework=remix#create-a-payments-extension) then, [deploy and release the extension](/docs/apps/build/payments/credit-card/use-the-cli?framework=remix#deploy-and-release-your-extension).

```
encryption_certificate_fingerprint = "Test Certificate"
```
With the test certificate configured, Shopify will always send the same static [test payload data](/docs/apps/build/payments/credit-card/test-certificate#test-payload) in the `payment_method` hash for every payment session request.

## Test private key
The private key which is used to decrypt the encrypted payload.

```
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIPdk1Yrjq9UNZBPRFfY2/JFiNXVWbKNwkhqADTm46XUyoAoGCCqGSM49
AwEHoUQDQgAEPwwyTcNvVwInu9COj3WZooI+Aj1/KRolD6u7XmjpuBXlHq2nopJh
qkKwdrnUzWjkiJuY1qrUucT2mH+VkUGBSA==
-----END EC PRIVATE KEY-----
```

## Test certificate
The test certificate which is used to encrypt the test payload.
```
-----BEGIN CERTIFICATE-----
MIIBvTCCAWMCCQCvVT/6sodnSjAJBgcqhkjOPQQBMGcxCzAJBgNVBAYTAkNBMQsw
CQYDVQQIDAJPTjEPMA0GA1UEBwwGT3R0YXdhMRAwDgYDVQQKDAdTaG9waWZ5MSgw
JgYDVQQDDB9TaG9waWZ5UGF5bWVudHNQYXJ0bmVyc1BsYXRmb3JtMB4XDTIzMDYw
OTE1NTgxM1oXDTI0MDYwODE1NTgxM1owZzELMAkGA1UEBhMCQ0ExCzAJBgNVBAgM
Ak9OMQ8wDQYDVQQHDAZPdHRhd2ExEDAOBgNVBAoMB1Nob3BpZnkxKDAmBgNVBAMM
H1Nob3BpZnlQYXltZW50c1BhcnRuZXJzUGxhdGZvcm0wWTATBgcqhkjOPQIBBggq
hkjOPQMBBwNCAAQ/DDJNw29XAie70I6PdZmigj4CPX8pGiUPq7teaOm4FeUeraei
kmGqQrB2udTNaOSIm5jWqtS5xPaYf5WRQYFIMAkGByqGSM49BAEDSQAwRgIhAPIA
kL2hr+QMnhvKSFJjsQPyUj8FEogfjBECPjlXbAtoAiEA9D6Ub/wCCfsbjcz89k4W
Xill1yq6fp9cHlnIpGQfVpw=
-----END CERTIFICATE-----
```

## Test payload
This section details the payloads you'll receive, which depends on the API version of your payments app extension.

<p>
<div class="react-stacked-code-block ThemeMode-dim" data-preset="stacked">
<script data-option="title" data-value="Encrypted message contents"></script>



<p>
<div class="react-code-block" data-preset="basic">
<div class="react-code-block-preload ThemeMode-dim">
<div class="react-code-block-preload-bar basic-codeblock"></div>
<div class="react-code-block-preload-placeholder-container">
<div class="react-code-block-preload-code-container">
<div class="react-code-block-preload-codeline-number"></div>
<div class="react-code-block-preload-codeline"></div>
</div>
<div class="react-code-block-preload-code-container">
<div class="react-code-block-preload-codeline-number"></div>
<div class="react-code-block-preload-codeline"></div>
</div>
<div class="react-code-block-preload-code-container">
<div class="react-code-block-preload-codeline-number"></div>
<div class="react-code-block-preload-codeline"></div>
</div>
<div class="react-code-block-preload-code-container">
<div class="react-code-block-preload-codeline-number"></div>
<div class="react-code-block-preload-codeline"></div>
</div>

</div>
</div>


<script type="text/plain" data-language="json" data-title="API version 2023-07 and later">
RAW_MD_CONTENTbEc3qjbeQ47YKi/LAtD3IewDANTZq/NVDgb+cSNgLyvDxF6SWdflnTJeGB+c6GXX9Vck/eZGcK6LQtJUYcWqzoxgfaS5BFbA5e56MS0X16ltQbD17Zj0toJBND7AqFDkHP6aCrNoUAuaHCg7vyER/19YMAtoc17Ab25LbGVJ4iusiabw358N98Yu
END_RAW_MD_CONTENT</script>
<script type="text/plain" data-language="json" data-title="API version 2023-04 and earlier">
RAW_MD_CONTENT0t8KAyNP88tKt8VeRYuDAcNB+qNSeSrsOAZQT6rKW4Lezv23sJMIp2fLK48ZBKesrcxjVsZzWVv3ZjTIUqjU9tvvoeh/eYsCGQb56ZyagbvPY92TZKUaBz6KLkMbGL/qvkfMaFY5zJg7WRs1+SAZvcAS/9WWzgzt7d0FaR5lRXE=
END_RAW_MD_CONTENT</script>

</div>
</p>



</div>
</p>


<p>
<div class="react-stacked-code-block ThemeMode-dim" data-preset="stacked">
<script data-option="title" data-value="Decrypted message contents"></script>



<p>
<div class="react-code-block" data-preset="basic">
<div class="react-code-block-preload ThemeMode-dim">
<div class="react-code-block-preload-bar basic-codeblock"></div>
<div class="react-code-block-preload-placeholder-container">
<div class="react-code-block-preload-code-container">
<div class="react-code-block-preload-codeline-number"></div>
<div class="react-code-block-preload-codeline"></div>
</div>
<div class="react-code-block-preload-code-container">
<div class="react-code-block-preload-codeline-number"></div>
<div class="react-code-block-preload-codeline"></div>
</div>
<div class="react-code-block-preload-code-container">
<div class="react-code-block-preload-codeline-number"></div>
<div class="react-code-block-preload-codeline"></div>
</div>
<div class="react-code-block-preload-code-container">
<div class="react-code-block-preload-codeline-number"></div>
<div class="react-code-block-preload-codeline"></div>
</div>
<div class="react-code-block-preload-code-container">
<div class="react-code-block-preload-codeline-number"></div>
<div class="react-code-block-preload-codeline"></div>
</div>
<div class="react-code-block-preload-code-container">
<div class="react-code-block-preload-codeline-number"></div>
<div class="react-code-block-preload-codeline"></div>
</div>
<div class="react-code-block-preload-code-container">
<div class="react-code-block-preload-codeline-number"></div>
<div class="react-code-block-preload-codeline"></div>
</div>
<div class="react-code-block-preload-code-container">
<div class="react-code-block-preload-codeline-number"></div>
<div class="react-code-block-preload-codeline"></div>
</div>
<div class="react-code-block-preload-code-container">
<div class="react-code-block-preload-codeline-number"></div>
<div class="react-code-block-preload-codeline"></div>
</div>
<div class="react-code-block-preload-code-container">
<div class="react-code-block-preload-codeline-number"></div>
<div class="react-code-block-preload-codeline"></div>
</div>
<div class="react-code-block-preload-code-container">
<div class="react-code-block-preload-codeline-number"></div>
<div class="react-code-block-preload-codeline"></div>
</div>
<div class="react-code-block-preload-code-container">
<div class="react-code-block-preload-codeline-number"></div>
<div class="react-code-block-preload-codeline"></div>
</div>
<div class="react-code-block-preload-code-container">
<div class="react-code-block-preload-codeline-number"></div>
<div class="react-code-block-preload-codeline"></div>
</div>
<div class="react-code-block-preload-code-container">
<div class="react-code-block-preload-codeline-number"></div>
<div class="react-code-block-preload-codeline"></div>
</div>
<div class="react-code-block-preload-code-container">
<div class="react-code-block-preload-codeline-number"></div>
<div class="react-code-block-preload-codeline"></div>
</div>
<div class="react-code-block-preload-code-container">
<div class="react-code-block-preload-codeline-number"></div>
<div class="react-code-block-preload-codeline"></div>
</div>
<div class="react-code-block-preload-code-container">
<div class="react-code-block-preload-codeline-number"></div>
<div class="react-code-block-preload-codeline"></div>
</div>
<div class="react-code-block-preload-code-container">
<div class="react-code-block-preload-codeline-number"></div>
<div class="react-code-block-preload-codeline"></div>
</div>
<div class="react-code-block-preload-code-container">
<div class="react-code-block-preload-codeline-number"></div>
<div class="react-code-block-preload-codeline"></div>
</div>
<div class="react-code-block-preload-code-container">
<div class="react-code-block-preload-codeline-number"></div>
<div class="react-code-block-preload-codeline"></div>
</div>

</div>
</div>


<script type="text/plain" data-language="json" data-title="API version 2023-07 and later">
RAW_MD_CONTENT{
    "type": "card",
    "data": {
        "full_name": "Percy Parker",
        "pan": "4242424242424242",
        "month": 12,
        "year": 2050,
        "verification_value": "123"
    }
}
END_RAW_MD_CONTENT</script>
<script type="text/plain" data-language="json" data-title="API version 2023-04 and earlier">
RAW_MD_CONTENT{
    "type": "card",
    "full_name": "Percy Parker",
    "pan": "0123456789012345",
    "month": 12,
    "year": 2050,
    "verification_value": "123"
}
END_RAW_MD_CONTENT</script>

</div>
</p>



</div>
</p>