Webhooks
Configure webhook notifications for document status changes.
Manage webhook configurations via JSON:API. See the Webhooks guide for payload structure, signature verification, and retry policy.
List all webhook configurations visible to the caller in the caller's environment (own tenant + sub-tenants if caller is a PARTNER)
GET
/bizzlink/webhooksList all webhook configurations visible to the caller in the caller’s environment (own tenant + sub-tenants if caller is a PARTNER)
Responses:
| Status | Description |
|---|---|
200 | OK |
Response Body — JsonApiScopedListDocumentWebhookAttributes:
| Field | Type | Description |
|---|---|---|
data | JsonApiScopedResourceWebhookAttributes[] | |
links | JsonApiLinks | |
meta | JsonApiPaginationMeta |
cURL Request
curl -X GET https://gateway.vigasoft.lu/bizzlink/webhooks \
-H "Authorization: Bearer $API_TOKEN" \
-H "X-Bizzlink-Signature: t=$TIMESTAMP,v1=$SIGNATURE"Response
200 OK{
"data": [
{
"attributes": {
"chainEnabled": false,
"createdAt": "2026-01-01T00:00:00Z",
"enabled": false,
"environment": "string",
"events": ["string"],
"secret": "string",
"updatedAt": "2026-01-01T00:00:00Z",
"url": "string"
},
"id": "550e8400-e29b-41d4-a716-446655440000",
"meta": {
"scope": {
"type": "legal-entity",
"value": "9938:lu28079289"
}
},
"type": "email-templates"
}
],
"links": {
"first": "https://gateway.vigasoft.lu/bizzlink/documents?page%5Bnumber%5D=1&page%5Bsize%5D=20",
"last": "https://gateway.vigasoft.lu/bizzlink/documents?page%5Bnumber%5D=7&page%5Bsize%5D=20",
"next": "https://gateway.vigasoft.lu/bizzlink/documents?page%5Bnumber%5D=4&page%5Bsize%5D=20",
"prev": "https://gateway.vigasoft.lu/bizzlink/documents?page%5Bnumber%5D=2&page%5Bsize%5D=20",
"self": "https://gateway.vigasoft.lu/bizzlink/documents?page%5Bnumber%5D=3&page%5Bsize%5D=20"
},
"meta": {
"page": 1,
"size": 20,
"totalElements": 137,
"totalPages": 7
}
}Create a webhook configuration. Scope (tenant/legal-entity/partner) is set via meta.scope. PARTNER callers may target sub-tenants via tenant.value=<sub-tenant-uuid> or by referencing a sub-tenant's Peppol ID.
POST
/bizzlink/webhooksCreate a webhook configuration. Scope (tenant/legal-entity/partner) is set via meta.scope. PARTNER callers may target sub-tenants via tenant.value= or by referencing a sub-tenant’s Peppol ID.
Request Body:
| Field | Type | Required | Description |
|---|---|---|---|
data | object | Yes | Resource envelope. 'attributes' holds the domain fields; 'meta.scope' declares whether the resource belongs to the whole tenant or to a specific legal entity (Peppol ID). |
Responses:
| Status | Description |
|---|---|
200 | OK |
Response Body — JsonApiScopedDocumentWebhookAttributes:
| Field | Type | Description |
|---|---|---|
data | JsonApiScopedResourceWebhookAttributes |
cURL Request
curl -X POST https://gateway.vigasoft.lu/bizzlink/webhooks \
-H "Authorization: Bearer $API_TOKEN" \
-H "X-Bizzlink-Signature: t=$TIMESTAMP,v1=$SIGNATURE" \
-H "Content-Type: application/json" \
-d '{
"data": {}
}'Response
200 OK{
"data": {
"attributes": {
"chainEnabled": false,
"createdAt": "2026-01-01T00:00:00Z",
"enabled": false,
"environment": "string",
"events": ["string"],
"secret": "string",
"updatedAt": "2026-01-01T00:00:00Z",
"url": "string"
},
"id": "550e8400-e29b-41d4-a716-446655440000",
"meta": {
"scope": {
"type": "legal-entity",
"value": "9938:lu28079289"
}
},
"type": "email-templates"
}
}Delete a webhook configuration
DELETE
/bizzlink/webhooks/{id}Delete a webhook configuration
Responses:
| Status | Description |
|---|---|
200 | OK |
cURL Request
curl -X DELETE https://gateway.vigasoft.lu/bizzlink/webhooks/{id} \
-H "Authorization: Bearer $API_TOKEN" \
-H "X-Bizzlink-Signature: t=$TIMESTAMP,v1=$SIGNATURE"Get a specific webhook configuration (own tenant or sub-tenant if caller is PARTNER)
GET
/bizzlink/webhooks/{id}Get a specific webhook configuration (own tenant or sub-tenant if caller is PARTNER)
Responses:
| Status | Description |
|---|---|
200 | OK |
Response Body — JsonApiScopedDocumentWebhookAttributes:
| Field | Type | Description |
|---|---|---|
data | JsonApiScopedResourceWebhookAttributes |
cURL Request
curl -X GET https://gateway.vigasoft.lu/bizzlink/webhooks/{id} \
-H "Authorization: Bearer $API_TOKEN" \
-H "X-Bizzlink-Signature: t=$TIMESTAMP,v1=$SIGNATURE"Response
200 OK{
"data": {
"attributes": {
"chainEnabled": false,
"createdAt": "2026-01-01T00:00:00Z",
"enabled": false,
"environment": "string",
"events": ["string"],
"secret": "string",
"updatedAt": "2026-01-01T00:00:00Z",
"url": "string"
},
"id": "550e8400-e29b-41d4-a716-446655440000",
"meta": {
"scope": {
"type": "legal-entity",
"value": "9938:lu28079289"
}
},
"type": "email-templates"
}
}Update a webhook configuration. Scope is immutable — only attributes can be patched.
PATCH
/bizzlink/webhooks/{id}Update a webhook configuration. Scope is immutable — only attributes can be patched.
Request Body:
| Field | Type | Required | Description |
|---|---|---|---|
data | object | Yes |
Responses:
| Status | Description |
|---|---|
200 | OK |
Response Body — JsonApiScopedDocumentWebhookAttributes:
| Field | Type | Description |
|---|---|---|
data | JsonApiScopedResourceWebhookAttributes |
cURL Request
curl -X PATCH https://gateway.vigasoft.lu/bizzlink/webhooks/{id} \
-H "Authorization: Bearer $API_TOKEN" \
-H "X-Bizzlink-Signature: t=$TIMESTAMP,v1=$SIGNATURE" \
-H "Content-Type: application/json" \
-d '{
"data": {}
}'Response
200 OK{
"data": {
"attributes": {
"chainEnabled": false,
"createdAt": "2026-01-01T00:00:00Z",
"enabled": false,
"environment": "string",
"events": ["string"],
"secret": "string",
"updatedAt": "2026-01-01T00:00:00Z",
"url": "string"
},
"id": "550e8400-e29b-41d4-a716-446655440000",
"meta": {
"scope": {
"type": "legal-entity",
"value": "9938:lu28079289"
}
},
"type": "email-templates"
}
}Rotate the webhook signing secret
POST
/bizzlink/webhooks/{id}/actions/rotate-secretRotate the webhook signing secret
Responses:
| Status | Description |
|---|---|
200 | OK |
Response Body — JsonApiScopedDocumentWebhookAttributes:
| Field | Type | Description |
|---|---|---|
data | JsonApiScopedResourceWebhookAttributes |
cURL Request
curl -X POST https://gateway.vigasoft.lu/bizzlink/webhooks/{id}/actions/rotate-secret \
-H "Authorization: Bearer $API_TOKEN" \
-H "X-Bizzlink-Signature: t=$TIMESTAMP,v1=$SIGNATURE" \
-H "Content-Type: application/json"Response
200 OK{
"data": {
"attributes": {
"chainEnabled": false,
"createdAt": "2026-01-01T00:00:00Z",
"enabled": false,
"environment": "string",
"events": ["string"],
"secret": "string",
"updatedAt": "2026-01-01T00:00:00Z",
"url": "string"
},
"id": "550e8400-e29b-41d4-a716-446655440000",
"meta": {
"scope": {
"type": "legal-entity",
"value": "9938:lu28079289"
}
},
"type": "email-templates"
}
}Send a test webhook
POST
/bizzlink/webhooks/{id}/actions/testSend a test webhook
Responses:
| Status | Description |
|---|---|
200 | OK |
Response Body — WebhookTestResponse:
| Field | Type | Description |
|---|---|---|
httpStatus | integer | |
message | string | |
success | boolean |
cURL Request
curl -X POST https://gateway.vigasoft.lu/bizzlink/webhooks/{id}/actions/test \
-H "Authorization: Bearer $API_TOKEN" \
-H "X-Bizzlink-Signature: t=$TIMESTAMP,v1=$SIGNATURE" \
-H "Content-Type: application/json"Response
200 OK{
"httpStatus": 0,
"message": "string",
"success": false
}