# Altera Payroll MCP connector

Connect Altera Payroll to Elaichi and Claude, ChatGPT, Cursor or any MCP client can look up and update employees, departments, jobs, earnings, deductions and direct deposits, with every action recorded against the person who asked.

Source: https://elaichi.ai/connectors/alterapayroll/

## Facts

| | |
| --- | --- |
| Application | Altera Payroll |
| Category | HRIS |
| AI tools | 50 |
| Authentication | Connects with an API key |
| Bring your own OAuth app | No |
| MCP endpoint | https://api.elaichi.ai/mcp |
| Works with | Claude, ChatGPT, Cursor, any MCP client, and the Elaichi Agent |
| Tools advertised by name | No. Connected tools are never listed one by one, however few there are. The endpoint advertises `search_tools` and `execute_tool` instead |

## What you can ask once Altera Payroll is connected

- Show me every employee in the Engineering department.
- List deductions for Maria Lopez this pay period.
- Add a new hire, Sam Ortiz, to the Sales department.

## Connect Altera Payroll in Elaichi

This happens once for the organization, before any client is involved.

1. Open Connections, choose Add connection, and pick Altera Payroll.
2. Optionally set Share with, then press Connect.
3. Paste an Altera Payroll API key. One person generates a token in Altera Payroll and pastes it once. Everyone else works through Share with, and never sees it.

Credentials are vaulted and nobody, including the AI, reads them back. The connection becomes a toolbox immediately, so you can curate which Altera Payroll tools are exposed, rename them, or freeze arguments before anyone points a client at it.

## Altera Payroll MCP connector for Claude

Endpoint: https://api.elaichi.ai/mcp

1. Open Customize, then Connectors.
2. Press Add.
3. Name it, paste the MCP server URL, then Continue.
4. Sign in and approve.

On Team and Enterprise, an Owner adds it once. Everyone else turns it on for themselves.

## Altera Payroll MCP connector for ChatGPT

Endpoint: https://api.elaichi.ai/mcp

1. Open Plugins, then press the + button.
2. Name it and paste the endpoint into Server URL.
3. Leave Authentication on OAuth, then tick the risk acknowledgement.
4. Press Create, then sign in and approve.

Works on the web today. The plugin directory lives at chatgpt.com/plugins.

## Altera Payroll MCP connector for Cursor

Endpoint: https://api.elaichi.ai/mcp

1. Open `~/.cursor/mcp.json`.
2. Add the endpoint under `mcpServers`.
3. Reload Cursor, then sign in and approve.

Set up per machine, so repeat it on each computer you work from.

## Connect Altera Payroll to any MCP client

Endpoint: https://api.elaichi.ai/mcp

1. Add the endpoint as a remote MCP server.
2. Sign in and approve.

The Elaichi Agent already has these tools, with nothing to set up.

## What the consent screen decides

Only Read is granted by default, which is not enough to call a Altera Payroll tool. Over MCP there is no trusted place to confirm a write in the moment, so the consent screen is the standing approval rather than a formality. Grant Read and Run tools. Think hard before granting Delete, which reaches into connected apps and cannot be undone.

## What teams do with Altera Payroll through Elaichi

### Set up a new hire on day one

HR. Create the employee record in Altera Payroll, place the person in the right department and job, and add their direct deposit details from one conversation.

### Check earnings and deductions before a run

Payroll. Pull the earnings and deductions for a person or a whole department and spot anything missing before payday, without clicking through each record.

### Reconcile headcount by department

Finance. List every employee alongside their department and company to confirm the numbers match the budget and the forecast.

### Keep dependents and contacts current

People Ops. When someone gets married or has a child, add the dependent and the new contact to their Altera Payroll record while you are still on the call.

### See who holds which job

Managers. Ask which employees sit in a given job or department and get the answer from live Altera Payroll records rather than a stale spreadsheet.

### Update a record after an internal move

Operations. When an employee changes department or job, update their Altera Payroll record in plain language and confirm the change landed.

## Frequently asked questions

### How do I connect Altera Payroll to Claude?

In Elaichi, choose Altera Payroll and paste in your Altera Payroll API key, then in Claude go to Customize, then Connectors, then Add, and paste https://api.elaichi.ai/mcp. There is no OAuth application to register and no client ID or secret to generate. Once both steps are done, Claude can work with your Altera Payroll employees, departments, jobs and pay records.

