Quick answer
There are three ways in. Prefill links open the editor with fields already filled in. WebMCP tools let browser agents edit the invoice directly. On Basic and Premium plans, the REST API lets an agent with your API key create, share, and send invoices and estimates.
Prefill links for any assistant
Any assistant that can write a URL can start an invoice. You sign in, check it, and save.
Example link:
https://invoicewebsite.com/create-invoice?prefill=%5B%7B%22description%22%3A%22Website+design%22%2C%22quantity%22%3A1%2C%22rate%22%3A1200%7D%2C%7B%22description%22%3A%22Hosting+%28monthly%29%22%2C%22quantity%22%3A3%2C%22rate%22%3A25%7D%5D&clientName=Acme+Co&clientEmail=billing%40acme.example¤cy=USD&terms=net30 | Parameter | What it sets |
|---|---|
| prefill | JSON array of line items: [{"description","quantity","rate"}], up to 100 rows |
| clientName, clientEmail, clientAddress | Client details |
| currency | ISO 4217 code, for example USD, EUR, GBP |
| date, dueDate | YYYY-MM-DD |
| terms | none, due_upon_receipt, net7, net15, net30, custom, or proforma |
| notes, poNumber | Free text |
| taxName, taxPercent | One tax line, for example taxName=VAT&taxPercent=20 |
| templateId | A template id from /templates |
Use /create-estimate with the same parameters to start an estimate instead.
WebMCP tools for browser agents
In browsers that support WebMCP, the invoice and estimate editors register these tools on navigator.modelContext.
-
set_clientFill in the client name, email, and address -
add_line_itemsAdd one or more line items with quantity and rate -
set_dates_and_termsSet the date, due date, and payment terms -
set_currencyChange the document currency -
add_tax_lineAdd a named tax with a percentage -
set_notesSet the notes shown on the document -
choose_templateSwitch to another template -
get_invoice_summaryRead back the current totals and fields -
save_documentSave the invoice or estimate to the account
The payment due date calculator and the estimate builder pages also register tools. Every editor field has a label and a stable name, so agents that read the page can fill it in without WebMCP.
REST API with your API key
Included with Basic and Premium. Create a key under Account, then give it to your agent. Each key has scopes and can be revoked at any time.
Create an invoice:
curl -X POST https://invoicewebsite.com/api/v1/invoices \
-H "Authorization: Bearer iw_live_your_key" \
-H "Content-Type: application/json" \
-d '{
"client": { "name": "Acme Co", "email": "billing@acme.example" },
"items": [{ "description": "Website design", "quantity": 1, "rate": 1200 }],
"currency": "USD",
"terms": "net30"
}' Email the client a link to view it:
curl -X POST https://invoicewebsite.com/api/v1/invoices/INVOICE_ID/send \
-H "Authorization: Bearer iw_live_your_key" Full reference: Agent API docs. Machine-readable description: openapi.json.
Plan limits
API and browser use share the same limits.
| Plan | Price | Documents per month | Emails per day |
|---|---|---|---|
| Free | Free | 2 | 0 |
| Basic | $5/month | 30 | 50 |
| Premium | $20/month | unlimited | 100 |
Agent FAQ
Can ChatGPT or Claude make an invoice on Invoice Website?
Yes. An assistant can send you a prefill link that opens the invoice editor with the client and line items filled in, and browser agents can fill in the editor directly. On a Basic or Premium plan, an agent with your API key can also create and send invoices through the REST API.
Do I need a paid plan to use agents?
Prefill links and browser tools work on every plan, including Free. The REST API and API keys need a Basic or Premium plan.
Do agents get different limits than the website?
No. Requests made with your API key count toward the same plan limits as the website, such as documents per month and emails per day. The API returns a clear error with an upgrade link when you reach a limit.
How do I stop an agent from using my account?
Revoke its API key in your account settings. The key stops working right away, and your other keys keep working.
Is there an MCP server?
A hosted MCP server is planned. Until then, agents can use the REST API, which has an OpenAPI description at /openapi.json that most agent frameworks can import as tools.