Skip to content

Payment Setup

Accept payments for your appointments via Stripe (credit cards) or PayPal. You can connect one or both providers per calendar.

Stripe lets your customers pay with credit cards, debit cards, Apple Pay, and Google Pay.

  1. Go to Calendar Settings > Payment Integration
  2. Enable “Enable payment for appointments”
  3. In the Stripe section, click Connect with Stripe
  4. A new window opens with the Stripe authorization page
  5. Log in to your Stripe account (or create one)
  6. Authorize Resrvy to process payments on your behalf
  7. You’ll be redirected back to Resrvy
  8. The Stripe status changes to Connected with your Account ID displayed

Click Disconnect Stripe in the Payment Integration settings. This removes the connection but does not affect your Stripe account or existing transactions.

PayPal lets customers pay with their PayPal balance or linked payment methods.

You need API credentials from the PayPal Developer Dashboard:

  1. Log in to the PayPal Developer Dashboard
  2. Go to Apps & Credentials
  3. Select your app (or create one)
  4. Copy the Client ID and Client Secret
  1. Go to Calendar Settings > Payment Integration
  2. Enable “Enable payment for appointments”
  3. In the PayPal section, enter:
    • Client ID — From the PayPal Developer Dashboard
    • Client Secret — From the PayPal Developer Dashboard
  4. Select the environment:
    • Sandbox — For testing with fake payments
    • Live — For real payments
  5. Click Test & Connect PayPal
  6. The system validates your credentials with PayPal
  7. If valid, status changes to Connected with your Merchant ID

Your Client Secret is encrypted before storage and never stored in plain text.

Click Disconnect PayPal in the Payment Integration settings. This removes all stored credentials.

Once a payment provider is connected, you can set prices on your appointment types:

  1. Go to Calendar Settings > Appointment Types
  2. Edit an existing type or create a new one
  3. In the Payment Settings section:
    • Price — Enter the amount in your currency (leave empty for free)
    • Require payment at booking — When enabled, customers must pay immediately. They won’t see a “Book & Pay Later” option.
    • Payment method — Choose Stripe, PayPal, or Let customer choose

The payment provider badges at the top of the form show which providers are currently connected.

If you’ve pre-created products in your Stripe Dashboard, you can enter a Stripe Price ID (e.g., price_1234567890) to use that specific product instead of the price entered in the form.

  1. Customer selects an appointment type with a price
  2. Customer picks a date, time, and fills in their details
  3. Customer clicks Pay Now (shows the price, e.g., “Pay Now (€50.00)”)
  4. Customer is redirected to the Stripe or PayPal checkout page
  5. After successful payment, they see the Payment Successful confirmation page
  6. A confirmation email is sent with appointment details

If “Require payment at booking” is not enabled:

  1. Customer sees both Pay Now and Book & Pay Later buttons
  2. If they choose Book & Pay Later, the appointment is created with “pending payment” status
  3. They receive an email with a link to complete payment later
  4. The appointment appears in your dashboard as “Pending Payment”
  5. You can send payment reminders from the dashboard

If a customer starts payment but cancels (closes the checkout page):

  1. They see a Payment Pending page
  2. Options: Complete Payment (resume checkout) or Return to Booking (start over)
  3. The appointment remains in “pending payment” status until paid or cleaned up

”No payment provider connected” warning

Section titled “”No payment provider connected” warning”

This appears on the appointment type form when neither Stripe nor PayPal is connected. Connect a provider in Calendar Settings > Payment Integration first.

  • Ensure you have a Stripe account (create one at stripe.com)
  • Check that pop-ups are not blocked (the OAuth window may be blocked)
  • Try again — the authorization window must complete the full flow
  • Verify your Client ID and Client Secret are correct
  • Ensure you selected the right environment (Sandbox for testing, Live for production)
  • Check that your PayPal app has the correct permissions enabled