Connect ProfitSync to AI apps and agents

ProfitSync runs a remote MCP server. Claude, ChatGPT, Cursor, VS Code and any other client that speaks the Model Context Protocol can read and record a person's books — only the workspaces they choose, at the access level they choose.

MCP server URL: https://profitsync.net/api/mcp

Connect a client

Claude

claude.ai, Claude Desktop and Claude mobile

  1. Open Customize → Connectors, find ProfitSync.net in the directory and choose Connect.
  2. Until the listing is live, choose + → Add custom connector, name it ProfitSync, paste the server URL and choose Continue. Keep sign-in on and the OAuth client on Use Claude's published identity, then choose Add.
  3. Sign in to ProfitSync, pick the workspaces Claude may use and set each to View only or View and edit.
  4. In a chat, open + → Connectors and turn ProfitSync on.

Free accounts can add one custom connector. On Team and Enterprise an owner adds it under Organization settings → Connectors first; members then choose Connect.

Claude setup guide

Claude Code

Terminal, IDE extensions and the desktop app

  1. Add the server. --scope user makes it available in every project.
  2. Run /mcp in Claude Code, pick profitsync and finish the sign-in in your browser — or run claude mcp login profitsync.
claude mcp add --transport http --scope user profitsync https://profitsync.net/api/mcp

Claude Code setup guide

ChatGPT

chatgpt.com

  1. Once ProfitSync is listed: open Plugins in the sidebar, search for ProfitSync, choose Install plugin, then Connect.
  2. Until then, add it as a custom MCP server: in Plugins choose + → Add custom MCP server, paste the server URL under Connection and use OAuth. Some workspaces still show this under Settings → Apps → Advanced settings → Developer mode.
  3. Sign in to ProfitSync when asked and pick the workspaces ChatGPT may use.
  4. In a chat, type @ProfitSync or pick it from the + menu.

Custom MCP servers depend on your ChatGPT plan, and on Business and Enterprise an admin must enable developer mode. OpenAI's guide has the current steps.

ChatGPT setup guide

Cursor

Cursor editor and the Cursor CLI

  1. Use the install link, or add the server to ~/.cursor/mcp.json (every project) or .cursor/mcp.json (one project).
  2. Cursor opens the ProfitSync sign-in when the server first needs it. From the CLI, run agent mcp login profitsync.
{
  "mcpServers": {
    "profitsync": {
      "url": "https://profitsync.net/api/mcp"
    }
  }
}

Cursor setup guide

VS Code

GitHub Copilot agent mode

  1. Use the install link, run the command below, or add the server to .vscode/mcp.json.
  2. Start the server. VS Code opens your browser for the ProfitSync sign-in, and the connection appears in the Accounts menu.
code --add-mcp '{"name":"profitsync","type":"http","url":"https://profitsync.net/api/mcp"}'
{
  "servers": {
    "profitsync": {
      "type": "http",
      "url": "https://profitsync.net/api/mcp"
    }
  }
}

On Copilot Business and Enterprise an admin must allow MCP servers.

VS Code setup guide

Codex

Codex CLI, the IDE extension and the ChatGPT desktop app

  1. Add the server, then sign in — Codex opens your browser for the ProfitSync consent screen.
  2. In the IDE extension or the desktop app: Settings → MCP servers → Add server, then Authenticate.
codex mcp add profitsync --url https://profitsync.net/api/mcp
codex mcp login profitsync
[mcp_servers.profitsync]
url = "https://profitsync.net/api/mcp"

Codex setup guide

Gemini CLI

Terminal

  1. Add the server, or put it in ~/.gemini/settings.json.
  2. The first call opens your browser for the ProfitSync sign-in. To sign in by hand, run /mcp auth profitsync.
gemini mcp add --transport http -s user profitsync https://profitsync.net/api/mcp
{
  "mcpServers": {
    "profitsync": {
      "httpUrl": "https://profitsync.net/api/mcp"
    }
  }
}

Gemini CLI setup guide

Devin Desktop

Formerly Windsurf — the desktop app and the Devin CLI

  1. Add the server from the Devin CLI, or put it in ~/.config/devin/mcp_config.json (Windows: %APPDATA%\devin\mcp_config.json).
  2. Choose Authenticate when the server shows Needs auth, or run devin mcp login profitsync.
