{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["admonition","ApiLink"]},"type":"markdown"},"seo":{"title":"Microdeposit verification | Finix Documentation","description":"Verify buyer bank account ownership with a single $0.01 microdeposit before accepting ACH Direct Debits. Learn about the verification flow, attempt limits, and how to test using the sandbox.","siteUrl":"https://docs.finix.com/","llmstxt":{"hide":false,"sections":[{"title":"Getting Started","includeFiles":["guides/getting-started/**/*.md"],"excludeFiles":[]},{"title":"Online Payments","includeFiles":["guides/online-payments/**/*.md"],"excludeFiles":["guides/online-payments/payment-features/fsa-hsa-non-healthcare-mcc.md"]},{"title":"In-Person Payments","includeFiles":["guides/in-person-payments/**/*.md"],"excludeFiles":[]},{"title":"Subscriptions","includeFiles":["guides/subscriptions/**/*.md"],"excludeFiles":[]},{"title":"After the Payment","includeFiles":["guides/after-the-payment/**/*.md"],"excludeFiles":[]},{"title":"Managing Operations","includeFiles":["guides/managing-operations/**/*.md"],"excludeFiles":[]},{"title":"Platform Payments","includeFiles":["guides/platform-payments/**/*.md"],"excludeFiles":[]},{"title":"Payouts","includeFiles":["guides/payouts/**/*.md"],"excludeFiles":[]},{"title":"Low-Code / No-Code","includeFiles":["low-code-no-code/**/*.md"],"excludeFiles":[]},{"title":"Developers","includeFiles":["additional-resources/developers/**/*.md"],"excludeFiles":[]},{"title":"Plugins","includeFiles":["additional-resources/plugins/**/*.md"],"excludeFiles":[]},{"title":"Industry Considerations","includeFiles":["guides/industry-considerations/**/*.md"],"excludeFiles":[]},{"title":"Regional Considerations","includeFiles":["guides/regional-considerations/**/*.md"],"excludeFiles":[]},{"title":"Release Notes","includeFiles":["release-notes/**/*.md"],"excludeFiles":[]}],"excludeFiles":[]},"image":"/assets/guides-online-payments-bank-payments-microdeposit-verification.cc69576a8f25f55ed0151e85e9c45cd9d68d8dae043e14c5d9755cc01d859c8c.04fe652d.png"},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"microdeposit-verification","__idx":0},"children":["Microdeposit verification"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Verify that buyers own their bank accounts before you debit them."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Bank accounts must be verified before they can be used for payments. Verification confirms that the person adding a bank account is its owner, which protects you from fraud and reduces ACH returns. A sale created with a Payment Instrument that requires Microdeposit verification will fail."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Finix supports two ways to verify a bank account:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/guides/online-payments/bank-payments/plaid-integration"},"children":["Plaid"]}," (recommended):"]}," Buyers log in to their bank, and Plaid verifies account existence and ownership instantly. Bank accounts created with Plaid are verified and ready to use immediately."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Microdeposits:"]}," When buyers enter their bank account details manually, Finix sends a single $0.01 deposit carrying a unique verification code. The buyer confirms ownership by finding the code on their bank statement and submitting it."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"how-it-works","__idx":1},"children":["How it works"]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info","name":"Plaid bank accounts skip Microdeposit verification"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Bank accounts created with ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/guides/online-payments/bank-payments/plaid-integration"},"children":["Plaid"]}," are already verified and do not require Microdeposit verification."]}]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["After creating a Payment Instrument, the following fields are set: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["enabled: false"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["disabled_code: MICRODEPOSIT_VERIFICATION_REQUIRED"]},". The Payment Instrument cannot be used for payments until it is verified."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Finix sends a single $0.01 deposit to the bank account. The deposit's statement descriptor carries a unique verification code that begins with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["FNX"]}," (for example, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["FNX7Q2M"]},")."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The buyer finds the code on their bank statement and submits it as the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["verification_code"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["When the submitted code matches, Finix enables the Payment Instrument. The Payment Instrument is now ready to use for payments."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The buyer is granted 3 tries to submit the correct code and must complete verification within 30 days or the Microdeposit verification expires."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The following bank account ",{"$$mdtype":"Tag","name":"ApiLink","attributes":{"href":"/api/payment-instruments"},"children":["Payment Instrument"]}," resource is pending Microdeposit verification:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","data-title":"Bank account Payment Instrument - Pending Microdeposit verification","data-highlight":"{8-10,14}","header":{"title":"Bank account Payment Instrument - Pending Microdeposit verification","controls":{"copy":{}}},"source":"{\n  \"id\" : \"PIg9NYD5RnZ9C5ACDw1w8zoS\",\n  \"created_at\" : \"2026-09-09T18:27:49.33Z\",\n  \"updated_at\" : \"2026-09-09T18:27:49.33Z\",\n  \"application\" : \"APc9vhYcPsRuTSpKD9KpMtPe\",\n  \"created_via\" : \"API\",\n  \"currency\" : \"USD\",\n  \"disabled_code\" : \"MICRODEPOSIT_VERIFICATION_REQUIRED\",\n  \"disabled_message\" : \"Bank account is pending microdeposit verification.\",\n  \"enabled\" : false,\n  \"fingerprint\" : \"FPRuMHQDQbdKZsiRYc9ZHzPVQ\",\n  \"identity\" : \"IDmj1yA97RS4rMjiQgvK3Vio\",\n  \"instrument_type\" : \"BANK_ACCOUNT\",\n  \"microdeposit\" : \"microdeposit_9944AfJkuMjmkcd4W6MmFK\",\n  \"microdeposit_verification_url\" : \"https://link.sandbox-payment-form.com/ltLgBI\",\n  \"account_type\" : \"BUSINESS_CHECKING\",\n  \"bank_account_validation_check\" : \"INCONCLUSIVE\",\n  \"bank_code\" : \"122105278\",\n  \"country\" : \"USA\",\n  \"institution_number\" : null,\n  \"masked_account_number\" : \"XXXXX5702\",\n  \"name\" : \"Smith & Associates Consulting\",\n  \"transit_number\" : null,\n  \"tags\" : { },\n  \"third_party\" : null,\n  \"third_party_token\" : null,\n  \"type\" : \"BANK_ACCOUNT\",\n  \"_links\" : {\n    \"self\" : {\n      \"href\" : \"https://finix.sandbox-payments-api.com/payment_instruments/PIg9NYD5RnZ9C5ACDw1w8zoS\"\n    },\n    \"authorizations\" : {\n      \"href\" : \"https://finix.sandbox-payments-api.com/payment_instruments/PIg9NYD5RnZ9C5ACDw1w8zoS/authorizations\"\n    },\n    \"transfers\" : {\n      \"href\" : \"https://finix.sandbox-payments-api.com/payment_instruments/PIg9NYD5RnZ9C5ACDw1w8zoS/transfers\"\n    },\n    \"verifications\" : {\n      \"href\" : \"https://finix.sandbox-payments-api.com/payment_instruments/PIg9NYD5RnZ9C5ACDw1w8zoS/verifications\"\n    },\n    \"application\" : {\n      \"href\" : \"https://finix.sandbox-payments-api.com/applications/APc9vhYcPsRuTSpKD9KpMtPe\"\n    },\n    \"identity\" : {\n      \"href\" : \"https://finix.sandbox-payments-api.com/identities/IDmj1yA97RS4rMjiQgvK3Vio\"\n    }\n  }\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["microdeposit"]}," field contains the ID of the ",{"$$mdtype":"Tag","name":"ApiLink","attributes":{"href":"/api/microdeposits"},"children":["Microdeposit"]}," resource."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"verifying-the-microdeposit","__idx":2},"children":["Verifying the Microdeposit"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To verify the Microdeposit, send a ",{"$$mdtype":"Tag","name":"ApiLink","attributes":{"href":"/api/payment-instruments/updatepaymentinstrument"},"children":["PUT /payment_instruments/{id}"]}," request with the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["verification_code"]}," from the buyer's bank statement and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["verify_microdeposits"]}," set to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]},":"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"shell","data-title":"Verify Microdeposits request","header":{"title":"Verify Microdeposits request","controls":{"copy":{}}},"source":"curl https://finix.sandbox-payments-api.com/payment_instruments/PIkfiTDWYhQ4VbtQkC1U1ceJ \\\n  -X PUT \\\n  -H \"Content-Type: application/json\" \\\n  -u USsRhsHYZGBPnQw8CByJyEQW:8a14c2f9-d94b-4c72-8f5c-a62908e5b30e \\\n  -d '{\n      \"verification_code\": \"FNX7Q2M\",\n      \"verify_microdeposits\": true\n  }'\n","lang":"shell"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If the code matches, the Payment Instrument is enabled and is ready for payments:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","data-title":"Payment Instrument - verified","data-highlight":"{8-10}","header":{"title":"Payment Instrument - verified","controls":{"copy":{}}},"source":"{\n  \"id\" : \"PIkfiTDWYhQ4VbtQkC1U1ceJ\",\n  \"created_at\" : \"2024-06-21T04:09:03.77Z\",\n  \"updated_at\" : \"2024-06-21T04:09:03.77Z\",\n  \"application\" : \"APgPDQrLD52TYvqazjHJJchM\",\n  \"created_via\" : \"API\",\n  \"currency\" : \"USD\",\n  \"disabled_code\" : null,\n  \"disabled_message\" : null,\n  \"enabled\" : true,\n  \"fingerprint\" : \"FPRxpMNPZbZqVQfcHzRUJnzkR\",\n  \"identity\" : \"IDpYDM7J9n57q849o9E9yNrG\",\n  \"instrument_type\" : \"BANK_ACCOUNT\",\n  \"account_type\" : \"BUSINESS_CHECKING\",\n  \"bank_account_validation_check\" : \"NOT_ATTEMPTED\",\n  \"bank_code\" : \"122105278\",\n  \"country\" : \"USA\",\n  \"institution_number\" : null,\n  \"masked_account_number\" : \"XXXXXX0019\",\n  \"name\" : \"Smith & Associates Consulting\",\n  \"transit_number\" : null,\n  \"tags\" : { },\n  \"third_party\" : null,\n  \"third_party_token\" : null,\n  \"type\" : \"BANK_ACCOUNT\",\n  \"_links\" : {\n    \"self\" : {\n      \"href\" : \"https://finix.sandbox-payments-api.com/payment_instruments/PIkfiTDWYhQ4VbtQkC1U1ceJ\"\n    },\n    \"authorizations\" : {\n      \"href\" : \"https://finix.sandbox-payments-api.com/payment_instruments/PIkfiTDWYhQ4VbtQkC1U1ceJ/authorizations\"\n    },\n    \"transfers\" : {\n      \"href\" : \"https://finix.sandbox-payments-api.com/payment_instruments/PIkfiTDWYhQ4VbtQkC1U1ceJ/transfers\"\n    },\n    \"verifications\" : {\n      \"href\" : \"https://finix.sandbox-payments-api.com/payment_instruments/PIkfiTDWYhQ4VbtQkC1U1ceJ/verifications\"\n    },\n    \"application\" : {\n      \"href\" : \"https://finix.sandbox-payments-api.com/applications/APgPDQrLD52TYvqazjHJJchM\"\n    },\n    \"identity\" : {\n      \"href\" : \"https://finix.sandbox-payments-api.com/identities/IDpYDM7J9n57q849o9E9yNrG\"\n    }\n  }\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"unsuccessful-microdeposit-verification-errors","__idx":3},"children":["Unsuccessful Microdeposit verification errors"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Unsuccessful Microdeposit verification requests return a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["422"]}," status with a message explaining the failure."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","data-title":"Example error response","header":{"title":"Example error response","controls":{"copy":{}}},"source":"{\n  \"total\": 1,\n  \"_embedded\": {\n    \"errors\": [\n      {\n        \"logref\": \"d4ee0b6cdb67686f0c1ec0780e5b4296\",\n        \"message\": \"The microdeposit verification code provided is incorrect. 2 tries remaining.\",\n        \"code\": \"INCORRECT_MICRODEPOSIT_VERIFICATION_CODE\",\n        \"_links\": {\n          \"self\": {\n            \"href\": \"https://finix.sandbox-payments-api.com/payment_instruments/PIkfiTDWYhQ4VbtQkC1U1ceJ\"\n          }\n        }\n      }\n    ]\n  }\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["One of the following errors are possible:"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Scenario"},"children":["Scenario"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Error Code"},"children":["Error Code"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Message"},"children":["Message"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The code is incorrect and there are tries remaining."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["INCORRECT_MICRODEPOSIT_VERIFICATION_CODE"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The microdeposit verification code provided is incorrect. 2 tries remaining."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The code is incorrect and there are no tries remaining."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["MICRODEPOSIT_VERIFICATION_ATTEMPTS_EXCEEDED"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Microdeposit verification has failed for this bank account. Please create a new bank account to try again."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The 30-day verification window has passed."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["MICRODEPOSIT_VERIFICATION_EXPIRED"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The microdeposit verification window for this bank account has passed. Please create a new bank account to verify it again."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The bank account is already verified."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["UNPROCESSABLE_ENTITY"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["This payment instrument does not have a pending microdeposit verification."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The Payment Instrument has no pending microdeposit."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["UNPROCESSABLE_ENTITY"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["This payment instrument does not have a pending microdeposit verification."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["verification_code"]}," is missing."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["INVALID_FIELD"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["A microdeposit verification code is required."]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A bank account pending Microdeposit verification can only be enabled by completing verification. Requests that set ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["enabled: true"]}," will also return a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["422"]}," status code."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"payment-instrument-disabled-code-states","__idx":4},"children":["Payment Instrument disabled code states"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The Payment Instrument's ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["disabled_code"]}," explains the different verification states."]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Disabled Code"},"children":["Disabled Code"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Next Step"},"children":["Next Step"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["MICRODEPOSIT_VERIFICATION_REQUIRED"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The bank account is pending microdeposit verification."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Submit the correct verification code to enable the bank account."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["INVALID_BANK_ACCOUNT_ROUTING_NUMBER"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Bank account routing number was invalid."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Create a new bank account to start a new verification."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["MICRODEPOSIT_VERIFICATION_ATTEMPTS_EXCEEDED"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Microdeposit verification has failed for this bank account. Please create a new bank account to try again."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Create a new bank account to start a new verification."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["MICRODEPOSIT_VERIFICATION_EXPIRED"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The microdeposit verification window for this bank account has passed. Please create a new bank account to verify it again."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Create a new bank account to start a new verification."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["MICRODEPOSIT_RETURNED"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["A microdeposit for this bank account was returned and the account has been disabled."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Create a new bank account to start a new verification."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["TOTAL_MICRODEPOSIT_ATTEMPTS_EXCEEDED_ACCOUNT_LOCKED"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["This bank account has reached the maximum number of microdeposit verification attempts and cannot be re-verified. This account is now locked."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Please use a different bank account or payment method."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"attempt-limits","__idx":5},"children":["Attempt limits"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["3 code submissions per Microdeposit:"]}," After 3 incorrect submissions, the verification fails and a new bank account must be created."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["30 days per Microdeposit:"]}," A Microdeposit that is not verified within 30 days expires."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["3 failed verifications per bank account:"]}," After 3 failed verifications for the same bank account, the bank account is permanently blocked with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["disabled_code: TOTAL_MICRODEPOSIT_ATTEMPTS_EXCEEDED_ACCOUNT_LOCKED"]}," and cannot be verified again."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"retrieving-microdeposits","__idx":6},"children":["Retrieving Microdeposits"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Retrieve a Microdeposit by sending a ",{"$$mdtype":"Tag","name":"ApiLink","attributes":{"href":"/api/microdeposits/getmicrodeposit"},"children":["GET /microdeposits/{id}"]}," request to check its state, remaining tries, and expiration:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","data-title":"Microdeposit","data-highlight":"{7,10,12}","header":{"title":"Microdeposit","controls":{"copy":{}}},"source":"{\n  \"id\" : \"microdeposit_4ek6YXRKJ1fqvs5E4oHNcY\",\n  \"created_at\" : \"2026-09-08T04:32:02.061298Z\",\n  \"updated_at\" : \"2026-09-08T04:32:02.316872Z\",\n  \"application\" : \"APc9vhYcPsRuTSpKD9KpMtPe\",\n  \"currency\" : \"USD\",\n  \"expires_at\" : \"2026-10-08T04:32:02.061306Z\",\n  \"instrument\" : \"PItziwjPnE77zu1oWRKTzTdk\",\n  \"rail\" : \"RTP\",\n  \"state\" : \"PENDING\",\n  \"verification_attempts\" : 0,\n  \"verification_attempts_remaining\" : 3,\n  \"_links\" : {\n    \"self\" : {\n      \"href\" : \"https://finix.sandbox-payments-api.com/microdeposits/microdeposit_4ek6YXRKJ1fqvs5E4oHNcY\"\n    },\n    \"instrument\" : {\n      \"href\" : \"https://finix.sandbox-payments-api.com/payment_instruments/PItziwjPnE77zu1oWRKTzTdk\"\n    }\n  }\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Field"},"children":["Field"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["verification_attempts_remaining"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The number of Microdeposit verification attempts left."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["expires_at"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["When the 30-day verification window expires."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["state"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The state of the Microdeposit. Starts as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PENDING"]},". Moves to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["VERIFIED"]}," when the buyer submits the correct code, or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["FAILED"]}," when all attempts are exhausted or the 30-day window expires."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["verification_attempts"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The number of verification attempts made."]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To check why the Microdeposit verification failed (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["state: FAILED"]},"):"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Save the Payment Instrument ID from ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["_links.instrument"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Send a ",{"$$mdtype":"Tag","name":"ApiLink","attributes":{"href":"/api/payment-instruments"},"children":["GET /pament_instruments/{id}"]}," request, providing the ID in the path."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["View the ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"#payment-instrument-disabled-code-states"},"children":["Payment Instrument disabled_code and disabled_message"]},"."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"testing-in-sandbox","__idx":7},"children":["Testing in Sandbox"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To test Microdeposit verification in Sandbox, see ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/additional-resources/developers/implementation-and-testing/testing-your-integration#testing-microdeposit-verifications"},"children":["Testing microdeposit verifications"]},"."]}]},"headings":[{"value":"Microdeposit verification","id":"microdeposit-verification","depth":1},{"value":"How it works","id":"how-it-works","depth":2},{"value":"Verifying the Microdeposit","id":"verifying-the-microdeposit","depth":2},{"value":"Unsuccessful Microdeposit verification errors","id":"unsuccessful-microdeposit-verification-errors","depth":3},{"value":"Payment Instrument disabled code states","id":"payment-instrument-disabled-code-states","depth":2},{"value":"Attempt limits","id":"attempt-limits","depth":3},{"value":"Retrieving Microdeposits","id":"retrieving-microdeposits","depth":2},{"value":"Testing in Sandbox","id":"testing-in-sandbox","depth":2}],"frontmatter":{"seo":{"title":"Microdeposit verification | Finix Documentation","description":"Verify buyer bank account ownership with a single $0.01 microdeposit before accepting ACH Direct Debits. Learn about the verification flow, attempt limits, and how to test using the sandbox.","image":"/assets/guides-online-payments-bank-payments-microdeposit-verification.cc69576a8f25f55ed0151e85e9c45cd9d68d8dae043e14c5d9755cc01d859c8c.04fe652d.png"},"keywords":{"includes":["microdeposit","micro-deposit","microdeposit verification","bank account verification","descriptor code"],"excludes":["EFT","Plaid"]}},"lastModified":"2026-10-21T16:11:49.201Z","pagePropGetterError":{"message":"","name":""}},"slug":"/guides/online-payments/bank-payments/microdeposit-verification","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}