Prerequisites
- You must be an Owner or Admin to connect, disconnect, or change sync settings
- The Business you want to connect must already exist in ShingleAI (see Business profile)
- You need an existing Stripe account with permission to authorize OAuth connections
Connect Stripe
To connect a Business to Stripe:- Navigate to Settings > Integrations > Stripe (at
/{orgSlug}/settings/integrations/stripe) - Click Connect Stripe
- You’re redirected to Stripe’s authorization page — sign in if needed and approve the connection
- Stripe sends you back to the integration page with a success message
- Sets the sync mode to One-Way (Stripe → ShingleAI)
- Triggers an initial full inbound sync of customers and transactions
The first connection’s initial sync runs in the background. Larger Stripe accounts may take several minutes; the page shows the most recent full-sync timestamp when complete.
Sync modes
Stripe Connect supports three sync modes. You can switch between them at any time without disconnecting.| Mode | Direction | What syncs | When |
|---|---|---|---|
| Off | None | Nothing — connection stays linked but no data moves | N/A |
| One-Way | Stripe → ShingleAI | Customers, charges, invoices from Stripe | Real-time via webhooks; full sync on enable from Off (if >7 days stale) or via Sync Now |
| Two-Way | Both directions | Inbound from Stripe (as One-Way) plus outbound: customer name, email, and phone edits in ShingleAI push to Stripe | Inbound real-time; outbound triggered by edits in ShingleAI |
- On the Stripe integration page, find the Sync mode card
- Select the new mode
- Confirm in the dialog that explains what will happen
Switching to Two-Way does not bulk-push existing ShingleAI customers to Stripe. Only future edits sync outbound. Inbound sync from Stripe remains complete in both One-Way and Two-Way.
Manual full sync
Use Sync Now on the integration page to re-run a full inbound sync without changing modes. This is useful after bulk changes in Stripe (e.g., importing customers there) or to recover from a long offline period. When sync mode was Off for more than 7 days and you re-enable it, ShingleAI runs a full inbound sync automatically to catch up.Customer mapping
ShingleAI tries to link Stripe customers to existing ShingleAI customers automatically by normalized email address during initial sync. The matching rules:| Result | Behavior |
|---|---|
| Exactly one ShingleAI customer matches | Auto-linked |
| Multiple ShingleAI customers share the email | Marked ambiguous — requires manual resolution |
| No ShingleAI customer matches | Left unlinked — a new customer is created on first transaction |
Manage mappings
Click Manage Customer Mapping on the Stripe integration page (or visit/{orgSlug}/settings/integrations/stripe/customer-mapping) to review and edit links.
The customer-mapping table shows each Stripe customer alongside its current link status. Filter by All, Unlinked, Ambiguous, or Linked to focus on what needs attention. For each row you can:
- Link — Open the customer picker, search ShingleAI customers by name or email, and link manually
- Unlink — Remove the existing link without deleting either customer
- Auto-link by email — Bulk action at the top of the page; runs the same email-matching rule against all unlinked and ambiguous customers visible on the current page and reports a summary
Pages of Stripe customers are pulled directly from Stripe’s API with cursor-based pagination. Run the auto-link bulk action page-by-page if you have a large backlog.
Sync errors
When inbound or outbound sync fails for a specific customer or transaction, ShingleAI records the error and surfaces it in a Sync errors card on the main integration page. Each error row shows:- The entity that failed
- The error message
- How many times it has been retried
- The timestamp of the last attempt
Disconnecting
To disconnect Stripe from a Business:- On the Stripe integration page, click Disconnect Stripe
- Confirm in the dialog
- Stops all future inbound and outbound sync
- Preserves all customers and transactions already imported into ShingleAI
- Leaves the Business in a clean state — you can connect a different Stripe account afterward
Connection revoked from Stripe
If you (or another Stripe admin) revoke ShingleAI’s access from the Stripe Dashboard directly, ShingleAI detects the revocation the next time the integration page loads and shows a banner explaining the connection is no longer valid. Click the Disconnect button in the banner to clean up the broken connection record, then reconnect when ready.Limitations
- One Business per Stripe account. Each Business connects to a single Stripe account; Stripe accounts cannot be shared across multiple Businesses
- Two-Way is forward-only. Switching to Two-Way pushes future ShingleAI edits to Stripe but does not back-fill historical edits
- Ambiguous matches require human review. Auto-link skips any Stripe customer whose email matches multiple ShingleAI customers
- Stripe rate limits. Initial sync respects Stripe’s per-account rate limits and throttles between pages, so very large accounts take longer than a single API page would suggest
Next steps
Customers
Work with synced customers in ShingleAI
Business profile
Configure the Business that owns the Stripe connection