Deprecating September 2026: HTTP Signature Messaging

Create a Shared Secret Key Pair {#restgs-security-key-pair-intro}
=================================================================

![](/content/dam/documentation/cybs/en-us/topics/platform/rest/getting-started/images/flow-keys-http-2-750x175.svg/jcr:content/renditions/original)  
You must create a shared secret key pair to use HTTP signature message security.  
All account users can create their own unique shared secret key pair. In addition, portfolio and merchant account users can also create a *meta key* of a shared secret key pair. Meta keys enable an organization administrator to assign a single shared secret key pair to some or all transacting merchants in their organization. The purpose of a meta key is to reduce the time needed to manage an organization's keys. For example, by assigning the same meta key to all of your transacting merchants, you need to update only one key when it expires instead of having to update each transacting merchant's key when it expires.

#### Figure: {#restgs-security-key-pair-intro_hierarchy}

Account Type Overview  
![](/content/dam/documentation/cybs/en-us/topics/platform/bam/partner/images/portfolio-one-merchant-account.svg/jcr:content/renditions/original)

Portfolio
:
A portfolio account represents the partner administrator user. This account type can create and manage merchant accounts in the test and production environments.

Merchant
:
A merchant account represents the merchant administrator user. This account type can create and manage multiple transacting merchant accounts in their organization.

Transacting Merchant
:
A transacting merchant represents the merchant user who is processing transactions. This account type is typically the account that sends API requests.
{#restgs-security-key-pair-intro_dl-hierarchy}

Step 2A: Creating a Shared Secret Key Pair {#restgs-security-key-pair-task}
===========================================================================

Follow these steps to create a shared secret key pair:

1. Log in to the `BA360`.{#restgs-security-key-pair-task_step-1-bofa}
   {#restgs-security-key-pair-task_step-1-bofa}
   2. On the left navigation panel, choose ![](/content/dam/documentation/cybs/en-us/common/images/ebc/ebc-icon-pymt-config.svg/jcr:content/renditions/original) Payment Configuration \&gt; Key Management.  
      ![](/content/dam/documentation/cybs/en-us/topics/platform/rest/getting-started/images/left-navigation.png/jcr:content/renditions/original) {#restgs-security-key-pair-task_step-2}
      {#restgs-security-key-pair-task_step-2}
   3. Click + Generate key on the Key Management page.  
      ![](/content/dam/documentation/cybs/en-us/topics/payments-processing/payment-services/sec-keys/images/generate-key.png/jcr:content/renditions/original) {#restgs-security-key-pair-task_step-3}
      {#restgs-security-key-pair-task_step-3}
   4. Under REST APIs, choose **REST -- Shared Secret** and then click **Generate key**.  
      ![](/content/dam/documentation/cybs/en-us/topics/payments-processing/payment-services/sec-keys/images/security-keys-create-key.png/jcr:content/renditions/original)  
      ![](/content/dam/documentation/cybs/en-us/topics/platform/rest/getting-started/images/generate-key-bttn.png/jcr:content/renditions/original)  
      The REST API Shared Secret Key page appears. {#restgs-security-key-pair-task_step-4-key-pair}
      {#restgs-security-key-pair-task_step-4-key-pair}
   5. Click **Download key** ![](/content/dam/documentation/cybs/en-us/common/images/ebc/ebc-bttn-download.svg/jcr:content/renditions/original) .  
      The *.pem* file downloads to your desktop.  
      ![](/content/dam/documentation/cybs/en-us/topics/platform/rest/getting-started/images/shared-secret-key-download.png/jcr:content/renditions/original)  
      The **Key** value is your *key ID* and the **Shared Secret** value is your *shared secret key*.

   > IMPORTANT
   > Securely store the key credentials and *.pem* file in your system. These credentials are required in order to implement certain products, and you must be able to access them.
   > {#restgs-security-key-pair-task_step-5-key-pair}
   > {#restgs-security-key-pair-task_step-5-key-pair}

{#restgs-security-key-pair-task_steps}  
To create or submit another key, click **Generate another key**. To view all of your created keys, go to the Key Management page.

**What to do next**
:
To test your shared secret key pair, see [Step 2B: Test Your Shared Secret Key Pair](/docs/bofa/en-us/platform/developer/all/rest/rest-getting-started/restgs-http-message-intro/restgs-security-key-pair-intro/restgs-security-key-pair-test-task.md "").

Step 2B: Test Your Shared Secret Key Pair {#restgs-security-key-pair-test-task}
===============================================================================

After creating your key certificate, you must verify that your key can successfully process API requests. Follow these steps to validate your key certificate in the Developer Center and the `BA360`.

1. Go to the Developer Center's API Reference page:  
   [https://developer.merchant.services.bankofamerica.com/api-reference-assets/index.html#static-home-section](https://developer.merchant.services.bankofamerica.com/api-reference-assets/index.md#static-home-section "")
2. On the left navigation panel, click .
3. Under Authentication and Sandbox Credentials, go to the Authentication Type drop-down menu and choose **HTTP Signature**.
4. Enter your organization ID in the **Organization ID** field.
5. Enter your key, also known as your private key, in the **Key** field.
6. Enter your secret key, also known as your public key, in the **Shared Secret Key** field.
7. Click **Update Credentials**.  
   ![](/content/dam/documentation/cybs/en-us/topics/platform/rest/getting-started/images/restgs-dev-center-http.png/jcr:content/renditions/original)
8. Go to the Developer Center's API Reference and navigate to **Payments \&gt; `POST` Process a Payment**.
9. Click **Send**.  
   ![](/content/dam/documentation/cybs/en-us/topics/platform/rest/getting-started/images/restgs-dev-center-ex.png/jcr:content/renditions/original)  
   A message confirms that your request was successful with the status code 201.  
   ![](/content/dam/documentation/cybs/en-us/topics/platform/rest/getting-started/images/rstgs-success-201.png/jcr:content/renditions/original)
10. Log in to the `BA360`.
11. On the left navigation panel, choose ![](/content/dam/documentation/cybs/en-us/common/images/ebc/ebc-icon-trxn-mgmt.svg/jcr:content/renditions/original) **Transaction Management \&gt; Transactions**.
12. Under Search Results, verify that the request ID from the test authorization response is listed in the Request ID column.  
    If the test authorization was successful, a success message is present in the corresponding Applications column.  
    ![](/content/dam/documentation/cybs/en-us/topics/platform/rest/getting-started/images/restgs-verify-key-pair.png/jcr:content/renditions/original)

