---
title: "Create deposit method"
method: POST
path: "/v1/deposit_methods"
tags: ["Deposit Methods"]
---

# Create deposit method

`POST /v1/deposit_methods`

Create a deposit method. A deposit method is assigned to a merchant and is where the merchant's funds for their payment activity will be deposited to.

This endpoint requires Rainforest approval. Platforms that meet all [requirements](https://docs.rainforestpay.com/docs/send-sensitive-data-via-api#requirements) and are approved by Rainforest can send the full bank account numbers to Rainforest via a direct API integration.

## Parameters

- `#/paths/~1v1~1deposits/get/parameters/0` — unresolved $ref

## Request body

- object
  - `deposit_method_config_id` string, required — The unique deposit method config identifier. A deposit method must be configured prior to this request. See [create a deposit method config](https://docs.rainforestpay.com/reference/create_deposit_method_config) if a deposit method configuration has not been created yet. Prefix is "dmc" in production and "sbx_dmc" in sandbox.
  - `method_type` 'ACH' | 'PLAID_ACH', required — The type of deposit method.
  - `ach` object, required — ACH deposit method details.
    - `account_number` string — The bank account number.
    - `routing_number` string — The 9-digit routing number.
    - `account_type` 'CHECKING' | 'SAVINGS' — The account type. Defaulted to CHECKING if omitted.
    - `account_holder_type` 'PERSONAL' | 'BUSINESS' — The account holder type.
  - `billing_contact` object — Billing contact details.
    - `name` string — First and last name.
    - `address_line_1` string — First line of street address.
    - `address_line_2` string — Second line of street address, if required.
    - `city` string — City for address.
    - `state` string — State, province, or region for address.
    - `postal_code` string — Postal code or ZIP code for address.
    - `country` string — 2-digit country code. Find country codes here: https://www.iso.org/obp
    - `email` string — Email address.
    - `phone` string — Phone number, including extension.

## Response `200`

OK

- object
  - `status` Status — unresolved $ref
  - `data` object
    - `deposit_method_id` string — The unique deposit method identifier. Prefix is "dmt" in production and "sbx_dmt" in sandbox.
    - `deposit_method_config_id` DepositMethodConfigId — unresolved $ref
    - `status` 'CREATED' | 'ACTIVE' | 'REPLACED' — The status of the deposit method.
    - `fingerprint` string — The unique identifier of a deposit method across all platform merchants.
    - `method_type` MethodType — unresolved $ref
    - `ach` Ach — unresolved $ref
    - `plaid_ach` object — ACH deposit method details from Plaid.
      - `account_number_last_4` AccountNumberLast4 — unresolved $ref
      - `routing_number` RoutingNumber — unresolved $ref
      - `bank_name` BankName — unresolved $ref
      - `account_type` AccountType — unresolved $ref
      - `account_holder_type` AccountHolderType — unresolved $ref
    - `billing_contact` BillingContact — unresolved $ref
    - `metadata` object — Valid JSON key-value object specified by the platform to store additional information. Keys are queryable in list endpoints. Do not use the metadata field to store sensitive or confidential data. Metadata must be less than 8 KB in size.
    - `replaces_deposit_method_id` string, nullable — The unique identifier for the deposit method that was replaced by this deposit method. Prefix is "dmt" in production and "sbx_dmt" in sandbox. This value will be `null` if this deposit method does not replace another deposit method.
    - `replaced_by_deposit_method_id` string, nullable — The unique identifier for the deposit method that replaced this deposit method. Prefix is "dmt" in production and "sbx_dmt" in sandbox. This value will be `null` if the deposit method has not been replaced.
    - `replaced_at` string, date-time — Date and time deposit method was replaced in UTC RFC 3339 format.
    - `replaced_reason_code` 'C01' | 'C02' | 'C03' | 'C04' | 'C05' | 'C06' | 'C07' | 'C08' | 'C09' | 'C10' | 'C11' | 'C12', nullable — The code explaining the reason the deposit method was replaced. This value will be `null` if the deposit method has not been replaced.
    - `replaced_reason_desc` string, nullable — The description explaining the reason the deposit method was replaced. This will be a human-readable value that may be presented to the end user. This value will be `null` if the deposit method has not been replaced.
    - `created_at` string, date-time — Date and time deposit method was created at in UTC RFC 3339 format.
    - `updated_at` string, date-time — Date and time deposit method was last updated at in UTC RFC 3339 format.
  - `errors` Errors — unresolved $ref

## Other responses

- `400` — unresolved $ref
- `401` — unresolved $ref
- `403` — unresolved $ref
- `5XX` — unresolved $ref

---

[API](https://skmtc.dev/rainforestpay/apis/authentication.md) · [All operations](https://skmtc.dev/rainforestpay/apis/authentication/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/rainforestpay/authentication/revisions/529a0dab0f90/schema)
