---
title: "Create deposit"
method: POST
path: "/earn/v1/deposits"
tags: ["Portfolio Transfers"]
---

# Create deposit

`POST /earn/v1/deposits`

## Request

- Base URL: `https://api.sandbox.bvnk.com`
- URL: `https://api.sandbox.bvnk.com/earn/v1/deposits`
- Auth: API key in header `Authorization`
- TypeScript: <https://skmtc.dev/bvnk/apis/bvnk-api-endpoints/docs/earn/v1/deposits/post.ts> (a function with typed inputs; its response is checked against the schema)

Allocates funds from a same-currency wallet into a portfolio so they start earning rewards. The source wallet must hold sufficient balance to cover the deposit amount.

## Headers

- `Idempotency-Key` string, required

## Request body

- EarnDepositRequest
  - `portfolioId` string, uuid, required: UUID of the portfolio to deposit funds into.
  - `reference` string, required: Unique reference identifier for the deposit transaction.
  - `originator` EarnCounterparty, required: A wallet and amount on one side of a portfolio transfer.
    - `walletId` string, required: Unique identifier of the wallet involved in the transaction.
    - `amount` number, required: Amount involved in the transaction. Must be greater than 0.
  - `counterparty` EarnCounterparty, required: A wallet and amount on one side of a portfolio transfer.
    - `walletId` string, required: Unique identifier of the wallet involved in the transaction.
    - `amount` number, required: Amount involved in the transaction. Must be greater than 0.

## Response `201`

Created

- EarnDepositTransferResponse
  - `id` string, uuid: Unique identifier of the deposit operation.
  - `reference` string: Unique reference identifier for the deposit.
  - `status` 'PROCESSING' | 'COMPLETED' | 'FAILED': Status of a portfolio transfer (deposit or withdrawal).
  - `portfolioId` string, uuid: Unique identifier of the portfolio involved in the deposit.
  - `depositAmount` EarnMoney: An amount of money in a given currency.
    - `amount` number, required: The amount of money.
    - `currency` string, required: Currency code, for example USDC.
  - `originatorWalletId` string: Unique identifier of the originator wallet.
  - `balance` EarnMoney: An amount of money in a given currency.
    - `amount` number, required: The amount of money.
    - `currency` string, required: Currency code, for example USDC.
  - `createdAt` string, date-time: Timestamp when the deposit was created.
  - `updatedAt` string, date-time: Timestamp when the deposit was last updated.

## Other responses

- `401`: Unauthorized
- `403`: Forbidden. Returned when the portfolio does not belong to your account.
- `428`: Precondition Required. Returned when the Earn Rewards capability has not been enabled for your account.

## Changes

- **2026-11-06** `c386d436bf2c`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/bvnk/apis/bvnk-api-endpoints/changes/earn/v1/deposits/post.md)

---

[API](https://skmtc.dev/bvnk/apis/bvnk-api-endpoints.md) - [All operations](https://skmtc.dev/bvnk/apis/bvnk-api-endpoints/llms.txt) - [OpenAPI document](https://skmtc.dev/bvnk/apis/bvnk-api-endpoints/revisions/c386d436bf2c?raw)
