Shareworks Grant API

The Grant API from Shareworks — 2 operation(s) for grant.

OpenAPI Specification

shareworks-grant-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Shareworks Admin REST Authentication Token Grant 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: Grant
paths:
  /v1/company/{companyId}/stakeholder/{stakeholderId}/grant:
    get:
      tags:
      - Grant
      summary: GET Grant (All)
      description: Retrieve the details of all grants belonging to the specified stakeholder
      operationId: getStakeholderGrants
      parameters:
      - name: companyId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      - name: stakeholderId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      - name: pageSize
        in: query
        description: Number of items to return per page. Default is 50. Maximum is 250
        schema:
          type: integer
          format: int32
      - name: pageNumber
        in: query
        description: Which page of the data set to fetch. Default is 1.
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: OK
          headers:
            Page-Number:
              description: Identifies which page of the target data set is returned in this response (1 to n). (Only present when the response is paginated)
              style: simple
            Page-Size:
              description: The number of items per page used to paginate the target data set. (Only present when the response is paginated)
              style: simple
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/StakeholderGrantDetails'
        '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
    post:
      tags:
      - Grant
      summary: POST Grant (Create)
      description: Create a grant for the specified stakeholder
      operationId: createStakeholderGrant
      parameters:
      - name: Shareworks-Request-Id
        in: header
        description: An identifier unique to this request.  If a connection is broken or a response does not come in a timely manner, submit the same request again with this same identifier. Shareworks ensures that duplicate requests with the same identifier will only be processed once and will all return the same response.
        required: true
        schema:
          type: string
      - name: companyId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      - name: stakeholderId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StakeholderGrantCrudRequest'
      responses:
        '201':
          description: Created. An object is created and returned
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StakeholderGrantDetails'
        '400':
          description: "The request was unacceptable, often due to missing a required parameter, malformed query, or malformed request body.\n\nAlso occurs when using Shareworks-Request-Id header if:  \n- A previous request with the identifier has been submitted but is not yet complete  \n    - errors[] will include {code: 461, message: A request with the provided Shareworks-Request-Id is currently in-progress}  \n- A previous, but different, request was already processed with the same identifier  \n    - errors[] will include {code: 460, message: The provided Shareworks-Request-Id header is not unique for this user}"
          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/grant/{grantId}:
    get:
      tags:
      - Grant
      summary: GET Grant (Single)
      description: Retrieve the details of the specified grant
      operationId: getStakeholderGrant
      parameters:
      - name: companyId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      - name: grantId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StakeholderGrantDetails'
        '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
    put:
      tags:
      - Grant
      summary: PUT Grant (Update)
      description: Update the details of the specified grant
      operationId: updateStakeholderGrant
      parameters:
      - name: companyId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      - name: grantId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StakeholderGrantCrudRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StakeholderGrantDetails'
        '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:
    StakeholderGrantCrudRequest:
      title: Grant Body
      required:
      - allowEarlyExercise
      - awardTypeId
      - expiryDate
      - grantCurrency
      - grantDate
      - grantPrice
      - grantedShares
      - planId
      - underRule701
      - vestingScheduleId
      type: object
      properties:
        planId:
          type: integer
          description: Identifier for the company plan
          format: int32
        grantName:
          type: string
          description: Name for the grant, typically generated
        awardTypeId:
          type: integer
          description: Identifier for the company award type
          format: int32
        grantDate:
          type: string
          description: Date on which the shares are granted
          format: date
        expiryDate:
          type: string
          description: Expiry date for the grant
          format: date
        grantPrice:
          type: number
          description: Price at which the shares are granted
          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
        grantedShares:
          type: number
          description: Quantity of shares for the grant
          format: double
        vestingScheduleId:
          type: integer
          description: Identifier for the vesting schedule
          format: int32
        vestingStartDate:
          type: string
          description: Vesting base or commencement date for the vesting schedule
          format: date
        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
        allowEarlyExercise:
          type: boolean
          description: Whether early exercises are allowed for the grant
        underRule701:
          type: boolean
          description: Whether rule 701 applies to the grant
        manualVestingRows:
          type: array
          description: List of all manual vesting rows for the grant, specified when using a manual vesting schedule
          items:
            $ref: '#/components/schemas/ManualVestingRowCrudRequest'
        vestingAcceleration:
          type: array
          description: (Optional) List of the vesting acceleration stipulations of the grant. May be empty. Include one stipulation per trigger that is applicable.
          items:
            $ref: '#/components/schemas/StakeholderGrantAcceleratedVestingCrudRequest'
    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.
    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
    ManualVestingRowCrudRequest:
      title: Manual Vesting Row Body
      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
    StakeholderGrantAcceleratedVestingCrudRequest:
      title: Vesting Acceleration Body
      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: (Optional) List of the vesting acceleration stipulations of the grant. May be empty. Include one stipulation per trigger that is applicable.
    StakeholderGrantDetails:
      title: Grant Response
      required:
      - allowEarlyExercise
      - awardTypeId
      - awardTypeName
      - expiryDate
      - grantCurrency
      - grantDate
      - grantId
      - grantName
      - grantNumber
      - grantPrice
      - grantedShares
      - marketPriceAtTimeOfGrant
      - planId
      - stakeholderId
      - underRule701
      - vestingScheduleId
      - vestingScheduleName
      - vestingStartDate
      type: object
      properties:
        grantId:
          type: integer
          description: Identifier for the grant
          format: int32
        planId:
          type: integer
          description: Identifier for the company plan
          format: int32
        stakeholderId:
          type: integer
          description: Identifier for the stakeholder
          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
        grantedShares:
          type: number
          description: Quantity of shares for the grant
          format: double
        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'
        vestingAcceleration:
          type: array
          description: List of the vesting acceleration stipulations of the grant. May be empty.
          items:
            $ref: '#/components/schemas/StakeholderGrantAcceleratedVestingDetails'
    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