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/webhooks
List all webhook configurations visible to the caller in the caller’s environment (own tenant + sub-tenants if caller is a PARTNER)

Responses

StatusDescription
200OK

Response Body JsonApiScopedListDocumentWebhookAttributes

FieldTypeDescription
JsonApiScopedResourceWebhookAttributes[]
JsonApiLinks
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/webhooks
Create 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

FieldTypeDescription
requiredobjectResource 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

StatusDescription
200OK

Response Body JsonApiScopedDocumentWebhookAttributes

FieldTypeDescription
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

StatusDescription
200OK
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

StatusDescription
200OK

Response Body JsonApiScopedDocumentWebhookAttributes

FieldTypeDescription
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

FieldTypeDescription
requiredobject

Responses

StatusDescription
200OK

Response Body JsonApiScopedDocumentWebhookAttributes

FieldTypeDescription
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-secret
Rotate the webhook signing secret

Responses

StatusDescription
200OK

Response Body JsonApiScopedDocumentWebhookAttributes

FieldTypeDescription
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/test
Send a test webhook

Responses

StatusDescription
200OK

Response Body WebhookTestResponse

FieldTypeDescription
httpStatusinteger
messagestring
successboolean
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
}