Email Templates
Manage email notification templates for document delivery.
Manage email templates via JSON:API. Templates define the subject and body for email notifications sent when documents are received via Peppol.
Templates can be scoped to a tenant (applies to all legal entities) or a specific legal entity (Peppol ID). Templates support Pebble syntax for dynamic content.
Available Variables
| Variable | Description |
|---|---|
invoiceNumber | Invoice or credit note number |
sellerName | Sender company name |
buyerName | Recipient company name |
totalAmount | Total amount |
currency | Currency code (e.g. EUR) |
issueDate | Issue date |
dueDate | Due date (if available) |
documentId | Bizzlink document ID |
List all email templates visible to the tenant
GET
/bizzlink/email-templatesList all email templates visible to the tenant
Responses
| Status | Description |
|---|---|
200 | OK |
Response Body — JsonApiScopedListDocumentEmailTemplateAttributes
| Field | Type | Description |
|---|---|---|
JsonApiScopedResourceEmailTemplateAttributes[] | ||
EmailTemplateAttributes | Resource-specific fields. | |
content | string | |
createdAt | datetime | |
name | string | |
subject | string | |
updatedAt | datetime | |
id | string | Unique resource identifier (UUID). |
JsonApiMeta | Resource-level meta object carrying the ownership scope (tenant vs legal-entity). | |
JsonApiScope | ||
type | string | Scope type. 'tenant' = applies to the whole tenant. 'legal-entity' = applies only to the Peppol ID given in 'value'. 'partner' = applies to all child tenants of the calling partner tenant; 'value' must be empty. |
value | string | Required when type='legal-entity': the Peppol ID (scheme:identifier) that owns this resource, e.g. '9938:lu28079289'. Must belong to the requesting tenant. Ignored when type='tenant'. Must be empty when type='partner'. |
type | string | Resource type — matches the endpoint (e.g. 'email-templates', 'notification-emails'). |
JsonApiLinks | ||
first | string | URL of the first page. |
last | string | URL of the last page. |
next | string | URL of the next page, null on last page. |
prev | string | URL of the previous page, null on first page. |
self | string | URL of the current page. |
JsonApiPaginationMeta | ||
page | integer | 1-based index of the current page. |
size | integer | Number of items per page. |
totalElements | integer | Total number of items across all pages. |
totalPages | integer | Total number of pages. |
cURL Request
curl -X GET https://gateway.vigasoft.lu/bizzlink/email-templates \
-H "Authorization: Bearer $API_TOKEN" \
-H "X-Bizzlink-Signature: t=$TIMESTAMP,v1=$SIGNATURE"Response
200 OK{
"data": [
{
"attributes": {
"content": "string",
"createdAt": "2026-01-01T00:00:00Z",
"name": "string",
"subject": "string",
"updatedAt": "2026-01-01T00:00:00Z"
},
"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 an email template
POST
/bizzlink/email-templatesCreate an email template
Request Body
| Field | Type | Description |
|---|---|---|
| required | object | 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). |
| required | EmailTemplateAttributesRequest | The actual resource fields. |
contentrequired | string | |
language | string | |
namerequired | string | |
subjectrequired | string | |
JsonApiMeta | Optional JSON:API meta. Only used by scoped resources (e.g. email templates, notification emails) to declare their ownership scope. | |
| required | JsonApiScope | |
typerequired | string | Scope type. 'tenant' = applies to the whole tenant. 'legal-entity' = applies only to the Peppol ID given in 'value'. 'partner' = applies to all child tenants of the calling partner tenant; 'value' must be empty. |
value | string | Required when type='legal-entity': the Peppol ID (scheme:identifier) that owns this resource, e.g. '9938:lu28079289'. Must belong to the requesting tenant. Ignored when type='tenant'. Must be empty when type='partner'. |
type | string | Must be 'email-templates' for this endpoint. |
Responses
| Status | Description |
|---|---|
200 | OK |
Response Body — JsonApiScopedDocumentEmailTemplateAttributes
| Field | Type | Description |
|---|---|---|
JsonApiScopedResourceEmailTemplateAttributes | ||
EmailTemplateAttributes | Resource-specific fields. | |
content | string | |
createdAt | datetime | |
name | string | |
subject | string | |
updatedAt | datetime | |
id | string | Unique resource identifier (UUID). |
JsonApiMeta | Resource-level meta object carrying the ownership scope (tenant vs legal-entity). | |
JsonApiScope | ||
type | string | Scope type. 'tenant' = applies to the whole tenant. 'legal-entity' = applies only to the Peppol ID given in 'value'. 'partner' = applies to all child tenants of the calling partner tenant; 'value' must be empty. |
value | string | Required when type='legal-entity': the Peppol ID (scheme:identifier) that owns this resource, e.g. '9938:lu28079289'. Must belong to the requesting tenant. Ignored when type='tenant'. Must be empty when type='partner'. |
type | string | Resource type — matches the endpoint (e.g. 'email-templates', 'notification-emails'). |
cURL Request
curl -X POST https://gateway.vigasoft.lu/bizzlink/email-templates \
-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": {
"content": "string",
"createdAt": "2026-01-01T00:00:00Z",
"name": "string",
"subject": "string",
"updatedAt": "2026-01-01T00:00:00Z"
},
"id": "550e8400-e29b-41d4-a716-446655440000",
"meta": {
"scope": {
"type": "legal-entity",
"value": "9938:lu28079289"
}
},
"type": "email-templates"
}
}Delete an email template
DELETE
/bizzlink/email-templates/{id}Delete an email template
Responses
| Status | Description |
|---|---|
200 | OK |
cURL Request
curl -X DELETE https://gateway.vigasoft.lu/bizzlink/email-templates/{id} \
-H "Authorization: Bearer $API_TOKEN" \
-H "X-Bizzlink-Signature: t=$TIMESTAMP,v1=$SIGNATURE"Get a specific email template
GET
/bizzlink/email-templates/{id}Get a specific email template
Responses
| Status | Description |
|---|---|
200 | OK |
Response Body — JsonApiScopedDocumentEmailTemplateAttributes
| Field | Type | Description |
|---|---|---|
JsonApiScopedResourceEmailTemplateAttributes | ||
EmailTemplateAttributes | Resource-specific fields. | |
content | string | |
createdAt | datetime | |
name | string | |
subject | string | |
updatedAt | datetime | |
id | string | Unique resource identifier (UUID). |
JsonApiMeta | Resource-level meta object carrying the ownership scope (tenant vs legal-entity). | |
JsonApiScope | ||
type | string | Scope type. 'tenant' = applies to the whole tenant. 'legal-entity' = applies only to the Peppol ID given in 'value'. 'partner' = applies to all child tenants of the calling partner tenant; 'value' must be empty. |
value | string | Required when type='legal-entity': the Peppol ID (scheme:identifier) that owns this resource, e.g. '9938:lu28079289'. Must belong to the requesting tenant. Ignored when type='tenant'. Must be empty when type='partner'. |
type | string | Resource type — matches the endpoint (e.g. 'email-templates', 'notification-emails'). |
cURL Request
curl -X GET https://gateway.vigasoft.lu/bizzlink/email-templates/{id} \
-H "Authorization: Bearer $API_TOKEN" \
-H "X-Bizzlink-Signature: t=$TIMESTAMP,v1=$SIGNATURE"Response
200 OK{
"data": {
"attributes": {
"content": "string",
"createdAt": "2026-01-01T00:00:00Z",
"name": "string",
"subject": "string",
"updatedAt": "2026-01-01T00:00:00Z"
},
"id": "550e8400-e29b-41d4-a716-446655440000",
"meta": {
"scope": {
"type": "legal-entity",
"value": "9938:lu28079289"
}
},
"type": "email-templates"
}
}Update an email template
PATCH
/bizzlink/email-templates/{id}Update an email template
Request Body
| Field | Type | Description |
|---|---|---|
| required | object | |
| required | EmailTemplateAttributesRequest | |
contentrequired | string | |
language | string | |
namerequired | string | |
subjectrequired | string | |
id | string | |
JsonApiMeta | ||
| required | JsonApiScope | |
typerequired | string | Scope type. 'tenant' = applies to the whole tenant. 'legal-entity' = applies only to the Peppol ID given in 'value'. 'partner' = applies to all child tenants of the calling partner tenant; 'value' must be empty. |
value | string | Required when type='legal-entity': the Peppol ID (scheme:identifier) that owns this resource, e.g. '9938:lu28079289'. Must belong to the requesting tenant. Ignored when type='tenant'. Must be empty when type='partner'. |
type | string | Must be 'email-templates' for this endpoint. |
Responses
| Status | Description |
|---|---|
200 | OK |
Response Body — JsonApiScopedDocumentEmailTemplateAttributes
| Field | Type | Description |
|---|---|---|
JsonApiScopedResourceEmailTemplateAttributes | ||
EmailTemplateAttributes | Resource-specific fields. | |
content | string | |
createdAt | datetime | |
name | string | |
subject | string | |
updatedAt | datetime | |
id | string | Unique resource identifier (UUID). |
JsonApiMeta | Resource-level meta object carrying the ownership scope (tenant vs legal-entity). | |
JsonApiScope | ||
type | string | Scope type. 'tenant' = applies to the whole tenant. 'legal-entity' = applies only to the Peppol ID given in 'value'. 'partner' = applies to all child tenants of the calling partner tenant; 'value' must be empty. |
value | string | Required when type='legal-entity': the Peppol ID (scheme:identifier) that owns this resource, e.g. '9938:lu28079289'. Must belong to the requesting tenant. Ignored when type='tenant'. Must be empty when type='partner'. |
type | string | Resource type — matches the endpoint (e.g. 'email-templates', 'notification-emails'). |
cURL Request
curl -X PATCH https://gateway.vigasoft.lu/bizzlink/email-templates/{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": {
"content": "string",
"createdAt": "2026-01-01T00:00:00Z",
"name": "string",
"subject": "string",
"updatedAt": "2026-01-01T00:00:00Z"
},
"id": "550e8400-e29b-41d4-a716-446655440000",
"meta": {
"scope": {
"type": "legal-entity",
"value": "9938:lu28079289"
}
},
"type": "email-templates"
}
}