MCP server: all tools

Every tool exposed by @centerfy/mcp (222 in all), grouped by resource and linked to its endpoint.

Tools are named centerfy_<resource>_<action>; agency tools are centerfy_agency_* and appear only when CENTERFY_AGENCY_API_KEY is set (see MCP server for setup). Each tool’s input schema mirrors the parameters on its endpoint page.

Contacts

ToolEndpointWhat it does
centerfy_contacts_listList contactslist contacts, newest first, paginated.
centerfy_contacts_getGet a contactget a single contact by id.
centerfy_contacts_createCreate a contactcreate (or match and update) a contact.
centerfy_contacts_updateUpdate a contactupdate a contact; only fields present in the body are changed.
centerfy_contacts_deleteDelete a contactpermanently delete a contact.

Tags

ToolEndpointWhat it does
centerfy_tags_listList all tagslist contact tags.
centerfy_contacts_add_tagsAdd tags to a contactadd (merge) one or more tags to a contact; existing tags are preserved.
centerfy_contacts_remove_tagsRemove tags from a contactremove tags from a contact.

Notes

ToolEndpointWhat it does
centerfy_contacts_create_noteCreate a contact notecreate a note on a contact (local note only, not mirrored to GHL/HubSpot/Salesforce).
centerfy_contacts_list_notesList contact noteslist a contact’s active notes, newest first.
centerfy_contacts_delete_noteDelete a contact notesoft-delete a contact’s note.

AI Calls

ToolEndpointWhat it does
centerfy_contacts_make_ai_callMake an AI call to a contactplace an outbound AI phone call to a contact. Dials the contact’s phone on file.

Phone numbers

ToolEndpointWhat it does
centerfy_phone_numbers_listList owned numberslist your owned phone numbers.
centerfy_phone_numbers_getGet a phone numberget a single owned phone number by id.
centerfy_phone_numbers_assign_agentAssign to an agentassign a phone number to an agent.
centerfy_phone_numbers_unassign_agentRemove from agentremove the agent from a phone number.

Number pools

ToolEndpointWhat it does
centerfy_number_pools_listList number poolslist your number pools.
centerfy_number_pools_createCreate a number poolcreate a number pool.
centerfy_number_pools_getGet a number poolget a single number pool.
centerfy_number_pools_deleteDelete a number pooldelete a number pool.
centerfy_number_pools_updateUpdate a number poolupdate a number pool. Rename the pool and/or replace its complete member set.
centerfy_number_pools_add_numberAdd a number to a pooladd a single owned number to a pool. Idempotent.
centerfy_number_pools_remove_numberRemove a number from a poolremove a single number from a pool. The number stays in your inventory.

Voices

ToolEndpointWhat it does
centerfy_voices_listList voiceslist available AI voices.
centerfy_voices_previewPreview a voicepreview a voice by name.

Agents

ToolEndpointWhat it does
centerfy_agents_createCreate an agentcreate an AI agent.
centerfy_agents_listList AI agentslist your AI agents. Read-only; useful to discover agent_id values to pass to the make-AI-call and send-message webhooks. Optional active filter.
centerfy_agents_getGet an agentget a single AI agent by id. Returns the same safe field set as the list endpoint.
centerfy_agents_updateUpdate an agentupdate an AI agent.
centerfy_agents_duplicateDuplicate an agentduplicate an AI agent.
centerfy_agents_archiveArchive an agentdelete (archive and deactivate) an AI agent.

Agent folders

ToolEndpointWhat it does
centerfy_agent_folders_createCreate a foldercreate an agent folder.
centerfy_agent_folders_listList folderslist agent folders.
centerfy_agent_folders_updateUpdate a folderupdate an agent folder.
centerfy_agent_folders_add_agentAssign an agentassign an agent to a folder.
centerfy_agent_folders_remove_agentRemove an agentremove an agent from a folder.
centerfy_agent_folders_deleteDelete a folderdelete an empty agent folder.

Tools

