Deel · Capability

Endpoints — subpackage_contracts

Endpoints — subpackage_contracts. 12 operations. Lead operation: Retrieve contract templates. Self-contained Naftiko capability covering one Deel business surface.

Run with Naftiko Deelsubpackage_contracts

What You Can Do

GET
Getcontracttemplates — Retrieve contract templates
/v1/contract-templates
POST
Createiccontract — Create a new contract
/v1/contracts
GET
Getcontracts — List of contracts
/v1/contracts
PATCH
Updateiccontract — Add external Id
/v1/contracts/{contract-id}
GET
Getcontract — Retrieve a single contract
/v1/contracts/{contract-id}
GET
Getcontractequitywithholdingamount — Get an estimate of withholding amount given an equity event.
/v1/contracts/{contract-id}/equity-withholding-estimate
POST
Createarequesttoexerciseequityv20260101 — Create a request to exercise equity.
/v1/equity/exercise
PATCH
Approveanequityexercisev20260101 — Approve an equity exercise
/v1/equity/exercise/{public-id}
POST
Signamendment — Sign amendment
/v1/workers/amendments/{amendment-id}/sign
GET
Retrievecontractpdfdownloadlink — Retrieve contract PDF download link
/v1/workers/contracts/{contract-id}/pdf
POST
Rejectcontract — Reject contract
/v1/workers/contracts/{contract-id}/reject
POST
Signworkercontract — Sign worker contract
/v1/workers/contracts/{contract-id}/signatures

MCP Tools

retrieve-contract-templates

Retrieve contract templates

read-only idempotent
create-new-contract

Create a new contract

list-contracts

List of contracts

read-only idempotent
add-external-id

Add external Id

idempotent
retrieve-single-contract

Retrieve a single contract

read-only idempotent
get-estimate-withholding-amount-given

Get an estimate of withholding amount given an equity event.

read-only idempotent
create-request-exercise-equity

Create a request to exercise equity.

approve-equity-exercise

Approve an equity exercise

idempotent
sign-amendment

Sign amendment

retrieve-contract-pdf-download-link

Retrieve contract PDF download link

read-only idempotent
reject-contract

Reject contract

sign-worker-contract

Sign worker contract

Capability Spec