### Does Altera Payroll work with ChatGPT and Cursor as well as Claude?

Yes. Altera Payroll is connected once in Elaichi, and the same endpoint, https://api.elaichi.ai/mcp, works in Claude, ChatGPT, Cursor, any other MCP client and the Elaichi Agent. Each person signs in as themselves in whichever client they use.

### What can an AI agent actually do with my Altera Payroll data?

It can list and look up employees, departments, jobs, companies, earnings, deductions, contacts, dependents and direct deposits in Altera Payroll, and it can create employees, departments, jobs, contacts, dependents and direct deposits or update an existing employee. In practice that means asking who is in a department, checking a person's deductions, or setting up a new hire in one conversation. Short, concrete asks such as "list employees in Finance" work better than long paragraphs.

### Does connecting Altera Payroll give the AI access to everyone's pay details?

No. Every request to Altera Payroll runs inside the access of the person who signed in, so the AI sees exactly what that person could see in Altera Payroll and nothing more. Elaichi can narrow that access further with restrictions, but it can never widen it.

### Can my team share one Altera Payroll connection?

Yes. One person connects Altera Payroll in Elaichi and shares the connection with a team, and nobody else ever handles the API key. Each teammate still signs in to Elaichi as themselves, so the audit log names the actual person behind every employee lookup or change.

### Can I stop an agent from changing things in Altera Payroll?

Yes. Restrictions in Elaichi apply per action, so you can allow reading Altera Payroll earnings and deductions while blocking the creation of employees or direct deposits. A restricted action is never advertised to Claude, ChatGPT or Cursor at all, so no prompt can reach it.

### What happens to an Altera Payroll connection when someone leaves?

Offboarding a person in Elaichi ends their access to Altera Payroll through every client at once. If they connected a shared Altera Payroll account, it keeps working for everyone else on the team. Disconnecting Altera Payroll once in Elaichi removes it from Claude, ChatGPT, Cursor and every other client together.

### Does the Altera Payroll MCP connector work with Gemini, Codex, Claude Code or other MCP clients?

Yes. Altera Payroll is reached over the same MCP endpoint every client uses, so anything that speaks MCP can call it — Gemini, Codex, Claude Code, Windsurf, Cline, Zed and OpenCode among them — alongside Claude, ChatGPT, Cursor, and the Elaichi Agent. The tools on offer and the access behind them are identical whichever client asks. Only the setup screen differs.

## All 50 Altera Payroll tools

Every tool below is callable through https://api.elaichi.ai/mcp once Altera Payroll is connected, subject to the toolbox it is in and the restrictions on the caller.

