Stripe Payments
Connect your Stripe account to PropPilot to accept reservation fees and payments from customers through your AI agent.
Prerequisites
Before setting up Stripe:
- ✅ A Stripe account (create one at stripe.com)
- ✅ Admin or Owner role in PropPilot
- ✅ Business verification completed in Stripe (for live payments)
What You Can Do
With Stripe integration, you can:
- Accept reservation deposits and fees
- Create payment links for customers
- Track payment status in real-time
- View payment history and logs
- Issue refunds when needed
Connection Methods
PropPilot supports two ways to connect Stripe:
Option 1: OAuth Connect (Recommended)
Connect using Stripe's secure OAuth flow:
- Go to Integrations → Stripe tab
- Click Connect with Stripe
- Log in to your Stripe account
- Authorize PropPilot to access your account
- You're redirected back to PropPilot
Benefits:
- Most secure method
- Easy one-click setup
- Automatic credential management
- Supports Stripe Connect features
Option 2: API Key
For users who prefer manual configuration:
- Go to Integrations → Stripe tab
- Click Use API Key
- Enter your Stripe Secret Key
- Click Save
To find your API key:
- Log in to Stripe Dashboard
- Go to Developers → API keys
- Copy the Secret key (starts with
sk_)
- Test keys (start with
sk_test_): For testing, no real charges - Live keys (start with
sk_live_): For real payments
Use test keys during setup, then switch to live keys for production.
Connection Status
After connecting, you'll see:
| Status | Meaning |
|---|---|
| Connected | Stripe is active and ready |
| Test Mode | Using test keys (no real payments) |
| Live Mode | Using live keys (real payments) |
| Disconnected | Not connected |
| Error | Configuration issue |
Payment Templates
Create reusable payment templates for common scenarios:
Creating a Template
- Go to Integrations → Stripe tab
- Click Payment Templates section
- Click Create Template
- Fill in the details:
| Field | Description | Example |
|---|---|---|
| Name | Template identifier | "Reservation Deposit" |
| Amount | Payment amount | 1000 (in cents) or 10.00 |
| Currency | Currency code | USD, EUR, AED |
| Description | Shown to customer | "Deposit for Unit 501" |
Using Templates
When generating a payment link:
- Select a template
- Customize if needed
- Generate the link
- Share with customer
Generating Payment Links
From PropPilot
- Go to a contact's detail page
- Click Create Payment or Request Payment
- Select a template or enter custom amount
- Click Generate Link
- Copy and share the link with the customer
Through AI Agent
Your AI agent can generate payment links during conversations when:
- Customer confirms interest in a property
- Reservation fee is required
- Agent triggers payment workflow
Tracking Payments
Recent Payments
View recent payment activity in the Stripe integration tab:
| Column | Description |
|---|---|
| Date | When payment was made |
| Customer | Contact name/email |
| Amount | Payment amount |
| Status | Succeeded, Pending, Failed |
| Reference | Stripe payment ID |
Payment Statuses
| Status | Meaning |
|---|---|
| Succeeded | Payment completed |
| Pending | Awaiting processing |
| Failed | Payment declined |
| Refunded | Money returned |
| Partially Refunded | Partial refund issued |
Webhooks
PropPilot automatically receives Stripe webhooks for:
- Payment success notifications
- Payment failure alerts
- Refund confirmations
- Dispute notifications
You don't need to configure webhooks manually.
Notifications
When payments are processed:
- Email: Customer receives confirmation email
- In-App: Notification appears in PropPilot
- Chatwoot: Message sent to customer chat (if enabled)
See Payment Notifications for configuration.
Refunds
To issue a refund:
- Find the payment in Recent Payments
- Click on the payment row
- Click Refund
- Enter refund amount (full or partial)
- Confirm the refund
Refunds typically take 5-10 business days to appear in customer accounts.
Troubleshooting
Connection Failed
- Verify your Stripe account is active
- Check API key is correct (no extra spaces)
- Ensure you're using the right key type (test vs live)
- Try OAuth connection instead
Payments Not Processing
- Check Stripe Dashboard for errors
- Verify you're in the correct mode (test vs live)
- Ensure customer payment method is valid
- Review Stripe webhook logs
Webhooks Not Working
- PropPilot configures webhooks automatically
- Check Stripe Dashboard → Webhooks for delivery status
- Disconnect and reconnect Stripe to reset webhooks
Testing Payments
Use Stripe test cards to verify your setup:
| Card Number | Result |
|---|---|
4242 4242 4242 4242 | Successful payment |
4000 0000 0000 0002 | Declined |
4000 0000 0000 9995 | Insufficient funds |
Use any future expiry date and any 3-digit CVC.
Going Live
Before accepting real payments:
- ✅ Test thoroughly with test keys
- ✅ Complete Stripe business verification
- ✅ Switch to live API keys
- ✅ Verify webhook endpoints
- ✅ Process a small real payment as final test
Security
- All API keys are encrypted in PropPilot
- Stripe handles all sensitive card data
- PropPilot never sees full card numbers
- PCI compliance handled by Stripe
What's Next?
- Managing Contacts - View customer payments
- Billing - PropPilot subscription