Dunlysandbox demo

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.

Try a sample:

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.

Logo design$450.00found in source
Priority fee$5,000.00not in source

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

Loading...

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.