platform-endpoints-subpackage-contracts.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Endpoints — subpackage_contracts
  description: 'Endpoints — subpackage_contracts. 12 operations. Lead operation: Retrieve contract templates. Self-contained
    Naftiko capability covering one Deel business surface.'
  tags:
  - Deel
  - subpackage_contracts
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    DEEL_API_KEY: DEEL_API_KEY
capability:
  consumes:
  - type: http
    namespace: platform-endpoints-subpackage-contracts
    baseUri: https://api.letsdeel.com/rest/v2
    description: Endpoints — subpackage_contracts business capability. Self-contained, no shared references.
    resources:
    - name: contract-templates
      path: /contract-templates
      operations:
      - name: getcontracttemplates
        method: GET
        description: Retrieve contract templates
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: Authorization
          in: header
          type: string
          description: '## Authentication'
          required: true
    - name: contracts
      path: /contracts
      operations:
      - name: createiccontract
        method: POST
        description: Create a new contract
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: Authorization
          in: header
          type: string
          description: '## Authentication'
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
      - name: getcontracts
        method: GET
        description: List of contracts
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: after_cursor
          in: query
          type: string
          description: Return next page of results after the given cursor.
        - name: limit
          in: query
          type: string
          description: Return a page of results with the given number of records.
        - name: order_direction
          in: query
          type: string
          description: Order direction of results; ascending or descending.
        - name: types
          in: query
          type: array
          description: Filter contracts by type. A contract is included in the results if its type is in this list.
        - name: statuses
          in: query
          type: array
          description: Filter contracts by current status. A contract is included in the results if its status is in this
            list.
        - name: team_id
          in: query
          type: string
          description: 'Filter contracts for the given team ID. NOTE: All query parameters are technically strings or arrays
            of strings.'
        - name: external_id
          in: query
          type: string
          description: Filter contracts for the given external ID.
        - name: external_id_absent
          in: query
          type: string
          description: Filter contracts by external ID presence. When true, returns contracts without an external ID. When
            false, returns contracts with an external ID. Cannot be used
        - name: countries
          in: query
          type: array
          description: Filter contracts by country codes.
        - name: currencies
          in: query
          type: string
          description: Filter contracts by currency codes.
        - name: search
          in: query
          type: string
          description: Include a contract if its name or the contractor's name contains the given search term.
        - name: sort_by
          in: query
          type: string
          description: Sort contracts by the given field name.
        - name: expand
          in: query
          type: string
          description: Include cost centers in the response.
        - name: Authorization
          in: header
          type: string
          description: '## Authentication'
          required: true
    - name: contracts-contract_id
      path: /contracts/{contract_id}
      operations:
      - name: updateiccontract
        method: PATCH
        description: Add external Id
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: contract_id
          in: path
          type: string
          description: Deel contract id.
          required: true
        - name: Authorization
          in: header
          type: string
          description: '## Authentication'
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
      - name: getcontract
        method: GET
        description: Retrieve a single contract
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: contract_id
          in: path
          type: string
          description: Unique identifier of the contract.
          required: true
        - name: expand
          in: query
          type: string
          description: Include cost centers in the response.
        - name: Authorization
          in: header
          type: string
          description: '## Authentication'
          required: true
    - name: contracts-contract_id-equity_withholding_estimate
      path: /contracts/{contract_id}/equity_withholding_estimate
      operations:
      - name: getcontractequitywithholdingamount
        method: GET
        description: Get an estimate of withholding amount given an equity event.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: contract_id
          in: path
          type: string
          description: Deel contract id.
          required: true
        - name: event_value
          in: query
          type: string
          description: The monetary value of the equity event.
          required: true
        - name: event_currency
          in: query
          type: string
          description: Three-letter currency code for the payment, following ISO 4217.
          required: true
        - name: Authorization
          in: header
          type: string
          description: '## Authentication'
          required: true
    - name: equity-exercise
      path: /equity/exercise
      operations:
      - name: createarequesttoexerciseequityv20260101
        method: POST
        description: Create a request to exercise equity.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: Authorization
          in: header
          type: string
          description: '## Authentication'
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: equity-exercise-public_id
      path: /equity/exercise/{public_id}
      operations:
      - name: approveanequityexercisev20260101
        method: PATCH
        description: Approve an equity exercise
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: public_id
          in: path
          type: string
          description: Equity exercise public ID.
          required: true
        - name: Authorization
          in: header
          type: string
          description: '## Authentication'
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: workers-amendments-amendment_id-sign
      path: /workers/amendments/{amendment_id}/sign
      operations:
      - name: signamendment
        method: POST
        description: Sign amendment
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: amendment_id
          in: path
          type: string
          description: The unique identifier of the amendment to sign
          required: true
        - name: Authorization
          in: header
          type: string
          description: '## Authentication'
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: workers-contracts-contract_id-pdf
      path: /workers/contracts/{contract_id}/pdf
      operations:
      - name: retrievecontractpdfdownloadlink
        method: GET
        description: Retrieve contract PDF download link
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: contract_id
          in: path
          type: string
          description: The unique public identifier of the contract.
          required: true
        - name: Authorization
          in: header
          type: string
          description: '## Authentication'
          required: true
    - name: workers-contracts-contract_id-reject
      path: /workers/contracts/{contract_id}/reject
      operations:
      - name: rejectcontract
        method: POST
        description: Reject contract
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: contract_id
          in: path
          type: string
          description: The unique public identifier of the contract to reject. This is the contract's public ID that can be
            used to identify the specific contract in the system.
          required: true
        - name: Authorization
          in: header
          type: string
          description: '## Authentication'
          required: true
    - name: workers-contracts-contract_id-signatures
      path: /workers/contracts/{contract_id}/signatures
      operations:
      - name: signworkercontract
        method: POST
        description: Sign worker contract
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: contract_id
          in: path
          type: string
          description: The unique identifier of the contract.
          required: true
        - name: Authorization
          in: header
          type: string
          description: '## Authentication'
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    authentication:
      type: bearer
      token: '{{env.DEEL_API_KEY}}'
  exposes:
  - type: rest
    namespace: platform-endpoints-subpackage-contracts-rest
    port: 8080
    description: REST adapter for Endpoints — subpackage_contracts. One Spectral-compliant resource per consumed operation,
      prefixed with /v1.
    resources:
    - path: /v1/contract-templates
      name: contract-templates
      description: REST surface for contract-templates.
      operations:
      - method: GET
        name: getcontracttemplates
        description: Retrieve contract templates
        call: platform-endpoints-subpackage-contracts.getcontracttemplates
        with:
          Authorization: rest.Authorization
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/contracts
      name: contracts
      description: REST surface for contracts.
      operations:
      - method: POST
        name: createiccontract
        description: Create a new contract
        call: platform-endpoints-subpackage-contracts.createiccontract
        with:
          Authorization: rest.Authorization
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: GET
        name: getcontracts
        description: List of contracts
        call: platform-endpoints-subpackage-contracts.getcontracts
        with:
          after_cursor: rest.after_cursor
          limit: rest.limit
          order_direction: rest.order_direction
          types: rest.types
          statuses: rest.statuses
          team_id: rest.team_id
          external_id: rest.external_id
          external_id_absent: rest.external_id_absent
          countries: rest.countries
          currencies: rest.currencies
          search: rest.search
          sort_by: rest.sort_by
          expand: rest.expand
          Authorization: rest.Authorization
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/contracts/{contract-id}
      name: contracts-contract-id
      description: REST surface for contracts-contract_id.
      operations:
      - method: PATCH
        name: updateiccontract
        description: Add external Id
        call: platform-endpoints-subpackage-contracts.updateiccontract
        with:
          contract_id: rest.contract_id
          Authorization: rest.Authorization
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: GET
        name: getcontract
        description: Retrieve a single contract
        call: platform-endpoints-subpackage-contracts.getcontract
        with:
          contract_id: rest.contract_id
          expand: rest.expand
          Authorization: rest.Authorization
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/contracts/{contract-id}/equity-withholding-estimate
      name: contracts-contract-id-equity-withholding-estimate
      description: REST surface for contracts-contract_id-equity_withholding_estimate.
      operations:
      - method: GET
        name: getcontractequitywithholdingamount
        description: Get an estimate of withholding amount given an equity event.
        call: platform-endpoints-subpackage-contracts.getcontractequitywithholdingamount
        with:
          contract_id: rest.contract_id
          event_value: rest.event_value
          event_currency: rest.event_currency
          Authorization: rest.Authorization
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/equity/exercise
      name: equity-exercise
      description: REST surface for equity-exercise.
      operations:
      - method: POST
        name: createarequesttoexerciseequityv20260101
        description: Create a request to exercise equity.
        call: platform-endpoints-subpackage-contracts.createarequesttoexerciseequityv20260101
        with:
          Authorization: rest.Authorization
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/equity/exercise/{public-id}
      name: equity-exercise-public-id
      description: REST surface for equity-exercise-public_id.
      operations:
      - method: PATCH
        name: approveanequityexercisev20260101
        description: Approve an equity exercise
        call: platform-endpoints-subpackage-contracts.approveanequityexercisev20260101
        with:
          public_id: rest.public_id
          Authorization: rest.Authorization
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/workers/amendments/{amendment-id}/sign
      name: workers-amendments-amendment-id-sign
      description: REST surface for workers-amendments-amendment_id-sign.
      operations:
      - method: POST
        name: signamendment
        description: Sign amendment
        call: platform-endpoints-subpackage-contracts.signamendment
        with:
          amendment_id: rest.amendment_id
          Authorization: rest.Authorization
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/workers/contracts/{contract-id}/pdf
      name: workers-contracts-contract-id-pdf
      description: REST surface for workers-contracts-contract_id-pdf.
      operations:
      - method: GET
        name: retrievecontractpdfdownloadlink
        description: Retrieve contract PDF download link
        call: platform-endpoints-subpackage-contracts.retrievecontractpdfdownloadlink
        with:
          contract_id: rest.contract_id
          Authorization: rest.Authorization
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/workers/contracts/{contract-id}/reject
      name: workers-contracts-contract-id-reject
      description: REST surface for workers-contracts-contract_id-reject.
      operations:
      - method: POST
        name: rejectcontract
        description: Reject contract
        call: platform-endpoints-subpackage-contracts.rejectcontract
        with:
          contract_id: rest.contract_id
          Authorization: rest.Authorization
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/workers/contracts/{contract-id}/signatures
      name: workers-contracts-contract-id-signatures
      description: REST surface for workers-contracts-contract_id-signatures.
      operations:
      - method: POST
        name: signworkercontract
        description: Sign worker contract
        call: platform-endpoints-subpackage-contracts.signworkercontract
        with:
          contract_id: rest.contract_id
          Authorization: rest.Authorization
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: platform-endpoints-subpackage-contracts-mcp
    port: 9090
    transport: http
    description: MCP adapter for Endpoints — subpackage_contracts. One tool per consumed operation, routed inline through
      this capability's consumes block.
    tools:
    - name: retrieve-contract-templates
      description: Retrieve contract templates
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: platform-endpoints-subpackage-contracts.getcontracttemplates
      with:
        Authorization: tools.Authorization
      outputParameters:
      - type: object
        mapping: $.
    - name: create-new-contract
      description: Create a new contract
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: platform-endpoints-subpackage-contracts.createiccontract
      with:
        Authorization: tools.Authorization
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: list-contracts
      description: List of contracts
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: platform-endpoints-subpackage-contracts.getcontracts
      with:
        after_cursor: tools.after_cursor
        limit: tools.limit
        order_direction: tools.order_direction
        types: tools.types
        statuses: tools.statuses
        team_id: tools.team_id
        external_id: tools.external_id
        external_id_absent: tools.external_id_absent
        countries: tools.countries
        currencies: tools.currencies
        search: tools.search
        sort_by: tools.sort_by
        expand: tools.expand
        Authorization: tools.Authorization
      outputParameters:
      - type: object
        mapping: $.
    - name: add-external-id
      description: Add external Id
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: platform-endpoints-subpackage-contracts.updateiccontract
      with:
        contract_id: tools.contract_id
        Authorization: tools.Authorization
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: retrieve-single-contract
      description: Retrieve a single contract
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: platform-endpoints-subpackage-contracts.getcontract
      with:
        contract_id: tools.contract_id
        expand: tools.expand
        Authorization: tools.Authorization
      outputParameters:
      - type: object
        mapping: $.
    - name: get-estimate-withholding-amount-given
      description: Get an estimate of withholding amount given an equity event.
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: platform-endpoints-subpackage-contracts.getcontractequitywithholdingamount
      with:
        contract_id: tools.contract_id
        event_value: tools.event_value
        event_currency: tools.event_currency
        Authorization: tools.Authorization
      outputParameters:
      - type: object
        mapping: $.
    - name: create-request-exercise-equity
      description: Create a request to exercise equity.
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: platform-endpoints-subpackage-contracts.createarequesttoexerciseequityv20260101
      with:
        Authorization: tools.Authorization
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: approve-equity-exercise
      description: Approve an equity exercise
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: platform-endpoints-subpackage-contracts.approveanequityexercisev20260101
      with:
        public_id: tools.public_id
        Authorization: tools.Authorization
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: sign-amendment
      description: Sign amendment
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: platform-endpoints-subpackage-contracts.signamendment
      with:
        amendment_id: tools.amendment_id
        Authorization: tools.Authorization
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: retrieve-contract-pdf-download-link
      description: Retrieve contract PDF download link
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: platform-endpoints-subpackage-contracts.retrievecontractpdfdownloadlink
      with:
        contract_id: tools.contract_id
        Authorization: tools.Authorization
      outputParameters:
      - type: object
        mapping: $.
    - name: reject-contract
      description: Reject contract
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: platform-endpoints-subpackage-contracts.rejectcontract
      with:
        contract_id: tools.contract_id
        Authorization: tools.Authorization
      outputParameters:
      - type: object
        mapping: $.
    - name: sign-worker-contract
      description: Sign worker contract
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: platform-endpoints-subpackage-contracts.signworkercontract
      with:
        contract_id: tools.contract_id
        Authorization: tools.Authorization
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.