Spiko Investors API
The Investors API from Spiko — 5 operation(s) for investors.
The Investors API from Spiko — 5 operation(s) for investors.
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