Skip to main content

API Testing

Using various test values (aka, sentinel values), you may simulate some common scenarios you'll encounter so you can effectively test your code. Every potential error payload returned by the API can also be simulated to demonstrate the life cycle of a microdeposit. Those sentinel values, and how to use them, will be described in each section below.

These test scenarios only work in our integrations environment, not in production. Producing the scenario is just a matter of using the given inputs when start

Input fieldFormat
First nameMust be less than or equal to 50 characters and contain no special characters, e.g., Dave but not D#ve.
Last nameMust be less than or equal to 50 characters and contain no special characters. e.g., Smith but not Sm_th.
EmailMust be in standard email format, e.g., example@email.com.
Routing numberMust follow standard American Banking Association rules for routing numbers, e.g., 091000019 but not 222222226 or 021000021.
Account numberAny integer that begins with 3333 (e.g. 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 amountsSpecific amounts correspond to specific scenarios, described below.

Validation Errors

Validation errors prevent a microdeposit from being created.

The following table explains the validation rules for every relevant field for testing.

FieldRule
first_nameMust be a value between 1 and 50 characters. It cannot contain any matches to the following regular expression:
last_nameMust be a value between 1 and 50 characters. It cannot contain any matches to the following regular expression:
emailMust match the following regex for valid email addresses:
account_nameMust be a value between 1 and 50 characters.
account_numberMust be a value between 1 and 17 characters.
account_type_nameMust be either CHECKING or SAVINGS.
routing_numberMust be a valid routing number with a valid checksum.

Field-Level Validation

Field-level validations can be tested using any data that triggers validation rules to admit an error. This example shows a request with an invalid email address.

Request
Response
Language:shell

_15
curl -L 'https://int-data.moneydesktop.com/micro_deposits' \
_15
-H 'Accept: application/vnd.mx.nexus.v1+json' \
_15
-H 'MD-SESSION-TOKEN: de2uS4jEwSYN7W0eoF_ZiLJQ7rtQaDbA9NkCZr_U4gujctbMw_WZYz7u6q3NMDlTYYCSSR7O3ec1fOP2wArN0g' \
_15
-H 'Content-Type: application/json' \
_15
-d '{
_15
"micro_deposit": {
_15
"account_name": "My Test Account",
_15
"account_number": "123456",
_15
"account_type_name": "checking",
_15
"email": "dave",
_15
"first_name": "Joshy",
_15
"last_name": "Groban",
_15
"routing_number": "091000019"
_15
}
_15
}'

All Possible Validation Errors

FieldValueStatusCodeMessage
account_name""bad_request4001"param is missing or the value is empty: account_name"
account_type_name""bad_request4001"param is missing or the value is empty: account_type_name"
email""bad_request4001"param is missing or the value is empty: email"
first_name""bad_request4001"param is missing or the value is empty: first_name"
last_name""bad_request4001"param is missing or the value is empty: last_name"
routing_number""bad_request4001"param is missing or the value is empty: routing_number"

Request with Invalid Email


_15
curl -L 'https://int-data.moneydesktop.com/micro_deposits' \
_15
-H 'Accept: application/vnd.mx.nexus.v1+json' \
_15
-H 'MD-SESSION-TOKEN: de2uS4jEwSYN7W0eoF_ZiLJQ7rtQaDbA9NkCZr_U4gujctbMw_WZYz7u6q3NMDlTYYCSSR7O3ec1fOP2wArN0g' \
_15
-H 'Content-Type: application/json' \
_15
-d '{
_15
"micro_deposit": {
_15
"account_name": "My Test Account",
_15
"account_number": "123456",
_15
"account_type_name": "checking",
_15
"email": "dave",
_15
"first_name": "Joshy",
_15
"last_name": "Groban",
_15
"routing_number": "091000019"
_15
}
_15
}'

Example When a Required Field is Empty, or When Required Values Aren't Submitted:


