payments

Finish a paid booking whose supplier call never landed

Runs payment.completePendingBooking. Call it from the booking screen when a hotel booking reads pending_payment: on the payment-first flow the row is only written after the card is charged, so that status is not a customer who failed to pay — it is a customer whose money we took and whose supplier call died in flight. Charge-free by construction: it refuses unless a completed payment transaction already exists for the booking, and it never calls Stripe. Never send one of these bookings to POST /v1/payments/hotel-checkout-intent instead — that charges the card a second time for one stay. Public by design, matching the rest of the guest-capable checkout (critical decision #4): the CUID is the access key for guest rows, and a booking owned by an account must match the caller. Idempotent — a booking already confirmed answers 200 with alreadyDone: true, and the underlying supplier book is idempotent on the supplier reservation id, so a double tap cannot double-book. A supplier that still refuses is NOT an error here: the response is 200 with status: "pending_manual", ops are paged, and the charge stands — show the customer that their booking is being settled by hand rather than a failure. 400 means the booking is unpaid or in a status nobody is waiting on us to finish.

post/v1/payments/bookings/{bookingPublicId}/complete

Request

  • Base URL: https://api.getmyhotels.com
  • URL: https://api.getmyhotels.com/v1/payments/bookings/{bookingPublicId}/complete
  • Auth: none declared

Path parameters

bookingPublicIdstring required

Response

Success

unknown required

Changes

No recorded changes to this operation across all 1 revision of this API.