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

# Employee Dashboard

> An essential piece of your payroll product is the Employee Dashboard. Employees need a space to review paystubs and payment history, manage their profile information, and review tax information.

## In this guide

* Which endpoints are needed to recreate the Employee Dashboard.
* How to embed the white-label Employee Dashboard in your application.

***

## API

We’ll use **Zeal’s white-labeled Employee Dashboard** as a reference for building our custom dashboard.

### How to build a Home Page

<img src="https://mintcdn.com/zeal-9a4b7c2b/8iA6Z7TGBwM-qVOT/images/docs/d77abf8-employee-dashboard-home.png?fit=max&auto=format&n=8iA6Z7TGBwM-qVOT&q=85&s=02136c5c07612fcc506d218005e265f5" alt="" width="4720" height="2589" data-path="images/docs/d77abf8-employee-dashboard-home.png" />

1. Call [Get Employee Checks by Employee](/reference/employee-checks/employee-checks/get-employee-checks-by-employee) to present a summary of checks for this employee.

<Info>
  ### Note

  Remember to replace the placeholders such as `{{testApiKey}}` in the code samples below.
</Info>

<CodeGroup>
  ```bash bash theme={null}
  curl --request GET \
       --url 'https://api.zeal.com/employeeCheck?companyID={{companyID}}&employeeID={{employeeID}}' \
       --header 'Accept: application/json' \
       --header 'Authorization: Bearer {{testApiKey}}'
  ```
</CodeGroup>

2. Call [Get Paystub Link](/reference/zeal-components/get-paystub-link) to allow employees to download specific paystubs.

<CodeGroup>
  ```bash bash theme={null}
  curl --request GET \
       --url 'https://api.zeal.com/paystubLink?companyID={{companyID}}&employeeCheckID={{employeeCheckID}}' \
       --header 'Accept: application/json' \
       --header 'Authorization: Bearer {{testApiKey}}'
  ```
</CodeGroup>

### How to build a Profile Page

<img src="https://mintcdn.com/zeal-9a4b7c2b/8iA6Z7TGBwM-qVOT/images/docs/90b00ec-employee-dashboard-profile.png?fit=max&auto=format&n=8iA6Z7TGBwM-qVOT&q=85&s=ec58e954ce806ce6221315ffe103090f" alt="" width="4720" height="2589" data-path="images/docs/90b00ec-employee-dashboard-profile.png" />

1. Call [Get/Update Employee Information](/reference/employees/get-employee-information) to allow the employee to view/edit their profile information.

<CodeGroup>
  ```bash bash theme={null}
  curl --request GET \
       --url 'https://api.zeal.com/employees?companyID={{companyID}}&employeeID={{employeeID}}' \
       --header 'Accept: application/json' \
       --header 'Authorization: Bearer {{testApiKey}}'
  ```
</CodeGroup>

2. Call [Get Employee Tax Parameter Summary](/reference/employee-onboarding/get-employee-tax-parameter-summary) and [Set Employee Tax Parameters](/reference/employee-onboarding/set-employee-tax-parameters) allow the employee to view/edit their tax information.

<CodeGroup>
  ```bash bash theme={null}
  curl --request POST \
       --url https://api.zeal.com/employees/getTaxParameterSummary \
       --header 'Accept: application/json' \
       --header 'Authorization: Bearer {{testApiKey}}' \
       --header 'Content-Type: application/json' \
       --data '
  {
       "jurisdictions": [
            "US",
            "CA"
       ],
       "employeeID": "{{employeeID}}",
       "companyID": "{{companyID}}"
  }
  '
  ```
</CodeGroup>

3. Call [View/Sign Employee Paperwork](/reference-link/employee-paperwork) to present tax documents (federal & state W-4s) in a PDF format.

<CodeGroup>
  ```bash bash theme={null}
  curl --request POST \
       --url https://api.zeal.com/paperwork/employeePaperwork \
       --header 'Accept: application/json' \
       --header 'Authorization: Bearer {{testApiKey}}' \
       --header 'Content-Type: application/json' \
       --data '
  {
       "jurisdiction": "US",
       "companyID": "{{companyID}}",
       "employeeID": "{{employeeID}}",
       "signature_text": "iVBORw23goAAAANSUhEUgAAAtsAAABdCAYAAAB0BqpEAAABRmlDQ1BJQ0MgUHJvZmlscccKJFjYGASSSwoyGFhYGDIzSspCnJ3UoiIjFJgf8bAwiDLwMfAxSCYmFxc4BgQ4ANUwgCjUcG3awyMIPqyLsispF"
  }
  '
  ```
