# Quick Start Guide
source: https://developer.mastercard.com/iccp/documentation/quick-start-guide-new/index.md

## Overview {#overview}

Use this guide to go from account setup to your first successful Sandbox request for ICCP. You will create a project, generate credentials, make a test call, and prepare the same project for Production access.

### Before you begin {#before-you-begin}

* Create a [Mastercard Developers](https://developer.mastercard.com/) account.
* Have a secure place to store downloaded OAuth and encryption keys.
* Decide how you want to test: the reference application, or your own client.
* Have an OAuth 1.0a signing method ready, such as a Mastercard OAuth library.

### Sandbox checklist {#sandbox-checklist}

| # |      Step      |                                                                                                             What to do                                                                                                             |
|---|----------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 | Access         | Get access to ICCP and create your Mastercard Developers project.                                                                                                                                                                  |
| 2 | Credentials    | Generate your Sandbox OAuth credentials and record your consumer key.                                                                                                                                                              |
| 3 | Environment    | Confirm that you are using the Sandbox base URL and that your project is still in Sandbox mode.                                                                                                                                    |
| 4 | Authentication | Configure OAuth 1.0a signing for the first request and confirm which consumer key and private key pair you will use.                                                                                                               |
| 5 | Encryption     | Complete JWE setup in [API Basics](https://developer.mastercard.com/iccp/documentation/api-basics/index.md) before testing protected-payload flows such as Adoptions and Employees.                                                |
| 6 | First call     | Send your first Sandbox request using the Sandbox base URL and OAuth 1.0a signing.                                                                                                                                                 |
| 7 | Validation     | Use the sample response and [Testing](https://developer.mastercard.com/iccp/documentation/ref_app_tutorials/reference-application/index.md#tests-and-supporting-classes) page to validate positive, negative, and follow-on flows. |

## Step 1: Get access to the API {#step-1-get-access-to-the-api}

1. Go to [Mastercard Developers](https://developer.mastercard.com/) and create an account.
2. Activate your account by opening the link sent to your email address, and log in.
3. Open your [My Projects](https://developer.mastercard.com/dashboard) page and start a new project. Sandbox access is open, so you can begin testing as soon as your project credentials are generated.

## Step 2: Create a project and generate Sandbox credentials {#step-2-create-a-project-and-generate-sandbox-credentials}

Create a Mastercard Developers project to generate your Sandbox credentials. Sandbox gives you mocked data so you can validate your integration before requesting Production access.

### Project Details {#project-details}

1. Click 'Create new project' on your [My Projects](https://developer.mastercard.com/dashboard) page. ![project-1](https://static.developer.mastercard.com/content/iccp/uploads/project-details.png)
2. Enter a project name.
3. If prompted, indicate whether you are creating the project on behalf of a client.
4. In the 'Select at least one API' field, choose **In Control for Commercial Payments**.

### Service Details {#service-details}

5. Enter the name of your issuer in the **Service details** . ![Service detail](https://static.developer.mastercard.com/content/iccp/uploads/step-2.png)
6. Click **Create Project** . **Creating your project** window displays. ![creating project](https://static.developer.mastercard.com/content/iccp/uploads/creating-project.png)

### Save the values you will need {#save-the-values-you-will-need}

11. On the project dashboard, record the following values:

* Sandbox and Production status
* Authentication consumer key
* Client encryption key fingerprint

![creating project](https://static.developer.mastercard.com/content/iccp/uploads/step-5.png)

## Step 4: Choose how you want to test and integrate {#step-4-choose-how-you-want-to-test-and-integrate}

After the first Sandbox request succeeds, pick the integration path that matches your workflow:

* **Reference Application:** Use the [Reference Application](https://developer.mastercard.com/iccp/documentation/ref_app_tutorials/index.md) page.
* **curl or a custom client:** Use the [API Reference](https://developer.mastercard.com/iccp/documentation/api-reference/index.md) page for test cases and additional examples.

## Step 5: Promote the same project to Production {#step-5-promote-the-same-project-to-production}

Once your project is working in Sandbox, request Production access for that same project.

### Transition your project from Sandbox to Production {#transition-your-project-from-sandbox-to-production}

1. **Open your project in Mastercard Developers**
   Go to your [My Projects](https://developer.mastercard.com/dashboard) page and open the Pet Store project you used for Sandbox testing.

2. **Request Production access for that project**
   In the project dashboard, select 'Request Production Access'. Your Sandbox and Production statuses are shown separately on the project page, so you can track when Production moves from `Not Requested` to an enabled `Ready` state.

3. **Generate or download your Production keys**
   After Production access is approved, download the Production OAuth and encryption keys for the same project. Keep the Production key material separate from your Sandbox keys.

4. **Update your application configuration**
   Switch the base URL from Sandbox to Production:

### Sandbox {#sandbox}

* Financial
* Reporting

```endpoint
 `https://sandbox.api.mastercard.com/iccp/financial`
```

```endpoint
`https://sandbox.api.mastercard.com/iccp/reporting`
```

### Production {#production}

* Financial
* Reporting

```endpoint
 `https://api.mastercard.com/iccp/financial`
```

```endpoint
`https://api.mastercard.com/iccp/reporting`
```

Update your application to use the Production consumer key, signing key, and encryption certificates.
Note: OAuth 1.0a authentication and JWE payload encryption work the same way in Sandbox and Production. The main changes are the Production key set, the Production approval state, and the Production base URL.

## Next Steps {#next-steps}

Now that you have access to the service, you can begin testing, proceed to the [Use Cases](https://developer.mastercard.com/iccp/documentation/use-cases/index.md) section to learn about the different use cases of the service.
