# Sandbox Testing
source: https://developer.mastercard.com/mastercard-processing-debit/documentation/sandbox-testing/index.md

## Overview {#overview}

The section describes all use cases that can be tested using the Sandbox environment. The Sandbox contains limited-capacity mock APIs, enabling you to try the APIs quickly to assist with initial integration and solution development. The Sandbox returns mock responses for a defined request. Particular values in the request body, such as path parameters or fields, will give specific predefined responses.
Note: At the beginning of each test case, there might be information (in the form of a table) that you must use in the request to execute the test case. The table displays specific values that are preconfigured in the Sandbox. Otherwise, you can send any values in the request, and the Sandbox will always return the same mock response.

The following test cases are provided:

|                                                                                      Test case                                                                                       |       Test case scenario       |
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------|
| [Update Mastercard Processing STIP Balance](https://developer.mastercard.com/mastercard-processing-debit/documentation/use-cases/update-mastercard-processing-stip-balance/index.md) | Success                        |
|                                                                                                                                                                                      | Fail - Not an Account Contract |

## API configuration {#api-configuration}

There is a predefined API configuration of the Sandbox containing the following characters allowed in the requests.

|      Global parameter      |                                       Value                                        |
|----------------------------|------------------------------------------------------------------------------------|
| Allowed default characters | abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.,\&#'@+\\\\-\*_=; /1234567890 |

## Global error test cases {#global-error-test-cases}

There are globally predefined primary CMS object identifiers (`accountContractId`) that allow getting typical errors during the processing of the request.

| Path parameter name | Path parameter available value |           reasonCode            |                Description                |
|---------------------|--------------------------------|---------------------------------|-------------------------------------------|
| account_contract_id | 10001                          | ACCOUNT_CONTRACT_DOES_NOT_EXIST | Account contract with id 10001 not found. |

For example, to get the `ReasonCode` `ACCOUNT_CONTRACT_DOES_NOT_EXIST` error, you should define the `account_contract_id` parameter with the `10001` value in the request. That rule applies to any API endpoints with `account_contract_id` unless it is described differently in the particular test case.
