Synchronize accounts to Zivver via SCIM 2.0

Synchronize accounts to Zivver via SCIM 2.0

Introduction

This article explains how to directly communicate with the Zivver SCIM V2 API endpoint. You can use this information if your organization wants to automatically manage Zivver accounts by building its own SCIM connection.

Info

Do not use the Zivver SCIM V2 API endpoint to connect to existing SCIM endpoints such as Entra ID or Google Workspaces. This limitation exists because automated account provisioning from one of these systems requires the Zivver Synctool.

Account management in Zivver

Zivver accounts can be managed manually via the Zivver admin panel, or automatically by using the Zivver System for Cross-domain Identity Management (SCIM) API. Zivver follows the SCIM 2.0 specifications. For organizations with more than 100 employees, Zivver advises automating account management. Zivver recommends the Zivver Synctool for automated account provisioning.

Zivver distinguishes between normal and functional account types. Each account type is managed differently, and both account types are explained in this manual.

Account Type Description
Normal Personal account that a user can log in to.
Functional Shared account that you cannot log in to directly. With Delegated access, a user can send and receive Zivver messages from a functional account.

How to connect to the Zivver SCIM v2 endpoint

Connection
URL https://app.zivver.com/api/scim/v2/
Port 443

The connection is authenticated by using a Bearer Token. A Zivver admin can create an API key from the Zivver admin panel to authenticate the connection. A SCIM client must send the API key generated in Zivver as a token in the Authorization header, as specified in RFC6750 section 2.1:

Clients SHOULD make authenticated requests with a bearer token using the “Authorization” request header field with the “Bearer” HTTP authorization scheme.

For example:

Authorization: Bearer {base64 encoded Zivver API key}

Info

Encoding the bearer token in base64

The HTTP specifications require the client to encode the bearer token in base64. Existing tools or libraries typically perform this automatically.

Supported SCIM operations

The following SCIM operations are supported by the Zivver SCIM v2 endpoint:

Warning

Delete: DELETE

Deleting Zivver accounts is irreversible. Data lost from deleting an account cannot be retrieved. Zivver recommends setting the value of the active attribute to false (suspend) instead of deleting the account.

Info

Update: PATCH

Support for this operation is limited to Microsoft Entra ID. For other clients, it is recommended to use the PUT operation instead.

How to manage Zivver user accounts

You can log in to a Zivver user account either with a Zivver password or via Single Sign-On (SSO). Zivver uses the SCIM resource type Users to manage Zivver user accounts, based on the following schema:

urn:ietf:params:scim:schemas:core:2.0:User

The user object must contain common attributes and singular attributes. Additionally, Zivver uses multi-value attributes, the enterprise user schema extension, and a custom extension schema.

Common user object attributes

RFC-7643: Common Attributes

The following common user object attributes are provided by Zivver and cannot be changed.

The id is provided by Zivver and cannot be changed. The {id} is used for SCIM operations.

The created date is provided by Zivver and cannot be changed.

Singular user object attributes

RFC-7643: Singular attributes

Zivver uses the following mandatory and optional singular attributes for user objects.

Zivver identifies an account by its primary email address.

Zivver uses the display name to show recipients who sent a Zivver message. Zivver recommends populating this field with a first name and surname.

Zivver uses this value in the salutation when sending notification messages.

Zivver uses this information to suspend user accounts. Zivver recommends suspending an account when the associated employee leaves the organization. A suspended user is activated again when the active state equals true.

Multi-value user object attributes

RFC-7643: Multi-value attributes

Zivver uses the following optional multi-value attributes for user objects.

Zivver uses the first phone number in the list to set up 2FA. Ensure this phone number can receive text messages.

Enterprise user schema Extension

RFC-7643: Enterprise user schema extension

Zivver uses the following additional attribute from the enterprise user schema extension. Only use this attribute when your organization uses Organizational Units in Zivver.

urn:ietf:params:scim:schemas:extension:enterprise:2.0:User

Zivver uses the division attribute to map the user account to the correct Organizational Unit.

Zivver’s custom Extension schema

RFC-7643: Custom schema extension

Zivver extends the above attributes with the following custom schema:

urn:ietf:params:scim:schemas:zivver:0.1:User

This schema contains the following attributes:

Zivver uses the password to generate encryption keys that protect the account and all messages. This attribute should include the user’s Zivver password for the first login. After the first login, users must create their own password.

Zivver uses the ZivverAccountKey to generate the encryption keys that protect the account and all messages.

Zivver uses email aliases so users can receive Zivver messages at these alternate addresses.

Zivver uses delegates so users can read and send messages on behalf of others.

Example minimal user representation

The following is a non-normative example of the minimal required SCIM representation in JSON format.

