Spiko Deposit orders API

The Deposit orders API from Spiko — 8 operation(s) for deposit orders.

OpenAPI Specification

spiko-deposit-orders-api-openapi.yml Raw ↑
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