Stripe Connect Architecture
Managed (Express)
Managed (Express)
ZeroSettle creates a Stripe Express account for you during onboarding. Products, prices, customers, and subscriptions are all created and managed automatically on this account. You don’t interact with Stripe directly.
BYOS (Bring Your Own Stripe)
BYOS (Bring Your Own Stripe)
You connect your existing Stripe standard account via OAuth. ZeroSettle creates payment intents, subscriptions, and customers on your connected account using your mapped products and prices from the Stripe Catalog. You retain full access to your Stripe dashboard.
Identifying ZeroSettle Activity in Stripe
If you’re on BYOS mode and have your own Stripe integration alongside ZeroSettle, you’ll see activity from both sources in your Stripe dashboard. To distinguish ZeroSettle-originated resources from your own, check theapplication field.
Every Stripe object (charge, payment intent, subscription, etc.) created through a Connect platform includes an application field containing the platform’s account ID. For ZeroSettle:
| Environment | Application ID |
|---|---|
| Sandbox | ca_TpYOhCrZKO049uV06eUoa2yQpzsfLHrS |
| Live | ca_TpYO58I3F1igfVm1SmnGMmBReAvEdsPM |
Filtering Webhooks by Origin
If you have your own Stripe webhook endpoint, you can filter events to determine whether they were created by ZeroSettle or by your own integration:Checking in the Stripe Dashboard
You can also identify ZeroSettle-created objects visually in the Stripe dashboard. When viewing a payment, subscription, or customer, look for the “Connected to” or “Platform” label indicating it was created via ZeroSettle’s Connect integration.Webhook Routing for BYOS
When you connect your Stripe account to ZeroSettle via OAuth, Stripe automatically routes Connect webhook events to ZeroSettle’s platform endpoint. This is how ZeroSettle receives payment lifecycle events and updates your Transactions and Entitlements. If you have an existing webhook endpoint for your own Stripe activity, use theapplication field filtering shown above to skip ZeroSettle-originated events. This lets both integrations coexist safely on the same Stripe account.
What’s Visible in Your Stripe Dashboard
In BYOS mode, all ZeroSettle-created resources appear in your Stripe dashboard:| Resource | What You’ll See |
|---|---|
| Customers | Created per unique purchaser. Email and metadata link back to the ZeroSettle user identity. |
| Payment Intents | One per checkout. Includes product metadata and ZeroSettle transaction ID. |
| Subscriptions | Created for recurring products. Managed by ZeroSettle for renewals, cancellations, and plan changes. |
| Invoices | Generated automatically by Stripe for subscription billing cycles. |
| Charges | The actual payment records tied to payment intents. |
Data Sync
ZeroSettle keeps your payment data in sync across multiple systems:| Sync Path | How It Works |
|---|---|
| Stripe → ZeroSettle | Real-time via Stripe Connect webhooks. Payment events are processed into Transactions and Entitlements within seconds. |
| ZeroSettle → SDK | The SDK polls for transaction completion after checkout and updates the local entitlement cache. Delegate callbacks fire when entitlements change. |
| Product mapping | BYOS mode uses the Stripe Catalog to map ZeroSettle products to your Stripe products and prices. |
| Customer linking | Pass stripeCustomerId when creating a payment intent or checkout session to attach purchases to an existing Stripe customer. |
| App Store → ZeroSettle | StoreKit transaction sync and App Store Server Notifications keep App Store purchases in sync alongside web checkout purchases. |
ZeroSettle is the source of truth for entitlement state. If you need to verify a user’s access on your backend, query the Entitlements API rather than checking Stripe directly.