_10
{
_10
"error": {
_10
"code": 4001,
_10
"message": "param is missing or the value is empty: first_name",
_10
"status": "bad_request"
_10
}
_10
}

Example When a Given Value is Present But Triggers a Data Validation Rule:


_10
{
_10
"error": {
_10
"code": 4220,
_10
"message": "Email is invalid",
_10
"status": "unprocessable_entity"
_10
}
_10
}

The following errors can occur when given values that trigger validation rules. Note that the given values aren't special — any value provided which breaks the validation rules will trigger these errors: Here's the updated table with code ticks in the first column:

FieldValueStatusCodeMessage
account_nameAnything greater than 50 characters.unprocessable_entity4220"Account name is too long (maximum is 50 characters)"
account_number"1"unprocessable_entity4220"Account number is too short (minimum is 4 characters)"
account_numberAnything greater than 17 characters.unprocessable_entity4220"Account number is too long (maximum is 17 characters)"
account_type_name"invalid"unprocessable_entity4224"Account type is invalid"
email"dave"unprocessable_entity4222"Email is invalid"
first_nameAnything greater than 50 characters.unprocessable_entity4222"First name is too long (maximum is 50 characters)"
last_nameAnything greater than 50 characters.unprocessable_entity4222"Last name is too long (maximum is 50 characters)"
routing_number"9" (any value less than 9 characters).unprocessable_entity4222"Routing number is the wrong length (should be 9 characters), Routing number invalid checksum, Routing number invalid format"
routing_number"091000018" (any value that produces an incorrect checksum).unprocessable_entity4222"Routing number invalid checksum"

Duplicate Microdeposit Errors

To produce a duplicate microdeposit error, use the following steps:

  1. Create a valid microdeposit, keeping track of the routing and account number. Attempt to create a microdeposit for the same user, using the same routing and account number.
  2. The result will be an error with the message A MicroDeposit (MIC-a1b2-c3d4) with the same combination of routing and account number already exists.

Create Valid Microdeposit


_15
curl -L 'https://int-data.moneydesktop.com/micro_deposits' \
_15
-H 'Accept: application/vnd.mx.nexus.v1+json' \
_15
-H 'MD-SESSION-TOKEN: de2uS4jEwSYN7W0eoF_ZiLJQ7rtQaDbA9NkCZr_U4gujctbMw_WZYz7u6q3NMDlTYYCSSR7O3ec1fOP2wArN0g' \
_15
-H 'Content-Type: application/json' \
_15
-d '{
_15
"micro_deposit": {
_15
"account_name": "My Test Account",
_15
"account_number": "123412623",
_15
"account_type_name": "checking",
_15
"email": "joshyboy2@example.com",
_15
"first_name": "Joshy",
_15
"last_name": "Groban",
_15
"routing_number": "091000019"
_15
}
_15
}'

Attempt to Create Another with the Same Account/Routing


_15
curl -L 'https://int-data.moneydesktop.com/micro_deposits' \
_15
-H 'Accept: application/vnd.mx.nexus.v1+json' \
_15
-H 'MD-SESSION-TOKEN: de2uS4jEwSYN7W0eoF_ZiLJQ7rtQaDbA9NkCZr_U4gujctbMw_WZYz7u6q3NMDlTYYCSSR7O3ec1fOP2wArN0g' \
_15
-H 'Content-Type: application/json' \
_15
-d '{
_15
"micro_deposit": {
_15
"account_name": "My Test Account",
_15
"account_number": "123412623",
_15
"account_type_name": "checking",
_15
"email": "joshyboy2@example.com",
_15
"first_name": "Joshy",
_15
"last_name": "Groban",
_15
"routing_number": "091000019"
_15
}
_15
}'

Expected Error Response


_10
{
_10
"error": {
_10
"code": 4223,
_10
"message": "A MicroDeposit (MIC-12345abc-1731-4b4f-9da9-40a89d5f9152) with the same combination of routing and account number already exists.",
_10
"status": "unprocessable_entity"
_10
}
_10
}

