Microdeposits
Verify account details by making two, small ACH deposits for end user confirmation.
See the Connectivity Overview to learn about our Connectivity products and integration options.
With Microdeposits, make two, small ACH deposits into a user's account using the provided account and routing number. You can then require that the end user confirm the exact amount of each deposit. In doing so, you can verify that the consumer owns the account and meets NACHA requirements for account verification.
You must have Microdeposits enabled by MX. Please contact MX if this feature hasn't been enabled.
MX doesn't debit back the microdeposits that are credited to a user's account.
Microdeposit Sample Data
This sample response shows the data you can expect to get for microdeposits.
_20{_20 "micro_deposit": {_20 "account_name": "My Test Account",_20 "account_number": "33331261",_20 "account_type": "CHECKING",_20 "created_at": "2023-06-01T21:12:49Z",_20 "email": "example@example.com",_20 "error_code": null,_20 "error_message": null,_20 "first_name": "Josh",_20 "guid": "MIC-d1351d87-fafc-4935-b2f0-158973e68d34",_20 "institution_code": null,_20 "institution_name": null,_20 "last_name": "Smith",_20 "routing_number": "091000019",_20 "status": "REQUESTED",_20 "updated_at": "2023-06-01T21:12:49Z",_20 "verified_at": null_20 }_20}
Integration Options
You can integrate Microdeposits by using our Connect Widget, or by using our API to power your own connection experience. See one of the following guides:
- Integrate Microdeposits using our Connect Widget
- Integrate Microdeposits using our API for your own connection experience
Microdeposit Limits
Users can attempt to verify the amounts associated with a given microdeposit guid three times. After the third incorrect attempt, the microdeposit moves to a PREVENTED status and the process can no longer continue. If the user wishes to try again, they must start a new microdeposit verification.
Users can verify up to three accounts per email address using microdeposits. For instance, if a user had four different accounts all associated with the same email, only three accounts could be verified using microdeposits.
Timing and Polling
The time it takes for microdeposits to appear can vary. Deposits initiated in the morning might appear by evening, or they could take up to 7 days.
Wait at least 36 hours after initiating a microdeposit before checking for status changes to ensure deposits have been processed. You can start polling before this time (for example, after 24 hours), but you may not see DEPOSITED or ERRORED status changes until 12 to 36 hours after initiation.
Poll no more frequently than once every 15 minutes, as MX only checks status with the deposit provider every 15 minutes. More frequent polling provides no benefit.
Data Retention
Microdeposits that remain in the status INITIATED, REQUESTED, or DEPOSITED for 21 or more days are soft-deleted from the MX Platform.
Block Lists
You can prevent microdeposit verifications with certain institutions by using a routing number block list. Institutions associated with any routing number on a block list will not be available for microdeposit verifications.
To block an institution, visit the Client Dashboard. See Block an Institution for more info.
Test Scenarios
You can simulate some common microdeposit scenarios in our integrations environment using the microdeposit amounts we provide.
The following table shows the fields and microdeposit amounts you must provide to simulate each scenario. Use different account numbers to avoid errors. For field requirements, see Formats.
| Test Scenario | Inputs | Microdeposit Amounts |
|---|---|---|
| A Successful Verification | First name, last name, email address, routing number, account number | 0.09 for both amounts |
| A Failed Verification that Can't Be Retried | First name, last name, email address, routing number, account number | 0.04 for the first amount, 0.01 for the second amount |
| A Failed Verification that Can Be Retried | First name, last name, email address, routing number, account number | 0.02 for both amounts |
Formats
The following shows the accepted format for each input field.
| Input Field | Format |
|---|---|
| First Name | Must be less than or equal to 50 characters and contain no special characters, for example, Dave but not D#ve. |
| Last Name | Must be less than or equal to 50 characters and contain no special characters. For example, Smith but not Sm_th. |
Must be in standard email format, for example, example@email.com. | |
| Routing Number | Must follow standard American Banking Association rules for routing numbers, for example, 091000019 but not 222222226 or 021000021. |
| Account Number | Any integer that begins with 3333 (for example, 333312345) will be interpreted as a valid account number. Valid account numbers produce an INITIATED status for the microdeposit object that is created, followed by a REQUESTED status; REQUESTED will change to DEPOSITED after two minutes. |
| Microdeposit Amounts | Specific amounts correspond to specific scenarios, described in Test Scenarios. |
Testing Microdeposits in the Connect Widget
For the microdeposits flow to occur in the Connect Widget:
- Set
data_request.productsto includeaccount_verificationin your widget URL request. If you're simulating a user returning to the Connect Widget to verify their microdeposit amounts, also setcurrent_micro_deposit_guidto theguidof the microdeposit the user needs to verify. - In the Connect Widget, enter an input into the searchbar that doesn't result in an institution. For example, you can enter "vvv."
- Select Connect with account numbers.
- Enter the inputs as specified in one of the test scenarios.