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 a confirmation email in their preferred language (English, Spanish, Arabic, or Portuguese).
- In-App: Notification appears in PropPilot
- Chatwoot: Message sent to customer chat (if enabled)
The language used in the email is set by the contact's preferred language in their profile. If no preference is set, English is used by default.
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