ToolEndpointWhat it does
centerfy_agents_list_custom_toolsList agent custom toolslist an agent’s custom tools.
centerfy_agents_assign_custom_toolAssign a tool to an agentassign a custom tool to an agent.
centerfy_agents_remove_custom_toolRemove a tool from an agentremove a custom tool from an agent.
centerfy_custom_tools_createCreate a custom toolcreate a custom tool.
centerfy_custom_tools_getGet a custom toolget a single custom tool.
centerfy_custom_tools_updateUpdate a custom toolupdate a custom tool.
centerfy_custom_tools_deleteDelete a custom tooldelete a custom tool.

Knowledge bases

ToolEndpointWhat it does
centerfy_knowledge_bases_listList knowledge basesList your knowledge bases, newest-first, each with its document and text-entry source counts.
centerfy_knowledge_bases_createCreate a knowledge baseCreate a knowledge base. The knowledge base starts empty.
centerfy_knowledge_bases_deleteDelete a knowledge baseDelete a knowledge base, including its documents and text entries.
centerfy_knowledge_bases_enableEnable a knowledge baseEnable a knowledge base so its agents can retrieve from it. Idempotent.
centerfy_knowledge_bases_disableDisable a knowledge baseDisable a knowledge base so its agents stop retrieving from it. The knowledge base and its data are kept. Idempotent.
centerfy_knowledge_bases_add_textAdd a text sourceAdd a plain-text source to a knowledge base. The entry is queued and embedded asynchronously, not inline.
centerfy_knowledge_bases_add_faqAdd an FAQ sourceAdd an FAQ source to a knowledge base. The faq_pairs are combined into one entry, queued, and embedded asynchronously.
centerfy_knowledge_bases_add_urlAdd a URL sourceAdd a URL source to a knowledge base. The page is fetched, chunked, and embedded asynchronously, not inline.
centerfy_knowledge_bases_add_fileAdd a file sourceadd a file source to a knowledge base (multipart).
centerfy_knowledge_bases_delete_sourceDelete a sourcedelete a source from a knowledge base.
centerfy_agents_assign_knowledge_baseAssign to an agentAssign (connect) a knowledge base to an agent, enforcing the one-knowledge-base-per-agent policy.
centerfy_agents_remove_knowledge_baseRemove from an agentRemove (disconnect) a knowledge base from an agent. The knowledge base and its data are untouched; only the link is deleted.

Appointments

ToolEndpointWhat it does
centerfy_appointments_listList appointments (date range)list appointments in a date range.
centerfy_appointments_createCreate an appointmentcreate an appointment.
centerfy_appointments_getGet an appointmentget a single appointment.
centerfy_appointments_updateUpdate an appointmentupdate an appointment.
centerfy_appointments_deleteDelete an appointmentdelete an appointment.

Messages

ToolEndpointWhat it does
centerfy_messages_sendSend a message to a contactsend a caller-supplied message to a contact on a channel. Channels: email, sms, whatsapp, facebook, instagram.
centerfy_messages_send_aiSend an AI message to a contactsend an AI-generated message to a contact on a channel. The agent writes the text, then it is delivered.
centerfy_messages_list_for_contactFetch a contact’s messagesfetch a contact’s messages. Returns the most recent messages across every channel and conversation for the contact, in chronological order (oldest → newest).

Conversations

ToolEndpointWhat it does
centerfy_conversations_listList conversationslist conversations. The same set the inbox shows, newest first by updated_at, with offset-based pagination.
centerfy_conversations_getGet a conversationget a single conversation. Returns the same shape as a list row.
centerfy_conversations_list_messagesList messages in a conversationlist a conversation’s messages. Returns the most recent messages for the conversation, oldest → newest.

Calls

