Sandbox test credentials 
=========================

#### Simulate different flows using Sandbox credentials 

When using special Sandbox test credentials described on this page (other than `user_good` / `pass_good`), use the [/sandbox/public\_token/create](https://plaid.com/docs/api/sandbox/index.html.md#sandboxpublic_tokencreate) flow or a non-OAuth test institution, such as First Platypus Bank (`ins_109508`). Special test credentials may be ignored when using the Sandbox Link OAuth flow.

#### Sandbox simple test credentials 

Use the username `user_good` and password `pass_good`.

These provide basic account access to most Plaid products. Certain Plaid products also have specialized credentials that can be used for more advanced testing or for getting more useful and realistic testing data. These specialized credentials can be found below.

#### Transactions testing credentials 

Use the username `user_transactions_dynamic` and any password. For persona-based testing, use `user_ewa_user`, `user_yuppie`, or `user_small_business`.

These credentials have realistic transaction history and may update transactions and fire webhooks when [/transactions/refresh](https://plaid.com/docs/api/products/transactions/index.html.md#transactionsrefresh) is called. For more details, including information on how often new transactions are triggered or how to add your own custom transactions, see [Testing Transactions in Sandbox](https://plaid.com/docs/transactions/index.html.md#testing-transactions-in-sandbox) and [testing pending and posted transactions](https://plaid.com/docs/transactions/transactions-data/index.html.md#testing-pending-and-posted-transactions) .

#### Auth micro-deposit testing credentials 

Use the username `user_good` and the password `microdeposits_good`.

For more details, see [Institution details for Auth testing](https://plaid.com/docs/sandbox/institutions/index.html.md#institution-details-for-auth-testing) .

#### Credit and Income testing credentials 

Plaid provides a variety of pre-populated test users designed for use with Bank Income and other underwriting-related products.

| Username | Password | Description |
| --- | --- | --- |
| `user_bank_income` | `{}` | User with wide variety of income streams of different types |
| `user_credit_bonus` | Any | Has two salary streams: one with bonuses included in the paycheck, one with bonuses as separate transactions |
| `user_credit_joint_account` | Any | Has two salary streams and two identities on the account |
| `user_credit_profile_poor` | Any | Net loss cash flow over time, no consistent source of income |
| `user_credit_profile_good` | Any | Neutral cash flow over time, multiple gig economy income streams |
| `user_credit_profile_excellent` | Any | Positive cash flow over time, high salary-based income with secondary rental income stream |
| `user_prism_1` through `user_prism_8` | Any | For testing Partner Insights reports, these users return a variety of consistent partner insights values |

Plaid also provides a [GitHub repo](https://github.com/plaid/sandbox-custom-users/) designed specifically for testing credit products; look in the **income** directory for credit-specific users. You can modify these users as you need. For instructions, see [Custom users](https://plaid.com/docs/sandbox/user-custom/index.html.md#configuring-the-custom-user-account) .

For details on testing Bank Income with custom data, see [Testing Bank Income](https://plaid.com/docs/income/bank-income/index.html.md#testing-bank-income) .

#### Auth limited purpose checking test credentials 

Use the username `user_limited_purpose_checking` and the password `pass_good`.

For more details, see [Limited purpose checking](https://plaid.com/docs/auth/index.html.md#enabling-limited-purpose-checking-accounts-for-rent-or-mortgage) .

#### Monitor and Identity Verification testing users 

Monitor and Identity Verification have product-specific Sandbox users that can be used for testing. For Identity Verification, you can also create custom sample identities in the Plaid Dashboard for more targeted testing scenarios. For more details, see [Testing Monitor](https://plaid.com/docs/monitor/index.html.md#testing-monitor) and [Testing Identity Verification](https://plaid.com/docs/identity-verification/testing/index.html.md) .

#### Sandbox multi-factor credentials 

You can trigger any multi-factor authentication (MFA) flow that Plaid supports when creating an `Item` by using username `user_good` and modifying the password.

Bank of America and U.S. Bank cannot be used as test institutions when triggering MFA flows with modified passwords. Instead, these banks will always launch on Sandbox with an MFA flow.

##### Multi-factor device OTP 

MFA Device OTP credentials

```python
username: 'user_good'
password: 'mfa_device'

# Code for all devices: 1234
code: 1234
```

##### Multi-factor questions 

MFA Questions credentials

```python
# n-rounds of m-questions per round, where 0 <= i, j < 9
username: 'user_good'
password: 'mfa_questions_<n>_<m>'

# answer_<i>_<j>, for j-th question in i-th round.
answer: 'answer_<i>_<j>'
```

##### Multi-factor selections 

MFA selections credentials

```python
username: 'user_good'
password: 'mfa_selections'

answer: 'Yes'
```

Multiple MFA selections credentials

```python
# n-rounds of m-questions with o-answers per question
# 0 < n, m < 10 and 2 <= o < 10
username: 'user_good'
password: 'mfa_selections_<n>_<m>_<o>'

# answer_<n>_<m>_0, for m-th question in n-th round.
answer: 'answer_1_1_0'
```

#### ReCAPTCHA testing credentials 

You may trigger a reCAPTCHA in Plaid Link in the Sandbox environment by setting the test account password to a JSON object with a `recaptcha` field. Setting `recaptcha` to `good` will result in successful Item creation, while setting it to `bad` will result in a `RECAPTCHA_BAD` error to simulate a failed reCAPTCHA. Both values require the reCAPTCHA to be manually solved within Plaid Link.

ReCAPTCHA

```python
username: user_good
password: {"recaptcha":"bad"}
```

#### Error testing credentials 

You can trigger several `ITEM_ERROR` or `INSTITUTION_ERROR` errors that you may encounter when creating an Item by using username `user_good` and modifying the password.

Error code password

```python
error_[ERROR_CODE]
```

For example, the password `error_ITEM_LOCKED` allows you to simulate an `ITEM_LOCKED` error.

Note that error testing credentials are not compatible with institutions that use OAuth. If you are not sure whether an institution uses OAuth flows, see the list of [Sandbox institutions](https://plaid.com/docs/sandbox/institutions/index.html.md) to find an institution that is guaranteed not to use OAuth.

The list of errors that can be simulated in this way is below:

```json
"COUNTRY_NOT_SUPPORTED"
"INSTITUTION_DOWN"
"INSTITUTION_NOT_RESPONDING"
"INSTITUTION_NO_LONGER_SUPPORTED"
"INSUFFICIENT_CREDENTIALS"
"INTERNAL_SERVER_ERROR"
"INVALID_CREDENTIALS"
"INVALID_MFA"
"INVALID_SEND_METHOD"
"ITEM_LOCKED"
"ITEM_NOT_SUPPORTED"
"MFA_NOT_SUPPORTED"
"NO_ACCOUNTS"
"PAYMENT_INVALID_RECIPIENT"
"USER_INPUT_TIMEOUT"
"USER_SETUP_REQUIRED"
```

You can test several other OAuth-specific Link errors via the drop-down selector on the First Platypus OAuth screen after selecting any OAuth institution. The list of errors that can be simulated in this way is below:

```json
"INSUFFICIENT_CREDENTIALS"
"ACCESS_NOT_GRANTED"
"NO_AUTH_ACCOUNTS"
```

#### Link Recovery testing credentials 

See [Testing Link Recovery](https://plaid.com/docs/link/link-recovery/index.html.md#testing-link-recovery) .