Throttling Errors

To produce a throttling error, use the following steps:

  1. For a single user, create three valid microdeposits.
  2. Attempt to create a fourth microdeposit no later than three days from when the first microdeposit was created. The expected response should be an error with the message "Create too many created within acceptable window."

To test that new microdeposits can be made after the three-day window, you can either:

  • Wait three days
  • Delete one of the three microdeposits

_10
{
_10
"error": {
_10
"code": 4229,
_10
"message": "Create too many created within acceptable window",
_10
"status": "unprocessable_entity"
_10
}
_10
}

Lifecycle Testing

ACH Errors

In a real-world scenario, a microdeposit won't immediately return an ACH error. ACH errors occur only when deposits are attempted, and deposits can take several hours or several days to arrive.

When producing ACH errors for testing purposes, microdeposits immediately change from a status of INITIATED to ERRORED. In the real world, a microdeposit will transition from INITIATED to REQUESTED and then to ERRORED.

ACH errors R01 through R26 can be triggered by using special test values for the first_name field: testACHErrorA through testACHErrorZ.

Create microdeposit with testACHError


_18
Create microdeposit with testACHError
_18
_18
curl -L 'https://int-data.moneydesktop.com/micro_deposits' \
_18
-H 'Accept: application/vnd.mx.nexus.v1+json' \
_18
-H 'MD-SESSION-TOKEN: de2uS4jEwSYN7W0eoF_ZiLJQ7rtQaDbA9NkCZr_U4gujctbMw_WZYz7u6q3NMDlTYYCSSR7O3ec1fOP2wArN0g' \
_18
-H 'Content-Type: application/json' \
_18
-d '{
_18
"micro_deposit": {
_18
"account_name": "My Test Account",
_18
"account_number": "12345678",
_18
"account_type_name": "checking",
_18
"email": "joshyboy2@example.com",
_18
"first_name": "testACHError",
_18
"last_name": "Groban",
_18
"routing_number": "091000019"
_18
}
_18
}
_18
'

Response


_21
{
_21
"micro_deposit": {
_21
"account_name": "My Test Account",
_21
"account_number": "12345678",
_21
"account_type": 1,
_21
"account_type_name": "CHECKING",
_21
"created_at": "2023-08-30T17:57:48+00:00",
_21
"email": "joshyboy2@example.com",
_21
"error_code": null,
_21
"error_message": null,
_21
"first_name": "testACHError",
_21
"guid": "MIC-12345abc-1731-4b4f-9da9-40a89d5f9152",
_21
"institution_name": null,
_21
"last_name": "Groban",
_21
"routing_number": "091000019",
_21
"status": 0,
_21
"status_name": "INITIATED",
_21
"updated_at": "2023-08-30T17:57:48+00:00",
_21
"verified_at": null
_21
}
_21
}

Check the Microdeposit Status


_10
curl -L 'https://int-data.moneydesktop.com/micro_deposits/MIC-12345abc-1731-4b4f-9da9-40a89d5f9152' \
_10
-H 'Accept: application/vnd.mx.nexus.v1+json' \
_10
-H 'MD-SESSION-TOKEN: de2uS4jEwSYN7W0eoF_ZiLJQ7rtQaDbA9NkCZr_U4gujctbMw_WZYz7u6q3NMDlTYYCSSR7O3ec1fOP2wArN0g'

Response ERROED status


_21
{
_21
"micro_deposit": {
_21
"account_name": "My Test Account",
_21
"account_number": "12345678",
_21
"account_type": 1,
_21
"account_type_name": "CHECKING",
_21
"created_at": "2023-08-30T18:01:42+00:00",
_21
"email": "joshyboy2@example.com",
_21
"error_code": "R01",
_21
"error_message": "Insufficient Funds",
_21
"first_name": "testACHError",
_21
"guid": "MIC-12345abc-1731-4b4f-9da9-40a89d5f9152",
_21
"institution_name": null,
_21
"last_name": "Groban",
_21
"routing_number": "091000019",
_21
"status": 4,
_21
"status_name": "ERRORED",
_21
"updated_at": "2023-08-30T18:01:44+00:00",
_21
"verified_at": null
_21
}
_21
}

