Spiko Distributors API

The Distributors API from Spiko — 2 operation(s) for distributors.

OpenAPI Specification

spiko-distributors-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Spiko Distributor Account transactions Distributors 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: Distributors
paths:
  /v0/distributors/me:
    get:
      tags:
      - Distributors
      operationId: distributors.getDefaultDistributor
      parameters: []
      security:
      - basicAuth: []
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                required:
                - id
                - name
                - email
                - distributionModel
                properties:
                  id:
                    type: string
                    description: a Universally Unique Identifier
                    format: uuid
                  name:
                    $ref: '#/components/schemas/NonEmptyString'
                  email:
                    $ref: '#/components/schemas/Lowercase'
                  distributionModel:
                    type: string
                    enum:
                    - spiko-license
                    - named-accounts
                    - omnibus
                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'
      description: Retrieve information about the distributor linked to the client credentials.
      summary: Get distributor info
  /v0/share-classes:
    get:
      tags:
      - Distributors
      operationId: distributors.getAllAllowedShareClasses
      parameters: []
      security:
      - basicAuth: []
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  required:
                  - id
                  - symbol
                  - fundId
                  - isin
                  - navDecimals
                  - shareDecimals
                  - currency
                  - tokens
                  - useOfIncome
                  - minimumInitialSubscription
                  - minimumSubsequentSubscription
                  - minimumRedemption
                  - subscriptionFees
                  - redemptionFees
                  - managementFees
                  - bankAccountNumber
                  - bankAccountIntermediaryBic
                  - bankAccountBic
                  - intermediaryShareClasses
                  - cashCollectionBankAccount
                  properties:
                    id:
                      type: string
                      description: a Universally Unique Identifier
                      format: uuid
                    symbol:
                      $ref: '#/components/schemas/ShareClassSymbol'
                    fundId:
                      type: string
                      description: a Universally Unique Identifier
                      format: uuid
                    isin:
                      title: Isin
                      type: string
                      description: A valid ISIN
                    navDecimals:
                      type: integer
                      description: a number between 0 and 20
                      title: between(0, 20)
                      minimum: 0
                      maximum: 20
                    shareDecimals:
                      type: integer
                      description: a number between 0 and 20
                      title: between(0, 20)
                      minimum: 0
                      maximum: 20
                    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"
                    tokens:
                      type: array
                      items:
                        anyOf:
                        - type: object
                          required:
                          - network
                          - address
                          properties:
                            network:
                              $ref: '#/components/schemas/EVMNetwork'
                            address:
                              type: string
                              title: Ethereum address
                              description: a valid Ethereum address, starting with 0x and followed by 40 hexadecimal characters e.g. "0xb794f5ea0ba39494ce839613fffba74279579268"
                          additionalProperties: false
                        - type: object
                          required:
                          - network
                          - address
                          properties:
                            network:
                              type: string
                              enum:
                              - Starknet
                              - StarknetSepolia
                            address:
                              title: StarknetAddress
                              type: string
                              description: a valid Starknet address, starting with 0x and followed by 64 hexadecimal characters e.g. "0x0000000000000000000000000000000000000000000000000000000000000000"
                          additionalProperties: false
                        - type: object
                          required:
                          - network
                          - address
                          properties:
                            network:
                              type: string
                              enum:
                              - Stellar
                              - StellarTestnet
                            address:
                              anyOf:
                              - title: StellarAccountAddress
                                type: string
                                description: a valid Stellar account address, starting with G and followed by 55 hexadecimal characters e.g. "GBYIQXBKEB655EB3WTRITS6RR5GXEP6SQRBLPREZHNFYKT7WBMTMPR3H"
                              - title: StellarContractAddress
                                type: string
                                description: a valid Stellar contract address, starting with C and followed by 55 hexadecimal characters e.g. "CCAANR7HZNOXYZD7SXS2WQLV5BAOXSRZ7V4O43IANSB355QN2RNG7WVC"
                          additionalProperties: false
                        - type: object
                          required:
                          - network
                          - address
                          properties:
                            network:
                              type: string
                              enum:
                              - Solana
                              - SolanaDevnet
                            address:
                              type: string
                              title: Solana address
                              description: a valid Solana address, consisting of 32 to 44 base58 characters
                          additionalProperties: false
                    useOfIncome:
                      type: string
                      enum:
                      - accumulating
                      - distributing
                    minimumInitialSubscription:
                      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"
                    minimumSubsequentSubscription:
                      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"
                    minimumRedemption:
                      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"
                    subscriptionFees:
                      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"
                    redemptionFees:
                      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"
                    managementFees:
                      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"
                    bankAccountNumber:
                      title: IBAN
                      type: string
                      description: a valid IBAN (International Bank Account Number)
                    bankAccountIntermediaryBic:
                      anyOf:
                      - title: BIC
                        type: string
                        description: A valid BIC (Bank Identifier Code)
                      - type: 'null'
                    bankAccountBic:
                      title: BIC
                      type: string
                      description: A valid BIC (Bank Identifier Code)
                    intermediaryShareClasses:
                      type: array
                      items:
                        type: array
                        minItems: 2
                        prefixItems:
                        - 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"
                        - type: string
                          description: a Universally Unique Identifier
                          format: uuid
                        items: false
                    cashCollectionBankAccount:
                      anyOf:
                      - anyOf:
                        - type: object
                          required:
                          - bank
                          - id
                          - details
                          properties:
                            bank:
                              type: string
                              enum:
                              - MemoBank
                            id:
                              type: string
                              description: a Universally Unique Identifier
                              format: uuid
                            details:
                              type: object
                              required:
                              - beneficiaryName
                              - bic
                              - currency
                              - accountNumber
                              - intermediaryBic
                              properties:
                                beneficiaryName:
                                  $ref: '#/components/schemas/NonEmptyString'
                                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"
                                accountNumber:
                                  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'
                              additionalProperties: false
                          additionalProperties: false
                        - type: object
                          required:
                          - bank
                          - id
                          - details
                          properties:
                            bank:
                              type: string
                              enum:
                              - BankingCircle
                            id:
                              type: string
                              description: a Universally Unique Identifier
                              format: uuid
                            details:
                              type: object
                              required:
                              - beneficiaryName
                              - bic
                              - currency
                              - accountNumber
                              - intermediaryBic
                              properties:
                                beneficiaryName:
                                  $ref: '#/components/schemas/NonEmptyString'
                                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"
                                accountNumber:
                                  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'
                              additionalProperties: false
                          additionalProperties: false
                      - type: 'null'
                  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'
      description: List share classes accessible to the authenticated distributor.
      summary: List share classes
