Skip to content

HRIS

Charlie
API integration

Ship HRIS features without building the integration. Full Charlie API access via Proxy, normalized data through Unified APIs, and 20+ MCP-ready tools for AI agents — all extensible to your exact use case.

Talk to us
Charlie

Use Cases

Why integrate with Charlie

Common scenarios for SaaS companies building Charlie integrations for their customers.

01

Automate payroll reconciliation from Charlie

Payroll and EOR platforms can pull team member profiles, salary details, and UK bank account information directly from Charlie to keep pay runs accurate without manual dual-entry. When a founder updates a salary or banking detail in Charlie, the change flows automatically into the next payroll cycle.

02

Zero-touch IT provisioning and deprovisioning

IT management and SaaS governance platforms can monitor Charlie for new hires and terminations. When a team member appears or their employment status changes, the platform automatically provisions or revokes accounts across Google Workspace, Slack, and other tools — critical for SOC 2 compliance.

03

Sync leave data into capacity and resource planning

Project management and scheduling tools can poll Charlie for approved leave requests and automatically block those dates in sprint plans or shift rosters, preventing managers from over-allocating work to unavailable team members.

04

Build org-aware performance review cycles

Employee engagement and performance platforms can fetch Charlie's team structure, manager relationships, and office locations to auto-generate peer and managerial review workflows. Completed review summaries can be pushed back to Charlie as team member notes for a centralized employee timeline.

05

Centralize employee data across multi-HRIS customer bases

SaaS companies whose customers use a mix of HRIS tools can offer Charlie as a first-class integration alongside others via Truto's Unified HRIS API, normalizing employees, groups, locations, and time-off data into a single schema without building Charlie-specific logic.

What You Can Build

Ship these features with Truto + Charlie

Concrete product features your team can ship faster by leveraging Truto’s Charlie integration instead of building from scratch.

01

Real-time employee directory sync

Automatically import and keep up-to-date every team member's name, email, job title, employment status, and manager relationship using the unified Employees resource.

02

Salary change detection for payroll automation

Poll Charlie salaries — including pay rate, currency, frequency, and effective date — to detect compensation changes and feed them into payroll calculations without manual input.

03

Leave-aware capacity blocking

Read approved and pending leave requests with start/end dates and leave type to automatically adjust team availability in scheduling or project management views.

04

Org chart and team structure import

Fetch teams, offices, and reporting relationships from Charlie to build visual org charts or auto-configure access policies based on department and location.

05

Automated review note push-back

Write structured performance review summaries, 1:1 notes, or compliance records directly onto employee profiles in Charlie using the team member notes and note types endpoints.

06

UK bank account extraction for payroll

Retrieve employee bank account details — including sort code, account number, and bank name — to pre-populate payroll or expense reimbursement workflows for UK-based teams.

SuperAI

Charlie AI agent tools

Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.

list_all_charlie_company

Get details about the company in Charlie that owns the current credentials. Returns id, name, subdomain, and logo in the response.

list_all_charlie_leave_allowances

List all leave allowances in Charlie. Returns id, team_member, allowance_in_days, days_used, remaining_allowance_in_days, leave_types, period_start, and period_end for each record.

list_all_charlie_leave_requests

List all leave requests in Charlie. Returns an array of leave requests with fields such as id, team_member, approver, status, details, amount, request_type, start_date, and end_date.

get_single_charlie_leave_request_by_id

Get a specific leave request in Charlie by id. Returns fields including id, team_member, approver, status, details, amount, units, request_type, start_date, and end_date.

list_all_charlie_offices

List all offices belonging to the authenticated company in Charlie. Returns id, name, head (boolean), address, timezone, phone_number, and email for each office.

get_single_charlie_office_by_id

Get details of a specific office in Charlie using id. Returns fields such as id, name, head (indicates if head office), address, timezone, phone_number, and email.

list_all_charlie_salaries

List all salaries in Charlie. Returns id, team_member, job_title, pay_rate, pay_period, pay_frequency, pay_currency, effective_date, and employment_type for each salary record.

get_single_charlie_salary_by_id

Get a specific salary in Charlie using id. Returns id, team_member, job_title, pay_rate, pay_period, frequency, pay_currency, effective_date, and employment_type fields.

list_all_charlie_team_members

List all team-members in Charlie. Returns an array of team member objects including id, company, first_name, last_name, work_email, job_title, employment_status, and other profile details.

get_single_charlie_team_member_by_id

Get details of a specific team member in Charlie using id. Returns id, company, display_name, work_email, job_title, office, manager, teams, employment_status, and success fields in the response.

list_all_charlie_team_member_leave_allowance

Get the current leave allowance for a specific team member in Charlie. Requires id. Returns id, team_member, allowance_in_days, days_used, remaining_allowance_in_days, leave_types, period_start, and period_end.

list_all_charlie_team_member_leave_requests

