Integration · Accounting
Connect Claude & ChatGPT to Invoice Ninja
Ask your AI which invoices are unpaid or overdue, what a client owes, or to draft an invoice or quote in Invoice Ninja. It can create and update clients, products, quotes and tasks, record payments you have received, and read expenses, credit notes, projects and vendors. It can also email an invoice or quote to the client if you switch that tool on.
Free plan, no credit card. Takes about a minute.
Try asking
“Which invoices are overdue?”
The AI searches invoices with client status overdue and lists them with client, number and balance.
“Create a draft invoice for Acme: 12 hours of design at 95 per hour, due in 14 days.”
It finds the client and creates a draft invoice with one line item, the invoice date and the due date.
“Acme paid invoice 0042 by bank transfer today. Record it.”
It records the payment against the invoice. This only logs money you already received, so nobody is charged.
What your AI can do
Invoices and quotes
Create draft invoices and quotes, update quotes, find invoices by client, number or paid, unpaid and overdue status, and email documents to clients.
Clients and payments
Search, create and update clients, record received payments against invoices, and look up payments and credit notes.
Products, tasks and expenses
Create and update products, log and update tasks with time, and read expenses, projects and vendors.
“Make a quote for Nordic Foods for the website redesign, valid for 30 days.”
It creates a quote for the client with line items and a valid-until date, ready for you to review.
“Log a task for Acme: 2 hours on the logo yesterday afternoon.”
It creates a task linked to the client with a description and a time log.
“What are our latest expenses?”
It lists expenses newest first, with amount, vendor, category and date.
28 tools for Invoice Ninja
These tools are switched on when you connect. You can switch any of them off, or require your approval before it runs.
create_clientChanges dataCreate a client with `contacts` (first name, last name, email, phone), `country_id` (ISO numeric country code, e.g. 840 for USA), and optional name, address, VAT number and website. Pass `requested_with` as XMLHttpRequest.create_invoiceChanges dataCreate a draft invoice for a `client_id` with `line_items` (product_key, notes, quantity, cost), `date`, `due_date`, optional discount, taxes, PO number and notes. Pass `requested_with` as XMLHttpRequest.create_productChanges dataCreate a product or service with `product_key` (name), `notes` (description), `price`, `cost` and optional tax rates. Pass `requested_with` as XMLHttpRequest.create_quoteChanges dataCreate a quote for a `client_id` with `date`, `due_date` (valid until), `line_items` (product_key, notes, quantity, cost) and public/private notes. Pass `requested_with` as XMLHttpRequest.create_taskChanges dataCreate a task with a `description`, optional `client_id`, `project_id`, `due_date` and `time_log` (JSON list of [start, end] Unix timestamps). Pass `requested_with` as XMLHttpRequest.email_documentVisible to othersEmail an invoice, quote, credit or payment receipt to the client: `entity` (invoice, quote, credit, payment), `entity_id`, and `template` (e.g. email_template_invoice, email_template_reminder1), with optional custom `subject` and `body`. The email is sent immediately. Pass `requested_with` as XMLHttpRequest.get_clientGet one client by `customer_id` (the client's hashed ID), with contacts, address, balance and paid-to-date. Pass `requested_with` as XMLHttpRequest.get_current_companyChanges dataGet the connected Invoice Ninja company's details and settings (name, currency, address). Pass `requested_with` as XMLHttpRequest.get_expenseGet one expense by `expense_id`, with amount, vendor, category and date. Pass `requested_with` as XMLHttpRequest.get_invoiceGet one invoice by `invoice_id` (hashed ID), with line items, totals, balance, status and invitations. Pass `requested_with` as XMLHttpRequest.get_paymentGet one payment by `payment_id` (hashed ID), with amount, date, method and the invoices it was applied to. Pass `requested_with` as XMLHttpRequest.get_quoteGet one quote by `quote_id` (hashed ID), with line items, totals and status. Pass `requested_with` as XMLHttpRequest.get_taskGet one task by `task_id`, with description, client, project and time log. Pass `requested_with` as XMLHttpRequest.list_creditsList credit notes issued to clients. Pass `requested_with` as XMLHttpRequest.list_expensesList expenses, newest first. Use `page` and `limit` to page. Pass `requested_with` as XMLHttpRequest.list_projectsList projects with their clients, budgets and hours. Pass `requested_with` as XMLHttpRequest.list_tasksList tasks (time-tracked work items). Use `page` and `limit` to page. Pass `requested_with` as XMLHttpRequest.list_vendorsList vendors (suppliers). Pass `requested_with` as XMLHttpRequest.record_paymentChanges dataRecord a payment received from a client (`client_id`) with `amount`, `date`, `type_id` (payment method) and the `invoices` it pays (invoice_id and amount). This records money already received; it does not charge anyone. `email_receipt` emails the client a receipt. Pass `requested_with` as XMLHttpRequest.search_clientsFind clients by `name`, `email`, `number`, `balance` or free-text `filter`, and by `status` (active, archived, deleted). Use `page` and `limit` to page. Pass `requested_with` as XMLHttpRequest.search_invoicesFind invoices by `client_id`, `number`, `status` (e.g. active, archived), `client_status` (paid, unpaid, overdue), `date_range` or free-text `filter`. Use `page` and `limit` to page. Pass `requested_with` as XMLHttpRequest.search_paymentsFind payments by `client_id`, `number`, `status` or free-text `filter`. Use `page` and `limit` to page. Pass `requested_with` as XMLHttpRequest.search_productsFind products and services by `product_key` or free-text `filter`. Pass `requested_with` as XMLHttpRequest.search_quotesFind quotes by `client_id`, `number`, `status`, `client_status` or free-text `filter`. Use `page` and `limit` to page. Pass `requested_with` as XMLHttpRequest.update_clientChanges dataUpdate a client by `customer_id`; send `contacts` and `country_id` again along with any changed name, address or other fields. Pass `requested_with` as XMLHttpRequest.update_productChanges dataUpdate a product by `product_id`: name, description, price, cost or tax. Only the fields you pass change. Pass `requested_with` as XMLHttpRequest.update_quoteChanges dataUpdate a quote by `quote_id`; `client_id`, `date` and `due_date` are always required, plus any changed line items or notes. Pass `requested_with` as XMLHttpRequest.update_taskChanges dataUpdate a task by `task_id`; `description` is always required, plus any changed client, project, status or time log. Pass `requested_with` as XMLHttpRequest.
Set up in three steps
- 1
Pick the app
Create a free PipMCP account and choose Invoice Ninja from the app list.
- 2
Paste your key
Paste an Invoice Ninja API token. In Invoice Ninja go to Settings > Account Management > Integrations > API tokens, create a new token and copy it.
- 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 Invoice Ninja?
The AI can read and search clients, invoices, quotes, payments, products, tasks, expenses, credit notes, projects, vendors and your company details. It can create clients, products, draft invoices, quotes and tasks, update clients, products, quotes and tasks, and record payments you have received. It can also email an invoice, quote, credit or payment receipt to a client.
Does the AI see my Invoice Ninja credentials?
No. Your Invoice Ninja credentials are encrypted at rest and never shown to the AI. After you save them, they are 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. Emailing a document goes straight to your client, so it can require your approval before it runs. 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 Invoice Ninja account.
Can the AI send invoices to my clients?
Only if you switch on the email tool. It sends an invoice, quote, credit or payment receipt to the client right away, using a template such as the invoice or reminder email. You can leave it off or require your approval. New invoices are created as drafts.
Let your AI work in Invoice Ninja today.
Start free. Your key stays encrypted, and you decide what the AI may do.
Connect Invoice Ninja freePipMCP is not affiliated with Invoice Ninja. Product names are trademarks of their owners.






