Change orders are where contractor jobs leak money and trust: they are often agreed verbally and disputed later. Change-Order Collector lets a contractor log a change order with a photo and a short note. The app produces a clean client-facing summary with the amount, and the homeowner approves or declines through a unique link. Approval, and only approval, triggers a real PayPal invoice. PayPal webhooks reconcile the invoice as paid.
How PayPal is used: The app uses OAuth client credentials and the PayPal Invoicing API in the sandbox to create a draft invoice and send it. It receives INVOICING.INVOICE.PAID webhooks to reconcile payment. Invoicing is gated on homeowner approval in code and covered by tests (22 of 22 passing). Live sandbox proof: invoice INV2-HTBN-5FEL-9XNE-APE3, $450.00 USD, status SENT, verified directly from PayPal.
AI tools: The app was built with AI coding assistance from OpenAI Codex. The default summarizer is deterministic and local. An optional adapter calls an OpenAI-compatible model endpoint; the recorded demo configuration used a local qwen3:8b model via Ollama. The demo video's paid step is a simulated webhook in the local demo and is labelled on screen; the sandbox invoice in the video is SENT, not paid.