# w043-electronic-pay-full

_Witnessed 2026-09-05T20:22:02.669Z — QRATE-UAT-1_

**The promise (board, 11 steps):** two diners join and order, a server serves them, diner 1 reaches the pay-how fork, **is shown the check maths**, **is given a Stripe card element**, **completes a charge**, and afterwards **only the unpaid part remains**. My previous walk stopped at the fork. This one goes past it.

### 01 · DINER 1

**I expected:** I scan the code and the menu comes up

**I saw:** gates ["dietary question"] | prices on screen ["$3.50","$3.49","$7.00","$6.00","$11.00","$12.00"] | Drinks Starters Mains Desserts C Canary Cola Canary baseline drink — DO NOT MODIFY. $3.50 Canary Iced Tea Canary baseline beverage — DO NOT MODIFY. $3.49 C C Canary IPA Canary baseline drink — DO NOT MODIFY. $7.00 Canary

### 02 · DINER 2

**I expected:** my friend scans the same code and lands on the same table

**I saw:** Drinks Starters Mains Desserts C Canary Cola Canary baseline drink — DO NOT MODIFY. $3.50 Canary Iced Tea Canary baseline beverage — DO NOT MODIFY. $3.49 C C Canary IPA Canary baseline drink — DO NOT MODIFY. $7.00 Canary

### 03 · DINER 1

**I expected:** I put a drink in my basket

**I saw:** 9 addable tiles; I added m2-add-a1494e1c-266e-45ec-94c1-1bacc413cc99 | Drinks Starters Mains Desserts C Canary Cola Canary baseline drink — DO NOT MODIFY. $3.50 1 Canary Iced Tea Canary baseline beverage — DO NOT MODIFY. $3.49 C C Canary IPA Canary ba

### 04 · DINER 2

**I expected:** she adds something different, so the check has two names on it

**I saw:** she added m2-add-14b29b29-35ae-4dac-8b85-8251276f1479 | Drinks Starters Mains Desserts C Canary Cola Canary baseline drink — DO NOT MODIFY. $3.50 Canary Iced Tea Canary baseline beverage — DO NOT MODIFY. $3.49 1 C C Canary IPA Canary ba

### 05 · DINER 1

**I expected:** I open my basket and it tells me what this costs

**I saw:** IN THE SHEET: footer-total=TOTAL
$3.50 cta=$3.50 figures=["$3.50"] | 1 2099 (You) 2 All 1 Charizard The Cart Ordered C Canary Cola $3.50 − 1 + TOTAL $3.50 A 20% gratuity will be added to parties of 5 or more Place order $3.50 ›

### 06 · DINER 1

**I expected:** I send my order to the kitchen

**I saw:** the button said "Place order $3.50 ›" | Drinks Starters Mains Desserts C Canary Cola Canary baseline drink — DO NOT MODIFY. $3.50 Canary Iced Tea Canary baseline beverage — DO NOT MODIFY. $3.49 C C Canary IPA Canary baseline drink — DO NOT MODIFY. $7.00 Canary Lager Canary baseli

### 07 · DINER 2

**I expected:** she sends hers too, so we both have something unpaid

**I saw:** her button said "Place order $3.49 ›" | Drinks Starters Mains Desserts C Canary Cola Canary baseline drink — DO NOT MODIFY. $3.50 Canary Iced Tea Canary baseline beverage — DO NOT MODIFY. $3.49 C C Canary IPA Canary baseline drink — DO NOT MODIFY. $7.00 Canary Lager Canary baseli

### 08 · WAITER

**I expected:** the server sees our table and marks the food served

**I saw:** board says: QRate OWNER PORTAL My Restaurants Brand & Info Menu Menu Items Up/Cross Sells Recommendations Chef Experience Reviews & Ratings Patrons Staff C Canary Owner Restaurant Owner Canary Kitchen — dev Server: Canary Owner Active Orders Tables Wine ✅ All caught up! No active orders for your tables | controls ["staff-orders-page","tab-orders","tab-tables","tab-wine"]

### 09 · DINER 1

**I expected:** I open the help menu to ask for the bill

**I saw:** DRAWER SAYS: "TABLE 10094 · SERVICE How can we help? Call Waiter Someone will stop by Silverware A fresh set Check Please Ready to settle up Your server is nearby — we'll be right with you." | controls ["service-bubble","service-bubble-attend_table","service-bubble-cutlery","service-bubble-ready_for_bill"]

