# Quick Start Guide
source: https://developer.mastercard.com/india-online-dispute-resolution/documentation/quick-start-guide/index.md

## Overview {#overview}

The India Online Dispute Resolution (IODR) API streamlines dispute handling and enables issuers to manage all dispute events under a single claim. This tutorial guides you through the process of onboarding and being able to consume this data.

This tutorial guides you through setting up an account and making your first successful IODR Sandbox request. You will create a project, generate credentials, make a test call, and prepare the 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: Postman, Insomnia, the reference application, or your own client.

Note: **Sandbox onboarding prerequisite:** Before you can test **success (positive) flows** in the Sandbox, your project must complete additional onboarding and provisioning. Until this provisioning is complete, you can exercise negative/error flows, but success responses may not be available. Because this onboarding is mandatory, the first **successful** Sandbox call is typically not achievable in \~5 minutes --- plan for the provisioning step first. Contact your Mastercard representative or raise a support case to confirm your Sandbox project is provisioned for positive-flow testing.

### Sandbox checklist {#sandbox-checklist}

| # |    Step     |                                                                                                                                                                                                       What to do                                                                                                                                                                                                        |
|---|-------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 | Access      | Get access to the IODR API and create your Mastercard Developers project.                                                                                                                                                                                                                                                                                                                                               |
| 2 | Credentials | Generate your Sandbox OAuth credentials and record your consumer key.                                                                                                                                                                                                                                                                                                                                                   |
| 3 | Encryption  | Set up JWE encryption as described in [API Basics](https://developer.mastercard.com/india-online-dispute-resolution/documentation/api-basics/index.md#transport-encryption). Encryption is **mandatory** --- the first call payload must be JWE-encrypted.                                                                                                                                                              |
| 4 | First call  | Send your first Sandbox request using the Sandbox base URL and OAuth 1.0a signing.                                                                                                                                                                                                                                                                                                                                      |
| 5 | Validation  | Use the sample response and [Testing](https://developer.mastercard.com/india-online-dispute-resolution/documentation/testing/index.md) page to validate test data, positive flows, and negative flows.                                                                                                                                                                                                                  |
| 6 | Production  | After Sandbox validation is complete, follow the [Customer Onboarding Guide](https://developer.mastercard.com/india-online-dispute-resolution/documentation/onboarding-guide/index.md) for technical onboarding and the [Onboarding Checklist](https://developer.mastercard.com/india-online-dispute-resolution/documentation/onboarding-checklist/index.md) for contract and SLA details to request Production access. |

## 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.

## 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 provides mocked data so that 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-details](https://static.developer.mastercard.com/content/india-online-dispute-resolution/uploads/Project-details.png)
2. Enter a project name.
3. Indicate whether you are creating the project on behalf of a client. Note: Choose **Yes** if you are creating an API integration project for a client. For example, you could be an integrator, a processor, or a service provider and the client can be a merchant, issuer, acquirer.
4. In the **Select at least one API** field, choose **India Online Dispute Resolution** and click **Proceed**.

### Service Details {#service-details}

5. In the Client Type list, select an issuer, acquirer, or TPAPs as a client.
6. In the **Customer ID** box, enter a value of the company ID. ![add_service](https://static.developer.mastercard.com/content/india-online-dispute-resolution/uploads/add_service_details.png)
7. Click **Proceed** to continue.

### Project credentials {#project-credentials}

Use the Keystore password with the .p12 file and client ID for OAuth authentication. These credentials give you access to the sandbox service in this project.

8. In the **Key alias** box, enter a unique value to identify the key.
9. In the **Keystore password** box, enter a password for keystore. ![project_credentials](https://static.developer.mastercard.com/content/india-online-dispute-resolution/uploads/add_project_credentials.png)
10. Click **Proceed**.

### Additional credentials {#additional-credentials}

Payload encryption and decryption require both client and Mastercard encryption keys.

11. In the **Key alias** box, enter a unique value to identify the key.
12. In the **Keystore password** box, enter a password for keystore. ![project_credentials](https://static.developer.mastercard.com/content/india-online-dispute-resolution/uploads/additional_credentails_details.png)
13. Click **Create Project**.

### Create your sandbox project {#create-your-sandbox-project}

Your sandbox project has been successfully created. The Mastercard Developers portal has generated your project keys, which are ready for download.

14. To save the project key, click the **Download key file** .   

    Save this key in a safe location.

15. To view the project summary, click **Open project**.

Note: Downloading the project keys file enables the **Open project** button.

After confirmation, you will receive an email that includes the provisioning request and keys.
![uploads](https://static.developer.mastercard.com/content/india-online-dispute-resolution/uploads/11.png)

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

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

* Sandbox and Production status
* Authentication consumer key
* Client encryption key fingerprint ![uploads](https://static.developer.mastercard.com/content/india-online-dispute-resolution/uploads/12.png)

## Step 3: Make your first Sandbox request {#step-3-make-your-first-sandbox-request}

Once you have sandbox credentials, make a **POST** request to `/complaints/searches`
to confirm your project setup.  

Before you run the request, make sure that you have:

* Your Sandbox consumer key.
* The private key used to sign OAuth requests.
* A Mastercard OAuth library or signer that generates `oauth_timestamp`, `oauth_nonce`, and `oauth_signature`.
* Your client encryption certificate to JWE-encrypt the request payload.   
  This first-call example uses `POST /complaints/searches`, so you can verify access, OAuth signing, and payload encryption against the Sandbox base URL. Note: The `/complaints/searches` request and response payloads are **JWE-encrypted** , and a `Request-Id` (UUID) header is required. Encryption is **not optional** for this call --- you must JWE-encrypt the plaintext body before sending it. For a full client setup, including encryption configuration, see the [API Basics](https://developer.mastercard.com/india-online-dispute-resolution/documentation/api-basics/index.md) section.

### Example request (cURL): {#example-request-curl}

Tip: The following cURL example is **not** a copy-paste, ready-to-run request. The `--data` value must contain a **JWE-encrypted** payload (not plaintext), and the OAuth signature must be generated with a Mastercard OAuth library. See [API Basics](https://developer.mastercard.com/india-online-dispute-resolution/documentation/api-basics/index.md#transport-encryption) to encrypt the body before you send the request.

#### Step A --- Encrypt the payload {#step-a--encrypt-the-payload}

Encryption is **mandatory** . Before you send the request, JWE-encrypt the plaintext body using your **client encryption key** and the Mastercard client encryption library for your language (for example, the `client-encryption` libraries for Java, Node.js, C#, Python, or PHP). Do **not** send plaintext.

Plaintext body to encrypt:

```json
{ "searchType": "DEFAULT" }
```

After encryption, the library produces the JWE value you place in the `encryptedValue` field below. For step-by-step encryption setup, see [API Basics](https://developer.mastercard.com/india-online-dispute-resolution/documentation/api-basics/index.md#transport-encryption).

#### Step B --- Send the signed, encrypted request {#step-b--send-the-signed-encrypted-request}

```bash
curl --request POST \
--url "https://mtf.api.mastercard.co.in/iodr/complaints/searches" \
--header 'Content-Type: application/json' \
--header 'Request-Id: YOUR_UUID' \
--header 'Authorization: OAuth oauth_body_hash="YOUR_BODY_HASH", oauth_consumer_key="YOUR_CONSUMER_KEY", oauth_nonce="YOUR_NONCE", oauth_signature_method="RSA-SHA256", oauth_timestamp="YOUR_TIMESTAMP", oauth_version="1.0", oauth_signature="YOUR_SIGNATURE"' \
--data '{"encryptedValue":"YOUR_JWE_ENCRYPTED_PAYLOAD_FROM_STEP_A"}'
```

> This example shows the required OAuth 1.0a header fields explicitly, but uses placeholders for sensitive values. Replace `YOUR_CONSUMER_KEY` with the consumer key from your project and generate `oauth_signature` with a Mastercard OAuth library. The library also handles `oauth_timestamp` and `oauth_nonce` for you.
> The plaintext request body is `{"searchType":"DEFAULT"}`. Encrypt it with your client encryption key so it is sent as `{"encryptedValue":"<JWE>"}`, and provide a unique `Request-Id` (UUID). See [API Basics](https://developer.mastercard.com/india-online-dispute-resolution/documentation/api-basics/index.md#transport-encryption) for encryption details.

### Expected response: {#expected-response}

```json
 {
  "trackingNumber": "RGPHLOS9LJWC",
  "requestDate": "2026-03-06T00:00Z",
  "lastUpdateDate": "2026-06-01T05:35:54.805360Z",
  "status": "Resolved",
  "statusDescription": "Dispute RGPHLOS9LJWC is RESOLVED"
}
```

Note: Sandbox data is served by a [Mock Data Warehouse (DWH)](https://developer.mastercard.com/india-online-dispute-resolution/documentation/mock-data-warehouse/index.md) that returns randomized success and failure responses. Transaction detail requests initially return `PENDING`, so poll the transaction status to retrieve the final result. Use this behavior to validate your error handling and retry logic.

## 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:

* **Insomnia** : Use the [Insomnia Collection page](https://developer.mastercard.com/india-online-dispute-resolution/documentation/developer-tools/insomnia/index.md) for setup.
* **Reference Application** : Use the [Reference Application](https://developer.mastercard.com/india-online-dispute-resolution/documentation/developer-tools/reff_application/index.md) page.
* **curl or a custom client** : Use the [Testing](https://developer.mastercard.com/india-online-dispute-resolution/documentation/testing/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 IODR project you used for Sandbox testing.
2. **Provide commercial countries for your project** : In the project dashboard, select the commercial countries where you intend to use the service. This information is required for Mastercard to process your Production access request. ![uploads](https://static.developer.mastercard.com/content/india-online-dispute-resolution/uploads/13.png)
3. **Request Production access for that project** : In the project dashboard, select 'Request Production Access'. The project page shows Sandbox and Production statuses separately, so you can track when Production moves from `Not Requested` to an enabled `Ready` state.
4. **Generate or download your Production keys**: Download the Production OAuth and encryption keys for the same project after approval, and keep them separate from your Sandbox keys.
5. **Update your application configuration**: Switch the base URL from Sandbox to Production:

* Sandbox: `https://mtf.api.mastercard.co.in/iodr`
* Production: `https://api.mastercard.co.in/iodr`  

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 include:

* Production key set
* Production approval state
* Production base URL

To build a sample API client and complete the technical onboarding steps, see the [Customer Onboarding Guide](https://developer.mastercard.com/india-online-dispute-resolution/documentation/onboarding-guide/index.md). For the full commercial onboarding process, including contract, SLA timeframes, and escalation paths, see the [Onboarding Checklist](https://developer.mastercard.com/india-online-dispute-resolution/documentation/onboarding-checklist/index.md).

<br />

## Next Steps {#next-steps}

Continue with the documentation that matches your next task:

* [Renew OAuth Key](https://developer.mastercard.com/india-online-dispute-resolution/documentation/renew_oauth_key/index.md) for renewal of the project OAuth key.
* [API Reference](https://developer.mastercard.com/india-online-dispute-resolution/documentation/api-reference/index.md) for endpoint details.
* [API Basics](https://developer.mastercard.com/india-online-dispute-resolution/documentation/api-basics/index.md) for authentication, encryption, and client configuration.
* [Testing](https://developer.mastercard.com/india-online-dispute-resolution/documentation/testing/index.md) for additional request scenarios.
* [Mock Data Warehouse (DWH)](https://developer.mastercard.com/india-online-dispute-resolution/documentation/mock-data-warehouse/index.md) to understand how the Sandbox returns randomized success and failure responses.
* [Customer Onboarding Guide](https://developer.mastercard.com/india-online-dispute-resolution/documentation/onboarding-guide/index.md) for building a sample API client and completing technical onboarding.
* [Onboarding Checklist](https://developer.mastercard.com/india-online-dispute-resolution/documentation/onboarding-checklist/index.md) for contract, SLA timeframes, and the operational go-live process.