To test specific ACH error codes:

  1. Create a microdeposit using testACHError (or any other valid test name for a given error) as the first_name. The initial response will look like a normal, valid microdeposit.
  2. Check the status of the microdeposit. The ACH error_code and error_message can now be seen, and the status is now ERRORED. Note that specific ACH errors can be tested by adding a letter to the first_name value.

Invalid Verification Value Error

Note that "invalid" verification values aren't the same as "incorrect" values.

Using non-numeric or blank verification values will trigger validation errors.

To test an invalid verification error:

  1. Create a valid microdeposit using a special account number. Account numbers that begin with 3333 will automatically transition from REQUESTED to DEPOSITED 2 minutes after creating the microdeposit.
  2. Once 2 minutes have passed, check the microdeposit to ensure that the status is now DEPOSITED.
  3. Attempt to verify the microdeposit using invalid deposit amounts. You should see an error message describing the invalid verification amounts.

Create Microdeposit with Special Account Number


_15
curl -L 'https://int-data.moneydesktop.com/micro_deposits' \
_15
-H 'Accept: application/vnd.mx.nexus.v1+json' \
_15
-H 'MD-SESSION-TOKEN: de2uS4jEwSYN7W0eoF_ZiLJQ7rtQaDbA9NkCZr_U4gujctbMw_WZYz7u6q3NMDlTYYCSSR7O3ec1fOP2wArN0g' \
_15
-H 'Content-Type: application/json' \
_15
-d '{
_15
"micro_deposit": {
_15
"account_name": "My Test Account",
_15
"account_number": "333312623",
_15
"account_type_name": "checking",
_15
"email": "joshyboy2@example.com",
_15
"first_name": "Joshy",
_15
"last_name": "Groban",
_15
"routing_number": "091000019"
_15
}
_15
}'

Response


_21
{
_21
"micro_deposit": {
_21
"account_name": "My Test Account",
_21
"account_number": "333312623",
_21
"account_type": 1,
_21
"account_type_name": "CHECKING",
_21
"created_at": "2023-08-30T19:19:18+00:00",
_21
"email": "joshyboy2@example.com",
_21
"error_code": null,
_21
"error_message": null,
_21
"first_name": "Joshy",
_21
"guid": "MIC-12345abc-1731-4b4f-9da9-40a89d5f9152",
_21
"institution_name": null,
_21
"last_name": "Groban",
_21
"routing_number": "091000019",
_21
"status": 0,
_21
"status_name": "INITIATED",
_21
"updated_at": "2023-08-30T19:19:18+00:00",
_21
"verified_at": null
_21
}
_21
}

Check the Status


_10
curl -L 'https://int-data.moneydesktop.com/micro_deposits/MIC-12345abc-1731-4b4f-9da9-40a89d5f9152' \
_10
-H 'Accept: application/vnd.mx.nexus.v1+json' \
_10
-H 'MD-SESSION-TOKEN: de2uS4jEwSYN7W0eoF_ZiLJQ7rtQaDbA9NkCZr_U4gujctbMw_WZYz7u6q3NMDlTYYCSSR7O3ec1fOP2wArN0g'

Response with DEPOSITED Status


