Spiko Investors API

The Investors API from Spiko — 5 operation(s) for investors.

OpenAPI Specification

spiko-investors-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Spiko Distributor Account transactions Investors 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: Investors
paths:
  /v1/investors:
    post:
      tags:
      - Investors
      operationId: investors.createInvestorV1
      parameters: []
      security:
      - basicAuth: []
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                required:
                - firstName
                - lastName
                - country
                - address
                - zipCode
                - city
                - details
                - id
                - distributorId
                - createdOn
                - updatedOn
                - status
                - complianceStatus
                properties:
                  firstName:
                    type: string
                    description: a string that will be trimmed
                  lastName:
                    type: string
                    description: a string that will be trimmed
                  country:
                    $ref: '#/components/schemas/CountryCodeAlpha2'
                  address:
                    type: string
                    description: a string that will be trimmed
                  zipCode:
                    type: string
                    description: a string that will be trimmed
                  city:
                    type: string
                    description: a string that will be trimmed
                  details:
                    anyOf:
                    - type: object
                      required:
                      - type
                      - taxInformationByCountryOfResidence
                      - dateOfBirth
                      - placeOfBirth
                      - gender
                      - industry
                      properties:
                        type:
                          type: string
                          enum:
                          - individual
                        taxInformationByCountryOfResidence:
                          type: array
                          minItems: 1
                          items:
                            type: object
                            required:
                            - country
                            properties:
                              country:
                                $ref: '#/components/schemas/CountryCodeAlpha2'
                              taxInformation:
                                anyOf:
                                - type: object
                                  required:
                                  - taxIdentificationNumber
                                  - updatedAt
                                  properties:
                                    taxIdentificationNumber:
                                      type: string
                                    updatedAt:
                                      type: string
                                      title: valid range date
                                      description: A valid date within the range 2020-2100
                                  additionalProperties: false
                                - type: 'null'
                            additionalProperties: false
                        dateOfBirth:
                          anyOf:
                          - type: string
                            title: Day
                            description: a day in ISO format "YYYY-MM-DD"
                          - type: 'null'
                        placeOfBirth:
                          anyOf:
                          - $ref: '#/components/schemas/NonEmptyString'
                          - type: 'null'
                        gender:
                          anyOf:
                          - type: string
                            enum:
                            - Female
                            - Male
                          - type: 'null'
                        industry:
                          anyOf:
                          - type: string
                            enum:
                            - AgricultureAndFoodProcessing
                            - ArtsMediaAndEntertainment
                            - CasinosAndGambling
                            - Construction
                            - Cryptocurrency
                            - DefenseAndMilitaryIndustry
                            - Education
                            - EnergyAndUtilities
                            - FinancialServices
                            - FoodAndLodging
                            - Government
                            - HealthProfessions
                            - HoldingCompany
                            - IndustryAndManufacturing
                            - Mining
                            - NonProfit
                            - ProfessionalServices
                            - RealEstate
                            - RetailTradeAutomotive
                            - RetailTradeJewelryAntiques
                            - RetailTradeOthers
                            - SportAndTourism
                            - TechnologyAndComputing
                            - Transportation
                            - Politics
                            - Retired
                            - Student
                          - type: 'null'
                      additionalProperties: false
                    - type: object
                      required:
                      - type
                      - legalName
                      - legalEntityType
                      - registrationNumber
                      - industry
                      properties:
                        type:
                          type: string
                          enum:
                          - organization
                        legalName:
                          identifier: LegalEntityName
                          type: string
                          title: Legal entity name
                          description: a valid name for a legal entity, of max size 255, non empty, some special characters are forbidden
                        legalEntityType:
                          type: string
                        registrationNumber:
                          type: string
                        industry:
                          anyOf:
                          - type: string
                            enum:
                            - AgricultureAndFoodProcessing
                            - ArtsMediaAndEntertainment
                            - CasinosAndGambling
                            - Construction
                            - Cryptocurrency
                            - DefenseAndMilitaryIndustry
                            - Education
                            - EnergyAndUtilities
                            - FinancialServices
                            - FoodAndLodging
                            - Government
                            - HealthProfessions
                            - HoldingCompany
                            - IndustryAndManufacturing
                            - Mining
                            - NonProfit
                            - ProfessionalServices
                            - RealEstate
                            - RetailTradeAutomotive
                            - RetailTradeJewelryAntiques
                            - RetailTradeOthers
                            - SportAndTourism
                            - TechnologyAndComputing
                            - Transportation
                          - type: 'null'
                      additionalProperties: false
                  relatedPersons:
                    type: array
                    items:
                      type: object
                      required:
                      - firstName
                      - lastName
                      - relationshipTypes
                      - fiscalIdentificationNumber
                      properties:
                        firstName:
                          type: string
                          description: a string that will be trimmed
                        lastName:
                          type: string
                          description: a string that will be trimmed
                        gender:
                          anyOf:
                          - type: string
                            enum:
                            - Female
                            - Male
                          - type: 'null'
                        dateOfBirth:
                          anyOf:
                          - type: string
                            title: Day
                            description: a day in ISO format "YYYY-MM-DD"
                          - type: 'null'
                        cityOfBirth:
                          anyOf:
                          - type: string
                            description: a string that will be trimmed
                          - type: 'null'
                        countryOfBirth:
                          anyOf:
                          - $ref: '#/components/schemas/CountryCodeAlpha2'
                          - type: 'null'
                        nationality:
                          anyOf:
                          - $ref: '#/components/schemas/CountryCodeAlpha2'
                          - type: 'null'
                        addressOfResidence:
                          anyOf:
                          - type: string
                            description: a string that will be trimmed
                          - type: 'null'
                        cityOfResidence:
                          anyOf:
                          - type: string
                            description: a string that will be trimmed
                          - type: 'null'
                        zipCodeOfResidence:
                          anyOf:
                          - type: string
                            description: a string that will be trimmed
                          - type: 'null'
                        countryOfResidence:
                          anyOf:
                          - $ref: '#/components/schemas/CountryCodeAlpha2'
                          - type: 'null'
                        relationshipTypes:
                          type: array
                          items:
                            type: string
                            enum:
                            - ubo
                            - director
                            - other
                          title: Relationship types
                          description: Types of relationship between person and investor
                        fiscalIdentificationNumber:
                          anyOf:
                          - type: string
                          - type: 'null'
                          title: Fiscal identification number
                          description: Tax identification number of the person. Required for non-FR UBOs when the organization investor has FATCA/CRS status `passiveNFE`.
                      additionalProperties: false
                  id:
                    type: string
                    description: a Universally Unique Identifier
                    format: uuid
                  distributorId:
                    type: string
                    description: a Universally Unique Identifier
                    format: uuid
                  createdOn:
                    type: string
                    title: valid range date
                    description: A valid date within the range 2020-2100
                  updatedOn:
                    type: string
                    title: valid range date
                    description: A valid date within the range 2020-2100
                  status:
                    type: string
                    enum:
                    - pending-onboarding-workflow
                    deprecated: true
                  complianceStatus:
                    type: string
                    enum:
                    - pending-onboarding
                additionalProperties: false
        '400':
          description: The request did not match the expected schema
          content:
            application/json:
              schema:
                anyOf:
                - $ref: '#/components/schemas/HttpApiDecodeError'
                - $ref: '#/components/schemas/MissingFatcaCrsStatusError'
                - $ref: '#/components/schemas/MissingRelatedPersonsError'
                - $ref: '#/components/schemas/MissingFiscalIdentificationNumberError'
                - $ref: '#/components/schemas/MissingRequiredPersonFieldsError'
                - $ref: '#/components/schemas/MissingInvestorEmailError'
                - $ref: '#/components/schemas/BlockedResidenceCountryError'
        '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: "\n**Register a new investor with the platform.**\n\n- The investor is always created with status `pending-onboarding-workflow` while compliance checks (PEP/sanctions screening) run asynchronously.\n- Once checks complete successfully, the investor is automatically transitioned to `active` (if the distributor has KYC reliance enabled). The distributor is notified of the status change via webhook.\n\n**Related persons requirements:**\n- Each related person must include `dateOfBirth`, `nationality`, and `countryOfResidence` (required for compliance screening).\n- **Organization** investors must provide all their UBOs and directors. FR organizations are exempt (persons are automatically fetched from INPI), unless the distributor operates under a **KYC reliance agreement with Spiko** in which case all UBOs and directors must be provided regardless of country.\n- For **passive NFE** investors (`fatcaCrsStatus: \"passiveNFE\"`), non-FR UBOs must include a `fiscalIdentificationNumber`.\n\n**FATCA/CRS status:**\n- Organization investors must provide a `fatcaCrsStatus` in the `details` object. When set to `passiveNFE`, non-FR UBOs must include a `fiscalIdentificationNumber`.\n            "
      summary: Create investor
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - firstName
              - lastName
              - country
              - address
              - zipCode
              - city
              - details
              properties:
                firstName:
                  type: string
                  description: a string that will be trimmed
                lastName:
                  type: string
                  description: a string that will be trimmed
                country:
                  $ref: '#/components/schemas/CountryCodeAlpha2'
                address:
                  type: string
                  description: a string that will be trimmed
                zipCode:
                  type: string
                  description: a string that will be trimmed
                city:
                  type: string
                  description: a string that will be trimmed
                details:
                  anyOf:
                  - type: object
                    required:
                    - type
                    - taxInformationByCountryOfResidence
                    - dateOfBirth
                    - placeOfBirth
                    - gender
                    - nationality
                    - industry
                    properties:
                      type:
                        type: string
                        enum:
                        - individual
                      taxInformationByCountryOfResidence:
                        $ref: '#/components/schemas/TaxIdentificationNumberByCountry'
                      dateOfBirth:
                        type: string
                        title: Day
                        description: a day in ISO format "YYYY-MM-DD"
                      placeOfBirth:
                        type: string
                        description: a string that will be trimmed
                      gender:
                        type: string
                        enum:
                        - Female
                        - Male
                      nationality:
                        $ref: '#/components/schemas/CountryCodeAlpha2'
                      industry:
                        type: string
                        enum:
                        - AgricultureAndFoodProcessing
                        - ArtsMediaAndEntertainment
                        - CasinosAndGambling
                        - Construction
                        - Cryptocurrency
                        - DefenseAndMilitaryIndustry
                        - Education
                        - EnergyAndUtilities
                        - FinancialServices
                        - FoodAndLodging
                        - Government
                        - HealthProfessions
                        - HoldingCompany
                        - IndustryAndManufacturing
                        - Mining
                        - NonProfit
                        - ProfessionalServices
                        - RealEstate
                        - RetailTradeAutomotive
                        - RetailTradeJewelryAntiques
                        - RetailTradeOthers
                        - SportAndTourism
                        - TechnologyAndComputing
                        - Transportation
                        - Politics
                        - Retired
                        - Student
                    additionalProperties: false
                  - type: object
                    required:
                    - type
                    - legalName
                    - legalEntityType
                    - registrationNumber
                    - industry
                    properties:
                      type:
                        type: string
                        enum:
                        - organization
                      legalName:
                        identifier: LegalEntityName
                        type: string
                        title: Legal entity name
                        description: a valid name for a legal entity, of max size 255, non empty, some special characters are forbidden
                      legalEntityType:
                        type: string
                      registrationNumber:
                        type: string
                      industry:
                        type: string
                        enum:
                        - AgricultureAndFoodProcessing
                        - ArtsMediaAndEntertainment
                        - CasinosAndGambling
                        - Construction
                        - Cryptocurrency
                        - DefenseAndMilitaryIndustry
                        - Education
                        - EnergyAndUtilities
                        - FinancialServices
                        - FoodAndLodging
                        - Government
                        - HealthProfessions
                        - HoldingCompany
                        - IndustryAndManufacturing
                        - Mining
                        - NonProfit
                        - ProfessionalServices
                        - RealEstate
                        - RetailTradeAutomotive
                        - RetailTradeJewelryAntiques
                        - RetailTradeOthers
                        - SportAndTourism
                        - TechnologyAndComputing
                        - Transportation
                      fatcaCrsStatus:
                        type: string
                        enum:
                        - activeNFE
                        - passiveNFE
                        - FE
                    additionalProperties: false
                relatedPersons:
                  type: array
                  items:
                    type: object
                    required:
                    - firstName
                    - lastName
                    - relationshipTypes
                    - fiscalIdentificationNumber
                    properties:
                      firstName:
                        type: string
                        description: a string that will be trimmed
                      lastName:
                        type: string
                        description: a string that will be trimmed
                      gender:
                        anyOf:
                        - type: string
                          enum:
                          - Female
                          - Male
                        - type: 'null'
                      dateOfBirth:
                        anyOf:
                        - type: string
                          title: Day
                          description: a day in ISO format "YYYY-MM-DD"
                        - type: 'null'
                      cityOfBirth:
                        anyOf:
                        - type: string
                          description: a string that will be trimmed
                        - type: 'null'
                      countryOfBirth:
                        anyOf:
                        - $ref: '#/components/schemas/CountryCodeAlpha2'
                        - type: 'null'
                      nationality:
                        anyOf:
                        - $ref: '#/components/schemas/CountryCodeAlpha2'
                        - type: 'null'
                      addressOfResidence:
                        anyOf:
                        - type: string
                          description: a string that will be trimmed
                        - type: 'null'
                      cityOfResidence:
                        anyOf:
                        - type: string
                          description: a string that will be trimmed
                        - type: 'null'
                      zipCodeOfResidence:
                        anyOf:
                        - type: string
                          description: a string that will be trimmed
                        - type: 'null'
                      countryOfResidence:
                        anyOf:
                        - $ref: '#/components/schemas/CountryCodeAlpha2'
                        - type: 'null'
                      relationshipTypes:
                        type: array
                        items:
                          type: string
                          enum:
                          - ubo
                          - director
                          - other
                        title: Relationship types
                        description: Types of relationship between person and investor
                      fiscalIdentificationNumber:
                        anyOf:
                        - type: string
                        - type: 'null'
                        title: Fiscal identification number
                        description: Tax identification number of the person. Required for non-FR UBOs when the organization investor has FATCA/CRS status `passiveNFE`.
                    additionalProperties: false
                investorEmail:
                  $ref: '#/components/schemas/Lowercase'
              additionalProperties: false
        required: true
  /v0/investors:
    post:
      tags:
      - Investors
      operationId: investors.createInvestor
      parameters: []
      security:
      - basicAuth: []
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                anyOf:
                - type: object
                  required:
                  - firstName
                  - lastName
                  - country
                  - address
                  - zipCode
                  - city
                  - details
                  - id
                  - distributorId
                  - createdOn
                  - updatedOn
                  - status
                  - complianceStatus
                  - hasAccessToProfessionalProducts
                  properties:
                    firstName:
                      type: string
                      description: a string that will be trimmed
                    lastName:
                      type: string
                      description: a string that will be trimmed
                    country:
                      $ref: '#/components/schemas/CountryCodeAlpha2'
                    address:
                      type: string
                      description: a string that will be trimmed
                    zipCode:
                      type: string
                      description: a string that will be trimmed
                    city:
                      type: string
                      description: a string that will be trimmed
                    details:
                      anyOf:
                      - type: object
                        required:
                        - type
                        - taxInformationByCountryOfResidence
                        - dateOfBirth
                        - placeOfBirth
                        - gender
                        - industry
                        properties:
                          type:
                            type: string
                            enum:
                            - individual
                          taxInformationByCountryOfResidence:
                            type: array
                            minItems: 1
                            items:
                              type: object
                              required:
                              - country
                              properties:
                                country:
                                  $ref: '#/components/schemas/CountryCodeAlpha2'
                                taxInformation:
                                  anyOf:
                                  - type: object
                                    required:
                                    - taxIdentificationNumber
                                    - updatedAt
                                    properties:
                                      taxIdentificationNumber:
                                        type: string
                                      updatedAt:
                                        type: string
                                        title: valid range date
                                        description: A valid date within the range 2020-2100
                                    additionalProperties: false
                                  - type: 'null'
                              additionalProperties: false
                          dateOfBirth:
                            anyOf:
                            - type: string
                              title: Day
                              description: a day in ISO format "YYYY-MM-DD"
                            - type: 'null'
                          placeOfBirth:
                            anyOf:
                            - $ref: '#/components/schemas/NonEmptyString'
                            - type: 'null'
                          gender:
                            anyOf:
                            - type: string
                              enum:
                              - Female
                              - Male
                            - type: 'null'
                          industry:
                            anyOf:
                            - type: string
                              enum:
                              - AgricultureAndFoodProcessing
                              - ArtsMediaAndEntertainment
                              - CasinosAndGambling
                              - Construction
                              - Cryptocurrency
                              - DefenseAndMilitaryIndustry
                              - Education
                              - EnergyAndUtilities
                              - FinancialServices
                              - FoodAndLodging
                              - Government
                              - HealthProfessions
                              - HoldingCompany
                              - IndustryAndManufacturing
                              - Mining
                              - NonProfit
                              - ProfessionalServices
                              - RealEstate
                              - RetailTradeAutomotive
                              - RetailTradeJewelryAntiques
                              - RetailTradeOthers
                              - SportAndTourism
                              - TechnologyAndComputing
                              - Transportation
                              - Politics
                              - Retired
                              - Student
                            - type: 'null'
                        additionalProperties: false
                      - type: object
                        required:
                        - type
                        - legalName
                        - legalEntityType
                        - registrationNumber
                        - industry
                        properties:
                          type:
                            type: string
                            enum:
                            - organization
                          legalName:
                            identifier: LegalEntityName
                            type: string
                            title: Legal entity name
                            description: a valid name for a legal entity, of max size 255, non empty, some special characters are forbidden
                          legalEntityType:
                            type: string
                          registrationNumber:
                            type: string
                          industry:
                            anyOf:
                            - type: string
                              enum:
                              - AgricultureAndFoodProcessing
                              - ArtsMediaAndEntertainment
                              - CasinosAndGambling
                              - Construction
                              - Cryptocurrency
                              - DefenseAndMilitaryIndustry
                              - Education
                              - EnergyAndUtilities
                              - FinancialServices
                              - FoodAndLodging
                              - Government
                              - HealthProfessions
                              - HoldingCompany
                              - IndustryAndManufacturing
                              - Mining
                              - NonProfit
                              - ProfessionalServices
                              - RealEstate
                              - RetailTradeAutomotive
                              - RetailTradeJewelryAntiques
                              - RetailTradeOthers
                              - SportAndTourism
                              - TechnologyAndComputing
                              - Transportation
                            

# --- truncated at 32 KB (238 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/spiko/refs/heads/main/openapi/spiko-investors-api-openapi.yml