Invoicing & freelance CRM
Dubsado
Projects, proposals, contracts and invoices for creative businesses.
14 endpoints
Pennylane's API is only on the Essentiel plan or higher, and it takes an admin-level token for each company to handle invoices, customers and transactions. Sign in to Pennylane once in your own Cloud Browser, and your AI agent does the work there for you. The same tools work over MCP for agents and as a REST API for scripts.
Not affiliated with Pennylane.
| What you need | Pennylane's API | GitHub MCP server | Cotlet |
|---|---|---|---|
| Invoices, customers, transactions | No | Partly | Yes, 14 tools |
| Acts as you, signed in 24/7 | No | No | Yes, Cloud Browser |
| Fixed for you when Pennylane changes | N/A | No | Yes, tested every 6h |
| Runs with your laptop off | N/A | No | Yes, hosted |
Checked Oct 14, 2026. Sources: Pennylane API: Introduction · Pennylane API: Generating a Company API token · Pennylane API: Scopes · Pennylane MCP: Getting started
AI agents connect over MCP, scripts call the REST API. Both reach the same 14 tools with one API key.
Add Cotlet to your agent once. Pennylane and every other app you connect show up as its tools.
claude mcp add --transport http cotlet \
https://cotlet.dev/mcp/v1 \
--header "Authorization: Bearer $COTLET_API_KEY" {
"mcpServers": {
"cotlet": {
"url": "https://cotlet.dev/mcp/v1",
"headers": {
"Authorization": "Bearer ${COTLET_API_KEY}"
}
}
}
} # ~/.codex/config.toml
[mcp_servers.cotlet]
url = "https://cotlet.dev/mcp/v1"
bearer_token_env_var = "COTLET_API_KEY" Paste the snippet for your client. The same server and key serve every app you connect, so you do this once.
Every tool is an endpoint under /api/v1/pennylane with its own method and path, such as POST /api/v1/pennylane/customers/{customer_id}/invoice, with the same API key. Our open-source repo has ready scripts to start from.
14 tools on your own Pennylane account. Agents call them as operations of the MCP tools pennylane_read and pennylane_write; scripts call each one at its own REST endpoint, with the same inputs and answers.
| Tool | What it does | Access |
|---|---|---|
| list_customers | Customers in your Pennylane account with name, type and email, optionally filtered by name. | read |
| list_customer_invoices | Customer invoices with number, customer, amounts, status and due date, newest first. | read |
| get_customer_invoice | One customer invoice with its lines, payments and matched bank transactions. | read |
| list_supplier_invoices | Supplier invoices with number, supplier, amounts and due date, newest first. | read |
| list_suppliers | Suppliers in your Pennylane account with name and ID, optionally filtered by name. | read |
| list_transactions | Bank transactions with date, label, amount, categories and matched invoices, newest first. | read |
| list_categories | Categories you use to analyse transactions and invoices, with their group and direction. | read |
| create_customer | Add a company or individual customer to your Pennylane customer list. | writeasks first |
| create_customer_invoice | Create an invoice for a customer, as a draft by default. | writeasks first |
| finalize_customer_invoice | Turn a draft invoice into a final one with an invoice number. | writeasks first |
| send_customer_invoice | Email a customer invoice to the customer or to the addresses you give. | writeasks first |
| import_supplier_invoice | Upload a supplier invoice PDF with its date, due date and amounts. | writeasks first |
| categorise_transaction | Set the categories of a bank transaction, with a weight for each. | write |
| match_transaction | Link a bank transaction to a customer invoice as its payment. | writeasks first |
Scroll the table for all 14 tools.
You sign in yourself in your own Cloud Browser, we never save your password, and anything that reaches your readers waits for your OK. The browser profile is encrypted in the EU. Independent scanners grade cotlet.dev A+.
One price for both: a tool call costs the same over MCP or REST. Free 7-day trial with 2,000 credits, no card needed. Then one-time credit packs, no subscription, valid 12 months. Each call uses 10 credits, and your Cloud Browser uses 50 credits a day while Pennylane is enabled for agents, so 20 calls a day come to 250 credits.
| Credits | Price, one time | Calls at 10 credits | Per 1,000 credits |
|---|---|---|---|
| 5,000 | $29 | 500 | $5.80 |
| 15,000 | $79 | 1,500 | $5.27 |
| 32,000 | $149 | 3,200 | $4.66 |
| 60,000 | $249 | 6,000 | $4.15 |
Only successful calls use credits; failed calls and timeouts cost nothing. At a balance of 0 calls pause, never a surprise charge. Authenticate with the Authorization: Bearer header.
Yes, Pennylane has a public REST API (Company API v2) with read and write scopes for customers, customer and supplier invoices, transactions, categories and ledger entries (checked 14 Oct 2026). It needs the Essentiel plan or higher and an API token, and the official Pennylane MCP server is read-only for now: it cannot create or send an invoice.
Sign up free, open Pennylane under Integrations in the console and press Request access. Your free trial starts with your account, no card needed.
No, only the way in. Cotlet builds each integration as a REST API and puts an MCP server on top, so both have the same 14 tools, the same inputs and answers, one API key and one price. AI agents such as Claude, ChatGPT or Cursor use MCP; scripts, cron jobs and HTTP steps in n8n, Make or Zapier use the REST API.
Your own Chrome that Cotlet runs for you in the EU, around the clock. You open it from the console, sign in to Pennylane yourself and press Enable for agents. Your agent's calls go through it, from its IP with its cookies, so Pennylane sees the browser you signed in with. Password saving is off and the profile is stored encrypted with AES-256-GCM.
Not on anything that reaches other people: create_customer, create_customer_invoice, finalize_customer_invoice, send_customer_invoice, import_supplier_invoice, match_transaction wait for your OK by default. You can switch that off per tool for scheduled runs.
No. Pennylane documents that a finalized invoice can no longer be edited, so create_customer_invoice makes a draft by default and finalize_customer_invoice asks for your OK.
Pick one if you want the code on your own computer and do not mind the upkeep: you install it, sign it in and fix it when Pennylane changes. Pick Cotlet if you want it hosted and kept working for you.
Yes. Add https://cotlet.dev/mcp/v1 in n8n's MCP Client node, or call the REST endpoints from an HTTP step in Make or Zapier.
Cotlet is run by Take Group, a Polish software company working since 2019. Take Group runs about 3,200 websites on its own systems and has its own DevOps team for infrastructure security. We built and used integrations like this inside the company for years before opening them as Cotlet.
No. Cotlet is independent and not affiliated with Pennylane.
Free 7-day trial with 2,000 credits, no card needed.
May we use Google Analytics to see which pages help people? It sets cookies only if you accept. No ads, and we never sell data. Cookie policy