_21
{
_21
"micro_deposit": {
_21
"account_type": 1,
_21
"account_type_name": "CHECKING",
_21
"account_name": "My Test Account",
_21
"account_number": "333312623",
_21
"created_at": "2023-08-30T19:19:18+00:00",
_21
"email": "joshyboy2@example.com",
_21
"error_code": null,
_21
"error_message": null,
_21
"first_name": "Joshy",
_21
"guid": "MIC-12345abc-1731-4b4f-9da9-40a89d5f9152",
_21
"institution_name": null,
_21
"last_name": "Groban",
_21
"routing_number": "091000019",
_21
"status": 2,
_21
"status_name": "DEPOSITED",
_21
"updated_at": "2023-08-30T19:22:49+00:00",
_21
"verified_at": null
_21
}
_21
}

Verify with Invalid Amounts


_10
curl -L -X PUT 'https://int-data.moneydesktop.com/micro_deposits/MIC-12345abc-1731-4b4f-9da9-40a89d5f9152' \
_10
-H 'MD-SESSION-TOKEN: application/vnd.mx.nexus.v1+json' \
_10
-H 'Accept: de2uS4jEwSYN7W0eoF_ZiLJQ7rtQaDbA9NkCZr_U4gujctbMw_WZYz7u6q3NMDlTYYCSSR7O3ec1fOP2wArN0g' \
_10
-H 'Content-Type: application/json' \
_10
-d '{
_10
"micro_deposit": {
_10
"deposit_amount_1": "invalid1",
_10
"deposit_amount_2": "o.o1"
_10
}
_10
}'

Error Response


_10
{
_10
"error": {
_10
"code": 4225,
_10
"message": "Invalid deposit amount",
_10
"status": "unprocessable_entity"
_10
}
_10
}

Incorrect Verification Value Error

Note that "incorrect" verification values aren't the same as "invalid" values.

Incorrect verification values will trigger a microdeposit verification error.

End users are allowed three attempts to enter the correct verification amounts. On the third failed attempt, the microdeposit will move to a PREVENTED status, and is considered complete.

Note that PREVENTED indicates a legitimate failure for the end user to verify their account. A PREVENTED status doesn't indicate a problem with the verification process.

To test an incorrect verification value error:

  1. Create a valid microdeposit using a special account number. Account numbers that begin with 3333 will automatically transition from REQUESTED to DEPOSITED 2 minutes after creating the microdeposit.
  2. Wait at least 2 minutes, then check the status to ensure that the status is now DEPOSITED.
  3. Now that the microdeposit is ready to verify, use 0.02 for both values.
  4. Check the status of the microdeposit. It should now be DENIED.

Create Microdeposit with Special Account Number


_15
curl -L 'https://int-data.moneydesktop.com/micro_deposits' \
_15
-H 'Accept: application/vnd.mx.nexus.v1+json' \
_15
-H 'MD-SESSION-TOKEN: de2uS4jEwSYN7W0eoF_ZiLJQ7rtQaDbA9NkCZr_U4gujctbMw_WZYz7u6q3NMDlTYYCSSR7O3ec1fOP2wArN0g' \
_15
-H 'Content-Type: application/json' \
_15
-d '{
_15
"micro_deposit": {
_15
"account_name": "My Test Account",
_15
"account_number": "333312623",
_15
"account_type_name": "checking",
_15
"email": "joshyboy2@example.com",
_15
"first_name": "Joshy",
_15
"last_name": "Groban",
_15
"routing_number": "091000019"
_15
}
_15
}'

Response


_21
{
_21
"micro_deposit": {
_21
"account_name": "My Test Account",
_21
"account_number": "333312623",
_21
"account_type": 1,
_21
"account_type_name": "CHECKING",
_21
"created_at": "2023-08-30T19:27:16+00:00",
_21
"email": "joshyboy2@example.com",
_21
"error_code": null,
_21
"error_message": null,
_21
"first_name": "Joshy",
_21
"guid": "MIC-12345abc-1731-4b4f-9da9-40a89d5f9152",
_21
"institution_name": null,
_21
"last_name": "Groban",
_21
"routing_number": "091000019",
_21
"status": 1,
_21
"status_name": "REQUESTED",
_21
"updated_at": "2023-08-30T19:27:18+00:00",
_21
"verified_at": null
_21
}
_21
}

