Skip to content

E4-F7: Payment Processing (Stripe)

Epic: E4: Ticket Purchase Flow

Size: M (Medium)

Problem / Outcome

Process card payments via Stripe.

Scope

In-Scope:

  • Create payment intent
  • Process payment
  • Handle webhooks (success, failure)
  • Update order status

Out-of-Scope:

  • Alternative payment methods

Acceptance Criteria

  • AC1: Given valid card, when payment submitted, then Stripe charges and returns success
  • AC2: Given payment failure, when webhook received, then order remains pending for retry
  • AC3: Payment confirmation webhook updates order to COMPLETED

Data Model Impact

Order table:
- payment_status (ENUM: pending, processing, completed, failed)
- stripe_payment_intent_id (VARCHAR)

Payment table:
- id (UUID, PK)
- order_id (UUID, FK)
- stripe_payment_id (VARCHAR)
- amount (DECIMAL)
- currency (VARCHAR)
- status (ENUM: pending, succeeded, failed)
- created_at (TIMESTAMP)

Permissions/Roles

  • Authenticated user

How to Verify

npm test -- --grep "stripe payment"

Expected: Payment flow completes, webhooks processed.

Dependencies

Implementation Tasks

See E4: Ticket Purchase Tasks

Doc References


Last Updated: January 2026