ToolEndpointWhat it does
centerfy_calls_listList call historylist call history. The same records the Call History page shows, newest first by started_at, with offset-based pagination and resolved agent and contact names.
centerfy_calls_statsCall stats for the sub-accountcall stats. Aggregate call metrics over an optional date range (default: the last 30 days): totals by direction and status, completed vs missed, calls with recordings, and total and average talk time.
centerfy_calls_getGet a call (rich detail)get a single call with full detail. Extends the list shape with the heavy fields: transcript, AI summary, and recording URL or number used.

Pipelines

ToolEndpointWhat it does
centerfy_pipelines_listList pipelinesList the sub-account’s pipelines, oldest first, each with its stages ordered by position.
centerfy_pipelines_createCreate a pipelineCreate a pipeline, optionally with its stages in display order. Stage colours are assigned automatically, the same way the app does.
centerfy_pipelines_getGet a pipelineGet one pipeline with its stages ordered by position.
centerfy_pipelines_updateRename a pipelineRename a pipeline.
centerfy_pipelines_deleteDelete a pipelineDelete a pipeline and its stages.
centerfy_pipelines_create_stageAdd a stageAdd a stage to a pipeline — appended to the end, or inserted at a position (later stages shift down).
centerfy_pipelines_update_stageUpdate a stageRename, recolour or move a stage. Moving renumbers the other stages so positions stay contiguous.
centerfy_pipelines_delete_stageDelete a stageDelete a stage. Remaining stages are renumbered.

Opportunities

ToolEndpointWhat it does
centerfy_opportunities_listList opportunitiesList opportunities, newest first, with optional filters.
centerfy_opportunities_createCreate an opportunityCreate an opportunity. Fires your “opportunity created” workflows, exactly like creating one in the app.
centerfy_opportunities_getGet an opportunityGet one opportunity.
centerfy_opportunities_updateUpdate an opportunityUpdate an opportunity — only the fields you send change. Changing the stage fires your “pipeline stage changed” workflows.
centerfy_opportunities_moveMove an opportunity to a stageMove an opportunity to another stage, optionally in another pipeline. Fires your “pipeline stage changed” workflows.
centerfy_opportunities_deleteDelete an opportunityPermanently delete an opportunity.

Companies

ToolEndpointWhat it does
centerfy_companies_listList companiesList the sub-account’s companies alphabetically by name, each with its contact count.
centerfy_companies_createCreate a companyCreate a company. Values are trimmed; empty strings are stored as null.
centerfy_companies_getGet a companyGet one company with its contact count.
centerfy_companies_updateUpdate a companyUpdate a company — only the fields you send change. Send null (or an empty string) to clear an optional field.
centerfy_companies_deleteDelete a companyPermanently delete a company. Its contacts and opportunities are kept and simply unlinked from it.
centerfy_companies_list_contactsList a company’s contactsList the contacts linked to a company, newest first.

Smart Lists

ToolEndpointWhat it does
centerfy_smart_lists_listList smart listsList the sub-account’s smart lists in the app’s display order. Smart lists are read-only through the API.
centerfy_smart_lists_getGet a smart listGet one smart list.
centerfy_smart_lists_list_contactsList a smart list’s contactsList the contacts in a smart list, most recently added first — the same members the app’s list view, bulk SMS/email and campaigns use.

Custom Fields

ToolEndpointWhat it does
centerfy_custom_fields_listList custom fieldsList the sub-account’s contact custom field definitions, ordered by sort_order then name.
centerfy_custom_fields_createCreate a custom fieldCreate a contact custom field. The field_key (the key values are stored under) is derived from field_name the same way the app does, unless you pass one.
centerfy_custom_fields_getGet a custom fieldGet one custom field definition.
centerfy_custom_fields_updateUpdate a custom fieldUpdate a custom field definition — only the fields you send change. field_key cannot be changed, because stored values are keyed by it.
centerfy_custom_fields_deleteDelete a custom fieldPermanently delete a custom field definition. Values already stored on contacts are left in place, as in the app.
centerfy_contacts_get_custom_fieldsGet a contact’s custom field valuesGet a contact’s custom field values: the raw values keyed by field_key, plus every active (non-archived) definition paired with its value.
centerfy_contacts_set_custom_fieldsSet a contact’s custom field valuesMerge custom field values into a contact. Keys you don’t send are left unchanged; null clears a value.
ToolEndpointWhat it does
centerfy_contacts_set_dncSet DNC bypassTurn the per-contact DNC bypass on or off — the same toggle as on the contact profile. While bypass is true, the Do Not Call check is skipped before outbound AI calls to this contact.
centerfy_contacts_unsubscribeUnsubscribe a contactUnsubscribe a contact from SMS and/or email — the same toggles as on the contact profile. Bulk SMS and email sends skip unsubscribed contacts.
centerfy_contacts_resubscribeRe-subscribe a contactRe-subscribe a contact to SMS and/or email, clearing the unsubscribe flag for those channels.

