Spiko Deposit orders API
The Deposit orders API from Spiko — 8 operation(s) for deposit orders.
The Deposit orders API from Spiko — 8 operation(s) for deposit orders.
openapi: 3.1.0
info:
title: Spiko Distributor Account transactions Deposit orders API
version: v0
description: The Distributor API allows third parties like SaaS providers, fintechs or Web3 companies to distribute the Spiko Funds to their customers. With this API, you can programmatically manage investors, send subscription and redemption orders, and access real-time portfolio information.
servers:
- url: https://distributor-api.spiko.io
description: Production Server
- url: https://distributor-api.preprod.spiko.io
description: Pre-production Server
security: []
tags:
- name: Deposit orders
paths:
/v0/deposit-orders/:
post:
tags:
- Deposit orders
operationId: depositOrders.createDepositOrder
parameters: []
security:
- basicAuth: []
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
required:
- id
- investorId
- accountId
- shareClassId
- amount
- wireInstructions
- status
- createdAt
properties:
id:
type: string
description: a Universally Unique Identifier
format: uuid
investorId:
type: string
description: a Universally Unique Identifier
format: uuid
accountId:
type: string
description: a Universally Unique Identifier
format: uuid
shareClassId:
type: string
description: a Universally Unique Identifier
format: uuid
amount:
$ref: '#/components/schemas/NonNegativeAmount'
wireInstructions:
type: object
required:
- reference
- iban
- intermediaryBic
- bic
- currency
properties:
reference:
type: string
description: a wire reference
title: WireReference
pattern: ^[0-9A-Z]{5,15}$
iban:
title: IBAN
type: string
description: a valid IBAN (International Bank Account Number)
intermediaryBic:
anyOf:
- title: BIC
type: string
description: A valid BIC (Bank Identifier Code)
- type: 'null'
bic:
title: BIC
type: string
description: A valid BIC (Bank Identifier Code)
currency:
type: string
enum:
- EUR
- USD
- GBP
- CHF
- JPY
- SGD
title: Currency code
identifier: CurrencyCode
description: a currency code among "EUR", "USD", "GBP", "CHF", "JPY", "SGD"
additionalProperties: false
status:
type: string
enum:
- created
createdAt:
$ref: '#/components/schemas/Date'
additionalProperties: false
'400':
description: The request did not match the expected schema
content:
application/json:
schema:
anyOf:
- $ref: '#/components/schemas/HttpApiDecodeError'
- $ref: '#/components/schemas/ApplicationError'
'401':
description: Unauthorized
content:
application/json:
schema:
anyOf:
- $ref: '#/components/schemas/Unauthorized'
- $ref: '#/components/schemas/DistributorAuthenticationError'
'403':
description: Forbidden
content:
application/json:
schema:
anyOf:
- $ref: '#/components/schemas/ForbiddenError'
- $ref: '#/components/schemas/Forbidden'
'404':
description: NotFound
'409':
description: Investor token has already been used
content:
application/json:
schema:
$ref: '#/components/schemas/DuplicateInvestorTokenError'
'422':
description: Investor is not ready for order creation yet
content:
application/json:
schema:
$ref: '#/components/schemas/InvestorNotReadyError'
description: '
**Create a new deposit order for an investor with the specified parameters.**
- Return order details, including wire instructions to fund the deposit.
> **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).
'
summary: Create deposit order
requestBody:
content:
application/json:
schema:
type: object
required:
- investorId
- amount
- shareClassId
properties:
investorId:
type: string
description: a Universally Unique Identifier
format: uuid
amount:
$ref: '#/components/schemas/NonNegativeAmount'
shareClassId:
type: string
description: a Universally Unique Identifier
format: uuid
accountId:
anyOf:
- type: string
description: a Universally Unique Identifier
format: uuid
- type: 'null'
sendDepositInstructions:
anyOf:
- type: object
required:
- value
properties:
value:
type: boolean
enum:
- false
additionalProperties: false
- type: object
required:
- value
- locale
properties:
value:
type: boolean
enum:
- true
locale:
$ref: '#/components/schemas/LocaleLanguage'
additionalProperties: false
additionalProperties: false
required: true
get:
tags:
- Deposit orders
operationId: depositOrders.getDepositOrders
parameters:
- name: investorId
in: query
schema:
type: string
description: a Universally Unique Identifier
format: uuid
required: true
description: a Universally Unique Identifier
- name: shareClassId
in: query
schema:
type: string
description: a Universally Unique Identifier
format: uuid
required: false
description: a Universally Unique Identifier
- name: page
in: query
schema:
type: string
title: Page number
description: 'defaults to "1" if not provided '
required: false
description: 'defaults to "1" if not provided '
- name: limit
in: query
schema:
type: string
title: Number of items per page
description: defaults to "50" if not provided
required: false
description: defaults to "50" if not provided
security:
- basicAuth: []
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
anyOf:
- type: object
required:
- id
- investorId
- accountId
- shareClassId
- amount
- createdAt
- settlement
- status
properties:
id:
type: string
description: a Universally Unique Identifier
format: uuid
investorId:
type: string
description: a Universally Unique Identifier
format: uuid
accountId:
type: string
description: a Universally Unique Identifier
format: uuid
shareClassId:
type: string
description: a Universally Unique Identifier
format: uuid
amount:
$ref: '#/components/schemas/NonNegativeAmount'
createdAt:
$ref: '#/components/schemas/Date'
settlement:
anyOf:
- type: object
required:
- amount
- shares
- appliedNAV
properties:
amount:
$ref: '#/components/schemas/NonNegativeAmount'
shares:
$ref: '#/components/schemas/BigDecimal'
appliedNAV:
type: object
required:
- day
- amount
properties:
day:
type: string
title: Day
description: a day in ISO format "YYYY-MM-DD"
amount:
$ref: '#/components/schemas/NonNegativeAmount'
additionalProperties: false
additionalProperties: false
- type: 'null'
status:
type: string
enum:
- created
additionalProperties: false
- type: object
required:
- id
- investorId
- accountId
- shareClassId
- amount
- createdAt
- settlement
- status
properties:
id:
type: string
description: a Universally Unique Identifier
format: uuid
investorId:
type: string
description: a Universally Unique Identifier
format: uuid
accountId:
type: string
description: a Universally Unique Identifier
format: uuid
shareClassId:
type: string
description: a Universally Unique Identifier
format: uuid
amount:
$ref: '#/components/schemas/NonNegativeAmount'
createdAt:
$ref: '#/components/schemas/Date'
settlement:
anyOf:
- type: object
required:
- amount
- shares
- appliedNAV
properties:
amount:
$ref: '#/components/schemas/NonNegativeAmount'
shares:
$ref: '#/components/schemas/BigDecimal'
appliedNAV:
type: object
required:
- day
- amount
properties:
day:
type: string
title: Day
description: a day in ISO format "YYYY-MM-DD"
amount:
$ref: '#/components/schemas/NonNegativeAmount'
additionalProperties: false
additionalProperties: false
- type: 'null'
status:
type: string
enum:
- pending-collection
additionalProperties: false
- type: object
required:
- id
- investorId
- accountId
- shareClassId
- amount
- createdAt
- settlement
- status
- fundedAt
properties:
id:
type: string
description: a Universally Unique Identifier
format: uuid
investorId:
type: string
description: a Universally Unique Identifier
format: uuid
accountId:
type: string
description: a Universally Unique Identifier
format: uuid
shareClassId:
type: string
description: a Universally Unique Identifier
format: uuid
amount:
$ref: '#/components/schemas/NonNegativeAmount'
createdAt:
$ref: '#/components/schemas/Date'
settlement:
anyOf:
- type: object
required:
- amount
- shares
- appliedNAV
properties:
amount:
$ref: '#/components/schemas/NonNegativeAmount'
shares:
$ref: '#/components/schemas/BigDecimal'
appliedNAV:
type: object
required:
- day
- amount
properties:
day:
type: string
title: Day
description: a day in ISO format "YYYY-MM-DD"
amount:
$ref: '#/components/schemas/NonNegativeAmount'
additionalProperties: false
additionalProperties: false
- type: 'null'
status:
type: string
enum:
- funded
fundedAt:
$ref: '#/components/schemas/Date'
additionalProperties: false
- type: object
required:
- id
- investorId
- accountId
- shareClassId
- amount
- createdAt
- settlement
- status
- fundedAt
- executedAt
properties:
id:
type: string
description: a Universally Unique Identifier
format: uuid
investorId:
type: string
description: a Universally Unique Identifier
format: uuid
accountId:
type: string
description: a Universally Unique Identifier
format: uuid
shareClassId:
type: string
description: a Universally Unique Identifier
format: uuid
amount:
$ref: '#/components/schemas/NonNegativeAmount'
createdAt:
$ref: '#/components/schemas/Date'
settlement:
anyOf:
- type: object
required:
- amount
- shares
- appliedNAV
properties:
amount:
$ref: '#/components/schemas/NonNegativeAmount'
shares:
$ref: '#/components/schemas/BigDecimal'
appliedNAV:
type: object
required:
- day
- amount
properties:
day:
type: string
title: Day
description: a day in ISO format "YYYY-MM-DD"
amount:
$ref: '#/components/schemas/NonNegativeAmount'
additionalProperties: false
additionalProperties: false
- type: 'null'
status:
type: string
enum:
- executed
fundedAt:
$ref: '#/components/schemas/Date'
executedAt:
$ref: '#/components/schemas/Date'
additionalProperties: false
- type: object
required:
- id
- investorId
- accountId
- shareClassId
- amount
- createdAt
- settlement
- status
- canceledAt
properties:
id:
type: string
description: a Universally Unique Identifier
format: uuid
investorId:
type: string
description: a Universally Unique Identifier
format: uuid
accountId:
type: string
description: a Universally Unique Identifier
format: uuid
shareClassId:
type: string
description: a Universally Unique Identifier
format: uuid
amount:
$ref: '#/components/schemas/NonNegativeAmount'
createdAt:
$ref: '#/components/schemas/Date'
settlement:
anyOf:
- type: object
required:
- amount
- shares
- appliedNAV
properties:
amount:
$ref: '#/components/schemas/NonNegativeAmount'
shares:
$ref: '#/components/schemas/BigDecimal'
appliedNAV:
type: object
required:
- day
- amount
properties:
day:
type: string
title: Day
description: a day in ISO format "YYYY-MM-DD"
amount:
$ref: '#/components/schemas/NonNegativeAmount'
additionalProperties: false
additionalProperties: false
- type: 'null'
status:
type: string
enum:
- canceled
canceledAt:
$ref: '#/components/schemas/Date'
additionalProperties: false
'400':
description: The request did not match the expected schema
content:
application/json:
schema:
$ref: '#/components/schemas/HttpApiDecodeError'
'401':
description: Unauthorized
content:
application/json:
schema:
anyOf:
- $ref: '#/components/schemas/Unauthorized'
- $ref: '#/components/schemas/DistributorAuthenticationError'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ForbiddenError'
'404':
description: NotFound
'500':
description: InternalServerError
description: "\n**Retrieve a paginated list of the deposit orders made by an investor.**\n\n> ⚠️ **For displaying an account's activity, prefer the [account transaction history endpoint](#tag/Account-transactions/operation/accountTransactions.getAccountTransactions).** It returns deposits, withdrawals, transfers and yield accruals as a single time-ordered stream, with cursor pagination, so you don't need to call multiple per-order-type endpoints and reconcile their results.\n\n- Orders are sorted by creation date (newest first).\n- When `shareClassId` is specified, only deposit orders for that share class are returned.\n- Pagination parameters (`page` & `limit`) are optional and default to `page = 1` and `limit = 50`.\n "
summary: Get deposit orders
/v0/deposit-orders/{id}:
get:
tags:
- Deposit orders
operationId: depositOrders.getDepositOrder
parameters:
- name: id
in: path
schema:
type: string
description: a Universally Unique Identifier
format: uuid
required: true
description: a Universally Unique Identifier
security:
- basicAuth: []
responses:
'200':
description: Success
content:
application/json:
schema:
anyOf:
- type: object
required:
- id
- investorId
- accountId
- shareClassId
- amount
- createdAt
- settlement
- status
properties:
id:
type: string
description: a Universally Unique Identifier
format: uuid
investorId:
type: string
description: a Universally Unique Identifier
format: uuid
accountId:
type: string
description: a Universally Unique Identifier
format: uuid
shareClassId:
type: string
description: a Universally Unique Identifier
format: uuid
amount:
$ref: '#/components/schemas/NonNegativeAmount'
createdAt:
$ref: '#/components/schemas/Date'
settlement:
anyOf:
- type: object
required:
- amount
- shares
- appliedNAV
properties:
amount:
$ref: '#/components/schemas/NonNegativeAmount'
shares:
$ref: '#/components/schemas/BigDecimal'
appliedNAV:
type: object
required:
- day
- amount
properties:
day:
type: string
title: Day
description: a day in ISO format "YYYY-MM-DD"
amount:
$ref: '#/components/schemas/NonNegativeAmount'
additionalProperties: false
additionalProperties: false
- type: 'null'
status:
type: string
enum:
- created
additionalProperties: false
- type: object
required:
- id
- investorId
- accountId
- shareClassId
- amount
- createdAt
- settlement
- status
properties:
id:
type: string
description: a Universally Unique Identifier
format: uuid
investorId:
type: string
description: a Universally Unique Identifier
format: uuid
accountId:
type: string
description: a Universally Unique Identifier
format: uuid
shareClassId:
type: string
description: a Universally Unique Identifier
format: uuid
amount:
$ref: '#/components/schemas/NonNegativeAmount'
createdAt:
$ref: '#/components/schemas/Date'
settlement:
anyOf:
- type: object
required:
- amount
- shares
- appliedNAV
properties:
amount:
$ref: '#/components/schemas/NonNegativeAmount'
shares:
$ref: '#/components/schemas/BigDecimal'
appliedNAV:
type: object
required:
- day
- amount
properties:
day:
type: string
title: Day
description: a day in ISO format "YYYY-MM-DD"
amount:
$ref: '#/components/schemas/NonNegativeAmount'
additionalProperties: false
additionalProperties: false
- type: 'null'
status:
type: string
enum:
- pending-collection
additionalProperties: false
- type: object
required:
- id
- investorId
- accountId
- shareClassId
- amount
- createdAt
- settlement
- status
- fundedAt
properties:
id:
type: string
description: a Universally Unique Identifier
format: uuid
investorId:
type: string
description: a Universally Unique Identifier
format: uuid
accountId:
type: string
description: a Universally Unique Identifier
format: uuid
shareClassId:
type: string
description: a Universally Unique Identifier
format: uuid
amount:
$ref: '#/components/schemas/NonNegativeAmount'
createdAt:
$ref: '#/components/schemas/Date'
settlement:
anyOf:
- type: object
required:
- amount
- shares
- appliedNAV
properties:
amount:
$ref: '#/components/schemas/NonNegativeAmount'
shares:
$ref: '#/components/schemas/BigDecimal'
appliedNAV:
type: object
required:
- day
- amount
properties:
day:
type: string
title: Day
description: a day in ISO format "YYYY-MM-DD"
amount:
$ref: '#/components/schemas/NonNegativeAmount'
additionalProperties: false
additionalProperties: false
- type: 'null'
status:
type: string
enum:
- funded
fundedAt:
$ref: '#/components/schemas/Date'
additionalProperties: false
- type: object
required:
- id
- investorId
- accountId
- shareClassId
- amount
- createdAt
- settlement
- status
- fundedAt
# --- truncated at 32 KB (93 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/spiko/refs/heads/main/openapi/spiko-deposit-orders-api-openapi.yml