Create an Invoice with ChatGPT: Import Box or MCP Plugin
Updated
The import box works with ChatGPT on any plan: ask for JSON, paste the reply, and the document fills in. You can also add https://freeinvoices.app/mcp as a custom MCP server in ChatGPT so it returns a ready-to-open link, if your account or workspace allows custom servers.
Two ways to use ChatGPT with FreeInvoices
The import box needs no setup and no particular plan. ChatGPT writes a JSON object, you paste it into the FreeInvoices editor, and the invoice fills in. Parsing happens in your browser.
The custom MCP server route gives ChatGPT a create_document tool. ChatGPT calls it and replies with a link that opens the finished draft in your browser, plus the computed totals. It depends on whether your account and workspace policies allow custom MCP servers, so start with the import box if you are unsure.
Import box: no setup, any plan
You do not need to trim the reply. Code fences and surrounding sentences are fine, because FreeInvoices parses from the first { to the last }. If the JSON has "type": "receipt" (or quote, proforma, credit-note, purchase-order), the matching generator page opens. Your previous draft is saved to local history first.
- In the FreeInvoices editor, open the sidebar panel "Import from ChatGPT, Claude…" and click Copy prompt.
- In ChatGPT, paste the prompt, then add your details below it: who you are, who you are billing, what you did, rates, tax, and so on.
- Send it. ChatGPT replies with a JSON object, usually inside a code fence.
- Copy the whole reply, paste it into the "Paste the AI reply" box, and click Fill in document.
- Check the fields, add a logo if you want one, and click Download PDF.
Start from a photo or screenshot
ChatGPT accepts images in a chat, so a photo of a handwritten job note, a screenshot of a timesheet, or a picture of a materials receipt can be the source. Attach the image to your message, paste the FreeInvoices prompt text, and say what the image is. Nothing else changes: you still paste the JSON reply into the import box.
Handwriting and small print are where mistakes happen. Ask ChatGPT to list anything it was unsure about, and compare the quantities and rates in the filled-in document against your original note before you download.
The image goes to OpenAI as part of your chat. The import box itself never uploads anything.
[attach photo of the job note]
<paste the Copy prompt text here>
The attached photo is my handwritten job note. I am Rivera Plumbing, billing Dana Whitfield, 14 Oak Lane. Use today's date, USD, 8% sales tax, and a 10% discount. If any number or word is hard to read, put your best guess in the output and tell me which one after the JSON.Add FreeInvoices as a custom MCP server
OpenAI's developer docs describe adding your own MCP server from the ChatGPT Plugins page. The docs say account and workspace policies apply to adding and using custom MCP servers, and they do not list plan tiers there. If the option is missing or blocked, your plan or workspace admin may not allow it. Use the import box in that case.
OpenAI's docs also say the server needs a public HTTPS endpoint with the /mcp path and should support streamable HTTP. The FreeInvoices server does both.
- Go to chatgpt.com/plugins and select the plus button, then Add custom MCP server.
- Enter a name, for example FreeInvoices, and a short description. Under Connection, enter the server URL
https://freeinvoices.app/mcp. - Under authentication, choose the no-authentication option if one is offered. The server has no sign-in, no OAuth, and no API key. OpenAI's docs list "No authentication" as a supported method for MCP servers. The exact label on the ChatGPT screen may differ, so go by what your screen shows.
- Review the risk warning, select I understand and want to continue, then select Create as a plugin.
- Check the discovered tool. You should see one tool,
create_document. - Start a new conversation, type @ in the prompt box, and pick the plugin. Then ask for your invoice.
What happens when ChatGPT calls the tool
ChatGPT sends the document fields to https://freeinvoices.app/mcp. The server computes totals, builds a link, and returns it. It is read-only, stores nothing, and does not log the arguments. The document data rides in the URL fragment (#data=...), which browsers do not send to servers.
Open the link and the editor loads with everything filled in. Add a logo and click Download PDF. Do not ask ChatGPT to write the #data= link itself; only the tool builds valid links. In chat apps without the tool, use the import box.
Because ChatGPT passes your details to the tool, the server sees them for the moment it takes to build the link. OpenAI sees whatever you type into the chat either way.
Worked example: a plumbing job note
Input, typed or read from a photo: "Invoice 1042 for Dana Whitfield, 14 Oak Lane. Replaced kitchen faucet: 2.5 hours labor at $85, Delta 9159 faucet $129.50, two supply lines at $12 each. 8% sales tax, 10% discount for a repeat customer. From Rivera Plumbing, USD."
ChatGPT should produce the fields below. The totals were computed by the FreeInvoices server: subtotal $366.00, discount $36.60, tax $26.35 (8% of the discounted $329.40), total $355.75, balance due $355.75.
{
"type": "invoice",
"number": "1042",
"date": "2026-11-13",
"currency": "USD",
"from": "Rivera Plumbing",
"billTo": "Dana Whitfield\n14 Oak Lane",
"items": [
{ "description": "Labor, kitchen faucet replacement", "quantity": 2.5, "rate": 85 },
{ "description": "Faucet (Delta 9159)", "quantity": 1, "rate": 129.5 },
{ "description": "Supply lines", "quantity": 2, "rate": 12 }
],
"taxRate": 8,
"taxLabel": "Sales tax",
"discountPercent": 10
}Tips for better results
- State the currency, tax rate, and whether prices already include tax. ChatGPT will otherwise guess.
- Give dates as you know them and let it convert to YYYY-MM-DD, but check the due date it calculates from your payment terms.
- Numbers in the JSON must be plain numbers with no currency symbols. If a reply has "$85", ask ChatGPT to fix it and resend.
- For a spreadsheet of hours, paste the rows as text or attach a screenshot, and ask for one line item per task or per day.
- Totals are computed by FreeInvoices, so check them against your own math rather than trusting a figure ChatGPT states in prose.
Example prompts
- “Turn the details below into JSON for freeinvoices.app. Reply with only a JSON object. Details: invoice from Rivera Plumbing to Dana Whitfield, 2.5 hours labor at $85, one faucet at $129.50, 8% sales tax, USD.”
- “Here is a photo of my handwritten timesheet. Make one invoice line per day, rate $60 per hour, bill to Harbor Cafe, net 30 payment terms. Flag any hours you could not read clearly.”
- “Using the FreeInvoices tool, create a quote for a 3-page website: design $1,200, development $2,400, hosting setup $150. Valid for 14 days, 5% discount, currency USD.”
- “Create a receipt for the $480 paid today by cash for 4 hours of tutoring at $120 per hour. From Maya Chen, student: Leo Park.”
- “Make a credit note for invoice 1042 for the returned faucet, $129.50 plus 8% tax, and reference the original invoice number.”
FAQ
Do I need a paid ChatGPT plan?
Not for the import box. It works with whatever plan you have, as long as you can chat with ChatGPT and, for photos, attach an image. For the custom MCP server route, OpenAI's docs say account and workspace policies apply and give no plan list on those pages, so check what your ChatGPT account shows. If you cannot add a custom MCP server, use the import box.
My workspace admin has blocked custom MCP servers. What now?
Use the import box. It does not touch your ChatGPT settings, and parsing happens in your browser. You can also ask your admin whether adding https://freeinvoices.app/mcp is allowed; the server needs no sign-in and stores nothing.
Does the MCP server need authentication?
No. The FreeInvoices server has no OAuth and no API key. It has one read-only tool, create_document, which returns a link and totals. Pick the no-authentication option when ChatGPT asks how to connect.
Is my invoice data stored?
With the import box, nothing leaves your browser. With the MCP server, the details are sent to freeinvoices.app/mcp to build the link and are not stored or logged. In both cases, OpenAI receives whatever you type or attach in ChatGPT, subject to its own privacy settings.
Can ChatGPT read my handwriting?
You can attach a photo and ask, but treat the result as a draft. Ask ChatGPT to flag unclear words and numbers, then check quantities and rates in the filled-in document before downloading the PDF.
Sources
- OpenAI: Connect and test your plugin (add a custom MCP server in ChatGPT)
- OpenAI: Authenticate your users (MCP authentication, anonymous tools)
- OpenAI: Plugins documentation index
- OpenAI Help Center: Image inputs for ChatGPT
FreeInvoices is independent and not affiliated with or endorsed by ChatGPT's maker. Product names are trademarks of their owners.