devin mcp add -s user profitsync https://profitsync.net/api/mcp
devin mcp login profitsync
{
  "mcpServers": {
    "profitsync": {
      "url": "https://profitsync.net/api/mcp"
    }
  }
}

On Enterprise plans an admin must turn MCP on.

Devin Desktop setup guide

Any MCP client

Anything that supports remote MCP servers with OAuth

  1. Point the client at the server URL with the Streamable HTTP transport. It discovers the authorization server, registers itself and opens the ProfitSync consent screen.
  2. To try the tools by hand, run the MCP Inspector (Node 22.19 or later) and choose Connect.
npx @modelcontextprotocol/inspector --server-url https://profitsync.net/api/mcp --transport http

Any MCP client setup guide

Authentication

Conventions

Errors and limits

Call the server directly

1. Discover the authorization server

curl https://profitsync.net/.well-known/oauth-protected-resource/api/mcp
curl https://profitsync.net/.well-known/oauth-authorization-server

2. Register your app (skip if you host a Client ID Metadata Document)

curl -X POST https://profitsync.net/api/oauth/register \
  -H 'Content-Type: application/json' \
  -d '{"client_name":"My app","redirect_uris":["http://127.0.0.1:8976/callback"]}'

3. Send the person to the consent screen (PKCE S256)

https://profitsync.net/api/oauth/authorize?response_type=code
  &client_id=$CLIENT_ID
  &redirect_uri=http://127.0.0.1:8976/callback
  &code_challenge=$CODE_CHALLENGE&code_challenge_method=S256
  &scope=profitsync:workspaces:read%20profitsync:workspaces:write
  &resource=https%3A%2F%2Fprofitsync.net%2Fapi%2Fmcp
  &state=$STATE

4. Exchange the code for tokens

curl -X POST https://profitsync.net/api/oauth/token \
  -d grant_type=authorization_code -d code=$CODE \
  -d client_id=$CLIENT_ID -d code_verifier=$CODE_VERIFIER \
  -d redirect_uri=http://127.0.0.1:8976/callback \
  -d resource=https://profitsync.net/api/mcp

5. Call a tool

curl -X POST https://profitsync.net/api/mcp \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"list_workspaces","arguments":{}}}'

Tool reference

The same catalog as JSON: https://profitsync.net/api/public/mcp-tools

list_workspaces — List my ProfitSync.net workspaces

Read. Workspaces. List workspaces available under the current OAuth consent, with type, role, reporting currency and plugin support. This does not switch the web app's active workspace.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "list_workspaces",
    "arguments": {}
  }
}

list_transactions — List transactions

Read. Transactions. List selected-workspace ledger entries. Global results collapse splits and exclude transfers; account/card views include transfer legs. Page size is 20. Reads recorded data without posting due recurring entries, filing card statements or running autopay. Values may lag until ProfitSync next processes those entries.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "list_transactions",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
      "query": {
        "page": 1
      }
    }
  }
}

get_transaction — Get transaction

Read. Transactions. Read one transaction, native currency and reporting value; missing FX rates may be refreshed.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_transaction",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
      "id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35"
    }
  }
}

create_transaction — Record income or expense

Write. Transactions. Record a positive amount on a bank, cash or credit-card account. Takes wealth_account_id or card_id; company workspaces also require client_id. Refunds must be incoming. Savings-space, debt and transfer entries are not recorded here.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "create_transaction",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
      "type": "incoming",
      "amount": 100,
      "request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
    }
  }
}

update_transaction — Update transaction

Write. Transactions. Edit an existing transaction. Transfer, debt-payment and system-row money fields are locked; labels may be editable. Changing currency requires restating the amount.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "update_transaction",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
      "id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
      "request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
    }
  }
}

delete_transaction — Move transaction to trash

Write. Transactions. Move a transaction to trash and reverse its balance effect. A split or transfer removes its entire group. System rows and debt repayments are not deleted here.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "delete_transaction",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
      "id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
      "request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
    }
  }
}

list_budgets — List spending budgets

Read. Budgets. List limits, spending and remaining amounts for all four view windows. Reads recorded data without posting due recurring entries, filing card statements or running autopay. Values may lag until ProfitSync next processes those entries.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "list_budgets",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60"
    }
  }
}

get_budget — Get spending budget

