Agentic Commerce Hackathon 2026

First it chooses. Then it refuses.

PAR does the weekly restock for a gym front desk and cafe. Nobody hands a bot their card, so the product is the permission slip, not the shopping. Two exhibits, both running offline.

97ms
The flip
78ms
The refusal
0
Credentials needed
7
Checks passed, 1 skipped
Exhibit 1

Verified context picks the supplier

The Senso track asks that verified context influence which merchant is chosen, not only that it block a bad one. On listing data alone, two suppliers tie at INR 269.00 and the listings cannot separate them. The operator's own invoices can. The cheapest listing loses and the order moves to Minimalist.

python3 discovery/run_gate.py · offline, no key, 97ms verbatim output

==============================================================================
PAR. Verified context decides WHO GETS THE ORDER, not just whether to buy.
Offline. No network, no key. Real Senso verdicts captured 2026-08-02T07:23Z
from senso-live. Documents are SYNTHETIC operator fixtures.
==============================================================================

RANKED BY THE LISTING                   RANKED BY THE OPERATOR INVOICES
pack size the seller claims             pack size the invoice confirms
--------------------------------------  ------------------------------------
1 Mamaearth        INR 269.00 buys      1 Minimalist       INR 269.00  WINS
2 Minimalist       INR 269.00           2 Mamaearth        INR 285.00
3 Mamaearth        INR 285.00           3 Dr. Sheth's      INR 349.00
4 Dr. Sheth's      INR 349.00           4 Mamaearth        INR 538.00  was 1st

  On listing data alone Mamaearth and Minimalist
  tie at INR 269.00. The listings cannot separate them. The invoices can.

------------------------------------------------------------------------------
THE FLIP
------------------------------------------------------------------------------
  Mamaearth  Ubtan Facewash for tan removal, Pack Of 2 - 100ml*2
    listing claims   2 units per listing unit ("Pack Of 2")
                     INR 538.00 / 2  =  INR 269.00 each   rank 1 of 4
    invoice records  1 unit actually received
                     INR 538.00 / 1  =  INR 538.00 each   rank 4 of 4

  The Senso citation that moved it:
    document  Invoice, Mamaearth, 2026-06-12 (SYNTHETIC)
    dated     2026-06-12   [supplied by PAR at ingest; Senso returns no date]
    quote     "Billed INR 538.00 for two units, received one"
    ref       senso://content/838815e6-cf18-4cfe-ad5e-5d06c3b24829?version=ba4
              bfdc3-ee84-4124-aa36-479300ab372c#chunk2

  Cheapest listing loses. The order goes to Minimalist at INR 269.00 instead,
  cited to Invoice, Minimalist, 2026-07-03 (SYNTHETIC).

  Remove Senso and there is no invoice to divide by, so the top line stands
  and the agent buys the most expensive option believing it is the cheapest.
==============================================================================
Remove Senso and the top line stands, so the agent buys the dearest option believing it is cheapest
Exhibit 2

Then it refuses the purchase

Same operator, same week. Real transcript, not an animation. The moment is beat 3, at 0:28.

Paced for reading · the real run takes 78ms Recorded, not live
03

Four beats

One mandate, approved once with a passkey. 2,400 dollars a week, three merchants, nothing more than 10 percent above last paid.

Beat 1 · it buys

The boring 95 percent

Every rule clears. Credential minted, spend committed.

PROCEED
Beat 2 · the easy no

20 percent over

A number against a number. Any agent catches this one. It is here so you can tell that beat 3 is different.

PRICE_DRIFT_EXCEEDED
Beat 3 · the one that matters

Cheaper than last time, and still wrong

Priced below what the operator last paid. Drift clears, caps clear, supplier approved. No price rule could ever catch this.

The listing sells a case of 24. The operator's own invoice says the case is 12. So the agent refuses, names the rule, and cites the document and its date. No charge call is made, so no credential exists.

CASE_SIZE_MISMATCH
Beat 4 · the 409

Authority switched off

Clean line, mint still blocked. Beat 3 was the agent choosing not to. This is no credential being possible.

409 MANDATE_NOT_ACTIVE
04

Run it yourself

Python 3 and nothing else. No install, no key, no network.

bash · about 20 seconds
# clone and watch the refusal
git clone https://github.com/aayushdixit27/par-purchasing-agent.git
cd par-purchasing-agent
python3 -m stage.demo

# prove it is really offline and really reproducible
python3 -m stage.verify

# the real Prava calls: the 409 and the decline, side by side
python3 -m stage.evidence
Demo mode replaces the socket layer before anything imports, then deletes every credential
05

Real, and seeded

Said here rather than left for you to find. Full list in the disclosure.

Real · observed with timestamps

  • The gate. Every rule and the refusal logic. Nothing about the decision is faked
  • Prava. Mandate active, charge minted real credentials in 729ms, settle returned visaConfirmation: SUCCESS
  • The 409. 302ms, no Visa correlation id, so it never reached the network
  • Senso. Correct invoice chunk at rank 1, score 0.7436, first try, no tuning
  • Suppliers. All three verified as UCP storefronts by fetching /.well-known/ucp

Seeded · in the run above

  • The card. tok_stub_ is a sha256 prefix. No card exists in this mode
  • The citations and this 409. Prava's real 409 is observed separately
  • The invoices are synthetic and labelled SYNTHETIC in the fixtures
  • Senso evals do not exist in the API until next week. The comparison logic is ours. No eval call was made
  • Senso returns no date, so we encode it into the title at ingest. A workaround, not a feature
06

Why beat 4 is a different event

Same mandate, same amount, one second apart, against real Prava sandbox.

OutcomeHTTPLatencyReached Visa
Mint succeeded200729msyes
Network declined200 status failed697msyes, correlation id
Mandate paused409282msno
2.5x faster, no correlation id: Prava refuses before Visa is consulted Reproduce → python3 -m stage.evidence
07

Read further