Skip to main content
POST
/
lucca-api
/
webhook-endpoints
Create a webhook-endpoint
curl --request POST \
  --url https://{host}/lucca-api/webhook-endpoints \
  --header 'Api-Version: <api-version>' \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "Test",
  "webhookUrl": "https://i-am-aweso.me/lucca-webhooks/123",
  "apiVersion": "2024-11-01",
  "businessEstablishments": null,
  "topics": [
    "employee.created",
    "employee.updated",
    "employee.deleted"
  ],
  "status": "active"
}
'
{
  "id": "456789412",
  "type": "webhook-endpoint",
  "url": "https://example.ilucca.net/lucca-api/webhook-endpoints/93847DF7FDSF6D87SF",
  "name": "Test",
  "apiVersion": "2024-11-01",
  "webhookUrl": "https://i-am-aweso.me/lucca-webhooks/123",
  "topics": [
    "employee.created",
    "employee.updated",
    "employee.deleted"
  ],
  "status": "active",
  "secret": "b3YGydKxao0CYEg4-2LM81rviT-vl2JzKyf_zlewRn0cpoHzh4mRLj5_Ty5neQta",
  "createdAt": "2023-04-23T09:23:54.001Z",
  "lastUpdatedAt": "2023-04-23T09:23:54.001Z",
  "links": {}
}
This API endpoint is in beta and may be subject to changes, including breaking changes, without prior notice.
The receiving endpoint given in webhookUrl must be able to respond to the activation challenge, unless it’s a Zapier hooks catcher.
Make sure to keep the secret returned in the POST response. You will not be able to GET it later.
OAuth 2.0 scopes
 webhook-endpoints.readwrite

Authorizations

Authorization
string
header
required

The Lucca API implements the oAuth 2 protocol with the client-credentials-flow. Refer to RFC8725.

Headers

Api-Version
enum<string>
required

Set the API version.

Available options:
2024-11-01
Allowed value: "2024-11-01"
Maximum string length: 10
Example:

"2024-11-01"

If-None-Match
string

Only execute the request if current cached version of the resource does not match the one given here.

Example:

"W/q5sd4w2x1c1gfdg"

If-Match
string

Only execute the request if current cached version of the resource matches the one given here. Useful to avoid concurrency conflicts.

Example:

"W/q5sd4w2x1c1gfdg"

Accept-Encoding
string

List of compression algorithms you support.

Query Parameters

include
enum<string>[]

Include metadata:

  • embedded: the partial or complete representations of related resources (e.g. the employee the resource belongs to).
  • links: links to related resources or actions (e.g. approving a leave-request). May be null when you do not have access to the resource (or action).
  • totalCount: only applicable on collections (i.e. lists of resources), gives the total number of items across all pages.

Read more about expanding responses.

Available options:
embedded,
links,
totalCount

Body

application/json

Representation of a webhook-endpoint

The webhook-endpoint to create.

name
string
required
Minimum string length: 1
apiVersion
string<date>
required
webhookUrl
string<uri>
required

URL of the receiving endpoint on your side. MUST use the https:// schema.

topics
string[]
required

See complete list of all topics in the event definition.

businessEstablishments
null | business-establishment-reference · object[]
Minimum array length: 1
status
enum<string>
default:inactive

'active': delivery attempts will be executed. 'suspended': if too many errors are encountered on delivery. Events are kept in history. 'inactive': events are neither sent nor kept in history.

Available options:
active,
suspended,
inactive

Response

Created

The created webhook-endpoint resource.

secret
string
required
Minimum string length: 1
id
string
Minimum string length: 1
type
string
Allowed value: "webhook-endpoint"
url
string<uri>
name
string
Minimum string length: 1
apiVersion
string<date>
webhookUrl
string<uri>

URL of the receiving endpoint on your side. MUST use the https:// schema.

topics
string[]

See complete list of all topics in the event definition.

businessEstablishments
null | business-establishment-reference · object[]

Restrict events to those belonging to one of the given business-establishments. null should be interpreted as "all business establishments".

Minimum array length: 1
status
enum<string>
default:inactive

'active': delivery attempts will be executed. 'suspended': if too many errors are encountered on delivery. Events are kept in history. 'inactive': events are neither sent nor kept in history.

Available options:
active,
suspended,
inactive
createdAt
string<date-time-offset>

Read-only. UTC timestamp of the moment this object was created.

Example:

"2023-01-23T12:45:23.1234Z"

lastUpdatedAt
string<date-time>

Read-only. UTC timestamp of the moment this object was last updated. Set upon creation, update or deletion of the object.

Example:

"2023-01-23T12:45:23.1234Z"

embedded
object

No embedded resources on a webhook-endpoint(s) response. Expect an empty object if embedded are requested.