# Rest Reference Application Tutorial
source: https://developer.mastercard.com/iccp/documentation/ref_app_tutorials/rest-reference-app/index.md

This reference application allows you to execute a series of sample API calls to the ICCP-Real-Card-Account-Service API and execute all the use cases of the API. This guide will explain how to use the ICCP-Real-Card-Account-Service API in a Java environment. This section guides you through configuring, building, and running the client reference application.

## Reference Application Overview {#reference-application-overview}

This reference application is organized as a series of tests that execute a series of interactions with the ICCP-Real-Card-Account-Service as follows:
* Create Real Card
* Search Real Card
* Get Real Card
* Update Real Card
* Update Real Card Status
* Delete Real Card
* Get Account GUID by Legacy RCN ID
* Get Entity Details
* Get Entity Descendants
Note: If you are an existing ICCP SOAP API user, no additional onboarding is required. You can continue using your current project and API keys to access REST APIs.  
This ICCP REST APIs feature is not enabled by default for existing SOAP users. Please get in touch with your Mastercard representative to opt-in.

## Prerequisites {#prerequisites}

1. Install Java 11.
2. Install Gradle 7.6.
3. Ensure you have access to the following dependencies:
   * Mastercard Developer OAuth Signer v1.2.4
   * org.openapitools v6.3.0
   * OKHttp3 v4.9.3
   * JUnit Jupiter v5.5.2
   * AssertJ v3.14.0

These, along with other dependencies, are configured in the build.gradle including the version numbers. Gradle should download these dependencies automatically.

## Frameworks used {#frameworks-used}

[OpenAPI Generator](https://github.com/OpenAPITools/openapi-generator)

## Set up a project with Mastercard Developers {#set-up-a-project-with-mastercard-developers}

1. Create an account at [Mastercard Developers](https://developer.mastercard.com/).
2. Create a new project and add the In Control for Commercial Payments API to your project.
3. A .p12 keystore file containing sandbox credentials is downloaded automatically. Save this file for later
4. Take note of the Consumer Key, *keyalias*, and keystore password given when the project is created.

#### Subscriber onboarding {#subscriber-onboarding}

Contact your Mastercard representative to begin the onboarding process. If you do not already have a contact, use the Contact Us button on the [Support](https://developer.mastercard.com/iccp/documentation/support/index.md) page to establish contact. Once onboarding is complete, you can integrate to the ICCP-Real-Card-Account-Service API.

## Build the reference application {#build-the-reference-application}

Step 1: Prepare the reference application

1. To download, select [iccp-real-card-account-service-openapi-java-client.zip](https://static.developer.mastercard.com/content/iccp/uploads/iccp-real-card-account-service-openapi-java-client.zip) (82KB).
2. Extract the downloaded zip file to a folder of your choice.
3. Download and unzip the Java-based reference implementation and follow the setup instructions in the README.MD file.
