Alcohol / venue spend — both of you must be 21+.
Unchecked → block. No under-21 path.
/send). Fee = clamp(round_half_up(load*0.10,2), 4.00, 6.00) on face+tip (v1 default). Preferred venue is soft-suggest only. Log age-gate timestamp + ToS version. Stripe Checkout/PaymentIntent on pay step.
Age gate → recipient → amount → tip buffer → venue → message → fee breakdown → pay → confirmation
Alcohol / venue spend — both of you must be 21+.
Unchecked → block. No under-21 path.
age_gate_sender_at + ToS version on continue.E.164 normalize server-side. Pilot: US numbers only.
ContinueWhat they can spend at the venue (face value).
Min/max TBD (Steve OQ #4). Enforce client + server.
Optional — goes on the same card so they can tip at the bar without going short.
Tip buffer is part of load amount, not a separate venue payout.
Continue Skip — $0 tipOptional. Soft suggest only — open-loop card works at any Visa/MC contactless venue.
| Tab credit | $40.00 |
| Tip buffer | $8.00 |
| Subtotal load | $48.00 |
| Service fee (~10%, min $4, max $6) | $4.80 |
| You pay | $52.80 |
Venues get the full amount your friend spends off the card. The service fee covers card issuing & messaging.
Card form placeholder — EngBot owns integration
On success webhook → Gift status=paid, enqueue SMS, show S9.
Gift paid → SMS on the way to
+1 ••• ••• 4567
gft_8K2m…PRD checklist: payment fail, under-21 decline
gft_8K2m