Connectors · Accounting & finance
Holded MCP server for AI agents.
actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to Holded and the rest of your systems. It gives your agent 324 Holded actions (127 reads, 150 writes and 47 that wait for a confirmation) and holds the Holded credential itself, so the agent never does. It paces Holded's limits and records every call.
100,000 free calls a month. No card, no email, no password: press Start a free sandbox on the next screen and keep the key it shows you.
claude mcp add --transport http actionlake https://connect.actionlake.com/mcpdo { action: "holded.invoices.list", intent: "check which Holded account is connected"}# List invoices · read · 1 upstream call- 324actionsin one signed file
- 127readlook, never change
- 150writecreate and update
- 47wait for a yesdestructive, confirmed first
Set up
Connect Holded in three steps.
- 01
Add actionlake to Claude.
Run the command once in Claude Code; its consent page can create a free sandbox: 100,000 calls a month, no card. In the Claude app, add a custom connector with the URL below and paste your key on the consent page. Creating a new sandbox from the Claude app is not yet tested by us.
https://connect.actionlake.com/mcp - 02
Connect Holded.
Bearer token. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead. actionlake stores what you paste write-only, sealed under your tenant's key.
api_keyHolded API key: in Holded go to Settings > API, click Generate new key and copy it
account { op: "connections.requirements", service: "holded" } # free: exactly what to paste, and what is found for you - 03
Make the first call. Check before a write.
Ask in plain words; Claude picks the action. Before anything changes,
checkvalidates the call and prices it, for free.do { action: "holded.invoices.list" }# list invoices · read · 1 upstream callcheck { action: "holded.invoices.create", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent
Holded at a glance
- Sign-in
- Bearer token. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead.
- You provide
api_key- Limits we pace to
- 60 calls a minute, per connection
- API covered
- Holded API v2
api.holded.com - Built from
- Holded's documentation, read 23 October 2026holded.comholded.com
- Service file
- Version 1.0.0, signed (Ed25519)
- Cached reads
- 127 of 127 reads, for up to 5 minutes; a write clears what it affects
- Shared entities
- 14, so ask can line Holded up with your other systems
- Data
- Processed and stored in Sydney, Australia. No US region yet
Capabilities
What an AI agent can do in Holded.
324 actions in 50 areas. Every one carries its effect, so a key can allow the reads and hold the rest.
- 127readlook, never change
- 150writecreate and update
- 47destructivewait for a confirmation
Employees
187 read · 10 write · 1 destructive
List all employees · Create an employee · Get an employee · Update an employee
Invoices
154 read · 7 write · 4 destructive
List invoices · Create an invoice · Get an invoice · Update an invoice
Sales orders
134 read · 8 write · 1 destructive
List sales orders · Create a sales order · Get a sales order · Update a sales order
Leads
122 read · 8 write · 2 destructive
List all leads · Create a lead · Get a lead · Update a lead
Banking accounts
114 read · 6 write · 1 destructive
List banking accounts · Create a banking account · Get a banking account by ID · Update a banking account
Estimates
113 read · 7 write · 1 destructive
List estimates · Create an estimate · Get an estimate · Update an estimate
Products
117 read · 3 write · 1 destructive
List all products · Create a product · Get a product by ID · Update a product
Projects
115 read · 4 write · 2 destructive
List projects · Create a project · Get a project · Update a project
42 more areas · 222 actions
- Purchase orders 11
- Purchases 11
- Contacts 10
- Credit notes 10
- Receipt notes 10
- Sales receipts 10
- Waybills 10
- Proformas 9
- Webhooks 8
- Payslips 7
- Recurring invoices 7
- Inbox 6
- Purchase shipments 6
- Salary records 6
- Warehouses 6
- Bookings 5
- Contact groups 5
- Events 5
- Expenses accounts 5
- Funnels 5
- Invoicing forecasts 5
- Payment methods 5
- Payments 5
- Price lists 5
- Production orders 5
- Sales channels 5
- Services 5
- Tasks 5
- Employee times 4
- Ledger entries 4
- Numbering series 4
- Tags 3
- Accounting accounts 2
- API usage 2
- Booking locations 2
- Remittances 2
- Taxes 2
- Business plan goals 1
- Business plan scenarios 1
- Documents 1
- Project times 1
- Purchase refunds 1
Top actions
The Holded API, shaped for agents.
The ids your agent types, what each does, and the one name it shares with other systems. 97 of Holded's 97 action names are shared with at least one other connector, so an agent learns them once.
| Action | What it does | Effect | Same name in |
|---|---|---|---|
holded.invoices.listList invoices | List invoices. | read | finance.invoice.list101 connectors |
holded.payments.listList payments | List payments. | read | finance.payment.list75 connectors |
holded.estimates.listList estimates | List estimates. | read | finance.quote.list52 connectors |
holded.purchase_orders.listList purchase orders | List purchase orders. | read | finance.purchase_order.list45 connectors |
holded.banking_accounts.listList banking accounts | List banking accounts. | read | finance.bank_account.list35 connectors |
holded.credit_notes.listList credit notes | List credit notes. | read | finance.credit_note.list33 connectors |
holded.purchases.listList purchases | List purchases. | read | finance.bill.list31 connectors |
holded.products.listList all products | List all products. | read | commerce.product.list112 connectors |
holded.invoices.createCreate an invoice | Create an invoice. | write | finance.invoice.create74 connectors |
holded.payments.createCreate a payment | Create a payment. | write | finance.payment.create67 connectors |
holded.estimates.createCreate an estimate | Create an estimate. | write | finance.quote.create52 connectors |
holded.invoices.deleteDelete an invoice | Delete an invoice. | destructive | finance.invoice.delete56 connectors |
Try it
Prompts to paste into Claude.
Each one names the Holded actions it will call, so you know what it reads and what it changes before you send it.
- Readread
Which Holded invoices are more than 30 days overdue? Group them by customer with the total owed.
calls
holded.invoices.list - Writewrite
Create an invoice in Holded. Show me exactly what you will send before you save it.
calls
holded.invoices.create - Across systemsread
For each customer, how many invoices are in Holded and how many tickets in ConnectWise PSA?
calls
holded.invoices.listconnectwise_manage.tickets.list
Across your systems
Holded, joined to the rest of your business.
One ask fetches from Holded and another system, joins the rows on the same customer on our side, and hands your agent the answer, not every row.
For each customer, how many invoices are in Holded and how many tickets in ConnectWise PSA?
holded.invoices.list+connectwise_manage.tickets.list, oncrm.company· ConnectWise PSAFor each customer, how many invoices are in Holded and how many tickets in HubSpot CRM?
holded.invoices.list+hubspot_crm.tickets.list, oncrm.company· HubSpot CRM
crm.company 227work.project 116commerce.product 109work.task 105finance.invoice 91commerce.order 86hr.employee 63finance.payment 53ask { intent: "for each customer, how many invoices are in Holded and how many tickets in ConnectWise PSA", steps: [ { action: "holded.invoices.list", as: "inv", input: {}, limit: 100, max_pages: 5 }, { action: "connectwise_manage.tickets.list", as: "tix", input: {}, limit: 100, max_pages: 5 }, { join: { left: "inv", right: "tix", on: "crm.company", group_by: "inv.company_name", select: ["inv.company_name", "count(inv.id) as invoices", "count(tix.id) as tickets"] } } ]}Governance for Holded
Destructive actions wait for a yes.
47 Holded actions are destructive. The first 10:
- Delete an invoice
holded.invoices.delete - Delete a payment
holded.payments.delete - Delete an estimate
holded.estimates.delete - Delete a purchase order
holded.purchase_orders.delete - Delete a purchase
holded.purchases.delete - Delete a product
holded.products.delete - Delete a credit note
holded.credit_notes.delete - Delete a banking account
holded.banking_accounts.delete - Delete a sales order
holded.sales_orders.delete - Delete a task
holded.tasks.delete
A destructive action runs only with confirm: true. Under the human policy the agent cannot confirm for itself: the run stops until a named person approves, in the console or from a signed link in an email. The cap on a key is refused before the call is sent, never after.
Delete an invoice?
intent: the user asked me to delete an invoice
account { op: "keys.create", name: "holded-agent", allowed_actions: ["holded.*"], cap_calls: 2000, confirm_policy: "human_for_writes", approval_rules: [ { match: "holded.invoices.delete", approver: "[email protected]" }, { match: "holded.payments.delete", approver: "[email protected]" }, { match: "holded.estimates.delete", approver: "[email protected]" } ]}Cost
What Holded costs on actionlake.
Every Holded action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call Holded refused with 401, 403, 429 or a 5xx are free. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.
- 1upstream call per actionall 324 Holded actions
- 324actions pageeach page of a long list is one call
- 127reads can be cacheda cache hit costs nothing
- 100,000calls a month, freepaid plans from US$49 a month for 250,000
Action index
Every Holded action.
324 actions by area: the id your agent calls, what it does, and its effect.
Employees18
holded.employees.clock_inClock in an employeewriteholded.employees.clock_outClock out an employeewriteholded.employees.createCreate an employeewriteholded.employees.create_employee_timeCreate a time entry for an employeewriteholded.employees.create_time_offCreate a time off request (absence / holiday)writeholded.employees.deleteDelete an employeedestructiveholded.employees.getGet an employeereadholded.employees.get_employee_contractGet active contractreadholded.employees.get_time_offGet a time off request (absence / holiday)readholded.employees.listList all employeesreadholded.employees.list_all_time_offsList all time off requests (absences / holidays)readholded.employees.list_employee_time_offsList time off requests for an employee (absences / holidays)readholded.employees.list_employee_timesList time entries for an employeereadholded.employees.pausePause an employee time sessionwriteholded.employees.unpauseResume an employee time sessionwriteholded.employees.updateUpdate an employeewriteholded.employees.update_employee_contractUpdate active contractwriteholded.employees.update_time_offUpdate time off end date (absence / holiday)write
Invoices15
holded.invoices.approve_invoiceApprove an invoicewriteholded.invoices.bulk_approve_invoicesBulk approve invoiceswriteholded.invoices.bulk_cancel_invoicesBulk cancel invoicesdestructiveholded.invoices.bulk_delete_invoicesBulk delete invoicesdestructiveholded.invoices.cancel_invoiceCancel an invoicedestructiveholded.invoices.createCreate an invoicewriteholded.invoices.create_invoice_paymentCreate a payment for an invoicewriteholded.invoices.deleteDelete an invoicedestructiveholded.invoices.find_invoices_by_document_numberFind invoices by document numberreadholded.invoices.getGet an invoicereadholded.invoices.listList invoicesreadholded.invoices.list_invoice_attachmentsList invoice attachmentsreadholded.invoices.send_invoiceSend an invoice by emailwriteholded.invoices.set_invoice_pipelineSet invoice pipelinewriteholded.invoices.updateUpdate an invoicewrite
Sales orders13
holded.sales_orders.approve_sales_orderApprove a sales orderwriteholded.sales_orders.createCreate a sales orderwriteholded.sales_orders.deleteDelete a sales orderdestructiveholded.sales_orders.getGet a sales orderreadholded.sales_orders.get_sales_order_shipped_itemsGet shipped items for a sales orderreadholded.sales_orders.listList sales ordersreadholded.sales_orders.list_sales_order_attachmentsList sales order attachmentsreadholded.sales_orders.send_sales_orderSend a sales order by emailwriteholded.sales_orders.set_sales_order_pipelineSet sales order pipelinewriteholded.sales_orders.ship_sales_orderShip all items in a sales orderwriteholded.sales_orders.ship_sales_order_by_linesShip specific lines in a sales orderwriteholded.sales_orders.updateUpdate a sales orderwriteholded.sales_orders.update_sales_order_trackingUpdate sales order tracking informationwrite
Leads12
holded.leads.createCreate a leadwriteholded.leads.create_lead_noteCreate a lead notewriteholded.leads.create_lead_taskCreate a lead taskwriteholded.leads.deleteDelete a leaddestructiveholded.leads.delete_lead_taskDelete a lead taskdestructiveholded.leads.getGet a leadreadholded.leads.listList all leadsreadholded.leads.updateUpdate a leadwriteholded.leads.update_lead_datesUpdate lead dateswriteholded.leads.update_lead_noteUpdate a lead notewriteholded.leads.update_lead_stageUpdate a lead stagewriteholded.leads.update_lead_taskUpdate a lead taskwrite
Banking accounts11
holded.banking_accounts.archive_banking_accountArchive a banking accountwriteholded.banking_accounts.createCreate a banking accountwriteholded.banking_accounts.create_bank_movementCreate one or multiple manual bank movementswriteholded.banking_accounts.create_bank_movements_bulkCreate bank movements in bulkwriteholded.banking_accounts.deleteDelete a banking accountdestructiveholded.banking_accounts.getGet a banking account by IDreadholded.banking_accounts.listList banking accountsreadholded.banking_accounts.list_banking_account_bank_movementsList banking account movementsreadholded.banking_accounts.list_banking_account_cash_movementsList banking account cash movementsreadholded.banking_accounts.reconcile_transaction_with_documentReconcile a bank movementwriteholded.banking_accounts.updateUpdate a banking accountwrite
Estimates11
holded.estimates.accept_estimateAccept an estimatewriteholded.estimates.approve_estimateApprove an estimatewriteholded.estimates.createCreate an estimatewriteholded.estimates.deleteDelete an estimatedestructiveholded.estimates.getGet an estimatereadholded.estimates.listList estimatesreadholded.estimates.list_estimate_attachmentsList estimate attachmentsreadholded.estimates.reject_estimateReject an estimatewriteholded.estimates.send_estimateSend an estimate by emailwriteholded.estimates.set_estimate_pipelineSet estimate pipelinewriteholded.estimates.updateUpdate an estimatewrite
Products11
holded.products.createCreate a productwriteholded.products.deleteDelete a productdestructiveholded.products.getGet a product by IDreadholded.products.get_product_imageGet a product image by IDreadholded.products.get_product_main_imageGet the main product imagereadholded.products.get_product_stockGet stock availability for a productreadholded.products.get_product_stock_transitGet stock in transit for a productreadholded.products.listList all productsreadholded.products.list_product_imagesList product imagesreadholded.products.updateUpdate a productwriteholded.products.update_product_stockUpdate stock for a productwrite
Projects11
holded.projects.createCreate a projectwriteholded.projects.create_project_timeCreate a time entry for a projectwriteholded.projects.deleteDelete a projectdestructiveholded.projects.delete_project_timeDelete a project time entrydestructiveholded.projects.getGet a projectreadholded.projects.get_project_summaryGet a project summaryreadholded.projects.get_project_timeGet a project time entryreadholded.projects.listList projectsreadholded.projects.list_project_timesList time entries for a projectreadholded.projects.updateUpdate a projectwriteholded.projects.update_project_timeUpdate a project time entrywrite
Purchase orders11
holded.purchase_orders.approve_purchase_orderApprove a purchase orderwriteholded.purchase_orders.createCreate a purchase orderwriteholded.purchase_orders.deleteDelete a purchase orderdestructiveholded.purchase_orders.getGet a purchase orderreadholded.purchase_orders.get_purchase_order_received_itemsGet received items for a purchase orderreadholded.purchase_orders.listList purchase ordersreadholded.purchase_orders.list_purchase_order_attachmentsList purchase order attachmentsreadholded.purchase_orders.receive_purchase_orderReceive units of a purchase orderwriteholded.purchase_orders.send_purchase_orderSend a purchase order by emailwriteholded.purchase_orders.set_purchase_order_pipelineSet purchase order pipelinewriteholded.purchase_orders.updateUpdate a purchase orderwrite
Purchases11
holded.purchases.approve_purchaseApprove a purchasewriteholded.purchases.createCreate a purchasewriteholded.purchases.create_purchase_paymentCreate a payment for a purchasewriteholded.purchases.create_purchase_refundCreate a purchase refundwriteholded.purchases.deleteDelete a purchasedestructiveholded.purchases.getGet a purchasereadholded.purchases.get_purchase_refundGet a purchase refundreadholded.purchases.listList purchasesreadholded.purchases.list_purchase_attachmentsList purchase attachmentsreadholded.purchases.set_purchase_pipelineSet purchase pipelinewriteholded.purchases.updateUpdate a purchasewrite
Contacts10
holded.contacts.bulk_archive_contactsBulk archive contactswriteholded.contacts.bulk_delete_contactsBulk delete contactsdestructiveholded.contacts.createCreate a contactwriteholded.contacts.deleteDelete a contactdestructiveholded.contacts.getGet a contact by IDreadholded.contacts.get_contact_portal_linkGet client portal link for a contactreadholded.contacts.listList contactsreadholded.contacts.list_contact_attachmentsList contact attachmentsreadholded.contacts.search_contactsSearch contacts by namereadholded.contacts.updateUpdate a contactwrite
Credit notes10
holded.credit_notes.approve_credit_noteApprove a credit notewriteholded.credit_notes.createCreate a credit notewriteholded.credit_notes.create_credit_note_paymentCreate a payment for a credit notewriteholded.credit_notes.deleteDelete a credit notedestructiveholded.credit_notes.getGet a credit notereadholded.credit_notes.listList credit notesreadholded.credit_notes.list_credit_note_attachmentsList credit note attachmentsreadholded.credit_notes.send_credit_noteSend a credit note by emailwriteholded.credit_notes.set_credit_note_pipelineSet credit note pipelinewriteholded.credit_notes.updateUpdate a credit notewrite
Receipt notes10
holded.receipt_notes.approve_receipt_noteApprove a receipt notewriteholded.receipt_notes.createCreate a receipt notewriteholded.receipt_notes.create_receipt_note_paymentCreate a payment for a receipt notewriteholded.receipt_notes.deleteDelete a receipt notedestructiveholded.receipt_notes.getGet a receipt notereadholded.receipt_notes.listList receipt notesreadholded.receipt_notes.list_receipt_note_attachmentsList receipt note attachmentsreadholded.receipt_notes.send_receipt_noteSend a receipt note by emailwriteholded.receipt_notes.set_receipt_note_pipelineSet receipt note pipelinewriteholded.receipt_notes.updateUpdate a receipt notewrite
Sales receipts10
holded.sales_receipts.approve_sales_receiptApprove a sales receiptwriteholded.sales_receipts.createCreate a sales receiptwriteholded.sales_receipts.create_sales_receipt_paymentCreate a payment for a sales receiptwriteholded.sales_receipts.deleteDelete a sales receiptdestructiveholded.sales_receipts.getGet a sales receiptreadholded.sales_receipts.listList sales receiptsreadholded.sales_receipts.list_sales_receipt_attachmentsList sales receipt attachmentsreadholded.sales_receipts.send_sales_receiptSend a sales receipt by emailwriteholded.sales_receipts.set_sales_receipt_pipelineSet sales receipt pipelinewriteholded.sales_receipts.updateUpdate a sales receiptwrite
Waybills10
holded.waybills.approve_waybillApprove a waybillwriteholded.waybills.createCreate a waybillwriteholded.waybills.deleteDelete a waybilldestructiveholded.waybills.getGet a waybillreadholded.waybills.listList waybillsreadholded.waybills.list_waybill_attachmentsList waybill attachmentsreadholded.waybills.send_waybillSend a waybill by emailwriteholded.waybills.set_waybill_pipelineSet waybill pipelinewriteholded.waybills.updateUpdate a waybillwriteholded.waybills.update_waybill_trackingUpdate waybill tracking informationwrite
Proformas9
holded.proformas.approve_proformaApprove a proformawriteholded.proformas.createCreate a proformawriteholded.proformas.deleteDelete a proformadestructiveholded.proformas.getGet a proformareadholded.proformas.listList proformasreadholded.proformas.list_proforma_attachmentsList proforma attachmentsreadholded.proformas.send_proformaSend a proforma by emailwriteholded.proformas.set_proforma_pipelineSet proforma pipelinewriteholded.proformas.updateUpdate a proformawrite
Webhooks8
holded.webhooks.createCreate a webhookwriteholded.webhooks.deleteDelete a webhookdestructiveholded.webhooks.disable_webhookDisable a webhookwriteholded.webhooks.enable_webhookEnable a webhookwriteholded.webhooks.getGet a webhookreadholded.webhooks.get_webhook_eventsList supported webhook event typesreadholded.webhooks.listList webhooksreadholded.webhooks.updateUpdate a webhookwrite
Payslips7
holded.payslips.approve_payslipApprove a payslipwriteholded.payslips.createCreate payslips in bulkwriteholded.payslips.create_payslip_paymentCreate a payment for a payslipwriteholded.payslips.deleteDelete a payslipdestructiveholded.payslips.delete_payslip_paymentDelete a payment from a payslipdestructiveholded.payslips.getGet a payslipreadholded.payslips.listList payslipsread
Recurring invoices7
holded.recurring_invoices.createCreate a recurring invoicewriteholded.recurring_invoices.deleteDelete a recurring invoicedestructiveholded.recurring_invoices.getGet a recurring invoicereadholded.recurring_invoices.get_recurring_scheduleGet recurring invoice schedulereadholded.recurring_invoices.listList recurring invoicesreadholded.recurring_invoices.skip_recurring_occurrenceSkip a recurring invoice occurrencewriteholded.recurring_invoices.updateUpdate a recurring invoicewrite
Inbox6
holded.inbox.attach_inboxAttach incoming document to a documentwriteholded.inbox.deleteDelete an incoming documentdestructiveholded.inbox.export_inboxConvert incoming document into a purchase documentwriteholded.inbox.getGet an incoming document by IDreadholded.inbox.listList inbox incoming documentsreadholded.inbox.updateUpdate an incoming documentwrite
Purchase shipments6
holded.purchase_shipments.approve_purchase_shipmentApprove a purchase shipmentwriteholded.purchase_shipments.createCreate a purchase shipmentwriteholded.purchase_shipments.deleteDelete a purchase shipmentdestructiveholded.purchase_shipments.getGet a purchase shipmentreadholded.purchase_shipments.listList purchase shipmentsreadholded.purchase_shipments.updateUpdate a purchase shipmentwrite
Salary records6
holded.salary_records.createCreate a salary recordwriteholded.salary_records.deleteDelete a salary recorddestructiveholded.salary_records.getGet a salary recordreadholded.salary_records.get_salary_record_form_dataGet salary record form datareadholded.salary_records.listList salary recordsreadholded.salary_records.updateUpdate a salary recordwrite
Warehouses6
holded.warehouses.createCreate a warehousewriteholded.warehouses.deleteDelete a warehousedestructiveholded.warehouses.getGet a warehouse by IDreadholded.warehouses.get_warehouse_stockGet stock levels for a warehousereadholded.warehouses.listList all warehousesreadholded.warehouses.updateUpdate a warehousewrite
Bookings5
holded.bookings.createCreate a bookingwriteholded.bookings.deleteCancel a bookingdestructiveholded.bookings.getGet a booking by IDreadholded.bookings.listList all bookingsreadholded.bookings.updateUpdate a bookingwrite
Contact groups5
holded.contact_groups.createCreate a contact groupwriteholded.contact_groups.deleteDelete a contact groupdestructiveholded.contact_groups.getGet a contact groupreadholded.contact_groups.listList contact groupsreadholded.contact_groups.updateUpdate a contact groupwrite
Events5
holded.events.createCreate an eventwriteholded.events.deleteDelete an eventdestructiveholded.events.getGet an event by IDreadholded.events.listList all eventsreadholded.events.updateUpdate an eventwrite
Expenses accounts5
holded.expenses_accounts.createCreate an expenses accountwriteholded.expenses_accounts.deleteDelete an expenses accountdestructiveholded.expenses_accounts.getGet an expenses account by IDreadholded.expenses_accounts.listList all expenses accountsreadholded.expenses_accounts.updateUpdate an expenses accountwrite
Funnels5
holded.funnels.createCreate a funnelwriteholded.funnels.deleteDelete a funneldestructiveholded.funnels.getGet a funnelreadholded.funnels.listList all funnelsreadholded.funnels.updateUpdate a funnelwrite
Invoicing forecasts5
holded.invoicing_forecasts.createCreate an invoicing forecastwriteholded.invoicing_forecasts.deleteDelete an invoicing forecastdestructiveholded.invoicing_forecasts.getGet an invoicing forecastreadholded.invoicing_forecasts.listList invoicing forecastsreadholded.invoicing_forecasts.updateEdit an invoicing forecastwrite
Payment methods5
holded.payment_methods.createCreate a payment methodwriteholded.payment_methods.deleteDelete a payment methoddestructiveholded.payment_methods.getGet a payment method by IDreadholded.payment_methods.listList payment methodsreadholded.payment_methods.updateUpdate a payment methodwrite
Payments5
holded.payments.createCreate a paymentwriteholded.payments.deleteDelete a paymentdestructiveholded.payments.getGet a payment by IDreadholded.payments.listList paymentsreadholded.payments.updateUpdate a paymentwrite
Price lists5
holded.price_lists.createCreate a price listwriteholded.price_lists.deleteDelete a price listdestructiveholded.price_lists.getGet a price list by IDreadholded.price_lists.listList price listsreadholded.price_lists.updateUpdate a price listwrite
Production orders5
holded.production_orders.createCreate a production orderwriteholded.production_orders.deleteDelete a production orderdestructiveholded.production_orders.getGet a production orderreadholded.production_orders.listList production ordersreadholded.production_orders.updateUpdate a production orderwrite
Sales channels5
holded.sales_channels.createCreate a sales channelwriteholded.sales_channels.deleteDelete a sales channeldestructiveholded.sales_channels.getGet a sales channel by IDreadholded.sales_channels.listList all sales channelsreadholded.sales_channels.updateUpdate a sales channelwrite
Services5
holded.services.createCreate a servicewriteholded.services.deleteDelete a servicedestructiveholded.services.getGet a servicereadholded.services.listList servicesreadholded.services.updateUpdate a servicewrite
Tasks5
holded.tasks.createCreate a taskwriteholded.tasks.deleteDelete a taskdestructiveholded.tasks.getGet a taskreadholded.tasks.listList all tasksreadholded.tasks.updateUpdate a taskwrite
Employee times4
holded.employee_times.deleteDelete an employee time entrydestructiveholded.employee_times.getGet an employee time entryreadholded.employee_times.listList all employee time entriesreadholded.employee_times.updateUpdate an employee time entrywrite
Ledger entries4
holded.ledger_entries.createCreate a ledger entrywriteholded.ledger_entries.deleteDelete a ledger entrydestructiveholded.ledger_entries.getGet a ledger entryreadholded.ledger_entries.listList ledger entriesread
Numbering series4
holded.numbering_series.createCreate a numbering serieswriteholded.numbering_series.deleteDelete a numbering seriesdestructiveholded.numbering_series.listList numbering series by document typereadholded.numbering_series.updateUpdate a numbering serieswrite
Tags3
holded.tags.createCreate a tagwriteholded.tags.deleteDelete a tagdestructiveholded.tags.listList all tagsread
Accounting accounts2
holded.accounting_accounts.createCreate an accounting accountwriteholded.accounting_accounts.listList chart of accountsread
API usage2
holded.api_usage.getGet API usage by typereadholded.api_usage.get_usageGet API usage (automation token)read
Booking locations2
holded.booking_locations.get_booking_location_slotsGet available slots for a locationreadholded.booking_locations.listList all booking locationsread
Remittances2
holded.remittances.getGet a remittancereadholded.remittances.listList remittancesread
Taxes2
holded.taxes.get_tax_per_country_sorted_keysGet sorted tax keys by country and sectionreadholded.taxes.listList all taxesread
Business plan goals1
holded.business_plan_goals.listList business plan goals vs actualsread
Business plan scenarios1
holded.business_plan_scenarios.listList business plan scenariosread
Documents1
holded.documents.convert_documentConvert a document to another typewrite
Project times1
holded.project_times.listList all project time entriesread
Purchase refunds1
holded.purchase_refunds.listList purchase refundsread
Questions
The Holded MCP server, answered.
Is there a Holded MCP server for Claude?
Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 324 Holded actions across employees, invoices, sales orders and leads, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by Holded.
What do I need to connect Holded?
Holded API key: in Holded go to Settings > API, click Generate new key and copy it. The free call account { op: "connections.requirements", service: "holded" } lists exactly what to paste.
Can an AI agent delete or change things in Holded?
Only if its key allows it, and only with an explicit confirmation. 47 Holded actions are destructive, including delete an invoice, delete a payment and delete an estimate. Each runs only with confirm: true. Under the human confirm policy, or an approval rule on the key, the run waits until a named person approves it.
Will an AI agent use up my Holded API limit?
actionlake paces every call to the limits in the Holded service file: 60 calls a minute per connection. Repeated reads are answered from cache (127 Holded actions can be), which never reaches Holded.
What does a Holded action cost?
One upstream call, the only unit actionlake bills. A list that pages bills one call per page (324 Holded actions page). Cache hits, searches, dry runs and calls Holded refused with 401, 403, 429 or a 5xx are free. The Free plan includes 100,000 calls a month with no card. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.
Which Holded API does it cover?
The Holded API v2 at api.holded.com. It is built from Holded's documentation as read on 23 October 2026. 324 actions in 50 areas, each one in the signed service file (version 1.0.0).
Can I combine Holded with my other systems?
Yes. ask joins Holded to ConnectWise PSA or HubSpot CRM on the same customer and returns the answer rather than every row. Holded maps crm.company, which 227 other connectors also map.
Does actionlake keep my Holded data, and where?
actionlake processes and stores data in Sydney, Australia; there is no US region yet. Reads may be cached for up to 5 minutes, and a write clears the reads it affects. Each run's request and response is kept, sealed, for your plan's trace window: 1 day on Free, 3 days on Starter, 7 days on Pro, 14 days on Team, 30 days on Business and 30 days on Enterprise. Your Holded credential is sealed under your tenant's key, never logged and never returned. Your traffic is not used to train models.
Which AI clients can use it?
Claude Code, tested by us end to end, and the Claude app as a custom connector, tested by us with an existing key. Other MCP clients that support remote servers over Streamable HTTP (MCP revisions 2025-06-18 and 2025-11-25) and OAuth dynamic client registration, or a bearer header, should connect the same way; we have not tested them. Or plain REST, under the same action names.
Give your agent Holded today.
Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.