Spiko Subscription Orders (deprecated) API
The Subscription Orders (deprecated) API from Spiko — 3 operation(s) for subscription orders (deprecated).
The Subscription Orders (deprecated) API from Spiko — 3 operation(s) for subscription orders (deprecated).
openapi: 3.1.0
info:
title: Spiko Distributor Account transactions Subscription Orders (deprecated) 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: Subscription Orders (deprecated)
paths:
/subscription-orders/:
post:
tags:
- Subscription Orders (deprecated)
operationId: subscriptionOrders.createSubscriptionOrder
parameters: []
security:
- basicAuth: []
- oauth2: []
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
required:
- id
- investorId
- amount
- amountInShareClassCurrency
- sharesAmount
- accountId
- shareClassId
- wireReference
- createdAt
- executedAt
- canceledAt
- status
- shareClassAccountId
- custodialAccountId
properties:
id:
type: string
description: a Universally Unique Identifier
format: uuid
investorId:
type: string
description: a Universally Unique Identifier
format: uuid
amount:
$ref: '#/components/schemas/Amount'
amountInShareClassCurrency:
$ref: '#/components/schemas/Amount'
sharesAmount:
anyOf:
- $ref: '#/components/schemas/BigDecimal'
- type: 'null'
accountId:
type: string
description: a Universally Unique Identifier
format: uuid
shareClassId:
type: string
description: a Universally Unique Identifier
format: uuid
wireReference:
anyOf:
- type: string
description: a wire reference
title: WireReference
pattern: ^[0-9A-Z]{5,15}$
- type: 'null'
createdAt:
$ref: '#/components/schemas/Date'
executedAt:
anyOf:
- $ref: '#/components/schemas/Date'
- type: 'null'
canceledAt:
anyOf:
- $ref: '#/components/schemas/Date'
- type: 'null'
status:
type: string
enum:
- pending
- executed
- canceled
shareClassAccountId:
type: string
title: UUID
description: please now use pair `{accountId, shareClassId}` instead
deprecated: true
custodialAccountId:
type: string
title: UUID
description: please now use pair `{accountId, shareClassId}` instead
deprecated: true
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'
- $ref: '#/components/schemas/SubscriptionNotAllowedError'
'401':
description: Unauthorized
content:
application/json:
schema:
anyOf:
- $ref: '#/components/schemas/Unauthorized'
- $ref: '#/components/schemas/InvestorAuthenticationError'
'403':
description: Forbidden
'404':
description: NotFound
description: '**Deprecated - use deposit endpoints instead.** Create a new subscription order and return the order info. This subscription shall be paid via bank transfer.'
summary: Create a new subscription order
deprecated: true
requestBody:
content:
application/json:
schema:
type: object
required:
- amount
- shareClassId
- accountId
properties:
amount:
$ref: '#/components/schemas/NonNegativeAmount'
shareClassId:
type: string
description: a Universally Unique Identifier
format: uuid
accountId:
type: string
description: a Universally Unique Identifier
format: uuid
additionalProperties: false
required: true
get:
tags:
- Subscription Orders (deprecated)
operationId: subscriptionOrders.getSubscriptionOrders
parameters:
- name: investorId
in: query
schema:
type: string
description: a Universally Unique Identifier
format: uuid
required: true
description: a Universally Unique Identifier
- name: status
in: query
schema:
type: string
enum:
- pending
- executed
- canceled
required: false
security:
- basicAuth: []
- oauth2: []
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
type: object
required:
- id
- investorId
- amount
- amountInShareClassCurrency
- sharesAmount
- accountId
- shareClassId
- wireReference
- createdAt
- executedAt
- canceledAt
- status
- shareClassAccountId
- custodialAccountId
properties:
id:
type: string
description: a Universally Unique Identifier
format: uuid
investorId:
type: string
description: a Universally Unique Identifier
format: uuid
amount:
$ref: '#/components/schemas/Amount'
amountInShareClassCurrency:
$ref: '#/components/schemas/Amount'
sharesAmount:
anyOf:
- $ref: '#/components/schemas/BigDecimal'
- type: 'null'
accountId:
type: string
description: a Universally Unique Identifier
format: uuid
shareClassId:
type: string
description: a Universally Unique Identifier
format: uuid
wireReference:
anyOf:
- type: string
description: a wire reference
title: WireReference
pattern: ^[0-9A-Z]{5,15}$
- type: 'null'
createdAt:
$ref: '#/components/schemas/Date'
executedAt:
anyOf:
- $ref: '#/components/schemas/Date'
- type: 'null'
canceledAt:
anyOf:
- $ref: '#/components/schemas/Date'
- type: 'null'
status:
type: string
enum:
- pending
- executed
- canceled
shareClassAccountId:
type: string
title: UUID
description: please now use pair `{accountId, shareClassId}` instead
deprecated: true
custodialAccountId:
type: string
title: UUID
description: please now use pair `{accountId, shareClassId}` instead
deprecated: true
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/InvestorAuthenticationError'
'403':
description: Forbidden
'404':
description: NotFound
description: '
**Deprecated - use deposit endpoints instead.** Get all subscription orders for a given investor with optional status filter.
> ⚠️ **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.
'
summary: Get list of an investor's subscription orders
deprecated: true
/subscription-orders/direct-debit/:
post:
tags:
- Subscription Orders (deprecated)
operationId: subscriptionOrders.createSubscriptionOrderByDirectDebit
parameters: []
security:
- basicAuth: []
- oauth2: []
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
required:
- investorId
- amount
- shareClassId
- accountId
- bankAccountId
- status
- createdAt
- scheduledDate
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:
type: string
description: a Universally Unique Identifier
format: uuid
bankAccountId:
type: string
description: a Universally Unique Identifier
format: uuid
status:
type: string
enum:
- pending
- scheduled
- confirmed
- returned
- canceled
- failed
createdAt:
$ref: '#/components/schemas/Date'
scheduledDate:
$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/InvestorAuthenticationError'
'403':
description: Forbidden
'404':
description: NotFound
description: '**Deprecated - use deposit endpoints instead.** Create a new SEPA Direct Debit collection for an account. Only allowed for EUTBL and eurSAFO share classes, for professional investors for whom the feature has been enabled and who have signed a mandate on app.spiko.io.'
summary: Create a new subscription order via SEPA Direct Debit
deprecated: true
requestBody:
content:
application/json:
schema:
type: object
required:
- amount
- shareClassId
- accountId
- bankAccountId
properties:
amount:
$ref: '#/components/schemas/NonNegativeAmount'
shareClassId:
type: string
description: a Universally Unique Identifier
format: uuid
accountId:
type: string
description: a Universally Unique Identifier
format: uuid
bankAccountId:
type: string
description: a Universally Unique Identifier
format: uuid
additionalProperties: false
required: true
/subscription-orders/{subscriptionOrderId}:
get:
tags:
- Subscription Orders (deprecated)
operationId: subscriptionOrders.getSubscriptionOrder
parameters:
- name: subscriptionOrderId
in: path
schema:
type: string
description: a Universally Unique Identifier
format: uuid
required: true
description: a Universally Unique Identifier
security:
- basicAuth: []
- oauth2: []
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
required:
- id
- investorId
- amount
- amountInShareClassCurrency
- sharesAmount
- accountId
- shareClassId
- wireReference
- createdAt
- executedAt
- canceledAt
- status
- shareClassAccountId
- custodialAccountId
properties:
id:
type: string
description: a Universally Unique Identifier
format: uuid
investorId:
type: string
description: a Universally Unique Identifier
format: uuid
amount:
$ref: '#/components/schemas/Amount'
amountInShareClassCurrency:
$ref: '#/components/schemas/Amount'
sharesAmount:
anyOf:
- $ref: '#/components/schemas/BigDecimal'
- type: 'null'
accountId:
type: string
description: a Universally Unique Identifier
format: uuid
shareClassId:
type: string
description: a Universally Unique Identifier
format: uuid
wireReference:
anyOf:
- type: string
description: a wire reference
title: WireReference
pattern: ^[0-9A-Z]{5,15}$
- type: 'null'
createdAt:
$ref: '#/components/schemas/Date'
executedAt:
anyOf:
- $ref: '#/components/schemas/Date'
- type: 'null'
canceledAt:
anyOf:
- $ref: '#/components/schemas/Date'
- type: 'null'
status:
type: string
enum:
- pending
- executed
- canceled
shareClassAccountId:
type: string
title: UUID
description: please now use pair `{accountId, shareClassId}` instead
deprecated: true
custodialAccountId:
type: string
title: UUID
description: please now use pair `{accountId, shareClassId}` instead
deprecated: true
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/InvestorAuthenticationError'
'403':
description: Forbidden
'404':
description: NotFound
description: '**Deprecated - use deposit endpoints instead.** Get info of a specific subscription order by its ID'
summary: Get subscription order
deprecated: true
components:
schemas:
Amount:
type: object
required:
- value
- currency
properties:
value:
type: string
title: decimal number as a string
description: a string representation of a decimal number e.g. "10000", "0.00" or "-7432092.04"
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
InvestorAuthenticationError:
type: object
required:
- reason
- _tag
properties:
reason:
type: string
_tag:
type: string
enum:
- InvestorAuthenticationError
additionalProperties: false
description: Authentication Error
HttpApiDecodeError:
type: object
required:
- issues
- message
- _tag
properties:
issues:
type: array
items:
$ref: '#/components/schemas/Issue'
message:
type: string
_tag:
type: string
enum:
- HttpApiDecodeError
additionalProperties: false
description: The request did not match the expected schema
Issue:
type: object
required:
- _tag
- path
- message
properties:
_tag:
type: string
enum:
- Pointer
- Unexpected
- Missing
- Composite
- Refinement
- Transformation
- Type
- Forbidden
description: The tag identifying the type of parse issue
path:
type: array
items:
$ref: '#/components/schemas/PropertyKey'
description: The path to the property where the issue occurred
message:
type: string
description: A descriptive message explaining the issue
additionalProperties: false
description: Represents an error encountered while parsing a value to match the schema
ApplicationError:
type: object
required:
- reason
- _tag
properties:
reason:
type: string
customErrorCode:
type: string
enum:
- MissingNAV
- NonBusinessDay
- OrderInTheFuture
- InitialDepositTooLow
- InitialSubscriptionTooLow
- SubsequentDepositTooLow
- SubsequentSubscriptionTooLow
- NewWalletSignatureNotProvided
- NewWalletSignatureNotValid
- CurrencyNotSupported
- StablecoinNotSupported
- AutopilotSynchronizedToBroken
- IncomingBankTransferNotFound
- IncomingBankTransferNotReceived
- IncomingBankTransferAlreadyHandled
- IncomingBankTransferAmountMismatch
_tag:
type: string
enum:
- ApplicationError
additionalProperties: false
description: Application Error
SubscriptionNotAllowedError:
type: object
required:
- shareClassId
- shareClassSymbol
- _tag
properties:
shareClassId:
type: string
description: a Universally Unique Identifier
format: uuid
shareClassSymbol:
type: string
_tag:
type: string
enum:
- SubscriptionNotAllowedError
additionalProperties: false
description: EUR subscription orders are not allowed for this share class through the investor API, you should directly make a wire instead
Unauthorized:
$id: /schemas/void
title: Unauthorized
NonNegativeAmount:
type: object
required:
- value
- currency
properties:
value:
type: string
title: non-negative decimal number as a string
description: a string representation of a non-negative decimal number e.g. "10000", "0.00" or "3420.92"
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
title: Non-Negative Amount
BigDecimal:
type: string
description: a string to be decoded into a BigDecimal
Date:
type: string
description: a string to be decoded into a Date
PropertyKey:
anyOf:
- type: string
- type: number
- type: object
required:
- _tag
- key
properties:
_tag:
type: string
enum:
- symbol
key:
type: string
additionalProperties: false
description: an object to be decoded into a globally shared symbol
securitySchemes:
basicAuth:
type: http
scheme: basic
description: Use your API client_id as username and client_secret as password.