> ## Documentation Index
> Fetch the complete documentation index at: https://docs.toku.com/llms.txt
> Use this file to discover all available pages before exploring further.

# UKG Pro Employee Sync

> How Toku syncs your employee roster from UKG Pro

Toku keeps its employee roster in sync with UKG Pro so stablecoin elections always map to the right person and pay group. Sync is read-only and runs automatically after connection and on a rolling schedule.

## Endpoints

Toku reads employees through UKG Pro's Personnel REST APIs:

```bash theme={null}
curl "https://<hostname>.ultipro.com/personnel/v1/person-details?page=1&per_Page=100" \
  -H "Authorization: Basic <base64(username:password)>" \
  -H "US-Customer-Api-Key: <customer_api_key>"
```

A trimmed example response:

```json theme={null}
[
  {
    "employeeId": "AB1CD2000EFG",
    "firstName": "Ada",
    "lastName": "Lovelace",
    "emailAddress": "ada@yourcompany.com",
    "dateOfBirth": null,
    "links": []
  }
]
```

See UKG's reference for the full schema: [Get person details](https://developer.ukg.com/hcm/reference/get_personnel-v1-person-details).

Alongside person details, Toku reads:

| Endpoint                                                     | Purpose                                                                                                                             |
| ------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------- |
| `GET /personnel/v1/companies/{companyId}/employment-details` | Job title, employment status, and `payGroupCode` per employee                                                                       |
| `GET /personnel/v1/compensation-details`                     | Pay rate details, filterable by `companyId`, `employeeId`, and `payGroupCode`                                                       |
| `POST /personnel/v1/employee-ids`                            | Batch lookup of employee identifiers (a POST because identifiers are sensitive; returns `207 Multi-Status` with per-record results) |

## What Toku Reads

| Field                                   | Purpose                                                     |
| --------------------------------------- | ----------------------------------------------------------- |
| `employeeId`                            | Stable identifier used to match the employee across systems |
| `firstName`, `lastName`, `emailAddress` | Roster display and employee-portal invitations              |
| `payGroupCode`                          | Maps each employee to the correct pay group and pay run     |
| Employment status                       | Marks departed employees inactive in Toku                   |
| Compensation details                    | Validates election limits against compensation              |

## Pagination and Rate Limits

List endpoints are paginated with the `page` and `per_Page` query parameters; Toku walks pages until the roster is complete. UKG Pro enforces [gateway-level rate limits](https://developer.ukg.com/hcm/docs/api-rate-limiting) and returns `429` when they're breached — Toku backs off and retries automatically, so syncs never contend with your own integrations.

## Sync Behavior

* **New employees** appear in Toku automatically on the next sync after they're added in UKG Pro.
* **Updates** (name, email, pay group, compensation) flow through on the next sync.
* **Terminated employees** are marked inactive and stop receiving stablecoin payments.
* A manual sync can be triggered anytime from **Settings → Payroll Integrations** in Toku.

<Note>
  Employee sync never writes to UKG Pro. Toku does not modify employee records, compensation, or employment status.
</Note>

## Next

<CardGroup cols={2}>
  <Card title="Payroll Sync" icon="calendar" href="/integrations/ukg/payroll-sync">
    How Toku tracks pay groups and upcoming payrolls
  </Card>

  <Card title="The Toku Deduction" icon="money-bill-transfer" href="/integrations/ukg/deduction">
    How the deduction is posted each pay period
  </Card>
</CardGroup>
