---
title: "How to use User Provisioning and Verification with Unified"
img: https://s3.us-east-2.amazonaws.com/unified-article-images/how_to_use_user_provisioning_and_verification_with_unified-icon.png
date: 2025-08-10T00:00:00.000Z
tag: Guides
description: "With Unified's SCIM API devs can build use provisioning features that work with any HRIS integration like BambooHR, Workday and any other ATS integration that..."
url: "https://docs.unified.to/guides/how_to_use_user_provisioning_and_verification_with_unified"
---

# How to use User Provisioning and Verification with Unified
------
_August 10, 2025_

# User Provisioning and Verification with Unified


With Unified's SCIM API devs can build use provisioning features that work with any HRIS integration like BambooHR, Workday and any other ATS integration that Unified connects to. You can create, update, list and delete users in your customers employee directories.


In this guide, I will show you how to provision users using the SDK, with BambooHR as an example. The same approach works for all Unified HR integrations.


## Prerequisites

- Node.js (v18+)
- Unified account with at least one HR integration enabled (e.g. for this example we are using BambooHR)
- Unified API key
- Your customer's HR connection ID

## Supported Integrations


Unified's API works with 170+ HR integrations (BambooHR, Workday, HiBob, Gusto, etc.) and 5+ verification providers (Certn, Checkr, First Advantage, Verifiable, Yardstik).


[See all HR integrations](https://docs.unified.to/hris/integrations)


[See all verification integrations](https://docs.unified.to/verification/integrations)


---


## Step 1: Setting up your project


```bash
mkdir user-verification-demo
cd user-verification-demo
npm init -y
npm install @unified-api/typescript-sdk dotenv
```


Add your credentials to `.env`:


```plain text
UNIFIED_API_KEY=your_unified_api_key
CONNECTION_BAMBOOHR=your_customer_bamboohr_connection_id
CONNECTION_VERIFICATION=your_customer_verification_connection_id
```


---


## Step 2: Initialize the SDK


```typescript
import 'dotenv/config';
import { UnifiedTo } from '@unified-api/typescript-sdk';

const { UNIFIED_API_KEY, CONNECTION_BAMBOOHR, CONNECTION_VERIFICATION } = process.env;

const sdk = new UnifiedTo({
  security: { jwt: UNIFIED_API_KEY! },
});
```


---


## Step 3: How to Get Your Customer's Connection ID


Before you get started, your end customer must authorize your app to access their HRIs integration via Unified's auth flow.


Once authorized, you will receive a connection ID for that customer's integration. Store this carefully and use it in all API calls for that specific customer.


---


## Step 4: Creating a User (Provisioning)


```typescript
export async function createUser(connectionId: string, email: string, firstName: string, lastName: string) {
  const employee = await sdk.hris.createHrisEmployee({
    connectionId,
    hrisEmployee: {
      name: `${firstName} ${lastName}`,
      emails: [{ email }],
      firstName,
      lastName,
      employmentStatus: "ACTIVE",
    },
  });
  return employee; // HrisEmployee
}
```


---


## Step 5: Listing Users


```typescript
export async function listUsers(connectionId: string) {
  const employees = await sdk.hris.listHrisEmployees({
    connectionId,
    limit: 10,
  });
  return employees; // HrisEmployee[]
}
```


---


## Step 6: Updating a User


```typescript
export async function updateUserStatus(connectionId: string, userId: string, status: "ACTIVE" | "INACTIVE") {
  const updated = await sdk.hris.updateHrisEmployee({
    connectionId,
    id: userId,
    hrisEmployee: { employmentStatus: status },
  });
  return updated; // HrisEmployee
}
```


---


## Step 7: Deactivating a User (Recommended)


```typescript
export async function deactivateUser(connectionId: string, userId: string) {
  // Some providers (e.g., BambooHR) do not support delete; set status to INACTIVE instead
  const updated = await sdk.hris.updateHrisEmployee({
    connectionId,
    id: userId,
    hrisEmployee: { employmentStatus: "INACTIVE" },
  });
  return updated;
}
```


---


## Step 8: Verifying a User (Background Check, License, etc.)


Unified's new Verification API lets you trigger background checks, license verifications, and more, using providers like Certn, Checkr, and others.


```typescript
export async function listVerificationRequests(connectionId: string) {
  // Listing requests is supported across providers; creation may vary by provider/package
  const requests = await sdk.verification.listVerificationRequests({
    connectionId,
    limit: 10,
  });
  return requests;
}
```


---


## Step 9: Example Usage


```typescript
async function main() {
  // 1. Create a user
  const user = await createUser(CONNECTION_BAMBOOHR!, "jane.doe@example.com", "Jane", "Doe");

  // 2. List users
  const users = await listUsers(CONNECTION_BAMBOOHR!);

  // 3. Update (deactivate) user
  if (user?.id) {
    const updated = await updateUserStatus(CONNECTION_BAMBOOHR!, user.id, "INACTIVE");
    console.log("Updated user:", updated);
  }

  // 4. List verification requests (optional)
  if (CONNECTION_VERIFICATION) {
    const requests = await listVerificationRequests(CONNECTION_VERIFICATION!);
    console.log("Verification requests:", requests.length);
  }

  console.log("Users:", users.length);
}

main();
```


---


And that's it - **Happy Building ** 🎉