- **List all Altera Payroll validateauths** (List). Validate the JWT in Altera Payroll and return the encoded claims information, including authorized provider and actions for the consumer. Returns: type, value. Takes no caller parameters; the company is taken from the company_id credential.
- **List all Altera Payroll companies** (List). List company records for a specific company in Altera Payroll by company_id. Returns: co, name, address1, address2, city, state, zip, county, country, dba, phone, fax and 161 more field(s). Takes no caller parameters; the company is taken from the company_id credential.
- **List all Altera Payroll employees** (List). List employees in an Altera Payroll (ReadyPay Online) company, optionally filtered to active-only or recently terminated. Returns: co, id, clock, ssn, firstName, middleName, lastName, birthDate, gender, maritalStatus, payFrequency, cC1 and 70 more field(s). Required: active_only.
- **Get single Altera Payroll employee by ID** (Get). Get a single employee from Altera Payroll (ReadyPay Online) by company code and employee id. Returns: co, id, clock, ssn, firstName, middleName, lastName, birthDate, gender, maritalStatus, payFrequency, cC1 and 70 more field(s). Required: the record id in the request path.
- **Create a Altera Payroll employee** (Create). Add an employee to Altera Payroll (ReadyPay Online) through the PENDING employee flow: the record is staged for onboarding and is not written straight into Employee records. Use employees.create_direct to skip staging. Returns: newEmployeePayrollID. Takes no caller parameters; the company is taken from the company_id credential.
- **Altera Payroll employees create direct** (Create). Add an employee to Altera Payroll (ReadyPay Online) DIRECTLY into Employee records, bypassing the pending-employee onboarding flow that employees.create uses. Both operations return the new payroll id. Returns: newEmployeePayrollID. Takes no caller parameters; the company is taken from the company_id credential.
- **Update a Altera Payroll employee by ID** (Update). Update an existing employee in Altera Payroll by id. Returns no documented response body. Required: the record id in the request path.
- **List all Altera Payroll departments** (List). List company departments in Altera Payroll by company and department level. Returns: co, cDept, cc, cc1, cc2, cc3, cc4, cc5, name, address1, address2, city and 10 more field(s). Required: department_level.
- **Get single Altera Payroll department by ID** (Get). Get a single company department in Altera Payroll by CC code and department level. Returns: co, cDept, cc, cc1, cc2, cc3, cc4, cc5, name, address1, address2, city and 10 more field(s). Required: the record id in the request path, department_level.
- **Create a Altera Payroll department** (Create). Create a new company department in Altera Payroll by sending a populated department object. Returns: co, cDept, cc, cc1, cc2, cc3, cc4, cc5, name, address1, address2, city and 10 more field(s). Takes no caller parameters; the company is taken from the company_id credential.
- **List all Altera Payroll jobs** (List). List CompanyJobs in Altera Payroll for a given company. Returns: co, jobCode, description, address1, address2, city, state, zip, county, country, projectNumber, title and 6 more field(s). Takes no caller parameters; the company is taken from the company_id credential.
- **Get single Altera Payroll job by ID** (Get). Get a single CompanyJob in Altera Payroll by job code (id). Returns: co, jobCode, description, address1, address2, city, state, zip, county, country, projectNumber, title and 6 more field(s). Required: the record id in the request path.
- **Create a Altera Payroll job** (Create). Create a new CompanyJob in Altera Payroll (ReadyPay Online). Returns: co, jobCode, description, address1, address2, city, state, zip, county, country, projectNumber, title and 6 more field(s). Takes no caller parameters; the company is taken from the company_id credential.
- **List all Altera Payroll earnings** (List). List earning codes from ReadyPay Online for a specific company in Altera Payroll. Returns: eCode, description, shortDescription, active, rate, rateCode, overrideRate, addToRate, rateMultiplier. Takes no caller parameters; the company is taken from the company_id credential.
- **Get single Altera Payroll earning by ID** (Get). Get a single earning code detail from ReadyPay Online by company code and earning code in Altera Payroll. Returns: eCode, description, shortDescription, active, rate, rateCode, overrideRate, addToRate, rateMultiplier. Required: the record id in the request path.
- **List all Altera Payroll deductions** (List). List deduction codes from Altera Payroll ReadyPay Online by company id. Returns: dCode, description, shortDescription, active. Takes no caller parameters; the company is taken from the company_id credential.
- **Get single Altera Payroll deduction by ID** (Get). Get a single deduction code from Altera Payroll ReadyPay Online by company id and deduction code. Returns: dCode, description, shortDescription, active. Required: the record id in the request path.
- **List all Altera Payroll contacts** (List). List company contacts from Altera Payroll's ReadyPay Online by company code. Returns: active, allowTextMessages, cellPhone, cellPhoneProvider, co, contactType, employeeGuidField, fax, firstName, guidField, isPrimaryContact, lastName and 9 more field(s). Takes no caller parameters; the company is taken from the company_id credential.
- **Create a Altera Payroll contact** (Create). Add a new contact or update an existing contact in Altera Payroll's ReadyPay Online via upsert. Returns: active, allowTextMessages, cellPhone, cellPhoneProvider, co, contactType, employeeGuidField, fax, firstName, guidField, isPrimaryContact, lastName and 9 more field(s). Takes no caller parameters; the company is taken from the company_id credential.
- **List all Altera Payroll dependents** (List). List employee dependents in Altera Payroll for a given company and employee. Returns: co, id, dependentId, lastName, firstName, middleName, address1, address2, city, state, zip, country and 12 more field(s). Required: employee_id.
- **Get single Altera Payroll dependent by ID** (Get). Get a single employee dependent in Altera Payroll by dependent id. Returns: co, id, dependentId, lastName, firstName, middleName, address1, address2, city, state, zip, country and 12 more field(s). Required: the record id in the request path, employee_id.
- **Create a Altera Payroll dependent** (Create). Create or update (upsert) an employee dependent in Altera Payroll by submitting an APIEmployeeDependent JSON body. Returns: co, id, dependentId, lastName, firstName, middleName, address1, address2, city, state, zip, country and 12 more field(s). Required: employee_id.
- **List all Altera Payroll directdeposits** (List). List an employee's current direct deposits in Altera Payroll (ReadyPay Online) by company code and employee id. Returns: co, id, startDate, endDate, bankAccount, bankTransit, excludeFromSpecialPaychecks, flatAmount, isCheckingAccount, nameOnAccount, percentage, prenoteDate. Required: employee_id.
- **Create a Altera Payroll directdeposit** (Create). Add or update an employee's direct deposit in Altera Payroll (ReadyPay Online) via upsert. Returns: co, id, startDate, endDate, bankAccount, bankTransit, excludeFromSpecialPaychecks, flatAmount, isCheckingAccount, nameOnAccount, percentage, prenoteDate. Required: employee_id.
- **Altera Payroll directdeposits get by account** (Get). Get one employee direct deposit from Altera Payroll (ReadyPay Online). The vendor keys this record on the bank account number AND the bank transit number rather than on a single id, which is why it is a named method rather than a canonical get. Returns: co, id, startDate, endDate, bankAccount, bankTransit, excludeFromSpecialPaychecks, flatAmount, isCheckingAccount, nameOnAccount, percentage, prenoteDate. Required: employee_id, account, transit.
- **List all Altera Payroll employee rates** (List). List an employee's current rates in Altera Payroll (ReadyPay Online) by company code and employee id. Returns: co, id, rateCode, rate, salary, startDate, endDate, ratePer. Required: employee_id.
- **Get single Altera Payroll employee rate by ID** (Get). Get a single employee rate from Altera Payroll (ReadyPay Online) by company code, employee id, and rate code. Returns: co, id, rateCode, rate, salary, startDate, endDate, ratePer. Required: the record id in the request path, employee_id.
- **Create a Altera Payroll employee rate** (Create). Add a new rate or update an existing rate for an employee in Altera Payroll (ReadyPay Online) via an upsert operation. Returns: co, id, rateCode, rate, salary, startDate, endDate, ratePer. Required: employee_id.
- **List all Altera Payroll taxes** (List). List an employee's current taxes in Altera Payroll by company code and employee id. Returns: co, id, taxCode, startDate, endDate, filingStatus, primaryExemptions, secondaryExemptions, additionalAmount, additionalPercentage, percentOfGross, addlIncome and 2 more field(s). Required: employee_id.
- **Get single Altera Payroll tax by ID** (Get). Get a single employee tax from Altera Payroll by company code, employee id, and tax code. Returns: co, id, taxCode, startDate, endDate, filingStatus, primaryExemptions, secondaryExemptions, additionalAmount, additionalPercentage, percentOfGross, addlIncome and 2 more field(s). Required: the record id in the request path, employee_id.
- **Create a Altera Payroll tax** (Create). Add a new tax or update an existing tax (upsert) for an employee in Altera Payroll. Returns: co, id, taxCode, startDate, endDate, filingStatus, primaryExemptions, secondaryExemptions, additionalAmount, additionalPercentage, percentOfGross, addlIncome and 2 more field(s). Required: employee_id.
- **List all Altera Payroll accruals** (List). List an employee's accruals in Altera Payroll (ReadyPay Online). Returns: co, id, accrualCode, startDate, endDate, lengthOfService, rate, amount, hours, maximum, carryOverMaximum, overrideRate and 19 more field(s). Required: employee_id.
- **Get single Altera Payroll accrual by ID** (Get). Get a single employee accrual in Altera Payroll (ReadyPay Online) by accrual code. Returns: co, id, accrualCode, startDate, endDate, lengthOfService, rate, amount, hours, maximum, carryOverMaximum, overrideRate and 19 more field(s). Required: the record id in the request path, employee_id.
- **Create a Altera Payroll accrual** (Create). Add or update (upsert) an employee accrual in Altera Payroll (ReadyPay Online). Returns: co, id, accrualCode, startDate, endDate, lengthOfService, rate, amount, hours, maximum, carryOverMaximum, overrideRate and 19 more field(s). Required: employee_id.
- **List all Altera Payroll paychecks** (List). List an employee's paychecks for a given year in Altera Payroll. Returns: co, id, trans, checkDate, beginDate, endDate, cc1, cc2, cc3, cc4, cc5, jobCode and 18 more field(s). Required: employee_id, year.
- **Get single Altera Payroll paycheck by ID** (Get). Get a single employee paycheck by id in Altera Payroll. Returns: co, id, rateCode, rate, salary, startDate, endDate, ratePer. Required: the record id in the request path, employee_id.
- **List all Altera Payroll paycheck details** (List). Get an employee's paycheck check details in Altera Payroll. Returns: co, id, rateCode, rate, salary, startDate, endDate, ratePer. Required: employee_id, check_id.
- **List all Altera Payroll employee deductions** (List). List an employee's current deductions from Altera Payroll ReadyPay Online by company code and employee id. Returns: co, id, deductionCode, calcCode, tabled, units, rate, amount, startDate, endDate, cC1, cC2 and 22 more field(s). Required: employee_id.
- **Get single Altera Payroll employee deduction by ID** (Get). Get a single employee deduction from Altera Payroll ReadyPay Online by company code, employee id, and deduction code. Returns: co, id, deductionCode, calcCode, tabled, units, rate, amount, startDate, endDate, cC1, cC2 and 22 more field(s). Required: the record id in the request path, employee_id.
- **Create a Altera Payroll employee deduction** (Create). Add a new deduction record to an employee in Altera Payroll ReadyPay Online. Returns: co, id, deductionCode, calcCode, tabled, units, rate, amount, startDate, endDate, cC1, cC2 and 22 more field(s). Required: employee_id.
- **List all Altera Payroll workerscomps** (List). List workers comp records in Altera Payroll for a specific company and check date. Returns: cc, cc1, cc2, cc3, cc4, cc5, wcc, trans, jobCode, state, totalHours, totalWages and 22 more field(s). Required: check_date.
- **List all Altera Payroll workerscomp codes** (List). List a company's workers' compensation codes in Altera Payroll. Returns: co, wcc, description, guidField, secondaryCode, isSecondaryCode, thresholdRate. Takes no caller parameters; the company is taken from the company_id credential.
- **Create a Altera Payroll workerscomp code** (Create). Add or update (upsert) a workers' compensation code for a company in Altera Payroll. Returns: co, wcc, description, guidField, secondaryCode, isSecondaryCode, thresholdRate. Takes no caller parameters; the company is taken from the company_id credential.
- **List all Altera Payroll workerscomp plans** (List). List workers' comp plans for a company in Altera Payroll. Returns: co, policyNumber, description, insuranceCompany, policyStartMonth, policyStartDay, policyEndMonth, policyEndDay, guidField, broker, isRequired, defaultWcc. Takes no caller parameters; the company is taken from the company_id credential.
- **Create a Altera Payroll workerscomp plan** (Create). Add or update (upsert) a workers' comp plan for a company in Altera Payroll. Returns: co, policyNumber, description, insuranceCompany, policyStartMonth, policyStartDay, policyEndMonth, policyEndDay, guidField, broker, isRequired, defaultWcc. Takes no caller parameters; the company is taken from the company_id credential.
- **List all Altera Payroll workerscomp rates** (List). List a company's worker's compensation rates in Altera Payroll. Returns: co, wcc, state, startDate, endDate, rate, experienceRate, limit, eeRate, hours, impound, codeGroup and 17 more field(s). Takes no caller parameters; the company is taken from the company_id credential.
- **Create a Altera Payroll workerscomp rate** (Create). Add or update (upsert) a company's worker's compensation plan rates in Altera Payroll. Returns: co, wcc, state, startDate, endDate, rate, experienceRate, limit, eeRate, hours, impound, codeGroup and 17 more field(s). Takes no caller parameters; the company is taken from the company_id credential.
- **List all Altera Payroll rate configs** (List). Get rate configuration and rate codes for an Altera Payroll company by company code. Returns: co, effectiveDate, rateCodes. Takes no caller parameters; the company is taken from the company_id credential.
- **List all Altera Payroll tax configs** (List). Get tax configuration and the list of current taxes for an Altera Payroll company by company code. Returns: co, effectiveDate, taxTypes, taxes. Takes no caller parameters; the company is taken from the company_id credential.
- **List all Altera Payroll payroll records** (List). Retrieves all employee payroll records for all companies within the specified date range. Both dates are required and use the yyyy-MM-dd format. The vendor declares the 200 body as an untyped object with no example, so the response shape is unverified until a live authenticated call is made. This is also the only endpoint in the API that declares a 503 Service Temporarily Unavailable. Returns no documented response body. Required: fromDate, toDate.