Lead Scoring

ToolEndpointWhat it does
centerfy_lead_scoring_list_rulesList lead scoring rulesList the sub-account’s lead scoring rules, ordered by sort_order. Rules are managed in the app (Settings) and are read-only through the API.
centerfy_lead_scoring_get_contact_scoreGet a contact’s lead scoreGet a contact’s current lead score, lead quality and latest sentiment, plus its most recent scoring events (newest first).
centerfy_lead_scoring_recomputeRecompute a lead scoreRebuild a contact’s lead score from its baseline and all of its scoring events, and save it on the contact.

Analytics

ToolEndpointWhat it does
centerfy_analytics_overviewInsights overviewThe Reports › Insights overview: wallet balance, cost per message compared with the previous period of equal length, a daily series (spend, contacts touched, spend per contact, tool uses) and a bookings heatmap.
centerfy_analytics_agentsAgent performancePer-agent performance: contacts first touched in the range, how many became leads, calls, spend and cost per lead. Agents with no activity are left out.
centerfy_analytics_usageUsage summaryResource counts (contacts, active users, phone numbers and agents) plus usage billed in the range, grouped by service type at your sub-account prices.
centerfy_analytics_emailEmail performanceOutbound emails sent in the range and their tracking events (delivered, opened, clicked, bounced, complained, unsubscribed), with rates.

Call Recordings

ToolEndpointWhat it does
centerfy_call_recordings_getGet a recording URLGet a short-lived signed URL to play or download a call’s recording.

Wallet

ToolEndpointWhat it does
centerfy_wallet_getGet the wallet balanceGet the sub-account’s current wallet balance — the same figure the app shows. Read-only.
centerfy_wallet_usageList billed usageList the usage records billed to the wallet (calls, messages, etc.), newest first, at your sub-account prices.

Calendars

ToolEndpointWhat it does
centerfy_calendars_listList calendarsList the sub-account’s calendars, sorted by name.
centerfy_calendars_createCreate a calendarCreate a calendar. Integration fields can’t be set through the API.
centerfy_calendars_getGet a calendarGet one calendar.
centerfy_calendars_updateUpdate a calendarUpdate a calendar — only the fields you send change.
centerfy_calendars_deleteDelete a calendarPermanently delete a calendar. Its appointments are kept but no longer linked to a calendar.
centerfy_calendars_free_slotsList free slotsList open booking slots on a calendar between two dates, using the same availability check your AI agents use (business hours, existing appointments and connected calendars).
centerfy_calendars_assign_agentAssign a calendar to an agentGive an agent a calendar it can check and book on, the same as adding it in the agent editor. Posting an already-assigned calendar updates its tool name/description.
centerfy_calendars_remove_agentRemove a calendar from an agentRemove a calendar from an agent. The agent can no longer check or book on it; the calendar itself is not deleted.

Scheduled Calls

ToolEndpointWhat it does
centerfy_scheduled_calls_createSchedule a callSchedule an outbound AI call: once scheduled_at passes, the agent calls the contact’s phone number on file. The call is billed like any outbound call when it runs.
centerfy_scheduled_calls_listList scheduled callsList scheduled calls, soonest first, with optional filters.
centerfy_scheduled_calls_getGet a scheduled callGet one scheduled call.
centerfy_scheduled_calls_cancelCancel a scheduled callCancel a scheduled call that hasn’t started yet. The row is deleted.

