openapi: 3.1.0 info: title: Endpoints subpackage_icInvoicingTaxes API version: 1.0.0 servers: - url: https://api.letsdeel.com/rest/v2 - url: https://api-staging.letsdeel.com/rest/v2 tags: - name: subpackage_icInvoicingTaxes paths: /contracts/{contract_id}/ic-invoicing-taxes: post: operationId: create-ic-invoicing-tax summary: Create IC invoicing tax description: "Use this endpoint to create an invoicing tax for an independent contractor contract.\n **Token scopes**: `invoice-adjustments:write`" tags: - subpackage_icInvoicingTaxes parameters: - name: contract_id in: path description: Deel Contract ID required: true schema: type: string - name: Authorization in: header description: "## Authentication\nThe Deel API uses bearer tokens to authenticate requests. All API calls must be made over HTTPS — calls over plain HTTP or without authentication will fail.\n\n```curl\ncurl -X GET 'https://api.letsdeel.com/rest/v2/contracts' \\\n -H 'Authorization: Bearer YOUR-TOKEN-HERE'\n```\n\n[Learn more about authentication](/api/authentication)\n" required: true schema: type: string responses: '201': description: IC tax successfully created content: application/json: schema: $ref: '#/components/schemas/IC invoicing taxes_createIcInvoicingTax_Response_201' '400': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/CreateIcInvoicingTaxRequestBadRequestError' '401': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '403': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '404': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '500': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/CreateIcInvoicingTaxRequestInternalServerError' requestBody: content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/ContractsContractIdIcInvoicingTaxesPostRequestBodyContentApplicationJsonSchemaData' get: operationId: get-ic-invoicing-taxes summary: Get IC invoicing taxes description: "Use this endpoint to retrieve invoicing tax settings for an IC contract. Provide the contract_id to fetch vat.percentage and withholding_tax.percentage, which can be used when displaying or calculating taxes on invoices for the contract.\n **Token scopes**: `invoice-adjustments:read`" tags: - subpackage_icInvoicingTaxes parameters: - name: contract_id in: path description: Deel Contract ID required: true schema: type: string - name: Authorization in: header description: "## Authentication\nThe Deel API uses bearer tokens to authenticate requests. All API calls must be made over HTTPS — calls over plain HTTP or without authentication will fail.\n\n```curl\ncurl -X GET 'https://api.letsdeel.com/rest/v2/contracts' \\\n -H 'Authorization: Bearer YOUR-TOKEN-HERE'\n```\n\n[Learn more about authentication](/api/authentication)\n" required: true schema: type: string responses: '200': description: IC invoicing taxes response content: application/json: schema: $ref: '#/components/schemas/IC invoicing taxes_getIcInvoicingTaxes_Response_200' '400': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/GetIcInvoicingTaxesRequestBadRequestError' '401': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '403': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '404': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '500': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/GetIcInvoicingTaxesRequestInternalServerError' patch: operationId: update-ic-invoicing-tax summary: Update IC invoicing tax description: "Use this endpoint to update the invoicing tax for an independent contractor’s contract. Provide tax_type (WITHHOLDING_TAX or VAT) and percentage to adjust how taxes are applied to invoices.\n **Token scopes**: `invoice-adjustments:write`" tags: - subpackage_icInvoicingTaxes parameters: - name: contract_id in: path description: Deel Contract ID required: true schema: type: string - name: Authorization in: header description: "## Authentication\nThe Deel API uses bearer tokens to authenticate requests. All API calls must be made over HTTPS — calls over plain HTTP or without authentication will fail.\n\n```curl\ncurl -X GET 'https://api.letsdeel.com/rest/v2/contracts' \\\n -H 'Authorization: Bearer YOUR-TOKEN-HERE'\n```\n\n[Learn more about authentication](/api/authentication)\n" required: true schema: type: string responses: '204': description: IC tax successfully updated content: application/json: schema: $ref: '#/components/schemas/IC invoicing taxes_updateIcInvoicingTax_Response_204' '400': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/UpdateIcInvoicingTaxRequestBadRequestError' '401': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '403': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '404': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '500': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/UpdateIcInvoicingTaxRequestInternalServerError' requestBody: content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/ContractsContractIdIcInvoicingTaxesPatchRequestBodyContentApplicationJsonSchemaData' /contracts/{contract_id}/ic-invoicing-taxes/{tax_type}: delete: operationId: delete-ic-invoicing-tax summary: Delete IC invoicing tax description: "Use this endpoint to remove an IC invoicing tax from a contract when it no longer applies. Specify the contract_id and tax_type in the path. This action is irreversible and removes the tax from future invoicing.\n **Token scopes**: `invoice-adjustments:write`" tags: - subpackage_icInvoicingTaxes parameters: - name: contract_id in: path description: Deel Contract ID required: true schema: type: string - name: tax_type in: path description: IC tax type required: true schema: $ref: '#/components/schemas/ContractsContractIdIcInvoicingTaxesTaxTypeDeleteParametersTaxType' - name: Authorization in: header description: "## Authentication\nThe Deel API uses bearer tokens to authenticate requests. All API calls must be made over HTTPS — calls over plain HTTP or without authentication will fail.\n\n```curl\ncurl -X GET 'https://api.letsdeel.com/rest/v2/contracts' \\\n -H 'Authorization: Bearer YOUR-TOKEN-HERE'\n```\n\n[Learn more about authentication](/api/authentication)\n" required: true schema: type: string responses: '204': description: IC tax successfully deleted content: application/json: schema: $ref: '#/components/schemas/IC invoicing taxes_deleteIcInvoicingTax_Response_204' '400': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/DeleteIcInvoicingTaxRequestBadRequestError' '401': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '403': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '404': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '500': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/DeleteIcInvoicingTaxRequestInternalServerError' components: schemas: UpdateIcInvoicingTaxRequestBadRequestError: type: object properties: errors: type: array items: $ref: '#/components/schemas/ContractsContractIdIcInvoicingTaxesPatchResponsesContentApplicationJsonSchemaErrorsItems' title: UpdateIcInvoicingTaxRequestBadRequestError GetIcInvoicingTaxesRequestBadRequestError: type: object properties: errors: type: array items: $ref: '#/components/schemas/ContractsContractIdIcInvoicingTaxesGetResponsesContentApplicationJsonSchemaErrorsItems' title: GetIcInvoicingTaxesRequestBadRequestError ContractsContractIdIcInvoicingTaxesPatchRequestBodyContentApplicationJsonSchemaData: type: object properties: tax_type: $ref: '#/components/schemas/ContractsContractIdIcInvoicingTaxesPatchRequestBodyContentApplicationJsonSchemaDataTaxType' description: Type of IC invoicing tax. percentage: type: number format: double description: Tax percentage amount. required: - tax_type - percentage title: ContractsContractIdIcInvoicingTaxesPatchRequestBodyContentApplicationJsonSchemaData UpdateIcInvoicingTaxRequestInternalServerError: type: object properties: errors: type: array items: $ref: '#/components/schemas/ContractsContractIdIcInvoicingTaxesPatchResponsesContentApplicationJsonSchemaErrorsItems' title: UpdateIcInvoicingTaxRequestInternalServerError ContractsContractIdIcInvoicingTaxesTaxTypeDeleteResponsesContentApplicationJsonSchemaErrorsItems: type: object properties: code: type: string description: Machine-readable error code message: type: string description: Human-readable explanation of the error title: ContractsContractIdIcInvoicingTaxesTaxTypeDeleteResponsesContentApplicationJsonSchemaErrorsItems ContractsContractIdIcInvoicingTaxesPostResponsesContentApplicationJsonSchemaErrorsItems: type: object properties: code: type: string description: Machine-readable error code message: type: string description: Human-readable explanation of the error title: ContractsContractIdIcInvoicingTaxesPostResponsesContentApplicationJsonSchemaErrorsItems ContractsContractIdIcInvoicingTaxesGetResponsesContentApplicationJsonSchemaDataVat: type: object properties: percentage: type: - number - 'null' format: double description: VAT percentage description: VAT tax details (if applicable) title: ContractsContractIdIcInvoicingTaxesGetResponsesContentApplicationJsonSchemaDataVat ContractsContractIdIcInvoicingTaxesPatchRequestBodyContentApplicationJsonSchemaDataTaxType: type: string enum: - WITHHOLDING_TAX - VAT description: Type of IC invoicing tax. title: ContractsContractIdIcInvoicingTaxesPatchRequestBodyContentApplicationJsonSchemaDataTaxType ContractsContractIdIcInvoicingTaxesTaxTypeDeleteParametersTaxType: type: string enum: - WITHHOLDING_TAX - VAT title: ContractsContractIdIcInvoicingTaxesTaxTypeDeleteParametersTaxType DeleteIcInvoicingTaxRequestInternalServerError: type: object properties: errors: type: array items: $ref: '#/components/schemas/ContractsContractIdIcInvoicingTaxesTaxTypeDeleteResponsesContentApplicationJsonSchemaErrorsItems' title: DeleteIcInvoicingTaxRequestInternalServerError IC invoicing taxes_updateIcInvoicingTax_Response_204: type: object properties: {} description: Empty response body title: IC invoicing taxes_updateIcInvoicingTax_Response_204 ApiError: type: object properties: message: type: string description: A description of the returned error path: type: string description: The JSON path where input validation failed title: ApiError ContractsContractIdIcInvoicingTaxesPostRequestBodyContentApplicationJsonSchemaDataTaxType: type: string enum: - WITHHOLDING_TAX - VAT description: Type of IC invoicing tax. title: ContractsContractIdIcInvoicingTaxesPostRequestBodyContentApplicationJsonSchemaDataTaxType CreateIcInvoicingTaxRequestInternalServerError: type: object properties: errors: type: array items: $ref: '#/components/schemas/ContractsContractIdIcInvoicingTaxesPostResponsesContentApplicationJsonSchemaErrorsItems' title: CreateIcInvoicingTaxRequestInternalServerError ContractsContractIdIcInvoicingTaxesGetResponsesContentApplicationJsonSchemaDataWithholdingTax: type: object properties: percentage: type: - number - 'null' format: double description: Withholding tax percentage description: Withholding tax details (if applicable) title: ContractsContractIdIcInvoicingTaxesGetResponsesContentApplicationJsonSchemaDataWithholdingTax IC invoicing taxes_getIcInvoicingTaxes_Response_200: type: object properties: data: $ref: '#/components/schemas/ContractsContractIdIcInvoicingTaxesGetResponsesContentApplicationJsonSchemaData' title: IC invoicing taxes_getIcInvoicingTaxes_Response_200 ContractsContractIdIcInvoicingTaxesGetResponsesContentApplicationJsonSchemaErrorsItems: type: object properties: code: type: string description: Machine-readable error code message: type: string description: Human-readable explanation of the error title: ContractsContractIdIcInvoicingTaxesGetResponsesContentApplicationJsonSchemaErrorsItems ApiErrorContainer: type: object properties: request: $ref: '#/components/schemas/ApiErrorRequest' errors: type: array items: $ref: '#/components/schemas/ApiError' title: ApiErrorContainer ContractsContractIdIcInvoicingTaxesGetResponsesContentApplicationJsonSchemaData: type: object properties: id: type: string description: Deel contract ID vat: oneOf: - $ref: '#/components/schemas/ContractsContractIdIcInvoicingTaxesGetResponsesContentApplicationJsonSchemaDataVat' - type: 'null' description: VAT tax details (if applicable) withholding_tax: oneOf: - $ref: '#/components/schemas/ContractsContractIdIcInvoicingTaxesGetResponsesContentApplicationJsonSchemaDataWithholdingTax' - type: 'null' description: Withholding tax details (if applicable) required: - id title: ContractsContractIdIcInvoicingTaxesGetResponsesContentApplicationJsonSchemaData ContractsContractIdIcInvoicingTaxesPatchResponsesContentApplicationJsonSchemaErrorsItems: type: object properties: code: type: string description: Machine-readable error code message: type: string description: Human-readable explanation of the error title: ContractsContractIdIcInvoicingTaxesPatchResponsesContentApplicationJsonSchemaErrorsItems IC invoicing taxes_deleteIcInvoicingTax_Response_204: type: object properties: {} description: Empty response body title: IC invoicing taxes_deleteIcInvoicingTax_Response_204 GetIcInvoicingTaxesRequestInternalServerError: type: object properties: errors: type: array items: $ref: '#/components/schemas/ContractsContractIdIcInvoicingTaxesGetResponsesContentApplicationJsonSchemaErrorsItems' title: GetIcInvoicingTaxesRequestInternalServerError IC invoicing taxes_createIcInvoicingTax_Response_201: type: object properties: {} description: Empty response body title: IC invoicing taxes_createIcInvoicingTax_Response_201 CreateIcInvoicingTaxRequestBadRequestError: type: object properties: errors: type: array items: $ref: '#/components/schemas/ContractsContractIdIcInvoicingTaxesPostResponsesContentApplicationJsonSchemaErrorsItems' title: CreateIcInvoicingTaxRequestBadRequestError ContractsContractIdIcInvoicingTaxesPostRequestBodyContentApplicationJsonSchemaData: type: object properties: tax_type: $ref: '#/components/schemas/ContractsContractIdIcInvoicingTaxesPostRequestBodyContentApplicationJsonSchemaDataTaxType' description: Type of IC invoicing tax. percentage: type: number format: double description: Tax percentage amount. required: - tax_type - percentage title: ContractsContractIdIcInvoicingTaxesPostRequestBodyContentApplicationJsonSchemaData ApiErrorRequest: type: object properties: method: type: string description: The HTTP method of the failed request url: type: string description: The relative URL of the failed request status: type: number format: double description: The status code of the response api_req_id: type: string description: The request ID of the failed request docs: type: string description: A link to the official documentation for the requested endpoint resource source: type: string description: The source handler which produced the returned error code: type: number format: double description: The code of the source handler which produced the returned error title: ApiErrorRequest DeleteIcInvoicingTaxRequestBadRequestError: type: object properties: errors: type: array items: $ref: '#/components/schemas/ContractsContractIdIcInvoicingTaxesTaxTypeDeleteResponsesContentApplicationJsonSchemaErrorsItems' title: DeleteIcInvoicingTaxRequestBadRequestError securitySchemes: deelToken: type: http scheme: bearer description: "## Authentication\nThe Deel API uses bearer tokens to authenticate requests. All API calls must be made over HTTPS — calls over plain HTTP or without authentication will fail.\n\n```curl\ncurl -X GET 'https://api.letsdeel.com/rest/v2/contracts' \\\n -H 'Authorization: Bearer YOUR-TOKEN-HERE'\n```\n\n[Learn more about authentication](/api/authentication)\n" oauth2: type: http scheme: bearer description: Standard OAuth2 security scheme based on https://swagger.io/docs/specification/authentication/