---
title: "Accept an additional deposit wallet for asynchronous provisioning. A new request returns PENDING with an empty address and a stable deposit_instruction_id. Retrieve that ID (or the same idempotency key) until READY, or consume deposit_instruction.ready. An idempotent replay returns the current state and may already be READY."
method: POST
path: "/v1/customers/{customer_id}/deposit_instruction"
tags: ["crate::connectivity::controller::openapi::deposit_instructions"]
---

# Accept an additional deposit wallet for asynchronous provisioning. A new request returns PENDING with an empty address and a stable deposit_instruction_id. Retrieve that ID (or the same idempotency key) until READY, or consume deposit_instruction.ready. An idempotent replay returns the current state and may already be READY.

`POST /v1/customers/{customer_id}/deposit_instruction`

## Request

- Base URL: `https://api.1money.com`
- URL: `https://api.1money.com/v1/customers/{customer_id}/deposit_instruction`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/1money/apis/1money-openapi/docs/v1/customers/:customer_id/deposit_instruction/post.ts> (a function with typed inputs; its response is checked against the schema)

## Path parameters

- `customer_id` string, required

## Headers

- `Idempotency-Key` string, required

## Request body

- CreateDepositInstructionRequest
  - `network` string, required: Blockchain network identifier for a deposit wallet. Allowed values: `EVM`, `ETHEREUM`, `POLYGON`, `BNBCHAIN`, `AVALANCHE`, `BASE`, `ARBITRUM`, `SOLANA`, `TRON`, `BITCOIN`. `EVM` is a virtual group for supported EVM-compatible networks.
  - `nickname` string, nullable: Optional nickname for the deposit address

## Response `200`

Deposit instruction already exists (idempotent replay)

- DepositInstructionResponse: A deposit instruction representing a crypto deposit wallet.
  - `deposit_instruction_id` string, required: Stable local deposit-wallet identifier, available before custody provisioning completes
  - `network` string, required: Blockchain network identifier for a deposit wallet. Allowed values: `EVM`, `ETHEREUM`, `POLYGON`, `BNBCHAIN`, `AVALANCHE`, `BASE`, `ARBITRUM`, `SOLANA`, `TRON`, `BITCOIN`. `EVM` is a virtual group for supported EVM-compatible networks.
  - `address` string, required: On-chain deposit address. Populated only while status is `READY`; empty while status is `PENDING`.
  - `is_default` boolean, required: Whether this is the default deposit wallet for the network. Each customer has exactly one default wallet per network, created automatically during onboarding; additional wallets are non-default.
  - `nickname` string, required: Human-readable label. Empty string when not set.
  - `status` 'PENDING' | 'READY' | 'FAILED', required
  - `created_at` string, required

## Other responses

- `201`: Deposit instruction accepted; status is PENDING while wallet provisioning is incomplete
- `400`: Bad Request
- `401`: Unauthorized
- `405`: Method Not Allowed
- `409`: Idempotency key already used with different parameters, or nickname already in use
- `422`: Unprocessable Entity - Invalid enum value (e.g., unsupported network or asset name)
- `500`: Internal Server Error

## Changes

- **2026-11-03** `d213edbaccb6`: 2 info
  - api tag `crate::connectivity::controller::openapi::deposit_instructions` added
  - api tag `Deposit Instructions` removed

[Operation history](https://skmtc.dev/1money/apis/1money-openapi/changes/v1/customers/:customer_id/deposit_instruction/post.md)

---

[API](https://skmtc.dev/1money/apis/1money-openapi.md) - [All operations](https://skmtc.dev/1money/apis/1money-openapi/llms.txt) - [OpenAPI document](https://skmtc.dev/1money/apis/1money-openapi/revisions/d213edbaccb6?raw)
