Partner Tenants
Create and manage child tenants (Partner API only).
A tenant represents a customer account in Bizzlink — the organizational unit that owns users, settings, and subscriptions. Each tenant can have one or more legal entities, which are the actual companies that appear on invoices and are registered in the Peppol network.
For example, a holding company (one tenant) may operate three subsidiaries (three legal entities), each with their own VAT number and Peppol IDs.
Billing models
When creating a child tenant, you must specify a billingModel:
- SEATS — the tenant pays a fixed monthly fee per legal entity. Each legal entity added to the tenant counts as one seat.
- FLOW — the tenant pays per document sent or received, regardless of the number of legal entities.
Your partner account must have an active subscription matching the requested billing model.
List child tenants
/bizzlink/tenantsResponses:
| Status | Description |
|---|---|
200 | Tenant list |
403 | Caller is not a partner |
Response Body — JsonApiListDocumentTenantResponseAttributes:
| Field | Type | Description |
|---|---|---|
data | JsonApiResourceTenantResponseAttributes[] | |
links | JsonApiLinks | |
meta | JsonApiPaginationMeta |
curl -X GET https://gateway.vigasoft.lu/bizzlink/tenants \
-H "Authorization: Bearer $API_TOKEN" \
-H "X-Bizzlink-Signature: t=$TIMESTAMP,v1=$SIGNATURE"200 OK{
"data": [
{
"attributes": {
"active": true,
"addressCity": "string",
"addressCountry": "LU",
"addressPostalCode": "string",
"addressStreet": "string",
"billingModel": "SEATS",
"companyName": "Kunde GmbH",
"contactEmail": "max@kunde.lu",
"contactName": "Max Müller",
"contactPhone": "+352 123 456",
"createdAt": "2026-01-01T00:00:00Z",
"tenantCode": "KUNDE-GMBH",
"updatedAt": "2026-01-01T00:00:00Z"
},
"id": "770e8400-e29b-41d4-a716-446655440000",
"type": "invoices"
}
],
"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 child tenant
/bizzlink/tenantsRequest 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 |
|---|---|
201 | Tenant created |
403 | Caller is not a partner |
422 | Validation error |
curl -X POST https://gateway.vigasoft.lu/bizzlink/tenants \
-H "Authorization: Bearer $API_TOKEN" \
-H "X-Bizzlink-Signature: t=$TIMESTAMP,v1=$SIGNATURE" \
-H "Content-Type: application/json" \
-d '{
"data": {}
}'Get child tenant details
/bizzlink/tenants/{id}Responses:
| Status | Description |
|---|---|
200 | Tenant details |
403 | Caller is not a partner or tenant is not a child |
404 | Tenant not found |
Response Body — JsonApiDocumentTenantResponseAttributes:
| Field | Type | Description |
|---|---|---|
data | JsonApiResourceTenantResponseAttributes |
curl -X GET https://gateway.vigasoft.lu/bizzlink/tenants/{id} \
-H "Authorization: Bearer $API_TOKEN" \
-H "X-Bizzlink-Signature: t=$TIMESTAMP,v1=$SIGNATURE"200 OK{
"data": {
"attributes": {
"active": true,
"addressCity": "string",
"addressCountry": "LU",
"addressPostalCode": "string",
"addressStreet": "string",
"billingModel": "SEATS",
"companyName": "Kunde GmbH",
"contactEmail": "max@kunde.lu",
"contactName": "Max Müller",
"contactPhone": "+352 123 456",
"createdAt": "2026-01-01T00:00:00Z",
"tenantCode": "KUNDE-GMBH",
"updatedAt": "2026-01-01T00:00:00Z"
},
"id": "770e8400-e29b-41d4-a716-446655440000",
"type": "invoices"
}
}Update child tenant
/bizzlink/tenants/{id}Request Body:
| Field | Type | Required | Description |
|---|---|---|---|
data | object | Yes |
Responses:
| Status | Description |
|---|---|
200 | Tenant updated |
403 | Caller is not a partner or tenant is not a child |
404 | Tenant not found |
Response Body — JsonApiDocumentTenantResponseAttributes:
| Field | Type | Description |
|---|---|---|
data | JsonApiResourceTenantResponseAttributes |
curl -X PATCH https://gateway.vigasoft.lu/bizzlink/tenants/{id} \
-H "Authorization: Bearer $API_TOKEN" \
-H "X-Bizzlink-Signature: t=$TIMESTAMP,v1=$SIGNATURE" \
-H "Content-Type: application/json" \
-d '{
"data": {}
}'200 OK{
"data": {
"attributes": {
"active": true,
"addressCity": "string",
"addressCountry": "LU",
"addressPostalCode": "string",
"addressStreet": "string",
"billingModel": "SEATS",
"companyName": "Kunde GmbH",
"contactEmail": "max@kunde.lu",
"contactName": "Max Müller",
"contactPhone": "+352 123 456",
"createdAt": "2026-01-01T00:00:00Z",
"tenantCode": "KUNDE-GMBH",
"updatedAt": "2026-01-01T00:00:00Z"
},
"id": "770e8400-e29b-41d4-a716-446655440000",
"type": "invoices"
}
}