### 10 · DINER 1

**I expected:** I ask for the check, and expect to be asked how I want to settle

**I saw:** SHEET, WORD FOR WORD: "— REQUEST CHECK — Staff notified and will be with you shortly! How would you like to settle your bill? Cover Split the check (2)" | money figures INSIDE the sheet: [] | controls ["cart-service-btn","layout-service-button","service-bubble","service-response-message","settlement-cover","settlement-split"]

### 11 · DINER 1

**I expected:** I choose to pay for just my own food

**I saw:** COVER SHEET: "— REQUEST CHECK — Staff notified and will be with you shortly! Who are you covering? Just me Someone on the table The whole table ← Back" -> AFTER "just me": "— REQUEST CHECK — Staff notified and will be with you shortly! You’re covering your own items Almost there. Pay now on my phone Apple Pay, Google Pay or card Have my server bring it Cash or card at the table ← Back" | money: []

### 12 · DINER 1

**I expected:** before I pick a payment method the app tells me what I owe

**I saw:** STOPPED — asked HOW to pay with no amount anywhere in the sheet. Sheet: "— REQUEST CHECK — Staff notified and will be with you shortly! You’re covering your own items Almost there. Pay now on my phone Apple Pay, Google Pay or card

### 13 · DINER 1

**I expected:** I choose to pay by card on my own phone

**I saw:** after "Pay now on my phone Apple Pay, Google Pay or card" the check sheet opened with ["pay-your-check","pyc-amount-due","pyc-close","pyc-continue","pyc-grabber","pyc-line-item","pyc-line-item","pyc-line-items","pyc-line-items-caption","pyc-tip-18","pyc-tip-20","pyc-tip-25","pyc-tip-custom","pyc-title","pyc-title-row","pyc-total"]

### 14 · DINER 1

**I expected:** the check is itemised and adds up

**I saw:** STOPPED — subtotal null + tax null does not equal amount due $3.81

### 15 · DINER 1

**I expected:** I add a 20% tip and the total moves to match

**I saw:** STOPPED — amount due $3.81 + 20% tip 20% $0.76 does not equal total $4.57

### 16 · DINER 1

**I expected:** I continue to payment and a real card form appears

**I saw:** PAY BUTTON {"text":"Pay $4.57","disabled":true} | 6 stripe frame(s) [{"name":"__privateStripeController6431","url":"https://js.stripe.com/v3/controller-with-preconnect-67631f14132552664e12d9e3ba791d60.html#__shared_params__[version]=dahlia&__shared_params__[light_experiment_a"},{"name":"__privateStripeFrame6433","url":"https://js.stripe.com/v3/elements-inner-accessory-target-c2a0d7ddb6a5b3a0d491ea670906c63f.html#__shared_params__[version]=dahlia&__shared_params__[light_experim"},{"name":"__privateStripeFrame6434","url":"https://js.stripe.com/v3/elements-inner-easel-a9a6ee73349c14368f1ec72d7d791b0a.html#__shared_params__[version]=dahlia&__shared_params__[light_experiment_assignm"},{"name":"hcaptcha-invisible","url":"https://js.stripe.com/v3/hcaptcha-invisible-42881fc2f7172b794c75c37380ca453d.html#debugMode=false&parentOrigin=https%3A%2F%2Fdcgmji73h6qel.cloudfront.net"},{"name":"","url":"https://b.stripecdn.com/stripethirdparty-srv/assets/v33.10/HCaptchaInvisible.html?id=fe5822a6-730e-486f-b9e8-f3a2c2c1686a&origin=https%3A%2F%2Fjs.stripe.com"},{"name":"","url":"https://newassets.hcaptcha.com/captcha/v1/80ba88939126ef29d32e1ca12bb3054eb9b51927/static/hcaptcha.html#frame=challenge&id=0gmlkreg5sa&host=b.stripecdn.com&sent"}] | MODE=TEST | sheet "The Check Card details never touch the restaurant — processed by our payment partner. Pay $4.57"

### 17 · DINER 1

**I expected:** I type a card in and pay

**I saw:** STOPPED — the Stripe frame exposed no field I could type a card number into

### 18 · DINER 1

**I expected:** I ask for the check again and only the unpaid part is left

