Overview
This guide explains how to connect Stripe to Off The Couch in Purchases > Payment Settings so you can accept payments.
Requirements
Before starting, make sure you have:
- An active Stripe account
- Access to the Stripe Dashboard
- Access to the Payment Gateway settings in Offthecouch.io
Step 1: Locate Your Stripe API Keys
Stripe uses API keys to authorize Offthecouch.io to process payments on your behalf.
- Log in to the Stripe Dashboard
- Navigate to Developers > API keys
You will see two sets of keys:
Test Keys
Used for testing payments. No real money is charged.
- Publishable key (starts with
pk_test_) - Secret key (starts with
sk_test_)
Live Keys
Used for real customer payments.
- Publishable key (starts with
pk_live_) - Secret key (starts with
sk_live_)
Enter the keys into the matching fields in our platform:
- Publishable key > Publishable key field
- Secret key > Secret key field
Do not enter live keys until testing is complete.
Step 2: Create the Required Stripe Webhook
Webhooks allow Stripe to notify Off The Couch when a payment changes status. This is required for payments to update correctly.
Webhook Setup
- In Stripe, go to Developers > Webhooks
- Click Add endpoint
- Enter the following endpoint URL:
https://api.offthecouch.io/stripe-webhook- Under Events to listen to, select:
- payment_intent > Select all events
- Save the webhook
Step 3: Add the Webhook Secret
Stripe provides a signing secret for each webhook. This is used to verify that payment events are coming from Stripe.
- Click the webhook you just created
- Locate the Signing secret (starts with
whsec_) - Copy the value
- Paste it into the Webhook Secret field in Offthecouch.io
Step 4: Customer Management Settings
Enable the following option: Automatically create a customer in Stripe and link customers to payments
- Another toggle will appear, enable "Enable saved payment methods" to allow card storage.
With this feature toggled on, you will have access to the following:
- Saved card selection - When processing payments, staff can choose from a customer's previously saved credit cards instead of entering new card details every time.
- Default card auto-selection - The system automatically selects the customer's default card when they are selected for a booking or transaction, streamlining the checkout process.
- Save card option - When processing a payment with a new card, staff can opt to save the card for future use (when enabled in payment settings).
- Consistent experience - The stored payment methods feature works identically across: Bookings, Calendar, and Transaction page.
Step 5: Payment Description
The description appears in the Stripe Dashboard and on customer statements.
Example:
Booking for [Customer First Name] [Customer Last Name]
- Maximum length: 500 characters
- Dynamic variables are supported
Use a clear description so customers can recognize the charge.
Step 6: Test the Integration
Before enabling live payments:
- Enter Test API keys
- Complete a test payment using Stripe test card numbers
- Confirm the payment status updates correctly in Offthecouch.io
Once testing is successful, replace test keys with Live API keys.
Setup Checklist
- Stripe account created
- Test API keys added
- Webhook created
- Webhook secret added
- Customer auto-creation enabled
- Test payment completed successfully
- Live API keys added
User flows
Processing a payment with a saved card
- Select a customer for the booking/transaction
- If the customer has saved cards, a "Stored cards" dropdown appears next to payment options
- The customer's default card is automatically selected
- A card preview shows the selected card's brand, last 4 digits, and expiry
- Complete the payment - no need to enter card details
Saving a new card for future use
- Select a customer for the booking/transaction
- Choose "Use a new card" from the stored cards dropdown
- Enter the new card details in the Stripe form
- Toggle "Save this card for future payments"
- Complete the payment - the card is saved for future use
Reference
- Stripe API Keys: https://docs.stripe.com/keys
- Stripe Webhooks: https://docs.stripe.com/webhooks