
Integration · Accounting
Connect Claude & ChatGPT to Holded
Ask your AI which invoices are unpaid, what a customer has bought, or to create and send an invoice or estimate in Holded. It can create and update contacts and products, record payments, read sales orders and purchase invoices, and work with your CRM leads. Everyday sales questions get answered without clicking through the app.
Free plan, no credit card. Takes about a minute.
Try asking
“Which invoices for Acme are still unpaid?”
The AI finds the contact, then lists that customer's invoices filtered by status, with totals and due dates.
“Create an invoice for Nordic Foods: 10 hours of consulting at 80 EUR.”
It looks up the contact ID and creates the invoice with one line holding units, price and tax.
“Email invoice F240031 to the customer.”
It finds the invoice by its number and sends it to the email address you give. This is a real email to the customer.
What your AI can do
Invoices and estimates
Create, update and send invoices and estimates, find invoices by number, and record payments received.
Contacts and products
Search, create and update customers, suppliers and products, with tax IDs, addresses, prices and stock.
Orders, purchases and CRM
Read and create sales orders, read purchase invoices from suppliers, and create, update and add notes to CRM leads.
“Invoice F240031 was paid today into our main bank account.”
It records the payment on the invoice with amount, date and treasury account. It is only recorded in Holded, no money is moved.
“Make an estimate for Acme for the website project and send it to their contact.”
It creates the estimate with the lines you describe and emails it to the address you choose.
“Which deals in our sales funnel are worth the most right now?”
It lists your CRM leads with funnel, stage, value and contact, and can add a note to a lead.
30 tools for Holded
These tools are switched on when you connect. You can switch any of them off, or require your approval before it runs.
add_lead_noteChanges dataAdd a note to a CRM lead by `lead_id` with a `title` and `description`.create_contactChanges dataCreate a contact with a `name` and optional email, phone, tax ID (`code`/`vat_number`), `type` (client, supplier, etc.) and `bill_address`. Search first to avoid duplicates.create_estimateChanges dataCreate an estimate (quote) for `contact_id` with `items`, optional date, due date, notes and currency.create_invoiceChanges dataCreate a sales invoice for `contact_id` with `items` (name, units, price, tax), optional date, due date, notes and currency.create_leadChanges dataCreate a CRM lead with `name`, `funnel_id` and `contact_id`, plus optional value, stage and due date.create_productChanges dataCreate a product with `name`, `kind` (simple, variants, pack, etc.), and the flags `for_sale`, `for_purchase` and `has_stock`; optional SKU, price, cost and taxes.create_sales_orderChanges dataCreate a sales order for `contact_id` with `items`, optional date, notes and warehouse.find_invoice_by_numberFind an invoice by its `document_number` (the invoice number shown to the customer).get_contactGet one contact by `contact_id`, including tax ID, addresses, email, phone and default settings.get_estimateGet one estimate by `quote_id`, with lines, totals and status.get_invoiceGet one invoice by `invoice_id`, with lines, totals, taxes, status and payments.get_leadGet one CRM lead by `lead_id`, with stage, value, notes and tasks.get_productGet one product by `product_id`, with SKU, prices, taxes and stock.get_purchaseGet one purchase invoice by its ID (passed as `order_id`), with lines, totals and payment status.get_sales_orderGet one sales order by `order_id`, with lines, totals and status.list_contactsList contacts (customers, suppliers, leads), optionally filtered by `email`, `phone`, `mobile`, `code` (tax ID) or `custom_id`.list_estimatesList estimates (quotes), filtered by `contact_id`, `status` or date range.list_invoicesList sales invoices, filtered by `contact_id`, `status`, date range (`start_date`/`end_date`) or due date range. Use to find unpaid or recent invoices.list_leadsList CRM leads (deals) with their funnel, stage, value and contact.list_productsList products and services, optionally filtered by `name`.list_purchasesList purchase invoices (bills from suppliers), filtered by `contact_id`, `status`, date or due date range.list_sales_ordersList sales orders, filtered by `contact_id`, `status` or date range.record_invoice_paymentChanges dataRecord a payment received against an invoice by `invoice_id` with `amount`, `date` and the bank/treasury account (`treasury_id`). It only records the payment in Holded; no money is moved.search_contactsFind contacts whose name matches `name`. Use this to get a contact's ID before creating documents.send_estimateVisible to othersEmail an estimate by `estimate_id` to the addresses in `emails`, with optional subject and message. This sends a real email.send_invoiceVisible to othersEmail an invoice by `invoice_id` to the addresses in `emails`, with optional subject and message. This sends a real email to the customer.update_contactChanges dataUpdate a contact by `contact_id`; `name` is required, and you can change email, phone, tax ID, address, tags and contact persons.update_invoiceChanges dataUpdate an invoice by `invoice_id`: lines, dates, notes, contact or currency. Only the fields you pass change.update_leadChanges dataUpdate a CRM lead by `lead_id`: name, value, status, stage, funnel, due date or assignee.update_productChanges dataUpdate a product by `product_id`; `name`, `archived`, `for_sale` and `for_purchase` must be sent each time, plus any price, SKU or description changes.
Set up in three steps
- 1
Pick the app
Create a free PipMCP account and choose Holded from the app list.
- 2
Paste your key
Paste a Holded API key. In Holded, go to Settings > API, click Generate new key and copy it, since it is shown only once. Each key has scoped permissions, so give it only the modules you want the AI to use.
- 3
Add the link to your AI
You get a personal MCP link. Add it to Claude, ChatGPT or Cursor:
Click your name, then Settings › Connectors › Add custom connector. Paste your link as the Remote MCP server URL. Switch it on from the + menu in a chat.
Questions
What can the AI do in Holded?
The AI can read contacts, invoices, estimates, products, sales orders, purchase invoices and CRM leads. It can create and update contacts, invoices, products and leads, create estimates and sales orders, add notes to leads, record invoice payments, and email invoices and estimates to customers.
Does the AI see my Holded API key?
No. Your Holded API key is encrypted at rest and never shown to the AI. After you save it, it is not shown again, not even to you. The AI only sees the results of the tools it calls.
Can I control what the AI is allowed to do?
Yes. You choose which tools are switched on, so you can start read-only. Sending an invoice or estimate emails your customer, and recording a payment changes the invoice's status, so these can require your approval before they run. Every tool call is logged.
Does it work with ChatGPT?
Yes. In ChatGPT go to Settings › Apps & Connectors › Advanced and turn on Developer mode, then add your PipMCP link. Developer mode needs a paid ChatGPT plan: Plus, Pro, Business or Enterprise. The same link also works in Claude (Settings › Connectors › Add custom connector), Cursor and other MCP clients.
What does it cost?
PipMCP has a free plan with no credit card required. Paid plans bill per completed task. You also need your own Holded account.
Which permissions should my Holded API key have?
Holded API keys have scoped permissions per module. Give the key access only to the modules the AI should use, for example sales invoices and contacts. Holded then blocks anything outside those permissions, on top of the tools you switch on in PipMCP.
Let your AI work in Holded today.
Start free. Your key stays encrypted, and you decide what the AI may do.
Connect Holded freePipMCP is not affiliated with Holded. Product names are trademarks of their owners.




