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

# ADP

> Connect ADP to Serval to automate HR and payroll workflows

## About ADP

ADP is one of the largest providers of payroll, HR, tax, and benefits administration software, serving organizations through platforms such as ADP Workforce Now, Vantage HCM, GlobalView, and RUN. Connecting ADP to Serval lets your team query worker data and automate employee-lifecycle and payroll-adjacent workflows against ADP's REST APIs.

<Info>
  The ADP integration is in **beta**. Your ADP administrator controls which ADP products and data your connection can access.
</Info>

## What the ADP integration enables

| Capability          | Description                                                      |
| ------------------- | ---------------------------------------------------------------- |
| Worker data access  | Read worker and HR data your ADP API client is allowed to access |
| Workflow automation | Use approved ADP data in Serval workflows                        |

<Note>
  ADP permissions are managed in ADP, not in Serval. If a workflow cannot read the data you expect, ask your ADP administrator or representative to confirm the right ADP products and data permissions are enabled.
</Note>

## How ADP authentication works

ADP uses a secure app-to-app authentication flow. To connect ADP to Serval, you provide the credentials and certificate material for an ADP API client that your organization controls.

Serval stores secret values encrypted and uses them to authenticate with ADP when workflows run. You do not need to handle ADP access tokens yourself.

Connecting ADP to Serval requires these values:

| Credential             | What it is                                                   |
| ---------------------- | ------------------------------------------------------------ |
| **Client ID**          | The identifier of your ADP API client                        |
| **Client Secret**      | The secret paired with the Client ID                         |
| **Client Certificate** | The certificate ADP issued or registered for this API client |
| **Private Key**        | The private key matching that certificate                    |
| **Region**             | The ADP region for your organization                         |

If you're not sure which region to use, ask your ADP representative.

***

## ADP configuration

### Prerequisites

<Info>
  * An ADP product with API access (for example ADP Workforce Now, Vantage HCM, or GlobalView)
  * Either ADP's self-service API administration product or an ADP representative who can provision a custom API integration for you
  * Administrator access to API Central, if you're using the self-service path
</Info>

### Step 1: Get a Client ID and Client Secret

**If your organization uses ADP API Central:** sign in, create or open the API project for this integration, and copy its generated **Client ID** and **Client Secret**.

**If not:** your ADP representative can provision an API client for a custom integration and deliver the Client ID and Client Secret to you.

### Step 2: Get the certificate and private key

ADP issues or registers a certificate for each API client. There are two common ways to obtain one:

* **Generate it in ADP API Central.** API Central can create the certificate and key pair for you.

  <Warning>
    Save the certificate and private key immediately. If you lose the private key, you must generate a new certificate.
  </Warning>

* **Bring your own key.** Generate a key pair yourself, submit the request to ADP through your usual ADP process, and ADP returns the signed certificate. You keep the private key.

<Note>
  Track the certificate expiry date. When the certificate expires or is rotated, update the ADP connection in Serval.
</Note>

### Step 3: Confirm your region and enabled APIs

Confirm which ADP region your organization uses and which ADP products or data sets should be available to Serval.

***

## Serval configuration

<Steps>
  <Step title="Navigate to the ADP integration">
    1. In Serval, go to **Integrations → Available → ADP**
    2. Click **Connect**
  </Step>

  <Step title="Enter your credentials">
    | Field                  | Required | Description                                                           |
    | ---------------------- | -------- | --------------------------------------------------------------------- |
    | **Client ID**          | Yes      | The Client ID of your ADP API client                                  |
    | **Client Secret**      | Yes      | The Client Secret paired with the Client ID                           |
    | **Client Certificate** | Yes      | The certificate ADP issued or registered for this API client          |
    | **Private Key**        | Yes      | The private key matching the certificate                              |
    | **CA Bundle**          | No       | Optional certificate authority bundle, if your ADP setup requires one |
    | **Region**             | Yes      | Your organization's ADP region                                        |
  </Step>

  <Step title="Save and validate">
    Click **Save**. Before storing anything, Serval:

    1. Checks that the certificate and private key are usable together
    2. Verifies that ADP accepts the connection

    A successful save means Serval can authenticate to ADP with the credentials you provided. If validation fails, the error message tells you which part to fix.

    <Note>
      After connecting, run the built-in health check to confirm Serval can read ADP data available to this connection.
    </Note>
  </Step>
</Steps>

***

## Using ADP in workflows

Once connected, workflows can use the **ADP API request** action to read from ADP APIs that your ADP client is allowed to access. Use the ADP documentation available to your organization to choose the right request for your workflow.

<Warning>
  ADP data can be sensitive. Design workflows to request only the data they need and avoid sending ADP data to places where it should not be stored or displayed.
</Warning>

***

## Troubleshooting

### "The certificate or private key could not be parsed"

* Paste the complete certificate and private key values from ADP
* Make sure the private key matches the certificate
* Avoid stray characters or lost line breaks introduced by copy/paste

### "ADP rejected the credentials"

* Verify the Client ID and Client Secret are correct and belong to the same API client
* Verify the certificate is the one ADP issued or registered for this API client
* Check whether the certificate has expired
* Confirm you selected the correct region

### Health check fails after a successful connect

Edit and save the connection to re-validate the credentials. If the connection saves successfully but the health check still fails, ask your ADP administrator to confirm this API client has access to the data Serval is trying to read.

### Rotating or renewing the certificate

1. Generate a new certificate and key in ADP API Central, or ask your ADP representative to issue updated certificate material
2. In Serval, open the ADP connection and edit it
3. Paste the new **Client Certificate** and **Private Key**. Fields you leave untouched keep their stored values, so you don't need to re-enter the Client ID or Client Secret
4. Save. Serval re-validates the new material before storing it

<Note>
  The optional CA bundle can be replaced on edit but not cleared. To remove a CA bundle entirely, disconnect and reconnect the integration.
</Note>

***

Need help? Contact **[support@serval.com](mailto:support@serval.com)** for assistance with your ADP integration.
