Java SCMP Client SDK Upgrade {#so-conversion-java-sdk}
======================================================

Follow these steps to upgrade the endpoint configuration in your Java SCMP Client SDK.

> Only the Java SCMP Client SDK version 5.4.0 is valid for this upgrade.

1. Open your *ICSClient.props* file using a text editor application. This file is located in the *properties* folder in your Java SDK.

2. Change the `serverURL` property value to one of these valid HTTPS endpoints that corresponds to your environment:

   Test Endpoint
   :

       ```
       serverURL=https://ics2test.ic3.com:443/
       ```

   Production Endpoint
   :

       ```
       serverURL=https://ics2.ic3.com:443/
       ```

3. Add the useJdkUrlConnection property and set its value to `true`.

   ```
   useJdkUrlConnection=true
   ```
4. (Optional) Run the authorization sample in the *ICSAuthTest.java* file to test and confirm that your HTTPS connection is successful. The file is in the *samples* folder.  
   In the sample authorization, set the field value in the customer_cc_expyr field to a future four digit year.

Troubleshooting Using Certificates
----------------------------------

If you receive an error message when sending an API request to the HTTPS endpoints, you may need to add certificates to your payment system. Follow these steps to add the Certificate Authority (CA) root certificate and intermediate certificate to your system.

1. Download the certificates from the attachments section in this support article:  
   <https://support.visaacceptance.com/knowledgebase/knowledgearticle/?code=KA-05544>

2. Import the *DigiCertGlobalRootG2.crt* and *DigiCertEVRSACAG2.crt* certificates to your Java truststore.  
   These are examples of possible import commands using the keytool. The import commands you use are dependent on how your library is organized.

   **DigiCertGlobalRootG2.crt**
   :

       ```
       keytool -import -trustcacerts -alias DigiCertGlobalRootG2 -file {file_path_to_DigiCertGlobalRootG2.crt} -keystore {keystore_name} -storepass {your_password}
       ```

   **DigiCertEVRSACAG2.crt**
   :

       ```
       keytool -import -trustcacerts -alias DigiCertEVRSACAG2 -file {file_path_to_DigiCertEVRSACAG2.crt} -keystore {keystore_name} -storepass {your_password}
       ```

3. If you need to enable your system to trust the certificates, add these two properties and values to your *ICSClient.props* file to override the default Java truststore.

   ```
   ssl.trustStore={path_to_your_truststore}/keys/truststore.jks
   ssl.trustStorePassword={your_password}
   ```

