Paste what the client said.
Get an invoice you can trust.
The AI reads the message and drafts the lines. Before PayPal sees anything, the server checks every price against your source text.
What you get
A draft with one line per deliverable, a flag on any price the client never wrote, and questions where details are missing. You approve before anything goes to PayPal.
Review
AI draft| Item | Qty | Price | Line | Source check |
|---|
Late payers, handled kindly.
Invoices come straight from PayPal. Pick one, choose a tone, review the note, send the reminder through PayPal.
Open and recent invoices
Reminder
The model never owns the money.
1. AI reads, humans approve
The model turns messy text into lines. Nothing is sent until you review the draft. Missing details become questions, not guesses.
2. Prices are checked against your text
Each price must appear in what the client wrote. If it does not, the line is flagged and the send button stays locked until you confirm it.
3. Reminders cannot invent amounts
For collections, the invoice is re-read from PayPal. The only figure a reminder may contain is the amount due. Any other figure blocks the send, on the server.
4. Pasted text is data
The model is told to treat pasted text as data, and the server enforces amounts either way, so a hidden instruction cannot change a price. Try the third sample.
What runs where
PayPal Invoicing API: create, send, list, remind, record payment, cancel. Gemini 2.5 Flash: draft and tone. Static page and serverless functions on Vercel. Source is open under MIT.
Limits of this demo
Sandbox only. Shared demo: sample invoices are read-only and the rate limit is per server instance. One currency per invoice. No tax or discounts yet. Not financial or legal advice.