Stripe Migration Guide
Upgrading to 6.0.0
Version 6.0.0 fixes a bug where the invoice_line_items and subscription_items incremental streams emitted only one record per Stripe event instead of correctly expanding nested line items. An event containing N line items previously produced 1 record; it now produces N records.
What changed
We changed how records are extracted from the API response for the invoice_line_items and subscription_items streams to ensure nested data is properly treated as individual records.
Example: invoice_line_items
Before (5.x): A single Stripe event with an invoice containing 3 line items produced 1 flattened record:
{
"id": "evt_1234",
"type": "invoice.updated",
"data": {
"object": {
"id": "in_abc",
"lines": {
"data": [
{"id": "il_1", "amount": 1000},
{"id": "il_2", "amount": 2000},
{"id": "il_3", "amount": 500}
]
}
}
}
}
This event emitted 1 record containing the top-level event fields. The nested line items inside data.object.lines.data were lost.
After (6.0.0): The same event now emits 3 records, 1 per line item:
{"id": "il_1", "amount": 1000, "invoice_id": "in_abc", "invoice_updated": 1712600000}
{"id": "il_2", "amount": 2000, "invoice_id": "in_abc", "invoice_updated": 1712600000}
{"id": "il_3", "amount": 500, "invoice_id": "in_abc", "invoice_updated": 1712600000}
The same change applies to subscription_items, which expands items from data.object.items.data.
Who is affected
Users syncing the invoice_line_items or subscription_items streams in incremental mode. Previously synced data for these streams may be incomplete due to the bug.
Migration steps
After upgrading, you can choose to either leave your syncs as-is or run a full refresh to recapture the correct values for impacted fields.
Option 1: Leave syncs alone. Future incremental syncs will emit records correctly. Historical data already in your destination will remain incomplete, but no action is required.
Option 2: Run a full refresh. A full refresh will recapture the correct values for all records in the impacted streams. If you choose this option, decide between:
- Full Refresh and Retain records: Keeps existing data in your destination and layers the refreshed data on top. This is the safer option for most users.
- Full Refresh and Clear: Replaces all existing data in the destination for these streams. Use caution: because the Stripe Events API only retains events for the last 30 days, clearing will cause you to lose all updates to event-based streams in your destination that are older than 30 days. See the Stripe API event retention limitation for more details.
If the 30-day retention window is a concern, consider making a backup of your currently synced data in a separate table in your destination before clearing the stream. Once the backup is complete, you can safely run a Full Refresh and Clear without losing historical data.
Connector upgrade guide
Review the following information to prepare for and execute your upgrade.
Review the changelog
Before updating a connector, review the changelog to understand the changes and their potential impact on your existing connections. Find the changelog for any connector by navigating to the bottom of the documentation for that connector. Major version releases also include a migration guide.
Plan for major updates
Major updates may require you to adjust connection settings or even make changes to your data pipelines. Allocate enough time and resources for this. Use the migration guide to ensure your transition process goes smoothly.
Airbyte provides tooling that guarantees safe connector version bumps and enforces automated version bumps for minor and patch updates. You always need to manually update for major version bumps.
Self-managed plans: pin a specific version if you can't update
If you're unable to upgrade to the new version of a connector, you can pin that connector to a specific version.
-
In the navigation bar:
-
If you're on the Self-Managed Enterprise plan, click Organization settings > Sources/Destinations.
-
If you're on any other plan, click Workspace settings > Sources/Destinations.
-
-
Edit the entry for the connector you want to pin.
-
Set the Default Version to the version you want to use.
Self-managed plans: update the local connector image
If you self-manage Airbyte, you must manually update the connector image in your local registry before proceeding with the migration. Follow the steps below.
-
In the navigation bar:
-
If you're on the Self-Managed Enterprise plan, click Organization settings > Sources/Destinations.
-
If you're on any other plan, click Workspace settings > Sources/Destinations.
-
-
Find the connector you want to update in the list of connectors.
noteAirbyte lists two versions, the current in-use version and the latest version available.
-
Click Change to update your OSS version to the latest available version.
Update the connector version
Update each instance of the connector separately. If you have multiple instances of a connector, updating one doesn't affect the others.
-
In the navigation bar:
-
If you're on the Self-Managed Enterprise plan, click Organization settings > Sources/Destinations.
-
If you're on any other plan, click Workspace settings > Sources/Destinations.
-
-
Select the instance of the connector you wish to upgrade.
-
Select Upgrade.
-
Follow the prompt to confirm you are ready to upgrade to the new version.
Clear data from affected streams
After upgrading a connector with a breaking change, you must refresh affected schemas and clear your data.
-
In the nav bar, click Connections.
-
Find the connection affected by the upgrade.
-
Click the Schema tab.
-
Click Refresh source schema (looks like ). When Airbyte finishes, it shows you any detected schema changes.
-
Click OK.
-
Click Save changes
-
Clear the data for the streams affected by this upgrade.
Once the clear is complete, you can begin syncing your data again as usual.
Upgrading to 5.6.0
The Payment Methods stream previously sync data from Treasury flows. This version will now provide data about customers' payment methods.
We bumped this in a minor version because we didn't want to pause all connection, but still want to document the process of moving to this latest version.
Summary of changes:
- The stream
Payment Methodswill now provide data about customers' payment methods. - The stream
Payment Methodsnow incrementally syncs using theeventsendpoint. customerfield type will be changed fromobjecttostring.
Refresh affected schemas and reset data
- Select Connections in the main navbar.
- Select the connection(s) affected by the update.
- Select the Replication tab.
- Select Refresh source schema.
- Select OK.
Any detected schema changes will be listed for your review.
- Select Save changes at the bottom of the page.
- Ensure the Reset affected streams option is checked.
Depending on destination type you may not be prompted to reset your data.
- Select Save connection.
This will reset the data in your destination and initiate a fresh sync.
For more information on resetting your data in Airbyte, see this page.
Upgrading to 5.4.0
The Refunds stream previously did not sync incrementally correctly. Incremental syncs are now resolved, and the Refunds stream now receives the correct updates using the events endpoint. This version resolves incremental sync issues with the Refunds stream.
Summary of changes:
- The stream
Refundscursor changed from the fieldcreatedtoupdatedwhen syncing incrementally. - The stream
Refundsnow incrementally syncs using theeventsendpoint.
Migration Steps
- Upgrade the Stripe connector by pressing the upgrade button and following the instructions on the screen.
The following migration steps are relevant for those who would like to sync Refunds incrementally. These migration steps can be skipped if you prefer to sync using Full Refresh.
The stream Refunds will need to be synced historically again to ensure the connection continues syncing smoothly. If available for your destination, we recommend initiating a Refresh for the stream, which will pull in all historical data for the stream without removing the existing data first and update your destination with all data once complete. To initiate a Refresh:
- Navigate to the connection's
Schematab. Navigate to theRefundsstream. - Update the
Refundsstream to use theIncremental | Append + Dedupsync mode. This ensures your data will sync correctly and capture all updates efficiently. - If your stream already has a sync mode of either
Incremental | Append + DeduporIncremental | Append, simply update the cursor fromcreated_attoupdated_at. - Save the connection.
- Review the prompt to
RefreshtheRefundsstream. SelectRefresh and retain recordsto ensure any data no longer found in Stripe is retained in your destination. - Confirm the modal to save the connection and initiate a
Refresh. This will start to pull in all historical data for the stream.
If you are using a destination that does not support the Refresh feature, you will need to Clear your stream. This will remove the data from the destination for just that stream. You will then need to sync the connection again in order to sync all data again for that stream.
Upgrading to 5.0.0
This change fixes multiple incremental sync issues with the Refunds, Checkout Sessions and Checkout Sessions Line Items streams:
Refundsstream was not syncing data in the incremental sync mode. Cursor field has been updated to "created" to allow for incremental syncs. Because of the changed cursor field of theRefundsstream, incremental syncs will not reflect every update of the records that have been previously replicated. Only newly created records will be synced. To always have the up-to-date data, users are encouraged to make use of the lookback window.CheckoutSessionsstream had been missing data for one day when using the incremental sync mode after a reset; this has been resolved.CheckoutSessionsLineItemspreviously had potential data loss. It has been updated to use a new cursor fieldcheckout_session_updated.- Incremental streams with the
createdcursor had been duplicating some data; this has been fixed.
Stream schema update is a breaking change as well as changing the cursor field for the Refunds and the CheckoutSessionsLineItems stream. A schema refresh and data reset of all effected streams is required after the update is applied.
Also, this update affects three more streams: Invoices, Subscriptions, SubscriptionSchedule. Schemas are changed in this update so that the declared data types would match the actual data.
Stream schema update is a breaking change as well as changing the cursor field for the Refunds and the CheckoutSessionsLineItems stream. A schema refresh and data reset of all effected streams is required after the update is applied.
Because of the changed cursor field of the Refunds stream, incremental syncs will not reflect every update of the records that have been previously replicated. Only newly created records will be synced. To always have the up-to-date data, users are encouraged to make use of the lookback window.
Upgrading to 4.0.0
A major update of most streams to support event-based incremental sync mode. This allows the connector to pull not only the newly created data since the last sync, but the modified data as well. A schema refresh is required for the connector to use the new cursor format.