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

VariableDescription
invoiceNumberInvoice or credit note number
sellerNameSender company name
buyerNameRecipient company name
totalAmountTotal amount
currencyCurrency code (e.g. EUR)
issueDateIssue date
dueDateDue date (if available)
documentIdBizzlink document ID

List all email templates visible to the tenant

GET /bizzlink/email-templates
List all email templates visible to the tenant

Responses:

StatusDescription
200OK

Response BodyJsonApiScopedListDocumentEmailTemplateAttributes:

FieldTypeDescription
dataJsonApiScopedResourceEmailTemplateAttributes[]
    attributesEmailTemplateAttributesResource-specific fields.
        contentstring
        createdAtdatetime
        namestring
        subjectstring
        updatedAtdatetime
    idstringUnique resource identifier (UUID).
    metaJsonApiMetaResource-level meta object carrying the ownership scope (tenant vs legal-entity).
        scopeJsonApiScope
            typestringScope 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.
            valuestringRequired 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'.
    typestringResource type — matches the endpoint (e.g. 'email-templates', 'notification-emails').
linksJsonApiLinks
    firststringURL of the first page.
    laststringURL of the last page.
    nextstringURL of the next page, null on last page.
    prevstringURL of the previous page, null on first page.
    selfstringURL of the current page.
metaJsonApiPaginationMeta
    pageinteger1-based index of the current page.
    sizeintegerNumber of items per page.
    totalElementsintegerTotal number of items across all pages.
    totalPagesintegerTotal 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-templates
Create an email template

Request Body:

FieldTypeRequiredDescription
dataobjectYesResource 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).
    attributesEmailTemplateAttributesRequestYesThe actual resource fields.
        contentstringYes
        languagestringNo
        namestringYes
        subjectstringYes
    metaJsonApiMetaNoOptional JSON:API meta. Only used by scoped resources (e.g. email templates, notification emails) to declare their ownership scope.
        scopeJsonApiScopeYes
            typestringYesScope 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.
            valuestringNoRequired 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'.
    typestringNoMust be 'email-templates' for this endpoint.

Responses:

StatusDescription
200OK

Response BodyJsonApiScopedDocumentEmailTemplateAttributes:

FieldTypeDescription
dataJsonApiScopedResourceEmailTemplateAttributes
    attributesEmailTemplateAttributesResource-specific fields.
        contentstring
        createdAtdatetime
        namestring
        subjectstring
        updatedAtdatetime
    idstringUnique resource identifier (UUID).
    metaJsonApiMetaResource-level meta object carrying the ownership scope (tenant vs legal-entity).
        scopeJsonApiScope
            typestringScope 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.
            valuestringRequired 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'.
    typestringResource 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:

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

StatusDescription
200OK

Response BodyJsonApiScopedDocumentEmailTemplateAttributes:

FieldTypeDescription
dataJsonApiScopedResourceEmailTemplateAttributes
    attributesEmailTemplateAttributesResource-specific fields.
        contentstring
        createdAtdatetime
        namestring
        subjectstring
        updatedAtdatetime
    idstringUnique resource identifier (UUID).
    metaJsonApiMetaResource-level meta object carrying the ownership scope (tenant vs legal-entity).
        scopeJsonApiScope
            typestringScope 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.
            valuestringRequired 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'.
    typestringResource 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:

FieldTypeRequiredDescription
dataobjectYes
    attributesEmailTemplateAttributesRequestYes
        contentstringYes
        languagestringNo
        namestringYes
        subjectstringYes
    idstringNo
    metaJsonApiMetaNo
        scopeJsonApiScopeYes
            typestringYesScope 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.
            valuestringNoRequired 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'.
    typestringNoMust be 'email-templates' for this endpoint.

Responses:

StatusDescription
200OK

Response BodyJsonApiScopedDocumentEmailTemplateAttributes:

FieldTypeDescription
dataJsonApiScopedResourceEmailTemplateAttributes
    attributesEmailTemplateAttributesResource-specific fields.
        contentstring
        createdAtdatetime
        namestring
        subjectstring
        updatedAtdatetime
    idstringUnique resource identifier (UUID).
    metaJsonApiMetaResource-level meta object carrying the ownership scope (tenant vs legal-entity).
        scopeJsonApiScope
            typestringScope 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.
            valuestringRequired 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'.
    typestringResource 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"
  }
}