Send gift — wireframe flow

Pour it Forward · Notion 2.3 · PRD §8.1 · low-fi · EngBot annotations in amber
TEMPORARY brand · pending trademark clearance · not final logo
EngBot notes: Mobile-first PWA (/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.

8.1 Send — happy path

Age gate → recipient → amount → tip buffer → venue → message → fee breakdown → pay → confirmation

S1 · Age gate (sender) PRD §8.1 step 1
9:41 · Safari
logo
Pour it Forward
working wordmark · TEMPORARY
Before you send

Alcohol / venue spend — both of you must be 21+.

I am 21 or older.
Required to continue.
I confirm the recipient is 21 or older.
You are asserting this for the gift.
Legal links
[ ] I agree to ToS · Privacy
Store acceptance timestamp + copy version.
Continue

Unchecked → block. No under-21 path.

Block progress if either box unchecked. Persist age_gate_sender_at + ToS version on continue.
S2 · Recipient phone PRD §8.1 step 2
9:41
Who’s this for?
2 / 8
Recipient mobile (US)
+1 (555) 123-4567
📇 Contacts progressive enhancement
Preview
SMS will go to +1 ••• ••• 4567

E.164 normalize server-side. Pilot: US numbers only.

Continue
Validate plausible US number. Contact picker optional where browser supports it.
S3 · Amount chips PRD §8.1 step 3
9:41
Tab credit
3 / 8
Drink / meal credit

What they can spend at the venue (face value).

$20
$40
$60
Custom
Custom amount
$ — ··

Min/max TBD (Steve OQ #4). Enforce client + server.

Selected face value: $40
Continue
Label clearly as spendable credit — not “Venmo cash.” Caps are open question.
S4 · Tip buffer PRD §8.1 step 4
9:41
Tip buffer
4 / 8
Add tip buffer?

Optional — goes on the same card so they can tip at the bar without going short.

15%
$6
20%
$8
Custom
$0
Face$40.00
Tip buffer$8.00

Card load$48.00

Tip buffer is part of load amount, not a separate venue payout.

Continue Skip — $0 tip
Promote tip buffer. Fee later calculated on total load (face+tip) unless Steve locks face-only.
S5 · Optional venue PRD §8.1 step 5
9:41
Preferred venue
5 / 8

Optional. Soft suggest only — open-loop card works at any Visa/MC contactless venue.

No preference
Any participating / card-accepting spot in [Pilot City]
Or pick one
img
The Copper Still
12 Main St · Cocktails
img
Harbor & Rye
88 Pier Ave · Dinner
Browse full list → Continue
If selected → SMS + claim show “Suggested: {Venue}”. Empty list still allows no-preference send.
S6 · Message PRD §8.1 step 6
9:41
Add a note
6 / 8
Optional message
Happy hour’s on me tonight 🍻
Shown on claim + SMS teaser0 / 160
Continue Skip
~160 char cap. Optional.
S7 · Fee breakdown PRD §8.1 step 7 — MUST before pay
9:41
Review & pay
7 / 8
To+1 ••• ••• 4567
VenueNo preference
NoteHappy hour’s…
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.

Pay $52.80
Explicit fee reveal before charge. Formula: clamp(round_half_up(load×0.10, 2), 4, 6). Track drop-off after this screen.
S8 · Checkout / pay PRD §8.1 step 8
9:41
Payment
8 / 8
Stripe Checkout / PaymentIntent
▭ ▭ ▭ ▭

Card form placeholder — EngBot owns integration

WIREFRAME ONLY · not live payment UI
Amount$52.80
Giftload $48 + fee $4.80
Pay now

On success webhook → Gift status=paid, enqueue SMS, show S9.

Do not implement payment here. Hosted Checkout preferred for pilot speed.
S9 · Confirmation PRD §8.1 step 9
9:41
Sent!

Gift paid → SMS on the way to
+1 ••• ••• 4567

Status
Gift IDgft_8K2m…
Load$48.00
Claim TTL7 days
Share reminder link View gift status Done
Status link for sender. Reminder = same claim URL. Claim TTL default 7d (confirm Steve).

Send — error stubs

PRD checklist: payment fail, under-21 decline

S-E1 · Payment failed
9:41
Payment didn’t go through
Card declined / network error. No gift created. No SMS sent.
Try again Edit amount / fee review Need help?
Idempotent retry. Do not double-charge.
S-E2 · Under-21 decline
9:41
21+
We can’t continue
Pour it Forward is for adults 21+. If you or the recipient are under 21, this gift can’t be sent.
Back
Hard block. No alternate path.
S-ST · Sender gift status stubs paid / claimed / active
9:41
Gift status
sender
To+1 ••• 4567
Load$48.00
IDgft_8K2m
State examples (stubs)
· waiting for claim
Claimed · Wallet add pending / done
Active · $32.40 remaining
Expired · refund processing
Refunded · $52.80 returned
Need help? → support
Minimal status for EngBot. Full expire/refund UX can deepen later.