API Documentation
Welcome to the Achieved API, a comprehensive solution for managing user legal entities and investments. Our API facilitates seamless integration of our platform’s robust features into your applications, enabling efficient data handling and decision-making processes.
All API requests should use the following base URL: https://www.api.achieved.io/ Authenticate your requests by including your API key in the x-api-key header: x-api-key : 32 bytes string.
To begin using the Achieved API, you’ll need an API key. This key authenticates your requests and ensures secure access to our services. Obtain your API key by contacting your account manager at Achieved. Once you have the key, include it in the header of each API request.
Endpoint: /version
Method: GET
Description: Retrieves the current version of the API.
Sample Request
GET /version HTTP/1.1
Host: www.api.achieved.io
Authorization: Bearer YOUR_API_KEY
Response: (string) Version number
Endpoint: /investor
Method: PUT
Description: Retrieves investor data based on specified criteria.
Request Body (QueryInvestorOptionsDto):
uniqueId (string): Unique identifier for the investor.
projectIds (string[], optional): Array of project IDs.
fundIds (string[], optional): Array of fund IDs.
includeFileNames (boolean, optional): Whether to include file names in the response.
includeTransactions (boolean, optional): Whether to include transaction data.
isPublished (boolean, optional): Whether the data is published.
includeTaxInfo (boolean, optional): Whether to include tax information.
includeBankInfo (boolean, optional): Whether to include bank information.
includeAccreditationInfo (boolean, optional): Whether to include accreditation information.
Sample Request
PUT /investor HTTP/1.1
Host: www.api.achieved.io
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
{
"uniqueId": "1234",
"includeTransactions": true
}
Response Structure:
MappedInvestor: Object containing investor's basic information:
name (string): Name of the investor.
uniqueId (string): Unique ID of the investor.
investorsEmail (string): Email of the investor.
viewersEmails (string[]): Array of emails for viewers.
prospectsEmails (string[]): Array of emails for prospects.
managersEmails (string[]): Array of restricted admin emails
entityStatus (string): Entity status of the investor.
investments (Object[]): Array of investment objects related to the investor. Each investment object contains details like project ID, fund ID, contributions, distributions, etc.
transactions (Object[]): Array of transaction objects related to the investor.
filesNames (string[]): Array of file names associated with the investor.
Endpoint: /projects
Method: PUT
Description: Retrieves data for specified projects.
Request Body (QueryProjectsOptionsDto):
projectIds (string[], optional): Array of project IDs.
projectNames (string[], optional): Array of project names.
isPublished (boolean, optional): Whether the projects are published.
Sample Request
PUT /projects HTTP/1.1
Host: www.api.achieved.io
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
{
"projectIds": ["proj1", "proj2"],
"isPublished": false
}
Response Structure:
MappedProject[]: Array of project objects, each containing:
name (string): Name of the project.
description (string): Description of the project.
descriptionHeb (string) : Description of the project in Hebrew.
entityStatus (string): Entity status of the project.
id (string): ID of the project.
status (string): Status of the project.
category (string): Category of the project.
location (string): Location of the project.
currency (string): Currency associated with the project.
Endpoint: /funds
Method: PUT
Description: Retrieves data for specified funds.
Request Body (QueryFundsOptionsDto):
fundIds (string[], optional): Array of fund IDs.
fundNames (string[], optional): Array of fund names.
isPublished (boolean, optional): Indicates if the funds data is published.
Sample Request
PUT /funds HTTP/1.1
Host: www.api.achieved.io
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
{
"fundIds": ["fund1", "fund2"],
"isPublished": true
}
Response Structure:
MappedFund[]: Array of fund objects, each containing:
name (string): Name of the fund.
id (string): ID of the fund.
inceptionDate (string): Date of inception of the fund.
currency (string): Currency of the fund.
description (string): Description of the fund.
descriptionHeb (string) : Description of the fund in Hebrew.
status (string): Status of the fund.
entityStatus (string): Entity status of the fund.
category (string): Category of the fund, typically 'fund'.
internalId (string): Internal ID for the fund.
Endpoint: /currency
Method: PUT
Description: Retrieves currency data for a specific date.
Request Body (QueryCurrencyOptionsDto):
date (string): Date for which currency data is requested, in YYYY-MM-DD format.
Sample Request
PUT /currency HTTP/1.1
Host: www.api.achieved.io
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
{
"date": "2023-01-01"
}
Response Structure:
MappedCurrency: Object containing:
date (string): Date for which currency data is requested, in YYYY-MM-DD format.
currency (string): Currency code.
rate (number): Currency rate.
Endpoint: /taxInfo
Method: PUT
Description: Retrieves tax information for a specific investor.
Request Body (QueryTaxInfoOptionsDto):
uniqueId (string): Unique identifier for the investor.
Sample Request
PUT /taxInfo HTTP/1.1
Host: www.api.achieved.io
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
{
"uniqueId": "1234"
}
Response Structure:
MappedTaxInfo: Object containing:
uniqueId (string): Unique identifier for the investor.
taxId (string): Tax ID of the investor.
taxCountry (string): Country of the investor.
taxState (string): State of the investor.
taxCity (string): City of the investor.
taxAddress (string): Address of the investor.
Endpoint: /lastUpdated
Method: PUT
Description: Returns the last updated date of the investor record. Most recent date from investor personal info, transactions and investments
Request Body (QueryLastUpdateOptionsDto):
id (string): The unique identifier of the investor.
Sample Request
PUT /investorExists HTTP/1.1
Host: www.api.achieved.io
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
{
"id": "1234"
}
Response Structure:
Date (date): Date object containing the most recent date of updated or insert action.
Endpoint: /createUser
Method: POST
Description: Creates a new user with the provided legal entity details.
Request Body (UserLegalEntityDto):
uniqueId (string): Unique identifier for the user.
name (string): Name of the user.
investorEmail (string): Email address of the investor.
viewerEmails (string[], optional): Array of email addresses for viewers.
prospectEmails (string[], optional): Array of email addresses for prospects.
deceased (boolean, optional): Whether the user is deceased.
Sample Request
POST /createUser HTTP/1.1
Host: www.api.achieved.io
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
{
"uniqueId": "user123",
"name": "John Doe",
"investorEmail": "johndoe@example.com"
}
Response: (boolean) Whether the insertion was successful
Endpoint: /updateUser
Method: POST
Description: Updates an existing user’s legal entity details.
Request Body (UserLegalEntityDto):
uniqueId (string): Unique identifier for the user.
name (string): Name of the user.
investorEmail (string): Email address of the investor.
viewerEmails (string[], optional): Array of email addresses for viewers.
prospectEmails (string[], optional): Array of email addresses for prospects.
deceased (boolean, optional): Whether the user is deceased.
Sample Request
POST /updateUser HTTP/1.1
Host: www.api.achieved.io
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
{
"uniqueId": "user123",
"name": "Jane Doe",
"investorEmail": "janedoe@example.com"
}
Response: (boolean) Whether the update was successful
Endpoint: /deleteUser
Method: POST
Description: Deletes an existing user specified by the unique identifier.
Request Body (DeleteUserDto):
uniqueId (string): Unique identifier for the user to be deleted.
Sample Request
POST /deleteUser HTTP/1.1
Host: www.api.achieved.io
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
{
"uniqueId": "user123"
}
Response: (boolean) Indicates whether the deletion was successful
Endpoint: /setRestrictedAdminUsers
Method: POST
Description: Sets the restricted admin users for a user.
Request Body (SetRestrictedAdminUsersDto):
uniqueIds (string[]): Unique identifier for the users.
restrictedAdminEmails (string[]): Array of restricted admin emails.
Sample Request
POST /setRestrictedAdminUsers HTTP/1.1
Host: www.api.achieved.io
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
{
"uniqueIds": ["565464684", “324442”],
"restrictedAdminEmails" : ["eone@klsd.io", “second@stlkj.com”]
}
Response: (boolean) Whether the insertion was successful
Endpoint: /createProject
Method: POST
Description: Creates a new project with the specified details.
Request Body (ProjectDto):
projectId (string): ID of the project as defined in the operator side database.
name (string): Name of the project.
address (string): Address of the project.
inceptionDate (string): The date when the project was initiated.
investmentClasses (InvestmentClassDto[]): Array of investment classes associated with the project.
category (string, optional): Category of the project.
realizedDate (Date, optional): The date when the project was realized.
currency (ISO 4217 Currency Code, optional): Currency code for the project.
status (ProjectStatus, optional): Status of the project (active, cancelled, realized).
additionalInfo (AdditionalInfo[], optional): Array of additional information fields for the project.
distributions (ProjectDistributionDto[], optional): Array of distributions related to the project.,
description (string, optional): Description of the project.
descriptionHeb (string, optional) : Description of the project in Hebrew.
Sample Request
POST /createProject HTTP/1.1
Host: www.api.achieved.io
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
{
"projectId": "proj123",
"name": "Urban Renewal Project",
"address": "123 Main St, Metropolis",
"inceptionDate": "2023-01-01",
"investmentClasses": [
{
"name": "Equity Investment",
"type": "equity"
}
],
"category": "Infrastructure",
"currency": "USD",
"status": "active",
"additionalInfo": [
{
"field": "Project Manager",
"value": "Jane Doe"
}
],
"distributions": [
{
"investmentClassType": "debt",
"amount": 1000000,
"currency": "USD"
}
]
}
Response: (boolean) Indicates whether the project creation was successful
Endpoint: /updateProject
Method: POST
Description: Updates an existing project with the provided details.
Request Body (ProjectDto):
projectId (string): ID of the project as defined in the operator side database. This field is used to identify the project to update.
name (string): Updated name of the project.
address (string): Updated address of the project.
inceptionDate (string): Updated date when the project was initiated.
investmentClasses (InvestmentClassDto[]): Updated array of investment classes associated with the project.
category (string, optional): Updated category of the project.
realizedDate (Date, optional): Updated date when the project was realized.
currency (ISO 4217 Currency Code, optional): Updated currency code for the project.
status (ProjectStatus, optional): Updated status of the project (active, cancelled, realized).
additionalInfo (AdditionalInfo[], optional): Updated array of additional information fields for the project.
distributions (ProjectDistributionDto[], optional): Updated array of distributions related to the project.
description (string, optional): Updated description of the project.
descriptionHeb (string, optional) : Description of the project in Hebrew.
Sample Request
POST /updateProject HTTP/1.1
Host: www.api.achieved.io
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
{
"projectId": "proj123",
"name": "Urban Renewal Project - Phase II",
"address": "123 Main St, Metropolis",
"inceptionDate": "2023-02-01",
// Include other fields to be updated
"status": "active",
"additionalInfo": [
{
"field": "Updated Project Manager",
"value": "John Smith"
}
],
"distributions": [
{
"investmentClassType": "equity",
"amount": 2000000,
"currency": "USD"
}
]
}
Response: (boolean) Indicates whether the project update was successful
Endpoint: /deleteProject
Method: POST
Description: Deletes an existing project using the specified project identifier.
Request Body (DeleteProjectDto):
projectId (string): Unique identifier of the project to be deleted.
Sample Request
POST /deleteProject HTTP/1.1
Host: www.api.achieved.io
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
{
"projectId": "proj123"
}
Response: (boolean) Indicates whether the deletion was successful
Endpoint: /createFund
Method: POST
Description: Creates a new fund with the specified details.
Request Body (FundDto):
fundId (string): ID of the fund as defined in the operator side database.
name (string): Name of the fund.
inceptionDate (string): The date when the fund was initiated.
investmentClasses (InvestmentClassDto[]): Array of investment classes associated with the fund.
description (string, optional): Description of the fund.
descriptionHeb (string, optional) : Description of the fund in Hebrew.
realizedDate (Date, optional): The date when the fund was realized.
currency (ISO 4217 Currency Code, optional): Currency code for the fund.
status (ProjectStatus, optional): Status of the fund (active, cancelled, realized).
additionalInfo (AdditionalInfo[], optional): Array of additional information fields for the fund.
distributions (ProjectDistributionDto[], optional): Array of distributions related to the fund.
Sample Request
POST /createFund HTTP/1.1
Host: www.api.achieved.io
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
{
"fundId": "fund456",
"name": "Global Infrastructure Fund",
"inceptionDate": "2024-01-01",
"investmentClasses": [
{
"name": "Debt Financing",
"type": "debt"
}
],
"description": "A fund focused on global infrastructure projects",
"currency": "EUR",
"status": "active",
// Additional fields can be included as necessary
}
Response: (boolean) Indicates whether the fund creation was successful
Endpoint: /updateFund
Method: POST
Description: Updates an existing fund with the provided details.
Request Body (FundDto):
fundId (string): ID of the fund as defined in the operator side database. This field is used to identify the fund to update.
name (string): Updated name of the fund.
inceptionDate (string): Updated date when the fund was initiated.
investmentClasses (InvestmentClassDto[]): Updated array of investment classes associated with the fund.
description (string, optional): Updated description of the fund.
descriptionHeb (string, optional) : Description of the fund in Hebrew.
realizedDate (Date, optional): Updated date when the fund was realized.
currency (ISO 4217 Currency Code, optional): Updated currency code for the fund.
status (ProjectStatus, optional): Updated status of the fund (active, cancelled, realized).
additionalInfo (AdditionalInfo[], optional): Updated array of additional information fields for the fund.
distributions (ProjectDistributionDto[], optional): Updated array of distributions related to the fund.
Sample Request
POST /updateFund HTTP/1.1
Host: www.api.achieved.io
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
{
"fundId": "fund456",
"name": "Global Infrastructure Fund - Phase II",
"inceptionDate": "2024-02-01",
// Include other fields to be updated
"status": "active",
"additionalInfo": [
{
"field": "Updated Fund Manager",
"value": "John Smith"
}
],
"distributions": [
{
"investmentClassType": "debt",
"amount": 2000000,
"currency": "EUR"
}
]
}
Response: (boolean) Indicates whether the fund update was successful
Endpoint: /deleteFund
Method: POST
Description: Deletes an existing fund using the specified fund identifier.
Request Body (DeleteFundDto):
fundId (string): Unique identifier of the fund to be deleted.
Sample Request
POST /deleteFund HTTP/1.1
Host: www.api.achieved.io
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
{
"fundId": "fund456"
}
Response: (boolean) Indicates whether the deletion was successful
Endpoint: /createFundAsset
Method: POST
Description: Creates a new fund asset associated with a specific fund.
Request Body (FundAssetDto):
relatedFundId (string): ID of the related fund as defined in the operator side database.
fundAssetId (string): Unique ID for the fund asset.
name (string): Name of the fund asset.
address (string): Address of the fund asset.
category (string, optional): Category of the fund asset.
description (string, optional): Description of the fund asset.
descriptionHeb (string, optional) : Description of the fund asset in Hebrew.
kpiKeyValue (KpiInfo[], optional): Array of KPI (Key Performance Indicator) metrics for the fund asset.
additionalInfo (AdditionalInfo[], optional): Array of additional information fields for the fund asset.
Sample Request
POST /createFundAsset HTTP/1.1
Host: www.api.achieved.io
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
{
"relatedFundId": "fund456",
"fundAssetId": "asset789",
"name": "Downtown Commercial Complex",
"address": "456 City Rd, Capital City",
"category": "Commercial Real Estate",
"description": "A multi-use commercial complex in the city center",
"kpiKeyValue": [
{
"key": "Occupancy Rate",
"value": "95%"
}
],
"additionalInfo": [
{
"field": "Projected ROI",
"value": "8%"
}
]
}
Response: (boolean) Indicates whether the fund asset creation was successful
Endpoint: /updateFundAsset
Method: POST
Description: Updates an existing fund asset with the provided details.
Request Body (FundAssetDto):
relatedFundId (string): ID of the related fund as defined in the operator side database.
fundAssetId (string): Unique ID for the fund asset.
name (string): Updated name of the fund asset.
address (string): Updated address of the fund asset.
category (string, optional): Updated category of the fund asset.
description (string, optional): Updated description of the fund asset.
descriptionHeb (string, optional) : Description of the fund asset in Hebrew.
kpiKeyValue (KpiInfo[], optional): Updated array of KPI (Key Performance Indicator) metrics for the fund asset.
additionalInfo (AdditionalInfo[], optional): Updated array of additional information fields for the fund asset.
Sample Request
POST /updateFundAsset HTTP/1.1
Host: www.api.achieved.io
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
{
"relatedFundId": "fund456",
"fundAssetId": "asset789",
"name": "Downtown Commercial Complex",
"address": "456 City Rd, Capital City",
"category": "Commercial Real Estate",
"description": "A multi-use commercial complex in the city center",
"kpiKeyValue": [
{
"key": "Occupancy Rate",
"value": "98%"
}
],
"additionalInfo": [
{
"field": "Projected ROI",
"value": "10%"
}
]
}
Response: (boolean) Indicates whether the fund asset update was successful
Endpoint: /deleteFundAsset
Method: POST
Description: Deletes an existing fund asset using the specified fund asset identifier.
Request Body (DeleteFundAssetDto):
fundAssetId (string): Unique identifier of the fund asset to be deleted.,
fundAssetId (string): Unique ID for the fund asset.
Sample Request
POST /deleteFundAsset HTTP/1.1
Host: www.api.achieved.io
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
{
"fundAssetId": "asset789"
}
Response: (boolean) Indicates whether the deletion was successful
Endpoint: /createInvestments
Method: POST
Description: Creates new investment records with detailed transactions, contributions, and distributions.
Request Body (InvestmentsDto):
uniqueId (string): Unique identifier for the investment as defined in the operator side database.
projectId (string, optional): ID of the related project.
fundId (string, optional): ID of the related fund.
distributions (ProjectDistributionDto[], optional): Array of distribution details related to the investment.
contributions (InvestmentContributionsDto[], optional): Array of contribution details related to the investment.
customizedStatistics (CustomizedStatisticsDto[], optional): Array of statistics details related to the investment.
transactions (TransactionDto[], optional): Array of transaction details.
additionalInfo (AdditionalInfo[], optional): Array of additional information fields for the investment.
Sample Request
POST /createInvestments HTTP/1.1
Host: www.api.achieved.io
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
{
"uniqueId": "invest123",
"projectId": "proj789",
"contributions": [
{
"investmentClassName": "Equity Class A",
"capitalCall": 100000,
"contribution": 50000,
"commitment": 150000,
"currency": "USD"
}
],
"transactions": [
{
"transactionId": "trans456",
"id": "invest123",
"subType": "Initial Investment",
"amount": "50000",
"localAmount": "50000",
"currency": "USD",
"exchangeRate": "1",
"exchangeDate": "2024-01-15",
"notesEn": "Initial capital investment",
"type": "CONTRIBUTION",
"announcement": true
}
],
"CustomizedStatistics": [
{
"key": "IRR",
"value": "10%"
}
],
"distribution": [
{
"investmentClassType" : "equity",
"amount": 151512,
"currency": "EUR",
"currencyRate": 1.55,
"date" : "2018-03-12 00:00:00.000"
}
]
}
Response: (boolean) Indicates whether the investment record creation was successful
Endpoint: /updateInvestments
Method: POST
Description: Updates existing investment records with new or modified transaction, contribution, and distribution details.
Request Body (InvestmentsDto):
uniqueId (string): Unique identifier for the investment, used to locate the record to be updated.
projectId (string, optional): ID of the related project, if applicable.
fundId (string, optional): ID of the related fund, if applicable.
distributions (ProjectDistributionDto[], optional): Updated array of distribution details related to the investment.
contributions (InvestmentContributionsDto[], optional): Updated array of contribution details related to the investment.
customizedStatistics (CustomizedStatisticsDto[], optional): Array of statistics details related to the investment.
transactions (TransactionDto[], optional): Updated array of transaction details.
additionalInfo (AdditionalInfo[], optional): Updated array of additional information fields for the investment.
Sample Request
POST /updateInvestments HTTP/1.1
Host: www.api.achieved.io
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
{
"uniqueId": "invest123",
"projectId": "proj789",
"contributions": [
{
"investmentClassName": "Equity Class B",
"capitalCall": 200000,
"contribution": 100000,
"commitment": 300000,
"currency": "EUR"
}
],
"transactions": [
{
"transactionId": "trans789",
"id": "invest123",
"subType": "Additional Investment",
"amount": "100000",
"localAmount": "110000",
"currency": "EUR",
"exchangeRate": "1.1",
"exchangeDate": "2024-03-01",
"notesEn": "Second round of investment",
"type": "CONTRIBUTION",
"announcement": false
}
],
"CustomizedStatistics": [
{
"key": "IRR",
"value": "10%"
}
],
"distribution": [
{
"investmentClassType" : "equity",
"amount": 151512,
"currency": "EUR",
"currencyRate": 1.55,
"date" : "2018-03-12 00:00:00.000"
}
]
}
Response: (boolean) Indicates whether the investment record update was successful
Endpoint: /deleteFundAsset
Method: POST
Description: Deletes an existing fund asset using the specified fund asset identifier.
Request Body (DeleteFundAssetDto):
fundAssetId (string): Unique identifier of the fund asset to be deleted.,
fundAssetId (string): Unique ID for the fund asset.
Sample Request
POST /deleteFundAsset HTTP/1.1
Host: www.api.achieved.io
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
{
"fundAssetId": "asset789"
}
Response: (boolean) Indicates whether the deletion was successful
Q: How do I get an API key?
A: API keys can be obtained by contacting your Achieved account manager. The key will be linked to your account and will grant you access to our API services.
Q: Is there a limit to the number of API requests I can make?
A: Yes, our API enforces rate limiting to ensure fair usage and system stability. Details on these limits are provided when you receive your API key.