Skip to content

Connectors · Accounting & finance

Pennylane MCP server for AI agents.

actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to Pennylane and the rest of your systems. It gives your agent 175 Pennylane actions (97 reads, 70 writes and 8 that wait for a confirmation) and holds the Pennylane credential itself, so the agent never does. It paces Pennylane'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/mcp
the first call
do {  action: "pennylane.customer_invoices.list",  intent: "check which Pennylane account is connected"}# List customer invoices · read · 1 upstream call
  • 175actionsin one signed file
  • 97readlook, never change
  • 70writecreate and update
  • 8wait for a yesdestructive, confirmed first

Set up

Connect Pennylane in three steps.

  1. 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
  2. 02

    Connect Pennylane.

    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.

    • access_tokenPennylane API token: in Pennylane open Settings > Connectivity > Developers and generate a Company API token (pick…
    • company_idYour Pennylane company id
    account { op: "connections.requirements", service: "pennylane" }
    # free: exactly what to paste, and what is found for you
  3. 03

    Make the first call. Check before a write.

    Ask in plain words; Claude picks the action. Before anything changes, check validates the call and prices it, for free.

    do    { action: "pennylane.customer_invoices.list" }# list customer invoices · read · 1 upstream callcheck { action: "pennylane.customer_invoices.create", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent

Pennylane 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
access_token
Setup fields
company_id
Limits we pace to
25 calls per 5 seconds, per connection
API covered
Pennylane Company API 2.0 (OpenAPI 3.0.1)app.pennylane.com
Built from
Pennylane's documentation, read 23 October 2026pennylane.readme.iopennylane.readme.io
Service file
Version 1.0.0, signed (Ed25519)
Cached reads
97 of 97 reads, for up to 5 minutes; a write clears what it affects
Shared entities
9, so ask can line Pennylane up with your other systems
Data
Processed and stored in Sydney, Australia. No US region yet

Capabilities

What an AI agent can do in Pennylane.

175 actions in 33 areas. Every one carries its effect, so a key can allow the reads and hold the rest.

  • 97readlook, never change
  • 70writecreate and update
  • 8destructivewait for a confirmation
  1. Customer invoices

    23

    9 read · 12 write · 2 destructive

    List customer invoices · Create a customer invoice · Retrieve a customer invoice · Update a customer invoice

  2. Supplier invoices

    15

    6 read · 8 write · 1 destructive

    List supplier invoices · Retrieve a supplier invoice · Update a supplier invoice · List invoice lines for a supplier invoice

  3. Customers

    12

    6 read · 5 write · 1 destructive

    List customers (company and individual) · Create a customer (company or individual) · Retrieve a customer · Update a customer (company or individual)

  4. Changelogs

    11

    11 read · 0 write · 0 destructive

    Get customer invoices changes events · Get customer changes events · Get ledger entry category change events · Get ledger entry change events

  5. Quotes

    9

    5 read · 4 write · 0 destructive

    List quotes · Create a quote · Retrieve a quote · Update a quote

  6. Commercial documents

    8

    5 read · 3 write · 0 destructive

    Create a commercial document · List commercial documents · Retrieve a commercial document · Update a commercial document

  7. Ledger entry lines

    7

    4 read · 2 write · 1 destructive

    List ledger entry lines · Retrieve a Ledger entry line · List categories of a Ledger Entry line · Letter ledger entry lines

  8. Transactions

    7

    4 read · 3 write · 0 destructive

    List transactions · Create a transaction · Retrieve a transaction · Update a transaction

25 more areas · 83 actions
  • Billing subscriptions 6
  • Exports 6
  • Ledger entries 6
  • Suppliers 6
  • Category groups 5
  • Gocardless mandates 5
  • Sepa mandates 5
  • Webhook subscriptions 5
  • Categories 4
  • Ledger accounts 4
  • Pro account 4
  • Products 4
  • Bank accounts 3
  • Company customers 3
  • Individual customers 3
  • Journals 3
  • Purchase requests 3
  • Bank establishments 1
  • Billing email templates 1
  • Company 1
  • Customer invoice templates 1
  • Fiscal years 1
  • Me 1
  • Pa registrations 1
  • Trial balance 1

Top actions

The Pennylane API, shaped for agents.

The ids your agent types, what each does, and the one name it shares with other systems. 55 of Pennylane's 57 action names are shared with at least one other connector, so an agent learns them once.

ActionWhat it doesEffectSame name in
pennylane.customer_invoices.listList customer invoicesList customer invoices.readfinance.invoice.list101 connectors
pennylane.quotes.listList quotesList quotes.readfinance.quote.list52 connectors
pennylane.customers.listList customers (company and individual)List customers (company and individual).readcrm.company.list162 connectors
pennylane.ledger_accounts.listList Ledger AccountsList Ledger Accounts.readfinance.ledger_account.list36 connectors
pennylane.bank_accounts.listList bank accountsList bank accounts.readfinance.bank_account.list35 connectors
pennylane.supplier_invoices.listList supplier invoicesList supplier invoices.readfinance.bill.list31 connectors
pennylane.ledger_entries.listList Ledger EntriesList Ledger Entries.readfinance.journal_entry.list25 connectors
pennylane.products.listList productsList products.readfinance.billing_item.list24 connectors
pennylane.customer_invoices.createCreate a customer invoiceCreate a customer invoice.writefinance.invoice.create74 connectors
pennylane.quotes.createCreate a quoteCreate a quote.writefinance.quote.create52 connectors
pennylane.customers.createCreate a customer (company or individual)Create a customer (company or individual).writecrm.company.create142 connectors
pennylane.customer_invoices.deleteDelete draft invoiceDelete draft invoice.destructivefinance.invoice.delete56 connectors

Try it

Prompts to paste into Claude.

Each one names the Pennylane actions it will call, so you know what it reads and what it changes before you send it.

  1. Readread

    Which Pennylane invoices are more than 30 days overdue? Group them by customer with the total owed.

    callspennylane.customer_invoices.list

  2. Writewrite

    Create a customer invoice in Pennylane. Show me exactly what you will send before you save it.

    callspennylane.customer_invoices.create

  3. Across systemsread

    Which Pennylane companies have invoices in ConnectWise PSA, and how many each?

    callspennylane.customers.listconnectwise_manage.invoices.list

Across your systems

Pennylane, joined to the rest of your business.

One ask fetches from Pennylane and another system, joins the rows on the same customer on our side, and hands your agent the answer, not every row.

  • Which Pennylane companies have invoices in ConnectWise PSA, and how many each?

    pennylane.customers.list + connectwise_manage.invoices.list, on crm.company · ConnectWise PSA

  • Which Pennylane companies have tickets in HubSpot CRM, and how many each?

    pennylane.customers.list + hubspot_crm.tickets.list, on crm.company · HubSpot CRM

Also mapped by other connectorscrm.company 227finance.invoice 91finance.quote 45finance.ledger_account 32finance.bill 27finance.bank_account 25finance.billing_item 14finance.journal_entry 9
ask
ask {  intent: "which Pennylane companies have invoices in ConnectWise PSA, and how many each",  steps: [    { action: "pennylane.customers.list", as: "co", input: {}, limit: 100, max_pages: 5 },    { action: "connectwise_manage.invoices.list", as: "inv", input: {}, limit: 100, max_pages: 5 },    { join: {        left: "co",        right: "inv",        on: "crm.company",        group_by: "co.name",        select: ["co.name", "count(inv.id) as invoices"]    } }  ]}
Example. Run it through check first: it validates the steps and prices them, and it is free.

Governance for Pennylane

Destructive actions wait for a yes.

8 Pennylane actions are destructive. These are all of them:

  • Delete draft invoicepennylane.customer_invoices.delete
  • Delete an SEPA mandatepennylane.sepa_mandates.delete
  • Delete a webhook subscriptionpennylane.webhook_subscriptions.delete
  • Delete a contact of a customerpennylane.customers.contacts_delete
  • Unletter ledger entry linespennylane.ledger_entry_lines.unletter
  • Unmatch a transaction to a customer invoicepennylane.customer_invoices.matched_transactions_delete
  • Unmatch a transaction to a supplier invoicepennylane.supplier_invoices.matched_transactions_delete
  • Cancel a Gocardless mandatepennylane.gocardless_mandates.cancel

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.

dopennylane.customer_invoices.deleteconfirm_policy: human

Delete draft invoice?

intent: the user asked me to delete draft invoice

run suspended · waiting for a named person · key pennylane-agent cannot confirm itself
In the console, or from an emailed signed link.
a key for this connector
account {  op: "keys.create", name: "pennylane-agent",  allowed_actions: ["pennylane.*"], cap_calls: 2000,  confirm_policy: "human_for_writes",  approval_rules: [    { match: "pennylane.customer_invoices.delete", approver: "[email protected]" },    { match: "pennylane.sepa_mandates.delete", approver: "[email protected]" },    { match: "pennylane.webhook_subscriptions.delete", approver: "[email protected]" }  ]}
Illustrative. Scoped to Pennylane only, capped at 2,000 upstream calls, every write confirmed, and the destructive ones approved by a named person.

Cost

What Pennylane costs on actionlake.

Every Pennylane action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call Pennylane 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 175 Pennylane actions
  • 175actions pageeach page of a long list is one call
  • 97reads can be cacheda cache hit costs nothing
  • 100,000calls a month, freepaid plans from US$49 a month for 250,000

See pricing

Action index

Every Pennylane action.

175 actions by area: the id your agent calls, what it does, and its effect.

Customer invoices23
  • pennylane.customer_invoices.appendices_listList appendices of a customer invoiceread
  • pennylane.customer_invoices.categories_listList categories of a customer invoiceread
  • pennylane.customer_invoices.categories_updateCategorize a customer invoicewrite
  • pennylane.customer_invoices.createCreate a customer invoicewrite
  • pennylane.customer_invoices.create_from_quoteCreate a customer invoice from a quotewrite
  • pennylane.customer_invoices.custom_header_fields_listList custom header fields for a customer invoiceread
  • pennylane.customer_invoices.deleteDelete draft invoicedestructive
  • pennylane.customer_invoices.finalizeTurn the draft invoice into a finalized invoice.write
  • pennylane.customer_invoices.getRetrieve a customer invoiceread
  • pennylane.customer_invoices.importImport an invoice with file attachedwrite
  • pennylane.customer_invoices.invoice_line_sections_listList invoice line sections for a customer invoiceread
  • pennylane.customer_invoices.invoice_lines_listList invoice lines for a customer invoiceread
  • pennylane.customer_invoices.link_credit_noteLink a credit note to a customer invoicewrite
  • pennylane.customer_invoices.listList customer invoicesread
  • pennylane.customer_invoices.mark_as_paidMark a customer invoice as paidwrite
  • pennylane.customer_invoices.matched_transactions_createMatch a transaction to a customer invoicewrite
  • pennylane.customer_invoices.matched_transactions_deleteUnmatch a transaction to a customer invoicedestructive
  • pennylane.customer_invoices.matched_transactions_listList matched transactions for a customer invoiceread
  • pennylane.customer_invoices.payments_listList payments for a customer invoiceread
  • pennylane.customer_invoices.send_by_emailSend a customer invoice by emailwrite
  • pennylane.customer_invoices.send_to_paSend a customer e-invoice to PAwrite
  • pennylane.customer_invoices.updateUpdate a customer invoicewrite
  • pennylane.customer_invoices.update_importedUpdate an Imported customer invoicewrite
Supplier invoices15
  • pennylane.supplier_invoices.categories_listList categories of a supplier invoiceread
  • pennylane.supplier_invoices.categories_updateCategorize a supplier invoicewrite
  • pennylane.supplier_invoices.e_invoice_statusUpdate e-invoice status for a supplier invoicewrite
  • pennylane.supplier_invoices.getRetrieve a supplier invoiceread
  • pennylane.supplier_invoices.importImport a supplier invoice with a file attachedwrite
  • pennylane.supplier_invoices.invoice_lines_listList invoice lines for a supplier invoiceread
  • pennylane.supplier_invoices.linked_purchase_requests_createLink a purchase request to a supplier invoicewrite
  • pennylane.supplier_invoices.listList supplier invoicesread
  • pennylane.supplier_invoices.matched_transactions_createMatch a transaction to a supplier invoicewrite
  • pennylane.supplier_invoices.matched_transactions_deleteUnmatch a transaction to a supplier invoicedestructive
  • pennylane.supplier_invoices.matched_transactions_listList matched transactions for a supplier invoiceread
  • pennylane.supplier_invoices.payment_statusUpdate a supplier invoice payment statuswrite
  • pennylane.supplier_invoices.payments_listList payments for a supplier invoiceread
  • pennylane.supplier_invoices.updateUpdate a supplier invoicewrite
  • pennylane.supplier_invoices.validate_accountingValidate the accounting of a supplier invoicewrite
Customers12
  • pennylane.customers.categories_listList categories of a customerread
  • pennylane.customers.categories_updateCategorize a customerwrite
  • pennylane.customers.contacts_createCreate a contact of a customerwrite
  • pennylane.customers.contacts_deleteDelete a contact of a customerdestructive
  • pennylane.customers.contacts_getRetrieve a contact of a customerread
  • pennylane.customers.contacts_listList contacts of a customerread
  • pennylane.customers.contacts_updateUpdate a contact of a customerwrite
  • pennylane.customers.createCreate a customer (company or individual)write
  • pennylane.customers.electronic_billing_addresses_listList eligible electronic billing addresses for a customerread
  • pennylane.customers.getRetrieve a customerread
  • pennylane.customers.listList customers (company and individual)read
  • pennylane.customers.updateUpdate a customer (company or individual)write
Changelogs11
  • pennylane.changelogs.customer_invoices_listGet customer invoices changes eventsread
  • pennylane.changelogs.customers_listGet customer changes eventsread
  • pennylane.changelogs.ledger_entries_categories_listGet ledger entry category change eventsread
  • pennylane.changelogs.ledger_entries_listGet ledger entry change eventsread
  • pennylane.changelogs.ledger_entry_lines_categories_listGet ledger entry line category change eventsread
  • pennylane.changelogs.ledger_entry_lines_listGet ledger entry line change eventsread
  • pennylane.changelogs.products_listGet product change eventsread
  • pennylane.changelogs.quotes_listGet quotes changes eventsread
  • pennylane.changelogs.supplier_invoices_listGet supplier invoices changes eventsread
  • pennylane.changelogs.suppliers_listGet supplier changes eventsread
  • pennylane.changelogs.transactions_listGet transaction change eventsread
Quotes9
  • pennylane.quotes.appendices_listList appendices of a quoteread
  • pennylane.quotes.createCreate a quotewrite
  • pennylane.quotes.getRetrieve a quoteread
  • pennylane.quotes.invoice_line_sections_listList invoice line sections for a quoteread
  • pennylane.quotes.invoice_lines_listList invoice lines for a quoteread
  • pennylane.quotes.listList quotesread
  • pennylane.quotes.send_by_emailSend a quote by emailwrite
  • pennylane.quotes.updateUpdate a quotewrite
  • pennylane.quotes.update_statusUpdate status of a quotewrite
Commercial documents8
  • pennylane.commercial_documents.appendices_listList appendices of a commercial documentread
  • pennylane.commercial_documents.createCreate a commercial documentwrite
  • pennylane.commercial_documents.getRetrieve a commercial documentread
  • pennylane.commercial_documents.invoice_line_sections_listList invoice line sections for a commercial documentread
  • pennylane.commercial_documents.invoice_lines_listList invoice lines for a commercial documentread
  • pennylane.commercial_documents.listList commercial documentsread
  • pennylane.commercial_documents.send_by_emailSend a commercial document by emailwrite
  • pennylane.commercial_documents.updateUpdate a commercial documentwrite
Ledger entry lines7
  • pennylane.ledger_entry_lines.categories_listList categories of a Ledger Entry lineread
  • pennylane.ledger_entry_lines.categories_updateLink Analytical Categories to a Ledger Entry linewrite
  • pennylane.ledger_entry_lines.getRetrieve a Ledger entry lineread
  • pennylane.ledger_entry_lines.letterLetter ledger entry lineswrite
  • pennylane.ledger_entry_lines.lettered_ledger_entry_lines_listList ledger entry lines lettered to a given ledger entry lineread
  • pennylane.ledger_entry_lines.listList ledger entry linesread
  • pennylane.ledger_entry_lines.unletterUnletter ledger entry linesdestructive
Transactions7
  • pennylane.transactions.categories_listList categories of a bank transactionread
  • pennylane.transactions.categories_updateCategorize a bank transactionwrite
  • pennylane.transactions.createCreate a transactionwrite
  • pennylane.transactions.getRetrieve a transactionread
  • pennylane.transactions.listList transactionsread
  • pennylane.transactions.matched_invoices_listList invoices matched to a bank transactionread
  • pennylane.transactions.updateUpdate a transactionwrite
Billing subscriptions6
  • pennylane.billing_subscriptions.createCreate a billing subscriptionwrite
  • pennylane.billing_subscriptions.getGet a billing subscriptionread
  • pennylane.billing_subscriptions.invoice_line_sections_listList the invoice line sections of a billing subscriptionread
  • pennylane.billing_subscriptions.invoice_lines_listList invoice lines for a billing subscriptionread
  • pennylane.billing_subscriptions.listList billing subscriptionsread
  • pennylane.billing_subscriptions.updateUpdate a billing subscriptionwrite
Exports6
  • pennylane.exports.analytical_general_ledgers_createCreate an Analytical General Ledger exportwrite
  • pennylane.exports.analytical_general_ledgers_getRetrieve an Analytical General Ledger exportread
  • pennylane.exports.fecs_createCreate an FEC exportwrite
  • pennylane.exports.fecs_getRetrieve an FEC exportread
  • pennylane.exports.general_ledgers_createCreate a General Ledger exportwrite
  • pennylane.exports.general_ledgers_getRetrieve a General Ledger exportread
Ledger entries6
  • pennylane.ledger_entries.createCreate a ledger entrywrite
  • pennylane.ledger_entries.dms_files_listList DMS files of a Ledger Entryread
  • pennylane.ledger_entries.getRetrieve a Ledger entryread
  • pennylane.ledger_entries.ledger_entry_lines_listList ledger entry lines of a Ledger Entryread
  • pennylane.ledger_entries.listList Ledger Entriesread
  • pennylane.ledger_entries.updateUpdate a ledger entrywrite
Suppliers6
  • pennylane.suppliers.categories_listList categories of a supplierread
  • pennylane.suppliers.categories_updateCategorize a supplierwrite
  • pennylane.suppliers.createCreate a Supplierwrite
  • pennylane.suppliers.getRetrieve a supplierread
  • pennylane.suppliers.listList suppliersread
  • pennylane.suppliers.updateUpdate a supplierwrite
Category groups5
  • pennylane.category_groups.categories_listList categories of a category groupread
  • pennylane.category_groups.createCreate a category groupwrite
  • pennylane.category_groups.getRetrieve a category groupread
  • pennylane.category_groups.listList category groupsread
  • pennylane.category_groups.updateUpdate a category groupwrite
Gocardless mandates5
  • pennylane.gocardless_mandates.associateAssociate a GoCardless mandate to a customerwrite
  • pennylane.gocardless_mandates.cancelCancel a Gocardless mandatedestructive
  • pennylane.gocardless_mandates.getGet a Gocardless mandateread
  • pennylane.gocardless_mandates.listList gocardless mandatesread
  • pennylane.gocardless_mandates.mail_request_createSend a GoCardless mandate email requestwrite
Sepa mandates5
  • pennylane.sepa_mandates.createCreate an SEPA mandatewrite
  • pennylane.sepa_mandates.deleteDelete an SEPA mandatedestructive
  • pennylane.sepa_mandates.getGet an SEPA mandateread
  • pennylane.sepa_mandates.listList SEPA mandatesread
  • pennylane.sepa_mandates.updateUpdate an SEPA mandatewrite
Webhook subscriptions5
  • pennylane.webhook_subscriptions.createCreate a webhook subscriptionwrite
  • pennylane.webhook_subscriptions.deleteDelete a webhook subscriptiondestructive
  • pennylane.webhook_subscriptions.getGet a webhook subscriptionread
  • pennylane.webhook_subscriptions.listList webhook subscriptionsread
  • pennylane.webhook_subscriptions.updateUpdate a webhook subscriptionwrite
Categories4
  • pennylane.categories.createCreate a categorywrite
  • pennylane.categories.getRetrieve a categoryread
  • pennylane.categories.listList categoriesread
  • pennylane.categories.updateUpdate a categorywrite
Ledger accounts4
  • pennylane.ledger_accounts.createCreate a ledger accountwrite
  • pennylane.ledger_accounts.getGet a ledger accountread
  • pennylane.ledger_accounts.listList Ledger Accountsread
  • pennylane.ledger_accounts.updateUpdate a ledger accountwrite
Pro account4
  • pennylane.pro_account.mandate_migrations_createMigrate a mandate to Pro Accountwrite
  • pennylane.pro_account.mandate_migrations_listList mandate migration candidatesread
  • pennylane.pro_account.mandate_request_createSend a Pro Account SEPA mandate requestwrite
  • pennylane.pro_account.mandates_listList Pro Account payment mandatesread
Products4
  • pennylane.products.createCreate a productwrite
  • pennylane.products.getRetrieve a productread
  • pennylane.products.listList productsread
  • pennylane.products.updateUpdate a productwrite
Bank accounts3
  • pennylane.bank_accounts.createCreate a bank accountwrite
  • pennylane.bank_accounts.getRetrieve a bank accountread
  • pennylane.bank_accounts.listList bank accountsread
Company customers3
  • pennylane.company_customers.createCreate a company customerwrite
  • pennylane.company_customers.getRetrieve a company customerread
  • pennylane.company_customers.updateUpdate a company customerwrite
Individual customers3
  • pennylane.individual_customers.createCreate an individual customerwrite
  • pennylane.individual_customers.getRetrieve an individual customerread
  • pennylane.individual_customers.updateUpdate an individual customerwrite
Journals3
  • pennylane.journals.createCreate a journalwrite
  • pennylane.journals.getRetrieve a journalread
  • pennylane.journals.listList journalsread
Purchase requests3
  • pennylane.purchase_requests.getRetrieve a purchase requestread
  • pennylane.purchase_requests.importImport a purchase order.write
  • pennylane.purchase_requests.listList purchase requestsread
Bank establishments1
  • pennylane.bank_establishments.listList bank establishmentsread
Billing email templates1
  • pennylane.billing_email_templates.listList billing email templatesread
Company1
  • pennylane.company.features_getCompany featuresread
Customer invoice templates1
  • pennylane.customer_invoice_templates.listList customer invoice templatesread
Fiscal years1
  • pennylane.fiscal_years.listList Company's Fiscal Yearsread
Me1
  • pennylane.me.getUser Profileread
Pa registrations1
  • pennylane.pa_registrations.listList PA Registrationsread
Trial balance1
  • pennylane.trial_balance.listGet the trial balanceread

Questions

The Pennylane MCP server, answered.

Is there a Pennylane MCP server for Claude?

Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 175 Pennylane actions across customer invoices, supplier invoices, customers and changelogs, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by Pennylane.

What do I need to connect Pennylane?

Pennylane API token: in Pennylane open Settings > Connectivity > Developers and generate a Company API token (pick…. Plus your company id. The free call account { op: "connections.requirements", service: "pennylane" } lists exactly what to paste.

Can an AI agent delete or change things in Pennylane?

Only if its key allows it, and only with an explicit confirmation. 8 Pennylane actions are destructive, including delete draft invoice, delete an SEPA mandate and delete a webhook subscription. 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 Pennylane API limit?

actionlake paces every call to the limits in the Pennylane service file: 25 calls per 5 seconds per connection. Repeated reads are answered from cache (97 Pennylane actions can be), which never reaches Pennylane.

What does a Pennylane action cost?

One upstream call, the only unit actionlake bills. A list that pages bills one call per page (175 Pennylane actions page). Cache hits, searches, dry runs and calls Pennylane 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 Pennylane API does it cover?

The Pennylane Company API 2.0 (OpenAPI 3.0.1) at app.pennylane.com. It is built from Pennylane's documentation as read on 23 October 2026. 175 actions in 33 areas, each one in the signed service file (version 1.0.0).

Can I combine Pennylane with my other systems?

Yes. ask joins Pennylane to ConnectWise PSA or HubSpot CRM on the same customer and returns the answer rather than every row. Pennylane maps crm.company, which 227 other connectors also map.

Does actionlake keep my Pennylane 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 Pennylane 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 Pennylane today.

Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.