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 usUse Cases
Why integrate with Charlie
Common scenarios for SaaS companies building Charlie integrations for their customers.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
Employees
Represents an employee in HRIS
Employments
Employments represent a job position at a company.
Groups
Groups represent the groups for an Employee
Locations
Locations represent the locations in HRIS
Timeoff Balances
Represent the time off balances for an Employee
Timeoff Requests
Represent the time off requests for an Employee
How It Works
From zero to integrated
Go live with Charlie in under an hour. No boilerplate, no maintenance burden.
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.
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.
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.
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