List leave requests for a specific team member in Charlie. Requires id. Returns id, team_member, approver, status, details, amount, units, request_type, start_date, and end_date fields in the response.

list_all_charlie_team_member_salaries

Get salaries for a specific team member in Charlie. Requires id. Returns id, team_member, job_title, pay_rate, pay_period, pay_frequency, pay_currency, effective_date, and employment_type for each salary record.

list_all_charlie_teams

List all teams in Charlie. Returns each team's id, name, and team_members in the response.

get_single_charlie_team_by_id

Get details about a specific team in Charlie using id. Returns id, name, and team_members in the response.

list_all_charlie_bank_accounts

List all bank accounts in Charlie for the authenticated company. Returns team_member, account_number, sort_code, and bank_name for each account.

get_single_charlie_bank_account_by_id

Get a bank account in Charlie by id. Returns team_member (owner of the account), account_number, sort_code (without punctuation), bank_name, and success status.

list_all_charlie_team_member_notes

List notes for a specific team member in Charlie using id. Returns each note's id, team_member, team_member_note_type, label, and content fields in the response.

create_a_charlie_team_member_note

Create a new team-member-note for a specific team member in Charlie. Requires id. Returns id, team_member, team_member_note_type, label, and content in the response.

list_all_charlie_team_member_note_types

List all team member note types in Charlie. Returns each note type’s id, name, type, and permissions structure for roles within the company.

get_single_charlie_team_member_note_type_by_id

Get details of a specific team member note type in Charlie using id. Returns id, name, type, and permissions object describing access levels and visibility of the note type content.

create_a_charlie_team_member_note_type

Create a new team member note type in Charlie. Returns the created note type data, including id, name, type, and permissions object. Requires valid JSON body with at least the name field.

Why Truto

Why use Truto’s MCP server for Charlie

Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 650+ integrations.

01

Auto-generated, always up to date

Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.

02

Fine-grained access control

Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.

03

Multi-tenant by design

Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.

04

Works with every MCP client

Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.

05

Built-in auth, rate limits, and error handling

Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.

06

Expiring and auditable servers

Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.

Unified APIs

Unified APIs for Charlie

Skip writing code for every integration. Use Truto’s category-specific Unified APIs out of the box or customize the mappings with AI.

Unified HRIS API

Companies

Companies represent the companies in HRIS

View Docs

Employees

Represents an employee in HRIS

View Docs

Employments

Employments represent a job position at a company.

View Docs

Groups

Groups represent the groups for an Employee

View Docs

Locations

Locations represent the locations in HRIS

View Docs

Timeoff Balances

Represent the time off balances for an Employee

View Docs

Timeoff Requests

Represent the time off requests for an Employee

View Docs

How It Works

From zero to integrated

Go live with Charlie in under an hour. No boilerplate, no maintenance burden.

01

Link your customer’s Charlie account

Use Truto’s frontend SDK to connect your customer’s Charlie account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.

02

We handle authentication

Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.

03

Call our API, we call Charlie

Truto’s Proxy API is a 1-to-1 mapping of the Charlie API. You call us, we call Charlie, and pass the response back in the same cycle.

04

Unified response format

Every response follows a single format across all integrations. We translate Charlie’s pagination into unified cursor-based pagination. Data is always in the result attribute.

FAQs

Common questions about Charlie on Truto

Authentication, rate limits, data freshness, and everything else you need to know before you integrate.

What authentication method does the Charlie integration use?

Charlie's API uses API key authentication. Truto handles the auth flow so your end users can connect their Charlie account without you managing tokens or keys directly.

Can I use Truto's Unified HRIS API with Charlie?

Yes. Charlie maps to the Unified HRIS API resources including Companies, Employees, Employments, Groups, Locations, Timeoff Balances, and Timeoff Requests. This lets you normalize Charlie data alongside other HRIS providers in a single schema.

Does the integration support writing data back to Charlie?

Yes, but write operations are limited to specific endpoints. You can create team member notes and team member note types. Other resources like team members, salaries, and leave requests are read-only.

What employee data can I read from Charlie?

You can retrieve team member profiles (name, email, job title, employment status, manager), salary history (pay rate, currency, frequency, effective date), leave allowances (total and used days), leave requests (dates, type, approval status), bank accounts, teams, and offices.

How does Truto handle pagination and rate limits for Charlie?

Truto abstracts away Charlie's pagination and rate-limiting behavior. When you call a list endpoint through Truto, pagination is handled automatically so you receive complete result sets without managing cursors or page tokens yourself.

Can I fetch leave data for a specific employee rather than all employees?

Yes. The integration supports both bulk listing of all leave requests and allowances, as well as per-team-member endpoints to retrieve leave requests and leave allowances scoped to a specific employee.

Charlie

Get Charlie integrated into your app

Our team understands what it takes to make a Charlie integration successful. A short, crisp 30 minute call with folks who understand the problem.

Talk to us