# Test Providers
source: https://developer.mastercard.com/open-finance-europe/documentation/licensed/insights/testing/test-providers/index.md

### Test providers for account information {#test-providers-for-account-information}

The following test providers return generated dummy accounts and transactions. The test data stems from the same source, but has some variance across the providers. Account IDs are unique between users and banks.

The providers accept any input as credentials, and always return same list of accounts. However, account IDs are unique per the username given.

|  **ProviderId**  | **Country Code** | **Currency** |                  **Notes**                  |
|------------------|------------------|--------------|---------------------------------------------|
| `TestDataBank1`  | DK               | DKK          |                                             |
| `TestDataBank2`  | DK               | DKK          |                                             |
| `TestDataBank3`  | DK               | DKK          |                                             |
| `TestDataBank4`  | DK               | DKK          |                                             |
| `TestDataBank5`  | FI               | EUR          | Does not support Unattended Logins          |
| `TestDataBank6`  | NO               | NOK          |                                             |
| `TestDataBank7`  | DK               | DKK          |                                             |
| `TestDataBank8`  | FI               | SEK          |                                             |
| `TestDataBank9`  | FI               | EUR          | Has an account that has no transactions     |
| `TestDataBank10` | FI               | EUR          | Has no accounts                             |
| `TestDataBank11` | SE               | NOK          |                                             |
| `TestDataBank12` | SE               | SEK          | Has an account that has no transactions     |
| `TestDataBank13` | SE               | SEK          | Has no accounts                             |
| `TestDataBank14` | DK               | EUR          |                                             |
| `TestDataBank15` | DK               | DKK          | Fails on Unattended Login                   |
| `TestDataBank16` | SE               | SEK          | Returns invalid account numbers             |
| `TestDataBank17` | DK               | DKK          | Contains an account of type `LockedSavings` |

### Testing end-user authentication {#testing-end-user-authentication}

The API provides a special provider for testing different login methods. The ID is `TestBank` (country code `XX`).

This test bank requires eight digit usernames, and 6 digit challenge codes. Any `username/challenge/pin` ending with 100 provides successful response -- read more about that below.

Additionally, we've implemented logic allowing the primary text field in each stage to control the outcome when submitting the stage. In general, the last 3 characters of the text value control what happens.

The format is:

        xxxxxxRCC

where the `x`'s are not considered, and there can be as many of them in order to match the required input length. If `R` is 1, the call succeeds. If `R` is 0, the call fails and the login flow terminates. Note that even if a call succeeds, an error may be shown to the user, e.g. upon entering invalid credentials.

The last two digits, `CC`, control the error code, if any. The value `00` represents no error code.

To successfully get through a stage, any value that ends with `100` is sufficient. And in fields that require input of certain length, just pad the input with digits.

The following values for `CC` are supported:

Normal login error types -- these occur based on the user's input:

| **`CC`** |          **Meaning**          |
|----------|-------------------------------|
| 01       | CredentialsBlocked            |
| 02       | InvalidCredentials            |
| 03       | CredentialRenewalNeeded       |
| 04       | KeycardRenewalNeeded          |
| 05       | ExternalAuthenticationTimeout |
| 06       | Timeout                       |
| 07       | UserCancelled                 |
| 08       | NotCustomerInBank             |

Provider level error types -- occur because of an error with the provider:

| **`CC`** |  **Meaning**   |
|----------|----------------|
| 50       | UnknownError   |
| 51       | NetbankDown    |
| 52       | AdapterExpired |
| 53       | RetrySession   |
| 54       | Unauthorized   |