Check the Status after 2 Minutes


_10
curl -L 'https://int-data.moneydesktop.com/micro_deposits/MIC-12345abc-1731-4b4f-9da9-40a89d5f9152' \
_10
-H 'Accept: application/vnd.mx.nexus.v1+json' \
_10
-H 'MD-SESSION-TOKEN: de2uS4jEwSYN7W0eoF_ZiLJQ7rtQaDbA9NkCZr_U4gujctbMw_WZYz7u6q3NMDlTYYCSSR7O3ec1fOP2wArN0g'

Response with DEPOSITED status


_21
{
_21
"micro_deposit": {
_21
"account_name": "My Test Account",
_21
"account_number": "333312623",
_21
"account_type": 1,
_21
"account_type_name": "CHECKING",
_21
"created_at": "2023-08-30T19:27:18+00:00",
_21
"email": "joshyboy2@example.com",
_21
"error_code": null,
_21
"error_message": null,
_21
"first_name": "Joshy",
_21
"guid": "MIC-12345abc-1731-4b4f-9da9-40a89d5f9152",
_21
"institution_name": null,
_21
"last_name": "Groban",
_21
"routing_number": "091000019",
_21
"status": 2,
_21
"status_name": "DEPOSITED",
_21
"updated_at": "2023-08-30T19:29:49+00:00",
_21
"verified_at": null
_21
}
_21
}

Verify with with Values 0.02


_10
curl -L -X PUT 'https://int-data.moneydesktop.com/micro_deposits/MIC-12345abc-1731-4b4f-9da9-40a89d5f9152/verify' \
_10
-H 'MD-SESSION-TOKEN: de2uS4jEwSYN7W0eoF_ZiLJQ7rtQaDbA9NkCZr_U4gujctbMw_WZYz7u6q3NMDlTYYCSSR7O3ec1fOP2wArN0g' \
_10
-H 'Accept: application/vnd.mx.nexus.v1+json' \
_10
-H 'Content-Type: application/json' \
_10
-d '{
_10
"micro_deposit": {
_10
"deposit_amount_1": 0.02,
_10
"deposit_amount_2": 0.02
_10
}
_10
}'

Check the Microdeposit Status


_10
curl -L 'https://int-data.moneydesktop.com/micro_deposits/MIC-12345abc-1731-4b4f-9da9-40a89d5f9152' \
_10
-H 'Accept: application/vnd.mx.nexus.v1+json' \
_10
-H 'MD-SESSION-TOKEN: de2uS4jEwSYN7W0eoF_ZiLJQ7rtQaDbA9NkCZr_U4gujctbMw_WZYz7u6q3NMDlTYYCSSR7O3ec1fOP2wArN0g'

Response with DENIED Status


_21
{
_21
"micro_deposit": {
_21
"account_name": "1",
_21
"account_number": "333312623",
_21
"account_type": 1,
_21
"account_type_name": "CHECKING",
_21
"created_at": "2023-08-30T23:17:18+00:00",
_21
"email": "joshyboy2@example.com",
_21
"error_code": null,
_21
"error_message": "Wrong deposit amount(s).",
_21
"first_name": "Joshy",
_21
"guid": "MIC-12345abc-1731-4b4f-9da9-40a89d5f9152",
_21
"institution_name": null,
_21
"last_name": "Groban",
_21
"routing_number": "091000019",
_21
"status": 5,
_21
"status_name": "DENIED",
_21
"updated_at": "2023-08-30T23:20:53+00:00",
_21
"verified_at": null
_21
}
_21
}

Early Verification Error

To test an early verification error:

  1. Create a valid microdeposit.
  2. Attempt to verify the microdeposit using any deposit amounts. An error indicating that it's too early to verify should be present in the response.

Create a Microdeposit


