PayPal: sandbox·AI: Gemini, live
Handback

For rental shops that take deposits on PayPal

Deposits that settle themselves, fairly.

PayPal holds the deposit when the item leaves. When it comes back, AI compares the pickup and return photos, the customer sees every proposed charge on their own phone, and the rest is released on PayPal right away.

Try both sides: book as a customer in one tab, run the counter in another.

City bike at pickup, with a phone holder on the handlebar and a rear light under the saddle
At pickup
City bike at return, the phone holder and the rear light gone
At return: phone holder and rear light missing

$150 deposit, settled in one tap

The renter accepted the $12 phone holder and questioned the rear light, which the counter waived.

Kept $12.00Released $138.00 on PayPal

Sample photos are AI-generated for the demo.

How it works

1. Book

The customer pays the rental fee with PayPal and, in the same approval, lets the shop hold a deposit later. No deposit is taken yet.

2. Pick up

Staff photograph the item and tap once: PayPal holds the deposit on the saved wallet. Its 29-day clock starts when the item leaves.

3. Return

Staff photograph it again. Two independent AI looks compare the photos; people decide; PayPal keeps only the agreed charge and releases the rest.

Why customers can trust it

AI finds. People decide. The customer sees it first.

Automated damage scanners have charged renters for scratches that were never there. Handback is built the other way round: the model can only propose, uncertain findings are never charged, and nothing moves until the person paying has seen the evidence.

Measured on labeled photo pairs

36 AI-generated pairs, 3 runs

Real changes caught
41/42
Unchanged items charged
0/72

55 pairs built on real photos, 3 runs

Real changes caught
63/66
Unchanged items charged
0/99

The real-photo pairs start from freely licensed photos, but the damage in them is still drawn by an image model. Details in eval/README.md.

Two looks must agree

Two separate model calls compare the photos. A charge is proposed only when both see the same thing.

Prices come from your list

The AI points at an entry in the shop's repair price list. It never names an amount.

The customer co-signs

Every proposed charge goes to the customer's phone first. They accept it or question it, in their own words.

Evidence, not vibes

Photos are stored under their SHA-256 hash, and every step is hash-chained with its PayPal ids.

Built on PayPal

One approval at booking. Every later step needs no buyer present.

PayPal releases the unused part of the hold the moment the shop settles, so the customer sees it in their PayPal activity while still at the counter. (When the wallet is funded by a card, the card issuer decides when its pending line disappears.)

  • Orders v2: fee capture with vault, deposit AUTHORIZE
  • Vault v3: merchant-initiated holds and charges
  • Payments v2: final partial capture, void, reauthorize
  • Disputes v1: evidence pack from the rental's own record
  • JS SDK v6: PayPal button with savePayment
  • PayPal-Request-Id on every POST; debug_id in the audit log