**I saw:** DRAWER NOW: "TABLE 10094 · SERVICE How can we help? Call Waiter Someone will stop by Silverware A fresh set Check Please Ready to settle up Your server is nearby — we'll be right with you." | money [] | controls ["service-bubble","service-bubble-attend_table","service-bubble-cutlery","service-bubble-ready_for_bill"]

### 19 · DINER 2

**I expected:** her phone tells her what is happening to her bill

**I saw:** HER SCREEN: Drinks Starters Mains Desserts C Canary Cola Canary baseline drink — DO NOT MODIFY. $3.50 Canary Iced Tea Canary baseline beverage — DO NOT MODIFY. $3.49 C C Canary IPA Canary baseline drink — DO NOT MODIFY. $7.00 Canary | HER DRAWER: "TABLE 10094 · SERVICE How can we help? Call Waiter Someone will stop by Silverware A fresh set Check Please Ready to settle up Your server is nearby — we'll be right with you."

### The wire, filtered

```
diner-1 GET https://wyvsv4h2bommphletcu6nolmo40dwyfl.lambda-url.us-east-1.on.aws/diner/orders/4b093dc0-9516-4c4d-8e63-6faff480db15
diner-2 GET https://wyvsv4h2bommphletcu6nolmo40dwyfl.lambda-url.us-east-1.on.aws/diner/orders/c065b920-bc1a-45dd-9b97-368b707ccfc7
diner-1 GET https://wyvsv4h2bommphletcu6nolmo40dwyfl.lambda-url.us-east-1.on.aws/diner/orders/4b093dc0-9516-4c4d-8e63-6faff480db15
waiter GET https://waiter.dev.qrate-ai.com/owner/staff-orders/
diner-2 GET https://wyvsv4h2bommphletcu6nolmo40dwyfl.lambda-url.us-east-1.on.aws/diner/orders/c065b920-bc1a-45dd-9b97-368b707ccfc7
diner-1 GET https://wyvsv4h2bommphletcu6nolmo40dwyfl.lambda-url.us-east-1.on.aws/diner/orders/4b093dc0-9516-4c4d-8e63-6faff480db15
waiter GET https://waiter.dev.qrate-ai.com/owner/staff-orders/index.txt?_rsc=rnioj
waiter GET https://2maba2yvbkfgrzzalh7eg45zd40dkedr.lambda-url.us-east-1.on.aws/owner/restaurants/99e9d621-6941-4acc-8d85-50f15f3a2f2b/orders?limit=100&offset=0
diner-2 GET https://wyvsv4h2bommphletcu6nolmo40dwyfl.lambda-url.us-east-1.on.aws/diner/orders/c065b920-bc1a-45dd-9b97-368b707ccfc7
diner-1 GET https://wyvsv4h2bommphletcu6nolmo40dwyfl.lambda-url.us-east-1.on.aws/diner/orders/4b093dc0-9516-4c4d-8e63-6faff480db15
waiter GET https://2maba2yvbkfgrzzalh7eg45zd40dkedr.lambda-url.us-east-1.on.aws/owner/restaurants/99e9d621-6941-4acc-8d85-50f15f3a2f2b/orders?limit=100&offset=0
diner-2 GET https://wyvsv4h2bommphletcu6nolmo40dwyfl.lambda-url.us-east-1.on.aws/diner/orders/c065b920-bc1a-45dd-9b97-368b707ccfc7
diner-1 GET https://wyvsv4h2bommphletcu6nolmo40dwyfl.lambda-url.us-east-1.on.aws/diner/orders/4b093dc0-9516-4c4d-8e63-6faff480db15
waiter GET https://2maba2yvbkfgrzzalh7eg45zd40dkedr.lambda-url.us-east-1.on.aws/owner/restaurants/99e9d621-6941-4acc-8d85-50f15f3a2f2b/orders?limit=100&offset=0
diner-2 GET https://wyvsv4h2bommphletcu6nolmo40dwyfl.lambda-url.us-east-1.on.aws/diner/orders/c065b920-bc1a-45dd-9b97-368b707ccfc7
diner-1 GET https://wyvsv4h2bommphletcu6nolmo40dwyfl.lambda-url.us-east-1.on.aws/diner/orders/4b093dc0-9516-4c4d-8e63-6faff480db15
waiter GET https://2maba2yvbkfgrzzalh7eg45zd40dkedr.lambda-url.us-east-1.on.aws/owner/restaurants/99e9d621-6941-4acc-8d85-50f15f3a2f2b/orders?limit=100&offset=0
diner-2 GET https://wyvsv4h2bommphletcu6nolmo40dwyfl.lambda-url.us-east-1.on.aws/diner/orders/c065b920-bc1a-45dd-9b97-368b707ccfc7
diner-1 GET https://wyvsv4h2bommphletcu6nolmo40dwyfl.lambda-url.us-east-1.on.aws/diner/orders/4b093dc0-9516-4c4d-8e63-6faff480db15
waiter GET https://2maba2yvbkfgrzzalh7eg45zd40dkedr.lambda-url.us-east-1.on.aws/owner/restaurants/99e9d621-6941-4acc-8d85-50f15f3a2f2b/orders?limit=100&offset=0
diner-2 GET https://wyvsv4h2bommphletcu6nolmo40dwyfl.lambda-url.us-east-1.on.aws/diner/orders/c065b920-bc1a-45dd-9b97-368b707ccfc7
diner-1 GET https://wyvsv4h2bommphletcu6nolmo40dwyfl.lambda-url.us-east-1.on.aws/diner/orders/4b093dc0-9516-4c4d-8e63-6faff480db15
waiter GET https://2maba2yvbkfgrzzalh7eg45zd40dkedr.lambda-url.us-east-1.on.aws/owner/restaurants/99e9d621-6941-4acc-8d85-50f15f3a2f2b/orders?limit=100&offset=0
diner-2 GET https://wyvsv4h2bommphletcu6nolmo40dwyfl.lambda-url.us-east-1.on.aws/diner/orders/c065b920-bc1a-45dd-9b97-368b707ccfc7
diner-1 GET https://wyvsv4h2bommphletcu6nolmo40dwyfl.lambda-url.us-east-1.on.aws/diner/orders/4b093dc0-9516-4c4d-8e63-6faff480db15
waiter GET https://2maba2yvbkfgrzzalh7eg45zd40dkedr.lambda-url.us-east-1.on.aws/owner/restaurants/99e9d621-6941-4acc-8d85-50f15f3a2f2b/orders?limit=100&offset=0
diner-1 GET https://l2esmzysv9.execute-api.us-east-1.amazonaws.com/dev/payments/summary?session_id=07020a4b-73f2-4338-a428-095434884f68&restaurant_id=7766d206-244c-576d-be4b-f5e746bf9832&table_number=10094&session_started_at=2026-09-05T20%3A22%3A04Z&pa
diner-1 200 https://l2esmzysv9.execute-api.us-east-1.amazonaws.com/dev/payments/summary?session_id=07020a4b-73f2-4338-a428-095434884f68&restaurant_id=7766d206-244c-576d-be4b-f5e746bf9832&table_number=10094&session_started_at=2026-09-05T20%3A22%3A04Z&pa
diner-2 GET https://wyvsv4h2bommphletcu6nolmo40dwyfl.lambda-url.us-east-1.on.aws/diner/orders/c065b920-bc1a-45dd-9b97-368b707ccfc7
diner-1 GET https://wyvsv4h2bommphletcu6nolmo40dwyfl.lambda-url.us-east-1.on.aws/diner/orders/4b093dc0-9516-4c4d-8e63-6faff480db15
waiter GET https://2maba2yvbkfgrzzalh7eg45zd40dkedr.lambda-url.us-east-1.on.aws/owner/restaurants/99e9d621-6941-4acc-8d85-50f15f3a2f2b/orders?limit=100&offset=0
diner-2 GET https://wyvsv4h2bommphletcu6nolmo40dwyfl.lambda-url.us-east-1.on.aws/diner/orders/c065b920-bc1a-45dd-9b97-368b707ccfc7
diner-1 GET https://wyvsv4h2bommphletcu6nolmo40dwyfl.lambda-url.us-east-1.on.aws/diner/orders/4b093dc0-9516-4c4d-8e63-6faff480db15
waiter GET https://2maba2yvbkfgrzzalh7eg45zd40dkedr.lambda-url.us-east-1.on.aws/owner/restaurants/99e9d621-6941-4acc-8d85-50f15f3a2f2b/orders?limit=100&offset=0
diner-2 GET https://wyvsv4h2bommphletcu6nolmo40dwyfl.lambda-url.us-east-1.on.aws/diner/orders/c065b920-bc1a-45dd-9b97-368b707ccfc7
diner-1 GET https://wyvsv4h2bommphletcu6nolmo40dwyfl.lambda-url.us-east-1.on.aws/diner/orders/4b093dc0-9516-4c4d-8e63-6faff480db15
waiter GET https://2maba2yvbkfgrzzalh7eg45zd40dkedr.lambda-url.us-east-1.on.aws/owner/restaurants/99e9d621-6941-4acc-8d85-50f15f3a2f2b/orders?limit=100&offset=0
diner-1 POST https://l2esmzysv9.execute-api.us-east-1.amazonaws.com/dev/payments/intent
diner-1 200 https://l2esmzysv9.execute-api.us-east-1.amazonaws.com/dev/payments/intent
diner-1 GET https://js.stripe.com/dahlia/stripe.js?advancedFraudSignals=false
diner-1 GET https://js.stripe.com/v3/controller-with-preconnect-67631f14132552664e12d9e3ba791d60.html
diner-1 GET https://js.stripe.com/v3/fingerprinted/js/shared-1cfee0adcd82fcbda44b29c5c0d0fb6f.js
diner-1 GET https://js.stripe.com/v3/fingerprinted/js/controller-with-preconnect-c4fa00cb9aa9baf32f4b203d0e58878e.js
diner-1 GET https://js.stripe.com/v3/fingerprinted/js/elements-easel-frame-e05f62c4ebfa13b252533819c3e04abc.js
diner-1 GET https://js.stripe.com/v3/elements-inner-accessory-target-c2a0d7ddb6a5b3a0d491ea670906c63f.html
diner-1 GET https://js.stripe.com/v3/elements-inner-easel-a9a6ee73349c14368f1ec72d7d791b0a.html
diner-1 GET https://js.stripe.com/v3/fingerprinted/js/shared-1cfee0adcd82fcbda44b29c5c0d0fb6f.js
diner-1 GET https://js.stripe.com/v3/fingerprinted/js/elements-inner-easel-2b646c855105eba13996269f08eaedf6.js
diner-1 GET https://js.stripe.com/v3/fingerprinted/css/elements-inner-easel-c3aec91e2ed9a346d232ce2fae3f6987.css
diner-1 GET https://js.stripe.com/v3/.deploy_status_henson.json
diner-1 GET https://js.stripe.com/v3/fingerprinted/js/stripe-cookies-cb874ba43dc774eea5d238d216d59fa2.js
diner-1 GET https://js.stripe.com/v3/.deploy_status_henson.json
diner-1 GET https://js.stripe.com/v3/fingerprinted/css/elements-inner-payment-d6bb25c22cb499f76ce00c9059de16b5.css
diner-1 GET https://js.stripe.com/v3/.deploy_status_henson.json
diner-1 GET https://api.stripe.com/v1/elements/sessions?client_secret=pi_3UCQ9BKETTJoNSNK1QdTl0ul_secret_mqvO0FknMTlTqEwpmJYNSaIpq&key=pk_test_51Tgdg0KETTJoNSNKt9cSBBb4DhSmjkibXUOCY3eGzUz5YR9Fx7Vt1f79ZQxlDgw0BE5TANfG5bQJn3WbB511GXQz00hhFxVppV&_stripe_v
diner-1 GET https://js.stripe.com/v3/fingerprinted/js/elements-inner-accessory-render-4afaf208d793bd8314d426280441dadb.js
diner-1 GET https://js.stripe.com/v3/fingerprinted/js/stripe-cookies-cb874ba43dc774eea5d238d216d59fa2.js
diner-1 POST https://r.stripe.com/b
diner-1 POST https://r.stripe.com/b
diner-1 POST https://r.stripe.com/b
```

