Testing Your Setup
MX provides a test institution in our development environment called MX Bank (institution code: mxbank) to test different aggregation responses. Creating a test member with this institution allows you to use custom credentials to mimic various aggregation workflows.
For example, you can use MX bank to test a complicated flow such as aggregation with MFA:
- Aggregate the test member (or create a new test member)
- Poll the member's connection status.
- With MX Bank, this will return with a
challengesobject.
- With MX Bank, this will return with a
- Answer the challenge using the resume aggregation endpoint
- On MX Bank, responding with
"value": "challenge"will answer the first question correctly and trigger a follow-up challenge.
- On MX Bank, responding with
- Poll the status again.
- This will return another
challengesobject.
- This will return another
- Answer the second challenge.
- On MX Bank, answering with
"value": "correct"will result in a successful aggregation.
- On MX Bank, answering with
- Poll the status until an end state is reached.
MX also provides dozens of test endpoints to mimic the behavior of other Atrium features and workflows.
Test credentials for MX Bank
The test credentials for different situations are as follows:
| Username | Password | Description |
|---|---|---|
test_atrium | password | This mimics successful aggregation with no MFA. |
test_atrium | challenge | This mimics a text-based MFA challenge. Answer with the word correct to successfully progress through MFA. |
test_atrium | options | This mimics the "option list" type of MFA challenge. Select "correct" to successfully progress through MFA. |
test_atrium | image | This mimics the image type of MFA challenge. Answer with the word "correct" to successfully progress through MFA. |
test_atrium | BAD_REQUEST | This mimics not having a username and password on the member. The member status will go to HALTED. |
test_atrium | UNAUTHORIZED | This mimics the member having invalid credentials. The member status will go to DENIED. |
test_atrium | INVALID | This mimics the member having invalid login and/or password fields. The member status will go to DENIED. |
test_atrium | LOCKED | This mimics a user being locked out of their banking institution. The member status will go to DENIED. |
test_atrium | SERVER_ERROR | This mimics the financial institution having a server error. The member status will go to HALTED. |
test_atrium | UNAVAILABLE | This mimics the financial institution having a "service unavailable" error. The member status will go to HALTED. |
Testing with MX Bank and OAuth in the Connect Widget
You will only be able to test OAuth flows in the integration environment with MX Bank (OAuth) (institution code: mx_bank_oauth).
When you select MX Bank (OAuth) from search, or load the Connect with it via current_institution_code. You should see the following screen before going to the OAuth provider:

Then you should end up on this page:

From here you can simply click "Authorize" to simulate authorizing and success paths, and "Deny" to simulate an error path.
Test Endpoints
MX provides test endpoints to aid developers in working the flows and other issues with their Atrium integrations. Test endpoints return static data.
Certain endpoints can take a connection_status string as a URL parameter in place of the typical GUID. This will return a member in the state corresponding to the given connection_status.
Accounts
List accounts for a member
Endpoint: GET /users/test_atrium/members/test_atrium_member/accounts
List accounts for a user
Endpoint: GET /users/test_atrium/accounts
Read an account
Endpoint: GET /users/test_atrium/accounts/test_atrium_account
Request Connect Widget
Endpoint: POST /users/test_atrium/connect_widget_url
Holdings
List Holdings For A User
Endpoint: GET /users/test_atrium/holdings
List Holdings For a Member
Endpoint: GET /users/test_atrium/members/test_atrium_members/holdings
List Holdings For an Account
Endpoint: GET /users/test_atrium/accounts/test_atrium_account/holdings
Read a Holding
Endpoint: GET /users/test_atrium/holdings/test_atrium_holding
Institutions
List Institutions
Endpoint: GET /test_institutions
List Institution Credentials
Endpoint: GET /institutions/test_mxbank/credentials
Read an Institution
Endpoint: GET /institutions/test_mxbank
Account Owner Identification
Identify
Endpoint: POST /users/test_atrium/members/test_atrium_member/identify
Read Account Owners
Endpoint: GET /users/test_atrium/members/test_atrium_member/account_owners
Members
Create a member
Endpoint: POST /users/test_atrium/members
List members
Endpoint: GET /users/test_atrium/members/
_10curl -X GET \_10 https://vestibule.mx.com/users/test_atrium/members/ \_10 -H 'Accept: application/vnd.mx.atrium.v1+json' \_10 -H 'MX-API-Key: {your_api_key}' \_10 -H 'MX-Client-ID: {your_client_id}'
Read a member
This endpoint will return a test member in a state corresponding to the connection_status passed in the URL where a member_guid would typically go. Using the GUID test_atrium_member will return a member with the status CONNECTED.
Endpoint: GET /users/test_atrium/members/test_atrium_member
or
Endpoint: GET /users/test_atrium/members/{connection_status}
Update a member
This endpoint will return a test member in a state corresponding to the connection_status passed in the URL where a member_guid would typically go. Using the GUID test_atrium_member will return a member with the status CONNECTED.
Endpoint: PUT /users/test_atrium/members/test_atrium_member
or
Endpoint: PUT /users/test_atrium/members/{connection_status}
Delete a member
Endpoint: DELETE /users/test_atrium/members/test_atrium_member
Aggregate a member
This endpoint will return a test member in a state corresponding to the connection_status passed in the URL where a member_guid would typically go. Using the GUID test_atrium_member will return a member with the status CONNECTED.
Endpoint: POST /users/test_atrium/members/:connection_status/aggregate
Read a member's connection status
This endpoint will return a test member in a state corresponding to the connection_status passed in the URL where a member_guid would typically go. Using the GUID test_atrium_member will return a member with the status CONNECTED.
Endpoint: GET /users/test_atrium/members/:connection_status/status
Read a member's MFA challenges
This endpoint takes one of four URL parameters which return three different types of MFA challenges: text, options, image, and image_options.
Endpoint: GET /users/test_atrium/members/:challenge_type/challenges
Resume aggregation from MFA
Endpoint: PUT /users/test_atrium/members/test_atrium_member/resume
List a member's credentials
Endpoint: GET /users/test_atrium/members/test_atrium_member/credentials
List a member's accounts
Endpoint: GET /users/test_atrium/members/test_atrium_member/accounts
List a member's transactions
Endpoint: GET /users/test_atrium/members/test_atrium_member/transactions
Merchants
Read a merchant
Endpoint: GET /merchants/test_atrium_merchant
Extended Transaction History
Extend transaction history
Endpoint: POST /users/test_atrium/members/test_atrium_member/extend_history
Transactions
List Transactions for a User
Endpoint: GET /users/test_atrium/transactions
List Transactions by Account
Endpoint: GET /users/test_atrium/accounts/test_atrium_account/transactions
Read a Transaction
Endpoint: GET /users/test_atrium/transactions/test_atrium_transaction
Categorize Transactions
Endpoint: POST /test_transactions/cleanse_and_categorize
Users
Create a User
Endpoint: POST /test_users
List Users
Endpoint: GET /test_users
Read a User
Endpoint: GET /users/test_atrium
Update a User
Endpoint: PUT /users/test_atrium
Delete a user
Endpoint: DELETE /users/test_atrium
Instant Account Verification
Verify
ç
Endpoint: POST /users/test_atrium/members/test_atrium_member/verify
Read Account Numbers
Endpoint: /users/test_atrium/members/test_atrium_member/account_numbers