---
title: "Create deposit order"
method: POST
path: "/v0/deposit-orders/"
tags: ["Deposit orders"]
---

# Create deposit order

`POST /v0/deposit-orders/`

## Request

- Base URL: `https://distributor-api.spiko.io`
- URL: `https://distributor-api.spiko.io/v0/deposit-orders/`
- Auth: HTTP basic
- TypeScript: <https://skmtc.dev/spiko/apis/spiko-distributor-api/docs/v0/deposit-orders/post.ts> (a function with typed inputs; its response is checked against the schema)

**Create a new deposit order for an investor with the specified parameters.**

- Return order details, including wire instructions to fund the deposit.
- A deposit in a currency other than the share class currency is funded through the investor's virtual IBAN on the share class of the same fund denominated in that currency (a `SAFOd` deposit in `EUR` is wired to the `eurSAFOd` virtual IBAN). The account must hold an active line on that share class; otherwise the request fails with `NoDepositAccountInCurrencyError` (422) and no order is created.
- Set `sendDepositInstructions` to email the subscription form for this order to your distributor contact address.
- `sendDepositInstructions` has no effect when authenticating with an investor JWT. Use [the subscription form endpoint](#tag/Deposit-orders/operation/depositOrders.getSubscriptionForm) to retrieve the same document, with any authentication method.

> **Distribute-with-Spiko's-license distributors** cannot place this order from their backend. The investor must place it directly from the browser with a short-lived [Investor JWT](/developers/distributor_api/technical_guides/investor_jwt), targeting the investor-scoped path **`POST /v0/investor/deposit-orders/`** (identical payload and response, but authenticated with the investor JWT as bearer token instead of your API credentials).

## Request body

- object
  - `investorId` string, uuid, required: a Universally Unique Identifier
  - `amount` NonNegativeAmount, required
    - `value` string, required: a string representation of a non-negative decimal number e.g. "10000", "0.00" or "3420.92"
    - `currency` 'EUR' | 'USD' | 'GBP' | 'CHF' | 'JPY' | 'SGD' | 'SEK' | 'NOK' | 'DKK' | 'PLN' | 'HUF' | 'CZK', required: a currency code among "EUR", "USD", "GBP", "CHF", "JPY", "SGD", "SEK", "NOK", "DKK", "PLN", "HUF", "CZK"
  - `shareClassId` string, uuid, required: a Universally Unique Identifier
  - `accountId` string, uuid: a Universally Unique Identifier
  - `sendDepositInstructions` union
    - object
      - `value` false, required
    - object
      - `value` true, required
      - `locale` 'en' | 'es' | 'fr' | 'it' | 'de' | 'nl', required: The language of the user

## Response `200`

Success

- object
  - `id` string, uuid, required: a Universally Unique Identifier
  - `investorId` string, uuid, required: a Universally Unique Identifier
  - `accountId` string, uuid, required: a Universally Unique Identifier
  - `shareClassId` string, uuid, required: a Universally Unique Identifier
  - `amount` NonNegativeAmount, required
    - `value` string, required: a string representation of a non-negative decimal number e.g. "10000", "0.00" or "3420.92"
    - `currency` 'EUR' | 'USD' | 'GBP' | 'CHF' | 'JPY' | 'SGD' | 'SEK' | 'NOK' | 'DKK' | 'PLN' | 'HUF' | 'CZK', required: a currency code among "EUR", "USD", "GBP", "CHF", "JPY", "SGD", "SEK", "NOK", "DKK", "PLN", "HUF", "CZK"
  - `wireInstructions` object, required
    - `reference` string, required: a wire reference
    - `iban` string, required: a valid IBAN (International Bank Account Number)
    - `intermediaryBic` string, nullable, required: A valid BIC (Bank Identifier Code)
    - `bic` string, required: A valid BIC (Bank Identifier Code)
    - `currency` 'EUR' | 'USD' | 'GBP' | 'CHF' | 'JPY' | 'SGD' | 'SEK' | 'NOK' | 'DKK' | 'PLN' | 'HUF' | 'CZK', required: a currency code among "EUR", "USD", "GBP", "CHF", "JPY", "SGD", "SEK", "NOK", "DKK", "PLN", "HUF", "CZK"
  - `status` 'created', required
  - `createdAt` string, required

## Other responses

- `400`: Application Error | The request did not match the expected schema
- `401`: Authentication failed. Two bodies are possible: the schema below when the API rejects the credentials, and `{ "error": { "code", "status", "request", "message" } }` when the API gateway rejects them first. Only the former carries a `_tag`.
- `403`: Forbidden
- `404`: NotFound
- `409`: Investor token has already been used
- `422`: Investor is not ready for order creation yet | The account has no virtual IBAN in the requested currency to receive this deposit
- `503`: The investor is undergoing a scheduled upgrade, access is temporarily paused to ensure data safety.

---

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