</CodeGroup>

4. Call [Get Bank Account by Employee/Contractor ID](/reference/bank-accounts/get-bank-accounts-by-worker-id) to present bank account information. Use [Update Bank Account](/reference/bank-accounts/update-bank-account) to allow the employee to correct their bank information.

<CodeGroup>
  ```bash bash theme={null}
  curl --request GET \
       --url 'https://api.zeal.com/bankaccount?companyID={{companyID}}&id={{employeeID}}' \
       --header 'Accept: application/json' \
       --header 'Authorization: Bearer {{testApiKey}}'
  ```
</CodeGroup>

### How to build an Employee Documents section

<img src="https://mintcdn.com/zeal-9a4b7c2b/8iA6Z7TGBwM-qVOT/images/docs/4e24ba3-employee-dashboard-documents.png?fit=max&auto=format&n=8iA6Z7TGBwM-qVOT&q=85&s=ffba81dabd6cafb7f8a4a743e689c593" alt="" width="4720" height="2589" data-path="images/docs/4e24ba3-employee-dashboard-documents.png" />

Call [Get Documents](/reference/documents/get-documents) to retrieve a list of employee documents such as W-2s or W-2 Cs.

<CodeGroup>
  ```bash bash theme={null}
  curl --request GET \
       --url 'https://api.zeal.com/documents?companyID={{companyID}}&id={{employeeID}}' \
       --header 'Accept: application/json' \
       --header 'Authorization: Bearer {{testApiKey}}'
  ```
</CodeGroup>

***

## Zeal's White-Labeled Dashboard

There are two ways to allow an Employee to access their dashboard.

### SSO Link

1. If you’ve already authenticated the employee on your system, call [Generate Employee Dashboard Link](/reference/zeal-components/generate-employee-contractor-dashboard-link) to get an SSO link directly to the employee's dashboard.

<CodeGroup>
  ```bash bash theme={null}
  curl --location --request POST 'https://api.zeal.com/getAuthLink'
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer {{testApiKey}}' \
  --header 'Content-Type: application/json'
  --data-raw '
  {
     "partnerID": "{{partnerID}}",
     "companyID": "{{companyID}}",
     "employeeID": "{{employeeID}}"
  }
  '
  ```
</CodeGroup>

2. Now, allow the employee to access the link or embed the component directly in your application through an iframe .

<CodeGroup>
  ```bash bash theme={null}
  <a href="{{employeeLoginLink}}">Click to begin payroll onboarding!</a>
  ```
</CodeGroup>

### Login Credentials

During the [Employee Onboarding](/docs/employee-onboarding-guide), include the account creation step by setting `"employee_acct": true`.

<CodeGroup>
  ```bash bash theme={null}
  curl --request POST \
       --url https://api.zeal.com/employees/onboard \
       --header 'Accept: application/json' \
       --header 'Authorization: Bearer {{testApiKey}}' \
       --header 'Content-Type: application/json' \
       --data '
  {
       "profile": true,
       "employee_acct": true,
       "i9_form": false,
       "id_scan": false,
       "companyID": "{{companyID}}",
       "employeeID": "{{employeeID}}"
  }
  '
  ```
</CodeGroup>

2. The employee creates credentials that they can use to log into their Employee Dashboard.

<img src="https://mintcdn.com/zeal-9a4b7c2b/8iA6Z7TGBwM-qVOT/images/docs/5025fe5-create-account.png?fit=max&auto=format&n=8iA6Z7TGBwM-qVOT&q=85&s=4cb91aeff560e94b77d8742675494797" alt="Employee Onboarding Create Account" width="4720" height="2589" data-path="images/docs/5025fe5-create-account.png" />

3. The employee navigates to your domain (e.g. payroll.\[your-domain].com) and inputs their credentials to log in.

***

## Recap

* The Employee Dashboard provides core functionality to your payroll products such as allowing employees to access paystubs and personal information.
* All the data and processes needed to build your customer employee dashboard are exposed through Zeal's API endpoints.
* You may embed the white-label Employee Dashboard directly in your application.