Read. Budgets. Read one budget, spending history and recent entries. Child budgets inherit their parent's window and currency.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_budget",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
      "id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35"
    }
  }
}

create_budget — Create spending budget

Write. Budgets. Create a spending limit in the reporting currency. Empty categories means overall spending; only one active overall budget is allowed. Category budgets need a name; sibling category scopes must be disjoint.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "create_budget",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
      "amount": 100,
      "request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
    }
  }
}

update_budget — Update spending budget

Write. Budgets. Edit a spending budget. Closing or reopening a parent also changes its children. Sub-budgets inherit the parent's window and currency.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "update_budget",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
      "id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
      "request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
    }
  }
}

delete_budget — Delete spending budget

Write. Budgets. Delete a budget and all its sub-budgets. Ledger transactions are retained.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "delete_budget",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
      "id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
      "request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
    }
  }
}

list_accounts — List cash and bank accounts

Read. Accounts & transfers. List recorded workspace accounts and balances. Full account and routing numbers are withheld. Reads recorded data without posting due recurring entries, filing card statements or running autopay. Values may lag until ProfitSync next processes those entries.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "list_accounts",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60"
    }
  }
}

get_account — Get account

Read. Accounts & transfers. Read an account and its currency-lock status.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_account",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
      "id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35"
    }
  }
}

create_account — Create account

Write. Accounts & transfers. Create a bank, cash or credit-card ledger account. Opening balances create system entries. This records bookkeeping; it does not open a real bank account.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "create_account",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
      "type": "bank",
      "request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
    }
  }
}

update_account — Update account

Write. Accounts & transfers. Edit account details, reconcile its balance, set the default, or archive/restore it. Reconciliation creates a system adjustment; currency cannot change after financial history exists.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "update_account",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
      "id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
      "request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
    }
  }
}

delete_account — Remove or close account

Write. Accounts & transfers. Delete a clean account or archive one with history/cards; may close linked cards and stop their autopay. The default cash wallet is permanent; a card with debt cannot be closed.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "delete_account",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
      "id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
      "request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
    }
  }
}

list_recurring — List recurring entries

Read. Recurring entries. List recurring rules and their last error. Reads recorded data without posting due recurring entries, filing card statements or running autopay. Values may lag until ProfitSync next processes those entries.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "list_recurring",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60"
    }
  }
}

get_recurring — Get recurring entry

Read. Recurring entries. Read a recurring rule and its generated entries. Reads recorded data without posting due recurring entries, filing card statements or running autopay. Values may lag until ProfitSync next processes those entries.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_recurring",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
      "id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35"
    }
  }
}

create_recurring — Create recurring entry

Write. Recurring entries. Create a recurring income or expense. A past start date immediately catches up due entries. An optional debt_account_id makes a forward-only repayment, requiring an eligible paying bank/cash account.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "create_recurring",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
      "name": "Example",
      "type": "incoming",
      "amount": 100,
      "frequency_unit": "day",
      "start_date": "2026-10-01",
      "request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
    }
  }
}

update_recurring — Update recurring entry

Write. Recurring entries. Edit a recurring rule; due entries may be recorded immediately. Debt repayments must retain an eligible account and direction.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "update_recurring",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
      "id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
      "request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
    }
  }
}

set_recurring_active — Pause or resume recurring entry

Write. Recurring entries. Pause or resume a recurring rule. Resuming a normal rule catches up missed entries; debt repayment resumes no earlier than today.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "set_recurring_active",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
      "id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
      "active": true,
      "request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
    }
  }
}

Write. Recurring entries. Link a recurring rule to a debt, or unlink with null. Existing due entries are recorded first; only future entries change shape.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "link_recurring_debt",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
      "id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
      "debt_account_id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
      "request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
    }
  }
}

delete_recurring — Delete recurring entry

Write. Recurring entries. Stop future occurrences by deleting the rule. Existing ledger transactions remain.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "delete_recurring",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
      "id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
      "request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
    }
  }
}

list_debts — List debts and receivables

Read. Debts & loans. List amounts owed and money owed to the user. Reads recorded data without posting due recurring entries, filing card statements or running autopay. Values may lag until ProfitSync next processes those entries.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "list_debts",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60"
    }
  }
}

get_debt — Get debt

