Shareworks Holdings API

The Holdings API from Shareworks — 2 operation(s) for holdings.

OpenAPI Specification

shareworks-holdings-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Shareworks Admin REST Authentication Token Holdings API
  description: Shareworks Admin REST API
  version: 1.0.0
servers:
- url: https://shareworks.solium.com/rest/admin
  description: Production
- url: https://sum-qa02.shareworks.com/rest/admin
  description: Sandbox
security:
- accessToken: []
tags:
- name: Holdings
paths:
  /v1/company/{companyId}/stakeholder/holdings:
    get:
      tags:
      - Holdings
      summary: GET Holdings (All)
      description: Retrieve the calculated summary of the holding for all stakeholders in the company. This includes the calculated breakdown for all individual stock certificates and grants
      operationId: getAllStakeholderHoldings
      parameters:
      - name: companyId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/StakeholderHoldingsSummaryDetails'
        '400':
          description: The request was unacceptable, often due to missing a required parameter, malformed query, or malformed request body.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestApiErrorResponse'
              encoding:
                ? ''
                : contentType: application/json
        '401':
          description: You request was successful and valid but you do not have access to this resource.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestApiErrorResponse'
              encoding:
                ? ''
                : contentType: application/json
        '403':
          description: When a request tries to access a resource that doesn't belong to them.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestApiErrorResponse'
              encoding:
                ? ''
                : contentType: application/json
        '422':
          description: There was a validation error. Check the error message to see what values caused the error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestApiErrorResponse'
              encoding:
                ? ''
                : contentType: application/json
        '500':
          description: Servers are not working as expected.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestApiErrorResponse'
              encoding:
                ? ''
                : contentType: application/json
  /v1/company/{companyId}/stakeholder/holdings/{stakeholderId}:
    get:
      tags:
      - Holdings
      summary: GET Holdings (Single)
      description: Retrieve the calculated summary of the holding for a single stakeholder. This includes the calculated breakdown for all individual stock certificates and grants
      operationId: getStakeholderHoldings
      parameters:
      - name: companyId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      - name: stakeholderId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StakeholderHoldingsSummaryDetails'
        '400':
          description: The request was unacceptable, often due to missing a required parameter, malformed query, or malformed request body.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestApiErrorResponse'
              encoding:
                ? ''
                : contentType: application/json
        '401':
          description: You request was successful and valid but you do not have access to this resource.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestApiErrorResponse'
              encoding:
                ? ''
                : contentType: application/json
        '403':
          description: When a request tries to access a resource that doesn't belong to them.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestApiErrorResponse'
              encoding:
                ? ''
                : contentType: application/json
        '422':
          description: There was a validation error. Check the error message to see what values caused the error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestApiErrorResponse'
              encoding:
                ? ''
                : contentType: application/json
        '500':
          description: Servers are not working as expected.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestApiErrorResponse'
              encoding:
                ? ''
                : contentType: application/json