Scheduled Messages

ToolEndpointWhat it does
centerfy_scheduled_messages_createSchedule a messageSchedule an AI-written follow-up: once scheduled_at passes, the agent writes a message from context and sends it to the contact through your connected messaging account. Messages are billed when sent.
centerfy_scheduled_messages_listList scheduled messagesList scheduled messages, soonest first, with optional filters.
centerfy_scheduled_messages_getGet a scheduled messageGet one scheduled message, including what was sent once it has run.
centerfy_scheduled_messages_cancelCancel a scheduled messageCancel a scheduled message that hasn’t started yet. The row is deleted.

Workflows

ToolEndpointWhat it does
centerfy_workflows_listList workflowsList the sub-account’s workflows, newest first. Deleted workflows are not returned.
centerfy_workflows_getGet a workflowGet one workflow, optionally with its definition.
centerfy_workflows_enrollEnroll contactsEnroll up to 100 contacts into an active workflow. Enrollment is asynchronous: each contact gets a pending execution that the workflow engine then runs. Running the workflow can send emails and texts and place AI calls, which cost money.
centerfy_workflows_remove_contactRemove a contactRemove a contact from a workflow by cancelling all of its live executions (pending, running, waiting, waiting_for_reply or paused). No further steps run for that contact.
centerfy_workflows_activateActivate a workflowActivate a workflow. Executions paused by a deactivation resume, so messages and calls may go out right away.
centerfy_workflows_deactivateDeactivate a workflowDeactivate a workflow. Its live executions are paused and new enrollments are refused until it is activated again.
centerfy_workflows_list_executionsList executionsList a workflow’s executions (one per enrollment), most recently started first.

Reminder Templates

ToolEndpointWhat it does
centerfy_reminder_templates_listList reminder templatesList the sub-account’s appointment reminder templates, ordered by name.
centerfy_reminder_templates_createCreate a reminder templateCreate an appointment reminder template. created_by is set to the user who created the API key.
centerfy_reminder_templates_getGet a reminder templateGet one reminder template.
centerfy_reminder_templates_updateUpdate a reminder templateUpdate a reminder template. Only the fields you send change.
centerfy_reminder_templates_deleteDelete a reminder templatePermanently delete a reminder template.

Forms

ToolEndpointWhat it does
centerfy_forms_listList formsList the sub-account’s forms and surveys, newest first. Fields and settings are not included — get a form for those.
centerfy_forms_getGet a formGet one form with its fields and settings. Use the field labels as keys when submitting.
centerfy_forms_list_submissionsList form submissionsList a form’s submissions, newest first.
centerfy_forms_submitSubmit a formSubmit a form on a lead’s behalf, exactly like a visitor would. The contact is matched by email, then phone, or created (lead source form). The submission fires the form’s “form submitted” workflows, which can send messages and place AI calls that cost money, and sends the form’s notification email if one is set.
centerfy_forms_list_contact_submissionsList a contact’s submissionsList every form submission linked to a contact, newest first.

Voice Widget

ToolEndpointWhat it does
centerfy_agent_widget_getGet widget settingsGet an agent’s website voice widget settings (orb or button), with defaults filled in.
centerfy_agent_widget_updateUpdate widget settingsUpdate an agent’s widget settings. Top-level keys you send replace the stored ones; orb, button and sandbox (including sandbox.style) are merged one level deep, so you can change a single colour. Changes apply to the live widget on every site where it’s embedded.
centerfy_agent_widget_embedGet embed codeGet the HTML snippet to paste on a website to show the agent’s widget — the same iframe code the agent page copies.

Outbound Webhook Subscriptions