Read. Debts & loans. Read debt terms, balances and repayment schedule. Reads recorded data without posting due recurring entries, filing card statements or running autopay. Values may lag until ProfitSync next processes those entries.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_debt",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
      "id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35"
    }
  }
}

create_debt — Record debt or receivable

Write. Debts & loans. Record a debt with a name or counterparty and current balance. Optional disbursement records money already received, not a real bank transfer. link_rule_id and repayment are mutually exclusive.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "create_debt",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
      "current_balance": 100,
      "request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
    }
  }
}

update_debt — Update debt

Write. Debts & loans. Edit debt terms, reconcile its balance or change lifecycle. Pausing/settling affects recurring repayments. Currency is locked once financial history exists.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "update_debt",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
      "id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
      "request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
    }
  }
}

delete_debt — Remove or close debt

Write. Debts & loans. Delete a debt with no history, or archive one with history and stop its repayment rules.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "delete_debt",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
      "id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
      "request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
    }
  }
}

list_debt_payments — List debt payments

Read. Debts & loans. Read up to 500 payments for a debt.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "list_debt_payments",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
      "id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35"
    }
  }
}

record_debt_payment — Record debt payment

Write. Debts & loans. Record a payment already made: from_account_id for owed debt, to_account_id for a receivable. Principal is a ledger transfer; interest/fees are expenses. No money is sent to a bank. Principal, interest and fees can be given explicitly; otherwise the split is calculated from the debt's terms.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "record_debt_payment",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
      "id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
      "amount": 100,
      "request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
    }
  }
}

delete_debt_payment — Delete debt payment

Write. Debts & loans. Delete an entire repayment and reverse its linked ledger effects. This does not reverse a real bank payment.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "delete_debt_payment",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
      "id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
      "paymentId": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
      "request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
    }
  }
}

get_wealth_summary — Get net worth summary

Read. Accounts & transfers. Read consolidated wealth and liabilities in reporting currency. Currencies without an exchange rate are listed in excluded_currencies and left out of the totals. Reads recorded data without posting due recurring entries, filing card statements or running autopay. Values may lag until ProfitSync next processes those entries.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_wealth_summary",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60"
    }
  }
}

get_analytics — Get income and expense report

Read. Reports. Read income, spending and trends; transfers and system balances are excluded, refunds reduce expenses. Missing exchange rates may be fetched and stored; entries still without one are counted in excluded_count and left out of the totals.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_analytics",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60"
    }
  }
}

get_budget_analytics — Get budget analytics

Read. Budgets. Read budget trends and adherence. Each window reports whether it is partial (still running) and whether its figures are reliable (the budget's scope has not changed since it closed).

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_budget_analytics",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60"
    }
  }
}

get_alerts — Get financial alerts

Read. Reports. Read current attention items without posting due entries. Figures may lag recurring entries that have not materialized yet.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_alerts",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60"
    }
  }
}

get_calendar — Get money calendar

Read. Reports. Read daily income and spending for an ordered range of at most 400 days. Reads recorded data without posting due recurring entries, filing card statements or running autopay. Values may lag until ProfitSync next processes those entries.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_calendar",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
      "query": {
        "from": "2026-10-01",
        "to": "2026-10-01"
      }
    }
  }
}

get_money_flow — Get money flow

Read. Reports. Read income and spending grouped by account/category, or a running-balance timeline. Entries without an exchange rate are counted in excluded_count and left out of the totals. Reads recorded data without posting due recurring entries, filing card statements or running autopay. Values may lag until ProfitSync next processes those entries.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_money_flow",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60"
    }
  }
}

list_cards — List cards

Read. Cards. List card identities and balances. This never exposes a full card number. Reads recorded data without posting due recurring entries, filing card statements or running autopay. Values may lag until ProfitSync next processes those entries.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "list_cards",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60"
    }
  }
}

get_card — Get card

Read. Cards. Read one card's stored identity and linked accounts.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_card",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
      "id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35"
    }
  }
}

get_card_summary — Get card summary

Read. Cards. Read recorded activity, statements and autopay status. Reads recorded data without posting due recurring entries, filing card statements or running autopay. Values may lag until ProfitSync next processes those entries.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_card_summary",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
      "id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35"
    }
  }
}

list_spaces — List savings spaces

Read. Savings spaces. List personal savings spaces, goals and balances. Reads recorded data without posting due recurring entries, filing card statements or running autopay. Values may lag until ProfitSync next processes those entries.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "list_spaces",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60"
    }
  }
}

