Skip to content
N1
Integrations · payments · booking

Online payment intake for a booking platform

Client: NDA Category: Integrations Stack: PHP (custom backend), payment gateway, webhook, queues Timeline: 2–3 weeks
Problem

Booking without prepayment turned into a problem: some clients simply did not show up, and support had to reconcile payments for every order by hand.

Constraints

Both partial and full payments and refunds on cancellation had to be handled without losing payment status on repeated or delayed gateway webhook notifications.

What I did
  • Creating a payment when a booking is placed, passing along the amount and purpose
  • Receiving payment webhook notifications with signature verification
  • Idempotent handling of repeated notifications — booking status never duplicates or "flips back"
  • Refunds on booking cancellation with status sync
  • Booking-to-payment reconciliation with no manual support work
Architecture
Booking Payment gateway Webhook receiver Idempotent handler Booking status
Result

Booking payment became transparent: the client pays at checkout, the booking status updates automatically, and support no longer reconciles payments by hand.

What can be reused
Idempotent payment-gateway webhook handler Partial-payment and refund logic Booking-to-payment reconciliation with no manual work