API Reference
Spiko Distributor API (v0)
Download OpenAPI specification:Download
Add bank account
Add a bank account linked to an investor for a currency and return the whole bank account info
Request Body schema: application/jsonrequired
investorId required | string^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}... a Universally Unique Identifier |
currency required | string Value: "EUR" |
accountNumber required | A valid IBAN (International Bank Account Number) A valid IBAN |
bic required | A valid BIC (Bank Identifier Code) A valid BIC |
Responses
Request samples
- Payload
{- "investorId": "string",
- "currency": "USD",
- "accountNumber": { },
- "bic": null,
- "intermediaryBic": null
}
Response samples
- 200
{- "id": "string",
- "investorId": "string",
- "details": {
- "currency": "EUR",
- "accountNumber": null,
- "bic": null
}, - "createdAt": "2019-08-24T14:15:22Z",
- "name": "string",
- "proofInvestorDocumentId": "string",
- "status": "validated"
}
Get bank accounts of an investor for the requested currency
Get list of bank account's infos of an investor (IBAN / BIC) for the requested currency
query Parameters
investorId required | string^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}... a Universally Unique Identifier |
currency required | string Enum: "EUR" "USD" "GBP" "CHF" "JPY" "SGD" "___" |
Responses
Response samples
- 200
[- {
- "id": "string",
- "investorId": "string",
- "details": {
- "currency": "EUR",
- "accountNumber": null,
- "bic": null
}, - "createdAt": "2019-08-24T14:15:22Z",
- "name": "string",
- "proofInvestorDocumentId": "string",
- "status": "validated"
}
]
Get bank account
Get info of a bank account (currency / IBAN / BIC)
path Parameters
bankAccountId required | string^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}... a Universally Unique Identifier |
Responses
Response samples
- 200
{- "id": "string",
- "investorId": "string",
- "details": {
- "currency": "EUR",
- "accountNumber": null,
- "bic": null
}, - "createdAt": "2019-08-24T14:15:22Z",
- "name": "string",
- "proofInvestorDocumentId": "string",
- "status": "archived"
}
Archive bank account
Archive a bank account and return the whole bank account info
path Parameters
bankAccountId required | string^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}... a Universally Unique Identifier |
Responses
Response samples
- 200
{- "id": "string",
- "investorId": "string",
- "details": {
- "currency": "EUR",
- "accountNumber": null,
- "bic": null
}, - "createdAt": "2019-08-24T14:15:22Z",
- "name": "string",
- "proofInvestorDocumentId": "string",
- "status": "archived"
}
Get investor info
Get info about the investor including their compliance status
path Parameters
id required | string^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}... a Universally Unique Identifier |
Responses
Response samples
- 200
{- "id": "string",
- "distributorId": "string",
- "firstName": "string",
- "lastName": "string",
- "status": "compliant",
- "details": {
- "type": "individual",
- "countryOfTaxResidence": "AF"
}, - "country": "AF",
- "city": "string",
- "zipCode": "string",
- "address": "string",
- "createdOn": "2019-08-24T14:15:22Z",
- "updatedOn": "2019-08-24T14:15:22Z"
}
Update investor
Update info / compliance status of an investor and return the whole investor info
path Parameters
id required | string^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}... a Universally Unique Identifier |
Request Body schema: application/jsonrequired
object | |
country | string Enum: "AF" "AX" "AL" "DZ" "AS" "AD" "AO" "AI" "AQ" "AG" "AR" "AM" "AW" "AU" "AT" "AZ" "BS" "BH" "BD" "BB" "BY" "BE" "BZ" "BJ" "BM" "BT" "BO" "BQ" "BA" "BW" "BV" "BR" "IO" "BN" "BG" "BF" "BI" "CV" "KH" "CM" "CA" "KY" "CF" "TD" "CL" "CN" "CX" "CC" "CO" "KM" "CG" "CD" "CK" "CR" "CI" "HR" "CU" "CW" "CY" "CZ" "DK" "DJ" "DM" "DO" "EC" "EG" "SV" "GQ" "ER" "EE" "ET" "FK" "FO" "FJ" "FI" "FR" "GF" "PF" "TF" "GA" "GM" "GE" "DE" "GH" "GI" "GR" "GL" "GD" "GP" "GU" "GT" "GG" "GN" "GW" "GY" "HT" "HM" "VA" "HN" "HK" "HU" "IS" "IN" "ID" "IR" "IQ" "IE" "IM" "IL" "IT" "JM" "JP" "JE" "JO" "KZ" "KE" "KI" "KP" "KR" "KW" "KG" "LA" "LV" "LB" "LS" "LR" "LY" "LI" "LT" "LU" "MO" "MK" "MG" "MW" "MY" "MV" "ML" "MT" "MH" "MQ" "MR" "MU" "YT" "MX" "FM" "MD" "MC" "MN" "ME" "MS" "MA" "MZ" "MM" "NA" "NR" "NP" "NL" "NC" "NZ" "NI" "NE" "NG" "NU" "NF" "MP" "NO" "OM" "PK" "PW" "PS" "PA" "PG" "PY" "PE" "PH" "PN" "PL" "PT" "PR" "QA" "RE" "RO" "RU" "RW" "BL" "SH" "KN" "LC" "MF" "PM" "VC" "WS" "SM" "ST" "SA" "SN" "RS" "SC" "SL" "SG" "SX" "SK" "SI" "SB" "SO" "ZA" "GS" "SS" "ES" "LK" "SD" "SR" "SJ" "SZ" "SE" "CH" "SY" "TW" "TJ" "TZ" "TH" "TL" "TG" "TK" "TO" "TT" "TN" "TR" "TM" "TC" "TV" "UG" "UA" "AE" "GB" "US" "UM" "UY" "UZ" "VU" "VE" "VN" "VG" "VI" "WF" "EH" "YE" "ZM" "ZW" |
city | string non-empty a non empty string |
zipCode | string non-empty a non empty string |
address | string non-empty a non empty string |
object or object |
Responses
Request samples
- Payload
{- "complianceChange": {
- "status": "compliant",
- "reason": "string"
}, - "country": "AF",
- "city": "string",
- "zipCode": "string",
- "address": "string",
- "details": {
- "countryOfTaxResidence": "AF"
}
}
Response samples
- 200
{- "id": "string",
- "distributorId": "string",
- "firstName": "string",
- "lastName": "string",
- "status": "compliant",
- "details": {
- "type": "individual",
- "countryOfTaxResidence": "AF"
}, - "country": "AF",
- "city": "string",
- "zipCode": "string",
- "address": "string",
- "createdOn": "2019-08-24T14:15:22Z",
- "updatedOn": "2019-08-24T14:15:22Z"
}
Get all investors' infos
Get infos about all the investors including their compliance status
Responses
Response samples
- 200
[- {
- "id": "string",
- "distributorId": "string",
- "firstName": "string",
- "lastName": "string",
- "status": "pending-onboarding-workflow",
- "createdOn": "2019-08-24T14:15:22Z",
- "updatedOn": "2019-08-24T14:15:22Z"
}
]
Create investor
Create a new investor and return the whole investor info
Request Body schema: application/jsonrequired
firstName required | string^(?=.{1,255}$)[\p{L}\p{M}]+(?:[\s\-'''‘’`][\p... a valid first name or last name |
lastName required | string^(?=.{1,255}$)[\p{L}\p{M}]+(?:[\s\-'''‘’`][\p... a valid first name or last name |
required | object or object |
country required | string Enum: "AF" "AX" "AL" "DZ" "AS" "AD" "AO" "AI" "AQ" "AG" "AR" "AM" "AW" "AU" "AT" "AZ" "BS" "BH" "BD" "BB" "BY" "BE" "BZ" "BJ" "BM" "BT" "BO" "BQ" "BA" "BW" "BV" "BR" "IO" "BN" "BG" "BF" "BI" "CV" "KH" "CM" "CA" "KY" "CF" "TD" "CL" "CN" "CX" "CC" "CO" "KM" "CG" "CD" "CK" "CR" "CI" "HR" "CU" "CW" "CY" "CZ" "DK" "DJ" "DM" "DO" "EC" "EG" "SV" "GQ" "ER" "EE" "ET" "FK" "FO" "FJ" "FI" "FR" "GF" "PF" "TF" "GA" "GM" "GE" "DE" "GH" "GI" "GR" "GL" "GD" "GP" "GU" "GT" "GG" "GN" "GW" "GY" "HT" "HM" "VA" "HN" "HK" "HU" "IS" "IN" "ID" "IR" "IQ" "IE" "IM" "IL" "IT" "JM" "JP" "JE" "JO" "KZ" "KE" "KI" "KP" "KR" "KW" "KG" "LA" "LV" "LB" "LS" "LR" "LY" "LI" "LT" "LU" "MO" "MK" "MG" "MW" "MY" "MV" "ML" "MT" "MH" "MQ" "MR" "MU" "YT" "MX" "FM" "MD" "MC" "MN" "ME" "MS" "MA" "MZ" "MM" "NA" "NR" "NP" "NL" "NC" "NZ" "NI" "NE" "NG" "NU" "NF" "MP" "NO" "OM" "PK" "PW" "PS" "PA" "PG" "PY" "PE" "PH" "PN" "PL" "PT" "PR" "QA" "RE" "RO" "RU" "RW" "BL" "SH" "KN" "LC" "MF" "PM" "VC" "WS" "SM" "ST" "SA" "SN" "RS" "SC" "SL" "SG" "SX" "SK" "SI" "SB" "SO" "ZA" "GS" "SS" "ES" "LK" "SD" "SR" "SJ" "SZ" "SE" "CH" "SY" "TW" "TJ" "TZ" "TH" "TL" "TG" "TK" "TO" "TT" "TN" "TR" "TM" "TC" "TV" "UG" "UA" "AE" "GB" "US" "UM" "UY" "UZ" "VU" "VE" "VN" "VG" "VI" "WF" "EH" "YE" "ZM" "ZW" |
city required | string non-empty a non empty string |
zipCode required | string non-empty a non empty string |
address required | string non-empty a non empty string |
dateOfBirth required | string <date-time> a valid Date |
placeOfBirth required | string non-empty a non empty string |
Responses
Request samples
- Payload
{- "firstName": "string",
- "lastName": "string",
- "details": {
- "type": "individual",
- "countryOfTaxResidence": "AF"
}, - "country": "AF",
- "city": "string",
- "zipCode": "string",
- "address": "string",
- "dateOfBirth": "2019-08-24T14:15:22Z",
- "placeOfBirth": "string"
}
Response samples
- 200
{- "id": "string",
- "distributorId": "string",
- "firstName": "string",
- "lastName": "string",
- "status": "compliant",
- "details": {
- "type": "individual",
- "countryOfTaxResidence": "AF"
}, - "country": "AF",
- "city": "string",
- "zipCode": "string",
- "address": "string",
- "createdOn": "2019-08-24T14:15:22Z",
- "updatedOn": "2019-08-24T14:15:22Z"
}
Get Investment account
Get associated investor and whitelisted chains for a specific address
path Parameters
address required | EthereumAddress A valid Ethereum address |
chainId required | number a number |
Responses
Response samples
- 200
{- "id": "string",
- "investorId": "string",
- "address": null,
- "chainId": 1
}
Get Investment accounts
Get all investment accounts of an investor
query Parameters
investorId required | string^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}... a Universally Unique Identifier |
Responses
Response samples
- 200
[- {
- "id": "string",
- "investorId": "string",
- "address": null,
- "chainId": 1
}
]
Set a new investment account for an investor
Adds and whitelists an address for an investor on the required chain
Request Body schema: application/jsonrequired
investorId required | string^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}... a Universally Unique Identifier |
address required | EthereumAddress A valid Ethereum address |
chainId required | number Enum: 1 11155111 137 80002 84532 42161 421614 |
Responses
Request samples
- Payload
{- "investorId": "string",
- "address": null,
- "chainId": 1
}
Response samples
- 200
{- "id": "string",
- "investorId": "string",
- "address": null,
- "chainId": 1
}
Get portfolio
Get portfolio composition of an investor including the current value of their assets
path Parameters
investorId required | string^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}... a Universally Unique Identifier |
Responses
Response samples
- 200
{- "items": [
- {
- "shareClassId": "string",
- "chainId": 1,
- "walletAddress": null,
- "totalNumberOfShares": "string",
- "currentValue": {
- "value": null,
- "currency": "EUR"
}, - "isCustodialWallet": true
}
], - "totalGainSinceStart": [
- {
- "investorId": "string",
- "shareClassId": "string",
- "totalGainAmount": {
- "value": null,
- "currency": "EUR"
}
}
]
}
Create subscription order
Create a new subscription order for an investor and return the whole order info
Request Body schema: application/jsonrequired
investorId required | string^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}... a Universally Unique Identifier |
required | object (NonNegativeAmount) |
shareClassId required | string^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}... a Universally Unique Identifier |
investorAddress required | EthereumAddress A valid Ethereum address |
chainId required | number Enum: 1 11155111 137 80002 84532 42161 421614 |
Responses
Request samples
- Payload
{- "investorId": "string",
- "amount": {
- "value": null,
- "currency": "EUR"
}, - "shareClassId": "string"
}
Response samples
- 200
{- "id": "string",
- "investorId": "string",
- "amount": {
- "value": null,
- "currency": "EUR"
}, - "shareClassId": "string",
- "wireReference": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "status": "pending-wire",
- "wireDestinationIBAN": null,
- "wireDestinationBIC": null,
- "investorAccountId": "string"
}
Get subscription orders
Get paginated list of an investor's subscription orders ordered by latest creation date
query Parameters
investorId required | string^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}... a Universally Unique Identifier |
shareClassId | string^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}... a Universally Unique Identifier |
page | integer > 0 a positive number |
limit | integer > 0 a positive number |
Responses
Response samples
- 200
[- {
- "id": "string",
- "investorId": "string",
- "amount": {
- "value": null,
- "currency": "EUR"
}, - "shareClassId": "string",
- "wireReference": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "status": "pending-wire",
- "investorAccountId": "string"
}
]
Get subscription order
Get info of a subscription order including its execution status
path Parameters
subscriptionOrderId required | string^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}... a Universally Unique Identifier |
Responses
Response samples
- 200
{- "id": "string",
- "investorId": "string",
- "amount": {
- "value": null,
- "currency": "EUR"
}, - "shareClassId": "string",
- "wireReference": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "status": "pending-wire",
- "investorAccountId": "string"
}
Create redemption order
Create a new redemption order for an investor and return the whole order info
Request Body schema: application/jsonrequired
investorId required | string^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}... a Universally Unique Identifier |
bankAccountId required | string^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}... a Universally Unique Identifier |
sharesAmount required | string a string that will be parsed into a BigDecimal |
shareClassId required | string^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}... a Universally Unique Identifier |
Responses
Request samples
- Payload
{- "investorId": "string",
- "bankAccountId": "string",
- "sharesAmount": "string",
- "shareClassId": "string"
}
Response samples
- 200
{- "id": "string",
- "blockchainId": "stringstringstringstringstringstringstringstringstringstringstring",
- "investorAddress": null,
- "outputTokenAddress": null,
- "sharesAmount": "string",
- "shareClassId": "string",
- "chainId": 1,
- "salt": "stringstringstringstringstringstringstringstringstringstringstring",
- "createdAt": "2019-08-24T14:15:22Z",
- "investorId": "string",
- "status": "canceled"
}
Get redemption orders
Get paginated list of an investor's redemption orders ordered by latest creation date
query Parameters
investorId required | string^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}... a Universally Unique Identifier |
shareClassId | string^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}... a Universally Unique Identifier |
page | integer > 0 a positive number |
limit | integer > 0 a positive number |
Responses
Response samples
- 200
[- {
- "id": "string",
- "investorAddress": null,
- "amount": {
- "value": null,
- "currency": "EUR"
}, - "shareClassId": "string",
- "chainId": 1,
- "createdAt": "2019-08-24T14:15:22Z",
- "investorId": "string",
- "status": "planned",
- "bankAccountId": "string"
}
]
Get redemption order
Get info of a redemption order including its execution status
path Parameters
redemptionOrderId required | string^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}... a Universally Unique Identifier |
Responses
Response samples
- 200
{- "id": "string",
- "blockchainId": "stringstringstringstringstringstringstringstringstringstringstring",
- "investorAddress": null,
- "outputTokenAddress": null,
- "sharesAmount": "string",
- "shareClassId": "string",
- "chainId": 1,
- "salt": "stringstringstringstringstringstringstringstringstringstringstring",
- "createdAt": "2019-08-24T14:15:22Z",
- "investorId": "string",
- "status": "canceled"
}
Get accounting positions
Returns accounting positions for an investor and a share class between two dates
query Parameters
investorId required | string^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}... a Universally Unique Identifier |
shareClassId required | string^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}... a Universally Unique Identifier |
from required | string <date-time> a valid Date |
to required | string <date-time> a valid Date |
Responses
Response samples
- 200
[- {
- "day": "2019-08-24T14:15:22Z",
- "navUpdateDate": "2019-08-24T14:15:22Z",
- "investorId": "string",
- "shareClassId": "string",
- "currentSharesHoldings": "string",
- "currentHoldings": {
- "value": null,
- "currency": "EUR"
}, - "subscriptions": {
- "ofDay": {
- "value": null,
- "currency": "EUR"
}, - "total": {
- "value": null,
- "currency": "EUR"
}
}, - "redemptions": {
- "ofDay": {
- "value": null,
- "currency": "EUR"
}, - "total": {
- "value": null,
- "currency": "EUR"
}
}, - "transfers": {
- "ofDay": {
- "value": null,
- "currency": "EUR"
}, - "total": {
- "value": null,
- "currency": "EUR"
}
}, - "yield": {
- "ofDay": {
- "value": null,
- "currency": "EUR"
}, - "total": {
- "value": null,
- "currency": "EUR"
}
}, - "realizedGainOfDay": {
- "value": null,
- "currency": "EUR"
}, - "transferredGainOfDay": {
- "value": null,
- "currency": "EUR"
}, - "totalUnrealizedGain": {
- "value": null,
- "currency": "EUR"
}
}
]