Karbon integration
Karbon is practice management software for accounting firms. Search, create and update contacts, organizations and client groups; create, update and schedule work items; read and adjust work budgets, time entries, invoices and payments; record or reverse manual payments and expenses; add notes, upload files, manage custom fields, teams, users and webhook subscriptions. Not returned: accounting details (birth dates, tax, bank and registration numbers), postal addresses, avatars, hourly and billable rates, payment card details, invoice payment links and PDFs, file download links and webhook target URLs. Not exposed: partner-only integration tasks, document-management folder links, deprecated timesheets, business card routes, file downloads and full replaces of contacts, organizations and client groups. API access needs a Business or Enterprise plan, one API application per account; Karbon recommends at most 120 requests per minute (429 with Retry-After beyond). Authentication uses two values from Settings > Connected Apps > API Applications: the Authorization token (a GUID, sent as Bearer) and the AccessKey (a JWT).
Say what should happen.
The workflow builds itself.
What you can do with Karbon
Each of these is one operation on one endpoint, available both as a workflow step and as a tool an AI agent can call on its own. Nothing bundles several operations into one action, so what a run did stays readable afterwards.
Most endpoints run on the free plan. A few, mainly the ones that publish on your behalf, need a paid plan.
Webhook subscription, 5 operations
create_webhook_subscriptionCreate webhook subscriptionPOSTSubscribes your URL to Karbon change notices for one type (WebhookType) or a set (WebhookTypes). One subscription per type per API application. Notices carry only the changed record key.delete_all_webhook_subscriptionsDelete all webhook subscriptionsDELETEDeletes the Contact, Work and Note webhook subscriptions of this API application at once. Notifications stop immediately.delete_webhook_subscriptionDelete webhook subscriptionDELETEDeletes the webhook subscription of one type (or Multi for the multi-type one). Notifications for it stop immediately.get_webhook_subscriptionGet webhook subscriptionGETGets the webhook subscription of one type (or Multi): types and batching settings. 404 means none exists or it was cancelled after 10 failed deliveries.update_webhook_subscriptionUpdate webhook subscriptionPATCHReplaces the whole set of types of the multi-type webhook subscription (WebhookType must be Multi). 404 when no multi-type subscription exists. Returns no body.
Work item, 5 operations
create_work_itemCreate work itemPOSTCreates a work item (a job) for a client, optionally from a work template. Required: AssigneeEmailAddress, Title, ClientKey, ClientType, StartDate. Returns the new WorkItemKey.get_work_itemGet work itemGETGets one work item by WorkItemKey: title, description, client, assignee, dates, statuses, work type, template, schedule, budget, fee settings and role assignments.list_work_itemsList work itemsGETLists work items (jobs), 100 per page: title, client, assignee, dates, statuses, work type, template, schedule and budget. Filter with $filter; page with $top and $skip.replace_work_itemReplace work itemPUTReplaces a whole work item: read it with get_work_item and send every value back with your change. Prefer update_work_item; this may clear the client task recipient. Returns no body.update_work_itemUpdate work itemPATCHUpdates some fields of a work item (title, description, dates, assignee, work type, role assignments, statuses); fields left out keep their value. Any other field returns 400.
Client group, 4 operations
create_client_groupCreate client groupPOSTCreates a client group in Karbon, a real record visible to your firm. FullName is required; add Members as contact or organization keys. Returns the new ClientGroupKey.get_client_groupGet client groupGETGets one client group by ClientGroupKey: name, owner, manager, contact type, restriction level, members (contact and organization keys) and description.list_client_groupsList client groupsGETLists client groups (households or related clients), 100 per page, with FullName, PhoneNumber, Website and ClientGroupKey. Filter by FullName with $filter; page with $top and $skip.update_client_groupUpdate client groupPATCHRenames a client group: FullName is the only field this tool can change. Changes the record for everyone in your firm.
Contact, 4 operations
create_contactCreate contactPOSTCreates a contact (a person) in Karbon, a real record visible to your firm. FirstName and LastName are required. Returns the new ContactKey.get_contactGet contactGETGets one contact (a person) by ContactKey: names, salutation, owner, manager, contact type, restriction level and description.list_contactsList contactsGETLists contacts (people), 100 per page, with name, email, phone, role, owner, manager and ContactKey. Filter by name, email or phone with $filter; page with $top and $skip.update_contactUpdate contactPATCHUpdates a contact's names (FirstName, MiddleName, LastName, PreferredName, Salutation, Suffix) or RestrictionLevel; fields left out keep their value. No other field can change here.
Organization, 4 operations
create_organizationCreate organizationPOSTCreates an organization (a business client) in Karbon, a real record visible to your firm. FullName is required. Returns the new OrganizationKey.get_organizationGet organizationGETGets one organization by OrganizationKey: name, owner, manager, contact type, restriction level and description.list_organizationsList organizationsGETLists organizations (business clients), 100 per page, with name, email, phone, website, contact type and OrganizationKey. Filter with $filter; page with $top and $skip.update_organizationUpdate organizationPATCHUpdates an organization's FullName and/or RestrictionLevel; fields left out keep their value. No other field can change here.
Work schedule, 4 operations
create_work_scheduleCreate work schedulePOSTCreates a recurring work schedule from an existing work item: Karbon then creates new work items automatically on that schedule. Returns the new WorkScheduleKey.get_work_scheduleGet work scheduleGETGets one work schedule by key: recurrence, start and end dates, due and deadline date rules, assignee, title definition and early-creation settings.replace_work_scheduleReplace work schedulePUTReplaces a whole work schedule. Read it first with get_work_schedule and send every current value back with your change. Returns no body.update_work_scheduleUpdate work schedulePATCHChanges a work schedule's ScheduleEndDate (null runs it forever) and/or AssigneeUserKey; fields left out keep their value. Returns no body.
Custom field, 3 operations
create_custom_fieldCreate custom fieldPOSTCreates a custom field definition shown on contacts and/or organizations for your whole firm. Name and Type are required; list types take ListOptions.delete_custom_fieldDelete custom fieldDELETEPermanently deletes a custom field definition by its Key (from list_custom_fields). This changes the record layout for everyone in your firm.list_custom_fieldsList custom fieldsGETLists the custom field definitions of the Karbon account: Key, Name, Type, list options and whether each shows on contacts and organizations.
Estimate summary, 3 operations
get_estimate_summaryGet estimate summaryGETGets one estimate summary of a work item: user, role, task type, estimated minutes, actual minutes and estimated amount.list_estimate_summariesList estimate summariesGETLists the estimate summaries (budget lines) of a work item: per user, role and task type, the estimated and actual minutes and the estimated amount.update_estimate_summaryUpdate estimate summaryPATCHUpdates one budget line of a work item: EstimateMinutes or EstimateAmount (per the account's Time and Budget setting, never both) and/or HourlyRate. Returns no body.
User, 3 operations
create_userCreate userPOSTCreates a new user (team member) in your Karbon account with a name and email address. This adds a real person to your firm's account.get_userGet userGETGets one user by Id: name, email, weekly capacity in minutes, permissions, roles and teams.list_usersList usersGETLists the users (team members) of the Karbon account: Id, Name and EmailAddress, 100 per page. Filter by Name or EmailAddress with $filter.
Custom field value, 2 operations
get_custom_field_valuesGet custom field valuesGETGets the custom field values of a contact or organization: each field's Key, Name, Type and Value (an array of strings).update_custom_field_valuesUpdate custom field valuesPUTReplaces ALL custom field values of a contact or organization. Read them first with get_custom_field_values and send every value back with your change; send EntityKey equal to entity_key.
Individual time entry, 2 operations
get_time_entryGet time entryGETGets one individual time entry: date, minutes, description, user, work item, client, role, task type, billable flag, billed status and fee type.list_time_entriesList time entriesGETLists individual time entries (one per user, day and task), up to 1000 per page: date, minutes, description, user, work item, client, role, task type and billed status.
Invoice, 2 operations
get_invoiceGet invoiceGETGets one invoice by InvoiceKey: number, status, invoice and due dates, totals, tax, amount due, currency and client key, name and email.list_invoicesList invoicesGETLists invoices, 100 per page: number, status, dates, totals, amount due, currency, tax lines and client (key, name, email). Filter by InvoiceStatus; page with $top and $skip.
Manual payment, 2 operations
create_manual_paymentCreate manual paymentPOSTRecords a manual payment (cash, check...) against an invoice, reducing its amount due. This changes your firm's books; undo it with reverse_manual_payment or delete_manual_payment.delete_manual_paymentDelete manual paymentDELETEDeletes a manual payment, so the invoice is no longer marked as paid by it. This changes your firm's books and cannot be undone through the API.
Note, 2 operations
create_noteCreate notePOSTCreates a note on the timeline of a work item, contact, organization or client group, optionally assigned to a user as a to-do. Body accepts HTML. Returns the note Id.get_noteGet noteGETGets one note by its Id: subject, HTML body, author and assignee emails, due and to-do dates, the timelines it is on and its comments.
Payment, 2 operations
get_paymentGet paymentGETGets one payment by PaymentKey: reference, type, date, gross and unapplied credit amounts, method, client, and for Karbon Payments the surcharges, fees, net amount and payout status.list_paymentsList paymentsGETLists payments, 100 per page: reference, type (ManualPayment, ManualPaymentReversed, Payment), date, gross and credit amounts, method, client and Karbon Payments fees.
Segment, 2 operations
get_segmentGet segmentGETGets one shared contact segment by SegmentKey (key, name, type, modified date). Preview feature, enabled on request by Karbon; 404 when the key is not a shared segment.list_segmentsList segmentsGETLists the shared contact segments of the account (key, name, type, modified date). Preview feature, enabled on request by Karbon; personal segments are not returned.
Team, 2 operations
get_teamGet teamGETGets one team by TeamKey, including its members (users and sub-teams, each with Key, Type and Name).list_teamsList teamsGETLists the teams of the account: TeamKey, name, description and parent team key. Filter by Name with $filter; page with $top and $skip.
Work template, 2 operations
get_work_templateGet work templateGETGets one work template by key: title, description, work type key, estimated budget and time, publish and modification dates, usage counts and actor roles.list_work_templatesList work templatesGETLists work templates, 100 per page: key, title, description, work type key, budget and time estimates, publish and usage dates. Filter with $filter; page with $top and $skip.
Add member, 1 operation
add_team_membersAdd team membersPOSTAdds existing, active users to a team; users already in it are skipped. Changes team membership for real. Sub-teams cannot be added here.
Comments commentkey, 1 operation
get_commentGet commentGETGets one comment by its CommentKey: body, author key, creation date and comment type. Comment keys appear in a note's Comments (get_note).
Expense, 1 operation
create_expenseCreate expensePOSTRecords an expense against a work item, contact or organization; the billable part can be billed to the client. Expenses cannot be listed, changed or deleted through the API.
File, 1 operation
upload_fileUpload filePOSTUploads a file and links it to exactly one contact, organization, client group or work item (one key in one link field). Returns the new file Id, name, MIME type and size.
File detail, 1 operation
get_file_detailsGet file detailsGETGets the details of one file by its FileContextKey (from list_files): name, size, MIME type, source, creation date, and whether it is archived or shared with the client.
File list, 1 operation
list_filesList filesGETLists the files of one contact, organization or work item, newest first: FileContextKey, name, size, MIME type, archived and shared flags. TotalCount is the match count.
Get client group by user defined identifier user defined identifier user defined identifier, 1 operation
get_client_group_by_identifierGet client group by identifierGETGets one client group by your own UserDefinedIdentifier (not case sensitive): name, owner, manager, contact type, members and description.
Get contact by user defined identifier user defined identifier user defined identifier, 1 operation
get_contact_by_identifierGet contact by identifierGETGets one contact by your own UserDefinedIdentifier (not case sensitive): names, salutation, owner, manager, contact type and description.
Get organization by user defined identifier user defined identifier user defined identifier, 1 operation
get_organization_by_identifierGet organization by identifierGETGets one organization by your own UserDefinedIdentifier (not case sensitive): name, owner, manager, contact type, restriction level and description.
Member, 1 operation
list_segment_membersList segment membersGETLists the members of a shared contact segment, ordered by name: each EntityKey and EntityType (Contact or Organization). Up to 100 per page. Preview feature, enabled on request.
Remove member, 1 operation
remove_team_memberRemove team memberPOSTRemoves one user from a team (answers 204 whether or not they were a member). Changes team membership for real. Sub-teams cannot be removed here.
Reverse manual payment, 1 operation
reverse_manual_paymentReverse manual paymentPOSTReverses a manual payment (keeps it on record as reversed), so the invoice is due again. This changes your firm's books. Pass the payment key and the reversal date.
Role, 1 operation
list_rolesList rolesGETLists the active, non-default roles of the account (Key and Name), sorted by name, up to 200 per page. Role keys are used in work item UserRoleAssignments.
Tenant settings, 1 operation
get_tenant_settingsGet tenant settingsGETGets the account settings: valid contact types, work types (with their statuses), work statuses, service types, filing deadlines, the tenant key and whether client access is on.
Use Karbon from Claude Code, Cursor or Codex
Connect Karbon in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its Karbon operations become tools the client can call, next to every other integration you connected.
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"
[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"{
"mcpServers": {
"livecontext": {
"type": "http",
"url": "https://livecontext.ai/mcp",
"headers": {
"X-API-Key": "YOUR_API_KEY"
}
}
}
}How to connect Karbon
- Create your workspace
Sign up free. Nothing to install.
- Connect Karbon once
Add your Karbon connection in Settings. Every tool from this integration reuses it, and secrets are encrypted at rest and visible only to you.
- Describe the job in chat
The workflow builds itself in front of you and picks the endpoints it needs. Drag the steps yourself on the canvas whenever you would rather be explicit.
Karbon integration FAQ
What can you do with the Karbon integration?
LiveContext exposes 67 operations on Karbon, covering webhook subscription, work item, client group and contact.
