customers, subscriptions, and invoices) using Sequin’s Record Mutation API. Sequin simultaneously applies changes to Stripe and the event stream. Giving you a unified interface to Stripe.
Here is how our Stripe sync works:
Sync process
Authentication
You can authenticate with Stripe in the Sequin Console using Stripe Connect (OAuth) or API keys:
Backfill
When you first connect to Stripe, Sequin will extract all the data from the collections you want to sync. This is called backfilling. To backfill Stripe, Sequin will paginate through each collection starting with the oldest records and working forwards in time. This ensures that you get all the data from Stripe in to your stream. For larger Stripe accounts, this process can take a few hours.Real-time
Once the backfill is complete, Sequin polls Stripe’s events endpoint twice per second second to detect changes. Sequin’s Stripe integration is architected around polling to guarantee consistency, removing the risk of missing changes due to webhook issues. When a change is detected, Sequin will fetch the new data and write it to your stream. With the exception of bulk operations, Sequin will write changes to your stream within 1-2 seconds of the change happening in Stripe.Pacing
Stripe has both a rate limit and a concurrency limit. Sequin paces requests to Stripe to avoid hitting these limits. During an initial backfill, Sequin will make at most 50 requests to Stripe per second to rapidly extract all the data from Stripe efficiently. Once the backfill is complete, Sequin will poll Stripe’s events endpoint twice per second to detect changes. Pacing can be configured in your sync.Schema
Collections
Sequin syncs the following collections from Stripe:- Balance Transaction
- Bank Account
- Billing Portal Session
- Bitcoin Receiver
- Bitcoin Transaction
- Capability
- Charge
- Checkout Session
- Connect Collection Transfer
- Coupon
- Credit Note
- Credit Note Line Item
- Customer
- Customer Balance Transaction
- Discount
- Dispute
- Event
- Fee Refund
- Invoice
- Invoice Item
- Issuing Authorization
- Issuing Card
- Issuing Cardholder
- Issuing Dispute
- Issuing Transaction
- Item
- Line Item
- Mandate
- Order
- Order Return
- Payment Intent
- Payment Method
- Payout
- Person
- Plan
- Platform Tax Fee
- Price
- Product
- Promotion Code
- Recipient
- Refund
- Reserve Transaction
- Review
- Setup Attempt
- Setup Intent
- Source
- Source Mandate Notification
- Source Transaction
- Subscription
- Subscription Item
- Subscription Schedule
- Tax Deducted At Source
- Tax Id
- Three D Secure
- Token
- Transfer
- Transfer Reversal
- Upcoming Customer Invoice
- Upcoming Line Item
- Upcoming Subscription Invoice
- Usage Record
- Usage Record Summary
Fields
Sequin syncs all fields from each collection. The collections are structured as per the Stripe API:Amounts
Stripe stores currency amounts in the smallest unit. As an example, $10.00 USD will be stored as an integer value of1000 in your stream objects.
Currency
Currency types are stored as ISO 4217 Currency Codes in lower case.Streams
Your Stripe sync will now populate data into the record and event streams. Here’s how Sequin structures Stripe objects in the stream:Record stream
The record stream contains the current state of an object in the Stipe API. For instance, you’ll see the current state of acustomer as it exists in Stripe. Below is the shape of a record in the Stripe customer collection:
Event stream
The event stream contains the changes to an object in the Stripe API. As an example, if thename field of a customer object is updated, the event stream will contain the following event:
Consumers
You can build directly on Sequin’s stream using the stream APIs. Or forward data to your database, Kafka or any other system you use to store and process data. Stripe syncs work with all the consumers Sequin supports.Mutations
When you need tocreate, update, or delete a Stripe object, you can use Sequin’s Record Mutation API. For instance, if you want to create a customer in Stripe, you’ll use the create mutation:
200 OK.