_36
curl -L 'https://int-data.moneydesktop.com/micro_deposits' \
_36
-H 'Accept: application/vnd.mx.nexus.v1+json' \
_36
-H 'MD-SESSION-TOKEN: de2uS4jEwSYN7W0eoF_ZiLJQ7rtQaDbA9NkCZr_U4gujctbMw_WZYz7u6q3NMDlTYYCSSR7O3ec1fOP2wArN0g' \
_36
-H 'Content-Type: application/json' \
_36
-d '{
_36
"micro_deposit": {
_36
"account_name": "My Test Account",
_36
"account_number": "123412623",
_36
"account_type_name": "checking",
_36
"email": "joshyboy2@example.com",
_36
"first_name": "Joshy",
_36
"last_name": "Groban",
_36
"routing_number": "091000019"
_36
}
_36
}'
_36
{
_36
"micro_deposit": {
_36
"account_name": "My Test Account",
_36
"account_number": "123412623",
_36
"account_type": 1,
_36
"account_type_name": "CHECKING",
_36
"created_at": "2023-08-30T19:33:06+00:00",
_36
"email": "joshyboy2@example.com",
_36
"error_code": null,
_36
"error_message": null,
_36
"first_name": "Joshy",
_36
"guid": "MIC-12345abc-1731-4b4f-9da9-40a89d5f9152",
_36
"institution_name": null,
_36
"last_name": "Groban",
_36
"routing_number": "091000019",
_36
"status": 0,
_36
"status_name": "INITIATED",
_36
"updated_at": "2023-08-30T19:33:06+00:00",
_36
"verified_at": null
_36
}
_36
}

Verify Using Any Amounts


_10
curl -L -X PUT 'https://int-data.moneydesktop.com/micro_deposits/MIC-12345abc-1731-4b4f-9da9-40a89d5f9152/verify' \
_10
-H 'MD-SESSION-TOKEN: de2uS4jEwSYN7W0eoF_ZiLJQ7rtQaDbA9NkCZr_U4gujctbMw_WZYz7u6q3NMDlTYYCSSR7O3ec1fOP2wArN0g' \
_10
-H 'Accept: application/vnd.mx.nexus.v1+json' \
_10
-H 'Content-Type: application/json' \
_10
-d '{
_10
"micro_deposit": {
_10
"deposit_amount_1": 0.09,
_10
"deposit_amount_2": 0.09
_10
}
_10
}'

Error Response


_10
{
_10
"error": {
_10
"code": 4226,
_10
"message": "MicroDeposit is not ready for verification",
_10
"status": "unprocessable_entity"
_10
}
_10
}

Verifying Multiple Times Error

To test a multiple verification error:

  1. Create a valid microdeposit using any special 3333xxx account number.
  2. Wait at least 2 minutes.
  3. Check the microdeposit status.
  4. Once the status shows as DEPOSITED:
    • Verify the microdeposit using 0.09 for both deposit amounts. This simulates a successful verification.
  5. Attempt to verify again.
    • The response should indicate that the microdeposit couldn't be verified again.

Create Microdeposit with Special Account Number


_15
curl -L 'https://int-data.moneydesktop.com/micro_deposits' \
_15
-H 'Accept: application/vnd.mx.nexus.v1+json' \
_15
-H 'MD-SESSION-TOKEN: de2uS4jEwSYN7W0eoF_ZiLJQ7rtQaDbA9NkCZr_U4gujctbMw_WZYz7u6q3NMDlTYYCSSR7O3ec1fOP2wArN0g' \
_15
-H 'Content-Type: application/json' \
_15
-d '{
_15
"micro_deposit": {
_15
"account_name": "My Test Account",
_15
"account_number": "333312623",
_15
"account_type_name": "checking",
_15
"email": "joshyboy2@example.com",
_15
"first_name": "Joshy",
_15
"last_name": "Groban",
_15
"routing_number": "091000019"
_15
}
_15
}'

Response