get_space — Get savings space

Read. Savings spaces. Read one savings space and its goal.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_space",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
      "id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35"
    }
  }
}

create_space — Create savings space

Write. Savings spaces. Create a savings goal. Money only enters or leaves through ledger transfers; no real bank account is created.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "create_space",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
      "name": "Example",
      "request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
    }
  }
}

update_space — Update savings space

Write. Savings spaces. Edit a savings goal or archive it. Its balance changes only through transfers.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "update_space",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
      "id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
      "request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
    }
  }
}

delete_space — Delete savings space

Write. Savings spaces. Remove an empty savings space and its auto-save rule. Spaces with transaction history are archived; withdraw remaining balance first.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "delete_space",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
      "id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
      "request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
    }
  }
}

get_space_auto_save — Get savings auto-save

Read. Savings spaces. Read a space's automatic ledger transfer schedule.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_space_auto_save",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
      "id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35"
    }
  }
}

set_space_auto_save — Set savings auto-save

Write. Savings spaces. Schedule automatic ledger transfers from a bank/cash account into this space. Due occurrences may post immediately. This does not instruct a bank to move money.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "set_space_auto_save",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
      "id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
      "source_account_id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
      "amount": 100,
      "frequency_unit": "day",
      "start_date": "2026-10-01",
      "request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
    }
  }
}

delete_space_auto_save — Stop savings auto-save

Write. Savings spaces. Delete the space's auto-save schedule. Previously recorded ledger transfers remain.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "delete_space_auto_save",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
      "id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
      "request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
    }
  }
}

list_categories — List transaction categories

Read. Categories & tags. List recorded categories without initializing defaults.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "list_categories",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60"
    }
  }
}

create_category — Create transaction category

Write. Categories & tags. Create an income and/or expense category. Names are shared across a logical category's types.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "create_category",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
      "name": "Example",
      "types": [
        "incoming"
      ],
      "request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
    }
  }
}

update_category — Update category

Write. Categories & tags. Rename or recolor a category. Renaming also updates existing category labels and budget scopes, subject to overlap checks.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "update_category",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
      "id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
      "request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
    }
  }
}

delete_category — Delete category

Write. Categories & tags. Delete a category registry row; existing transaction text remains.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "delete_category",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
      "id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
      "request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
    }
  }
}

list_tags — List tags

Read. Categories & tags. Read the selected workspace's tag names and colors.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "list_tags",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60"
    }
  }
}

create_tag — Create tag

Write. Categories & tags. Create a tag; a case-insensitive existing tag is returned instead of duplicated.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "create_tag",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
      "name": "Example",
      "request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
    }
  }
}

update_tag — Update tag

Write. Categories & tags. Rename or recolor a tag and update its uses on existing records.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "update_tag",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
      "id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
      "request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
    }
  }
}

delete_tag — Delete tag

Write. Categories & tags. Remove a tag without deleting the financial records it labels.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "delete_tag",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
      "id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
      "request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
    }
  }
}

list_contacts — List contacts

Read. Contacts. List the selected workspace's contacts (people and companies it deals with) by name, with their phones, emails, note and custom fields. search matches a name, company, email or phone.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "list_contacts",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
      "query": {
        "limit": 100
      }
    }
  }
}

get_contact — Get contact

Read. Contacts. Read one contact, how many transactions, clients and quotations are linked to it (linked_counts), and the newest of them in linked. next_cursor is set when more remain.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_contact",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
      "id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
      "query": {
        "limit": 20
      }
    }
  }
}

Read. Contacts. Page through the transactions, clients and quotations linked to a contact, newest first. A split transaction is one row at its full amount. Personal workspaces link transactions only.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "list_contact_links",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
      "id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
      "query": {
        "limit": 20
      }
    }
  }
}

create_contact — Create contact

Write. Contacts. Save a contact in the selected workspace. Everyone with access to the workspace can see it. Nothing is sent to the person.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "create_contact",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
      "name": "Example",
      "request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
    }
  }
}

update_contact — Update contact

Write. Contacts. Edit a contact; fields left out keep their value. Given phones, emails or custom_fields replace the whole list.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "update_contact",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
      "id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
      "request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
    }
  }
}

delete_contact — Delete contact