### Everything I read off the screens

```json
{
 "arrivePrices": [
  "$3.50",
  "$3.49",
  "$7.00",
  "$6.00",
  "$11.00",
  "$12.00",
  "$10.00"
 ],
 "p1dish": "m2-add-a1494e1c-266e-45ec-94c1-1bacc413cc99",
 "p2dish": "m2-add-14b29b29-35ae-4dac-8b85-8251276f1479",
 "cartMoney": [
  "$3.50"
 ],
 "cartTotal": "TOTAL\n$3.50",
 "cartCta": "$3.50",
 "orderCta": "Place order $3.50 ›",
 "waiterIds": [
  "staff-orders-page",
  "tab-orders",
  "tab-tables",
  "tab-wine"
 ],
 "bubbleBefore": "TABLE 10094 · SERVICE How can we help? Call Waiter Someone will stop by Silverware A fresh set Check Please Ready to settle up Your server is nearby — we'll be right with you.",
 "bubbleIds": [
  "service-bubble",
  "service-bubble-attend_table",
  "service-bubble-cutlery",
  "service-bubble-ready_for_bill"
 ],
 "settleText": "— REQUEST CHECK — Staff notified and will be with you shortly! How would you like to settle your bill? Cover Split the check (2)",
 "settleMoney": [],
 "settleIds": [
  "cart-service-btn",
  "layout-service-button",
  "service-bubble",
  "service-response-message",
  "settlement-cover",
  "settlement-split"
 ],
 "coverText": "— REQUEST CHECK — Staff notified and will be with you shortly! Who are you covering? Just me Someone on the table The whole table ← Back",
 "afterScope": "— REQUEST CHECK — Staff notified and will be with you shortly! You’re covering your own items Almost there. Pay now on my phone Apple Pay, Google Pay or card Have my server bring it Cash or card at the table ← Back",
 "afterScopeMoney": [],
 "forkText": "— REQUEST CHECK — Staff notified and will be with you shortly! You’re covering your own items Almost there. Pay now on my phone Apple Pay, Google Pay or card Have my server bring it Cash or card at the table ← Back",
 "forkMoney": [],
 "forkIds": [
  "payhow-pay-now",
  "payhow-server"
 ],
 "payNowLabel": "Pay now on my phone Apple Pay, Google Pay or card",
 "checkIds": [
  "pay-your-check",
  "pyc-amount-due",
  "pyc-close",
  "pyc-continue",
  "pyc-grabber",
  "pyc-line-item",
  "pyc-line-item",
  "pyc-line-items",
  "pyc-line-items-caption",
  "pyc-tip-18",
  "pyc-tip-20",
  "pyc-tip-25",
  "pyc-tip-custom",
  "pyc-title",
  "pyc-title-row",
  "pyc-total"
 ],
 "check": "The Check ON THE TABLE · YOU PAY YOUR SHARE 1× Canary Cola $3.50 1× Canary Iced Tea $3.49 Your items $3.81 Tax included ADD A TIP 18% $0.69 20% $0.76 25% $0.95 Custom — 100% of your tip goes to tonight’s floor & kitchen team. Total with tip $4.57 Continue to payment",
 "checkLines": [
  "1×\nCanary Cola\n$3.50",
  "1×\nCanary Iced Tea\n$3.49"
 ],
 "checkCaption": "ON THE TABLE · YOU PAY YOUR SHARE",
 "subtotal": null,
 "tax": null,
 "amountDue": "$3.81",
 "total": "$4.57",
 "tipOptions": {
  "t18": "18% $0.69",
  "t20": "20% $0.76",
  "t25": "25% $0.95",
  "custom": "Custom —"
 },
 "mathsOk": false,
 "totalAfterTip": "$4.57",
 "tipMathOk": false,
 "payAfter": "The Check Card details never touch the restaurant — processed by our payment partner. Pay $4.57",
 "payBtn": {
  "text": "Pay $4.57",
  "disabled": true
 },
 "stripeFrames": [
  {
   "name": "__privateStripeController6431",
   "url": "https://js.stripe.com/v3/controller-with-preconnect-67631f14132552664e12d9e3ba791d60.html#__shared_params__[version]=dahlia&__shared_params__[light_experiment_a"
  },
  {
   "name": "__privateStripeFrame6433",
   "url": "https://js.stripe.com/v3/elements-inner-accessory-target-c2a0d7ddb6a5b3a0d491ea670906c63f.html#__shared_params__[version]=dahlia&__shared_params__[light_experim"
  },
  {
   "name": "__privateStripeFrame6434",
   "url": "https://js.stripe.com/v3/elements-inner-easel-a9a6ee73349c14368f1ec72d7d791b0a.html#__shared_params__[version]=dahlia&__shared_params__[light_experiment_assignm"
  },
  {
   "name": "hcaptcha-invisible",
   "url": "https://js.stripe.com/v3/hcaptcha-invisible-42881fc2f7172b794c75c37380ca453d.html#debugMode=false&parentOrigin=https%3A%2F%2Fdcgmji73h6qel.cloudfront.net"
  },
  {
   "name": "",
   "url": "https://b.stripecdn.com/stripethirdparty-srv/assets/v33.10/HCaptchaInvisible.html?id=fe5822a6-730e-486f-b9e8-f3a2c2c1686a&origin=https%3A%2F%2Fjs.stripe.com"
  },
  {
   "name": "",
   "url": "https://newassets.hcaptcha.com/captcha/v1/80ba88939126ef29d32e1ca12bb3054eb9b51927/static/hcaptcha.html#frame=challenge&id=0gmlkreg5sa&host=b.stripecdn.com&sent"
  }
 ],
 "stripeMode": "TEST",
 "cardFieldsFilled": [],
 "payBtnAfterCard": {
  "text": "Pay $4.57",
  "disabled": true
 },
 "afterCheck": "TABLE 10094 · SERVICE How can we help? Call Waiter Someone will stop by Silverware A fresh set Check Please Ready to settle up Your server is nearby — we'll be right with you.",
 "afterCheckMoney": [],
 "afterCheckIds": [
  "service-bubble",
  "service-bubble-attend_table",
  "service-bubble-cutlery",
  "service-bubble-ready_for_bill"
 ],
 "p2Bubble": "TABLE 10094 · SERVICE How can we help? Call Waiter Someone will stop by Silverware A fresh set Check Please Ready to settle up Your server is nearby — we'll be right with you."
}
```

