How it works
From a dripping tap to a paid invoice.
Trace turns an on-site job, from a repair to a deep clean, into a short contract a camera can check, then lets PayPal move the money only as each line is proved.
- 01 / 04
Scope it
The tradesperson photographs the problem and describes it out loud. Trace drafts priced lines, each with a check a camera can make, and the prices are edited by hand.
- One visible outcome per line
- Must-show and must-not-show checks
- Hidden work flagged for review
9:41New job · draft12 Admiralty Way“Grout's cracked by the shower, tap won't stop…”L1Fix dripping tap$120.00Tap closed with a dry spoutL2Reseal bath edge$90.00Continuous white sealant beadL4Regrout shower wall$110.00Continuous grout, no visible cracksSend for approval · $420.00 - 02 / 04
Hold it
The homeowner approves the scope inside PayPal. The total is authorized on their account, not charged, and the scope is frozen with a hash.
- Orders v2 with intent AUTHORIZE
- Held up to 29 days
- Amounts come only from the agreed lines
9:41HomeownerApprove and holdHeld by PayPal$420.00Not charged until verified- PayPal holds it: nothing is charged now
- Each line is paid only after its photos pass
- Anything unfinished is released back
✓ Authorization createdexpires in 29 days · scope hash 7f1c…a2e4 - 03 / 04
Prove it
For each line, the tradesperson shoots an after-photo in the app, lined up with a ghost of the before-photo. Location, freshness and reuse are checked before the AI looks.
- One-time camera token, 120 s
- 150 m geofence
- Verdict with a reason you can read
9:41Prove itL4 · Regrout shower wall
Line up with the ghost✓Taken here12 m from the job✓Taken nowtoken 41 s old✓Not reusednearest match 31 bits✓Grout continuousno visible cracks - 04 / 04
Release it
PayPal captures exactly the approved lines. Unfinished work stays held until it's fixed, or both sides drop it and the rest goes back.
- Partial captures as lines pass
- Final capture releases the remainder
- Every step on the timeline
9:41Bathroom repair12 Admiralty WayReleased$310.003 lines paid$110.00 still heldL1Fix dripping tapPaidL2Reseal bath edgePaidL3Refit towel railPaidL4Regrout shower wallHeld✓PayPal captured $310.00
- PayPal holds it: nothing is charged now
- Each line is paid only after its photos pass
- Anything unfinished is released back


The rules the money follows
Six rules, no exceptions.
These are enforced in code on the server, not by the app or the model. Each one has tests that run against a PayPal stand-in with the same rules.
Trace never captures more than PayPal authorized. Before every capture, the amount already captured plus the lines being released is checked against the hold.
A line is released when the homeowner approves it, or when its review window lapses and the AI verified it. A line marked Needs review is never released by silence.
Captures go through with final_capture: false while any line is still being worked on. The last one is final, which tells PayPal to release whatever is left.
When both sides agree to drop a line, its share of the hold is released to the homeowner, by the final capture or a void.
Every capture is written down with its own PayPal-Request-Id before it is sent. If the answer is lost, it is retried with the same ID and PayPal returns the original, never a second charge.
PayPal honours a hold best in its first 3 days. After that, Trace asks PayPal to renew it once. If PayPal refuses, both sides are told.
- AuthorizedOrders v2 · AUTHORIZE$420.00held
- Capture 1L1 tap · L2 sealant · L3 rail$310.00paid
- Held backL4 grout · crack above soap dish$110.00held
- Capture 2 · finalL4 grout · re-proved$110.00paid
Questions
The fine print, plainly.
Up to 29 days. Trace is built for jobs that finish within a few days, and asks PayPal to renew the hold once if work runs past the 3-day honour period.
Nothing about money. It reports what it sees in the photos against the agreed checks. Code turns that into Verified, Needs review or Failed, and the homeowner decides anything uncertain.
Not silently. Sending the scope freezes it with a hash that goes into the PayPal order. A change is a new, separately approved hold.
Nothing is charged, the lines go back to approved, and both sides see what happened on the timeline.
Let's move some money
Try it with nothing at stake.
The demo runs a whole job in your browser. Play both sides and watch the hold turn into payments.