components:
  schemas:
    EVMNetwork:
      type: string
      enum:
      - Sepolia
      - PolygonAmoy
      - BaseSepolia
      - ArbitrumSepolia
      - EtherlinkTestnet
      - Ethereum
      - Polygon
      - Base
      - Arbitrum
      - Etherlink
      description: an EVM blockchain network e.g. "Ethereum", "Polygon", "Arbitrum"
      title: EVM Network
    ForbiddenError:
      type: object
      required:
      - reason
      - _tag
      properties:
        reason:
          type: string
        customErrorCode:
          type: string
          enum:
          - AccountDoesNotBelongToInvestor
          - SessionIsNot2FA
          - InvestorDocumentLinkedToActiveBankAccount
          - AtLeastTwoAdminUsersRequired
          - InvestorNotPendingOnboarding
          - ShareClassNotAvailableForDistributor
        _tag:
          type: string
          enum:
          - ForbiddenError
      additionalProperties: false
      description: Forbidden
    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
    NonEmptyString:
      type: string
      description: a non empty string
      title: nonEmptyString
      minLength: 1
    Lowercase:
      type: string
      description: a string that will be converted to lowercase
    DistributorAuthenticationError:
      type: object
      required:
      - reason
      - _tag
      properties:
        reason:
          type: string
        _tag:
          type: string
          enum:
          - DistributorAuthenticationError
      additionalProperties: false
      description: Authentication Error
    Unauthorized:
      $id: /schemas/void
      title: Unauthorized
    ShareClassSymbol:
      type: string
      enum:
      - EUTBL
      - USTBL
      - eurUSTBL
      - SPKCC
      - eurSPKCC
      - UKTBL
      - eurUKTBL
      - SAFO
      - SAFOd
      - eurSAFO
      - eurSAFOd
      - gbpSAFO
      - chfSAFO
      title: ShareClassSymbol
    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.