components:
  schemas:
    ErrorWithCode:
      title: Validation Error
      required:
      - code
      - message
      type: object
      properties:
        message:
          type: string
          description: Message describing the error
        code:
          type: integer
          description: Unique code for the validation error
          format: int32
    StakeholderGrantAcceleratedVestingDetails:
      title: Accelerated Vesting Response
      required:
      - accelerationPercent
      - accelerationPeriod
      - accelerationTrigger
      type: object
      properties:
        accelerationTrigger:
          type: string
          description: 'The name of the event that will trigger vesting acceleration: TERMINATION_WITHOUT_CAUSE, RESIGNATION_FOR_GOOD_REASON, or CHANGE_OF_CONTROL'
        accelerationPeriod:
          type: integer
          description: The number of months after the trigger event that vesting acceleration will occur (0 to 60). A value > 0 defines a double-trigger acceleration
          format: int32
        accelerationPercent:
          type: integer
          description: The percent of the unvested shares that will be accelerated (1 to 100)
          format: int32
      description: List of the vesting acceleration stipulations of the grant. May be empty.
    StakeholderHoldingsDetails:
      title: Holdings Summary Response
      required:
      - grants
      - stockCertificates
      type: object
      properties:
        stockCertificates:
          type: array
          description: List of stock certificates held by the stakeholder
          items:
            $ref: '#/components/schemas/StockCertificateSummaryDetails'
        grants:
          type: array
          description: List of grants held by the stakeholder
          items:
            $ref: '#/components/schemas/StakeholderGrantSummaryDetails'
      description: List of all stakeholder holdings (excepting warrants and convertible promissory notes, as yet unsupported)
    RestApiErrorResponse:
      title: Error Response
      required:
      - code
      - errorId
      - message
      type: object
      properties:
        code:
          type: string
          description: Code representing the type of error
        message:
          type: string
          description: Message describing the error
        errors:
          type: array
          description: List of all further error details, usually due to validation checks
          items:
            $ref: '#/components/schemas/ErrorWithCode'
        errorId:
          type: string
          description: Identifier for the error
    StakeholderGrantSummaryDetails:
      title: Grant Summary Response
      required:
      - allowEarlyExercise
      - awardTypeId
      - awardTypeName
      - cancelledShares
      - exercisedShares
      - expiryDate
      - grantCurrency
      - grantDate
      - grantId
      - grantName
      - grantNumber
      - grantPrice
      - grantedShares
      - marketPriceAtTimeOfGrant
      - outstandingShares
      - planId
      - stakeholderId
      - underRule701
      - vestingScheduleId
      - vestingScheduleName
      - vestingStartDate
      type: object
      properties:
        grantId:
          type: integer
          description: Identifier for the grant
          format: int32
        stakeholderId:
          type: integer
          description: Identifier for the stakeholder
          format: int32
        planId:
          type: integer
          description: Identifier for the company plan
          format: int32
        awardTypeId:
          type: integer
          description: Identifier for the company award type
          format: int32
        awardTypeName:
          type: string
          description: Name for the company award type
        grantName:
          type: string
          description: Name for the grant, typically generated
        grantNumber:
          type: string
          description: Number for the grant, typically generated
        grantPrice:
          type: number
          description: Price at which the shares are granted
          format: double
        marketPriceAtTimeOfGrant:
          type: number
          description: The fair market value (or latest 409A valuation for private companies) at the time of grant (this is typically auto-populated from the most recent quote, but can also be specified if desired)
          format: double
        grantCurrency:
          type: string
          description: Currency for the grant price / market price at time of grant
          enum:
          - USD
          - CAD
          - GBP
          - EUR
          - JPY
          - AUD
          - KRW
          - DZD
          - AOA
          - ARS
          - AMD
          - AWG
          - BSD
          - BHD
          - BDT
          - BBD
          - BOB
          - BWP
          - BRL
          - BND
          - BGN
          - BZD
          - KYD
          - CLP
          - CNY
          - COP
          - CRC
          - HRK
          - CZK
          - DKK
          - DOP
          - XCD
          - EGP
          - ETB
          - FJD
          - XAF
          - GMD
          - GHS
          - GIP
          - GTQ
          - HNL
          - HKD
          - HUF
          - ISK
          - INR
          - IDR
          - IQD
          - ILS
          - JMD
          - JOD
          - KZT
          - KES
          - KWD
          - LSL
          - MOP
          - MWK
          - MYR
          - MUR
          - MXN
          - MAD
          - MZN
          - MMK
          - NAD
          - ANG
          - NZD
          - NGN
          - NOK
          - OMR
          - PKR
          - PAB
          - PGK
          - PYG
          - PEN
          - PHP
          - PLN
          - QAR
          - RON
          - RUB
          - SAR
          - RSD
          - SCR
          - SGD
          - ZAR
          - SDG
          - LKR
          - SZL
          - SEK
          - CHF
          - TWD
          - TZS
          - THB
          - TTD
          - TND
          - TRY
          - UGX
          - UAH
          - AED
          - UYU
          - UZS
          - VEF
          - VES
          - VND
          - XOF
          - ZWL
          - ZMW
        grantDate:
          type: string
          description: Date on which the shares are granted
          format: date
        expiryDate:
          type: string
          description: Expiry date for the grant
          format: date
        allowEarlyExercise:
          type: boolean
          description: Whether early exercises are allowed for the grant
        underRule701:
          type: boolean
          description: Whether rule 701 applies to the grant
        vestingScheduleId:
          type: integer
          description: Identifier for the vesting schedule
          format: int32
        vestingScheduleName:
          type: string
          description: Name for the vesting schedule
        vestingStartDate:
          type: string
          description: Vesting base or commencement date for the vesting schedule
          format: date
        manualVestingRows:
          type: array
          description: List of all manual vesting rows for the grant, specified when using a manual vesting schedule
          items:
            $ref: '#/components/schemas/ManualVestingRowDetails'
        grantedShares:
          type: number
          description: Quantity of shares for the grant
          format: double
        cancelledShares:
          type: number
          description: Number of shares cancelled for the grant
          format: double
        exercisedShares:
          type: number
          description: Number of shares exercised for the grant
          format: double
        outstandingShares:
          type: number
          description: Number of shares outstanding for the grant
          format: double
        vestingAcceleration:
          type: array
          description: List of the vesting acceleration stipulations of the grant. May be empty.
          items:
            $ref: '#/components/schemas/StakeholderGrantAcceleratedVestingDetails'
      description: List of grants held by the stakeholder
    StakeholderHoldingsSummaryDetails:
      title: Stakeholder Holdings Response
      required:
      - designationsParticipated
      - holdings
      - percentOwnershipTotalCommonStockEquivalent
      - percentOwnershipTotalOutstanding
      - stakeholderId
      - stakeholderName
      - totalCommonStockEquivalentShares
      - totalOutstandingShares
      type: object
      properties:
        stakeholderId:
          type: integer
          description: Identifier for the stakeholder
          format: int32
        stakeholderName:
          type: string
          description: Formatted full name for the stakeholder
        totalOutstandingShares:
          type: number
          description: Total outstanding shares across all holdings for the stakeholder
          format: double
        totalCommonStockEquivalentShares:
          type: number
          description: Total common equivalent (a.k.a. fully diluted) shares across all holdings for the stakeholder
          format: double
        percentOwnershipTotalOutstanding:
          type: number
          description: Percentage representing the fraction of total outstanding shares across all holdings for the stakeholder
          format: double
        percentOwnershipTotalCommonStockEquivalent:
          type: number
          description: Percentage representing the fraction of total common equivalent (a.k.a. fully diluted) shares across all holdings for the stakeholder
          format: double
        designationsParticipated:
          type: array
          description: List of all the designations a stakeholder has participated in
          items:
            type: string
            description: List of all the designations a stakeholder has participated in
        holdings:
          $ref: '#/components/schemas/StakeholderHoldingsDetails'
    StockCertificateSummaryDetails:
      title: Stock Certificate Summary Response
      required:
      - effectiveDate
      - issuePrice
      - issueReason
      - quantity
      - stakeholderId
      - stockCertificateId
      - stockCertificateNumber
      - stockDesignationId
      - stockDesignationName
      - unvestedQuantity
      - vestedQuantity
      type: object
      properties:
        stockCertificateId:
          type: integer
          description: Identifier for the stock certificate
          format: int32
        stakeholderId:
          type: integer
          description: Identifier for the stakeholder
          format: int32
        stockDesignationId:
          type: integer
          description: Identifier for the stock designation
          format: int32
        stockDesignationName:
          type: string
          description: Name for the stock designation
        stockCertificateNumber:
          type: string
          description: Number for the stock certificate
        quantity:
          type: number
          description: Quantity of shares for the stock certificate
          format: double
        issuePrice:
          type: number
          description: Issue price (a.k.a. strike price) for the stock certificate
          format: double
        issueReason:
          type: string
          description: Issue reason for the stock certificate
          enum:
          - ORIGINAL_ISSUANCE
          - ORIGINAL_ISSUANCE_WITH_VESTING
          - OTHER
        effectiveDate:
          type: string
          description: Effective date for the stock certificate
          format: date
        boardApprovalDate:
          type: string
          description: Board approval date for the stock certificate (if not supplied, the certificate will be created with an unapproved status)
          format: date
        vestingScheduleId:
          type: integer
          description: Identifier for the vesting schedule
          format: int32
        vestingScheduleName:
          type: string
          description: Name for the vesting schedule
        vestingStartDate:
          type: string
          description: Vesting base or commencement date for the vesting schedule
          format: date
        manualVestingRows:
          type: array
          description: List of all manual vesting rows for the stock certificate, specified when using a manual vesting schedule
          items:
            $ref: '#/components/schemas/ManualVestingRowDetails'
        vestedQuantity:
          type: number
          description: Quantity of the total shares which are vested
          format: double
        unvestedQuantity:
          type: number
          description: Quantity of the total shares which are yet unvested, and are only held as the result of an early exercise
          format: double
      description: List of stock certificates held by the stakeholder
    ManualVestingRowDetails:
      title: Manual Vesting Row Response
      required:
      - vestQuantity
      type: object
      properties:
        vestDate:
          type: string
          description: Date on which the vesting occurs for the row/tranche
          format: date
        vestQuantity:
          type: number
          description: Quantity of shares to vest for the row/tranche
          format: double
      description: List of all manual vesting rows for the grant, specified when using a manual vesting schedule
  securitySchemes:
    accessToken:
      type: http
      scheme: bearer
      bearerFormat: JWT