ToolEndpointWhat it does
centerfy_outbound_webhooks_listList subscriptionsList the sub-account’s outbound webhook subscriptions, oldest first. Secrets are never returned here — only has_secret.
centerfy_outbound_webhooks_createCreate a subscriptionSubscribe a URL to one or more events. From then on, each matching change in this sub-account is POSTed to the URL as JSON. A secret token is generated and returned in this response only — store it now; it is sent with every delivery as Authorization: Bearer <token> and X-Webhook-Token.
centerfy_outbound_webhooks_getGet a subscriptionGet one subscription. The secret is not returned — only has_secret.
centerfy_outbound_webhooks_updateUpdate a subscriptionUpdate a subscription. Only the fields you send change. Set is_active to false to pause deliveries without deleting the subscription.
centerfy_outbound_webhooks_deleteDelete a subscriptionDelete a subscription. Deliveries stop immediately and its delivery history is deleted too.
centerfy_outbound_webhooks_rotate_secretRotate the secretReplace the subscription’s secret token with a new one. The new token is returned in this response only, and the old one stops being sent immediately — update your receiver first.
centerfy_outbound_webhooks_testSend a test eventSend an example payload for an event to the subscription’s URL right now, with the same token headers real deliveries carry plus X-Webhook-Test: true. Works even while the subscription is paused.
centerfy_outbound_webhooks_list_deliveriesList deliveriesList the subscription’s delivery attempts, newest first, with the payload sent and your endpoint’s response.
centerfy_outbound_webhooks_redeliverRedeliver a deliveryQueue a failed or unknown delivery to be sent again within a few seconds. The stored payload is re-sent to the stored URL with the subscription’s current secret. If the delivery had used all its attempts, one more is allowed.

Team Users

ToolEndpointWhat it does
centerfy_users_listList team membersList the sub-account’s active team members, oldest first, with their role and profile name and email.
centerfy_users_change_roleChange a member’s roleChange a member’s sub-account role.
centerfy_users_removeRemove a memberRemove a member from the sub-account. Their login itself is not deleted — they just lose access to this sub-account.
centerfy_users_inviteInvite a userInvite someone to the sub-account. Sends an invitation email that is valid for 7 days. Inviting an email that already has an invitation here refreshes that invitation (new link, new 7-day expiry, new role) and emails it again.
centerfy_users_list_invitationsList invitationsList invitations that have not been accepted yet, newest first.
centerfy_users_resend_invitationResend an invitationSend the invitation email again. An expired invitation first gets a new link and a fresh 7-day expiry.
centerfy_users_delete_invitationCancel an invitationCancel an invitation. Its link stops working immediately.

Campaigns

ToolEndpointWhat it does
centerfy_campaigns_listList campaignsList SMS and email campaigns, newest first.
centerfy_campaigns_createCreate a campaignCreate a campaign. It is always created as a draft — nothing is sent until you start or schedule it.
centerfy_campaigns_getGet a campaignGet one SMS or email campaign, including its delivery counters.
centerfy_campaigns_updateUpdate a campaignUpdate a draft or scheduled campaign — only the fields you send change. Set contact_ids or smart_list_id to null to switch recipient source.
centerfy_campaigns_deleteDelete a campaignPermanently delete a campaign.
centerfy_campaigns_startSend a campaign nowStart sending a draft or scheduled campaign immediately to its contact_ids, or to the smart list’s current members. Real messages go out and usage is charged to the wallet.
centerfy_campaigns_scheduleSchedule a campaignSchedule a draft campaign, or reschedule a scheduled one, to send automatically at a future time. Messages are sent and charged to the wallet when it goes out.
centerfy_campaigns_statsGet campaign statsDelivery and engagement stats for a campaign. Rates are percentages rounded to one decimal.

Contract Templates

ToolEndpointWhat it does
centerfy_contract_templates_listList contract templatesList contract templates, newest first. Use Get a contract template for the content and field placements.
centerfy_contract_templates_getGet a contract templateGet one contract template, including its builder content and field placements.

Contracts