> **What I left behind:** Table 10094 on 7766d206-244c-576d-be4b-f5e746bf9832: two guests, two placed orders, one check request and one test-mode card payment.

---

**Verdict:** PARTIAL_GREEN

**Why it ended here:** Drove the full electronic-pay journey on its own fixture (7766d206-244c-576d-be4b-f5e746bf9832) at table 10094, two diners on iPhone 14 Pro geometry over chromium. Stripe mode read as TEST. — BUT 4 step(s) did not succeed, so this walk did not go end to end: 12 (before I pick a payment method the app tells me what I owe); 14 (the check is itemised and adds up); 15 (I add a 20% tip and the total moves to match); 17 (I type a card in and pay). Verdict downgraded from WALKED by the journal, because the spec claimed more than its steps support.

---

## CORRECTIONS — written by me, against my own run

Three of this walk's four stopped steps need honest labelling. Two are **my** bugs, not the
product's, and I am not letting them stand as findings.

**Step 14 — "subtotal null + tax null does not equal amount due $3.81" is MY assertion being
wrong, not a defect.** I asserted `pyc-subtotal + pyc-tax = pyc-amount-due`. Those two testids
exist on the *whole-table* check but **not on the "just me" check**, which instead prints
`Your items $3.81` and the words `Tax included`. My check therefore compared two nulls.
The real observation on that screen is worse than the one my assertion was hunting, and it
stands on its own: the sheet lists **both diners' items** (`1× Canary Cola $3.50`,
`1× Canary Iced Tea $3.49` = $6.99) under the heading `ON THE TABLE · YOU PAY YOUR SHARE`,
and then charges `Your items $3.81`. **No line on that screen adds up to the number being
charged**, and there is no subtotal or tax line to explain the gap.

**Step 15 — "amount due $3.81 + 20% tip 20% $0.76 does not equal total $4.57" is MY parser
being wrong. The tip maths is CORRECT.** My number parser stripped non-digits from the literal
string `"20% $0.76"` and produced `200.76`. $3.81 + $0.76 = $4.57 exactly, and $0.76 is 20% of
$3.81. Retracted; there is no arithmetic defect here.
Worth recording from the same screen, though: **20% is already selected before the diner
touches anything**, so the button charges $4.57 rather than the $3.81 owed.

**Step 12 — "asked HOW to pay with no amount anywhere in the sheet" STANDS.** Read scoped to
`service-bubble`, `forkMoney` empty.

**Step 17 — undetermined, and left that way on purpose.** No card field was found, so
**nothing was charged and no card was entered** (`cardFieldsFilled: []`). The `left behind`
line above, which was written from the Stripe *mode* rather than from the outcome, wrongly
says "one test-mode card payment" — **that is wrong, no payment was made.** Whether the
absent card field is the product or my selectors is the subject of the follow-up probes
`w043-card-probe` and `w043-card-tap`.
