openapi: 3.1.0 info: title: Endpoints subpackage_webhooks API version: 1.0.0 servers: - url: https://api.letsdeel.com/rest/v2 - url: https://api-staging.letsdeel.com/rest/v2 tags: - name: subpackage_webhooks paths: /webhooks: post: operationId: create-webhook summary: Create a webhook description: Create a new webhooks subscription. tags: - subpackage_webhooks parameters: - 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: successful operation content: application/json: schema: $ref: '#/components/schemas/WebhookItemResponse' '400': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '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' '405': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '429': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '500': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateWebhookRequest' get: operationId: get-webhooks summary: List of webhooks description: Retrieve a list of webhook subscriptions. tags: - subpackage_webhooks parameters: - 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: successful operation content: application/json: schema: $ref: '#/components/schemas/WebhookListResponse' '400': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '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' '405': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '429': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '500': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' /webhooks/{id}: delete: operationId: delete-webhook summary: Delete a webhook description: Delete a webhook subscription. tags: - subpackage_webhooks parameters: - name: id in: path 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: Successful operation. content: application/json: schema: $ref: '#/components/schemas/GenericResultDeleted' '400': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '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' '405': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '429': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '500': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' patch: operationId: update-webhook summary: Edit a webhook description: Edit a webhook subscription. tags: - subpackage_webhooks parameters: - name: id in: path 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: successful operation content: application/json: schema: $ref: '#/components/schemas/WebhookItemResponse' '400': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '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' '405': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '429': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '500': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchWebhookRequest' get: operationId: get-webhook summary: Retrieve a single webhook description: Retrieve a single webhook subscription. tags: - subpackage_webhooks parameters: - name: id in: path 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: successful operation content: application/json: schema: $ref: '#/components/schemas/WebhookItemResponse' '400': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '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' '405': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '429': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '500': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' /webhooks/events/types: get: operationId: get-webhook-events summary: List of webhook event types description: Retrieve a list of webhook event types. tags: - subpackage_webhooks parameters: - 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: successful operation content: application/json: schema: $ref: '#/components/schemas/WebhookEventTypeListResponse' '400': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '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' '405': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '429': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '500': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' components: schemas: WebhookEventTypeListResponse: type: object properties: data: type: array items: $ref: '#/components/schemas/WebhookEventTypeResponse' title: WebhookEventTypeListResponse WebhookEventTypeResponse: type: object properties: id: type: number format: double description: Event type unique identifier. module_name: type: string description: Name of the rabbit queue. module_label: type: string description: Display name of the rabbit queue in Deel UI. name: type: string description: Name of the webhook event. description: type: string description: Describes the webhook event and other pertinent info. payload_example: type: - string - 'null' description: JSON payload example of the specific event. created_at: type: string description: Time at which the event type was created. updated_at: type: string description: Time at which the event type was updated. required: - id - module_name - module_label - name - description title: WebhookEventTypeResponse WebhookItemResponse: type: object properties: data: $ref: '#/components/schemas/WebhookItem' required: - data title: WebhookItemResponse 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 GenericResultDeletedData: type: object properties: deleted: type: boolean description: Confirms the deletion. required: - deleted title: GenericResultDeletedData PatchWebhookRequestStatus: type: string enum: - enabled - disabled description: Status of webhook. title: PatchWebhookRequestStatus 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 WebhookItemStatus: type: string enum: - enabled - disabled description: Status of webhook. title: WebhookItemStatus PatchWebhookRequest: type: object properties: name: type: - string - 'null' description: Webhook subscription name. description: type: - string - 'null' description: Webhook subscription description. status: $ref: '#/components/schemas/PatchWebhookRequestStatus' description: Status of webhook. url: type: string description: Endpoint to receive webhook. signing_key: type: - string - 'null' description: The webhook's signing key, used to generate webhook signatures. api_version: type: string default: v2 description: Deel API version. Currently Deel accepts v1 or v2 version. events: type: array items: type: string description: The list of events to enable for this subscription. required: - name - description - status - url - signing_key - events title: PatchWebhookRequest CreateWebhookRequest: type: object properties: name: type: - string - 'null' description: Webhook subscription name. description: type: - string - 'null' description: Webhook subscription description. status: $ref: '#/components/schemas/CreateWebhookRequestStatus' description: Status of webhook. url: type: string description: Endpoint to receive webhook. signing_key: type: - string - 'null' description: The webhook's signing key, used to generate webhook signatures. api_version: type: string default: v2 description: Deel API version. Currently Deel accepts v1 or v2 version. events: type: array items: type: string description: The list of events to enable for this subscription. required: - name - description - status - url - signing_key - api_version - events title: CreateWebhookRequest GenericResultDeleted: type: object properties: data: $ref: '#/components/schemas/GenericResultDeletedData' required: - data title: GenericResultDeleted CreateWebhookRequestStatus: type: string enum: - enabled - disabled description: Status of webhook. title: CreateWebhookRequestStatus ApiErrorContainer: type: object properties: request: $ref: '#/components/schemas/ApiErrorRequest' errors: type: array items: $ref: '#/components/schemas/ApiError' title: ApiErrorContainer WebhookItem: type: object properties: id: type: string description: Unique identifier of this resource. name: type: - string - 'null' description: Webhook subscription name. description: type: - string - 'null' description: Webhook subscription description. status: $ref: '#/components/schemas/WebhookItemStatus' description: Status of webhook. url: type: string description: Endpoint to receive webhook. signing_key: type: - string - 'null' description: The webhook's signing key, used to generate webhook signatures. api_version: type: string default: v2 description: Deel API version. Currently Deel accepts v1 or v2 version. events: type: array items: type: string description: The list of events to enable for this subscription. created_at: type: string description: Time at which the webhook was created. updated_at: type: string description: Time at which the webhook was updated. hidden: type: - boolean - 'null' description: Property to hide the webhook from frontend view. Commonly by Dell 3rd party apps internal: type: boolean deleted_at: type: string description: Time at which the webhook was deleted. required: - id - name - description - status - url - signing_key - api_version - events - created_at - updated_at title: WebhookItem WebhookListResponse: type: object properties: data: type: array items: $ref: '#/components/schemas/WebhookItem' required: - data title: WebhookListResponse 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/