ToolEndpointWhat it does
centerfy_contracts_listList contractsList contracts, newest first, each with its recipients in signing order.
centerfy_contracts_createCreate a contractCreate a draft contract from a template: copies its title, content, field placements and prepared PDF, and creates one recipient per template role. Nothing is emailed until you send it.
centerfy_contracts_getGet a contractGet one contract with its content, field placements, recipients and signing status.
centerfy_contracts_sendSend for signatureSend the contract for signature: marks it sent and emails a signing link to every signer who hasn’t signed (with sequential signing, only the first signing-order group). Can also re-send a contract that is already sent.
centerfy_contracts_remindRemind signersEmail a reminder to signers who haven’t signed yet (with sequential signing, only the current signing-order group), or to one recipient.
centerfy_contracts_voidVoid a contractVoid a contract. Its signing links stop working. This can’t be undone.
centerfy_contracts_auditGet the audit trailGet the contract’s audit trail, oldest event first.
centerfy_contracts_pdfDownload the signed PDFGet a short-lived download link for the signed PDF.

Reviews

ToolEndpointWhat it does
centerfy_reviews_listList reviewsList reviews imported from your connected review platforms, most recently reviewed first. Read-only.
centerfy_reviews_getGet a reviewGet one review.

Review Requests

ToolEndpointWhat it does
centerfy_review_requests_listList review requestsList review requests that were sent or attempted (from the app or the API), newest first.
centerfy_review_requests_sendSend a review requestSend a contact a “please review us” SMS or email right away, using the review link and message templates from your Reviews settings. A real message is sent; SMS usage is charged to the wallet.

Invoices

ToolEndpointWhat it does
centerfy_invoices_listList invoicesList invoices, newest first, with optional filters.
centerfy_invoices_createCreate an invoiceCreate a pending invoice from line items. The invoice number (INV-YYYY-NNNN) is assigned automatically. Nothing is emailed.
centerfy_invoices_getGet an invoiceGet one invoice.
centerfy_invoices_updateUpdate an invoiceUpdate an invoice — only the fields you send change. Changing the line items recalculates the amount, and a changed amount clears the existing payment link.
centerfy_invoices_deleteDelete an invoicePermanently delete a void invoice. A quote it was generated from stays, unlinked from the invoice.
centerfy_invoices_mark_paidMark an invoice paidRecord a payment received outside Centerfy: sets the invoice to paid and adds its amount to the contact’s revenue. No money is moved.
centerfy_invoices_sendEmail an invoiceEmail the invoice to its contact, including its line items, total, due date and payment link (if any). The invoice’s status is not changed.

Quotes

ToolEndpointWhat it does
centerfy_quotes_listList quotesList quotes and estimates, newest first.
centerfy_quotes_createCreate a quoteCreate an open quote or estimate from line items. The number (QUO-YYYY-NNN or EST-YYYY-NNN) is assigned automatically. Nothing is emailed.
centerfy_quotes_getGet a quoteGet one quote or estimate.
centerfy_quotes_updateUpdate a quoteUpdate a quote — only the fields you send change. Setting status to accepted or won creates a pending invoice for the quote total (if it doesn’t have one yet) and fires your quote status workflows. A changed total clears the payment link.
centerfy_quotes_deleteDelete a quotePermanently delete a quote. Deleting a quote also deletes every invoice generated from it.
centerfy_quotes_create_payment_linkCreate a payment linkCreate a Stripe checkout link for the quote total on the sub-account’s connected Stripe account. Every call also creates a new pending invoice. The link is saved on the quote and included when you email it.
centerfy_quotes_sendEmail a quoteEmail the quote or estimate to its contact (with its payment link, if any) and set its status to sent.
centerfy_quotes_pdfGet the printable quoteGet the printable quote document as an HTML string — the same page the app opens to print or save as PDF.

Phone Number Purchasing