Write. Contacts. Permanently delete a contact and remove it from every transaction, client and quotation it was linked to. The records themselves remain.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "delete_contact",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
      "id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
      "request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
    }
  }
}

list_trash — List trash

Read. Transactions. Read restorable items in the selected workspace's trash.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "list_trash",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60"
    }
  }
}

restore_transaction — Restore trashed transaction

Write. Transactions. Restore a trashed transaction and its balance effect. A split or transfer restores all linked legs together.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "restore_transaction",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
      "type": "transaction",
      "id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
      "request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
    }
  }
}

record_transfer — Record account transfer

Write. Accounts & transfers. Record an internal ledger transfer, including a savings deposit or card payment. This does not initiate a bank transfer. Cross-currency transfers require explicit destination_amount; fee is extra spending. Default status is completed.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "record_transfer",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
      "from_account_id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
      "to_account_id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
      "source_amount": 100,
      "request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
    }
  }
}

list_transfers — List account transfers

Read. Accounts & transfers. Read ledger transfers. Without a status it returns only planned and pending ones; status=completed returns settled transfers. These describe bookkeeping, not bank execution.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "list_transfers",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60"
    }
  }
}

list_clients — List company clients

Read. Company workspaces. List company clients and their income, expense and profit in reporting currency.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "list_clients",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60"
    }
  }
}

get_client — Get company client

Read. Company workspaces. Read one company client and its financial totals.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_client",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
      "id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35"
    }
  }
}

create_client — Create company client

Write. Company workspaces. Create a company client, subject to the workspace's plan quota.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "create_client",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
      "name": "Example",
      "request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
    }
  }
}

update_client — Update company client

Write. Company workspaces. Edit or close a company client; its financial history remains.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "update_client",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
      "id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
      "request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
    }
  }
}

delete_client — Move company client to trash

Write. Company workspaces. Move a company client and its live transactions to trash; their balance effects are reversed. The own-company client cannot be deleted.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "delete_client",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
      "id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
      "request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
    }
  }
}

list_quotations — List company quotations

Read. Company workspaces. List quotations and their status in the selected company workspace.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "list_quotations",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60"
    }
  }
}

get_quotation — Get company quotation

Read. Company workspaces. Read one company quotation.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_quotation",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
      "id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35"
    }
  }
}

create_quotation — Create company quotation

Write. Company workspaces. Create a company quotation. This records a quote; it does not send it to the prospect.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "create_quotation",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
      "title": "Example",
      "prospect_name": "example",
      "request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
    }
  }
}

update_quotation — Update company quotation

Write. Company workspaces. Edit a quotation. Accepting it notifies the workspace's owners, admins and the quotation's creator inside ProfitSync; nothing is sent to the prospect.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "update_quotation",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
      "id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
      "request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
    }
  }
}

delete_quotation — Move quotation to trash

Write. Company workspaces. Move a company quotation to trash.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "delete_quotation",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
      "id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
      "request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
    }
  }
}

convert_quotation — Convert quotation to client

Write. Company workspaces. Create a client from this quotation and mark the quotation accepted. Notifies the workspace's owners, admins and the quotation's creator inside ProfitSync; nothing is sent to the prospect. Subject to client quota.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "convert_quotation",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
      "id": "9b2e7c41-5d3a-4f68-8c1e-2a7b6d0f4e35",
      "request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
    }
  }
}

list_client_budgets — List company client spend caps

Read. Company workspaces. Read per-client spending caps and the company default template in their kept currencies.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "list_client_budgets",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60"
    }
  }
}

set_client_budget — Set company client spend cap

Write. Company workspaces. Set or replace a client's spend cap; amount zero removes it. Omit client_id to edit the company default template. Currency is locked once set.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "set_client_budget",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60",
      "amount": 100,
      "request_id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f"
    }
  }
}

get_client_budget_overview — Get company spend cap overview

Read. Company workspaces. Read company client caps, aggregate status and currency exclusions.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_client_budget_overview",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60"
    }
  }
}

get_client_budget_detail — Get company spend cap detail

Read. Company workspaces. Read a client cap's history and adherence: a client's with client_id, or the company default template without it.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_client_budget_detail",
    "arguments": {
      "workspace_id": "4f6c1a2e-8b3d-4c5e-9a7f-1d2b3c4e5f60"
    }
  }
}

Support · ProfitSync