naftiko: 1.0.0-alpha2 info: label: Endpoints — subpackage_contractorHiring description: 'Endpoints — subpackage_contractorHiring. 7 operations. Lead operation: Attach a file to contract. Self-contained Naftiko capability covering one Deel business surface.' tags: - Deel - subpackage_contractorHiring created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: DEEL_API_KEY: DEEL_API_KEY capability: consumes: - type: http namespace: contracts-endpoints-subpackage-contractorhiring baseUri: https://api.letsdeel.com/rest/v2 description: Endpoints — subpackage_contractorHiring business capability. Self-contained, no shared references. resources: - name: contracts-contract_id-documents path: /contracts/{contract_id}/documents operations: - name: createcontractdocument method: POST description: Attach a file to contract 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: contracts-contract_id-invitations path: /contracts/{contract_id}/invitations operations: - name: getcontractinvitations method: DELETE description: Remove invite 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: createcontractinvitation method: POST description: Send contract to worker 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: contracts-contract_id-invite path: /contracts/{contract_id}/invite operations: - name: getcontractinvite method: GET description: Get worker invite link outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: contract_id in: path type: string description: Deel contract id. required: true - name: locale in: query type: string description: Locale to use for the invite link. - name: Authorization in: header type: string description: '## Authentication' required: true - name: contracts-contract_id-payment_cycles path: /contracts/{contract_id}/payment_cycles operations: - name: getcontractpaymentcycles method: GET description: Retrieve contractor payment dates outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: contract_id in: path type: string description: The Deel contract ID for which payment dates are being retrieved. required: true - name: Authorization in: header type: string description: '## Authentication' required: true - name: contracts-contract_id-preview path: /contracts/{contract_id}/preview operations: - name: getcontractpreview method: GET description: Preview a contract agreement outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: contract_id in: path type: string description: Deel contract id. required: true - name: templateId in: query type: string description: ID of an existing contract template. - name: Authorization in: header type: string description: '## Authentication' required: true - name: contracts-contract_id-signatures path: /contracts/{contract_id}/signatures operations: - name: createcontractsignature method: POST description: Sign a contract 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 authentication: type: bearer token: '{{env.DEEL_API_KEY}}' exposes: - type: rest namespace: contracts-endpoints-subpackage-contractorhiring-rest port: 8080 description: REST adapter for Endpoints — subpackage_contractorHiring. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/contracts/{contract-id}/documents name: contracts-contract-id-documents description: REST surface for contracts-contract_id-documents. operations: - method: POST name: createcontractdocument description: Attach a file to contract call: contracts-endpoints-subpackage-contractorhiring.createcontractdocument with: contract_id: rest.contract_id Authorization: rest.Authorization body: rest.body outputParameters: - type: object mapping: $. - path: /v1/contracts/{contract-id}/invitations name: contracts-contract-id-invitations description: REST surface for contracts-contract_id-invitations. operations: - method: DELETE name: getcontractinvitations description: Remove invite call: contracts-endpoints-subpackage-contractorhiring.getcontractinvitations with: contract_id: rest.contract_id Authorization: rest.Authorization outputParameters: - type: object mapping: $. - method: POST name: createcontractinvitation description: Send contract to worker call: contracts-endpoints-subpackage-contractorhiring.createcontractinvitation with: contract_id: rest.contract_id Authorization: rest.Authorization body: rest.body outputParameters: - type: object mapping: $. - path: /v1/contracts/{contract-id}/invite name: contracts-contract-id-invite description: REST surface for contracts-contract_id-invite. operations: - method: GET name: getcontractinvite description: Get worker invite link call: contracts-endpoints-subpackage-contractorhiring.getcontractinvite with: contract_id: rest.contract_id locale: rest.locale Authorization: rest.Authorization outputParameters: - type: object mapping: $. - path: /v1/contracts/{contract-id}/payment-cycles name: contracts-contract-id-payment-cycles description: REST surface for contracts-contract_id-payment_cycles. operations: - method: GET name: getcontractpaymentcycles description: Retrieve contractor payment dates call: contracts-endpoints-subpackage-contractorhiring.getcontractpaymentcycles with: contract_id: rest.contract_id Authorization: rest.Authorization outputParameters: - type: object mapping: $. - path: /v1/contracts/{contract-id}/preview name: contracts-contract-id-preview description: REST surface for contracts-contract_id-preview. operations: - method: GET name: getcontractpreview description: Preview a contract agreement call: contracts-endpoints-subpackage-contractorhiring.getcontractpreview with: contract_id: rest.contract_id templateId: rest.templateId Authorization: rest.Authorization outputParameters: - type: object mapping: $. - path: /v1/contracts/{contract-id}/signatures name: contracts-contract-id-signatures description: REST surface for contracts-contract_id-signatures. operations: - method: POST name: createcontractsignature description: Sign a contract call: contracts-endpoints-subpackage-contractorhiring.createcontractsignature with: contract_id: rest.contract_id Authorization: rest.Authorization body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: contracts-endpoints-subpackage-contractorhiring-mcp port: 9090 transport: http description: MCP adapter for Endpoints — subpackage_contractorHiring. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: attach-file-contract description: Attach a file to contract hints: readOnly: false destructive: false idempotent: false call: contracts-endpoints-subpackage-contractorhiring.createcontractdocument with: contract_id: tools.contract_id Authorization: tools.Authorization body: tools.body outputParameters: - type: object mapping: $. - name: remove-invite description: Remove invite hints: readOnly: false destructive: true idempotent: true call: contracts-endpoints-subpackage-contractorhiring.getcontractinvitations with: contract_id: tools.contract_id Authorization: tools.Authorization outputParameters: - type: object mapping: $. - name: send-contract-worker description: Send contract to worker hints: readOnly: false destructive: false idempotent: false call: contracts-endpoints-subpackage-contractorhiring.createcontractinvitation with: contract_id: tools.contract_id Authorization: tools.Authorization body: tools.body outputParameters: - type: object mapping: $. - name: get-worker-invite-link description: Get worker invite link hints: readOnly: true destructive: false idempotent: true call: contracts-endpoints-subpackage-contractorhiring.getcontractinvite with: contract_id: tools.contract_id locale: tools.locale Authorization: tools.Authorization outputParameters: - type: object mapping: $. - name: retrieve-contractor-payment-dates description: Retrieve contractor payment dates hints: readOnly: true destructive: false idempotent: true call: contracts-endpoints-subpackage-contractorhiring.getcontractpaymentcycles with: contract_id: tools.contract_id Authorization: tools.Authorization outputParameters: - type: object mapping: $. - name: preview-contract-agreement description: Preview a contract agreement hints: readOnly: true destructive: false idempotent: true call: contracts-endpoints-subpackage-contractorhiring.getcontractpreview with: contract_id: tools.contract_id templateId: tools.templateId Authorization: tools.Authorization outputParameters: - type: object mapping: $. - name: sign-contract description: Sign a contract hints: readOnly: false destructive: false idempotent: false call: contracts-endpoints-subpackage-contractorhiring.createcontractsignature with: contract_id: tools.contract_id Authorization: tools.Authorization body: tools.body outputParameters: - type: object mapping: $.