Inspiration

Independent sellers negotiate prices and changes in chat. An accepted service, an unanswered extra and a revised quantity are different commitments. Chat to Invoice focuses on keeping those details reviewable before requesting payment. This problem is a hypothesis: no real-user trial or measured time saving is claimed.

What it does

The app turns a simulated seller-customer conversation into a source-linked itemized fee statement. It preserves quantities, unit prices, included revisions and additions. Pending financial items, missing currency, withdrawn quotes and conflicting totals block invoicing until clarified. Seller and customer acknowledge the same fixed version on separate pages. A correction invalidates that version. Only a mutually confirmed statement can create a PayPal Sandbox draft; sending requires a separate confirmation. The buyer pays on PayPal, and the app queries PayPal before reporting PAID.

How it was built

Node.js and plain HTML, CSS and JavaScript, without third-party runtime packages. Groq/qwen3.8-27b extracts charge descriptions and original-message references; an explicit Agnes adapter remains available. The server copies quotations from the original messages, checks source relevance, quoted prices, quantities and acceptance chronology, and calculates totals in integer cents. The same confirmed line items are mapped to PayPal Invoicing. Persistent operation records, locks and snapshot checks guard creation and sending. Uncertain financial writes are never blindly retried. AI has no payment tools or payment credentials.

Challenges

Historical acceptance followed by a quantity change, and carrying all customizations into a second identical product, were difficult cases. Constrained evidence repair may select original buyer message IDs but cannot change prices or acceptance states. Provider quota handling adds bounded waits and one shared retry within the original 90-second analysis deadline. Earlier failed runs are retained alongside later results.

Accomplishments

The current application passed all 20 existing authored live-model regression cases in one complete run and 100 local tests. A blank-chat Chinese browser test preserved all three priced components for two identical cups and checked the two-party gate. A new current-build USD 1.00 Sandbox invoice was created, sent, paid by the test buyer and verified PAID by the PayPal API on October 26, 2026. These results are regression evidence, not a general accuracy claim. The video distinguishes its USD 310 negotiation from the separate previously verified USD 1 transaction.

What was learned

Valid JSON is not enough to authorize collection. Source checks, deterministic arithmetic, versioned review and payment-provider reconciliation address different failures. AI helps organize negotiated language; the parties remain responsible for reviewing the agreement.

Next steps and limits

Independent user trials and held-out negotiation tests. The current prototype remains local-only, USD-only and limited to one merchant. It is a simulated chat, not an Amazon integration. Customer bearer links work on the same computer and are acknowledgements, not identity verification or legal signatures. Use synthetic data; provider retention has not been independently verified.

Running the project

Public source, MIT license and complete setup instructions: https://github.com/vivayang911/chat-to-invoice Judge guide: https://github.com/vivayang911/chat-to-invoice/blob/main/docs/submission/JUDGE-GUIDE.md Use Node.js 24 and your own Groq and PayPal Sandbox credentials. The Windows candidate starts with npm run start:groq; baseline and cross-platform instructions are included. Private transaction state and credentials are excluded. This project was developed during the hackathon submission period.

Built With

Share this project:

Updates

Submission history