---
title: "Create or pre-initiate a microdeposit"
method: POST
path: "/users/{user_guid}/micro_deposits"
tags: ["microdeposits"]
---

# Create or pre-initiate a microdeposit

`POST /users/{user_guid}/micro_deposits`

Use this endpoint to create or pre-initiate a microdeposit. The response will include the new microdeposit record with a status of `INITIATED` or `PREINITIATED` respectively.

To pre-initiate a microdeposit, you only need to set `email` (string), `first_name` (string), and `last_name` (string) in the request body. 

Pre-initiating a microdeposit allows you to pass the end user's first name, last name, and email if this data has already been collected. If the end user selects an institution which requires the microdeposit flow, the pre-initiated `micro_deposit` will be used and the Connect Widget step that normally requests this info from the end user will be skipped. However, if the end user selects an institution which supports IAV, the pre-initiated `micro_deposit` will be deleted and IAV will be used instead. When requesting a Connect Widget URL after pre-initiating, make sure to set the `current_microdeposit_guid` to the resulting microdeposit's `guid` and set the `mode` to `verification`. If you use this enhanced flow, a `micro_deposit` should be pre-initiated for all connect sessions in verification mode. After pre-initiating a microdeposit, pass the GUID to the config as `current_microdeposit_guid` and set the `mode` to `verification` when requesting a Connect URL.  Pre-initiating a microdeposit is optional. If you choose to implement this flow, it should be used for all Connect Widget sessions in verification mode.

## Path parameters

- `user_guid` string, required

## Request body

- MicrodepositRequestBody
  - `micro_deposit` MicrodepositElements
    - `account_name` string
    - `account_number` string, required
    - `account_type` string, required
    - `email` string
    - `first_name` string
    - `last_name` string
    - `routing_number` string, required

## Response `200`

OK

- MicrodepositResponseBody
  - `micro_deposit` object[]
    - `account_name` string
    - `account_number` string, required
    - `account_type` string, required
    - `email` string
    - `first_name` string
    - `last_name` string
    - `routing_number` string, required
    - `error_message` string, nullable
    - `guid` string
    - `institution_code` string
    - `institution_name` string
    - `status` string
    - `updated_at` string
    - `verified_at` string, nullable

---

[API](https://skmtc.net/mx/apis/mx-platform-api.md) · [All operations](https://skmtc.net/mx/apis/mx-platform-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/mx/mx-platform-api/versions/b6632646ee89/schema)