_21
{
_21
"micro_deposit": {
_21
"account_name": "My Test Account",
_21
"account_number": "333312623",
_21
"account_type": 1,
_21
"account_type_name": "CHECKING",
_21
"created_at": "2023-08-30T19:33:06+00:00",
_21
"email": "joshyboy2@example.com",
_21
"error_code": null,
_21
"error_message": null,
_21
"first_name": "Joshy",
_21
"guid": "MIC-12345abc-1731-4b4f-9da9-40a89d5f9152",
_21
"institution_name": null,
_21
"last_name": "Groban",
_21
"routing_number": "091000019",
_21
"status": 0,
_21
"status_name": "INITIATED",
_21
"updated_at": "2023-08-30T19:33:06+00:00",
_21
"verified_at": null
_21
}
_21
}

Check the Status after 2 Minutes


_10
curl -L 'https://int-data.moneydesktop.com/micro_deposits/MIC-12345abc-1731-4b4f-9da9-40a89d5f9152' \
_10
-H 'Accept: application/vnd.mx.nexus.v1+json' \
_10
-H 'MD-SESSION-TOKEN: de2uS4jEwSYN7W0eoF_ZiLJQ7rtQaDbA9NkCZr_U4gujctbMw_WZYz7u6q3NMDlTYYCSSR7O3ec1fOP2wArN0g'

Response with DEPOSITED Status


_33
{
_33
"micro_deposit": {
_33
"account_type": 1,
_33
"account_type_name": "CHECKING",
_33
"account_name": "My Test Account",
_33
"account_number": "123412623",
_33
"created_at": "2023-08-30T19:33:06+00:00",
_33
"email": "joshyboy2@example.com",
_33
"error_code": null,
_33
"error_message": null,
_33
"first_name": "Joshy",
_33
"guid": "MIC-12345abc-1731-4b4f-9da9-40a89d5f9152",
_33
"institution_name": null,
_33
"last_name": "Groban",
_33
"routing_number": "091000019",
_33
"status": 2,
_33
"status_name": "DEPOSITED",
_33
"updated_at": "2023-08-30T19:37:45+00:00",
_33
"verified_at": null
_33
}
_33
}
_33
_33
_33
curl -L -X PUT 'https://int-data.moneydesktop.com/micro_deposits/MIC-12345abc-1731-4b4f-9da9-40a89d5f9152/verify' \
_33
-H 'MD-SESSION-TOKEN: de2uS4jEwSYN7W0eoF_ZiLJQ7rtQaDbA9NkCZr_U4gujctbMw_WZYz7u6q3NMDlTYYCSSR7O3ec1fOP2wArN0g' \
_33
-H 'Accept: application/vnd.mx.nexus.v1+json' \
_33
-H 'Content-Type: application/json' \
_33
-d '{
_33
"micro_deposit": {
_33
"deposit_amount_1": 0.09,
_33
"deposit_amount_2": 0.09
_33
}
_33
}'

Attempt to Verify Again with Amounts 0.09


_10
curl -L -X PUT 'https://int-data.moneydesktop.com/micro_deposits/MIC-12345abc-1731-4b4f-9da9-40a89d5f9152/verify' \
_10
-H 'MD-SESSION-TOKEN: de2uS4jEwSYN7W0eoF_ZiLJQ7rtQaDbA9NkCZr_U4gujctbMw_WZYz7u6q3NMDlTYYCSSR7O3ec1fOP2wArN0g' \
_10
-H 'Accept: application/vnd.mx.nexus.v1+json' \
_10
-H 'Content-Type: application/json' \
_10
-d '{
_10
"micro_deposit": {
_10
"deposit_amount_1": 0.09,
_10
"deposit_amount_2": 0.09
_10
}
_10
}'

Error Response


_10
{
_10
"error": {
_10
"code": 4227,
_10
"message": "MicroDeposit is already verified",
_10
"status": "unprocessable_entity"
_10
}
_10
}