In build for the PayPal AI Hackathon · PayPal sandbox only, no real money moves

An AI shopkeeper for roadside farm stands

Minds the honesty box while you're in the field.

A customer photographs their basket, the AI counts it, plain code works out the total, and they pay with PayPal. At dusk, Strawbank tells you what sold and what walked, and it refunds small overcharges itself, within your limit.

The AI counts. Code does every sum. Nobody on camera.

07:30The stand opens

07:30, The stand opens

07:30 · The old way

It runs on trust, and the tin is the weak point.

All over Ireland, Britain and North America, farms sell eggs, vegetables and jam from a table at the end of the lane, with nobody there. You take what you want and leave the money in a tin.

  1. 01

    The tin gets stolen. Sometimes again and again: in Laois, two children closed their egg honesty box after its fourth robbery, and in Kildare thieves took a farm's eggs and potatoes.

  2. 02

    Fewer people carry cash. A customer with only a card or a phone walks past.

  3. 03

    At dusk, nobody knows. Without a count, the grower can't tell what sold from what walked, or whether the stand is worth keeping.

Strawbank keeps the trust and adds a shopkeeper. Here is one day at a stand.

07:40 · Morning set-up

Two photos, and the stand is open.

The grower photographs the chalk price card and the stocked shelf. The AI reads the prices and counts the stock. Nothing goes on sale until the grower confirms each line, and each new item becomes a product in the grower's PayPal catalogue.

Today

  • Eggs, each€0.60
  • Onions, each€0.30
  • Potatoes, each€0.20
  • Jam, jar€4.50

Read from the photo

Example
  • Eggs, each€0.60
  • Onions, each€0.30
  • Potatoes, each€0.20
  • Jam, jar€4.50

4 lines confirmed by the grower · now in the PayPal catalogue

11:15 · A customer

Scan the code. Photograph the basket. Pay.

The AI counts each item and says how sure it is. Anything it isn't sure of is marked for the customer to check, and they can change any count: it is still an honesty box, so they have the final word. Code works out the total from the grower's confirmed prices. Try the buttons.

Your basket

Example

Counted from your photo. Change anything that is wrong.

  • Eggs, each

    €0.60 eachsure

    6
  • Onions, each

    €0.30 eachplease check

    4
  • Potatoes, each

    €0.20 eachsure

    4

Total

6 × 0.60 + 4 × 0.30 + 4 × 0.20, worked out by code

€5.60

PayPal wallet or card · sandbox only

11:20 · Something's wrong

“I took three onions, not four.”

Every receipt has a “something's wrong” link. The agent recounts the stored basket photo, and code works out the refund and its cap. If the photo backs the claim and the amount is within the grower's limit, the agent refunds it through PayPal. If not, the grower decides.

STRAWBANK

receipt · 11:16

Eggs 6 × 0.603.60

Onions 4 × 0.301.20

Potatoes 4 × 0.200.80

Total€5.60

Paid with PayPal

Something's wrong?

I took three onions, not four.

customer · 11:20

The agent

Example
  • Recounted the basket photo: 3 onions, sure
  • Refund, worked out by code: 1 × €0.30 = €0.30
  • Within the grower's limit of €5.00

Refunded €0.30 through PayPal

Over the limit, or a photo that disagrees: the grower decides.

19:50 · Dusk

What sold, and what walked.

One more photo of the shelf. Code compares what was taken with what was paid for, item by item. The AI explains the day in plain words, and every number it writes is checked against the table first. A count it isn't sure of says “uncertain”, never “missing”.

Dusk report

Example
ItemTakenPaidGap
Eggs24240
Onions30282 · €0.60
Potatoes40400
Jamuncertain3not counted
Eggs and potatoes were all paid for. 30 onions were taken and 28 paid for, so 2, worth €0.60, are unaccounted for. The jam count is uncertain, so it is not called missing: check the shelf photo.

Every number in the note matched the table, so the AI's words are shown. If one had not, a plain template would be.

Every day goes into the grower's ledger, a dashboard built with AG Studio, where they can ask things like “which items go missing on Saturdays?”

The rule

The AI counts. Code does the sums.

If the same input must always give the same answer, a guess is not good enough. So the model reads, counts and explains, and plain code does every total, refund, cap and gap.

The AI

  • Reads the grower's price card
  • Counts the shelf and the basket, and says how sure it is
  • Recounts a basket photo when a customer says something's wrong
  • Explains the day in plain words

Plain code

  • Every total, line by line, in whole cents
  • Every refund, its cap, and whether the grower must decide
  • Taken against paid, for each item
  • The check on every number the AI writes

28

money properties, each a rule that must always hold

24,100

generated cases tried against them

0

failures

Eval E4 scorecard, 3 Nov 2026. Bugs planted in the money code on purpose each made a property fail.

Where PayPal comes in

PayPal runs through the whole day.

Every moment of the day maps to a PayPal API. All of it runs in PayPal's sandbox, so no real money moves.

  • 07:40Morning set-upCatalog Productseach new item on the price card becomes a product, made once and reused
  • 11:15A customerOrders v2one order line per item, collected at the stand, then the capture, by PayPal wallet or card
  • 11:20Something's wrongPayments v2 refundspartial refunds, never more than was captured
  • 13:05No PayPal to handInvoicing v2the honesty-box IOU: an invoice for the basket at the stand's prices, paid later
  • Any dayA disputeDisputesanswered with the basket photo and the stand's own record, or the claim accepted
  • All dayThe ledgerWebhookssigned events, verified, build the ledger; a repeated one changes nothing
  • Next dayThe auditTransaction Searchour ledger checked against PayPal's own records
  • AlwaysThe agentAgent Toolkitits PayPal tools come from a short allowlist, and nothing else

What this is not

What Strawbank won't do.

  • Won't prevent theft

    It measures what walked. It does not stop it.

  • Won't watch people

    The camera points at the shelf and the basket, and nobody is identified. Photos are deleted after 30 days, unless an open refund or dispute still needs one.

  • Won't need a till

    Customers pay on their own phones.

  • Won't set a price or a sum

    The grower sets the prices. Code does the sums.