ToolEndpointWhat it does
centerfy_phone_numbers_search_availableSearch available numbersSearch US local numbers you can buy. Read-only — nothing is reserved or charged. Numbers already on the platform are left out.
centerfy_phone_numbers_purchaseBuy a phone numberBuy a phone number for this sub-account. This costs money: the purchase is charged to the wallet (your saved card may be charged to cover it), and the number renews and is billed every 30 days until released. Optionally assign it to an agent in the same call.
centerfy_phone_numbers_importImport a number (SIP)Bring a number you already own from another provider, connected over SIP. Not charged. The SIP credentials are stored for outbound calling and are never returned.
centerfy_phone_numbers_releaseRelease a phone numberRelease a phone number — permanent and cannot be undone. A purchased number goes back to the carrier and stops renewing (it may not be possible to buy it back); an imported number has its SIP setup removed. Any agent loses the number immediately.

Agency · Sub-Accounts

ToolEndpointWhat it does
centerfy_agency_sub_accounts_listList sub-accountsList the agency’s sub-accounts, newest first. Deleted sub-accounts are never returned.
centerfy_agency_sub_accounts_createCreate a sub-accountProvision a sub-account and email its owner a sub_account_owner invitation (valid 7 days). Limits and features come from the agency defaults, or from the named agency pricing plan; the agency’s signup credit (if any) is added to the new wallet.
centerfy_agency_sub_accounts_getGet a sub-accountGet one sub-account, including its features and settings.
centerfy_agency_sub_accounts_updateUpdate sub-account settingsMerge keys into the sub-account’s settings object. Keys you send overwrite existing ones; keys you don’t send are kept.
centerfy_agency_sub_accounts_archiveArchive a sub-accountDESTRUCTIVE. Archive a sub-account and its direct child sub-accounts (sets archived_at, is_active = false), then release and delete their platform phone numbers and stop knowledge-base rebilling — the same flow as the agency Sub-Accounts page.
centerfy_agency_sub_accounts_unarchiveUnarchive a sub-accountRestore an archived sub-account and its archived direct children (archived_at cleared, is_active = true).
centerfy_agency_sub_accounts_pausePause a sub-accountPause a sub-account on the agency’s behalf (paused_reason = manual_agency). Its users see the paused screen in the app.
centerfy_agency_sub_accounts_unpauseUnpause a sub-accountLift an agency pause (paused_reason = manual_agency) and clear the pause fields.
centerfy_agency_sub_accounts_usageGet sub-account usageUsage counts, limits and current wallet balance of a sub-account.

Agency · Sub-Account Users

ToolEndpointWhat it does
centerfy_agency_sub_account_users_listList members and invitationsList a sub-account’s active members (oldest first) plus its pending invitations (unaccepted and unexpired).
centerfy_agency_sub_account_users_inviteInvite a userInvite a user to a sub-account and send the invitation email (valid 7 days). Inviting an email that already has a pending invitation refreshes it (new token and expiry) and re-sends it instead of creating a duplicate.
centerfy_agency_sub_account_users_removeRemove a memberDESTRUCTIVE. Remove a member from a sub-account (deletes their membership; the user account itself is kept).

Agency · Sub-Account API Keys

ToolEndpointWhat it does
centerfy_agency_sub_account_api_keys_listList API keysList a sub-account’s API keys, newest first. Keys are masked — the full key is never returned here.
centerfy_agency_sub_account_api_keys_createCreate an API keyCreate a sub-account API key (cfy_ followed by 32 random bytes, base64url). The full key is returned in this response only — it is not stored (only a SHA-256 hash, prefix and last four are) and can’t be retrieved again.
centerfy_agency_sub_account_api_keys_revokeRevoke an API keyDESTRUCTIVE. Revoke a sub-account API key by deleting it. Integrations using it stop working immediately.

Agency · Agency Wallet

ToolEndpointWhat it does
centerfy_agency_wallet_getGet the agency wallet balanceThe agency’s own (organization-level) wallet balance — not a sub-account wallet.
© 2026 Centerfy AI. All rights reserved.