Ledgyβs GraphQL API Reference π©βπ»π¨βπ»
π Welcome to our API docs!
API Endpoints
https://app.ledgy.com/graphql
Authentication
Requests are authenticated with an OAuth 2.0 access token belonging to a service account. A service account is a set of credentials for one integration, which you can rotate or revoke on its own without affecting anything else you have connected to Ledgy.
Create one in the Ledgy app under Company Settings β General β API service accounts, then store the client ID and client secret it shows you. The secret is displayed only once and can never be retrieved again β only rotated.
Exchange the credentials for an access token using the OAuth 2.0 client_credentials grant:
curl --request POST \
--url 'https://app.ledgy.com/auth/oidc-idp/token' \
--data 'grant_type=client_credentials' \
--data 'client_id=<clientId>' \
--data 'client_secret=<clientSecret>'
Service accounts authenticate with client_secret_post, so the client ID and secret belong in the request body as shown above β HTTP Basic authentication is not accepted. Configure your OAuth client library accordingly if it defaults to client_secret_basic.
The response contains an access_token that is bound to your company, grants read access to this API, and expires after 24 hours. Request a new one when it expires β most OAuth client libraries handle that for you. Send it as a bearer token:
curl --request POST \
--header 'content-type: application/json' \
--header 'Authorization: Bearer <accessToken>' \
--url 'https://app.ledgy.com/graphql' \
--data '{"query":"{ auth { companyId companyName } }"}'
Rather than hard-coding the token endpoint, you can discover it from the authorization server metadata at https://app.ledgy.com/auth/oidc-idp/.well-known/oauth-authorization-server.
Rotating and revoking credentials
Both actions live next to the service account in Company Settings β General β API service accounts.
Rotate secret issues a new client secret and invalidates the current one immediately; access tokens that were already issued keep working for the remainder of their 24 hours. To rotate without downtime, create a second service account, move the integration over to it, and revoke the first one once the switch is confirmed.
Revoke deletes the service account and invalidates its outstanding access tokens right away. If credentials have been exposed, revoke rather than rotate β rotation leaves already-issued tokens usable for up to 24 hours.
Legacy API keys (deprecated)
Before service accounts, this API was accessed with a single static company apiKey sent directly as the bearer token. Existing keys keep working for now and no new ones are issued; the mechanism will be removed in a future release.
If you still authenticate with an API key, migrate to a service account: the credentials are scoped per integration, the tokens are short-lived, and revocation takes effect immediately.
Rate limits
Our API has a rate limit of 20 requests every 5 seconds per company.
Queries
auth
Description
The auth operation is a basic interface designed for authentication purposes. The operation user can authenticate their credentials and obtain basic company information.
Response
Returns an Auth!
Example
Query
query auth {
auth {
companyId
companyName
}
}
Response
{
"data": {
"auth": {
"companyId": "4",
"companyName": "xyz789"
}
}
}
companyCaptable
Description
The companyCaptable operation is a Ledgy interface for one specific company. The operation user can retrieve cap table data about the queried company.
Response
Returns a CompanyCaptableResult!
Arguments
| Name | Description |
|---|---|
groupBy - [CaptableGroupBy]
|
Group the captable by one or multiple fields |
date - Date
|
Only transactions before this date will be retrieved. Defaults to today if none is provided |
Example
Query
query companyCaptable(
$groupBy: [CaptableGroupBy],
$date: Date
) {
companyCaptable(
groupBy: $groupBy,
date: $date
) {
rows {
...CaptableRowFragment
}
}
}
Variables
{
"groupBy": ["stakeholderName"],
"date": "2007-12-03"
}
Response
{"data": {"companyCaptable": {"rows": [CaptableRow]}}}
companyTransactions
Description
The companyTransactions operation is a Ledgy interface for one specific company. The operation will retrieve transaction data about the queried company.
Response
Returns a CompanyTransactionsResult!
Arguments
| Name | Description |
|---|---|
types - [TransactionType!]
|
Types of transaction to be retrieved |
date - Date
|
Only transactions before this date will be retrieved. Defaults to today if none is provided |
Example
Query
query companyTransactions(
$types: [TransactionType!],
$date: Date
) {
companyTransactions(
types: $types,
date: $date
) {
rows {
... on Convertible {
...ConvertibleFragment
}
... on EquitySettlement {
...EquitySettlementFragment
}
... on Grant {
...GrantFragment
}
... on Transfer {
...TransferFragment
}
}
}
}
Variables
{
"types": ["convertible"],
"date": "2007-12-03"
}
Response
{"data": {"companyTransactions": {"rows": [Convertible]}}}
portfolioCaptable
Description
The portfolioCaptable operation is a Ledgy portfolio-based interface for one specific portfolio company. The operation user can retrieve cap table data about the queried company.
Response
Returns a PortfolioCaptableResult!
Arguments
| Name | Description |
|---|---|
companyId - String!
|
Ledgy company ID for the queried cap table |
groupBy - [CaptableGroupBy]
|
Group the captable by one or multiple fields |
date - Date
|
Only transactions before this date will be retrieved. Defaults to today if none is provided |
Example
Query
query portfolioCaptable(
$companyId: String!,
$groupBy: [CaptableGroupBy],
$date: Date
) {
portfolioCaptable(
companyId: $companyId,
groupBy: $groupBy,
date: $date
) {
rows {
...CaptableRowFragment
}
}
}
Variables
{
"companyId": "abc123",
"groupBy": ["stakeholderName"],
"date": "2007-12-03"
}
Response
{"data": {"portfolioCaptable": {"rows": [CaptableRow]}}}
portfolioPerformance
Description
The portfolioPerformance operation is a Ledgy portfolio-based interface. The operation user can retrieve data about the portfolio companies linked to an investment firm.
Response
Returns a PortfolioPerformanceResult!
Arguments
| Name | Description |
|---|---|
date - Date
|
Only investments before this date will be retrieved. Defaults to today if none is provided |
Example
Query
query portfolioPerformance($date: Date) {
portfolioPerformance(date: $date) {
rows {
...PortfolioPerformanceRowFragment
}
}
}
Variables
{"date": "2007-12-03"}
Response
{
"data": {
"portfolioPerformance": {
"rows": [PortfolioPerformanceRow]
}
}
}
portfolioTransactions
Description
The portfolioTransactions operation is a Ledgy portfolio-based interface for one specific portfolio company. The operation will retrieve transaction data about the queried company.
Response
Returns a PortfolioTransactionsResult!
Arguments
| Name | Description |
|---|---|
companyId - String!
|
Ledgy company ID for the queried cap table |
types - [TransactionType!]
|
Types of transaction to be retrieved |
date - Date
|
Only transactions before this date will be retrieved. Defaults to today if none is provided |
Example
Query
query portfolioTransactions(
$companyId: String!,
$types: [TransactionType!],
$date: Date
) {
portfolioTransactions(
companyId: $companyId,
types: $types,
date: $date
) {
rows {
... on Convertible {
...ConvertibleFragment
}
... on EquitySettlement {
...EquitySettlementFragment
}
... on Grant {
...GrantFragment
}
... on Transfer {
...TransferFragment
}
}
}
}
Variables
{
"companyId": "abc123",
"types": ["convertible"],
"date": "2007-12-03"
}
Response
{
"data": {
"portfolioTransactions": {"rows": [Convertible]}
}
}
Types
Address
Description
Address Object
Example
{
"line1": "Forchstrasse 60",
"line2": "Attic",
"postcode": "8008",
"city": "Zurich",
"country": "CH"
}
Auth
Boolean
Description
The Boolean scalar type represents true or false.
CaptableGroupBy
Values
| Enum Value | Description |
|---|---|
|
|
Group by stakeholder |
|
|
Group by share class |
|
|
Group by Ledgy group |
|
|
Group by grant |
Example
"stakeholderName"
CaptableRow
Description
The cap table row is an aggregation of company transaction values and metadata. Each CaptableRow is an aggregation of transactions per CaptableGroupBy value. If no grouping parameter is provided it will default to stakeholderName.
Fields
| Field Name | Description |
|---|---|
category - String
|
A Ledgy classification of different transaction types, including transactions on different share classes, granted and grantable equity plans transactions, and convertible loans |
group - String
|
A Ledgy-custom grouping, including all assigned stakeholder groups, grantable equity plans transactions, and company transactions |
stakeholderId - String
|
A unique ID for the stakeholder |
stakeholderName - String
|
Full name of the stakeholder |
stakeholderEmail - String
|
Email of stakeholder |
stakeholderType - String
|
Type of stakeholder (i.e. natural vs legal) |
stakeholderHrisIdentifier - String
|
Unique identifier provided by an external HRIS (Human Resources Information System) and imported to Ledgy. Often used to sync data between Ledgy and the HR system |
beneficiaryId - String
|
A unique ID for the beneficiary |
beneficiaryName - String
|
Full name of the beneficiary |
shareClassName - String
|
Share class name |
grantName - String
|
Name of the grant |
grantType - String
|
Type of the grant |
equityPlanName - String
|
Name of the equity plan |
ownershipPercentage - Float
|
Percentage of ownership in the company (non-diluted) |
dilutedPercentage - Float
|
Percentage of ownership in the company (diluted) |
issuedShares - Int
|
Amount of issued shares |
dilutedShares - Int
|
Amount of diluted shares |
dilutedGrantedShares - Int
|
Amount of granted shares (shares equivalent) |
grantedShares - Int
|
Amount of granted shares |
dilutedExercisedShares - Int
|
Amount of exercised shares (shares equivalent) |
exercisedShares - Int
|
Amount of exercised shares |
dilutedTerminatedShares - Int
|
Amount of terminated shares (shares equivalent) |
terminatedShares - Int
|
Amount of terminated shares |
dilutedOutstanding - Int
|
Amount of granted equity still outstanding (shares equivalent). Corresponds to the Diluted outstanding column in the Ledgy app |
outstanding - Int
|
Amount of granted equity still outstanding: granted minus exercised, settled, expired and terminated amounts. Corresponds to the Outstanding column in the Ledgy app |
vestedShares - Int
|
Number of granted awards that have met their vesting conditions at the query date, accounting for termination events. Corresponds to the Grant vested column in the Ledgy app |
vestedIssuedShares - Int
|
Number of issued shares that have met their vesting conditions at the query date. Corresponds to the Shares vested column in the Ledgy app. The chosen grouping affects this value |
vesting - Vesting
|
Vesting object |
currency - String
|
Currency for monetary values in cap table (company currency) |
strikePrice - Float
|
Strike price |
investment - Float
|
Investment amount (monetary) |
documentCount - Int
|
Number of documents attached to transactions in the row |
Example
{
"category": "Preferred shares",
"group": "Investors",
"stakeholderId": "B34RtoyMrR6pvxTmo",
"stakeholderName": "Peleton Capital",
"stakeholderEmail": "abc123",
"stakeholderType": "Legal",
"stakeholderHrisIdentifier": "abc123",
"beneficiaryId": "xyz789",
"beneficiaryName": "abc123",
"shareClassName": "abc123",
"grantName": "xyz789",
"grantType": "xyz789",
"equityPlanName": "xyz789",
"ownershipPercentage": 27.4,
"dilutedPercentage": 20.05,
"issuedShares": 31415,
"dilutedShares": 31415,
"dilutedGrantedShares": 987,
"grantedShares": 123,
"dilutedExercisedShares": 123,
"exercisedShares": 987,
"dilutedTerminatedShares": 123,
"terminatedShares": 123,
"dilutedOutstanding": 123,
"outstanding": 987,
"vestedShares": 987,
"vestedIssuedShares": 123,
"vesting": Vesting,
"currency": "EUR",
"strikePrice": 123.45,
"investment": 42000000,
"documentCount": 4
}
CompanyCaptableResult
Fields
| Field Name | Description |
|---|---|
rows - [CaptableRow!]!
|
An array of cap table rows |
Example
{"rows": [CaptableRow]}
CompanyTransactionsResult
Description
Returns { rows: [Transaction!]! } (Transaction)
Fields
| Field Name | Description |
|---|---|
rows - [Transaction!]!
|
Example
{"rows": [Convertible]}
Convertible
Fields
| Field Name | Description |
|---|---|
transactionId - String
|
A unique ID for the transaction |
transactionNumber - Int
|
A human readable number identifying each transaction in the UI |
transactionType - TransactionType
|
Type of transaction |
date - Date
|
Date of the transaction |
lastUpdatedAt - Date
|
Last time the transaction was modified |
stakeholderId - String
|
A unique ID for the stakeholder |
stakeholderName - String
|
Name of the stakeholder |
stakeholderEmail - String
|
Email of stakeholder |
stakeholderType - String
|
Type of stakeholder (i.e. natural vs legal) |
stakeholderHrisIdentifier - String
|
Unique identifier string provided by an external HRIS (Human Resources Information System) and imported to Ledgy. Often used to sync data between Ledgy and the HR system |
currency - String
|
Currency used in the transaction |
investment - Float
|
Amount invested (monetary) |
interestRate - Float
|
Interest rate |
interestAccumulated - Float
|
Interest accumulated since start date or issuance date |
interestStartDate - Date
|
Date at which interest starts being taken into account |
dayBasis - Int
|
Number of days per year for calculating daily interest (360 vs 365) |
maturityDate - Date
|
Date of maturity |
cap - Float
|
Valuation cap (monetary) |
discount - Float
|
Percent discount |
payback - Boolean
|
Whether the convertible will be paid back when triggered |
customFields - [TransactionCustomField!]!
|
Company-defined custom transaction fields for this transaction. Only the fields explicitly requested by name (and that have a value set) are returned. |
Arguments
|
|
Example
{
"transactionId": "Z7RNoe68NjQdykibC",
"transactionNumber": 123,
"transactionType": "convertible",
"date": "2020-07-08T00:00:00.000Z",
"lastUpdatedAt": "2021-14-12T00:00:00.000Z",
"stakeholderId": "B34RtoyMrR6pvxTmo",
"stakeholderName": "Passionate Capital",
"stakeholderEmail": "abc123",
"stakeholderType": "legal",
"stakeholderHrisIdentifier": "xyz789",
"currency": "GBP",
"investment": 1700000,
"interestRate": 2.12,
"interestAccumulated": 50299.18,
"interestStartDate": "2020-09-08T00:00:00.000Z",
"dayBasis": 365,
"maturityDate": "2022-04-07T00:00:00.000Z",
"cap": 42500000,
"discount": 5,
"payback": false,
"customFields": [TransactionCustomField]
}
CurrencyTransaction
Fields
| Field Name | Description |
|---|---|
currency - String
|
Currency used in the transaction |
Possible Types
| CurrencyTransaction Types |
|---|
Example
{"currency": "xyz789"}
Date
Description
The Date scalar type is a custom scalar. In the JSON response it does not appear as a Javascript Date Object, but a String representing an ISO 8601-formatted date (i.e. yyyy-MM-ddThh:mm:ss.msZ).
Example
"2007-12-03"
EquitySettlement
Description
An equity settlement (exercise) of an equity plan grant. Each settlement is returned as exactly one row: the effect on the stakeholder whose grant is settled, i.e. the holding the settlement creates. The settlement's accompanying internal effects (dilution bookkeeping, pool withholding and transferring-stakeholder legs) are not returned as separate rows.
Fields
| Field Name | Description |
|---|---|
transactionId - String
|
A unique ID for the transaction |
transactionNumber - Int
|
A human readable number identifying each transaction in the UI |
transactionType - TransactionType
|
Type of transaction |
date - Date
|
Date of the transaction |
lastUpdatedAt - Date
|
Last time the transaction was modified |
stakeholderId - String
|
A unique ID for the stakeholder |
stakeholderName - String
|
Name of the stakeholder |
stakeholderEmail - String
|
Email of stakeholder |
stakeholderType - String
|
Type of stakeholder (i.e. natural vs legal) |
stakeholderHrisIdentifier - String
|
Unique identifier string provided by an external HRIS (Human Resources Information System) and imported to Ledgy. Often used to sync data between Ledgy and the HR system |
currency - String
|
Currency used in the transaction |
grantTransactionId - String
|
A unique ID for the grant this settlement exercises. Equals the transactionId of the corresponding Grant, so settlements can be joined to their grants |
equitySettled - Int
|
Number of granted awards settled by this settlement |
dilutedEquitySettled - Int
|
Number of settled awards (shares equivalent) |
exercised - Int
|
Number of granted awards exercised by this settlement. Only set for grant types that can be exercised |
dilutedExercised - Int
|
Number of exercised awards (shares equivalent) |
outstanding - Int
|
Change in the number of the holder's outstanding awards caused by this settlement (negative) |
dilutedOutstanding - Int
|
Change in the number of outstanding awards caused by this settlement (shares equivalent, negative) |
issued - Int
|
Number of shares issued to the stakeholder by this settlement, net of any withheld shares |
withheldSharesAmount - Int
|
Number of issued shares withheld by the company as part of the settlement, e.g. to cover taxes |
settlementMethod - String
|
How the settlement was covered: one of hold-all, sell-all, sell-to-cover, withhold-all or withhold-to-cover |
sharePrice - Float
|
Price paid per share in the settlement |
customFields - [TransactionCustomField!]!
|
Company-defined custom transaction fields for this transaction. Only the fields explicitly requested by name (and that have a value set) are returned. |
Arguments
|
|
Example
{
"transactionId": "kwy7cvZESwXXoBJ4C",
"transactionNumber": 987,
"transactionType": "equitySettlement",
"date": "2021-11-04T00:00:00.000Z",
"lastUpdatedAt": "2021-14-12T00:00:00.000Z",
"stakeholderId": "B34RtoyMrR6pvxTmo",
"stakeholderName": "Marie Curious",
"stakeholderEmail": "abc123",
"stakeholderType": "natural",
"stakeholderHrisIdentifier": "xyz789",
"currency": "EUR",
"grantTransactionId": "u3YW7J6sXStnjpt5C",
"equitySettled": 200,
"dilutedEquitySettled": 200,
"exercised": 200,
"dilutedExercised": 200,
"outstanding": -200,
"dilutedOutstanding": -200,
"issued": 150,
"withheldSharesAmount": 50,
"settlementMethod": "withhold-to-cover",
"sharePrice": 4.72,
"customFields": [TransactionCustomField]
}
Float
Description
The Float scalar type represents signed double-precision fractional values as specified by IEEE 754.
Example
987.65
Grant
Fields
| Field Name | Description |
|---|---|
transactionId - String
|
A unique ID for the transaction |
transactionNumber - Int
|
A human readable number identifying each transaction in the UI |
transactionType - TransactionType
|
Type of transaction |
date - Date
|
Date of the transaction |
lastUpdatedAt - Date
|
Last time the transaction was modified |
grantType - String
|
Type of grant (option/phantom/warrant/stock from pool) |
stakeholderId - String
|
A unique ID for the stakeholder |
stakeholderName - String
|
Name of the stakeholder |
stakeholderEmail - String
|
Email of stakeholder |
beneficiaryId - String
|
A unique ID for the beneficiary stakeholder |
beneficiaryName - String
|
Name of the beneficiary stakeholder |
stakeholderType - String
|
Type of stakeholder (i.e. natural vs legal) |
stakeholderHrisIdentifier - String
|
Unique identifier string provided by an external HRIS (Human Resources Information System) and imported to Ledgy. Often used to sync data between Ledgy and the HR system |
currency - String
|
Currency used in the transaction |
granted - Int
|
Granted amount |
dilutedGranted - Int
|
Granted amount (shares equivalent) |
diluted - Int
|
Diluted shares |
grantVested - Int
|
Grant vested |
dilutedGrantVested - Int
|
Grant vested (shares equivalent) |
strikePrice - Float
|
Strike price |
sharePrice - Float
|
Purchase price |
expiryDate - Date
|
Expiry date |
vesting - Vesting
|
Vesting object |
equityPlanName - String
|
Name of the equity plan the grant is from |
valueAtTransactionDate - Float
|
Value of the grant at the time of granting |
grantValue - Float
|
Value of the grant at the latest valuation of the company |
customFields - [TransactionCustomField!]!
|
Company-defined custom transaction fields for this transaction. Only the fields explicitly requested by name (and that have a value set) are returned. |
Arguments
|
|
Example
{
"transactionId": "u3YW7J6sXStnjpt5C",
"transactionNumber": 123,
"transactionType": "grant",
"date": "2018-02-25T00:00:00.000Z",
"lastUpdatedAt": "2021-14-12T00:00:00.000Z",
"grantType": "warrant",
"stakeholderId": "B34RtoyMrR6pvxTmo",
"stakeholderName": "Marie Curious",
"stakeholderEmail": "xyz789",
"beneficiaryId": "J42RtyyLxR3pyhAca",
"beneficiaryName": "Alan Turning",
"stakeholderType": "natural",
"stakeholderHrisIdentifier": "abc123",
"currency": "EUR",
"granted": 3142,
"dilutedGranted": 987,
"diluted": 987,
"grantVested": 123,
"dilutedGrantVested": 987,
"strikePrice": 0.1,
"sharePrice": 0.05,
"expiryDate": "2031-05-15T08:55:40.320Z",
"vesting": Vesting,
"equityPlanName": "Option Plan",
"valueAtTransactionDate": 25000,
"grantValue": 1500000,
"customFields": [TransactionCustomField]
}
ID
Description
The ID scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as "4") or integer (such as 4) input value will be accepted as an ID.
Example
4
Int
Description
The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.
Example
123
PortfolioCaptableResult
Fields
| Field Name | Description |
|---|---|
rows - [CaptableRow!]!
|
An array of cap table rows |
Example
{"rows": [CaptableRow]}
PortfolioPerformanceResult
Fields
| Field Name | Description |
|---|---|
rows - [PortfolioPerformanceRow!]!
|
An array of investment performance table rows |
Example
{"rows": [PortfolioPerformanceRow]}
PortfolioPerformanceRow
Description
The investment performance row is an aggregation of performance values and company metadata. Each PortfolioPerformanceRow takes into account values for all of the transactions in which the portfolio stakeholder is involved. Please note: all monetary values π° in this type are converted to portfolio currency.
Fields
| Field Name | Description |
|---|---|
address - Address
|
Address Object |
companyName - String
|
Name of the company |
companyId - ID
|
Internal Ledgy company ID |
country - String
|
Country of incorporation |
currency - String
|
Currency for all monetary values in investments performance |
description - String
|
Description of the company |
industry - String
|
Main industry of the company |
irr - Float
|
Internal Rate of Return (%) |
investment - Float
|
Investment in the company (monetary) |
lastUpdatedAt - Date
|
Last time a transaction was published by the company |
multiple - Float
|
Proceeds plus value, divided by invested |
proceeds - Float
|
Earnings from selling some or all shares, repayments of convertible loans, or other payments by the company (monetary) |
value - Float
|
Value of all currently owned shares at their latest share price, including outstanding convertible loans (monetary) |
website - String
|
Company website |
Example
{
"address": Address,
"companyName": "Ledgy AG",
"companyId": "4xyvEG8wR5qMYXnyy",
"country": "US",
"currency": "USD",
"description": "The coolest company out there",
"industry": "Fintech",
"irr": 42,
"investment": 5000000,
"lastUpdatedAt": "2007-12-03",
"multiple": 8.6,
"proceeds": 1000000,
"value": 42000000,
"website": "https://ledgy.com"
}
PortfolioTransactionsResult
Description
Returns { rows: [Transaction!]! } (Transaction)
Fields
| Field Name | Description |
|---|---|
rows - [Transaction!]!
|
Example
{"rows": [Convertible]}
StakeholderTransaction
Fields
| Field Name | Description |
|---|---|
stakeholderId - String
|
A unique ID for the stakeholder |
stakeholderName - String
|
Name of the stakeholder |
stakeholderEmail - String
|
Email of stakeholder |
stakeholderType - String
|
Type of stakeholder (i.e. natural vs legal) |
stakeholderHrisIdentifier - String
|
Unique identifier string provided by an external HRIS (Human Resources Information System) and imported to Ledgy. Often used to sync data between Ledgy and the HR system |
Possible Types
| StakeholderTransaction Types |
|---|
Example
{
"stakeholderId": "xyz789",
"stakeholderName": "abc123",
"stakeholderEmail": "xyz789",
"stakeholderType": "abc123",
"stakeholderHrisIdentifier": "xyz789"
}
String
Description
The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.
Example
"abc123"
Transaction
Types
| Union Types |
|---|
Example
Convertible
TransactionBase
Fields
| Field Name | Description |
|---|---|
transactionId - String
|
A unique ID for the transaction |
transactionNumber - Int
|
A human readable number identifying each transaction in the UI |
transactionType - TransactionType
|
Type of transaction |
date - Date
|
Date of the transaction |
lastUpdatedAt - Date
|
Last time the transaction was modified |
Possible Types
| TransactionBase Types |
|---|
Example
{
"transactionId": "abc123",
"transactionNumber": 123,
"transactionType": "convertible",
"date": "2007-12-03",
"lastUpdatedAt": "2007-12-03"
}
TransactionCustomField
Description
A company-defined custom transaction field together with this transaction's value for it
Fields
| Field Name | Description |
|---|---|
name - String
|
Name of the custom field, as configured by the company |
value - String
|
This transaction's value for the custom field, formatted as a display string (matches the value shown in the Ledgy app) |
type - String
|
The custom field's data type: one of text, number, percentage, monetary, date or select |
Example
{"name": "Board approved", "value": "Yes", "type": "select"}
TransactionType
Values
| Enum Value | Description |
|---|---|
|
|
Convertible loan |
|
|
Equity settlement (exercise) of an equity plan grant |
|
|
Equity plan grant |
|
|
Transfer |
Example
"convertible"
Transfer
Fields
| Field Name | Description |
|---|---|
transactionId - String
|
A unique ID for the transaction |
transactionNumber - Int
|
A human readable number identifying each transaction in the UI |
transactionType - TransactionType
|
Type of transaction |
date - Date
|
Date of the transaction |
lastUpdatedAt - Date
|
Last time the transaction was modified |
stakeholderId - String
|
A unique ID for the stakeholder receiving equity |
stakeholderName - String
|
Name of the stakeholder receiving equity |
stakeholderEmail - String
|
Email of stakeholder |
stakeholderType - String
|
Type of stakeholder (i.e. natural vs legal) |
stakeholderHrisIdentifier - String
|
Unique identifier string provided by an external HRIS (Human Resources Information System) and imported to Ledgy. Often used to sync data between Ledgy and the HR system |
fromStakeholderId - String
|
A unique ID for the stakeholder transferring equity |
fromStakeholderName - String
|
Name of the stakeholder transferring equity |
currency - String
|
Currency used in the transaction |
proceeds - Float
|
Proceeds |
sharePrice - Float
|
Transfer price |
diluted - Int
|
Diluted shares |
issued - Int
|
Issued shares |
customFields - [TransactionCustomField!]!
|
Company-defined custom transaction fields for this transaction. Only the fields explicitly requested by name (and that have a value set) are returned. |
Arguments
|
|
Example
{
"transactionId": "xyz789",
"transactionNumber": 123,
"transactionType": "convertible",
"date": "2007-12-03",
"lastUpdatedAt": "2007-12-03",
"stakeholderId": "abc123",
"stakeholderName": "xyz789",
"stakeholderEmail": "xyz789",
"stakeholderType": "abc123",
"stakeholderHrisIdentifier": "abc123",
"fromStakeholderId": "abc123",
"fromStakeholderName": "xyz789",
"currency": "abc123",
"proceeds": 987.65,
"sharePrice": 123.45,
"diluted": 123,
"issued": 123,
"customFields": [TransactionCustomField]
}
Vesting
Fields
| Field Name | Description |
|---|---|
type - String
|
Vesting type (simple, custom, performance) |
startDate - Date
|
Vesting start date |
duration - Int
|
Full duration of vesting, in months |
interval - Int
|
Vesting interval, in months |
cliff - Int
|
Vesting cliff, in months |
rounding - String
|
How vesting is rounded at each interval (down, up, nearest) |
vestingOn - VestingOnType
|
Select the day of the month on which the grant should vest. This only affects dates after the cliff |
Example
{
"type": "simple",
"startDate": "2021-03-02T00:00:00.000Z",
"duration": 48,
"interval": 1,
"cliff": 6,
"rounding": "nearest",
"vestingOn": "grantDate"
}
VestingOnType
Description
Vesting Object
Values
| Enum Value | Description |
|---|---|
|
|
Grant date |
|
|
Start date |
|
|
First day of the month |
|
|
Last day of the month |
Example
"grantDate"