{
  "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User", "urn:ietf:params:scim:schemas:zivver:0.1:User"],
  "meta": {
    "resourceType": "User",
    "created": "2010-01-23T04:56:22Z",
    "location": "/scim/v2/Users/2819c223-7f76-453a-919d-413861904646"
  },
  "active": true,
  "id": "2819c223-7f76-453a-919d-413861904646",
  "name": {
    "formatted": "Barbara Jensen"
  },
  "urn:ietf:params:scim:schemas:zivver:0.1:User": {
    "SsoAccountKey": "48452ce3-9346-4ef0-9528-19btf6d4e545"
  },
  "userName": "bjensen@example.com"
}

Example full user representation

The following is a non-normative example of a fully populated SCIM user representation in JSON format.

{
  "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User", "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User", "urn:ietf:params:scim:schemas:zivver:0.1:User"],
  "meta": {
    "resourceType": "User",
    "created": "2010-01-23T04:56:22Z",
    "location": "/scim/v2/Users/2819c223-7f76-453a-919d-413861904646"
  },
  "active": true,
  "id": "2819c223-7f76-453a-919d-413861904646",
  "name": {
    "formatted": "Barbara Jensen"
  },
  "nickName": "Babs Jensen",
  "phoneNumbers": [
    {
      "value": "555-555-5555"
    }
  ],
  "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": {
    "division": "Development"
  },
  "urn:ietf:params:scim:schemas:zivver:0.1:User": {
    "SsoAccountKey": "48452ce3-9346-4ef0-9528-19btf6d4e545",
    "aliases": ["barbarajensen@example.com", "barbara.jensen@example.com"],
    "delegates": ["jdoe@example.com", "hpeterson@example.com"]
  },
  "userName": "bjensen@example.com"
}

How to manage functional Zivver accounts

Functional Zivver accounts are shared accounts. If your Zivver user account has delegated access to a functional account, you are automatically logged in to that functional account. In Zivver, the SCIM resource type Groups is used, based on the following schema:

urn:ietf:params:scim:schemas:core:2.0:Group

The group object must contain a common attribute, a singular attribute, and a multi-value attribute. Additionally, Zivver uses the enterprise user schema extension and a custom extension schema.

Common group object attributes

RFC-7643: Common attributes

The following common group object attributes are provided by Zivver and cannot be changed.

Zivver identifies a group account by its primary email address. As Groups might not have a userName, the externalId must contain the primary email of the shared account. This differs from the User object, where the primary email is in the userName attribute.

Zivver provides the following additional common group object attributes. You do not need to create them.

The id is provided by Zivver and cannot be changed. It is used for SCIM operations.

The creation date is provided by Zivver and cannot be changed.

Singular group object attributes

RFC-7643: Singular attributes

Zivver uses the following mandatory singular attribute for group objects.

Zivver uses this name to show end-users the account name.

Multi-value group object attributes

RFC-7643: Multi-value attributes

Zivver uses the following mandatory multi-value attribute for group objects.

This attribute delegates access to functional accounts. It should contain a list of Zivver user {id} values that have access. Delegated users can send and receive messages on behalf of the functional account.

Example minimal group representation

The following is a non-normative example of the minimal required SCIM Group representation in JSON format.

{
  "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Group"],
  "meta": {
    "resourceType": "Group",
    "created": "2010-01-23T04:56:22Z",
    "location": "/scim/v2/Groups/e9e30dba-f08f-4109-8486-d5c6a331660a"
  },
  "displayName": "Department A",
  "externalId": "department@example.com",
  "id": "e9e30dba-f08f-4109-8486-d5c6a331660a",
  "members": [
  {
    "value": "2819c223-7f76-453a-919d-413861904646"
  },
  {
    "value": "5737d357-5a46-267n-111e-6783178326"
  }
  ]
}

Example full group representation

The following is a non-normative example of a fully populated SCIM Group user representation in JSON format.

{
  "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Group", "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User", "urn:ietf:params:scim:schemas:zivver:0.1:Group"],
  "meta": {
    "resourceType": "Group",
    "created": "2010-01-23T04:56:22Z",
    "location": "/scim/v2/Groups/e9e30dba-f08f-4109-8486-d5c6a331660a"
  },
  "displayName": "Department A",
  "externalId": "department@example.com",
  "id": "e9e30dba-f08f-4109-8486-d5c6a331660a",
  "members": [
  {
    "value": "2819c223-7f76-453a-919d-413861904646"
  },
  {
    "value": "5737d357-5a46-267n-111e-6783178326"
  }
  ],
  "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": {
    "division": "Development"
  },
  "urn:ietf:params:scim:schemas:zivver:0.1:Group": {
    "aliases": ["development@example.com"]
  }
}

Updated on 2026-06-18