Integrations
Connect Ecclesly with external services to accept online donations, sync data from other church management platforms, and link your bank accounts for seamless reconciliation.
Available Integrations
Stripe Integration
Accept credit card, debit card, and ACH donations online through Stripe. Donations are automatically synced into Ecclesly and posted to your general ledger.
What Stripe Enables
- Accept online donations via credit/debit cards
- Support for ACH bank transfers
- Automatic sync of donations into Ecclesly
- Fund allocation for designated giving
- Donor receipts and confirmation emails
- Refund handling and tracking
Connecting Stripe
- Navigate to Settings → Integrations
- Click Connect Stripe
- You'll be redirected to Stripe to authorize the connection
- Log in to your Stripe account (or create one)
- Authorize Ecclesly to access your Stripe account
- Configure fund mappings to map Stripe products to Ecclesly funds
Fund Mappings
Map your Stripe donation products or metadata to Ecclesly funds so donations are automatically categorized correctly:
- Set a default fund for unmapped donations
- Map specific Stripe products to specific funds (e.g., "Building Fund", "Missions")
- Multi-fund donations are split automatically based on designations
How Donation Sync Works
Ecclesly uses three complementary methods to ensure every Stripe donation makes it into your records:
| Method | Trigger | Purpose |
|---|---|---|
| Webhook | Automatic (Stripe pushes instantly) | Creates donation record and stores Stripe fee within seconds of payment |
| Transaction Sync | Manual or scheduled | Imports charges missed by the webhook; backfills fee data on existing records |
| Payout Sync | Manual | Recovers ACH donations that settled after the last transaction sync |
The webhook is your primary import path — it fires automatically when a donor completes a payment and creates the donation record immediately. The transaction sync is the safety net; if the webhook was missed (server downtime, delivery failure), the sync catches it on the next run without creating duplicates. The payout sync handles the edge case of ACH bank transfers, which take 3–4 business days to settle and are skipped by both the webhook and transaction sync until they clear.
For a full walkthrough of ACH Auto-import, see the How Donation Sync Works section of the Online Giving documentation.
Test Mode Available
Use Stripe's test mode to verify your integration before going live. Test donations won't affect your real accounting data.
Stripe Clearing & Fee Accounting
Ecclesly fully automates the accounting for Stripe payouts—including processing fees. You never need to manually calculate or record Stripe's fees. Here's how it works:
| Event | Journal Entry Created | Accounts |
|---|---|---|
| Donation received | Donation journal entry (auto or manual post) | Dr Stripe Clearing 1050 (gross) / Cr Contribution Revenue (gross) |
| Stripe payout cleared | Clearing journal entry (automatic) | Dr Cash 1010 (net) + Dr Giving Platform Fees 5485 (fee) / Cr Stripe Clearing 1050 (gross) |
What the accounts mean
- Stripe Clearing (1050) — A temporary holding account. It holds the gross donation amount from the moment it's recorded until the Stripe payout hits your bank. Once all payouts for a period are cleared, this account nets to zero.
- Cash / Checking (1010) — Your actual bank account. Debited for the net amount Stripe deposits after fees.
- Giving Platform Fees (5485) — An expense account that accumulates all Stripe processing fees. This gives you a clear, auditable record of what you paid in fees each period.
How payouts are cleared
Sync Payouts imports payout records only — it does not create the clearing journal entry. The clearing JE is created separately, in one of three ways:
| Mode | Trigger | User action required? |
|---|---|---|
| Smart (auto-clear) | Plaid bank deposit matches the Stripe payout with high confidence | None — fully automatic |
| Assisted | System suggests the match in Bank Feeds | User clicks Confirm |
| Manual | User opens the payout in the Payouts list | User clicks Manual Clear |
In all three cases, the result is the same: account 1050 returns to zero, account 5485 grows by the fee amount, and your cash account reflects the actual deposit. The difference is only in what triggers it.
Fully Automated
You never need to manually calculate Stripe fees or create fee journal entries. Ecclesly reads the exact fee amount from each payout and records it to account 5485 automatically. Your books stay accurate and your period close stays clean.
Planning Center Integration
If your church uses Planning Center Giving for online donations, you can sync those donations directly into Ecclesly for unified financial reporting and accounting.
What Planning Center Enables
- Import donations from Planning Center Giving
- Sync donor information and giving history
- Map Planning Center funds to Ecclesly funds
- Multi-fund (designated) donation support
- Unified giving statements across all donation sources
Connecting Planning Center
- Navigate to Settings → Integrations
- Click Connect Planning Center
- You'll be redirected to Planning Center to authorize access
- Log in with your Planning Center admin credentials
- Grant Ecclesly permission to access your Giving data
- Return to Ecclesly to configure fund mappings
Fund Mappings
After connecting, you'll need to map your Planning Center funds to Ecclesly funds:
- Click Configure Fund Mappings on the Planning Center integration card
- For each Planning Center fund, select the corresponding Ecclesly fund
- Set a default fund for any unmapped Planning Center funds
- Click Save Mappings
Syncing Donations
Once connected and mapped, click Sync Now to import donations. The sync imports new donations since your last sync. Donations are created in Ecclesly and matched to existing members when possible.
One-Way Sync
Planning Center sync is one-way (import only). Changes made in Ecclesly are not pushed back to Planning Center.
QuickBooks Online Integration
Export your financial data from Ecclesly to QuickBooks Online for seamless accounting integration. Keep your church's books synchronized without manual double-entry.
Bring Your Own Keys (BYOK)
For security and compliance, each organization creates their own QuickBooks Developer App. This gives you full control over your integration and credentials.
What QuickBooks Enables
- Export donations as Sales Receipts in QuickBooks
- Export expenses as Bills in QuickBooks
- Export journal entries for custom accounting entries
- Map Ecclesly funds to QuickBooks income accounts
- Automatic customer/vendor creation in QuickBooks
- Duplicate prevention—records are only exported once
Step 1: Create a QuickBooks Developer App
First, you need to create a QuickBooks Developer App to get your API credentials:
- Go to the Intuit Developer Portal and sign in or create an account
- Click Create an app and select QuickBooks Online and Payments
- Give your app a name (e.g., "My Church - Ecclesly Integration")
- Select the scopes: Accounting (required for exports)
- Under Redirect URIs, add your Ecclesly callback URL:https://app.ecclesly.com/api/integrations/quickbooks/callback
- Save your app and copy your Client ID and Client Secret
Sandbox vs Production
Intuit provides separate credentials for sandbox (testing) and production environments. Start with sandbox to test your integration, then switch to production credentials when ready to go live.
Step 2: Connect QuickBooks in Ecclesly
- Navigate to Settings → Integrations
- Click Connect QuickBooks
- Enter your Client ID and Client Secret from the Intuit Developer Portal
- If testing, check the Use Sandbox environment option
- Click Save Credentials
- Click Connect with QuickBooks
- You'll be redirected to Intuit to authorize the connection
- Log in with your QuickBooks Online credentials and select the company to connect
- Return to Ecclesly to configure account mappings
Account Mappings
Before exporting, configure how Ecclesly data maps to QuickBooks accounts:
| Mapping Type | Description |
|---|---|
| Fund Mappings | Map each Ecclesly fund to a QuickBooks income account. When donations are exported, they're categorized to the correct QB account based on the fund. |
| Deposit Account | Select which QuickBooks bank account donations should be deposited into. |
To configure mappings, click Map Accounts on the QuickBooks integration card. For each Ecclesly fund, select the corresponding QuickBooks income account from the dropdown.
Sync Settings
Control what data types are included when you export to QuickBooks:
- Donations → Exported as Sales Receipts with donor as customer
- Expenses → Exported as Bills with vendor information
- Journal Entries → Exported as QuickBooks Journal Entries
Running an Export
- Click Export to QuickBooks on the integration card
- Select which data types to export (Donations, Expenses, Journal Entries)
- Optionally set a date range to limit the export
- Click Start Export
- Review the results showing counts of exported, skipped, and errored records
How Records Are Exported
| Ecclesly Record | QuickBooks Document | Details |
|---|---|---|
| Donation | Sales Receipt | Donor created as Customer; fund mapped to income account |
| Expense | Bill | Vendor created in QB; expense account mapped |
| Journal Entry | Journal Entry | Debit/credit lines with mapped accounts |
Duplicate Prevention
Ecclesly tracks which records have been exported to prevent duplicates. If you run an export multiple times, records that were previously exported will be skipped. The export summary shows how many records were skipped for this reason.
One-Way Export
QuickBooks integration is one-way (export only). Changes made in QuickBooks are not synced back to Ecclesly. Edit records in Ecclesly first, then re-export if needed.
Sandbox Testing
QuickBooks provides a sandbox environment for testing. Connect to a sandbox company first to verify your account mappings before exporting to your production QuickBooks account.
Plaid Integration
Bring Your Own Keys (BYOK)
Ecclesly uses a BYOK model for Plaid integration. Each campus provides their own Plaid API credentials, giving you full control over your bank data and access. This approach reduces liability and allows different campuses to use different Plaid accounts.
Connect your church's bank accounts via Plaid for automatic transaction import and streamlined bank reconciliation.
What Plaid Enables
- Securely link checking, savings, and credit card accounts
- Automatic daily transaction import
- Real-time balance information
- Simplified bank reconciliation workflow
- Transaction matching and categorization rules
Step 1: Create a Plaid Developer App
Before connecting bank accounts in Ecclesly, you need to create your own Plaid developer application:
- Go to dashboard.plaid.com/signup and create a developer account
- Once logged in, go to Team Settings → Keys
- Copy your Client ID (a long alphanumeric string)
- Copy your Secret for your desired environment:
- Sandbox – For testing with sample bank data
- Development – For testing with real banks (limited requests)
- Production – For live use (requires Plaid approval)
- Keep these credentials secure – you'll enter them in Ecclesly
Production Access Requires Approval
To use Plaid in production with real bank accounts, you'll need to apply for production access through the Plaid Dashboard. Start with Sandbox for testing.
Step 2: Configure Plaid in Ecclesly
Add your Plaid credentials for each campus:
- Navigate to Settings → Campuses
- Click the Connect Plaid button for your campus
- Enter your Client ID from the Plaid Dashboard
- Enter your Secret from the Plaid Dashboard
- Select your environment (Sandbox, Development, or Production)
- Click Save Configuration
Step 3: Connect Bank Accounts
Once your campus has Plaid credentials configured:
- Navigate to Accounting → Banking
- Click Link Bank Account
- Search for your bank in the Plaid directory
- Log in with your bank credentials (handled securely by Plaid)
- Select which accounts to connect
- Each account appears as a card on your Banking dashboard
Security
Plaid is a trusted financial data platform used by thousands of companies. Your bank login credentials are never stored by Ecclesly—they're handled securely by Plaid. Ecclesly only receives read-only access to transaction data. With BYOK, your Plaid API credentials are stored encrypted in your tenant's campus settings and are never exposed to other tenants.
For Detailed Banking Documentation
See the Banking Integration section in the Financial Management docs for detailed information on transaction matching, reconciliation, and matching rules.
Data Security
Ecclesly takes the security of your integration credentials seriously. All sensitive data is protected using industry-standard encryption.
Credential Encryption
All integration credentials are encrypted at rest using AES-256-GCM authenticated encryption:
- Stripe – Secret keys are encrypted before storage
- Plaid – Client IDs and secrets are encrypted per-campus
- QuickBooks – Client credentials, access tokens, and refresh tokens are all encrypted
- Planning Center – OAuth tokens are encrypted
Encryption at Rest
Your API keys and tokens are never stored in plaintext. Each value is encrypted with a unique initialization vector (IV) and includes authentication tags to detect tampering. The encryption key is stored separately from the database.
BYOK (Bring Your Own Keys)
For Plaid and QuickBooks integrations, Ecclesly uses a BYOK model where each organization provides their own API credentials. This approach offers several benefits:
- Isolation – Your credentials are separate from other organizations
- Control – You can revoke access at any time from the provider's dashboard
- Audit Trail – All API calls are logged under your own developer account
- Per-Campus Configuration – Different campuses can use different credentials
Environment Variables
For self-hosted deployments, ensure the ENCRYPTION_KEY environment variable is set to a strong 256-bit (32-byte) key encoded in base64. This key is used for all credential encryption operations.
Key Management
Never commit your encryption key to source control. Store it securely in your deployment environment's secrets manager. If you rotate the key, existing encrypted credentials will need to be re-entered.
Managing Integrations
All integrations can be managed from Settings → Integrations.
Integration Status
| Status | Meaning |
|---|---|
| Connected | Integration is active and working |
| Needs Attention | Re-authorization required or configuration needed |
| Not Connected | Integration available but not set up |
Disconnecting an Integration
To disconnect an integration:
- Go to Settings → Integrations
- Click the integration you want to disconnect
- Click Disconnect
- Confirm the disconnection
Disconnecting an integration stops future syncs but does not delete any data that was already imported into Ecclesly.