Booking.com System Design Interview: Fraudulent Card Blocking for Pay-Later Bookings

Based on questions reported for Booking.com interviews

The interviewer opens

Hi, and thanks for joining. Welcome to your interview for the software engineer role at Booking.com. We'll design a system together, and you can sketch on the whiteboard on the right as you talk. If you need to step out or take a break, the Pause button at the top right will pause the interview at any time.

The problem is in the Problem tab: it's about blocking fraudulent cards on pay-later bookings, which matters for a travel platform where guests often book months before they pay. Please read through the requirements and ask me anything you'd like clarified before you start drawing.

The problem

Guests can book now and pay later, on or before check-in. A third-party API reports newly fraudulent cards. Design a service that finds existing bookings made with those cards and blocks them before the charge goes through.

Must do

  • Ingest newly reported fraudulent cards from the third-party fraud API
  • Find existing unpaid pay-later bookings made with a reported card
  • Block matched bookings so their scheduled charge never runs
  • Keep an audit trail of why and when each booking was blocked

Must hold

  • A reported card's bookings must be blocked before any of them is charged
  • Legitimate bookings must keep being charged on schedule