PracticeHub Integration
Sync patients, invoices, and payments between PracticeHub and RevKeen
Connect your PracticeHub practice management system with RevKeen to automatically sync patient data, invoices, and payments. This integration enables seamless payment collection for healthcare providers, wellness clinics, and fitness studios.
Overview
The PracticeHub integration creates a bi-directional sync between your practice management system and RevKeen's payment platform:
- Inbound: Patients, invoices, and packages sync from PracticeHub β RevKeen
- Outbound: Completed payments push from RevKeen β PracticeHub
This allows your patients to pay invoices online while keeping your PracticeHub records automatically updated.
Features
Patient Sync
Invoice Sync
Automatic Payment Push
Package Sync
Prerequisites
Before connecting PracticeHub, you'll need:
- A PracticeHub account with API access enabled
- Your PracticeHub API Key
- Your PracticeHub Base URL (e.g.,
https://yourclinic.practicehub.io)
Setup Instructions
Step 1: Get Your API Credentials
- Log in to your PracticeHub admin panel
- Navigate to Settings β API Access
- Generate or copy your API Key
- Note your Base URL (the URL you use to access PracticeHub)
Step 2: Connect in RevKeen
- Go to your RevKeen Dashboard
- Navigate to Settings β Integrations
- Find PracticeHub and click Connect
- Enter your credentials:
| Field | Description | Example |
|---|---|---|
| Base URL | Your PracticeHub instance URL | https://yourclinic.practicehub.io |
| API Key | Your PracticeHub API key | pk_live_xxxxx |
| App Name | Optional identifier | RevKeen |
| Sync Enabled | Enable automatic syncing | true |
5. Click Save & Validate
Step 3: Configure Sync Settings
After connecting, you can configure what data syncs:
- Patients β Customers: Import patient records (email, name onlyβno PHI)
- Invoices: Sync unpaid invoices for payment collection
- Packages β Products: Sync service packages as products
- Payment Methods: Map PracticeHub payment types to RevKeen
Data Sync Details
What Syncs
| PracticeHub | RevKeen | Direction | Sync Trigger |
|---|---|---|---|
| Patients | Customers | PracticeHub β RevKeen | Updated timestamp |
| Invoices (unpaid) | Invoices | PracticeHub β RevKeen | Updated timestamp |
| Packages | Products | PracticeHub β RevKeen | Updated timestamp |
| Payment Methods | Payment Method Mappings | PracticeHub β RevKeen | Initial sync |
| β | Payments | RevKeen β PracticeHub | Payment completion |
Patient β Customer Mapping
When a patient syncs from PracticeHub:
| PracticeHub Field | RevKeen Field | Notes |
|---|---|---|
id | external_id | Used for matching |
email | email | Required β patients without email are skipped |
first_name | first_name | Direct mapping |
last_name | last_name | Direct mapping |
phone | phone | Direct mapping |
patient_number | customer_number | Used for display |
What Does NOT Sync (PHI Compliance)
The following fields are blocked and never imported:
- Date of birth
- Medical history
- Diagnosis/symptoms
- Treatment plans
- Clinical notes
- Staff notes
- Appointment details (beyond basic scheduling)
- Social Security numbers
- Insurance information
Only billing-safe fields are synced:
- β Email address
- β First name, Last name
- β Patient/customer number
- β Invoice amounts and due dates
- β Product/service names and prices
How Payment Push Works
When a customer pays an invoice through RevKeen, the payment is automatically recorded in PracticeHub.
Payment Flow
What Gets Pushed
When a payment is completed, RevKeen sends the following to PracticeHub:
| Field | Description | Example |
|---|---|---|
amount | Payment amount in cents | 5000 (= $50.00) |
patient_id | PracticeHub patient ID | 12345 |
payment_type_id | Mapped payment method | 7 (Card) |
service | Source system identifier | revkeen |
service_id | RevKeen transaction ID | nmi_txn_abc123 |
note | Payment details | Card β NMI Gateway | Last4: 4242 |
Sync Architecture
Incremental Sync Strategy
RevKeen tracks the last sync timestamp and only fetches records updated since then:
GET /api/patients?updated=gte:2024-11-30T10:00:00Z
GET /api/invoices?updated=gte:2024-11-30T10:00:00Z&status=in:sent,partial,overdue
GET /api/packages?updated=gte:2024-11-30T10:00:00ZThis ensures:
- Minimal API calls β Only changed records are fetched
- Fast sync β Updates complete in seconds, not minutes
- Respect rate limits β Won't overwhelm PracticeHub API
Polling Schedule
| Resource | Frequency | Notes |
|---|---|---|
| Patients | 1-30 seconds | More frequent when changes detected |
| Invoices | 1-30 seconds | Focuses on unpaid invoices only |
| Packages | 10-30 seconds | Less frequent (packages rarely change) |
Troubleshooting
Connection Failed
- Verify your API key is correct (no extra spaces)
- Check if the API key has expired
- Ensure API access is enabled in PracticeHub
- Use the full URL including
https:// - Don't include trailing slashes
- Example:
https://yourclinic.practicehub.io
- Check if PracticeHub is accessible
- Verify your firewall allows outbound connections
- Try again in a few minutes
Sync Issues
- Check if patients have email addresses (required)
- Verify sync is enabled in settings
- Check the Sync Status in your dashboard
- Verify the customer is linked to a PracticeHub patient
- Check payment method mappings are configured
- Review error logs in Settings β Integrations
- Only unpaid invoices sync to RevKeen
- Paid invoices are skipped (already settled)
- Check the invoice status in PracticeHub
Payment Method Mapping
RevKeen automatically maps payment methods between systems:
| RevKeen Type | PracticeHub Match |
|---|---|
card | "Card", "Credit Card", "Debit Card" |
bank_transfer | "Bank Transfer", "ACH", "EFT" |
cash | "Cash" |
cheque | "Cheque", "Check" |
Webhook Events
RevKeen emits webhook events for PracticeHub sync activity:
| Event | Description |
|---|---|
practicehub.customer.synced | Customer created/updated from patient |
practicehub.invoice.synced | Invoice created/updated from PracticeHub |
practicehub.payment.pushed | Payment successfully pushed to PracticeHub |
practicehub.payment.failed | Payment push failed (will retry) |
practicehub.sync.error | Sync encountered an error |
Error Handling & Retries
RevKeen automatically handles common errors:
| Error Type | Action | Max Retries |
|---|---|---|
| Rate limit (429) | Exponential backoff | 5 |
| Server error (5xx) | Retry with delay | 3 |
| Network timeout | Retry | 3 |
| Authentication error (401) | Disable sync, notify admin | 0 |
| Not found (404) | Skip record, log warning | 0 |
Frequently Asked Questions
Support
Need help with your PracticeHub integration?
- Email: support@revkeen.com
- Documentation: docs.revkeen.com
- Status: status.revkeen.com
- Sales: sales@revkeen.com (for pricing inquiries)