LotsInvoice for
your AI agent.
Draft invoices and quotes, check the totals, send them with a PDF and a client portal link, record payments, chase late invoices and see who owes what, from your agent or the LotsInvoice dashboard. Invoices fit your business: item and accounting codes, several taxes per line, custom columns and nine designs.
https://api.lotsinvoice.com/mcpAsk your agent, for example.
Once LotsInvoice is connected, plain requests like these work.
- “Invoice Acme for 12 hours of design at $90, net 15.”
- “Who owes me money right now?”
- “Set up a monthly retainer for Bright Co at $2,000.”
Connect in two minutes.
Claude
Settings → Connectors → Add custom connector. Paste the URL, connect, and sign in with your Lots account.
ChatGPT
Plugins → + → Add custom MCP server. Name it, enter the URL under Connection, choose OAuth, tick I understand and want to continue, then Create as a plugin. Install it, sign in, and type @ in a new chat to pick it. Full MCP is on Business, Enterprise and Edu, on the web; Pro is read and fetch only.
Claude Code
claude mcp add --transport http lots-invoice https://api.lotsinvoice.com/mcp
Codex
codex mcp add lots-invoice --url https://api.lotsinvoice.com/mcp
Cursor, Windsurf and others
{
"mcpServers": {
"lots-invoice": {
"url": "https://api.lotsinvoice.com/mcp"
}
}
}Cloud agents without MCP
Give the agent https://api.lotsinvoice.com/docs.md and an API key from lotstech.com/api. It calls the REST API with Authorization: Bearer <key>.
Every server uses OAuth: your agent acts as you, inside your own roles and workspaces. You can disconnect it at any time from the app.
80 tools, also REST endpoints.
Each tool is available over MCP and as a REST endpoint under https://api.lotsinvoice.com/api/v1/lotsinvoice.
Accept Invitation
POST /invitations/accept
Accept an invitation with the token from its link (signed in with the invited email).
Apply Credit
POST /businesses/:business_id/documents/:document_id/apply-credit
Apply the customer's available credit (overpayments, credit notes) to an invoice.
Apply Preset
POST /businesses/:business_id/preset
Set up columns, labels, titles, tax groups and declarations for a region: us_freelancer, us_sales_tax, eu_vat, uk_vat, india_gst, india_export_lut. Tax groups are created only from tax_rates you give (ask the owner; never guess). A starting point to check with their accountant.
Archive Business
POST /businesses/:business_id/archive
Archive a business: billing for it stops, nothing is deleted, sent links keep working. Owner only.
Archive Customer
POST /businesses/:business_id/customers/:customer_id/archive
Archive (or restore: true) a customer. Nothing is deleted.
Cancel Invitation
DELETE /businesses/:business_id/invitations/:invitation_id
Cancel a pending invitation.
Check Template
POST /businesses/:business_id/templates/check
Check a template (html body + css) without saving: forbidden content, unknown placeholders, missing required data, and warnings.
Convert Estimate
POST /businesses/:business_id/documents/:document_id/convert
Turn an estimate into a draft invoice.
Create Business
POST /businesses
Create a business (the entity that sends invoices). Each business is one paid unit: it uses a plan slot or LotsTech Credits (new accounts get free credits). Ask the person for the real legal name, address, email and registration IDs; never invent them.
Create Checkout
POST /billing/checkout
A checkout link for a plan (starter, pro, business; monthly or annual) or a credits top-up (amount_usd, minimum 10). Show the link; the person pays in their browser.
Create Credit Note
POST /businesses/:business_id/credit-notes
Draft a credit note. With invoice_id it defaults to that invoice's balance and is applied to it when issued; the rest becomes customer credit.
Create Customer
POST /businesses/:business_id/customers
Add a customer. Ask for details you do not have; never invent addresses or tax IDs. Returns what is missing.
Create Declaration
POST /businesses/:business_id/declarations
Save a statement to print on documents, e.g. "Supply meant for export under LUT without payment of IGST" or "Reverse charge applies".
Create Estimate
POST /businesses/:business_id/estimates
Draft an estimate (quote). due_date is "valid until". The customer can accept it in the portal; convert_estimate turns it into an invoice.
Create Invoice
POST /businesses/:business_id/invoices
Draft an invoice. Totals are computed exactly (discounts before tax, several taxes per line). It stays a draft: show the totals to the person and ask before send_document.
Create Item
POST /businesses/:business_id/items
Save a product or service with its price, code (SKU, HSN/SAC), unit and default tax.
Create Recurring
POST /businesses/:business_id/recurring
Repeat an invoice on a schedule (document_id), e.g. a monthly retainer. Line text may use {period}, {month}, {year}. mode draft (review first) or send (automatic).
Create Tax
POST /businesses/:business_id/taxes
Save a tax from rates the owner gives you (never guess a rate): one component (name + rate) or several (components), e.g. "GST 18% intra-state" = CGST 9 + SGST 9, or "Sales tax" = State 6.25 + County 2.
Create Template
POST /businesses/:business_id/templates
Save a custom template after it passes check_template. Use it with template "custom:<id>".
Delete Draft
DELETE /businesses/:business_id/documents/:document_id
Delete a draft that was never sent.
Delete Payment
DELETE /businesses/:business_id/payments/:payment_id
Remove a recorded payment (kept for history, no longer counted).
Duplicate Document
POST /businesses/:business_id/documents/:document_id/duplicate
Copy a document into a new draft, optionally for another customer or as another type.
Export Business
GET /businesses/:business_id/export
Everything about the business as JSON, with PDF links valid 7 days. Owner only.
Get Aging Report
GET /businesses/:business_id/reports/aging
Money owed by age (current, 1-30, 31-60, 61-90, 90+ days), per currency and customer.
Get Billing
GET /billing
Your LotsInvoice plan or credits, businesses in use, rates and plans to choose from.
Get Business
GET /businesses/:business_id
Get one business with its settings and what is still missing (next_steps).
Get Customer
GET /businesses/:business_id/customers/:customer_id
One customer with open balance, available credit and recent documents.
Get Document
GET /businesses/:business_id/documents/:document_id
One document with lines, totals, versions, payments and activity (viewed, reminders, portal notes).
Get Document Pdf
GET /businesses/:business_id/documents/:document_id/pdf
A download link (valid 1 hour) for the PDF. Drafts render on demand, marked DRAFT.
Get Document Preview
GET /businesses/:business_id/documents/:document_id/preview
A preview link (HTML, valid 1 hour), or the HTML itself with include_html.
Get Payments Report
GET /businesses/:business_id/reports/payments
Payments received by method, per currency.
Get Portal Link
GET /businesses/:business_id/customers/:customer_id/portal-link
The customer's portal link (view and download documents, pay, accept estimates), optionally to one document.
Get Revenue Report
GET /businesses/:business_id/reports/revenue
Revenue (excluding tax) by month and by customer, per currency.
Get Settings
GET /businesses/:business_id/settings
Numbering, titles, defaults, payment options, reminders, layout (columns, custom fields, blocks, labels), theme and signature.
Get Statement
GET /businesses/:business_id/customers/:customer_id/statement
A customer statement: opening balance, invoices, credit notes, payments and closing balance per currency.
Get Summary
GET /businesses/:business_id/summary
What needs attention: unpaid and overdue invoices, money received this month, drafts, open estimates and upcoming recurring invoices.
Get Tax Report
GET /businesses/:business_id/reports/tax
Tax charged by tax and rate, per currency (invoices minus credit notes).
Get Template
GET /businesses/:business_id/templates/:template_id
One custom template with its html and css, to edit it.
Get Template Guide
GET /template-guide
How to write a custom template: the safe template language, every data path, an example view and the built-in layout source to start from.
Import Customer From Crm
POST /businesses/:business_id/customers/from-crm
Add a customer from a LotsCRM contact you can read (name, email, phone, primary company).
Import Customers
POST /businesses/:business_id/customers/import
Import customers from CSV text (header row first; up to 1,000 rows). Columns are matched by name (name, email, phone, address, city, state, zip, country, currency, tax id) or by mapping. Try dry_run first.
Import Items
POST /businesses/:business_id/items/import
Import items from CSV (name, description, code/SKU/HSN, unit, price). Up to 2,000 rows.
Invite Member
POST /businesses/:business_id/invitations
Invite someone (a partner, bookkeeper) as editor or viewer. Emails an accept link valid 7 days. Owner only.
Leave Business
POST /businesses/:business_id/leave
Leave a business you were invited to.
List Businesses
GET /businesses
List the businesses you can invoice from, with your role, settings and whether the sender email is confirmed. Start here.
List Customers
GET /businesses/:business_id/customers
List or search customers (name, contact, email).
List Declarations
GET /businesses/:business_id/declarations
Saved declarations (fixed statements printed on documents).
List Documents
GET /businesses/:business_id/documents
List invoices, estimates and credit notes. Filters: type, status (comma list), customer_id, from/to (issue date), overdue, search (number).
List Items
GET /businesses/:business_id/items
Saved products and services.
List Members
GET /businesses/:business_id/members
People with access to this business, and pending invitations (owner).
List Payments
GET /businesses/:business_id/payments
Recorded payments, newest first.
List Recurring
GET /businesses/:business_id/recurring
Recurring invoices and their next dates.
List Taxes
GET /businesses/:business_id/taxes
Saved taxes. A tax has one or more components applied together.
List Templates
GET /businesses/:business_id/templates
Built-in designs, custom templates and regional presets.
Mark Document Sent
POST /businesses/:business_id/documents/:document_id/mark-sent
Issue a draft without emailing it (you delivered it yourself): assigns the number and locks it.
Pause Recurring
POST /businesses/:business_id/recurring/:recurring_id/pause
Pause a recurring invoice.
Preview Template
POST /businesses/:business_id/templates/preview
Render a template (template key, or unsaved html/css) with sample data at 1 to 200 lines; returns HTML.
Record Payment
POST /businesses/:business_id/documents/:document_id/payments
Record money received for an invoice (partial allowed). Overpayment becomes customer credit. LotsInvoice does not move money.
Resend Email Confirmation
POST /businesses/:business_id/confirm-email
Send the business email confirmation link again. Sending documents needs a confirmed email.
Restore Business
POST /businesses/:business_id/restore
Restore an archived business (needs plan room or credits).
Resume Recurring
POST /businesses/:business_id/recurring/:recurring_id/resume
Resume a recurring invoice.
Revise Document
POST /businesses/:business_id/documents/:document_id/revise
Change a sent invoice or estimate: a new locked version with a reason (the number stays). Not for paid or void documents: use a credit note.
Rotate Portal Link
POST /businesses/:business_id/customers/:customer_id/portal-link/rotate
Revoke every earlier portal link for this customer and make a new one.
Send Document
POST /businesses/:business_id/documents/:document_id/send
Email the document with its PDF and portal link (from LotsInvoice, replies go to the business). A draft gets its number and is locked. Ask the person before sending.
Send Reminder
POST /businesses/:business_id/documents/:document_id/remind
Email a payment reminder now for a sent, unpaid invoice.
Set Next Number
POST /businesses/:business_id/numbering
Set the next document number (only forward), e.g. to continue from another tool.
Set Payment Options
PUT /businesses/:business_id/payment-options
How customers pay, shown on invoices, emails and the portal: a pay link (Stripe Payment Link, PayPal, Venmo, Cash App, Square), bank details, Zelle, UPI (India, with a QR code), check address, instructions. LotsInvoice never handles the money.
Set Theme
PATCH /businesses/:business_id/theme
Change the default template and look: template (classic, modern, minimal, bold, compact, formal, studio, executive, ledger or custom:<id>; ledger is the full-page grid Indian tax invoice), color, accent, font (inter, plex, serif, mono), density (compact, normal, comfortable), logo_position, logo_size, paper (letter, a4), accent_style (bar, band, none).
Update Business
PATCH /businesses/:business_id
Update business details. Changing the email sends a confirmation link.
Update Customer
PATCH /businesses/:business_id/customers/:customer_id
Update a customer. Documents already sent keep the details they were sent with.
Update Declaration
PATCH /businesses/:business_id/declarations/:declaration_id
Update or archive a declaration.
Update Document
PATCH /businesses/:business_id/documents/:document_id
Edit a draft (any document field; lines replaces all lines). Sent documents: use revise_document.
Update Item
PATCH /businesses/:business_id/items/:item_id
Update or archive (archived: true) an item.
Update Member
PATCH /businesses/:business_id/members/:user_id
Change a member's role or remove them (remove: true). Owner only.
Update Recurring
PATCH /businesses/:business_id/recurring/:recurring_id
Change a recurring invoice (name, mode, end_date, max_count, next_date, template).
Update Settings
PATCH /businesses/:business_id/settings
Change settings. Give only what changes, under settings: numbering {invoice:{prefix,padding,reset}}, titles {invoice:"Tax Invoice"}, defaults {notes,terms,footer,estimate_valid_days,template,line_treatment,second_currency}, reminders {enabled,offsets,subject,message}, layout {columns:[{key,label,visible,type}], custom_fields:[{key,label,scope,visible}], blocks:{tax_summary,words,signature,…}, fields:{due_date,po_number,reference,place_of_supply}, labels:{…}, words_system, show_registration_ids}, theme {color,accent,font,density,logo_position,logo_size,paper,accent_style}, signature {name,title,image_url}.
Update Tax
PATCH /businesses/:business_id/taxes/:tax_id
Rename, change components, or archive (archived: true). Sent documents keep their taxes.
Update Template
PATCH /businesses/:business_id/templates/:template_id
Update (re-checked) or archive a custom template. Sent documents keep their version.
Upload Image
POST /businesses/:business_id/images
Upload the logo, a signature image or a company seal (stamp) image (PNG, JPEG, WebP or GIF, 1 MB max, base64) and save it on the business.
Void Document
POST /businesses/:business_id/documents/:document_id/void
Void a sent invoice or credit note (keeps its number). Not when payments or credits are recorded.
Questions, answered.
What is the LotsInvoice MCP server URL?
https://api.lotsinvoice.com/mcp. Add it as a remote MCP server (custom connector) in your AI agent and sign in with your Lots account.
Which agents work with LotsInvoice?
Claude, ChatGPT (Business, Enterprise and Edu, from Plugins), Claude Code, Codex, Cursor, Windsurf and any other client that supports remote MCP with OAuth. Agents without MCP use the REST API with an API key.
Where are the LotsInvoice API docs?
https://api.lotsinvoice.com/docs.md: Markdown written so an AI agent can read it. Requests go to https://api.lotsinvoice.com/api/v1/lotsinvoice with Authorization: Bearer <your key>.
How do I get a LotsInvoice API key?
Use Generate key on this page or at lotstech.com/api. Sign in with your LotsTech account, name the key and copy it once. You can revoke it there at any time.
Does MCP or API access cost extra?
No. It is included with LotsInvoice. You pay only for LotsInvoice's own plan or usage, and your AI provider bills its own usage.