Payments

This page explains how to accept payments as part of your booking process. At the moment we support integrations that use Stripe Elementsarrow-up-right and Stripe Checkoutarrow-up-right.

Stripe Elements

The following sections explain how to handle various payment-related booking scenarios with Stripe Elements.

No payment or credit card required

  • Client: Calls create booking

  • Server: Returns Success status and booking is made

Payment required without 3DS2

  • Client: Calls create booking

  • Server: Returns PaymentRequired status

  • Client: Initialises Stripe using StripePublishableKey and StripeAccountId supplied in returned object

  • Client: Uses Stripe to generate a payment method

  • Client: Calls create booking, supplying PaymentMethodId returned from Stripe

  • Server: Returns Success status and booking is made

Payment required with 3DS2

  • Client: Calls create booking

  • Server: Returns PaymentRequired status

  • Client: Initialises Stripe using StripePublishableKey and StripeAccountId supplied in returned object

  • Client: Uses Stripe to generate a payment method

  • Client: Calls create booking, supplying PaymentMethodId returned from Stripe

  • Server: Returns StripeAuthenticationRequired status and PaymentIntentSecret

  • Client: Uses returned PaymentIntentSecret with Stripe to generate a payment intent

  • Client: Calls create booking, supplying PaymentMethodId and PaymentIntentId returned from Stripe

  • Server: Returns Success status and booking is made

Credit card required with and without 3DS2

  • Client: Calls create booking

  • Server: Returns CreditCardRequired status and SetupIntentClientSecret

  • Client: Initialises Stripe using StripePublishableKey and StripeAccountId supplied in returned object

  • Client: Uses Stripe to generate a PaymentMethodId

  • Client: Calls create booking, supplying PaymentMethodId returned from Stripe

  • Server: Returns Success status and booking is made

Stripe Checkout

The following sections explain how to handle various payment-related booking scenarios with Stripe Checkout.

Payment / Credit Card required (with / without 3DS2)

  • Client: Calls create booking supplying both a StripeCheckoutSuccessUrl and a StripeCheckoutCancelUrl

  • Server: Returns either PaymentRequired or CreditCardRequired status

  • Client: Initialises Stripe using StripePublishableKey and StripeAccountId supplied in returned object

  • Client: Redirect to Stripe checkout to capture payment or card details, using StripeCheckoutSessionId supplied in returned object. If 3DS2 is required it is performed automatically by Stripe on this page

  • Client: Calls create booking supplying the StripeCheckoutSessionId. This is appended to the successUrl via a query parameter

  • Server: Returns Success status and booking is made

Further details on the SCA regulations and Stripe's implementation can be found on the Stripe website.

Last updated

Was this helpful?